changeset 638:b22db2832f3e

Some work on the timeline code.
author Matti Hamalainen <ccr@tnsp.org>
date Mon, 15 Apr 2013 07:48:25 +0300
parents 4defddd64ed2
children 62f5861d332b
files dmengine.h dmtimeline.c dmtimelinew.c
diffstat 3 files changed, 16 insertions(+), 14 deletions(-) [+]
line wrap: on
line diff
--- a/dmengine.h	Mon Apr 15 07:28:34 2013 +0300
+++ b/dmengine.h	Mon Apr 15 07:48:25 2013 +0300
@@ -142,6 +142,7 @@
 
 typedef struct
 {
+    Uint32 index, layer;
     char name[DT_MAX_NAME_LENGTH];
     Uint8 enabled;
     Uint32 nevents;
@@ -150,9 +151,10 @@
 
 typedef struct
 {
+    int index;         // Track index
+    int layer;         // Target render layer (0 = engine.screen in software rendering)
     char *name;        // Name of the timeline track
     BOOL enabled;      // Enabled?
-    int layer;         // Target render layer (0 = engine.screen in software rendering)
 
     int nevents, nallocated;    // Number of events
     DMTimelineEvent **events;   // Events
--- a/dmtimeline.c	Mon Apr 15 07:28:34 2013 +0300
+++ b/dmtimeline.c	Mon Apr 15 07:48:25 2013 +0300
@@ -196,11 +196,11 @@
     if ((*ptrack = track = dmMalloc0(sizeof(DMTimelineTrack))) == NULL)
         return DMERR_MALLOC;
 
-    if (!dmf_read_str(res, &hdr.name, sizeof(hdr.name)))
-        return DMERR_FREAD;
-
-    hdr.enabled = dmfgetc(res);
-    if (!dmf_read_le32(res, &hdr.nevents))
+    if (!dmf_read_le32(res, &hdr.index) ||
+        !dmf_read_le32(res, &hdr.layer) ||
+        !dmf_read_str(res, &hdr.name, sizeof(hdr.name)) ||
+        !dmf_read_byte(res, &hdr.enabled) ||
+        !dmf_read_le32(res, &hdr.nevents))
         return DMERR_FREAD;
 
     if (hdr.nevents >= 4096)
--- a/dmtimelinew.c	Mon Apr 15 07:28:34 2013 +0300
+++ b/dmtimelinew.c	Mon Apr 15 07:48:25 2013 +0300
@@ -72,7 +72,9 @@
 {
     int err;
 
-    dmfputc(curve->enabled, res);
+    if (!dmf_write_byte(res, curve->enabled))
+        return DMERR_FWRITE;
+
     if ((err = dmSaveTimelinePoints(res, &(curve->points), EFPT_FLOAT)) != DMERR_OK)
         return err;
     
@@ -149,14 +151,12 @@
     DMFTimelineTrack hdr;
     
     strncpy(hdr.name, track->name, sizeof(hdr.name));
-    hdr.enabled = track->enabled;
-    hdr.nevents = track->nevents;
 
-    if (!dmf_write_str(res, hdr.name, sizeof(hdr.name)))
-        return DMERR_FWRITE;
-
-    dmfputc(hdr.enabled, res);
-    if (!dmf_write_le32(res, hdr.nevents))
+    if (!dmf_write_le32(res, track->index) ||
+        !dmf_write_le32(res, track->layer) ||
+        !dmf_write_str(res, hdr.name, sizeof(hdr.name)) ||
+        !dmf_write_byte(res, track->enabled) ||
+        !dmf_write_le32(res, track->nevents))
         return DMERR_FWRITE;
 
     for (event = 0; event < track->nevents; event++)