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 #endif
#include <windows.h>
#include <memory> #include <memory>
int main(int argc, char *argv[]) int main(int argc, char *argv[])
{ {
@ -64,13 +65,14 @@ int main(int argc, char *argv[])
sync::Track &track = syncDevice->getTrack("test"); sync::Track &track = syncDevice->getTrack("test");
// timer.play(); timer.play();
while (1) while (1)
{ {
float row = timer.getRow(); float row = timer.getRow();
if (!syncDevice->update(row)) break; 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; return 0;

View File

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