diff options
author | Jaakko Helanti <ext-jaakko.helanti@nokia.com> | 2012-06-18 12:20:03 +0300 |
---|---|---|
committer | Aapo Haapanen <ext-aapo.haapanen@nokia.com> | 2012-06-18 12:25:46 +0300 |
commit | 940db30b4b2045a818d6d862a2d9587d965388f3 (patch) | |
tree | b1f57dc11d7f27d9ddddf342187f40f41fb48560 | |
parent | 198f1a3979c58957e19c5caf29cde120f346068c (diff) |
Symbian: Fix initial volume setting
This commit fixes the problem that when starting to play audio,
the initial volume setting does not have any effect, but audio
is played with a default volume.
Task-number: QTMOBILITY-2061
Reviewed-by: Marko Kenttala <ext-marko.r.kenttala@nokia.com>
-rw-r--r-- | plugins/multimedia/symbian/mmf/mediaplayer/s60mediaplayersession.cpp | 38 | ||||
-rw-r--r-- | plugins/multimedia/symbian/mmf/mediaplayer/s60mediaplayersession.h | 1 |
2 files changed, 19 insertions, 20 deletions
diff --git a/plugins/multimedia/symbian/mmf/mediaplayer/s60mediaplayersession.cpp b/plugins/multimedia/symbian/mmf/mediaplayer/s60mediaplayersession.cpp index 79638d00eb..4d61cb626b 100644 --- a/plugins/multimedia/symbian/mmf/mediaplayer/s60mediaplayersession.cpp +++ b/plugins/multimedia/symbian/mmf/mediaplayer/s60mediaplayersession.cpp @@ -85,16 +85,8 @@ void S60MediaPlayerSession::setVolume(int volume) TRACE("S60MediaPlayerSession::setVolume" << qtThisPtr() << "volume" << volume); m_volume = volume; emit volumeChanged(m_volume); - // Don't set player volume until media loaded - if (!m_muted && - ( mediaStatus() == QMediaPlayer::LoadedMedia - || (mediaStatus() == QMediaPlayer::StalledMedia && state() != QMediaPlayer::StoppedState) - || mediaStatus() == QMediaPlayer::BufferingMedia - || mediaStatus() == QMediaPlayer::BufferedMedia - || mediaStatus() == QMediaPlayer::EndOfMedia)) { - TRAPD(err, doSetVolumeL(m_volume)); - setError(err); - } + if (!m_muted) + updateVolume(); } bool S60MediaPlayerSession::isMuted() const @@ -183,8 +175,7 @@ void S60MediaPlayerSession::play() } m_play_requested = false; m_duration = duration(); - setVolume(m_volume); - setMuted(m_muted); + updateVolume(); startProgressTimer(); doPlay(); } @@ -364,14 +355,7 @@ void S60MediaPlayerSession::setMuted(bool muted) TRACE("S60MediaPlayerSession::setMuted" << qtThisPtr() << "muted" << muted); m_muted = muted; emit mutedChanged(m_muted); - if( m_mediaStatus == QMediaPlayer::LoadedMedia - || (m_mediaStatus == QMediaPlayer::StalledMedia && state() != QMediaPlayer::StoppedState) - || m_mediaStatus == QMediaPlayer::BufferingMedia - || m_mediaStatus == QMediaPlayer::BufferedMedia - || m_mediaStatus == QMediaPlayer::EndOfMedia) { - TRAPD(err, doSetVolumeL((m_muted)?0:m_volume)); - setError(err); - } + updateVolume(); } } @@ -639,3 +623,17 @@ void S60MediaPlayerSession::stopStalledTimer() TRACE("S60MediaPlayerSession::stopStalledTimer" << qtThisPtr()); m_stalledTimer->stop(); } + +void S60MediaPlayerSession::updateVolume() +{ + TRACE("S60MediaPlayerSession::updateVolume" << qtThisPtr()); + // Don't set player volume until media loaded + if( m_mediaStatus == QMediaPlayer::LoadedMedia + || (m_mediaStatus == QMediaPlayer::StalledMedia && state() != QMediaPlayer::StoppedState) + || m_mediaStatus == QMediaPlayer::BufferingMedia + || m_mediaStatus == QMediaPlayer::BufferedMedia + || m_mediaStatus == QMediaPlayer::EndOfMedia) { + TRAPD(err, doSetVolumeL(m_muted ? 0 : m_volume)); + setError(err); + } +} diff --git a/plugins/multimedia/symbian/mmf/mediaplayer/s60mediaplayersession.h b/plugins/multimedia/symbian/mmf/mediaplayer/s60mediaplayersession.h index cbba418b28..8066d7d574 100644 --- a/plugins/multimedia/symbian/mmf/mediaplayer/s60mediaplayersession.h +++ b/plugins/multimedia/symbian/mmf/mediaplayer/s60mediaplayersession.h @@ -129,6 +129,7 @@ protected: void stopProgressTimer(); void startStalledTimer(); void stopStalledTimer(); + void updateVolume(); protected slots: void tick(); |