diff --git a/codec2talkie/src/main/java/com/radio/codec2talkie/protocol/KissParrot.java b/codec2talkie/src/main/java/com/radio/codec2talkie/protocol/KissParrot.java index f44a7c5..f132fbd 100644 --- a/codec2talkie/src/main/java/com/radio/codec2talkie/protocol/KissParrot.java +++ b/codec2talkie/src/main/java/com/radio/codec2talkie/protocol/KissParrot.java @@ -1,6 +1,8 @@ package com.radio.codec2talkie.protocol; import java.io.IOException; +import java.nio.BufferOverflowException; +import java.nio.BufferUnderflowException; import java.nio.ByteBuffer; import java.util.Timer; import java.util.TimerTask; @@ -9,7 +11,7 @@ public class KissParrot extends Kiss { private final int BUFFER_SIZE = 3200 * 60 * 5; - private final int PLAYBACK_DELAY_MS = 2000; + private final int PLAYBACK_DELAY_MS = 1000; private final ByteBuffer _buffer; @@ -24,8 +26,10 @@ public class KissParrot extends Kiss { if (_buffer.position() > 0) { _buffer.flip(); try { - _transport.write(_buffer.array()); - } catch (IOException e) { + byte[] b = new byte[_buffer.remaining()]; + _buffer.get(b); + _transport.write(b); + } catch (IOException | BufferUnderflowException e) { e.printStackTrace(); } _buffer.clear(); @@ -41,9 +45,12 @@ public class KissParrot extends Kiss { } } catch (IllegalStateException ignored) {} - _buffer.put(data); - super.receiveKissData(data, callback); - + try { + _buffer.put(data); + super.receiveKissData(data, callback); + } catch (BufferOverflowException e) { + e.printStackTrace(); + } _playbackTimer = new Timer(); _playbackTimer.schedule(new TimerTask() { @Override diff --git a/images/screenshot_settings.png b/images/screenshot_settings.png index 8d2c7d1..23864dc 100644 Binary files a/images/screenshot_settings.png and b/images/screenshot_settings.png differ