From: werner s. <wsc...@us...> - 2005-11-20 14:13:56
|
Update of /cvsroot/lmuse/muse/muse In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3734/muse Modified Files: app.cpp audio.cpp song.h wave.cpp wavetrack.cpp wavetrack.h Log Message: fix audio recording bug Index: app.cpp =================================================================== RCS file: /cvsroot/lmuse/muse/muse/app.cpp,v retrieving revision 1.201 retrieving revision 1.202 diff -C2 -d -r1.201 -r1.202 *** app.cpp 18 Nov 2005 16:51:14 -0000 1.201 --- app.cpp 20 Nov 2005 14:13:41 -0000 1.202 *************** *** 1169,1173 **** while (*p) pattern << *p++; ! QString fn = getOpenFileName(QString(""), pattern, this, tr("MusE: load project")); if (!fn.isEmpty()) { --- 1169,1173 ---- while (*p) pattern << *p++; ! QString fn = getOpenFileName(QString("."), pattern, this, tr("MusE: load project")); if (!fn.isEmpty()) { Index: wavetrack.h =================================================================== RCS file: /cvsroot/lmuse/muse/muse/wavetrack.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** wavetrack.h 12 Nov 2005 13:15:40 -0000 1.1 --- wavetrack.h 20 Nov 2005 14:13:41 -0000 1.2 *************** *** 49,53 **** void startRecording(); void recordBeat(); ! void stopRecording(); }; --- 49,53 ---- void startRecording(); void recordBeat(); ! void stopRecording(const Pos&, const Pos&); }; Index: wavetrack.cpp =================================================================== RCS file: /cvsroot/lmuse/muse/muse/wavetrack.cpp,v retrieving revision 1.24 retrieving revision 1.25 diff -C2 -d -r1.24 -r1.25 *** wavetrack.cpp 12 Nov 2005 13:15:40 -0000 1.24 --- wavetrack.cpp 20 Nov 2005 14:13:41 -0000 1.25 *************** *** 228,231 **** --- 228,233 ---- AL::Pos start = song->punchin() ? song->lPos() : song->cPos(); + // search for recordPart + recordPart = 0; for (iPart ip = parts()->begin(); ip != parts()->end(); ++ip) { Part* part = ip->second; *************** *** 234,237 **** --- 236,240 ---- if (start.tick() >= partStart && start.tick() < partEnd) { recordPart = (WavePart*)part; + break; } } *************** *** 272,282 **** //--------------------------------------------------------- ! void WaveTrack::stopRecording() { int updateFlags = 0; ! setRecFile(0); unsigned ptick = recordPart->tick(); ! unsigned cpos = song->cpos(); // // adjust part len && song len --- 275,296 ---- //--------------------------------------------------------- ! void WaveTrack::stopRecording(const Pos& s, const Pos& e) { int updateFlags = 0; ! ! _recFile->update(); ! ! // create Event ! Event event(Wave); ! SndFileR sf(_recFile); ! event.setSndFile(sf); ! event.setSpos(0); ! event.setLenFrame(e.frame() - s.frame()); ! recordPart->addEvent(event); ! ! _recFile = 0; unsigned ptick = recordPart->tick(); ! unsigned cpos = e.tick(); // // adjust part len && song len Index: wave.cpp =================================================================== RCS file: /cvsroot/lmuse/muse/muse/wave.cpp,v retrieving revision 1.30 retrieving revision 1.31 diff -C2 -d -r1.30 -r1.31 *** wave.cpp 14 Nov 2005 20:05:36 -0000 1.30 --- wave.cpp 20 Nov 2005 14:13:41 -0000 1.31 *************** *** 636,640 **** tr("Import Wave File")); if (!fn.isEmpty()) { ! lastWavePath = fn; importWave(fn); } --- 636,641 ---- tr("Import Wave File")); if (!fn.isEmpty()) { ! QFileInfo qf(fn); ! lastWavePath = qf.path(); importWave(fn); } *************** *** 878,915 **** //--------------------------------------------------------- - // cmdAddRecordedWave - // gui environment - //--------------------------------------------------------- - - void Song::cmdAddRecordedWave(WaveTrack* track, const Pos& s, const Pos& e) - { - SndFile* f = track->recFile(); - if (f == 0) { - printf("cmdAddRecordedWave: no snd file for track <%s>\n", - track->name().toLatin1().data()); - return; - } - - unsigned startTick = roundDownBar(s.tick()); - unsigned endTick = roundUpBar(e.tick()); - - f->update(); - - WavePart* part = new WavePart(track); - part->setTick(startTick); - part->setLenTick(endTick - startTick); - part->setName(track->name()); - - // create Event - Event event(Wave); - SndFileR sf(f); - event.setSndFile(sf); - event.setSpos(0); - event.setLenFrame(e.frame() - s.frame()); - part->addEvent(event); - song->addPart(part); - } - - //--------------------------------------------------------- // cmdChangeWave // called from GUI context --- 879,882 ---- Index: song.h =================================================================== RCS file: /cvsroot/lmuse/muse/muse/song.h,v retrieving revision 1.75 retrieving revision 1.76 diff -C2 -d -r1.75 -r1.76 *** song.h 18 Nov 2005 16:51:14 -0000 1.75 --- song.h 20 Nov 2005 14:13:41 -0000 1.76 *************** *** 200,204 **** //----------------------------------------- - void cmdAddRecordedWave(WaveTrack* track, const Pos&, const Pos&); bool addEvent(Event&, Part*); void changeEvent(Event&, Event&, Part*); --- 200,203 ---- Index: audio.cpp =================================================================== RCS file: /cvsroot/lmuse/muse/muse/audio.cpp,v retrieving revision 1.104 retrieving revision 1.105 diff -C2 -d -r1.104 -r1.105 *** audio.cpp 18 Nov 2005 16:51:14 -0000 1.104 --- audio.cpp 20 Nov 2005 14:13:41 -0000 1.105 *************** *** 651,657 **** WaveTrack* track = *it; if (track->recordFlag() || song->bounceTrack == track) { ! song->cmdAddRecordedWave(track, startRecordPos, endRecordPos); song->setRecordFlag(track, false); - track->stopRecording(); } } --- 651,657 ---- WaveTrack* track = *it; if (track->recordFlag() || song->bounceTrack == track) { ! // song->cmdAddRecordedWave(track, startRecordPos, endRecordPos); ! track->stopRecording(startRecordPos, endRecordPos); song->setRecordFlag(track, false); } } |