TrUSDXRig: Decode RX streaming data

pull/67/head
Sunguk Lee 2023-08-07 15:28:09 +09:00
rodzic 40d4c06a65
commit ca08aa3479
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 20A74A5D37EEA757
1 zmienionych plików z 13 dodań i 3 usunięć

Wyświetl plik

@ -14,6 +14,7 @@ import com.bg7yoz.ft8cn.ui.ToastMessage;
import com.jackz314.resample.Resample;
import java.io.ByteArrayOutputStream;
import java.nio.ByteBuffer;
import java.util.Arrays;
import java.util.Timer;
import java.util.TimerTask;
@ -234,10 +235,10 @@ public class TrUSDXRig extends BaseRig {
return;
}
rxStreamBuffer.write(data, 0, data.length);
if (rxStreamBuffer.size() >= 512 || force) {
Resample resample = new Resample(Resample.ConverterType.SRC_LINEAR, 1, rxSampling, 48000);
if (rxStreamBuffer.size() >= 256 || force) {
Resample resample = new Resample(Resample.ConverterType.SRC_LINEAR, 1, rxSampling, 12000);
try {
byte[] resampled = resample.processCopy(rxStreamBuffer.toByteArray());
byte[] resampled = resample.processCopy(toWaveSamples8To16(rxStreamBuffer.toByteArray()));
rxStreamBuffer.reset();
getConnector().receiveWaveData(resampled);
} 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() {
new Handler().postDelayed(new Runnable() {
@Override