From 936fd39fe1bb6e371e00d52afa52001307fa7702 Mon Sep 17 00:00:00 2001 From: Erik Faye-Lund Date: Tue, 19 Feb 2008 21:19:50 +0000 Subject: [PATCH] fixed a compilation error in the player, and a partial fix for bug 1896587. --- editor/synctracker2.cpp | 13 +++++++------ sync/device_player.cpp | 16 +++++----------- sync/track.cpp | 6 ++++++ sync/track.h | 2 ++ 4 files changed, 20 insertions(+), 17 deletions(-) diff --git a/editor/synctracker2.cpp b/editor/synctracker2.cpp index 6d209c7..9e2ef9a 100644 --- a/editor/synctracker2.cpp +++ b/editor/synctracker2.cpp @@ -126,10 +126,11 @@ bool fileNameValid = false; void fileNew() { -/* document.purgeUnused(); */ - trackView->selectAll(); - trackView->editDelete(); - trackView->selectNone(); +/* document.purgeUnusedTracks(); */ + for (size_t i = 0; i < document.getTrackCount(); ++i) + { + document.getTrack(i).truncate(); + } fileNameValid = false; document.clearUndoStack(); @@ -250,12 +251,12 @@ static LRESULT CALLBACK mainWindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARA { case ID_FILE_NEW: fileNew(); - InvalidateRect(hwnd, NULL, FALSE); + InvalidateRect(trackViewWin, NULL, FALSE); break; case ID_FILE_OPEN: fileOpen(); - InvalidateRect(hwnd, NULL, FALSE); + InvalidateRect(trackViewWin, NULL, FALSE); break; case ID_FILE_SAVE_AS: diff --git a/sync/device_player.cpp b/sync/device_player.cpp index 9c710f4..696ad30 100644 --- a/sync/device_player.cpp +++ b/sync/device_player.cpp @@ -63,19 +63,13 @@ static bool loadTrack(sync::Track &track, std::string fileName) Track &PlayerDevice::getTrack(const std::string &trackName) { 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); - sync::Track *track = new sync::Track(); + size_t trackIndex = syncData.getTrackIndex(trackName); + sync::Track &track = syncData.getTrack(trackIndex); - assert(NULL != track); - loadTrack(*track, getTrackFileName(trackName)); -/* track->setKeyFrame(0, Track::KeyFrame(1.0f, Track::KeyFrame::IT_LERP)); - track->setKeyFrame(10, Track::KeyFrame(0.0f, Track::KeyFrame::IT_LERP)); */ - - size_t index = syncData.actualTracks.size(); - syncData.actualTracks.push_back(track); - syncData.tracks[trackName] = index; - return *track; + loadTrack(track, getTrackFileName(trackName)); + return track; } bool PlayerDevice::update(float row) diff --git a/sync/track.cpp b/sync/track.cpp index 4d90251..7a84145 100644 --- a/sync/track.cpp +++ b/sync/track.cpp @@ -102,3 +102,9 @@ void Track::setKeyFrame(size_t row, const KeyFrame &keyFrame) { keyFrames[row] = keyFrame; } + +void Track::truncate() +{ + keyFrames.clear(); +} + diff --git a/sync/track.h b/sync/track.h index 04ae7b6..5826794 100644 --- a/sync/track.h +++ b/sync/track.h @@ -42,6 +42,8 @@ namespace sync void deleteKeyFrame(size_t row); void setKeyFrame(size_t row, const KeyFrame &keyFrame); + void truncate(); + // private: typedef std::map KeyFrameContainer;