kopia lustrzana https://github.com/N0BOY/FT8CN
TrUSDXRig: Decode RX streaming data
rodzic
40d4c06a65
commit
ca08aa3479
|
@ -14,6 +14,7 @@ import com.bg7yoz.ft8cn.ui.ToastMessage;
|
||||||
import com.jackz314.resample.Resample;
|
import com.jackz314.resample.Resample;
|
||||||
|
|
||||||
import java.io.ByteArrayOutputStream;
|
import java.io.ByteArrayOutputStream;
|
||||||
|
import java.nio.ByteBuffer;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Timer;
|
import java.util.Timer;
|
||||||
import java.util.TimerTask;
|
import java.util.TimerTask;
|
||||||
|
@ -234,10 +235,10 @@ public class TrUSDXRig extends BaseRig {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
rxStreamBuffer.write(data, 0, data.length);
|
rxStreamBuffer.write(data, 0, data.length);
|
||||||
if (rxStreamBuffer.size() >= 512 || force) {
|
if (rxStreamBuffer.size() >= 256 || force) {
|
||||||
Resample resample = new Resample(Resample.ConverterType.SRC_LINEAR, 1, rxSampling, 48000);
|
Resample resample = new Resample(Resample.ConverterType.SRC_LINEAR, 1, rxSampling, 12000);
|
||||||
try {
|
try {
|
||||||
byte[] resampled = resample.processCopy(rxStreamBuffer.toByteArray());
|
byte[] resampled = resample.processCopy(toWaveSamples8To16(rxStreamBuffer.toByteArray()));
|
||||||
rxStreamBuffer.reset();
|
rxStreamBuffer.reset();
|
||||||
getConnector().receiveWaveData(resampled);
|
getConnector().receiveWaveData(resampled);
|
||||||
} finally {
|
} finally {
|
||||||
|
@ -247,6 +248,15 @@ public class TrUSDXRig extends BaseRig {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static byte[] toWaveSamples8To16(byte[] in) {
|
||||||
|
ByteBuffer buf = ByteBuffer.allocate(in.length * 2);
|
||||||
|
for (int i = 0; i < in.length; i++) {
|
||||||
|
short v = (short)(((short)in[i] - 128) << 8);
|
||||||
|
buf.putShort(v);
|
||||||
|
}
|
||||||
|
return buf.array();
|
||||||
|
}
|
||||||
|
|
||||||
public TrUSDXRig() {
|
public TrUSDXRig() {
|
||||||
new Handler().postDelayed(new Runnable() {
|
new Handler().postDelayed(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
|
|
Ładowanie…
Reference in New Issue