Showing the changes to interface/src/AndroidHelper.cpp (1 of 13 files). Show all
Unified · Split
| @@ -10,6 +10,7 @@ · 9 unmodified lines | ||
| 10 | 10 | // |
| 11 | 11 | #include "AndroidHelper.h" |
| 12 | 12 | #include <QDebug> |
| 13 | +#include <AudioClient.h> | |
| 13 | 14 | #include "Application.h" |
| 14 | 15 | |
| 15 | 16 | #if defined(qApp) |
| @@ -18,6 +19,7 @@ · 2 unmodified lines | ||
| 18 | 19 | #define qApp (static_cast<Application*>(QCoreApplication::instance())) |
| 19 | 20 | |
| 20 | 21 | AndroidHelper::AndroidHelper() { |
| 22 | + qRegisterMetaType<QAudio::Mode>("QAudio::Mode"); | |
| 21 | 23 | } |
| 22 | 24 | |
| 23 | 25 | AndroidHelper::~AndroidHelper() { |
| @@ -56,3 +58,18 @@ void AndroidHelper::processURL(const QString &url) { · 32 unmodified lines | ||
| 56 | 58 | qApp->acceptURL(url); |
| 57 | 59 | } |
| 58 | 60 | } |
| 61 | + | |
| 62 | +void AndroidHelper::notifyHeadsetOn(bool pluggedIn) { | |
| 63 | +#if defined (Q_OS_ANDROID) | |
| 64 | + auto audioClient = DependencyManager::get<AudioClient>(); | |
| 65 | + if (audioClient) { | |
| 66 | + QAudioDeviceInfo activeDev = audioClient->getActiveAudioDevice(QAudio::AudioInput); | |
| 67 | + Setting::Handle<bool> enableAEC(QStringList() << ANDROID_SETTINGS_GROUP << SETTING_AEC_KEY, false); | |
| 68 | + if ((pluggedIn || !enableAEC.get()) && !activeDev.isNull() && activeDev.deviceName() != VOICE_RECOGNITION) { | |
| 69 | + QMetaObject::invokeMethod(audioClient.get(), "switchAudioDevice", Q_ARG(QAudio::Mode, QAudio::AudioInput), Q_ARG(QString, VOICE_RECOGNITION)); | |
| 70 | + } else if ( (!pluggedIn && enableAEC.get()) && !activeDev.isNull() && activeDev.deviceName() != VOICE_COMMUNICATION) { | |
| 71 | + QMetaObject::invokeMethod(audioClient.get(), "switchAudioDevice", Q_ARG(QAudio::Mode, QAudio::AudioInput), Q_ARG(QString, VOICE_COMMUNICATION)); | |
| 72 | + } | |
| 73 | + } | |
| 74 | +#endif | |
| 75 | +} | |