CAudioIO::pause();
CAudioIO::setState(CAudioInfo::EAudioIOState::AUDIO_IO_STATE_PAUSED);
- __mTotalWrittenCount = 0;
- __mTotalWrittenBytes = 0;
-
locker.unlock();
CAudioIO::onStateChanged(CAudioInfo::EAudioIOState::AUDIO_IO_STATE_PAUSED);
void CAudioOutput::__dumpStat() noexcept {
AUDIO_IO_LOGD("pClient[%p] : total written %5" PRIu64 " times, %10" PRIu64 " bytes, %7zu ms",
- mpPulseAudioClient, __mTotalWrittenCount, __mTotalWrittenBytes, mAudioInfo.bytesToMs(__mTotalWrittenBytes));
+ mpPulseAudioClient, __mTotalWrittenCount.load(), __mTotalWrittenBytes.load(),
+ mAudioInfo.bytesToMs(__mTotalWrittenBytes.load()));
}
void CAudioOutput::__dumpStat(size_t length) noexcept {
writtenBytes = 0;
}
}
+
+void CAudioOutput::onCorked(CPulseAudioClient* pClient, bool corked) {
+ assert(pClient);
+
+ AUDIO_IO_LOGD("pClient:[%p], corked:[%d]", pClient, corked);
+
+ if (!corked)
+ return;
+
+ __dumpStat();
+
+ AUDIO_IO_LOGW("Now reset previous written count/bytes due to corked!");
+
+ __mTotalWrittenCount = 0;
+ __mTotalWrittenBytes = 0;
+}
\ No newline at end of file