From 1862fdee4f25fa0a4c57bcec8ea8568a8d9c4762 Mon Sep 17 00:00:00 2001 From: Yoann Lopes Date: Wed, 19 Jun 2013 12:22:26 +0200 Subject: Added system volume settings for Android. Change-Id: I4ea5f24303f69d93a031b07dbc056c62eea9d358 Reviewed-by: Eirik Aavitsland --- src/utils/qdroidutils.cpp | 94 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 94 insertions(+) (limited to 'src/utils/qdroidutils.cpp') 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 #include +#include #else #include #include @@ -43,6 +44,99 @@ void QDroidUtils::powerOffSystem() qWarning("powerOff returned"); } +/*! + * 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 -- cgit v1.2.3