mirror of
https://github.com/overte-org/overte.git
synced 2025-08-09 22:28:37 +02:00
Merge pull request #14252 from gcalero/enable_aec_by_default
Enabled AEC by default (bug 19210)
This commit is contained in:
commit
f68706e72f
7 changed files with 28 additions and 11 deletions
|
@ -210,11 +210,13 @@ JNIEXPORT void Java_io_highfidelity_hifiinterface_InterfaceActivity_nativeOnDest
|
||||||
JNIEXPORT void Java_io_highfidelity_hifiinterface_InterfaceActivity_nativeGotoUrl(JNIEnv* env, jobject obj, jstring url) {
|
JNIEXPORT void Java_io_highfidelity_hifiinterface_InterfaceActivity_nativeGotoUrl(JNIEnv* env, jobject obj, jstring url) {
|
||||||
QAndroidJniObject jniUrl("java/lang/String", "(Ljava/lang/String;)V", url);
|
QAndroidJniObject jniUrl("java/lang/String", "(Ljava/lang/String;)V", url);
|
||||||
DependencyManager::get<AddressManager>()->loadSettings(jniUrl.toString());
|
DependencyManager::get<AddressManager>()->loadSettings(jniUrl.toString());
|
||||||
|
AndroidHelper::instance().muteMic();
|
||||||
}
|
}
|
||||||
|
|
||||||
JNIEXPORT void Java_io_highfidelity_hifiinterface_InterfaceActivity_nativeGoToUser(JNIEnv* env, jobject obj, jstring username) {
|
JNIEXPORT void Java_io_highfidelity_hifiinterface_InterfaceActivity_nativeGoToUser(JNIEnv* env, jobject obj, jstring username) {
|
||||||
QAndroidJniObject jniUsername("java/lang/String", "(Ljava/lang/String;)V", username);
|
QAndroidJniObject jniUsername("java/lang/String", "(Ljava/lang/String;)V", username);
|
||||||
DependencyManager::get<AddressManager>()->goToUser(jniUsername.toString(), false);
|
DependencyManager::get<AddressManager>()->goToUser(jniUsername.toString(), false);
|
||||||
|
AndroidHelper::instance().muteMic();
|
||||||
}
|
}
|
||||||
|
|
||||||
JNIEXPORT void Java_io_highfidelity_hifiinterface_InterfaceActivity_nativeOnPause(JNIEnv* env, jobject obj) {
|
JNIEXPORT void Java_io_highfidelity_hifiinterface_InterfaceActivity_nativeOnPause(JNIEnv* env, jobject obj) {
|
||||||
|
|
|
@ -3,8 +3,8 @@ package io.highfidelity.hifiinterface.fragment;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
import android.media.audiofx.AcousticEchoCanceler;
|
import android.media.audiofx.AcousticEchoCanceler;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.preference.Preference;
|
|
||||||
import android.preference.PreferenceFragment;
|
import android.preference.PreferenceFragment;
|
||||||
|
import android.preference.PreferenceManager;
|
||||||
import android.support.annotation.Nullable;
|
import android.support.annotation.Nullable;
|
||||||
|
|
||||||
import io.highfidelity.hifiinterface.R;
|
import io.highfidelity.hifiinterface.R;
|
||||||
|
@ -18,17 +18,23 @@ public class SettingsFragment extends PreferenceFragment implements SharedPrefer
|
||||||
private final String HIFI_SETTINGS_AEC_KEY = "aec";
|
private final String HIFI_SETTINGS_AEC_KEY = "aec";
|
||||||
private final String PREFERENCE_KEY_AEC = "aec";
|
private final String PREFERENCE_KEY_AEC = "aec";
|
||||||
|
|
||||||
|
private final boolean DEFAULT_AEC_ENABLED = true;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(@Nullable Bundle savedInstanceState) {
|
public void onCreate(@Nullable Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
addPreferencesFromResource(R.xml.settings);
|
addPreferencesFromResource(R.xml.settings);
|
||||||
|
boolean aecAvailable = AcousticEchoCanceler.isAvailable();
|
||||||
|
PreferenceManager.setDefaultValues(getContext(), R.xml.settings, false);
|
||||||
|
|
||||||
if (!AcousticEchoCanceler.isAvailable()) {
|
if (!aecAvailable) {
|
||||||
getPreferenceScreen().getPreferenceManager().findPreference("aec").setEnabled(false);
|
findPreference(PREFERENCE_KEY_AEC).setEnabled(false);
|
||||||
|
updateHifiSetting(HIFI_SETTINGS_ANDROID_GROUP, HIFI_SETTINGS_AEC_KEY, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
getPreferenceScreen().getSharedPreferences().edit().putBoolean(PREFERENCE_KEY_AEC,
|
getPreferenceScreen().getSharedPreferences().edit().putBoolean(PREFERENCE_KEY_AEC,
|
||||||
getHifiSettingBoolean(HIFI_SETTINGS_ANDROID_GROUP, HIFI_SETTINGS_AEC_KEY, false));
|
aecAvailable && getHifiSettingBoolean(HIFI_SETTINGS_ANDROID_GROUP, HIFI_SETTINGS_AEC_KEY, DEFAULT_AEC_ENABLED)).commit();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static SettingsFragment newInstance() {
|
public static SettingsFragment newInstance() {
|
||||||
|
@ -46,15 +52,13 @@ public class SettingsFragment extends PreferenceFragment implements SharedPrefer
|
||||||
public void onPause() {
|
public void onPause() {
|
||||||
super.onPause();
|
super.onPause();
|
||||||
getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this);
|
getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
|
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
|
||||||
Preference pref = findPreference(key);
|
|
||||||
switch (key) {
|
switch (key) {
|
||||||
case "aec":
|
case PREFERENCE_KEY_AEC:
|
||||||
updateHifiSetting(HIFI_SETTINGS_ANDROID_GROUP, HIFI_SETTINGS_AEC_KEY, sharedPreferences.getBoolean(key, false));
|
updateHifiSetting(HIFI_SETTINGS_ANDROID_GROUP, HIFI_SETTINGS_AEC_KEY, sharedPreferences.getBoolean(key, DEFAULT_AEC_ENABLED));
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
<SwitchPreference
|
<SwitchPreference
|
||||||
android:key="aec"
|
android:key="aec"
|
||||||
android:title="@string/AEC"
|
android:title="@string/AEC"
|
||||||
android:summary="@string/acoustic_echo_cancellation" />
|
android:summary="@string/acoustic_echo_cancellation"
|
||||||
|
android:defaultValue="true" />
|
||||||
</PreferenceCategory>
|
</PreferenceCategory>
|
||||||
</PreferenceScreen>
|
</PreferenceScreen>
|
|
@ -73,6 +73,14 @@ void AndroidHelper::notifyHeadsetOn(bool pluggedIn) {
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void AndroidHelper::muteMic() {
|
||||||
|
auto audioClient = DependencyManager::get<AudioClient>();
|
||||||
|
if (audioClient) {
|
||||||
|
QMetaObject::invokeMethod(audioClient.data(), "setMuted", Q_ARG(bool, true), Q_ARG(bool, true));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void AndroidHelper::signup(QString email, QString username, QString password) {
|
void AndroidHelper::signup(QString email, QString username, QString password) {
|
||||||
JSONCallbackParameters callbackParams;
|
JSONCallbackParameters callbackParams;
|
||||||
callbackParams.callbackReceiver = this;
|
callbackParams.callbackReceiver = this;
|
||||||
|
|
|
@ -35,6 +35,7 @@ public:
|
||||||
void performHapticFeedback(int duration);
|
void performHapticFeedback(int duration);
|
||||||
void processURL(const QString &url);
|
void processURL(const QString &url);
|
||||||
void notifyHeadsetOn(bool pluggedIn);
|
void notifyHeadsetOn(bool pluggedIn);
|
||||||
|
void muteMic();
|
||||||
|
|
||||||
AndroidHelper(AndroidHelper const&) = delete;
|
AndroidHelper(AndroidHelper const&) = delete;
|
||||||
void operator=(AndroidHelper const&) = delete;
|
void operator=(AndroidHelper const&) = delete;
|
||||||
|
|
|
@ -483,7 +483,7 @@ QAudioDeviceInfo defaultAudioDeviceForMode(QAudio::Mode mode) {
|
||||||
|
|
||||||
#if defined (Q_OS_ANDROID)
|
#if defined (Q_OS_ANDROID)
|
||||||
if (mode == QAudio::AudioInput) {
|
if (mode == QAudio::AudioInput) {
|
||||||
Setting::Handle<bool> enableAEC(SETTING_AEC_KEY, false);
|
Setting::Handle<bool> enableAEC(SETTING_AEC_KEY, DEFAULT_AEC_ENABLED);
|
||||||
bool aecEnabled = enableAEC.get();
|
bool aecEnabled = enableAEC.get();
|
||||||
auto audioClient = DependencyManager::get<AudioClient>();
|
auto audioClient = DependencyManager::get<AudioClient>();
|
||||||
bool headsetOn = audioClient? audioClient->isHeadsetPluggedIn() : false;
|
bool headsetOn = audioClient? audioClient->isHeadsetPluggedIn() : false;
|
||||||
|
@ -1691,7 +1691,7 @@ void AudioClient::setHeadsetPluggedIn(bool pluggedIn) {
|
||||||
QThread::msleep(200);
|
QThread::msleep(200);
|
||||||
}
|
}
|
||||||
|
|
||||||
Setting::Handle<bool> enableAEC(SETTING_AEC_KEY, false);
|
Setting::Handle<bool> enableAEC(SETTING_AEC_KEY, DEFAULT_AEC_ENABLED);
|
||||||
bool aecEnabled = enableAEC.get();
|
bool aecEnabled = enableAEC.get();
|
||||||
|
|
||||||
if ((pluggedIn || !aecEnabled) && _inputDeviceInfo.deviceName() != VOICE_RECOGNITION) {
|
if ((pluggedIn || !aecEnabled) && _inputDeviceInfo.deviceName() != VOICE_RECOGNITION) {
|
||||||
|
|
|
@ -68,6 +68,7 @@
|
||||||
#define VOICE_COMMUNICATION "voicecommunication"
|
#define VOICE_COMMUNICATION "voicecommunication"
|
||||||
|
|
||||||
#define SETTING_AEC_KEY "Android/aec"
|
#define SETTING_AEC_KEY "Android/aec"
|
||||||
|
#define DEFAULT_AEC_ENABLED true
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
class QAudioInput;
|
class QAudioInput;
|
||||||
|
|
Loading…
Reference in a new issue