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

项目:365browser    文件:MidiInputPortAndroid.java   
/**
 * Registers this object to the underlying port so as to the C++ function will be called with
 * the given C++ object when data arrives.
 * @param nativeReceiverPointer a pointer to a midi::MidiInputPortAndroid object.
 * @return true if this operation succeeds or the port is already open.
 */
@CalledByNative
boolean open(long nativeReceiverPointer) {
    if (mPort != null) {
        return true;
    }
    mPort = mDevice.openOutputPort(mIndex);
    if (mPort == null) {
        return false;
    }
    mNativeReceiverPointer = nativeReceiverPointer;
    mPort.connect(new MidiReceiver() {
        @Override
        public void onSend(byte[] bs, int offset, int count, long timestamp) {
            nativeOnData(mNativeReceiverPointer, bs, offset, count, timestamp);
        }
    });
    return true;
}
项目:android-midisuite    文件:MidiDispatcher.java   
@Override
public void onSend(byte[] msg, int offset, int count, long timestamp) throws IOException {
   for (MidiReceiver receiver : mReceivers) {
        try {
            receiver.send(msg, offset, count, timestamp);
        } catch (IOException e) {
            // if the receiver fails we remove the receiver but do not propagate the exception
            mReceivers.remove(receiver);
        }
    }
}
项目:buildAPKsSamples    文件:MidiDispatcher.java   
@Override
public void onSend(byte[] msg, int offset, int count, long timestamp) throws IOException {
   for (MidiReceiver receiver : mReceivers) {
        try {
            receiver.send(msg, offset, count, timestamp);
        } catch (IOException e) {
            // if the receiver fails we remove the receiver but do not propagate the exception
            mReceivers.remove(receiver);
        }
    }
}
项目:buildAPKsSamples    文件:MidiDispatcher.java   
@Override
public void onSend(byte[] msg, int offset, int count, long timestamp) throws IOException {
   for (MidiReceiver receiver : mReceivers) {
        try {
            receiver.send(msg, offset, count, timestamp);
        } catch (IOException e) {
            // if the receiver fails we remove the receiver but do not propagate the exception
            mReceivers.remove(receiver);
        }
    }
}
项目:android-midisuite    文件:MainActivity.java   
private void midiSend(byte[] buffer, int count, long timestamp) {
    if (mKeyboardReceiverSelector != null) {
        try {
            // send event immediately
            MidiReceiver receiver = mKeyboardReceiverSelector.getReceiver();
            if (receiver != null) {
                receiver.send(buffer, 0, count, timestamp);
            }
        } catch (IOException e) {
            Log.e(TAG, "mKeyboardReceiverSelector.send() failed " + e);
        }
    }
}
项目:buildAPKsSamples    文件:MidiScope.java   
@Override
public MidiReceiver[] onGetInputPortReceivers() {
    return new MidiReceiver[] { mInputReceiver };
}
项目: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    文件:MidiInputPortSelector.java   
public MidiReceiver getReceiver() {
    return mInputPort;
}
项目:buildAPKsSamples    文件:MidiDispatcher.java   
@Override
public void flush() throws IOException {
   for (MidiReceiver receiver : mReceivers) {
        receiver.flush();
   }
}
项目:buildAPKsSamples    文件:MidiFramer.java   
public MidiFramer(MidiReceiver receiver) {
    mReceiver = receiver;
}
项目:buildAPKsSamples    文件:MidiSynthDeviceService.java   
@Override
public MidiReceiver[] onGetInputPortReceivers() {
    return new MidiReceiver[]{mSynthEngine};
}
项目:buildAPKsSamples    文件:MidiInputPortSelector.java   
public MidiReceiver getReceiver() {
    return mInputPort;
}
项目:buildAPKsSamples    文件:MidiDispatcher.java   
@Override
public void flush() throws IOException {
   for (MidiReceiver receiver : mReceivers) {
        receiver.flush();
   }
}
项目:buildAPKsSamples    文件:MidiFramer.java   
public MidiFramer(MidiReceiver receiver) {
    mReceiver = receiver;
}
项目:android-midisuite    文件:MidiScope.java   
@Override
public MidiReceiver[] onGetInputPortReceivers() {
    return new MidiReceiver[] { mInputReceiver };
}
项目:android-midisuite    文件:MidiSynthDeviceService.java   
@Override
public MidiReceiver[] onGetInputPortReceivers() {
    return new MidiReceiver[] { mSynthEngine };
}
项目:android-midisuite    文件:MidiInputPortSelector.java   
public MidiReceiver getReceiver() {
    return mInputPort;
}
项目:android-midisuite    文件:MidiDispatcher.java   
@Override
public void flush() throws IOException {
   for (MidiReceiver receiver : mReceivers) {
        receiver.flush();
   }
}
项目:android-midisuite    文件:MidiFramer.java   
public MidiFramer(MidiReceiver receiver) {
    mReceiver = receiver;
}
项目:buildAPKsSamples    文件:MidiDispatcher.java   
/**
 * Called to connect a {@link MidiReceiver} to the sender
 *
 * @param receiver the receiver to connect
 */
@Override
public void onConnect(MidiReceiver receiver) {
    mReceivers.add(receiver);
}
项目:buildAPKsSamples    文件:MidiDispatcher.java   
/**
 * Called to disconnect a {@link MidiReceiver} from the sender
 *
 * @param receiver the receiver to disconnect
 */
@Override
public void onDisconnect(MidiReceiver receiver) {
    mReceivers.remove(receiver);
}
项目:buildAPKsSamples    文件:MidiEventScheduler.java   
/**
 * This MidiReceiver will write date to the scheduling buffer.
 * @return the MidiReceiver
 */
public MidiReceiver getReceiver() {
    return mReceiver;
}
项目:buildAPKsSamples    文件:MidiDispatcher.java   
/**
 * Called to connect a {@link MidiReceiver} to the sender
 *
 * @param receiver the receiver to connect
 */
@Override
public void onConnect(MidiReceiver receiver) {
    mReceivers.add(receiver);
}
项目:buildAPKsSamples    文件:MidiDispatcher.java   
/**
 * Called to disconnect a {@link MidiReceiver} from the sender
 *
 * @param receiver the receiver to disconnect
 */
@Override
public void onDisconnect(MidiReceiver receiver) {
    mReceivers.remove(receiver);
}
项目:buildAPKsSamples    文件:MidiEventScheduler.java   
/**
 * This MidiReceiver will write date to the scheduling buffer.
 * @return the MidiReceiver
 */
public MidiReceiver getReceiver() {
    return mReceiver;
}
项目:android-midisuite    文件:MidiDispatcher.java   
/**
 * Called to connect a {@link MidiReceiver} to the sender
 *
 * @param receiver the receiver to connect
 */
@Override
public void onConnect(MidiReceiver receiver) {
    mReceivers.add(receiver);
}
项目:android-midisuite    文件:MidiDispatcher.java   
/**
 * Called to disconnect a {@link MidiReceiver} from the sender
 *
 * @param receiver the receiver to disconnect
 */
@Override
public void onDisconnect(MidiReceiver receiver) {
    mReceivers.remove(receiver);
}
项目:android-midisuite    文件:MidiEventScheduler.java   
/**
 * This MidiReceiver will write date to the scheduling buffer.
 * @return the MidiReceiver
 */
public MidiReceiver getReceiver() {
    return mReceiver;
}