starting to do some saving/loading stuff

This commit is contained in:
Erik Faye-Lund 2008-02-16 21:35:37 +00:00
parent 86543e1d04
commit b7641dfcee
6 changed files with 58 additions and 12 deletions

View File

@ -86,6 +86,11 @@ BEGIN
MENUITEM "&Copy\tCtrl+C", ID_EDIT_COPY
MENUITEM "Cu&t\tCtrl+X", ID_EDIT_CUT
MENUITEM "&Paste\tCtrl+V", ID_EDIT_PASTE
MENUITEM "Clear\tDel", ID_EDIT_CLEAR
MENUITEM SEPARATOR
MENUITEM "Select All\tCtrl+A", ID_EDIT_SELECTALL
MENUITEM "Select Track", ID_EDIT_SELECTTRACK
MENUITEM "Select Row", ID_EDIT_SELECTROW
MENUITEM SEPARATOR
MENUITEM "&Bias Selection\tCtrl+B", ID_EDIT_BIAS
MENUITEM SEPARATOR

View File

@ -1,6 +1,6 @@
//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ generated include file.
// Used by synctracker2.rc
// Used by editor.rc
//
#define IDR_ACCELERATOR 101
#define IDR_MENU 102
@ -14,13 +14,17 @@
#define ID_EDIT 40003
#define ID_EDIT_SETROWS 40007
#define ID_EDIT_BIAS 40008
#define ID_EDIT_CLEAR40011 40011
#define ID_EDIT_SELECTALL 40012
#define ID_EDIT_SELECTROW 40013
#define ID_EDIT_SELECTTRACK 40014
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 104
#define _APS_NEXT_COMMAND_VALUE 40011
#define _APS_NEXT_COMMAND_VALUE 40015
#define _APS_NEXT_CONTROL_VALUE 1004
#define _APS_NEXT_SYMED_VALUE 101
#endif

View File

@ -53,6 +53,11 @@ public:
clientPaused = pause;
}
void sendSaveCommand()
{
unsigned char cmd = SAVE_TRACKS;
send(clientSocket, (char*)&cmd, 1, 0);
}
class Command
{

View File

@ -939,6 +939,10 @@ LRESULT TrackView::onChar(UINT keyCode, UINT flags)
case 'i':
editToggleInterpolationType();
break;
case 's':
syncData->sendSaveCommand();
break;
}
return FALSE;
}

View File

@ -21,7 +21,10 @@ public:
bool update(float row);
private:
const std::string &baseName;
std::string getTrackFileName(std::string trackName);
void saveTracks();
const std::string baseName;
sync::Data syncData;
Timer &timer;
@ -121,6 +124,10 @@ bool ClientDevice::update(float row)
}
break;
case SAVE_TRACKS:
saveTracks();
break;
default:
assert(false);
fprintf(stderr, "unknown cmd: %02x\n", cmd);
@ -143,6 +150,25 @@ bool ClientDevice::update(float row)
return !done;
}
std::string ClientDevice::getTrackFileName(std::string trackName)
{
std::string fileName = baseName.c_str();
fileName += "_";
fileName += trackName;
fileName += ".track";
return fileName;
}
void ClientDevice::saveTracks()
{
sync::Data::TrackContainer::iterator iter;
for (iter = syncData.tracks.begin(); iter != syncData.tracks.end(); ++iter)
{
std::string fileName = getTrackFileName(iter->first);
printf("\"%s\"\n", fileName.c_str());
}
}
Device *sync::createDevice(const std::string &baseName, Timer &timer)
{
if (false == initNetwork()) return NULL;
@ -157,6 +183,6 @@ Device *sync::createDevice(const std::string &baseName, Timer &timer)
SOCKET serverSocket = serverConnect(&sain);
if (INVALID_SOCKET == serverSocket) return NULL;
Device *device = new ClientDevice(baseName, serverSocket, timer);
ClientDevice *device = new ClientDevice(baseName, serverSocket, timer);
return device;
}

View File

@ -13,19 +13,21 @@ SOCKET serverConnect(struct sockaddr_in *addr);
bool pollRead(SOCKET socket);
enum RemoteCommand {
enum RemoteCommand
{
// server -> client
SET_KEY = 0,
DELETE_KEY = 1,
SET_KEY,
DELETE_KEY,
// client -> server
GET_TRACK = 2,
GET_TRACK,
// client -> server, server -> client
SET_ROW = 3,
SET_ROW,
// server -> client
PAUSE = 4,
PAUSE,
SAVE_TRACKS
};
#endif /* NETWORK_H */