fixed a compilation error in the player, and a partial fix for bug 1896587.

This commit is contained in:
Erik Faye-Lund 2008-02-19 21:19:50 +00:00
parent eb180b4d15
commit 936fd39fe1
4 changed files with 20 additions and 17 deletions

View File

@ -126,10 +126,11 @@ bool fileNameValid = false;
void fileNew() void fileNew()
{ {
/* document.purgeUnused(); */ /* document.purgeUnusedTracks(); */
trackView->selectAll(); for (size_t i = 0; i < document.getTrackCount(); ++i)
trackView->editDelete(); {
trackView->selectNone(); document.getTrack(i).truncate();
}
fileNameValid = false; fileNameValid = false;
document.clearUndoStack(); document.clearUndoStack();
@ -250,12 +251,12 @@ static LRESULT CALLBACK mainWindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARA
{ {
case ID_FILE_NEW: case ID_FILE_NEW:
fileNew(); fileNew();
InvalidateRect(hwnd, NULL, FALSE); InvalidateRect(trackViewWin, NULL, FALSE);
break; break;
case ID_FILE_OPEN: case ID_FILE_OPEN:
fileOpen(); fileOpen();
InvalidateRect(hwnd, NULL, FALSE); InvalidateRect(trackViewWin, NULL, FALSE);
break; break;
case ID_FILE_SAVE_AS: case ID_FILE_SAVE_AS:

View File

@ -63,19 +63,13 @@ static bool loadTrack(sync::Track &track, std::string fileName)
Track &PlayerDevice::getTrack(const std::string &trackName) Track &PlayerDevice::getTrack(const std::string &trackName)
{ {
sync::Data::TrackContainer::iterator iter = syncData.tracks.find(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));
loadTrack(*track, getTrackFileName(trackName)); return track;
/* 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;
} }
bool PlayerDevice::update(float row) bool PlayerDevice::update(float row)

View File

@ -102,3 +102,9 @@ void Track::setKeyFrame(size_t row, const KeyFrame &keyFrame)
{ {
keyFrames[row] = keyFrame; keyFrames[row] = keyFrame;
} }
void Track::truncate()
{
keyFrames.clear();
}

View File

@ -42,6 +42,8 @@ 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 truncate();
// private: // private:
typedef std::map<size_t, struct KeyFrame> KeyFrameContainer; typedef std::map<size_t, struct KeyFrame> KeyFrameContainer;