WIP on adding new tracks from demo while editor is running
This commit is contained in:
parent
c93292fdda
commit
7319e6a8ca
@ -1,6 +1,7 @@
|
|||||||
#include "TrackData.h"
|
#include "TrackData.h"
|
||||||
#include "Commands.h"
|
#include "Commands.h"
|
||||||
#include "rlog.h"
|
#include "rlog.h"
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
@ -40,7 +41,7 @@ static uint32_t s_colors[] =
|
|||||||
|
|
||||||
uint32_t TrackData_getNextColor(TrackData* trackData)
|
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->name = strdup(name);
|
||||||
group->displayName = strdup(name);
|
group->displayName = strdup(name);
|
||||||
group->displayName[strlen(name)-1] = 0;
|
group->displayName[strlen(name)-1] = 0;
|
||||||
group->trackCount = 0;
|
group->groupIndex = trackData->groupCount - 1;
|
||||||
|
|
||||||
|
printf("creating group %s\n", name);
|
||||||
|
|
||||||
return group;
|
return group;
|
||||||
}
|
}
|
||||||
@ -114,6 +117,9 @@ void TrackData_linkTrack(int index, const char* name, TrackData* trackData)
|
|||||||
group->trackCount = 1;
|
group->trackCount = 1;
|
||||||
track->group = group;
|
track->group = group;
|
||||||
track->displayName = strdup(name);
|
track->displayName = strdup(name);
|
||||||
|
|
||||||
|
printf("Linking track %s to group %s\n", name, name);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -127,8 +133,10 @@ void TrackData_linkTrack(int index, const char* name, TrackData* trackData)
|
|||||||
else
|
else
|
||||||
group->t.tracks = (Track**)realloc(group->t.tracks, sizeof(Track**) * (group->trackCount + 1));
|
group->t.tracks = (Track**)realloc(group->t.tracks, sizeof(Track**) * (group->trackCount + 1));
|
||||||
|
|
||||||
group->t.tracks[group->trackCount] = track;
|
printf("Linking track %s to group %s\n", name, group_name);
|
||||||
group->trackCount++;
|
|
||||||
|
track->groupIndex = group->trackCount;
|
||||||
|
group->t.tracks[group->trackCount++] = track;
|
||||||
|
|
||||||
track->group = group;
|
track->group = group;
|
||||||
track->displayName = strdup(&name[found + 1]);
|
track->displayName = strdup(&name[found + 1]);
|
||||||
|
|||||||
@ -31,6 +31,7 @@ typedef struct Track
|
|||||||
|
|
||||||
int width; // width in pixels of the track
|
int width; // width in pixels of the track
|
||||||
int index;
|
int index;
|
||||||
|
int groupIndex;
|
||||||
bool hidden;
|
bool hidden;
|
||||||
bool folded;
|
bool folded;
|
||||||
bool selected;
|
bool selected;
|
||||||
@ -56,6 +57,7 @@ typedef struct Group
|
|||||||
|
|
||||||
enum GroupType type;
|
enum GroupType type;
|
||||||
int trackCount;
|
int trackCount;
|
||||||
|
int groupIndex;
|
||||||
} Group;
|
} Group;
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|||||||
@ -558,9 +558,9 @@ int TrackView_getScrolledTrack(TrackViewInfo* viewInfo, TrackData* trackData, in
|
|||||||
bool TrackView_render(TrackViewInfo* viewInfo, TrackData* trackData)
|
bool TrackView_render(TrackViewInfo* viewInfo, TrackData* trackData)
|
||||||
{
|
{
|
||||||
struct TrackInfo info;
|
struct TrackInfo info;
|
||||||
int start_track = 0; //viewInfo->startTrack;
|
int group_count;
|
||||||
int x_pos = 128;
|
int x_pos = 128;
|
||||||
int end_track = 0;
|
//int end_track = 0;
|
||||||
int i = 0;
|
int i = 0;
|
||||||
//int track_size;
|
//int track_size;
|
||||||
int adjust_top_size;
|
int adjust_top_size;
|
||||||
@ -612,13 +612,13 @@ bool TrackView_render(TrackViewInfo* viewInfo, TrackData* trackData)
|
|||||||
//if (sel_track != trackData->activeTrack)
|
//if (sel_track != trackData->activeTrack)
|
||||||
// TrackData_setActiveTrack(trackData, sel_track);
|
// 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 = &trackData->groups[i];
|
||||||
Group* group = track->group;
|
|
||||||
|
|
||||||
if (group->trackCount == 1)
|
if (group->trackCount == 1)
|
||||||
{
|
{
|
||||||
|
Track* track = group->t.track;
|
||||||
int track_size = getTrackSize(viewInfo, track);
|
int track_size = getTrackSize(viewInfo, track);
|
||||||
|
|
||||||
if ((x_pos + track_size > 0) && (x_pos < viewInfo->windowSizeX))
|
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;
|
x_pos += track_size;
|
||||||
++i;
|
|
||||||
}
|
}
|
||||||
else
|
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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user