From 8d7ffc4d92f7f0f1cee62084e3049b2683311990 Mon Sep 17 00:00:00 2001 From: Denis Dolzhenko Date: Tue, 6 Dec 2016 18:13:00 +0200 Subject: [PATCH] Fixed: play GIF animation in SmilPlayer Change-Id: I25e459f6fb55698a09238f8dd2fbc6a8ef99f8c2 Signed-off-by: Denis Dolzhenko --- src/Viewer/Controller/inc/SmilPlayer.h | 1 + src/Viewer/Controller/src/SmilPlayer.cpp | 15 +++++++++++---- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/Viewer/Controller/inc/SmilPlayer.h b/src/Viewer/Controller/inc/SmilPlayer.h index bc5a1c6f..fde78504 100644 --- a/src/Viewer/Controller/inc/SmilPlayer.h +++ b/src/Viewer/Controller/inc/SmilPlayer.h @@ -73,6 +73,7 @@ namespace Msg bool playPage(); bool canPlay(SmilPage *page); void startMedia(); + void playAnimation(bool start); void stopMedia(); void prepareMedia(); void create(const MessageMms &mms); diff --git a/src/Viewer/Controller/src/SmilPlayer.cpp b/src/Viewer/Controller/src/SmilPlayer.cpp index b87728ed..68c71348 100644 --- a/src/Viewer/Controller/src/SmilPlayer.cpp +++ b/src/Viewer/Controller/src/SmilPlayer.cpp @@ -138,6 +138,7 @@ void SmilPlayer::start() setState(PlayState); continueTimer(); startMedia(); + playAnimation(true); } } else { MSG_LOG("Restart"); @@ -154,6 +155,7 @@ void SmilPlayer::stop() { pauseTimer(); stopMedia(); + playAnimation(false); setState(StopState); } @@ -172,6 +174,7 @@ bool SmilPlayer::playPage() SmilPlayerView::displayPage(*page); startTimer(page->getDuration()); + playAnimation(true); if (page->hasMedia()) { @@ -221,9 +224,6 @@ void SmilPlayer::stopMedia() { if (m_MediaPlayer) m_MediaPlayer->pause(); - SmilPage *page = getCurrentPage(); - if (page) - page->playAnimation(false); } bool SmilPlayer::canPlay(SmilPage *page) @@ -247,7 +247,14 @@ void SmilPlayer::startMedia() if (page->hasMedia() && m_MediaPlayer) m_MediaPlayer->start(); - page->playAnimation(true); +} + +void SmilPlayer::playAnimation(bool start) +{ + SmilPage *page = getCurrentPage(); + if (!page || !page->hasAnimation()) + return; + page->playAnimation(start); } double SmilPlayer::getPosition() const -- 2.34.1