kopia lustrzana https://github.com/sh123/codec2_talkie
Set number of burst for data
rodzic
95d844759a
commit
313ecc5e7b
|
@ -53,12 +53,12 @@ public class Freedv implements Protocol {
|
|||
|
||||
Log.i(TAG, "Using freedv mode " + AudioTools.getFreedvModeAsText(sharedPreferences));
|
||||
|
||||
_freedv = Codec2.freedvCreate(mode, isSquelchEnabled, squelchSnr);
|
||||
_freedv = Codec2.freedvCreate(mode, isSquelchEnabled, squelchSnr, 0); // unset for speech
|
||||
_modemTxBuffer = new short[Codec2.freedvGetNomModemSamples(_freedv)];
|
||||
_speechRxBuffer = new short[Codec2.freedvGetMaxSpeechSamples(_freedv)];
|
||||
_speechSamples = ShortBuffer.allocate(1024*10);
|
||||
|
||||
_freedvData = Codec2.freedvCreate(dataMode, isSquelchEnabled, squelchSnr);
|
||||
_freedvData = Codec2.freedvCreate(dataMode, isSquelchEnabled, squelchSnr, 1);
|
||||
_dataBuffer = new byte[Codec2.freedvGetBitsPerModemFrame(_freedvData) / 8];
|
||||
_dataSamplesBuffer = new short[Codec2.freedvGetNTxSamples(_freedvData)];
|
||||
_dataSamples = ShortBuffer.allocate(1024*10);
|
||||
|
|
|
@ -123,5 +123,4 @@
|
|||
app:dependency="ports_sound_modem_freedv_enable_squelch"
|
||||
app:defaultValue="0.0">
|
||||
</ListPreference>
|
||||
|
||||
</PreferenceScreen>
|
|
@ -99,7 +99,7 @@ namespace Java_com_ustadmobile_codec2_Codec2 {
|
|||
return reinterpret_cast<jlong>(conFsk);
|
||||
}
|
||||
|
||||
static jlong freedvCreate(JNIEnv *env, jclass clazz, int mode, jboolean isSquelchEnabled, jfloat squelchSnr) {
|
||||
static jlong freedvCreate(JNIEnv *env, jclass clazz, int mode, jboolean isSquelchEnabled, jfloat squelchSnr, jlong framesPerBurst) {
|
||||
struct ContextFreedv *conFreedv;
|
||||
conFreedv = (struct ContextFreedv *) malloc(sizeof(struct ContextFreedv));
|
||||
conFreedv->freeDv = freedv_open(mode);
|
||||
|
@ -114,8 +114,14 @@ namespace Java_com_ustadmobile_codec2_Codec2 {
|
|||
conFreedv->rawDataSamples = static_cast<short *>(malloc(
|
||||
freedv_get_n_tx_modem_samples(conFreedv->freeDv) * sizeof(short)));
|
||||
// squelch
|
||||
freedv_set_squelch_en(conFreedv->freeDv, isSquelchEnabled);
|
||||
freedv_set_snr_squelch_thresh(conFreedv->freeDv, squelchSnr);
|
||||
if (isSquelchEnabled) {
|
||||
freedv_set_squelch_en(conFreedv->freeDv, isSquelchEnabled);
|
||||
freedv_set_snr_squelch_thresh(conFreedv->freeDv, squelchSnr);
|
||||
}
|
||||
// frames per single burst, 0 - not specified
|
||||
if (framesPerBurst > 0) {
|
||||
freedv_set_frames_per_burst(conFreedv->freeDv, framesPerBurst);
|
||||
}
|
||||
return reinterpret_cast<jlong>(conFreedv);
|
||||
}
|
||||
|
||||
|
@ -362,7 +368,7 @@ namespace Java_com_ustadmobile_codec2_Codec2 {
|
|||
{"fskSamplesPerSymbol", "(J)I", (void *) fskSamplesPerSymbol},
|
||||
{"fskNin", "(J)I", (void *) fskNin},
|
||||
// freedv
|
||||
{"freedvCreate", "(IZF)J", (void *)freedvCreate},
|
||||
{"freedvCreate", "(IZFJ)J", (void *)freedvCreate},
|
||||
{"freedvDestroy", "(J)I", (void *)freedvDestroy},
|
||||
{"freedvGetMaxSpeechSamples", "(J)I", (void *)freedvGetMaxSpeechSamples},
|
||||
{"freedvGetMaxModemSamples", "(J)I", (void *)freedvGetMaxModemSamples},
|
||||
|
|
|
@ -63,7 +63,7 @@ public class Codec2 {
|
|||
public native static long fskDemodulate(long conFsk, short[] inputSamples, byte[] outputBits);
|
||||
|
||||
// freedv
|
||||
public native static long freedvCreate(int mode, boolean isSquelchEnabled, float squelchSnr);
|
||||
public native static long freedvCreate(int mode, boolean isSquelchEnabled, float squelchSnr, long framesPerBurst);
|
||||
public native static int freedvDestroy(long conFreedv);
|
||||
|
||||
public native static int freedvGetMaxSpeechSamples(long conFreedv);
|
||||
|
|
Ładowanie…
Reference in New Issue