more getter-usage, and moving the getTrackIndexFromPos()-method to the module it's used in

This commit is contained in:
Erik Faye-Lund 2008-02-19 02:40:02 +00:00
parent ae82cf7306
commit 72e0b8f93a
6 changed files with 26 additions and 23 deletions

View File

@ -6,6 +6,18 @@ SyncDocument::~SyncDocument()
clearRedoStack();
}
size_t SyncDocument::getTrackIndexFromPos(size_t track) const
{
assert(track < tracks.size());
sync::Data::TrackContainer::const_iterator trackIter = tracks.begin();
for (size_t currTrack = 0; currTrack < track; ++currTrack, ++trackIter);
assert(tracks.end() != trackIter);
return trackIter->second;
}
#import <msxml4.dll> named_guids
bool SyncDocument::load(const std::string &fileName)

View File

@ -262,6 +262,8 @@ public:
return cmd;
}
size_t getTrackIndexFromPos(size_t track) const;
bool load(const std::string &fileName);
bool save(const std::string &fileName);

View File

@ -461,7 +461,7 @@ int _tmain(int argc, _TCHAR* argv[])
// setup remap
document.clientRemap[serverIndex] = clientIndex;
const sync::Track &track = *document.actualTracks[serverIndex];
const sync::Track &track = document.getTrack(serverIndex);
sync::Track::KeyFrameContainer::const_iterator it;
for (it = track.keyFrames.begin(); it != track.keyFrames.end(); ++it)

View File

@ -34,17 +34,6 @@ Track &Data::getTrack(const std::basic_string<TCHAR> &name)
return *actualTracks[index];
}
size_t Data::getTrackIndexFromPos(size_t track)
{
assert(track < tracks.size());
sync::Data::TrackContainer::iterator trackIter = tracks.begin();
for (size_t currTrack = 0; currTrack < track; ++currTrack, ++trackIter);
assert(tracks.end() != trackIter);
return trackIter->second;
}
size_t Data::getTrackCount() const
{
return tracks.size();

View File

@ -24,8 +24,6 @@ namespace sync
size_t getTrackIndex(const std::basic_string<TCHAR> &name);
Track &getTrack(const std::basic_string<TCHAR> &name);
size_t getTrackIndexFromPos(size_t track);
Track &getTrack(size_t track)
{
assert(track < actualTracks.size());
@ -35,10 +33,9 @@ namespace sync
size_t getTrackCount() const;
// private:
typedef std::map<const std::basic_string<TCHAR>, size_t> TrackContainer;
// typedef std::map<const std::basic_string<TCHAR>, SyncTrack> TrackContainer;
TrackContainer tracks;
// protected:
std::vector<Track*> actualTracks;
};
}

View File

@ -40,14 +40,17 @@ ClientDevice::~ClientDevice()
Track &ClientDevice::getTrack(const std::string &trackName)
{
/* const size_t oldCount = syncData.getTrackCount();
Track &track = syncData.getTrack(trackName);
if (oldCount == syncData.getTrackCount()) return track; */
sync::Data::TrackContainer::iterator iter = syncData.tracks.find(trackName);
if (iter != syncData.tracks.end()) return *syncData.actualTracks[iter->second];
if (iter != syncData.tracks.end()) return syncData.getTrack(iter->second);
unsigned char cmd = GET_TRACK;
send(serverSocket, (char*)&cmd, 1, 0);
size_t clientIndex = syncData.actualTracks.size();
size_t clientIndex = syncData.getTrackCount();
send(serverSocket, (char*)&clientIndex, sizeof(size_t), 0);
// send request data
@ -58,10 +61,10 @@ Track &ClientDevice::getTrack(const std::string &trackName)
send(serverSocket, name_str, int(name_len), 0);
sync::Track *track = new sync::Track();
syncData.actualTracks.push_back(track);
syncData.tracks[trackName] = clientIndex;
return *track;
// return track;
}
bool ClientDevice::update(float row)
@ -95,7 +98,7 @@ bool ClientDevice::update(float row)
assert(interp >= 0);
assert(interp < Track::KeyFrame::IT_COUNT);
sync::Track &t = *syncData.actualTracks[track];
sync::Track &t = syncData.getTrack(track);
t.setKeyFrame(row,
Track::KeyFrame(
value,