parent
7683965dba
commit
f4c315c137
@ -219,7 +219,8 @@ void Editor_create()
|
|||||||
RemoteConnection_createListner();
|
RemoteConnection_createListner();
|
||||||
|
|
||||||
s_editorData.trackViewInfo.smallFontId = id;
|
s_editorData.trackViewInfo.smallFontId = id;
|
||||||
s_editorData.trackViewInfo.endRow = 10000;
|
s_editorData.trackData.startRow = 0;
|
||||||
|
s_editorData.trackData.endRow = 10000;
|
||||||
|
|
||||||
Emgui_setDefaultFont();
|
Emgui_setDefaultFont();
|
||||||
}
|
}
|
||||||
@ -351,8 +352,8 @@ static void drawStatus()
|
|||||||
size = drawConnectionStatus(0, sizeY);
|
size = drawConnectionStatus(0, sizeY);
|
||||||
size += drawCurrentValue(size, sizeY);
|
size += drawCurrentValue(size, sizeY);
|
||||||
size += drawNameValue("Row", size, sizeY, &s_editorData.trackViewInfo.rowPos, 0, 20000 - 1, s_currentRow);
|
size += drawNameValue("Row", size, sizeY, &s_editorData.trackViewInfo.rowPos, 0, 20000 - 1, s_currentRow);
|
||||||
size += drawNameValue("Start Row", size, sizeY, &s_editorData.trackViewInfo.startRow, 0, 10000000, s_startRow);
|
size += drawNameValue("Start Row", size, sizeY, &s_editorData.trackData.startRow, 0, 10000000, s_startRow);
|
||||||
size += drawNameValue("End Row", size, sizeY, &s_editorData.trackViewInfo.endRow, 0, 10000000, s_endRow);
|
size += drawNameValue("End Row", size, sizeY, &s_editorData.trackData.endRow, 0, 10000000, s_endRow);
|
||||||
|
|
||||||
if (getRowPos() != prevRow)
|
if (getRowPos() != prevRow)
|
||||||
RemoteConnection_sendSetRowCommand(getRowPos());
|
RemoteConnection_sendSetRowCommand(getRowPos());
|
||||||
@ -660,8 +661,8 @@ bool Editor_keyDown(int key, int keyCode, int modifiers)
|
|||||||
|
|
||||||
row += modifiers & EMGUI_KEY_ALT ? 8 : 1;
|
row += modifiers & EMGUI_KEY_ALT ? 8 : 1;
|
||||||
|
|
||||||
if ((modifiers & EMGUI_KEY_COMMAND) || row > viewInfo->endRow)
|
if ((modifiers & EMGUI_KEY_COMMAND) || row > trackData->endRow)
|
||||||
row = viewInfo->endRow;
|
row = trackData->endRow;
|
||||||
|
|
||||||
viewInfo->rowPos = row;
|
viewInfo->rowPos = row;
|
||||||
|
|
||||||
@ -709,8 +710,8 @@ bool Editor_keyDown(int key, int keyCode, int modifiers)
|
|||||||
|
|
||||||
row -= modifiers & EMGUI_KEY_ALT ? 8 : 1;
|
row -= modifiers & EMGUI_KEY_ALT ? 8 : 1;
|
||||||
|
|
||||||
if ((modifiers & EMGUI_KEY_COMMAND) || row < viewInfo->startRow)
|
if ((modifiers & EMGUI_KEY_COMMAND) || row < trackData->startRow)
|
||||||
row = viewInfo->startRow;
|
row = trackData->startRow;
|
||||||
|
|
||||||
viewInfo->rowPos = row;
|
viewInfo->rowPos = row;
|
||||||
|
|
||||||
@ -1035,7 +1036,6 @@ void Editor_scroll(float deltaX, float deltaY, int flags)
|
|||||||
{
|
{
|
||||||
int current_row = s_editorData.trackViewInfo.rowPos;
|
int current_row = s_editorData.trackViewInfo.rowPos;
|
||||||
int old_offset = s_editorData.trackViewInfo.startPixel;
|
int old_offset = s_editorData.trackViewInfo.startPixel;
|
||||||
TrackViewInfo* viewInfo = &s_editorData.trackViewInfo;
|
|
||||||
|
|
||||||
if (flags & EMGUI_KEY_ALT)
|
if (flags & EMGUI_KEY_ALT)
|
||||||
{
|
{
|
||||||
@ -1055,11 +1055,11 @@ void Editor_scroll(float deltaX, float deltaY, int flags)
|
|||||||
|
|
||||||
current_row += (int)deltaY;
|
current_row += (int)deltaY;
|
||||||
|
|
||||||
if (current_row < viewInfo->startRow || current_row >= viewInfo->endRow)
|
if (current_row < trackData->startRow || current_row >= trackData->endRow)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
s_editorData.trackViewInfo.startPixel += (int)(deltaX * 4.0f);
|
s_editorData.trackViewInfo.startPixel += (int)(deltaX * 4.0f);
|
||||||
s_editorData.trackViewInfo.rowPos = eclampi(current_row, viewInfo->startRow, viewInfo->endRow);
|
s_editorData.trackViewInfo.rowPos = eclampi(current_row, trackData->startRow, trackData->endRow);
|
||||||
|
|
||||||
RemoteConnection_sendSetRowCommand(s_editorData.trackViewInfo.rowPos);
|
RemoteConnection_sendSetRowCommand(s_editorData.trackViewInfo.rowPos);
|
||||||
|
|
||||||
|
|||||||
@ -68,6 +68,8 @@ typedef struct TrackData
|
|||||||
int activeTrack;
|
int activeTrack;
|
||||||
int lastColor;
|
int lastColor;
|
||||||
int trackCount;
|
int trackCount;
|
||||||
|
int startRow;
|
||||||
|
int endRow;
|
||||||
char* editText;
|
char* editText;
|
||||||
} TrackData;
|
} TrackData;
|
||||||
|
|
||||||
|
|||||||
@ -14,8 +14,6 @@ typedef struct TrackViewInfo
|
|||||||
int windowSizeX;
|
int windowSizeX;
|
||||||
int windowSizeY;
|
int windowSizeY;
|
||||||
int rowPos;
|
int rowPos;
|
||||||
int startRow;
|
|
||||||
int endRow;
|
|
||||||
int startTrack;
|
int startTrack;
|
||||||
int startPixel;
|
int startPixel;
|
||||||
int smallFontId;
|
int smallFontId;
|
||||||
|
|||||||
@ -31,6 +31,18 @@ static void parseXml(mxml_node_t* rootNode, TrackData* trackData)
|
|||||||
{
|
{
|
||||||
const char* element_name = mxmlGetElement(node);
|
const char* element_name = mxmlGetElement(node);
|
||||||
|
|
||||||
|
if (!strcmp("tracks", element_name))
|
||||||
|
{
|
||||||
|
const char* start_row = mxmlElementGetAttr(node, "startRow");
|
||||||
|
const char* end_row = mxmlElementGetAttr(node, "endRow");
|
||||||
|
|
||||||
|
if (start_row)
|
||||||
|
trackData->startRow = atoi(start_row);
|
||||||
|
|
||||||
|
if (end_row)
|
||||||
|
trackData->endRow = atoi(end_row);
|
||||||
|
}
|
||||||
|
|
||||||
if (!strcmp("track", element_name))
|
if (!strcmp("track", element_name))
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
@ -178,6 +190,26 @@ static const char* whitespaceCallback(mxml_node_t* node, int where)
|
|||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
static void setElementInt(mxml_node_t* node, const char* attr, const char* format, int v)
|
||||||
|
{
|
||||||
|
char temp[256];
|
||||||
|
memset(temp, 0, sizeof(temp));
|
||||||
|
sprintf(temp, format, v);
|
||||||
|
mxmlElementSetAttr(node, attr, temp);
|
||||||
|
}
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
static void setElementFloat(mxml_node_t* node, char* attr, float v)
|
||||||
|
{
|
||||||
|
char temp[256];
|
||||||
|
memset(temp, 0, sizeof(temp));
|
||||||
|
sprintf(temp, "%f", v);
|
||||||
|
mxmlElementSetAttr(node, attr, temp);
|
||||||
|
}
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
int LoadSave_saveRocketXML(const char* path, TrackData* trackData)
|
int LoadSave_saveRocketXML(const char* path, TrackData* trackData)
|
||||||
{
|
{
|
||||||
mxml_node_t* xml;
|
mxml_node_t* xml;
|
||||||
@ -190,47 +222,26 @@ int LoadSave_saveRocketXML(const char* path, TrackData* trackData)
|
|||||||
xml = mxmlNewXML("1.0");
|
xml = mxmlNewXML("1.0");
|
||||||
tracks = mxmlNewElement(xml, "tracks");
|
tracks = mxmlNewElement(xml, "tracks");
|
||||||
|
|
||||||
mxmlElementSetAttr(tracks, "rows", "10000"); // TODO: Fix me
|
mxmlElementSetAttr(tracks, "rows", "10000");
|
||||||
|
setElementInt(tracks, "startRow", "%d", trackData->startRow);
|
||||||
|
setElementInt(tracks, "endRow", "%d", trackData->endRow);
|
||||||
|
|
||||||
for (p = 0; p < sync_data->num_tracks; ++p)
|
for (p = 0; p < sync_data->num_tracks; ++p)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
char temp[256];
|
|
||||||
const struct sync_track* t = sync_data->tracks[p];
|
const struct sync_track* t = sync_data->tracks[p];
|
||||||
mxml_node_t* track = mxmlNewElement(tracks, "track");
|
mxml_node_t* track = mxmlNewElement(tracks, "track");
|
||||||
|
|
||||||
memset(temp, 0, sizeof(temp));
|
|
||||||
sprintf(temp, "%08x", trackData->tracks[p].color);
|
|
||||||
|
|
||||||
// setup the elements for the trak
|
|
||||||
|
|
||||||
mxmlElementSetAttr(track, "name", t->name);
|
mxmlElementSetAttr(track, "name", t->name);
|
||||||
mxmlElementSetAttr(track, "color", temp);
|
|
||||||
mxmlElementSetAttr(track, "folded", trackData->tracks[p].folded ? "1" : "0");
|
mxmlElementSetAttr(track, "folded", trackData->tracks[p].folded ? "1" : "0");
|
||||||
|
setElementInt(track, "color", "%08x", trackData->tracks[p].color);
|
||||||
|
|
||||||
for (i = 0; i < (int)t->num_keys; ++i)
|
for (i = 0; i < (int)t->num_keys; ++i)
|
||||||
{
|
{
|
||||||
char temp0[256];
|
|
||||||
char temp1[256];
|
|
||||||
char temp2[256];
|
|
||||||
|
|
||||||
int row = (int)t->keys[i].row;
|
|
||||||
float value = t->keys[i].value;
|
|
||||||
char interpolationType = (char)t->keys[i].type;
|
|
||||||
|
|
||||||
mxml_node_t* key = mxmlNewElement(track, "key");
|
mxml_node_t* key = mxmlNewElement(track, "key");
|
||||||
|
setElementInt(key, "row", "%d", (int)t->keys[i].row);
|
||||||
memset(temp0, 0, sizeof(temp0));
|
setElementFloat(key, "value", t->keys[i].value);
|
||||||
memset(temp1, 0, sizeof(temp1));
|
setElementInt(key, "interpolation", "%d", (int)t->keys[i].type);
|
||||||
memset(temp2, 0, sizeof(temp2));
|
|
||||||
|
|
||||||
sprintf(temp0, "%d", row);
|
|
||||||
sprintf(temp1, "%f", value);
|
|
||||||
sprintf(temp2, "%d", interpolationType);
|
|
||||||
|
|
||||||
mxmlElementSetAttr(key, "row", temp0);
|
|
||||||
mxmlElementSetAttr(key, "value", temp1);
|
|
||||||
mxmlElementSetAttr(key, "interpolation", temp2);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user