[gimp/wip/animation: 97/145] plug-ins: playback state not reloaded properly in animatics.



commit c30d5f5373b36aeb958919dae127f4ea87817fa4
Author: Jehan <jehan girinstud io>
Date:   Wed Apr 5 16:44:43 2017 +0200

    plug-ins: playback state not reloaded properly in animatics.
    
    Commit 4fb1466 added the feature, working in cel animation, not in
    animatics. Fix it.

 plug-ins/animation-play/core/animation-animatic.c |   20 +++++++++++++++++---
 1 files changed, 17 insertions(+), 3 deletions(-)
---
diff --git a/plug-ins/animation-play/core/animation-animatic.c 
b/plug-ins/animation-play/core/animation-animatic.c
index 2088980..92fe0a0 100644
--- a/plug-ins/animation-play/core/animation-animatic.c
+++ b/plug-ins/animation-play/core/animation-animatic.c
@@ -30,6 +30,7 @@ typedef enum
 {
   START_STATE,
   ANIMATION_STATE,
+  PLAYBACK_STATE,
   SEQUENCE_STATE,
   PANEL_STATE,
   LAYER_STATE,
@@ -658,15 +659,22 @@ animation_animatic_start_element (GMarkupParseContext *context,
       status->state = ANIMATION_STATE;
       break;
     case ANIMATION_STATE:
-      if (g_strcmp0 (element_name, "sequence") != 0)
+      if (g_strcmp0 (element_name, "sequence") == 0)
+        {
+          status->state = SEQUENCE_STATE;
+          status->panel = -1;
+        }
+      else if (g_strcmp0 (element_name, "playback") == 0)
+        {
+          status->state = PLAYBACK_STATE;
+        }
+      else
         {
           g_set_error (error, 0, 0,
                        _("Unknown sequence tag: \"%s\"."),
                        element_name);
           return;
         }
-      status->state = SEQUENCE_STATE;
-      status->panel = -1;
       break;
     case SEQUENCE_STATE:
       if (g_strcmp0 (element_name, "panel") != 0)
@@ -701,6 +709,9 @@ animation_animatic_start_element (GMarkupParseContext *context,
         priv->combine[status->panel] = combine;
       status->state = PANEL_STATE;
       break;
+    case PLAYBACK_STATE:
+      /* Leave processing to the playback. */
+      break;
     case PANEL_STATE:
       if (g_strcmp0 (element_name, "layer") != 0)
         {
@@ -790,6 +801,9 @@ animation_animatic_end_element (GMarkupParseContext *context,
     case ANIMATION_STATE:
       status->state = END_STATE;
       break;
+    case PLAYBACK_STATE:
+      status->state = ANIMATION_STATE;
+      break;
     case COMMENT_STATE:
       status->state = COMMENTS_STATE;
       break;


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]