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;
}