Fixed: play GIF animation in SmilPlayer 00/102900/2 submit/tizen_3.0/20161208.125554
authorDenis Dolzhenko <d.dolzhenko@samsung.com>
Tue, 6 Dec 2016 16:13:00 +0000 (18:13 +0200)
committerDenis Dolzhenko <d.dolzhenko@samsung.com>
Wed, 7 Dec 2016 09:12:07 +0000 (11:12 +0200)
Change-Id: I25e459f6fb55698a09238f8dd2fbc6a8ef99f8c2
Signed-off-by: Denis Dolzhenko <d.dolzhenko@samsung.com>
src/Viewer/Controller/inc/SmilPlayer.h
src/Viewer/Controller/src/SmilPlayer.cpp

index bc5a1c6f15ea1526bf13d78c6a16d27a2968ffd8..fde78504954529d3e6c1f9d806c124e34fe08a5a 100644 (file)
@@ -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);
index b87728ed9880865a3a711e4a0ddc431153f564ae..68c713480a1e7f12e47eba3226d1568b6aebb891 100644 (file)
@@ -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