summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/phonon
diff options
context:
space:
mode:
Diffstat (limited to 'src/3rdparty/phonon')
-rw-r--r--src/3rdparty/phonon/mmf/abstractmediaplayer.cpp13
-rw-r--r--src/3rdparty/phonon/mmf/abstractmediaplayer.h2
2 files changed, 10 insertions, 5 deletions
diff --git a/src/3rdparty/phonon/mmf/abstractmediaplayer.cpp b/src/3rdparty/phonon/mmf/abstractmediaplayer.cpp
index 544762a..6356c21 100644
--- a/src/3rdparty/phonon/mmf/abstractmediaplayer.cpp
+++ b/src/3rdparty/phonon/mmf/abstractmediaplayer.cpp
@@ -369,6 +369,13 @@ void MMF::AbstractMediaPlayer::playbackComplete(int error)
{
stopTimers();
+ if (KErrNone == error && !m_aboutToFinishSent) {
+ const qint64 total = totalTime();
+ emit MMF::AbstractPlayer::tick(total);
+ m_aboutToFinishSent = true;
+ emit aboutToFinish();
+ }
+
if (KErrNone == error) {
changeState(StoppedState);
@@ -393,15 +400,13 @@ qint64 MMF::AbstractMediaPlayer::toMilliSeconds(const TTimeIntervalMicroSeconds
void MMF::AbstractMediaPlayer::positionTick()
{
- emitMarksIfReached();
-
const qint64 current = currentTime();
+ emitMarksIfReached(current);
emit MMF::AbstractPlayer::tick(current);
}
-void MMF::AbstractMediaPlayer::emitMarksIfReached()
+void MMF::AbstractMediaPlayer::emitMarksIfReached(qint64 current)
{
- const qint64 current = currentTime();
const qint64 total = totalTime();
const qint64 remaining = total - current;
diff --git a/src/3rdparty/phonon/mmf/abstractmediaplayer.h b/src/3rdparty/phonon/mmf/abstractmediaplayer.h
index abd6bff..308b5af 100644
--- a/src/3rdparty/phonon/mmf/abstractmediaplayer.h
+++ b/src/3rdparty/phonon/mmf/abstractmediaplayer.h
@@ -91,7 +91,7 @@ private:
void stopBufferStatusTimer();
void stopTimers();
void doVolumeChanged();
- void emitMarksIfReached();
+ void emitMarksIfReached(qint64 position);
void resetMarksIfRewound();
private Q_SLOTS: