summaryrefslogtreecommitdiffstats
path: root/src/utils/qdroidutils.cpp
diff options
context:
space:
mode:
authorYoann Lopes <yoann.lopes@digia.com>2013-06-19 12:22:26 +0200
committerEirik Aavitsland <eirik.aavitsland@digia.com>2013-08-28 10:18:35 +0300
commit1862fdee4f25fa0a4c57bcec8ea8568a8d9c4762 (patch)
tree02040d266e330f34201a38ac83c7817237aac13e /src/utils/qdroidutils.cpp
parent759947421c442435b5ae0ef08870a81519fb0401 (diff)
Added system volume settings for Android.
Change-Id: I4ea5f24303f69d93a031b07dbc056c62eea9d358 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@digia.com>
Diffstat (limited to 'src/utils/qdroidutils.cpp')
-rw-r--r--src/utils/qdroidutils.cpp94
1 files changed, 94 insertions, 0 deletions
diff --git a/src/utils/qdroidutils.cpp b/src/utils/qdroidutils.cpp
index 4247826..31ed09c 100644
--- a/src/utils/qdroidutils.cpp
+++ b/src/utils/qdroidutils.cpp
@@ -4,6 +4,7 @@
#ifdef Q_OS_ANDROID_NO_SDK
#include <cutils/android_reboot.h>
#include <hardware/lights.h>
+#include <media/AudioSystem.h>
#else
#include <sys/reboot.h>
#include <QNetworkInterface>
@@ -44,6 +45,99 @@ void QDroidUtils::powerOffSystem()
}
/*!
+ * Sets the master volume to \a volume.
+ * The volume can range from 0 to 100 and is linear.
+ * Changing the master volume will affect all audio streams.
+ *
+ * \sa setStreamVolume()
+ * \sa setMasterMute()
+ */
+void QDroidUtils::setMasterVolume(int volume)
+{
+#ifdef Q_OS_ANDROID_NO_SDK
+ volume = qBound(0, volume, 100);
+ android::AudioSystem::setMasterVolume(android::AudioSystem::linearToLog(volume));
+#endif
+}
+
+/*!
+ * Sets the master mute to \a mute. Setting it to true will disable all
+ * sounds on the device.
+ *
+ * \sa setMasterVolume()
+ * \sa setStreamMute()
+ */
+void QDroidUtils::setMasterMute(bool mute)
+{
+#ifdef Q_OS_ANDROID_NO_SDK
+ android::AudioSystem::setMasterMute(mute);
+#endif
+}
+
+/*!
+ \enum QDroidUtils::AudioStreamType
+ \value DefaultAudioStream
+ The default audio stream
+
+ \value VoiceCallAudioStream
+ The audio stream for phone calls
+
+ \value SystemAudioStream
+ The audio stream for system sounds
+
+ \value RingAudioStream
+ The audio stream for the phone ring
+
+ \value AlarmAudioStream
+ The audio stream for alarms
+
+ \value NotificationAudioStream
+ The audio stream for notifications
+
+ \value BluetoothAudioStream
+ The audio stream for audio transmitted over bluetooth
+
+ \value EnforcedAudibleAudioStream
+ Sounds that cannot be muted by user and must be routed to speaker
+
+ \value DTMFAudioStream
+ The audio stream for DTMF Tones
+
+ \value TTSAudioStream
+ The audio stream for text-to-speech
+*/
+
+/*!
+ * Sets the volume for a specific audio \a stream type to \a volume.
+ * The volume can range from 0 to 100 and is linear.
+ * All streams of the specified type will be affected.
+ *
+ * \sa setMasterVolume()
+ * \sa setStreamMute()
+ */
+void QDroidUtils::setStreamVolume(AudioStreamType streamType, int volume)
+{
+#ifdef Q_OS_ANDROID_NO_SDK
+ volume = qBound(0, volume, 100);
+ android::AudioSystem::setStreamVolume(audio_stream_type_t(streamType),
+ android::AudioSystem::linearToLog(volume), 0);
+#endif
+}
+
+/*!
+ * Mutes all audio \a streams of type \a streamType.
+ *
+ * \sa setStreamVolume()
+ * \sa setMasterMute()
+ */
+void QDroidUtils::setStreamMute(AudioStreamType streamType, bool mute)
+{
+#ifdef Q_OS_ANDROID_NO_SDK
+ android::AudioSystem::setStreamMute(audio_stream_type_t(streamType), mute);
+#endif
+}
+
+/*!
* Sets the display brightness (i.e. the intensity of the backlight)
* to \a value. A value of 255 requests maximum brightness, while 0 requests
* minimum (typically, the backlight turned off).