virtual void SetPosition(uint_t frameNum) { const TrackState::Ptr state = Iterator->GetStateObserver(); if (state->Frame() > frameNum) { Iterator->Reset(); Device->Reset(); LastChunk.TimeStamp = Devices::AYM::Stamp(); } while (state->Frame() < frameNum && Iterator->IsValid()) { TransferChunk(); Iterator->NextFrame(false); } }
void SetPosition(uint_t frameNum) override { const TrackState::Ptr state = Iterator->GetStateObserver(); uint_t curFrame = state->Frame(); if (curFrame > frameNum) { Iterator->Reset(); Device->Reset(); LastChunk.TimeStamp = Devices::TFM::Stamp(); curFrame = 0; } while (curFrame < frameNum && Iterator->IsValid()) { TransferChunk(); Iterator->NextFrame(true); ++curFrame; } }