Android Open Source - BLE-MIDI-for-Android Reusable Byte Array Output Stream






From Project

Back to project page BLE-MIDI-for-Android.

License

The source code is released under:

Apache License

If you think the Android project BLE-MIDI-for-Android listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package jp.kshoji.blemidi.util;
//  w  w  w  .  j a va 2  s  .com
import java.io.ByteArrayOutputStream;

/**
 * {@link java.io.ByteArrayOutputStream} that can reset without memory leak.
 * 
 * @author K.Shoji
 */
public final class ReusableByteArrayOutputStream extends ByteArrayOutputStream {
  private static final int DEFAULT_BUFFER_LIMIT = 1024;
  private final byte[] fixedSizeBuffer;

  /**
   * Construct instance
   * 
   * @param size the initial size of the stream
   */
  public ReusableByteArrayOutputStream(int size) {
    super(size);
    fixedSizeBuffer = new byte[size];
    this.buf = fixedSizeBuffer;
  }

  /**
   * Construct default instance, maximum buffer size is 1024 bytes.
   */
  public ReusableByteArrayOutputStream() {
    this(DEFAULT_BUFFER_LIMIT);
  }

  @Override
  public synchronized void reset() {
    super.reset();
    
    // reset buffer size when the buffer has been extended
    if (this.buf.length > fixedSizeBuffer.length) {
      this.buf = fixedSizeBuffer;
    }
  }
}




Java Source Code List

jp.kshoji.blemidi.central.BleMidiCallback.java
jp.kshoji.blemidi.central.BleMidiCentralProvider.java
jp.kshoji.blemidi.central.MidiInputDevice.java
jp.kshoji.blemidi.central.MidiOutputDevice.java
jp.kshoji.blemidi.device.MidiInputDevice.java
jp.kshoji.blemidi.device.MidiOutputDevice.java
jp.kshoji.blemidi.listener.OnMidiDeviceAttachedListener.java
jp.kshoji.blemidi.listener.OnMidiDeviceDetachedListener.java
jp.kshoji.blemidi.listener.OnMidiInputEventListener.java
jp.kshoji.blemidi.listener.OnMidiScanStatusListener.java
jp.kshoji.blemidi.peripheral.BleMidiPeripheralProvider.java
jp.kshoji.blemidi.peripheral.MidiInputDevice.java
jp.kshoji.blemidi.peripheral.MidiOutputDevice.java
jp.kshoji.blemidi.sample.CentralActivity.java
jp.kshoji.blemidi.sample.PeripheralActivity.java
jp.kshoji.blemidi.sample.util.SoundMaker.java
jp.kshoji.blemidi.sample.util.Tone.java
jp.kshoji.blemidi.util.BleMidiDeviceUtils.java
jp.kshoji.blemidi.util.BleUtils.java
jp.kshoji.blemidi.util.BleUuidUtils.java
jp.kshoji.blemidi.util.Constants.java
jp.kshoji.blemidi.util.MidiParser.java
jp.kshoji.blemidi.util.ReusableByteArrayOutputStream.java