summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/qt_hw_init/main.cpp23
-rw-r--r--src/utils/qdroidutils.cpp22
-rw-r--r--src/utils/qdroidutils.h9
-rw-r--r--src/utils/utils.pro2
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