Lines Matching defs:cblk

285     // while we are accessing the cblk
288 audio_track_cblk_t* cblk = mCblk;
293 cblk->lock.lock();
294 if (!(cblk->flags & CBLK_INVALID_MSK)) {
295 cblk->lock.unlock();
298 cblk->lock.lock();
300 android_atomic_or(CBLK_INVALID_ON, &cblk->flags);
303 if (cblk->flags & CBLK_INVALID_MSK) {
304 ret = restoreRecord_l(cblk);
306 cblk->lock.unlock();
308 mNewPosition = cblk->user + mUpdatePeriod;
309 cblk->bufferTimeoutMs = (event == AudioSystem::SYNC_EVENT_NONE) ? MAX_RUN_TIMEOUT_MS :
311 cblk->waitTimeMs = 0;
457 sp<IMemory> cblk = record->getCblk();
458 if (cblk == 0) {
465 mCblkMemory = cblk;
466 mCblk = static_cast<audio_track_cblk_t*>(cblk->pointer());
479 audio_track_cblk_t* cblk = mCblk;
481 uint32_t waitTimeMs = (waitCount < 0) ? cblk->bufferTimeoutMs : WAIT_PERIOD_MS;
486 uint32_t framesReady = cblk->framesReady();
489 cblk->lock.lock();
494 cblk->lock.unlock();
498 cblk->lock.unlock();
501 if (!(cblk->flags & CBLK_INVALID_MSK)) {
503 result = cblk->cv.waitRelative(cblk->lock, milliseconds(waitTimeMs));
504 cblk->lock.unlock();
509 cblk->lock.lock();
511 if (cblk->flags & CBLK_INVALID_MSK) {
515 cblk->waitTimeMs += waitTimeMs;
516 if (cblk->waitTimeMs >= cblk->bufferTimeoutMs) {
518 "user=%08x, server=%08x", cblk->user, cblk->server);
519 cblk->lock.unlock();
522 cblk->lock.lock();
524 android_atomic_or(CBLK_INVALID_ON, &cblk->flags);
526 result = AudioRecord::restoreRecord_l(cblk);
530 cblk->lock.unlock();
533 cblk->waitTimeMs = 0;
536 cblk->lock.unlock();
542 framesReady = cblk->framesReady();
544 cblk->lock.unlock();
547 cblk->waitTimeMs = 0;
549 cblk->bufferTimeoutMs = MAX_RUN_TIMEOUT_MS;
555 uint32_t u = cblk->user;
556 uint32_t bufferEnd = cblk->userBase + cblk->frameCount;
566 audioBuffer->size = framesReq*cblk->frameSize;
567 audioBuffer->raw = (int8_t*)cblk->buffer(u);
618 // while we are accessing the cblk
664 // while we are accessing the cblk
667 audio_track_cblk_t* cblk = mCblk;
671 uint32_t user = cblk->user;
736 if (active && (cblk->framesAvailable() == 0)) {
739 ALOGV("Overrun user: %x, server: %x, flags %04x", cblk->user, cblk->server, cblk->flags);
740 if (!(android_atomic_or(CBLK_UNDERRUN_ON, &cblk->flags) & CBLK_UNDERRUN_MSK)) {
753 // must be called with mLock and cblk.lock held. Callers must also hold strong references on
755 // If the IAudioRecord is successfully restored, the cblk pointer is updated
756 status_t AudioRecord::restoreRecord_l(audio_track_cblk_t*& cblk)
760 if (!(android_atomic_or(CBLK_RESTORING_ON, &cblk->flags) & CBLK_RESTORING_MSK)) {
762 // signal old cblk condition so that other threads waiting for available buffers stop
764 cblk->cv.broadcast();
765 cblk->lock.unlock();
770 result = openRecord_l(cblk->sampleRate, mFormat, mChannelMask,
780 // signal old cblk condition for other threads waiting for restore completion
781 android_atomic_or(CBLK_RESTORED_ON, &cblk->flags);
782 cblk->cv.broadcast();
784 if (!(cblk->flags & CBLK_RESTORED_MSK)) {
787 result = cblk->cv.waitRelative(cblk->lock, milliseconds(RESTORE_TIMEOUT_MS));
788 cblk->lock.unlock();
793 cblk->lock.unlock();
799 ALOGV("restoreRecord_l() status %d mActive %d cblk %p, old cblk %p flags %08x old flags %08x",
800 result, mActive, mCblk, cblk, mCblk->flags, cblk->flags);
803 // from now on we switch to the newly created cblk
804 cblk = mCblk;
806 cblk->lock.lock();