Add interface for protocol

pull/14/head
sh123 2021-01-28 09:37:25 +02:00
rodzic d4ae0cb01e
commit 1f47c7a8db
3 zmienionych plików z 20 dodań i 7 usunięć

Wyświetl plik

@ -69,7 +69,7 @@ public class AudioProcessor extends Thread {
_rxDataBuffer = new byte[RX_BUFFER_SIZE];
_transport = TransportFactory.create(transportType);
_protocol = new Kiss(_protocolCallback);
_protocol = new Kiss();
constructCodec2(codec2Mode);
constructSystemAudioDevices();
@ -281,7 +281,7 @@ public class AudioProcessor extends Thread {
try {
sendStatusUpdate(PROCESSOR_LISTENING, 0);
_protocol.initialize();
_protocol.initialize(_protocolCallback);
while (_isRunning)
if (!process())

Wyświetl plik

@ -6,7 +6,7 @@ import java.io.IOException;
import java.nio.ByteBuffer;
import java.util.Arrays;
public class Kiss {
public class Kiss implements Protocol {
private static final String TAG = Kiss.class.getSimpleName();
@ -47,24 +47,27 @@ public class Kiss {
private final byte[] _outputKissBuffer;
private final byte[] _inputKissBuffer;
private final Callback _callback;
private Callback _callback;
private int _outputKissBufferPos;
private int _inputKissBufferPos;
public Kiss(Callback callback) {
_callback = callback;
public Kiss() {
_outputKissBuffer = new byte[KISS_TX_FRAME_MAX_SIZE];
_inputKissBuffer = new byte[100 * KISS_TX_FRAME_MAX_SIZE];
_tncCsmaPersistence = CSMA_PERSISTENCE;
_tncCsmaSlotTime = CSMA_SLOT_TIME;
_tncTxDelay = TX_DELAY_10MS_UNITS;
_tncTxTail = TX_TAIL_10MS_UNITS;
_outputKissBufferPos = 0;
_inputKissBufferPos = 0;
}
public void initialize() throws IOException {
public void initialize(Callback callback) throws IOException {
_callback = callback;
startKissPacket(KISS_CMD_P);
sendKissByte(_tncCsmaPersistence);
completeKissPacket();

Wyświetl plik

@ -0,0 +1,10 @@
package com.radio.codec2talkie.protocol;
import java.io.IOException;
public interface Protocol {
void initialize(Callback callback) throws IOException;
void send(byte [] frame) throws IOException;
void receive(byte[] data);
void flush() throws IOException;
}