mirror of
https://github.com/DSheirer/sdrtrunk.git
synced 2026-11-12 08:37:25 -05:00
Resolves #393 - Adds support for recording demodulated (raw) bitstream
buffers. None of the decoders currently support this yet, but the P25 will be updated to provide bitstream output for recording. Renames the ReusableBuffer class to ReusableFloatBuffer for consistency.
This commit is contained in:
@@ -2,10 +2,10 @@ package io.github.dsheirer.source;
|
||||
|
||||
import io.github.dsheirer.sample.Provider;
|
||||
import io.github.dsheirer.sample.SampleType;
|
||||
import io.github.dsheirer.sample.buffer.ReusableBuffer;
|
||||
import io.github.dsheirer.sample.buffer.ReusableFloatBuffer;
|
||||
|
||||
|
||||
public abstract class RealSource extends Source implements Provider<ReusableBuffer>
|
||||
public abstract class RealSource extends Source implements Provider<ReusableFloatBuffer>
|
||||
{
|
||||
@Override
|
||||
public SampleType getSampleType()
|
||||
|
||||
@@ -17,7 +17,7 @@ package io.github.dsheirer.source.mixer;
|
||||
|
||||
import io.github.dsheirer.sample.Listener;
|
||||
import io.github.dsheirer.sample.adapter.AbstractSampleAdapter;
|
||||
import io.github.dsheirer.sample.buffer.ReusableBuffer;
|
||||
import io.github.dsheirer.sample.buffer.ReusableFloatBuffer;
|
||||
import io.github.dsheirer.source.SourceEvent;
|
||||
import io.github.dsheirer.source.heartbeat.HeartbeatManager;
|
||||
import io.github.dsheirer.util.ThreadPool;
|
||||
@@ -37,7 +37,7 @@ import java.util.concurrent.atomic.AtomicBoolean;
|
||||
* the samples to an array of floats using the specified adapter. Dispatches float arrays to the registered
|
||||
* buffer listener.
|
||||
*/
|
||||
public class MixerReader<T extends ReusableBuffer> implements Runnable
|
||||
public class MixerReader<T extends ReusableFloatBuffer> implements Runnable
|
||||
{
|
||||
private final static Logger mLog = LoggerFactory.getLogger(MixerReader.class);
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ package io.github.dsheirer.source.mixer;
|
||||
|
||||
import io.github.dsheirer.sample.Listener;
|
||||
import io.github.dsheirer.sample.adapter.AbstractSampleAdapter;
|
||||
import io.github.dsheirer.sample.buffer.ReusableBuffer;
|
||||
import io.github.dsheirer.sample.buffer.ReusableFloatBuffer;
|
||||
import io.github.dsheirer.source.RealSource;
|
||||
import io.github.dsheirer.source.SourceEvent;
|
||||
|
||||
@@ -101,7 +101,7 @@ public class RealMixerSource extends RealSource
|
||||
/**
|
||||
* Sets the listener to receive sample data in reusable buffers.
|
||||
*/
|
||||
public void setListener(Listener<ReusableBuffer> listener)
|
||||
public void setListener(Listener<ReusableFloatBuffer> listener)
|
||||
{
|
||||
mMixerReader.setBufferListener(listener);
|
||||
}
|
||||
@@ -110,7 +110,7 @@ public class RealMixerSource extends RealSource
|
||||
* Removes the listener from receiving sample data.
|
||||
* @param listener
|
||||
*/
|
||||
public void removeListener(Listener<ReusableBuffer> listener)
|
||||
public void removeListener(Listener<ReusableFloatBuffer> listener)
|
||||
{
|
||||
mMixerReader.removeBufferListener();
|
||||
}
|
||||
|
||||
@@ -19,8 +19,8 @@ package io.github.dsheirer.source.wave;
|
||||
|
||||
import io.github.dsheirer.sample.ConversionUtils;
|
||||
import io.github.dsheirer.sample.Listener;
|
||||
import io.github.dsheirer.sample.buffer.ReusableBuffer;
|
||||
import io.github.dsheirer.sample.buffer.ReusableBufferQueue;
|
||||
import io.github.dsheirer.sample.buffer.ReusableFloatBuffer;
|
||||
import io.github.dsheirer.source.IControllableFileSource;
|
||||
import io.github.dsheirer.source.IFrameLocationListener;
|
||||
import io.github.dsheirer.source.RealSource;
|
||||
@@ -45,7 +45,7 @@ public class RealWaveSource extends RealSource implements IControllableFileSourc
|
||||
private int mBytesPerFrame;
|
||||
private int mFrameCounter = 0;
|
||||
private long mFrequency = 0;
|
||||
private Listener<ReusableBuffer> mListener;
|
||||
private Listener<ReusableFloatBuffer> mListener;
|
||||
private AudioInputStream mInputStream;
|
||||
private File mFile;
|
||||
|
||||
@@ -230,10 +230,10 @@ public class RealWaveSource extends RealSource implements IControllableFileSourc
|
||||
|
||||
float[] samples = ConversionUtils.convertFromSigned16BitSamples(buffer);
|
||||
|
||||
ReusableBuffer reusableBuffer = mReusableBufferQueue.getBuffer(samples.length);
|
||||
reusableBuffer.reloadFrom(samples, System.currentTimeMillis());
|
||||
ReusableFloatBuffer reusableFloatBuffer = mReusableBufferQueue.getBuffer(samples.length);
|
||||
reusableFloatBuffer.reloadFrom(samples, System.currentTimeMillis());
|
||||
|
||||
mListener.receive(reusableBuffer);
|
||||
mListener.receive(reusableFloatBuffer);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -242,7 +242,7 @@ public class RealWaveSource extends RealSource implements IControllableFileSourc
|
||||
* Registers the listener to receive sample buffers as they are read from the wave file
|
||||
*/
|
||||
@Override
|
||||
public void setListener(Listener<ReusableBuffer> listener)
|
||||
public void setListener(Listener<ReusableFloatBuffer> listener)
|
||||
{
|
||||
mListener = listener;
|
||||
}
|
||||
@@ -251,7 +251,7 @@ public class RealWaveSource extends RealSource implements IControllableFileSourc
|
||||
* Unregisters the listener from receiving sample buffers
|
||||
*/
|
||||
@Override
|
||||
public void removeListener(Listener<ReusableBuffer> listener)
|
||||
public void removeListener(Listener<ReusableFloatBuffer> listener)
|
||||
{
|
||||
mListener = null;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user