Have the OpenGL editor work with the newest sync library codebase.
This commit is contained in:
parent
0384575ab4
commit
a5cee4157f
@ -18,6 +18,14 @@
|
||||
#include "../../lib/base.h"
|
||||
#include <emgui/Emgui.h>
|
||||
|
||||
enum {
|
||||
SET_KEY = 0,
|
||||
DELETE_KEY = 1,
|
||||
GET_TRACK = 2,
|
||||
SET_ROW = 3,
|
||||
PAUSE = 4,
|
||||
SAVE_TRACKS = 5
|
||||
};
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
static void updateNeedsSaving();
|
||||
@ -139,7 +147,7 @@ void setMostRecentFile(const text_t* filename)
|
||||
|
||||
static inline struct sync_track** getTracks()
|
||||
{
|
||||
return s_editorData.trackData.syncData.tracks;
|
||||
return s_editorData.trackData.syncTracks;
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
@ -174,7 +182,7 @@ static inline int getActiveTrack()
|
||||
|
||||
static inline int getTrackCount()
|
||||
{
|
||||
return s_editorData.trackData.syncData.num_tracks;
|
||||
return s_editorData.trackData.num_syncTracks;
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
@ -864,7 +872,7 @@ static int processCommands()
|
||||
|
||||
// setup remap and send the keyframes to the demo
|
||||
RemoteConnection_mapTrackName(trackName);
|
||||
RemoteConnection_sendKeyFrames(trackName, s_editorData.trackData.syncData.tracks[serverIndex]);
|
||||
RemoteConnection_sendKeyFrames(trackName, s_editorData.trackData.syncTracks[serverIndex]);
|
||||
TrackData_linkTrack(serverIndex, trackName, &s_editorData.trackData);
|
||||
|
||||
s_editorData.trackData.tracks[serverIndex].active = true;
|
||||
|
||||
@ -27,6 +27,8 @@
|
||||
#include "rlog.h"
|
||||
#include <stdio.h>
|
||||
|
||||
#include <assert.h>
|
||||
|
||||
#ifndef INVALID_SOCKET
|
||||
#define INVALID_SOCKET -1
|
||||
#endif
|
||||
@ -35,6 +37,69 @@
|
||||
#define SOCKET_ERROR -1
|
||||
#endif
|
||||
|
||||
|
||||
/* configure socket-stack */
|
||||
#ifdef _WIN32
|
||||
#define WIN32_LEAN_AND_MEAN
|
||||
#define USE_GETADDRINFO
|
||||
#ifndef NOMINMAX
|
||||
#define NOMINMAX
|
||||
#endif
|
||||
#include <winsock2.h>
|
||||
#include <ws2tcpip.h>
|
||||
#include <windows.h>
|
||||
#include <limits.h>
|
||||
#elif defined(USE_AMITCP)
|
||||
#include <sys/socket.h>
|
||||
#include <proto/exec.h>
|
||||
#include <proto/socket.h>
|
||||
#include <netdb.h>
|
||||
#define SOCKET int
|
||||
#define INVALID_SOCKET -1
|
||||
#define select(n,r,w,e,t) WaitSelect(n,r,w,e,t,0)
|
||||
#define closesocket(x) CloseSocket(x)
|
||||
#else
|
||||
#include <sys/socket.h>
|
||||
#include <sys/time.h>
|
||||
#include <netinet/in.h>
|
||||
#include <netdb.h>
|
||||
#include <unistd.h>
|
||||
#define SOCKET int
|
||||
#define INVALID_SOCKET -1
|
||||
#define closesocket(x) close(x)
|
||||
#endif
|
||||
|
||||
#define CLIENT_GREET "hello, synctracker!"
|
||||
#define SERVER_GREET "hello, demo!"
|
||||
|
||||
enum {
|
||||
SET_KEY = 0,
|
||||
DELETE_KEY = 1,
|
||||
GET_TRACK = 2,
|
||||
SET_ROW = 3,
|
||||
PAUSE = 4,
|
||||
SAVE_TRACKS = 5
|
||||
};
|
||||
|
||||
static inline int socket_poll(SOCKET socket)
|
||||
{
|
||||
struct timeval to = { 0, 0 };
|
||||
fd_set fds;
|
||||
|
||||
FD_ZERO(&fds);
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#pragma warning(push)
|
||||
#pragma warning(disable: 4127)
|
||||
#endif
|
||||
FD_SET(socket, &fds);
|
||||
#ifdef _MSC_VER
|
||||
#pragma warning(pop)
|
||||
#endif
|
||||
|
||||
return select((int)socket + 1, &fds, NULL, NULL, &to) > 0;
|
||||
}
|
||||
|
||||
static int s_clientIndex;
|
||||
int s_socket = INVALID_SOCKET;
|
||||
int s_serverSocket = INVALID_SOCKET;
|
||||
|
||||
@ -2,22 +2,54 @@
|
||||
#include "Commands.h"
|
||||
#include "rlog.h"
|
||||
#include <stdio.h>
|
||||
#include <assert.h>
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
int sync_find_track(struct sync_track **tracks, size_t num_tracks, const char *name)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < (int)num_tracks; ++i)
|
||||
if (!strcmp(name, tracks[i]->name))
|
||||
return i;
|
||||
return -1; /* not found */
|
||||
}
|
||||
|
||||
int sync_create_track(struct sync_track ***tracksPtr, size_t *num_tracksPtr, const char *name)
|
||||
{
|
||||
struct sync_track *t;
|
||||
struct sync_track **tracks = *tracksPtr;
|
||||
size_t num_tracks = *num_tracksPtr;
|
||||
assert(sync_find_track(tracks, num_tracks, name) < 0);
|
||||
|
||||
t = malloc(sizeof(*t));
|
||||
t->name = strdup(name);
|
||||
t->keys = NULL;
|
||||
t->num_keys = 0;
|
||||
|
||||
tracks = realloc(tracks, sizeof(tracks[0]) * (num_tracks+1));
|
||||
tracks[num_tracks] = t;
|
||||
|
||||
*num_tracksPtr = num_tracks+1;
|
||||
*tracksPtr = tracks;
|
||||
|
||||
return (int)num_tracks;
|
||||
}
|
||||
|
||||
int TrackData_createGetTrack(TrackData* trackData, const char* name)
|
||||
{
|
||||
int index = sync_find_track(&trackData->syncData, name);
|
||||
int index = sync_find_track(trackData->syncTracks, trackData->num_syncTracks, name);
|
||||
if (index < 0)
|
||||
{
|
||||
index = sync_create_track(&trackData->syncData, name);
|
||||
index = sync_create_track(&trackData->syncTracks, &trackData->num_syncTracks, name);
|
||||
memset(&trackData->tracks[index], 0, sizeof(Track));
|
||||
trackData->tracks[index].index = index;
|
||||
trackData->tracks[index].color = TrackData_getNextColor(trackData);
|
||||
}
|
||||
|
||||
if (trackData->syncData.tracks)
|
||||
Commands_init(trackData->syncData.tracks, trackData);
|
||||
if (trackData->syncTracks)
|
||||
Commands_init(trackData->syncTracks, trackData);
|
||||
|
||||
return index;
|
||||
}
|
||||
@ -151,10 +183,9 @@ void TrackData_linkTrack(int index, const char* name, TrackData* trackData)
|
||||
void TrackData_linkGroups(TrackData* trackData)
|
||||
{
|
||||
int i, track_count;
|
||||
struct sync_data* sync = &trackData->syncData;
|
||||
|
||||
for (i = 0, track_count = sync->num_tracks; i < track_count; ++i)
|
||||
TrackData_linkTrack(i, sync->tracks[i]->name, trackData);
|
||||
for (i = 0, track_count = trackData->num_syncTracks; i < track_count; ++i)
|
||||
TrackData_linkTrack(i, trackData->syncTracks[i]->name, trackData);
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
@ -64,7 +64,8 @@ typedef struct Group
|
||||
|
||||
typedef struct TrackData
|
||||
{
|
||||
struct sync_data syncData;
|
||||
struct sync_track **syncTracks;
|
||||
size_t num_syncTracks;
|
||||
Track tracks[EDITOR_MAX_TRACKS];
|
||||
Group groups[EDITOR_MAX_TRACKS];
|
||||
int* loopmarks;
|
||||
|
||||
@ -396,8 +396,8 @@ static int renderChannel(struct TrackInfo* info, int startX, Track* trackData, b
|
||||
|
||||
folded = trackData->folded;
|
||||
|
||||
if (info->trackData->syncData.tracks)
|
||||
track = info->trackData->syncData.tracks[trackData->index];
|
||||
if (info->trackData->syncTracks)
|
||||
track = info->trackData->syncTracks[trackData->index];
|
||||
|
||||
size = renderName(trackData->displayName, startX, info->startY - (font_size * 2), min_track_size, folded, trackData->active);
|
||||
|
||||
|
||||
@ -6,6 +6,7 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <emgui/Types.h>
|
||||
#include <assert.h>
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
@ -100,7 +101,7 @@ static void parseXml(mxml_node_t* rootNode, TrackData* trackData)
|
||||
track_index = TrackData_createGetTrack(trackData, track_name);
|
||||
|
||||
t = &trackData->tracks[track_index];
|
||||
track = trackData->syncData.tracks[track_index];
|
||||
track = trackData->syncTracks[track_index];
|
||||
|
||||
if (!color_text && t->color == 0)
|
||||
{
|
||||
@ -161,7 +162,7 @@ static void parseXml(mxml_node_t* rootNode, TrackData* trackData)
|
||||
}
|
||||
else if (!strcmp("key", element_name))
|
||||
{
|
||||
struct sync_track* track = trackData->syncData.tracks[track_index];
|
||||
struct sync_track* track = trackData->syncTracks[track_index];
|
||||
Track* t = &trackData->tracks[track_index];
|
||||
|
||||
const char* row = mxmlElementGetAttr(node, "row");
|
||||
@ -353,7 +354,6 @@ int LoadSave_saveRocketXML(const text_t* path, TrackData* trackData)
|
||||
|
||||
FILE* fp;
|
||||
size_t p;
|
||||
struct sync_data* sync_data = &trackData->syncData;
|
||||
int* bookmarks = trackData->bookmarks;
|
||||
int* loopmarks = trackData->loopmarks;
|
||||
|
||||
@ -409,9 +409,9 @@ int LoadSave_saveRocketXML(const text_t* path, TrackData* trackData)
|
||||
setElementInt(tracks, "endRow", "%d", trackData->endRow);
|
||||
setElementInt(tracks, "highlightRowStep", "%d", trackData->highlightRowStep);
|
||||
|
||||
for (p = 0; p < sync_data->num_tracks; ++p)
|
||||
for (p = 0; p < trackData->num_syncTracks; ++p)
|
||||
{
|
||||
const struct sync_track* t = sync_data->tracks[p];
|
||||
const struct sync_track* t = trackData->syncTracks[p];
|
||||
mxml_node_t* track = mxmlNewElement(tracks, "track");
|
||||
|
||||
bool isMuted = trackData->tracks[p].muteBackup ? true : false;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user