# HG changeset patch # User Matti Hamalainen # Date 1366001305 -10800 # Node ID b22db2832f3ed2d34db93e9315a127d327495790 # Parent 4defddd64ed28c58294c6a5bbeb5aca708540fd6 Some work on the timeline code. diff -r 4defddd64ed2 -r b22db2832f3e dmengine.h --- 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 diff -r 4defddd64ed2 -r b22db2832f3e dmtimeline.c --- 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) diff -r 4defddd64ed2 -r b22db2832f3e dmtimelinew.c --- 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++)