Clamping so we don't index outside of the available tracks
This commit is contained in:
parent
638e01e9d5
commit
84746aa8b6
@ -52,7 +52,7 @@ static void renderChannel(struct sync_track* track, int startX, int startY, int
|
|||||||
uint x, y;
|
uint x, y;
|
||||||
|
|
||||||
uint32_t color = Emgui_color32(40, 40, 40, 255);
|
uint32_t color = Emgui_color32(40, 40, 40, 255);
|
||||||
Emgui_drawBorder(color, color, startX, startY - 20, 128, 600);
|
Emgui_drawBorder(color, color, startX, startY - 20, 160, 600);
|
||||||
|
|
||||||
if (track)
|
if (track)
|
||||||
Emgui_drawText(track->name, startX + 2, startY + 2, Emgui_color32(0xff, 0xff, 0xff, 0xff));
|
Emgui_drawText(track->name, startX + 2, startY + 2, Emgui_color32(0xff, 0xff, 0xff, 0xff));
|
||||||
@ -126,9 +126,20 @@ int doMax(int a, int b)
|
|||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
static inline int min(int a, int b)
|
||||||
|
{
|
||||||
|
if (a < b)
|
||||||
|
return a;
|
||||||
|
else
|
||||||
|
return b;
|
||||||
|
}
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
void TrackView_render(const TrackViewInfo* viewInfo, TrackData* trackData)
|
void TrackView_render(const TrackViewInfo* viewInfo, TrackData* trackData)
|
||||||
{
|
{
|
||||||
struct sync_data* syncData = &trackData->syncData;
|
struct sync_data* syncData = &trackData->syncData;
|
||||||
|
const int sel_track = trackData->activeTrack;
|
||||||
|
|
||||||
// TODO: Calculate how many channels we can draw given the width
|
// TODO: Calculate how many channels we can draw given the width
|
||||||
|
|
||||||
@ -148,24 +159,31 @@ void TrackView_render(const TrackViewInfo* viewInfo, TrackData* trackData)
|
|||||||
|
|
||||||
int num_tracks = syncData->num_tracks;
|
int num_tracks = syncData->num_tracks;
|
||||||
|
|
||||||
if (num_tracks > 4)
|
if (num_tracks > 5)
|
||||||
num_tracks = 4;
|
num_tracks = 5;
|
||||||
|
|
||||||
for (i = 0; i < num_tracks; ++i)
|
int start_track = 0;
|
||||||
|
|
||||||
|
if (sel_track > 3)
|
||||||
|
start_track = sel_track - 3;
|
||||||
|
|
||||||
|
int x_pos = 40;
|
||||||
|
|
||||||
|
for (i = start_track; i < min(start_track + num_tracks, syncData->num_tracks - 1); ++i)
|
||||||
{
|
{
|
||||||
int x = 40 + (i * 128);
|
renderChannel(syncData->tracks[i], x_pos, 42,
|
||||||
|
|
||||||
renderChannel(syncData->tracks[i], x, 42,
|
|
||||||
(start_pos + viewInfo->rowPos),
|
(start_pos + viewInfo->rowPos),
|
||||||
(start_pos + viewInfo->rowPos + 40));
|
(start_pos + viewInfo->rowPos + 40));
|
||||||
|
|
||||||
if (trackData->activeTrack == i)
|
if (sel_track == i)
|
||||||
{
|
{
|
||||||
Emgui_fill(Emgui_color32(0xff, 0xff, 0x00, 0x80), x, 257, 128, font_size + 2);
|
Emgui_fill(Emgui_color32(0xff, 0xff, 0x00, 0x80), x_pos, 257, 160, font_size + 2);
|
||||||
|
|
||||||
if (trackData->editText)
|
if (trackData->editText)
|
||||||
Emgui_drawText(trackData->editText, x, 257, Emgui_color32(255, 255, 255, 255));
|
Emgui_drawText(trackData->editText, x_pos, 257, Emgui_color32(255, 255, 255, 255));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
x_pos += 160;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t color = Emgui_color32(127, 127, 127, 56);
|
uint32_t color = Emgui_color32(127, 127, 127, 56);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user