diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/qt_hw_init/main.cpp | 23 | ||||
-rw-r--r-- | src/utils/qdroidutils.cpp | 22 | ||||
-rw-r--r-- | src/utils/qdroidutils.h | 9 | ||||
-rw-r--r-- | src/utils/utils.pro | 2 |
4 files changed, 35 insertions, 21 deletions
diff --git a/src/qt_hw_init/main.cpp b/src/qt_hw_init/main.cpp index 9fb810a..3419c21 100644 --- a/src/qt_hw_init/main.cpp +++ b/src/qt_hw_init/main.cpp @@ -3,6 +3,9 @@ static void setMaxVolume(QDroidUtils *utils) { + // Set the audio orientation to something to force the HW driver to reconfigure + // audio routing (workaround for bug on Nexus 7) + utils->setOrientationForAudioSystem(QDroidUtils::LandscapeAudioOrientation); utils->setMasterVolume(100); utils->setMasterMute(false); utils->setStreamVolume(QDroidUtils::SystemAudioStream, 100); @@ -16,32 +19,12 @@ static void setDisplayBrightness(QDroidUtils *utils) utils->setDisplayBrightness(255); } -static void showValues(QDroidUtils *utils) -{ - qDebug() << "Master volume:" << utils->masterVolume(); - qDebug() << "Master mute:" << utils->masterMute(); - qDebug() << "System audio volume:" << utils->streamVolume(QDroidUtils::SystemAudioStream); - qDebug() << "System audio mute:" << utils->streamMute(QDroidUtils::SystemAudioStream); - qDebug() << "Music audio volume:" << utils->streamVolume(QDroidUtils::MusicAudioStream); - qDebug() << "Music audio mute:" << utils->streamMute(QDroidUtils::MusicAudioStream); - qDebug() << "Notification audio volume:" << utils->streamVolume(QDroidUtils::NotificationAudioStream); - qDebug() << "Notification audio mute:" << utils->streamMute(QDroidUtils::NotificationAudioStream); - qDebug() << "EnforcedAudible audio volume:" << utils->streamVolume(QDroidUtils::EnforcedAudibleAudioStream); - qDebug() << "EnforcedAudible audio mute:" << utils->streamMute(QDroidUtils::EnforcedAudibleAudioStream); -} - int main(int, char *[]) { QDroidUtils utils; - qDebug() << "Audio settings before change:"; - showValues(&utils); - setMaxVolume(&utils); setDisplayBrightness(&utils); - qDebug() << "Audio settings after change:"; - showValues(&utils); - return 0; } diff --git a/src/utils/qdroidutils.cpp b/src/utils/qdroidutils.cpp index f2194c4..da443c9 100644 --- a/src/utils/qdroidutils.cpp +++ b/src/utils/qdroidutils.cpp @@ -45,6 +45,28 @@ void QDroidUtils::powerOffSystem() qWarning("powerOff returned"); } +void QDroidUtils::setOrientationForAudioSystem(AudioOrientation orientation) +{ +#ifdef Q_OS_ANDROID_NO_SDK + QString orientationString = QStringLiteral("undefined"); + switch (orientation) { + case LandscapeAudioOrientation: + orientationString = QStringLiteral("landscape"); + break; + case PortraitAudioOrientation: + orientationString = QStringLiteral("portrait"); + break; + case SquareAudioOrientation: + orientationString = QStringLiteral("square"); + break; + default: + break; + } + android::AudioSystem::setParameters(0, android::String8(QStringLiteral("orientation=%2") + .arg(orientationString).toLatin1().constData())); +#endif +} + /*! * Sets the master volume to \a volume. * The volume can range from 0 to 100 and is linear. diff --git a/src/utils/qdroidutils.h b/src/utils/qdroidutils.h index 339a529..b0f9061 100644 --- a/src/utils/qdroidutils.h +++ b/src/utils/qdroidutils.h @@ -8,6 +8,13 @@ class Q_DECL_EXPORT QDroidUtils : public QObject Q_OBJECT Q_ENUMS(AudioStreamType) public: + enum AudioOrientation { + LandscapeAudioOrientation, + PortraitAudioOrientation, + SquareAudioOrientation, + UndefinedAudioOrientation, + }; + enum AudioStreamType { DefaultAudioStream = -1, VoiceCallAudioStream = 0, @@ -36,6 +43,8 @@ public Q_SLOTS: void rebootSystem(); void powerOffSystem(); + void setOrientationForAudioSystem(AudioOrientation orientation); + void setMasterVolume(int volume); void setMasterMute(bool mute); void setStreamVolume(AudioStreamType stream, int volume); diff --git a/src/utils/utils.pro b/src/utils/utils.pro index 5711337..a15231f 100644 --- a/src/utils/utils.pro +++ b/src/utils/utils.pro @@ -11,7 +11,7 @@ QT = core network MODULE = droidutils load(qt_module) -android: LIBS += -lmedia -lhardware -lcutils +android: LIBS += -lmedia -lhardware -lcutils -lutils HEADERS += \ $$PWD/qdroidutils.h |