Java 类android.media.midi.MidiManager 实例源码

项目:buildAPKsSamples    文件:MidiInputPortSelector.java   
@Override
public void onPortSelected(final MidiPortWrapper wrapper) {
    close();
    final MidiDeviceInfo info = wrapper.getDeviceInfo();
    if (info != null) {
        mMidiManager.openDevice(info, new MidiManager.OnDeviceOpenedListener() {
                @Override
            public void onDeviceOpened(MidiDevice device) {
                if (device == null) {
                    Log.e(MidiConstants.TAG, "could not open " + info);
                } else {
                    mOpenDevice = device;
                    mInputPort = mOpenDevice.openInputPort(
                            wrapper.getPortIndex());
                    if (mInputPort == null) {
                        Log.e(MidiConstants.TAG, "could not open input port on " + info);
                    }
                }
            }
        }, null);
        // Don't run the callback on the UI thread because openInputPort might take a while.
    }
}
项目:buildAPKsSamples    文件:MidiTools.java   
/**
 * @return a device that matches the manufacturer and product or null
 */
public static MidiDeviceInfo findDevice(MidiManager midiManager,
        String manufacturer, String product) {
    for (MidiDeviceInfo info : midiManager.getDevices()) {
        String deviceManufacturer = info.getProperties()
                .getString(MidiDeviceInfo.PROPERTY_MANUFACTURER);
        if ((manufacturer != null)
                && manufacturer.equals(deviceManufacturer)) {
            String deviceProduct = info.getProperties()
                    .getString(MidiDeviceInfo.PROPERTY_PRODUCT);
            if ((product != null) && product.equals(deviceProduct)) {
                return info;
            }
        }
    }
    return null;
}
项目:buildAPKsSamples    文件:MidiInputPortSelector.java   
@Override
public void onPortSelected(final MidiPortWrapper wrapper) {
    close();
    final MidiDeviceInfo info = wrapper.getDeviceInfo();
    if (info != null) {
        mMidiManager.openDevice(info, new MidiManager.OnDeviceOpenedListener() {
                @Override
            public void onDeviceOpened(MidiDevice device) {
                if (device == null) {
                    Log.e(MidiConstants.TAG, "could not open " + info);
                } else {
                    mOpenDevice = device;
                    mInputPort = mOpenDevice.openInputPort(
                            wrapper.getPortIndex());
                    if (mInputPort == null) {
                        Log.e(MidiConstants.TAG, "could not open input port on " + info);
                    }
                }
            }
        }, null);
        // Don't run the callback on the UI thread because openInputPort might take a while.
    }
}
项目:buildAPKsSamples    文件:MidiTools.java   
/**
 * @return a device that matches the manufacturer and product or null
 */
public static MidiDeviceInfo findDevice(MidiManager midiManager,
        String manufacturer, String product) {
    for (MidiDeviceInfo info : midiManager.getDevices()) {
        String deviceManufacturer = info.getProperties()
                .getString(MidiDeviceInfo.PROPERTY_MANUFACTURER);
        if ((manufacturer != null)
                && manufacturer.equals(deviceManufacturer)) {
            String deviceProduct = info.getProperties()
                    .getString(MidiDeviceInfo.PROPERTY_PRODUCT);
            if ((product != null) && product.equals(deviceProduct)) {
                return info;
            }
        }
    }
    return null;
}
项目:walt    文件:MidiTest.java   
private void findMidiDevice() {
    MidiDeviceInfo[] infos = midiManager.getDevices();
    for(MidiDeviceInfo info : infos) {
        String name = info.getProperties().getString(MidiDeviceInfo.PROPERTY_NAME);
        logger.log("Found MIDI device named " + name);
        if(TEENSY_MIDI_NAME.equals(name)) {
            logger.log("^^^ using this device ^^^");
            isConnecting = true;
            midiManager.openDevice(info, new MidiManager.OnDeviceOpenedListener() {
                @Override
                public void onDeviceOpened(MidiDevice device) {
                    if (device == null) {
                        logger.log("Error, unable to open MIDI device");
                    } else {
                        logger.log("Opened MIDI device successfully!");
                        midiDevice = device;
                    }
                    isConnecting = false;
                }
            }, null);
            break;
        }
    }
}
项目:android-midisuite    文件:MidiInputPortSelector.java   
@Override
public void onPortSelected(final MidiPortWrapper wrapper) {
    close();
    final MidiDeviceInfo info = wrapper.getDeviceInfo();
    if (info != null) {
        mMidiManager.openDevice(info, new MidiManager.OnDeviceOpenedListener() {
                @Override
            public void onDeviceOpened(MidiDevice device) {
                if (device == null) {
                    Log.e(MidiConstants.TAG, "could not open " + info);
                } else {
                    mOpenDevice = device;
                    mInputPort = mOpenDevice.openInputPort(
                            wrapper.getPortIndex());
                    if (mInputPort == null) {
                        Log.e(MidiConstants.TAG, "could not open input port on " + info);
                    }
                }
            }
        }, null);
        // Don't run the callback on the UI thread because openInputPort might take a while.
    }
}
项目:android-midisuite    文件:MidiTools.java   
/**
 * @return a device that matches the manufacturer and product or null
 */
public static MidiDeviceInfo findDevice(MidiManager midiManager,
        String manufacturer, String product) {
    for (MidiDeviceInfo info : midiManager.getDevices()) {
        String deviceManufacturer = info.getProperties()
                .getString(MidiDeviceInfo.PROPERTY_MANUFACTURER);
        if ((manufacturer != null)
                && manufacturer.equals(deviceManufacturer)) {
            String deviceProduct = info.getProperties()
                    .getString(MidiDeviceInfo.PROPERTY_PRODUCT);
            if ((product != null) && product.equals(deviceProduct)) {
                return info;
            }
        }
    }
    return null;
}
项目:android-midisuite    文件:MainActivity.java   
@Override
protected void onActivityResult(int requestCode, int resultCode,
        Intent data) {
    if (requestCode == REQUEST_BLUETOOTH_SCAN && resultCode == RESULT_OK) {
        final BluetoothDevice fBluetoothDevice = (BluetoothDevice) data
                .getParcelableExtra("device");
        if (fBluetoothDevice != null) {
            Log.i(TAG, "Bluetooth device name = "
                    + fBluetoothDevice.getName()
                    + ", address = "
                    + fBluetoothDevice.getAddress());
            mMidiManager.openBluetoothDevice(fBluetoothDevice,
                    new MidiManager.OnDeviceOpenedListener() {
                        @Override
                        public void onDeviceOpened(MidiDevice device) {
                            onBluetoothDeviceOpen(fBluetoothDevice, device);
                        }
                    }, null);
        }
    }
}
项目:LiveNotes    文件:MidiReceiver.java   
public MidiReceiver(Context context, CloseableReceiver listener) {
    this.listener = listener;
    MidiManager midiManager = (MidiManager) context.getSystemService(Context.MIDI_SERVICE);
    stream(midiManager.getDevices())
            .filter(device -> device.getOutputPortCount() > 0).findFirst()
            .ifPresentOrElse(device -> openDevice(midiManager, device),
                             () -> registerDeviceAddedCallback(midiManager));
}
项目:LiveNotes    文件:MidiReceiver.java   
private void registerDeviceAddedCallback(final MidiManager midiManager) {
    midiManager.registerDeviceCallback(new MidiManager.DeviceCallback() {
        @Override
        public void onDeviceAdded(MidiDeviceInfo device) {
            if (device.getOutputPortCount() > 0) {
                midiManager.unregisterDeviceCallback(this);
                openDevice(midiManager, device);
            }
        }
    }, null);
}
项目:buildAPKsSamples    文件:MidiOutputPortSelector.java   
@Override
public void onPortSelected(final MidiPortWrapper wrapper) {
    Log.i(MidiConstants.TAG, "onPortSelected: " + wrapper);
    close();

    final MidiDeviceInfo info = wrapper.getDeviceInfo();
    if (info != null) {
        mMidiManager.openDevice(info, new MidiManager.OnDeviceOpenedListener() {

                @Override
            public void onDeviceOpened(MidiDevice device) {
                if (device == null) {
                    Log.e(MidiConstants.TAG, "could not open " + info);
                } else {
                    mOpenDevice = device;
                    mOutputPort = device.openOutputPort(wrapper.getPortIndex());
                    if (mOutputPort == null) {
                        Log.e(MidiConstants.TAG,
                                "could not open output port for " + info);
                        return;
                    }
                    mOutputPort.connect(mDispatcher);
                }
            }
        }, null);
        // Don't run the callback on the UI thread because openOutputPort might take a while.
    }
}
项目:buildAPKsSamples    文件:MidiOutputPortConnectionSelector.java   
/**
 * @param midiManager
 * @param activity
 * @param spinnerId
 * @param type
 */
public MidiOutputPortConnectionSelector(MidiManager midiManager,
        Activity activity, int spinnerId,
        MidiDeviceInfo destinationDeviceInfo, int destinationPortIndex) {
    super(midiManager, activity, spinnerId,
            MidiDeviceInfo.PortInfo.TYPE_OUTPUT);
    mDestinationDeviceInfo = destinationDeviceInfo;
    mDestinationPortIndex = destinationPortIndex;
}
项目:buildAPKsSamples    文件:MidiPortConnector.java   
/**
 * Open a source device and connect its output port to the
 * destinationInputPort.
 *
 * @param sourceDeviceInfo
 * @param sourcePortIndex
 * @param destinationInputPort
 */
private void connectToDevicePort(final MidiDeviceInfo sourceDeviceInfo,
        final int sourcePortIndex,
        final MidiInputPort destinationInputPort,
        final OnPortsConnectedListener listener, final Handler handler) {
    mMidiManager.openDevice(sourceDeviceInfo,
            new MidiManager.OnDeviceOpenedListener() {
                @Override
                public void onDeviceOpened(MidiDevice device) {
                    if (device == null) {
                        Log.e(MidiConstants.TAG,
                                "could not open " + sourceDeviceInfo);
                        safeClose();
                        if (listener != null) {
                            listener.onPortsConnected(null);
                        }
                    } else {
                        Log.i(MidiConstants.TAG,
                                "connectToDevicePort opened "
                                        + sourceDeviceInfo);
                        // Device was opened so connect the ports.
                        mSourceDevice = device;
                        mConnection = device.connectPorts(
                                destinationInputPort, sourcePortIndex);
                        if (mConnection == null) {
                            Log.e(MidiConstants.TAG, "could not connect to "
                                    + sourceDeviceInfo);
                            safeClose();
                        }
                        if (listener != null) {
                            listener.onPortsConnected(mConnection);
                        }
                    }
                }
            }, handler);
}
项目:buildAPKsSamples    文件:MainActivity.java   
private void setupMidi() {
    // Setup MIDI
    mMidiManager = (MidiManager) getSystemService(MIDI_SERVICE);

    MidiDeviceInfo synthInfo = MidiTools.findDevice(mMidiManager, "AndroidTest",
            "SynthExample");
    int portIndex = 0;
    mPortSelector = new MidiOutputPortConnectionSelector(mMidiManager, this,
            R.id.spinner_synth_sender, synthInfo, portIndex);
    mPortSelector.setConnectedListener(new MyPortsConnectedListener());
}
项目:buildAPKsSamples    文件:MidiOutputPortSelector.java   
@Override
public void onPortSelected(final MidiPortWrapper wrapper) {
    Log.i(MidiConstants.TAG, "onPortSelected: " + wrapper);
    close();

    final MidiDeviceInfo info = wrapper.getDeviceInfo();
    if (info != null) {
        mMidiManager.openDevice(info, new MidiManager.OnDeviceOpenedListener() {

                @Override
            public void onDeviceOpened(MidiDevice device) {
                if (device == null) {
                    Log.e(MidiConstants.TAG, "could not open " + info);
                } else {
                    mOpenDevice = device;
                    mOutputPort = device.openOutputPort(wrapper.getPortIndex());
                    if (mOutputPort == null) {
                        Log.e(MidiConstants.TAG,
                                "could not open output port for " + info);
                        return;
                    }
                    mOutputPort.connect(mDispatcher);
                }
            }
        }, null);
        // Don't run the callback on the UI thread because openOutputPort might take a while.
    }
}
项目:buildAPKsSamples    文件:MidiOutputPortConnectionSelector.java   
/**
 * @param midiManager
 * @param activity
 * @param spinnerId
 * @param type
 */
public MidiOutputPortConnectionSelector(MidiManager midiManager,
        Activity activity, int spinnerId,
        MidiDeviceInfo destinationDeviceInfo, int destinationPortIndex) {
    super(midiManager, activity, spinnerId,
            MidiDeviceInfo.PortInfo.TYPE_OUTPUT);
    mDestinationDeviceInfo = destinationDeviceInfo;
    mDestinationPortIndex = destinationPortIndex;
}
项目:buildAPKsSamples    文件:MidiPortConnector.java   
/**
 * Open a source device and connect its output port to the
 * destinationInputPort.
 *
 * @param sourceDeviceInfo
 * @param sourcePortIndex
 * @param destinationInputPort
 */
private void connectToDevicePort(final MidiDeviceInfo sourceDeviceInfo,
        final int sourcePortIndex,
        final MidiInputPort destinationInputPort,
        final OnPortsConnectedListener listener, final Handler handler) {
    mMidiManager.openDevice(sourceDeviceInfo,
            new MidiManager.OnDeviceOpenedListener() {
                @Override
                public void onDeviceOpened(MidiDevice device) {
                    if (device == null) {
                        Log.e(MidiConstants.TAG,
                                "could not open " + sourceDeviceInfo);
                        safeClose();
                        if (listener != null) {
                            listener.onPortsConnected(null);
                        }
                    } else {
                        Log.i(MidiConstants.TAG,
                                "connectToDevicePort opened "
                                        + sourceDeviceInfo);
                        // Device was opened so connect the ports.
                        mSourceDevice = device;
                        mConnection = device.connectPorts(
                                destinationInputPort, sourcePortIndex);
                        if (mConnection == null) {
                            Log.e(MidiConstants.TAG, "could not connect to "
                                    + sourceDeviceInfo);
                            safeClose();
                        }
                        if (listener != null) {
                            listener.onPortsConnected(mConnection);
                        }
                    }
                }
            }, handler);
}
项目:JinsMemeBRIDGE-Android    文件:MemeMIDI.java   
public static boolean checkUsbMidi(Context context) {
  MidiManager midiManager = (MidiManager) context.getSystemService(Context.MIDI_SERVICE);
  if (midiManager != null) {
    final MidiDeviceInfo[] infos = midiManager.getDevices();
    if (infos.length > 0) {
      return true;
    } else {
      return false;
    }
  } else {
    return false;
  }
}
项目:MIDICtrl    文件:ControlActivity.java   
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
    System.out.println(i);
    m.openDevice(infos[midiDevice], new MidiManager.OnDeviceOpenedListener() {
        @Override
        public void onDeviceOpened(MidiDevice device) {
            if (device == null) {
                Toast.makeText(getApplicationContext(), "Could not open device!",
                        Toast.LENGTH_LONG).show();
            } else {
                inputPort = device.openInputPort(0);
            }
        }
    }, new Handler(Looper.getMainLooper()));
}
项目:walt    文件:MidiTest.java   
MidiTest(Context context) {
    super(context);
    inputRepetitions = getIntPreference(context, R.string.preference_midi_in_reps, 100);
    outputRepetitions = getIntPreference(context, R.string.preference_midi_out_reps, 10);
    midiManager = (MidiManager) context.getSystemService(Context.MIDI_SERVICE);
    findMidiDevice();
}
项目:365browser    文件:MidiManagerAndroid.java   
private void openDevice(final MidiDeviceInfo info) {
    mManager.openDevice(info, new MidiManager.OnDeviceOpenedListener() {
        @Override
        public void onDeviceOpened(MidiDevice device) {
            MidiManagerAndroid.this.onDeviceOpened(device, info);
        }
    }, mHandler);
}
项目:android-midisuite    文件:MainActivity.java   
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    mLog = (TextView) findViewById(R.id.log);
    mScroller = (ScrollView) findViewById(R.id.scroll);

    // Setup MIDI
    mMidiManager = (MidiManager) getSystemService(MIDI_SERVICE);

    // Receiver that prints the messages.
    mLoggingReceiver = new LoggingReceiver(this);

    // Receivers that parses raw data into complete messages.
    mConnectFramer = new MidiFramer(mLoggingReceiver);

    // Setup a menu to select an input source.
    mLogSenderSelector = new MidiOutputPortSelector(mMidiManager, this,
            R.id.spinner_senders) {

        @Override
        public void onPortSelected(final MidiPortWrapper wrapper) {
            super.onPortSelected(wrapper);
            if (wrapper != null) {
                log(MidiPrinter.formatDeviceInfo(wrapper.getDeviceInfo()));
            }
        }
    };

    mDirectReceiver = new MyDirectReceiver();
    mLogSenderSelector.getSender().connect(mDirectReceiver);

    // Tell the virtual device to log its messages here..
    MidiScope.setScopeLogger(this);
}
项目:android-midisuite    文件:MainActivity.java   
private void setupMidi() {
    // Setup MIDI
    mMidiManager = (MidiManager) getSystemService(MIDI_SERVICE);

    MidiDeviceInfo synthInfo =  MidiTools.findDevice(mMidiManager, "Mobileer",
            "SynthExample");
    int portIndex = 0;
    mPortSelector = new MidiOutputPortConnectionSelector(mMidiManager, this,
            R.id.spinner_synth_sender, synthInfo, portIndex);
    mPortSelector.setConnectedListener(new MyPortsConnectedListener());
}
项目:android-midisuite    文件:MidiOutputPortSelector.java   
@Override
public void onPortSelected(final MidiPortWrapper wrapper) {
    close();

    final MidiDeviceInfo info = wrapper.getDeviceInfo();
    if (info != null) {
        mMidiManager.openDevice(info, new MidiManager.OnDeviceOpenedListener() {

                @Override
            public void onDeviceOpened(MidiDevice device) {
                if (device == null) {
                    Log.e(MidiConstants.TAG, "could not open " + info);
                } else {
                    mOpenDevice = device;
                    mOutputPort = device.openOutputPort(wrapper.getPortIndex());
                    if (mOutputPort == null) {
                        Log.e(MidiConstants.TAG,
                                "could not open output port for " + info);
                        return;
                    }
                    mOutputPort.connect(mDispatcher);
                }
            }
        }, null);
        // Don't run the callback on the UI thread because openOutputPort might take a while.
    }
}
项目:android-midisuite    文件:MidiPortConnector.java   
/**
 * Open a source device and connect its output port to the
 * destinationInputPort.
 *
 * @param sourceDeviceInfo
 * @param sourcePortIndex
 * @param destinationInputPort
 */
private void connectToDevicePort(final MidiDeviceInfo sourceDeviceInfo,
        final int sourcePortIndex,
        final MidiInputPort destinationInputPort,
        final OnPortsConnectedListener listener, final Handler handler) {
    mMidiManager.openDevice(sourceDeviceInfo,
            new MidiManager.OnDeviceOpenedListener() {
                @Override
                public void onDeviceOpened(MidiDevice device) {
                    if (device == null) {
                        Log.e(MidiConstants.TAG,
                                "could not open " + sourceDeviceInfo);
                        safeClose();
                        if (listener != null) {
                            listener.onPortsConnected(null);
                        }
                    } else {
                        Log.i(MidiConstants.TAG,
                                "connectToDevicePort opened "
                                        + sourceDeviceInfo);
                        // Device was opened so connect the ports.
                        mSourceDevice = device;
                        mConnection = device.connectPorts(
                                destinationInputPort, sourcePortIndex);
                        if (mConnection == null) {
                            Log.e(MidiConstants.TAG, "could not connect to "
                                    + sourceDeviceInfo);
                            safeClose();
                        }
                        if (listener != null) {
                            listener.onPortsConnected(mConnection);
                        }
                    }
                }
            }, handler);
}
项目:android-midisuite    文件:MidiDeviceMonitor.java   
private MidiDeviceMonitor(MidiManager midiManager) {
    mMidiManager = midiManager;
    if (mUseProxy) {
        Log.i(TAG,"Running on M so we need to use the workaround.");
        mMyDeviceCallback = new MyDeviceCallback();
        mMidiManager.registerDeviceCallback(mMyDeviceCallback,
                new Handler(Looper.getMainLooper()));
    }
}
项目:LiveNotes    文件:MidiReceiver.java   
private void openDevice(final MidiManager midiManager, MidiDeviceInfo device) {
    midiManager.openDevice(device, this, null);
}
项目:buildAPKsSamples    文件:MainActivity.java   
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    setActionBar((Toolbar) findViewById(R.id.toolbar));
    ActionBar actionBar = getActionBar();
    if (actionBar != null) {
        actionBar.setDisplayShowTitleEnabled(false);
    }

    mLog = (TextView) findViewById(R.id.log);
    mScroller = (ScrollView) findViewById(R.id.scroll);

    // Setup MIDI
    MidiManager midiManager = (MidiManager) getSystemService(MIDI_SERVICE);

    // Receiver that prints the messages.
    MidiReceiver loggingReceiver = new LoggingReceiver(this);

    // Receiver that parses raw data into complete messages.
    MidiFramer connectFramer = new MidiFramer(loggingReceiver);

    // Setup a menu to select an input source.
    mLogSenderSelector = new MidiOutputPortSelector(midiManager, this, R.id.spinner_senders) {
        @Override
        public void onPortSelected(final MidiPortWrapper wrapper) {
            super.onPortSelected(wrapper);
            if (wrapper != null) {
                mLogLines.clear();
                MidiDeviceInfo deviceInfo = wrapper.getDeviceInfo();
                if (deviceInfo == null) {
                    log(getString(R.string.header_text));
                } else {
                    log(MidiPrinter.formatDeviceInfo(deviceInfo));
                }
            }
        }
    };
    mLogSenderSelector.getSender().connect(connectFramer);

    // Tell the virtual device to log its messages here..
    MidiScope.setScopeLogger(this);
}
项目:buildAPKsSamples    文件:MidiPortConnector.java   
/**
 * @param mMidiManager
 */
public MidiPortConnector(MidiManager midiManager) {
    mMidiManager = midiManager;
}
项目:buildAPKsSamples    文件:MidiPortConnector.java   
/**
 * Open two devices and connect their ports.
 *
 * @param sourceDeviceInfo
 * @param sourcePortIndex
 * @param destinationDeviceInfo
 * @param destinationPortIndex
 */
public void connectToDevicePort(final MidiDeviceInfo sourceDeviceInfo,
        final int sourcePortIndex,
        final MidiDeviceInfo destinationDeviceInfo,
        final int destinationPortIndex,
        final OnPortsConnectedListener listener, final Handler handler) {
    safeClose();
    mMidiManager.openDevice(destinationDeviceInfo,
            new MidiManager.OnDeviceOpenedListener() {
                @Override
                public void onDeviceOpened(MidiDevice destinationDevice) {
                    if (destinationDevice == null) {
                        Log.e(MidiConstants.TAG,
                                "could not open " + destinationDeviceInfo);
                        if (listener != null) {
                            listener.onPortsConnected(null);
                        }
                    } else {
                        mDestinationDevice = destinationDevice;
                        Log.i(MidiConstants.TAG,
                                "connectToDevicePort opened "
                                        + destinationDeviceInfo);
                        // Destination device was opened so go to next step.
                        MidiInputPort destinationInputPort = destinationDevice
                                .openInputPort(destinationPortIndex);
                        if (destinationInputPort != null) {
                            Log.i(MidiConstants.TAG,
                                    "connectToDevicePort opened port on "
                                            + destinationDeviceInfo);
                            connectToDevicePort(sourceDeviceInfo,
                                    sourcePortIndex,
                                    destinationInputPort,
                                    listener, handler);
                        } else {
                            Log.e(MidiConstants.TAG,
                                    "could not open port on "
                                            + destinationDeviceInfo);
                            safeClose();
                            if (listener != null) {
                                listener.onPortsConnected(null);
                            }
                        }
                    }
                }
            }, handler);
}
项目:buildAPKsSamples    文件:MidiPortConnector.java   
/**
 * @param mMidiManager
 */
public MidiPortConnector(MidiManager midiManager) {
    mMidiManager = midiManager;
}
项目:buildAPKsSamples    文件:MidiPortConnector.java   
/**
 * Open two devices and connect their ports.
 *
 * @param sourceDeviceInfo
 * @param sourcePortIndex
 * @param destinationDeviceInfo
 * @param destinationPortIndex
 */
public void connectToDevicePort(final MidiDeviceInfo sourceDeviceInfo,
        final int sourcePortIndex,
        final MidiDeviceInfo destinationDeviceInfo,
        final int destinationPortIndex,
        final OnPortsConnectedListener listener, final Handler handler) {
    safeClose();
    mMidiManager.openDevice(destinationDeviceInfo,
            new MidiManager.OnDeviceOpenedListener() {
                @Override
                public void onDeviceOpened(MidiDevice destinationDevice) {
                    if (destinationDevice == null) {
                        Log.e(MidiConstants.TAG,
                                "could not open " + destinationDeviceInfo);
                        if (listener != null) {
                            listener.onPortsConnected(null);
                        }
                    } else {
                        mDestinationDevice = destinationDevice;
                        Log.i(MidiConstants.TAG,
                                "connectToDevicePort opened "
                                        + destinationDeviceInfo);
                        // Destination device was opened so go to next step.
                        MidiInputPort destinationInputPort = destinationDevice
                                .openInputPort(destinationPortIndex);
                        if (destinationInputPort != null) {
                            Log.i(MidiConstants.TAG,
                                    "connectToDevicePort opened port on "
                                            + destinationDeviceInfo);
                            connectToDevicePort(sourceDeviceInfo,
                                    sourcePortIndex,
                                    destinationInputPort,
                                    listener, handler);
                        } else {
                            Log.e(MidiConstants.TAG,
                                    "could not open port on "
                                            + destinationDeviceInfo);
                            safeClose();
                            if (listener != null) {
                                listener.onPortsConnected(null);
                            }
                        }
                    }
                }
            }, handler);
}
项目:JinsMemeBRIDGE-Android    文件:MemeMIDI.java   
public void initPort() {
  Log.d("DEBUG", "initPort...");

  midiManager = (MidiManager) context.getSystemService(Context.MIDI_SERVICE);
  if (midiManager != null) {
    final MidiDeviceInfo[] infos = midiManager.getDevices();

    for (final MidiDeviceInfo info : infos) {
      final int numInputs = info.getInputPortCount();
      final int numOutputs = info.getOutputPortCount();

      if (numOutputs == 0)
        continue;

      Log.d("DEBUG", "in port num = " + numInputs);
      Log.d("DEBUG", "out port num = " + numOutputs);

      int portIndex = 0;
      for (MidiDeviceInfo.PortInfo portInfo : info.getPorts()) {
        Log.d("DEBUG", "name: " + portInfo.getName());

        String portName = portInfo.getName();

        final int pi = portIndex;
        midiManager.openDevice(info, new MidiManager.OnDeviceOpenedListener() {
          @Override
          public void onDeviceOpened(MidiDevice device) {
            if (device == null) {
              Log.d("DEBUG", "could not open device " + info);
            } else {
              Log.d("DEBUG", "a onDeviceOpend...");

              switch (pi) {
                case 0:
                  midiInputPort = device.openInputPort(numInputs - 1);

                  if (midiInputPort == null) {
                    Log.d("DEBUG", "midi input port is null...");
                  }
                  break;
                case 1:
                  midiOutputPort = device.openOutputPort(numOutputs - 1);

                  if (midiOutputPort == null) {
                    Log.d("DEBUG", "midi output port is null...");
                  }
                  break;
              }
              initializedMidi = true;
            }
          }
        }, null);

        portIndex++;
      }
    }
    //Log.d("DEBUG", "midi:" + infos.length);
  }
}
项目:EasyAndroid    文件:Managers.java   
/**
 * 返回 {@link MidiManager}
 */
public static MidiManager getMidiManager()
{
    return (MidiManager) get(MIDI_SERVICE);
}
项目:Android-App-Template    文件:ServiceUtil.java   
@TargetApi(23)
public static MidiManager getMidiManager() {
    return (MidiManager) getSystemService(Context.MIDI_SERVICE);
}
项目:sprockets-android    文件:Managers.java   
/**
 * @since 4.0.0
 */
public static MidiManager midi(Context context) {
    return (MidiManager) context.getSystemService(MIDI_SERVICE);
}
项目:android-midisuite    文件:MidiPortConnector.java   
/**
 * @param midiManager
 */
public MidiPortConnector(MidiManager midiManager) {
    mMidiManager = midiManager;
}
项目:android-midisuite    文件:MidiPortConnector.java   
/**
 * Open two devices and connect their ports.
 * Then notify listener of the result.
 *
 * @param sourceDeviceInfo
 * @param sourcePortIndex
 * @param destinationDeviceInfo
 * @param destinationPortIndex
 * @param listener
 * @param handler
 */
public void connectToDevicePort(final MidiDeviceInfo sourceDeviceInfo,
        final int sourcePortIndex,
        final MidiDeviceInfo destinationDeviceInfo,
        final int destinationPortIndex,
        final OnPortsConnectedListener listener, final Handler handler) {
    safeClose();
    mMidiManager.openDevice(destinationDeviceInfo,
            new MidiManager.OnDeviceOpenedListener() {
                @Override
                public void onDeviceOpened(MidiDevice destinationDevice) {
                    if (destinationDevice == null) {
                        Log.e(MidiConstants.TAG,
                                "could not open " + destinationDeviceInfo);
                        if (listener != null) {
                            listener.onPortsConnected(null);
                        }
                    } else {
                        mDestinationDevice = destinationDevice;
                        Log.i(MidiConstants.TAG,
                                "connectToDevicePort opened "
                                        + destinationDeviceInfo);
                        // Destination device was opened so go to next step.
                        MidiInputPort destinationInputPort = destinationDevice
                                .openInputPort(destinationPortIndex);
                        if (destinationInputPort != null) {
                            Log.i(MidiConstants.TAG,
                                    "connectToDevicePort opened port on "
                                            + destinationDeviceInfo);
                            connectToDevicePort(sourceDeviceInfo,
                                    sourcePortIndex,
                                    destinationInputPort,
                                    listener, handler);
                        } else {
                            Log.e(MidiConstants.TAG,
                                    "could not open port on "
                                            + destinationDeviceInfo);
                            safeClose();
                            if (listener != null) {
                                listener.onPortsConnected(null);
                            }
                        }
                    }
                }
            }, handler);
}
项目:android-midisuite    文件:MidiDeviceMonitor.java   
public synchronized static MidiDeviceMonitor getInstance(MidiManager midiManager) {
    if (mInstance == null) {
        mInstance = new MidiDeviceMonitor(midiManager);
    }
    return mInstance;
}
项目:android_Skeleton    文件:SystemServices.java   
@TargetApi(AndroidHelper.API_23)
public static MidiManager midiManager() {
    return (MidiManager) get(Context.MIDI_SERVICE);
}