kopia lustrzana https://github.com/sh123/codec2_talkie
Audio gain into settings
rodzic
b9e9c8d2fa
commit
e545a098db
|
@ -21,6 +21,7 @@ public final class PreferenceKeys {
|
|||
public static String PORTS_SOUND_MODEM_PREAMBLE = "ports_sound_modem_preamble";
|
||||
public static String PORTS_SOUND_MODEM_DISABLE_RX = "ports_sound_modem_disable_rx";
|
||||
public static String PORTS_SOUND_MODEM_RIG = "ports_sound_modem_rig";
|
||||
public static String PORTS_SOUND_MODEM_GAIN ="ports_sound_modem_gain";
|
||||
|
||||
public static String CODEC2_MODE = "codec2_mode";
|
||||
public static String CODEC2_RECORDING_ENABLED = "codec2_recording_enabled";
|
||||
|
|
|
@ -69,14 +69,15 @@ public class SoundModem implements Transport, Runnable {
|
|||
|
||||
boolean disableRx = _sharedPreferences.getBoolean(PreferenceKeys.PORTS_SOUND_MODEM_DISABLE_RX, false);
|
||||
int bitRate = Integer.parseInt(_sharedPreferences.getString(PreferenceKeys.PORTS_SOUND_MODEM_TYPE, "1200"));
|
||||
int gain = Integer.parseInt(_sharedPreferences.getString(PreferenceKeys.PORTS_SOUND_MODEM_GAIN, "10000"));
|
||||
_name = "SoundModem" + bitRate;
|
||||
if (bitRate == 300) {
|
||||
// <230 spacing for 300 bps does not work with codec2 fsk for receive
|
||||
_fskModem = Codec2.fskCreate(SAMPLE_RATE, 300, 1600, 200);
|
||||
_fskModem = Codec2.fskCreate(SAMPLE_RATE, 300, 1600, 200, gain);
|
||||
} else if (bitRate == 1200) {
|
||||
_fskModem = Codec2.fskCreate(SAMPLE_RATE, 1200, 1200, 1000);
|
||||
_fskModem = Codec2.fskCreate(SAMPLE_RATE, 1200, 1200, 1000, gain);
|
||||
} else {
|
||||
_fskModem = Codec2.fskCreate(SAMPLE_RATE, 2400, 2165, 1805);
|
||||
_fskModem = Codec2.fskCreate(SAMPLE_RATE, 2400, 2165, 1805, gain);
|
||||
}
|
||||
|
||||
_recordAudioBuffer = new short[Codec2.fskDemodSamplesBufSize(_fskModem)];
|
||||
|
|
|
@ -362,4 +362,36 @@
|
|||
<item>Disabled</item>
|
||||
<item>Ft817</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="ports_sound_modem_gain_entries">
|
||||
<item>+0 db</item>
|
||||
<item>+1 db</item>
|
||||
<item>+2 db</item>
|
||||
<item>+3 db</item>
|
||||
<item>+4 db</item>
|
||||
<item>+5 db</item>
|
||||
<item>+6 db</item>
|
||||
<item>+7 db</item>
|
||||
<item>+8 db</item>
|
||||
<item>+9 db</item>
|
||||
<item>+10 db</item>
|
||||
<item>+11 db</item>
|
||||
<item>+12 db</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="ports_sound_modem_gain_values">
|
||||
<item>1000</item>
|
||||
<item>1258</item>
|
||||
<item>1584</item>
|
||||
<item>1995</item>
|
||||
<item>2511</item>
|
||||
<item>3162</item>
|
||||
<item>3981</item>
|
||||
<item>5011</item>
|
||||
<item>6309</item>
|
||||
<item>7943</item>
|
||||
<item>10000</item>
|
||||
<item>12589</item>
|
||||
<item>15848</item>
|
||||
</string-array>
|
||||
</resources>
|
|
@ -303,4 +303,5 @@
|
|||
<string name="ports_sound_modem_disable_rx_title">Disable receive</string>
|
||||
<string name="ports_sound_modem_disable_rx_summary">Run modem in transmit only mode, receive is disabled to save CPU cycles</string>
|
||||
<string name="ports_sound_modem_rig_title">Select RIG model for CAT PTT control</string>
|
||||
<string name="ports_sound_modem_gain_title">Set modem audio gain</string>
|
||||
</resources>
|
|
@ -38,5 +38,14 @@
|
|||
app:summary="%s">
|
||||
</ListPreference>
|
||||
|
||||
<ListPreference
|
||||
app:key="ports_sound_modem_gain"
|
||||
app:title="@string/ports_sound_modem_gain_title"
|
||||
app:entries="@array/ports_sound_modem_gain_entries"
|
||||
app:entryValues="@array/ports_sound_modem_gain_values"
|
||||
app:defaultValue="10000"
|
||||
app:summary="%s">
|
||||
</ListPreference>
|
||||
|
||||
</PreferenceCategory>
|
||||
</PreferenceScreen>
|
|
@ -57,7 +57,7 @@ namespace Java_com_ustadmobile_codec2_Codec2 {
|
|||
return pv;
|
||||
}
|
||||
|
||||
static jlong fskCreate(JNIEnv *env, jclass clazz, int sampleFrequency, int symbolRate, int toneFreq, int toneSpacing) {
|
||||
static jlong fskCreate(JNIEnv *env, jclass clazz, int sampleFrequency, int symbolRate, int toneFreq, int toneSpacing, int gain) {
|
||||
struct ContextFsk *conFsk;
|
||||
conFsk = (struct ContextFsk *) malloc(sizeof(struct ContextFsk));
|
||||
struct FSK *fsk;
|
||||
|
@ -75,7 +75,7 @@ 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;
|
||||
conFsk->gain = gain;
|
||||
|
||||
fsk_set_freq_est_limits(fsk, 500, sampleFrequency / 4);
|
||||
fsk_set_freq_est_alg(fsk, 0);
|
||||
|
@ -204,7 +204,7 @@ namespace Java_com_ustadmobile_codec2_Codec2 {
|
|||
{"destroy", "(J)I", (void *) destroy},
|
||||
{"encode", "(J[S[C)J", (void *) encode},
|
||||
{"decode", "(J[S[B)J", (void *) decode},
|
||||
{"fskCreate", "(IIII)J", (void *) fskCreate},
|
||||
{"fskCreate", "(IIIII)J", (void *) fskCreate},
|
||||
{"fskDestroy", "(J)I", (void *) fskDestroy},
|
||||
{"fskModulate", "(J[S[B)J", (void *) fskModulate},
|
||||
{"fskDemodulate", "(J[S[B)J", (void *) fskDemodulate},
|
||||
|
|
|
@ -35,7 +35,7 @@ public class Codec2 {
|
|||
public native static long encode(long con, short[] inputSamples, char[] outputBits);
|
||||
public native static long decode(long con, short[] outputSamples, byte[] inputsBits);
|
||||
|
||||
public native static long fskCreate(int sampleFrequency, int symbolRate, int toneFreq, int toneSpacing);
|
||||
public native static long fskCreate(int sampleFrequency, int symbolRate, int toneFreq, int toneSpacing, int gain);
|
||||
public native static int fskDestroy(long conFsk);
|
||||
|
||||
public native static int fskDemodBitsBufSize(long conFsk);
|
||||
|
|
Ładowanie…
Reference in New Issue