diff --git a/codec2talkie/src/main/java/com/radio/codec2talkie/app/AppWorker.java b/codec2talkie/src/main/java/com/radio/codec2talkie/app/AppWorker.java
index db87deb..e6acc98 100644
--- a/codec2talkie/src/main/java/com/radio/codec2talkie/app/AppWorker.java
+++ b/codec2talkie/src/main/java/com/radio/codec2talkie/app/AppWorker.java
@@ -98,19 +98,16 @@ public class AppWorker extends Thread {
_processPeriodicTimer = new Timer();
- constructSystemAudioDevices(transportType);
+ int audioSource = Integer.parseInt(_sharedPreferences.getString(PreferenceKeys.APP_AUDIO_SOURCE, "6"));
+ int audioDestination = Integer.parseInt(_sharedPreferences.getString(PreferenceKeys.APP_AUDIO_DESTINATION, "1"));
+ constructSystemAudioDevices(transportType, audioSource, audioDestination);
}
- private void constructSystemAudioDevices(TransportFactory.TransportType transportType) {
+ private void constructSystemAudioDevices(TransportFactory.TransportType transportType, int audioSource, int audioDestination) {
int _audioRecorderMinBufferSize = AudioRecord.getMinBufferSize(
AUDIO_SAMPLE_SIZE,
AudioFormat.CHANNEL_IN_MONO,
AudioFormat.ENCODING_PCM_16BIT);
- boolean isVoiceCommunication = _sharedPreferences.getBoolean(PreferenceKeys.APP_AUDIO_INPUT_VOICE_COMMUNICATION, false);
- int audioSource = MediaRecorder.AudioSource.MIC;
- if (isVoiceCommunication) {
- audioSource = MediaRecorder.AudioSource.VOICE_COMMUNICATION;
- }
_systemAudioRecorder = new AudioRecord(
audioSource,
AUDIO_SAMPLE_SIZE,
@@ -122,15 +119,9 @@ public class AppWorker extends Thread {
AUDIO_SAMPLE_SIZE,
AudioFormat.CHANNEL_OUT_MONO,
AudioFormat.ENCODING_PCM_16BIT);
-
- boolean isSpeakerOutput = _sharedPreferences.getBoolean(PreferenceKeys.APP_AUDIO_OUTPUT_SPEAKER, true);
- int usage = AudioAttributes.USAGE_VOICE_COMMUNICATION;
- if (isSpeakerOutput) {
- usage = AudioAttributes.USAGE_MEDIA;
- }
_systemAudioPlayer = new AudioTrack.Builder()
.setAudioAttributes(new AudioAttributes.Builder()
- .setUsage(usage)
+ .setUsage(audioDestination)
.setContentType(AudioAttributes.CONTENT_TYPE_SPEECH)
.build())
.setAudioFormat(new AudioFormat.Builder()
@@ -144,7 +135,7 @@ public class AppWorker extends Thread {
// Use built in mic and speaker for speech when sound modem is in use
if (transportType == TransportFactory.TransportType.SOUND_MODEM) {
- selectBuiltinMicAndSpeakerEarpiece(isSpeakerOutput);
+ selectBuiltinMicAndSpeakerEarpiece(audioDestination != AudioAttributes.USAGE_VOICE_COMMUNICATION);
}
}
diff --git a/codec2talkie/src/main/java/com/radio/codec2talkie/settings/PreferenceKeys.java b/codec2talkie/src/main/java/com/radio/codec2talkie/settings/PreferenceKeys.java
index ccedce5..caa77cd 100644
--- a/codec2talkie/src/main/java/com/radio/codec2talkie/settings/PreferenceKeys.java
+++ b/codec2talkie/src/main/java/com/radio/codec2talkie/settings/PreferenceKeys.java
@@ -61,10 +61,10 @@ public final class PreferenceKeys {
public static String APP_KEEP_SCREEN_ON = "app_keep_screen_on";
public static String APP_NO_LOCK = "app_no_lock";
public static String APP_TURN_SCREEN_ON = "app_turn_screen_on";
- public static String APP_AUDIO_OUTPUT_SPEAKER = "app_audio_output_speaker";
- public static String APP_AUDIO_INPUT_VOICE_COMMUNICATION = "app_audio_input_voice_communication";
public static String APP_NOTIFICATIONS_VOICE = "app_notifications_voice";
public static String APP_NO_CPU_SLEEP = "app_no_cpu_sleep";
+ public static String APP_AUDIO_SOURCE = "app_audio_source";
+ public static String APP_AUDIO_DESTINATION = "app_audio_destination";
public static String AX25_VOAX25_ENABLE = "aprs_voax25_enable";
public static String AX25_CALLSIGN = "aprs_callsign";
diff --git a/codec2talkie/src/main/res/values/strings.xml b/codec2talkie/src/main/res/values/strings.xml
index dd6b6d6..aa13e8f 100644
--- a/codec2talkie/src/main/res/values/strings.xml
+++ b/codec2talkie/src/main/res/values/strings.xml
@@ -321,4 +321,6 @@
Select data mode
Audio source
Audio output
+ Audio source for speech
+ Audio output for speech
\ No newline at end of file
diff --git a/codec2talkie/src/main/res/xml/preferences.xml b/codec2talkie/src/main/res/xml/preferences.xml
index 6fa746b..d143d76 100644
--- a/codec2talkie/src/main/res/xml/preferences.xml
+++ b/codec2talkie/src/main/res/xml/preferences.xml
@@ -5,6 +5,24 @@
app:key="app_category"
app:title="@string/app_category_title">
+
+
+
+
+
+
-
-
-
-
-
-