diff --git a/codec2talkie/src/main/res/values/strings.xml b/codec2talkie/src/main/res/values/strings.xml
index 42fc84a..1d46f95 100644
--- a/codec2talkie/src/main/res/values/strings.xml
+++ b/codec2talkie/src/main/res/values/strings.xml
@@ -302,5 +302,5 @@
TNC transport type
Disable receive
Run modem in transmit only mode, receive is disabled to save CPU cycles
- Select radio model to control
+ Select RIG model for CAT PTT control
\ No newline at end of file
diff --git a/libcodec2-android/src/main/cpp/Codec2JNI.cpp b/libcodec2-android/src/main/cpp/Codec2JNI.cpp
index 698a3f3..d090519 100644
--- a/libcodec2-android/src/main/cpp/Codec2JNI.cpp
+++ b/libcodec2-android/src/main/cpp/Codec2JNI.cpp
@@ -25,6 +25,7 @@ namespace Java_com_ustadmobile_codec2_Codec2 {
int Nbits;
int N;
int Ts;
+ int gain;
};
static Context *getContext(jlong jp) {
@@ -74,6 +75,8 @@ namespace Java_com_ustadmobile_codec2_Codec2 {
conFsk->demodBits = (uint8_t*)malloc(sizeof(uint8_t) * fsk->Nbits);
conFsk->demodBuf = (int16_t*)malloc(sizeof(short) * (fsk->N + 2 * fsk->Ts));
+ conFsk->gain = 10 * FDMDV_SCALE;
+
fsk_set_freq_est_limits(fsk, 500, sampleFrequency / 4);
fsk_set_freq_est_alg(fsk, 0);
@@ -168,7 +171,7 @@ namespace Java_com_ustadmobile_codec2_Codec2 {
fsk_mod(conFsk->fsk, conFsk->modBuf, conFsk->modBits, inputBitsSize);
jshort *jOutBuf = env->GetShortArrayElements(outputSamples, nullptr);
for (int i = 0; i < conFsk->N; i++) {
- jOutBuf[i] = (int16_t)(conFsk->modBuf[i] * FDMDV_SCALE);
+ jOutBuf[i] = (int16_t)(conFsk->modBuf[i] * conFsk->gain);
}
env->ReleaseShortArrayElements(outputSamples, jOutBuf, 0);
return 0;
@@ -186,7 +189,7 @@ namespace Java_com_ustadmobile_codec2_Codec2 {
ContextFsk *conFsk = getContextFsk(n);
env->GetShortArrayRegion(inputSamples, 0, conFsk->N, reinterpret_cast(conFsk->demodBuf));
for(int i = 0; i < fsk_nin(conFsk->fsk); i++){
- conFsk->demodCBuf[i].real = ((float)conFsk->demodBuf[i]) / FDMDV_SCALE;
+ conFsk->demodCBuf[i].real = ((float)conFsk->demodBuf[i]) / conFsk->gain;
conFsk->demodCBuf[i].imag = 0.0;
}
fsk_demod(conFsk->fsk, conFsk->demodBits, conFsk->demodCBuf);