}
bool step(); // mStepCount is an implicit input
- void reset();
bool isOut() const { return mIsOut; }
// true for Track and TimedTrack, false for RecordTrack,
mServerProxy->releaseBuffer(&buf);
}
-void AudioFlinger::ThreadBase::TrackBase::reset() {
- ALOGV("TrackBase::reset");
- // FIXME still needed?
-}
-
status_t AudioFlinger::ThreadBase::TrackBase::setSyncEvent(const sp<SyncEvent>& event)
{
mSyncEvents.add(event);
// Do not reset twice to avoid discarding data written just after a flush and before
// the audioflinger thread detects the track is stopped.
if (!mResetDone) {
- TrackBase::reset();
// Force underrun condition to avoid false underrun callback until first data is
// written to buffer
android_atomic_and(~CBLK_FORCEREADY, &mCblk->flags);
recordThread->mLock.lock();
bool doStop = recordThread->stop_l(this);
if (doStop) {
- TrackBase::reset();
// Force overrun condition to avoid false overrun callback until first data is
// read from buffer
android_atomic_or(CBLK_UNDERRUN, &mCblk->flags);