WIP on fixing up TrackerView
This commit is contained in:
parent
d681e5bd20
commit
8a0024415e
@ -24,10 +24,18 @@
|
|||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
typedef struct TrackInfo
|
||||||
|
{
|
||||||
|
bool folded;
|
||||||
|
} TrackInfo;
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
typedef struct EditorData
|
typedef struct EditorData
|
||||||
{
|
{
|
||||||
struct sync_data syncData;
|
struct sync_data syncData;
|
||||||
TrackViewInfo trackViewInfo;
|
TrackViewInfo trackViewInfo;
|
||||||
|
TrackInfo trackInfo;
|
||||||
int trackOrder[8192];
|
int trackOrder[8192];
|
||||||
int orderCount;
|
int orderCount;
|
||||||
|
|
||||||
@ -38,7 +46,6 @@ static EditorData s_editorData;
|
|||||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
static uint64_t fontIds[2];
|
static uint64_t fontIds[2];
|
||||||
int clientIndex = 0;
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
@ -65,7 +72,7 @@ void Editor_update()
|
|||||||
{
|
{
|
||||||
Emgui_begin();
|
Emgui_begin();
|
||||||
|
|
||||||
TrackView_render(&s_editorData.trackViewInfo);
|
TrackView_render(&s_editorData.trackViewInfo, &s_editorData.syncData);
|
||||||
|
|
||||||
Emgui_end();
|
Emgui_end();
|
||||||
}
|
}
|
||||||
@ -139,18 +146,12 @@ static void processCommands()
|
|||||||
serverIndex = createTrack(&s_editorData, trackName);
|
serverIndex = createTrack(&s_editorData, trackName);
|
||||||
|
|
||||||
// setup remap and send the keyframes to the demo
|
// setup remap and send the keyframes to the demo
|
||||||
RemoteConnection_mapTrackName(trackName, clientIndex++);
|
RemoteConnection_mapTrackName(trackName);
|
||||||
RemoteConnection_sendKeyFrames(trackName, s_editorData.syncData.tracks[serverIndex]);
|
RemoteConnection_sendKeyFrames(trackName, s_editorData.syncData.tracks[serverIndex]);
|
||||||
|
|
||||||
// send key-frames
|
|
||||||
//t = doc->tracks[serverIndex];
|
|
||||||
//for (i = 0; i < (int)t->num_keys; ++i)
|
|
||||||
// doc->clientSocket.sendSetKeyCommand(trackName, t->keys[i]);
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
case SET_ROW:
|
case SET_ROW:
|
||||||
{
|
{
|
||||||
RemoteConnection_recv((char*)&newRow, sizeof(int), 0);
|
RemoteConnection_recv((char*)&newRow, sizeof(int), 0);
|
||||||
|
|||||||
@ -34,7 +34,7 @@
|
|||||||
#define SOCKET_ERROR -1
|
#define SOCKET_ERROR -1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
extern int clientIndex;
|
static int s_clientIndex;
|
||||||
int s_socket = INVALID_SOCKET;
|
int s_socket = INVALID_SOCKET;
|
||||||
int s_serverSocket = INVALID_SOCKET;
|
int s_serverSocket = INVALID_SOCKET;
|
||||||
static bool s_paused = false;
|
static bool s_paused = false;
|
||||||
@ -94,7 +94,7 @@ int findTrack(const char* name)
|
|||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
void RemoteConnection_mapTrackName(const char* name, int index)
|
void RemoteConnection_mapTrackName(const char* name)
|
||||||
{
|
{
|
||||||
int count = s_nameLookup.count;
|
int count = s_nameLookup.count;
|
||||||
|
|
||||||
@ -102,7 +102,7 @@ void RemoteConnection_mapTrackName(const char* name, int index)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
s_nameLookup.hashes[count] = quickHash(name);
|
s_nameLookup.hashes[count] = quickHash(name);
|
||||||
s_nameLookup.ids[count] = index;
|
s_nameLookup.ids[count] = s_clientIndex++;
|
||||||
s_nameLookup.count++;
|
s_nameLookup.count++;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -220,7 +220,7 @@ void RemoteConnection_updateListner()
|
|||||||
{
|
{
|
||||||
rlog(R_INFO, "Connected to %s\n", inet_ntoa(client.sin_addr));
|
rlog(R_INFO, "Connected to %s\n", inet_ntoa(client.sin_addr));
|
||||||
s_socket = clientSocket;
|
s_socket = clientSocket;
|
||||||
clientIndex = 0;
|
s_clientIndex = 0;
|
||||||
RemoteConnection_sendPauseCommand(true);
|
RemoteConnection_sendPauseCommand(true);
|
||||||
//RemoteConnection_sendSetRowCommand(trackView->getEditRow());
|
//RemoteConnection_sendSetRowCommand(trackView->getEditRow());
|
||||||
}
|
}
|
||||||
|
|||||||
@ -28,5 +28,5 @@ void RemoteConnection_sendPauseCommand(bool pause);
|
|||||||
void RemoteConnection_sendSaveCommand();
|
void RemoteConnection_sendSaveCommand();
|
||||||
|
|
||||||
void RemoteConnection_sendKeyFrames(const char* name, struct sync_track* track);
|
void RemoteConnection_sendKeyFrames(const char* name, struct sync_track* track);
|
||||||
void RemoteConnection_mapTrackName(const char* name, int index);
|
void RemoteConnection_mapTrackName(const char* name);
|
||||||
|
|
||||||
|
|||||||
@ -3,6 +3,9 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
#include "../../sync/sync.h"
|
||||||
|
#include "../../sync/data.h"
|
||||||
|
#include "../../sync/track.h"
|
||||||
|
|
||||||
const int font_size = 12;
|
const int font_size = 12;
|
||||||
static int start_pos = -19;
|
static int start_pos = -19;
|
||||||
@ -43,13 +46,14 @@ static void printRowNumbers(int x, int y, int rowCount, int rowOffset, int rowSp
|
|||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
/*
|
static void renderChannel(struct sync_track* track, int startX, int startY, int startPos, int endPos)
|
||||||
static void renderChannel(Channel* channel, int startX, int startY, int startPos, int endPos)
|
|
||||||
{
|
{
|
||||||
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, 64, 600);
|
Emgui_drawBorder(color, color, startX, startY, 64, 600);
|
||||||
|
Emgui_drawText(track->name, startX + 2, startY + 2, Emgui_color32(0xff, 0xff, 0xff, 0xff));
|
||||||
|
|
||||||
int y_offset = (startY + font_size) + font_size/2;
|
int y_offset = (startY + font_size) + font_size/2;
|
||||||
|
|
||||||
if (startPos < 0)
|
if (startPos < 0)
|
||||||
@ -68,24 +72,15 @@ static void renderChannel(Channel* channel, int startX, int startY, int startPos
|
|||||||
int offset = startX + 6;
|
int offset = startX + 6;
|
||||||
|
|
||||||
float value = 0.0f;
|
float value = 0.0f;
|
||||||
bool set = false;
|
int idx = sync_find_key(track, y);
|
||||||
|
|
||||||
if (y < channel->maxRange)
|
if (idx >= 0)
|
||||||
{
|
{
|
||||||
set = channel->set[y];
|
char temp[256];
|
||||||
value = channel->values[y];
|
value = track->keys[idx].value;
|
||||||
}
|
snprintf(temp, 256, "% .2f", value);
|
||||||
|
|
||||||
if (set)
|
Emgui_drawText(temp, offset, y_offset + (font_size / 2), Emgui_color32(255, 255, 255, 255));
|
||||||
{
|
|
||||||
char valueText[16];
|
|
||||||
|
|
||||||
if (value < 0.0f)
|
|
||||||
sprintf(valueText, "%0.8f", value);
|
|
||||||
else
|
|
||||||
sprintf(valueText, "%8.4f", value);
|
|
||||||
|
|
||||||
Emgui_drawText(valueText, offset, y_offset + (font_size / 2), Emgui_color32(255, 255, 255, 255));
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -114,21 +109,39 @@ static void renderChannel(Channel* channel, int startX, int startY, int startPos
|
|||||||
y_offset += font_size;
|
y_offset += font_size;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
void TrackView_render()
|
int doMax(int a, int b)
|
||||||
{
|
{
|
||||||
//uint i = 0; //, channel_count = 10;
|
if (b >= a)
|
||||||
|
return b;
|
||||||
|
else
|
||||||
|
return a;
|
||||||
|
}
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
void TrackView_render(const TrackViewInfo* viewInfo, struct sync_data* syncData)
|
||||||
|
{
|
||||||
|
// TODO: Calculate how many channels we can draw given the width
|
||||||
|
|
||||||
|
uint i = 0; //, channel_count = 10;
|
||||||
|
|
||||||
printRowNumbers(2, 42, 40, start_pos, font_size, 8);
|
printRowNumbers(2, 42, 40, start_pos, font_size, 8);
|
||||||
|
|
||||||
|
if (syncData->num_tracks == 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
int num_tracks = syncData->num_tracks;
|
||||||
|
|
||||||
|
if (num_tracks > 4)
|
||||||
|
num_tracks = 4;
|
||||||
|
|
||||||
//i = 0;
|
//i = 0;
|
||||||
|
|
||||||
//for (i = 0; i < channel_count; ++i)
|
for (i = 0; i < num_tracks; ++i)
|
||||||
// renderChannel(&s_testChannel, 40 + (i * 64), 20, start_pos, start_pos + 40);
|
renderChannel(syncData->tracks[i], 40 + (i * 64), 20, start_pos, start_pos + 40);
|
||||||
|
|
||||||
uint32_t color = Emgui_color32(127, 127, 127, 56);
|
uint32_t color = Emgui_color32(127, 127, 127, 56);
|
||||||
|
|
||||||
|
|||||||
@ -2,6 +2,8 @@
|
|||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
struct sync_data;
|
||||||
|
|
||||||
typedef struct TrackViewInfo
|
typedef struct TrackViewInfo
|
||||||
{
|
{
|
||||||
int scrollPosY;
|
int scrollPosY;
|
||||||
@ -14,5 +16,5 @@ typedef struct TrackViewInfo
|
|||||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
void TrackView_init();
|
void TrackView_init();
|
||||||
void TrackView_render(const TrackViewInfo* viewInfo);
|
void TrackView_render(const TrackViewInfo* viewInfo, struct sync_data* syncData);
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user