WIP on adding new tracks from demo while editor is running

This commit is contained in:
Daniel Collin 2013-06-29 22:15:45 +02:00
parent c93292fdda
commit 7319e6a8ca
3 changed files with 21 additions and 11 deletions

View File

@ -1,6 +1,7 @@
#include "TrackData.h"
#include "Commands.h"
#include "rlog.h"
#include <stdio.h>
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@ -40,7 +41,7 @@ static uint32_t s_colors[] =
uint32_t TrackData_getNextColor(TrackData* trackData)
{
return s_colors[(trackData->lastColor++) & 0x7];
return s_colors[trackData->lastColor++ & 0x7];
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@ -84,7 +85,9 @@ static Group* findOrCreateGroup(const char* name, TrackData* trackData)
group->name = strdup(name);
group->displayName = strdup(name);
group->displayName[strlen(name)-1] = 0;
group->trackCount = 0;
group->groupIndex = trackData->groupCount - 1;
printf("creating group %s\n", name);
return group;
}
@ -114,6 +117,9 @@ void TrackData_linkTrack(int index, const char* name, TrackData* trackData)
group->trackCount = 1;
track->group = group;
track->displayName = strdup(name);
printf("Linking track %s to group %s\n", name, name);
return;
}
@ -127,8 +133,10 @@ void TrackData_linkTrack(int index, const char* name, TrackData* trackData)
else
group->t.tracks = (Track**)realloc(group->t.tracks, sizeof(Track**) * (group->trackCount + 1));
group->t.tracks[group->trackCount] = track;
group->trackCount++;
printf("Linking track %s to group %s\n", name, group_name);
track->groupIndex = group->trackCount;
group->t.tracks[group->trackCount++] = track;
track->group = group;
track->displayName = strdup(&name[found + 1]);

View File

@ -31,6 +31,7 @@ typedef struct Track
int width; // width in pixels of the track
int index;
int groupIndex;
bool hidden;
bool folded;
bool selected;
@ -56,6 +57,7 @@ typedef struct Group
enum GroupType type;
int trackCount;
int groupIndex;
} Group;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

View File

@ -558,9 +558,9 @@ int TrackView_getScrolledTrack(TrackViewInfo* viewInfo, TrackData* trackData, in
bool TrackView_render(TrackViewInfo* viewInfo, TrackData* trackData)
{
struct TrackInfo info;
int start_track = 0; //viewInfo->startTrack;
int group_count;
int x_pos = 128;
int end_track = 0;
//int end_track = 0;
int i = 0;
//int track_size;
int adjust_top_size;
@ -612,13 +612,13 @@ bool TrackView_render(TrackViewInfo* viewInfo, TrackData* trackData)
//if (sel_track != trackData->activeTrack)
// TrackData_setActiveTrack(trackData, sel_track);
for (i = start_track, end_track = trackData->syncData.num_tracks; i < end_track; )
for (i = 0, group_count = trackData->groupCount; i < group_count; ++i)
{
Track* track = &trackData->tracks[i];
Group* group = track->group;
Group* group = &trackData->groups[i];
if (group->trackCount == 1)
{
Track* track = group->t.track;
int track_size = getTrackSize(viewInfo, track);
if ((x_pos + track_size > 0) && (x_pos < viewInfo->windowSizeX))
@ -630,11 +630,11 @@ bool TrackView_render(TrackViewInfo* viewInfo, TrackData* trackData)
}
x_pos += track_size;
++i;
}
else
{
x_pos += renderGroup(group, track, x_pos, &i, info, trackData);
int temp;
x_pos += renderGroup(group, group->t.tracks[0], x_pos, &temp, info, trackData);
}
}