diff options
author | Werner Schweer <ws.seh.de> | 2006-10-05 12:06:28 +0000 |
---|---|---|
committer | Werner Schweer <ws.seh.de> | 2006-10-05 12:06:28 +0000 |
commit | 68c2e0a0b9ca8ccf7499cc4b1f3d4e8c3f20fab6 (patch) | |
tree | e8fd9909d7fd3aa6522b5f59461f5962f176c9ca | |
parent | ed871f97e3a174f59a2d981166f8b7506d751874 (diff) |
update automated controller when seek in stop mode
-rw-r--r-- | muse/muse/audio.cpp | 15 | ||||
-rw-r--r-- | muse/muse/audio.h | 1 |
2 files changed, 7 insertions, 9 deletions
diff --git a/muse/muse/audio.cpp b/muse/muse/audio.cpp index 2d25e61f..c3799897 100644 --- a/muse/muse/audio.cpp +++ b/muse/muse/audio.cpp @@ -318,7 +318,6 @@ printf("JACK: shutdown callback\n"); void Audio::process(unsigned frames) { // printf("process %d\n", frames); - bool updateController = false; extern int watchAudio; ++watchAudio; // make a simple watchdog happy @@ -391,7 +390,6 @@ void Audio::process(unsigned frames) // // invalidate audio prefetch buffer // -printf("invalidate prefetch buffer\n"); audioPrefetch->getFifo()->clear(); audioPrefetch->msgSeek(framePos); lmark = llmark; @@ -399,8 +397,6 @@ printf("invalidate prefetch buffer\n"); } } -// printf("---%d %d \n", state == PLAY, state); - if (isPlaying()) { if (_bounce == 1 && _pos >= song->rPos()) { _bounce = 2; @@ -567,7 +563,7 @@ printf("invalidate prefetch buffer\n"); void Audio::processMsg() { -// printf("---msg %d\n", msg->id); +printf("---msg %d\n", msg->id); switch(msg->id) { case AUDIO_ROUTEADD: addRoute(msg->sroute, msg->droute); @@ -632,10 +628,11 @@ void Audio::processMsg() void Audio::seek(const Pos& p) { _pos.setFrame(p.frame()); - syncFrame = audioDriver->framePos(); - frameOffset = syncFrame - _pos.frame(); - _curTickPos = _pos.tick(); - _nextTickPos = _curTickPos; + syncFrame = audioDriver->framePos(); + frameOffset = syncFrame - _pos.frame(); + _curTickPos = _pos.tick(); + _nextTickPos = _curTickPos; + updateController = true; loopPassed = true; // for record loop mode if (state != LOOP2 && !freewheel()) diff --git a/muse/muse/audio.h b/muse/muse/audio.h index 1012710d..f92502fc 100644 --- a/muse/muse/audio.h +++ b/muse/muse/audio.h @@ -177,6 +177,7 @@ class Audio { unsigned frameOffset; // offset to free running hw frame counter State state; + bool updateController; AudioMsg* volatile msg; int fromThreadFdw, fromThreadFdr; // message pipe |