refactoring

This commit is contained in:
Erik Faye-Lund 2008-02-14 23:03:28 +00:00
parent b53505f660
commit 0534c70719
4 changed files with 70 additions and 8 deletions

View File

@ -50,6 +50,7 @@ private:
#endif
#include <windows.h>
#include <memory>
int main(int argc, char *argv[])
{
@ -64,13 +65,14 @@ int main(int argc, char *argv[])
sync::Track &track = syncDevice->getTrack("test");
// timer.play();
timer.play();
while (1)
{
float row = timer.getRow();
if (!syncDevice->update(row)) break;
printf("%2.2f: %2.2f \r", row, track.getValue(row));
printf("%2.2f: %2.2f \n", row, track.getValue(row));
Sleep(1000);
}
return 0;

View File

@ -7,17 +7,24 @@ using namespace sync;
class ClientDevice : public Device
{
public:
ClientDevice(SOCKET serverSocket, Timer &timer) : serverSocket(serverSocket), timer(timer) {}
ClientDevice(const std::string &baseName, SOCKET serverSocket, Timer &timer) :
baseName(baseName),
timer(timer),
serverSocket(serverSocket)
{
}
~ClientDevice();
Track &getTrack(const std::string &trackName);
bool update(float row);
private:
const std::string &baseName;
SyncData syncData;
SOCKET serverSocket;
Timer &timer;
SOCKET serverSocket;
};
ClientDevice::~ClientDevice()
@ -45,7 +52,6 @@ Track &ClientDevice::getTrack(const std::string &trackName)
send(serverSocket, name_str, name_len, 0);
sync::Track *track = new sync::Track();
/* todo: fill in based on the response */
syncData.actualTracks.push_back(track);
syncData.tracks[trackName] = clientIndex;

55
sync/device_player.cpp Normal file
View File

@ -0,0 +1,55 @@
#include "device.h"
#include "../network.h"
#include "../syncdata.h"
using namespace sync;
class PlayerDevice : public Device
{
public:
PlayerDevice(const std::string &baseName, Timer &timer) :
baseName(baseName),
timer(timer)
{
}
~PlayerDevice();
Track &getTrack(const std::string &trackName);
bool update(float row);
private:
const std::string &baseName;
SyncData syncData;
Timer &timer;
};
PlayerDevice::~PlayerDevice() { }
Track &PlayerDevice::getTrack(const std::string &trackName)
{
SyncData::TrackContainer::iterator iter = syncData.tracks.find(trackName);
if (iter != syncData.tracks.end()) return *syncData.actualTracks[iter->second];
sync::Track *track = new sync::Track();
// TODO: load data from file
track->setKeyFrame(0, 10.0f);
track->setKeyFrame(10, 0.0f);
size_t index = syncData.actualTracks.size();
syncData.actualTracks.push_back(track);
syncData.tracks[trackName] = index;
return *track;
}
bool PlayerDevice::update(float row)
{
return true;
}
Device *sync::createDevice(const std::string &baseName, Timer &timer)
{
Device *device = new PlayerDevice(baseName, timer);
return device;
}

View File

@ -23,7 +23,6 @@ namespace sync
void deleteKeyFrame(size_t row);
void setKeyFrame(size_t row, const KeyFrame &keyFrame);
void setKeyFrame(size_t row, const float value);
// private: