From 803dc2531c1030e25024bd6885f06b0e2e0169fa Mon Sep 17 00:00:00 2001 From: Denny Sheirer Date: Thu, 24 Nov 2022 06:16:44 -0500 Subject: [PATCH] #1318 Resolves issue where bitstream recorder no longer works. Solution submitted by @apankowski. (#1345) Co-authored-by: Dennis Sheirer --- .idea/misc.xml | 2 +- .../dsheirer/dsp/symbol/BinaryToByteBufferAssembler.java | 4 ++-- .../dsheirer/dsp/symbol/DibitToByteBufferAssembler.java | 4 ++-- src/main/java/io/github/dsheirer/util/Dispatcher.java | 7 +++---- 4 files changed, 8 insertions(+), 9 deletions(-) diff --git a/.idea/misc.xml b/.idea/misc.xml index 48d2c0be..dced427a 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -4,7 +4,7 @@ - + \ No newline at end of file diff --git a/src/main/java/io/github/dsheirer/dsp/symbol/BinaryToByteBufferAssembler.java b/src/main/java/io/github/dsheirer/dsp/symbol/BinaryToByteBufferAssembler.java index 493788a0..20ab9890 100644 --- a/src/main/java/io/github/dsheirer/dsp/symbol/BinaryToByteBufferAssembler.java +++ b/src/main/java/io/github/dsheirer/dsp/symbol/BinaryToByteBufferAssembler.java @@ -21,11 +21,10 @@ package io.github.dsheirer.dsp.symbol; import io.github.dsheirer.bits.IBinarySymbolProcessor; import io.github.dsheirer.sample.Listener; import io.github.dsheirer.sample.buffer.IByteBufferProvider; +import java.nio.ByteBuffer; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.nio.ByteBuffer; - /** * Assembles reusable byte buffers from an incoming stream of boolean values. */ @@ -58,6 +57,7 @@ public class BinaryToByteBufferAssembler implements IBinarySymbolProcessor, IByt { if(mCurrentBuffer != null && mBufferListener != null) { + mCurrentBuffer.flip(); mBufferListener.receive(mCurrentBuffer); } diff --git a/src/main/java/io/github/dsheirer/dsp/symbol/DibitToByteBufferAssembler.java b/src/main/java/io/github/dsheirer/dsp/symbol/DibitToByteBufferAssembler.java index 5116e70a..159d7a6b 100644 --- a/src/main/java/io/github/dsheirer/dsp/symbol/DibitToByteBufferAssembler.java +++ b/src/main/java/io/github/dsheirer/dsp/symbol/DibitToByteBufferAssembler.java @@ -20,11 +20,10 @@ package io.github.dsheirer.dsp.symbol; import io.github.dsheirer.sample.Listener; import io.github.dsheirer.sample.buffer.IByteBufferProvider; +import java.nio.ByteBuffer; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.nio.ByteBuffer; - /** * Assembles reusable byte buffers from an incoming stream of Dibits. */ @@ -57,6 +56,7 @@ public class DibitToByteBufferAssembler implements Listener, IByteBufferP { if(mCurrentBuffer != null && mBufferListener != null) { + mCurrentBuffer.flip(); mBufferListener.receive(mCurrentBuffer); } diff --git a/src/main/java/io/github/dsheirer/util/Dispatcher.java b/src/main/java/io/github/dsheirer/util/Dispatcher.java index 68234344..0489d7a7 100644 --- a/src/main/java/io/github/dsheirer/util/Dispatcher.java +++ b/src/main/java/io/github/dsheirer/util/Dispatcher.java @@ -19,12 +19,11 @@ package io.github.dsheirer.util; import io.github.dsheirer.sample.Listener; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicBoolean; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * Threaded processor for receiving elements from a separate producer thread and forwarding those buffers to a @@ -167,7 +166,7 @@ public class Dispatcher implements Listener { element = mQueue.take(); - if(mPoisonPill.equals(element)) + if(mPoisonPill == element) { mRunning.set(false); }