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);