fixup! Reset dump values when pause function is called
[platform/core/api/audio-io.git] / src / cpp / CAudioOutput.cpp
index d50762a..7a5c3ad 100644 (file)
@@ -218,9 +218,6 @@ void CAudioOutput::pause() {
     CAudioIO::pause();
     CAudioIO::setState(CAudioInfo::EAudioIOState::AUDIO_IO_STATE_PAUSED);
 
-    __mTotalWrittenCount = 0;
-    __mTotalWrittenBytes = 0;
-
     locker.unlock();
 
     CAudioIO::onStateChanged(CAudioInfo::EAudioIOState::AUDIO_IO_STATE_PAUSED);
@@ -388,7 +385,8 @@ size_t CAudioOutput::write(const void* buffer, size_t length) {
 
 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 {
@@ -403,3 +401,19 @@ 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