Update codec2 related interfaces

master
sh123 2023-12-09 13:33:32 +02:00
rodzic 4d56b32c55
commit 2f949aa501
5 zmienionych plików z 37 dodań i 15 usunięć

Wyświetl plik

@ -97,7 +97,7 @@ public class AppWorker extends Thread {
_stationItemRepository = new StationItemRepository((Application)context);
_transport = TransportFactory.create(transportType, context);
_protocol = ProtocolFactory.create(_codec2Mode, context);
_protocol = ProtocolFactory.create(context);
_processPeriodicTimer = new Timer();

Wyświetl plik

@ -1,9 +1,13 @@
package com.radio.codec2talkie.protocol;
import android.content.Context;
import android.content.SharedPreferences;
import com.radio.codec2talkie.R;
import com.radio.codec2talkie.protocol.message.TextMessage;
import com.radio.codec2talkie.protocol.position.Position;
import com.radio.codec2talkie.settings.PreferenceKeys;
import com.radio.codec2talkie.tools.AudioTools;
import com.radio.codec2talkie.transport.Transport;
import com.ustadmobile.codec2.Codec2;
@ -19,18 +23,23 @@ public class AudioCodec2 implements Protocol {
private char[] _recordAudioEncodedBuffer;
private short[] _playbackAudioBuffer;
private final SharedPreferences _sharedPreferences;
private ProtocolCallback _parentProtocolCallback;
public AudioCodec2(Protocol childProtocol, int codec2ModeId) {
public AudioCodec2(Protocol childProtocol, SharedPreferences sharedPreferences) {
_childProtocol = childProtocol;
_codec2Con = 0;
constructCodec2(codec2ModeId);
_sharedPreferences = sharedPreferences;
}
@Override
public void initialize(Transport transport, Context context, ProtocolCallback protocolCallback) throws IOException {
_parentProtocolCallback = protocolCallback;
_childProtocol.initialize(transport, context, _protocolCallback);
String codec2ModeName = _sharedPreferences.getString(PreferenceKeys.CODEC2_MODE, context.getResources().getStringArray(R.array.codec2_modes)[0]);
int codec2ModeId = AudioTools.extractCodec2ModeId(codec2ModeName);
constructCodec2(codec2ModeId);
}
@Override

Wyświetl plik

@ -6,9 +6,11 @@ import android.util.Log;
import androidx.preference.PreferenceManager;
import com.radio.codec2talkie.R;
import com.radio.codec2talkie.protocol.message.TextMessage;
import com.radio.codec2talkie.protocol.position.Position;
import com.radio.codec2talkie.settings.PreferenceKeys;
import com.radio.codec2talkie.tools.AudioTools;
import com.radio.codec2talkie.transport.Transport;
import com.ustadmobile.codec2.Codec2;
@ -25,19 +27,18 @@ public class AudioFrameAggregator implements Protocol {
private int _outputBufferPos;
private byte[] _outputBuffer;
private final int _codec2FrameSize;
private final int _codec2ModeId;
private int _codec2FrameSize;
private String _lastSrc;
private String _lastDst;
private int _lastCodec2Mode;
private final SharedPreferences _sharedPreferences;
private ProtocolCallback _parentProtocolCallback;
public AudioFrameAggregator(Protocol childProtocol, int codec2ModeId) {
public AudioFrameAggregator(Protocol childProtocol, SharedPreferences sharedPreferences) {
_childProtocol = childProtocol;
_codec2ModeId = codec2ModeId;
_codec2FrameSize = getPcmAudioBufferSize(codec2ModeId);
_sharedPreferences = sharedPreferences;
}
@Override
@ -48,6 +49,10 @@ public class AudioFrameAggregator implements Protocol {
_outputBuffer = new byte[_outputBufferSize];
_outputBufferPos = 0;
_childProtocol.initialize(transport, context, _protocolCallback);
String codec2ModeName = _sharedPreferences.getString(PreferenceKeys.CODEC2_MODE, context.getResources().getStringArray(R.array.codec2_modes)[0]);
int codec2ModeId = AudioTools.extractCodec2ModeId(codec2ModeName);
_codec2FrameSize = getPcmAudioBufferSize(codec2ModeId);
}
@Override

Wyświetl plik

@ -59,7 +59,7 @@ public class ProtocolFactory {
return protocolType;
}
public static Protocol create(int codec2ModeId, Context context) {
public static Protocol create(Context context) {
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
@ -104,11 +104,11 @@ public class ProtocolFactory {
}
if (!freedvEnabled) {
if (recordingEnabled) {
proto = new Recorder(proto, codec2ModeId);
proto = new Recorder(proto, sharedPreferences);
}
proto = new AudioFrameAggregator(proto, codec2ModeId);
proto = new AudioCodec2(proto, codec2ModeId);
proto = new AudioFrameAggregator(proto, sharedPreferences);
proto = new AudioCodec2(proto, sharedPreferences);
}
if (aprsEnabled) {

Wyświetl plik

@ -1,12 +1,16 @@
package com.radio.codec2talkie.protocol;
import android.content.Context;
import android.content.SharedPreferences;
import android.text.TextUtils;
import android.util.Log;
import com.radio.codec2talkie.MainActivity;
import com.radio.codec2talkie.R;
import com.radio.codec2talkie.protocol.message.TextMessage;
import com.radio.codec2talkie.protocol.position.Position;
import com.radio.codec2talkie.settings.PreferenceKeys;
import com.radio.codec2talkie.tools.AudioTools;
import com.radio.codec2talkie.tools.StorageTools;
import com.radio.codec2talkie.transport.Transport;
@ -31,16 +35,17 @@ public class Recorder implements Protocol {
private Timer _fileRotationTimer;
final Protocol _childProtocol;
final int _codec2ModeId;
int _codec2ModeId;
private String _prevSrcCallsign;
private String _prevDstCallsign;
private final SharedPreferences _sharedPreferences;
private ProtocolCallback _parentProtocolCallback;
public Recorder(Protocol childProtocol, int codec2ModeId) {
public Recorder(Protocol childProtocol, SharedPreferences sharedPreferences) {
_childProtocol = childProtocol;
_codec2ModeId = codec2ModeId;
_sharedPreferences = sharedPreferences;
_prevSrcCallsign = null;
_prevDstCallsign = null;
@ -51,6 +56,9 @@ public class Recorder implements Protocol {
_parentProtocolCallback = protocolCallback;
_storage = StorageTools.getStorage(context);
_childProtocol.initialize(transport, context, _protocolCallback);
String codec2ModeName = _sharedPreferences.getString(PreferenceKeys.CODEC2_MODE, context.getResources().getStringArray(R.array.codec2_modes)[0]);
_codec2ModeId = AudioTools.extractCodec2ModeId(codec2ModeName);
}
@Override