kopia lustrzana https://github.com/sh123/codec2_talkie
82 wiersze
2.2 KiB
Java
82 wiersze
2.2 KiB
Java
package com.radio.codec2talkie.protocol;
|
|
|
|
import android.content.Context;
|
|
import android.util.Log;
|
|
|
|
import com.radio.codec2talkie.protocol.message.TextMessage;
|
|
import com.radio.codec2talkie.protocol.position.Position;
|
|
import com.radio.codec2talkie.transport.Transport;
|
|
|
|
import java.io.IOException;
|
|
import java.util.Arrays;
|
|
|
|
public class Raw implements Protocol {
|
|
private static final String TAG = Raw.class.getSimpleName();
|
|
|
|
private static final int RX_BUFFER_SIZE = 8192;
|
|
|
|
protected Transport _transport;
|
|
protected final byte[] _rxDataBuffer;
|
|
|
|
private ProtocolCallback _parentProtocolCallback;
|
|
|
|
public Raw() {
|
|
_rxDataBuffer = new byte[RX_BUFFER_SIZE];
|
|
}
|
|
|
|
@Override
|
|
public void initialize(Transport transport, Context context, ProtocolCallback protocolCallback) {
|
|
_transport = transport;
|
|
_parentProtocolCallback = protocolCallback;
|
|
}
|
|
|
|
@Override
|
|
public int getPcmAudioRecordBufferSize() {
|
|
Log.w(TAG, "getPcmAudioBufferSize() is not supported");
|
|
return -1;
|
|
}
|
|
|
|
@Override
|
|
public void sendCompressedAudio(String src, String dst, byte[] frame) throws IOException {
|
|
_transport.write(Arrays.copyOf(frame, frame.length));
|
|
}
|
|
|
|
@Override
|
|
public void sendTextMessage(TextMessage textMessage) throws IOException {
|
|
Log.w(TAG, "sendTextMessage() is not supported");
|
|
}
|
|
|
|
@Override
|
|
public void sendPcmAudio(String src, String dst, short[] pcmFrame) {
|
|
Log.w(TAG, "sendPcmAudio() is not supported");
|
|
}
|
|
|
|
@Override
|
|
public void sendData(String src, String dst, String path, byte[] dataPacket) throws IOException {
|
|
_transport.write(Arrays.copyOf(dataPacket, dataPacket.length));
|
|
}
|
|
|
|
@Override
|
|
public boolean receive() throws IOException {
|
|
int bytesRead = _transport.read(_rxDataBuffer);
|
|
if (bytesRead > 0) {
|
|
_parentProtocolCallback.onReceiveCompressedAudio(null, null, Arrays.copyOf(_rxDataBuffer, bytesRead));
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
@Override
|
|
public void sendPosition(Position position) {
|
|
Log.w(TAG, "sendPosition() is not supported");
|
|
}
|
|
|
|
@Override
|
|
public void flush() {
|
|
}
|
|
|
|
@Override
|
|
public void close() {
|
|
}
|
|
}
|