+void CPulseAudioClient::notifyCorkStatus() {
+ assert(__mpListener);
+ assert(__mpStream);
+
+ __mpListener->onCorked(this, static_cast<bool>(pa_stream_is_corked(__mpStream)));
+}
+
+void CPulseAudioClient::__successCorkCb(pa_stream* s, int success, void* user_data) {
+ assert(s);
+ assert(user_data);
+
+ auto pClient = static_cast<CPulseAudioClient*>(user_data);
+
+ AUDIO_IO_LOGD("pClient[%p] pa_stream[%p] success[%d] user_data[%p]", pClient, s, success, user_data);
+
+ if (success)
+ pClient->notifyCorkStatus();
+}
+
+void CPulseAudioClient::__successCorkCbSignal(pa_stream* s, int success, void* user_data) {
+ assert(s);
+ assert(user_data);
+
+ auto pClient = static_cast<CPulseAudioClient*>(user_data);
+
+ AUDIO_IO_LOGD("pClient[%p] pa_stream[%p] success[%d] user_data[%p]", pClient, s, success, user_data);
+
+ if (success)
+ pClient->notifyCorkStatus();
+
+ pClient->__mIsOperationSuccess = static_cast<bool>(success);
+
+ /* FIXME : verify following action without any waiting */
+ pa_threaded_mainloop_signal(pClient->__mpMainloop, 0);
+}
+