THROW_ERROR_MSG(CAudioError::ERROR_INTERNAL_OPERATION, "Failed pthread_mutex_lock()");
}
#ifdef _AUDIO_IO_DEBUG_TIMING_
- AUDIO_IO_LOGD(COLOR_RED"LOCK"COLOR_END);
+ AUDIO_IO_LOGD(COLOR_RED "LOCK" COLOR_END);
#endif
}
THROW_ERROR_MSG(CAudioError::ERROR_INTERNAL_OPERATION, "Failed pthread_mutex_lock()");
}
#ifdef _AUDIO_IO_DEBUG_TIMING_
- AUDIO_IO_LOGD(COLOR_GREEN"UNLOCK"COLOR_END);
+ AUDIO_IO_LOGD(COLOR_GREEN "UNLOCK" COLOR_END);
#endif
}
}
#ifdef _AUDIO_IO_DEBUG_TIMING_
- AUDIO_IO_LOGD(COLOR_RED"WAIT"COLOR_END);
+ AUDIO_IO_LOGD(COLOR_RED "WAIT" COLOR_END);
#endif
pthread_cond_wait(&mCond, &mMutex);
}
#ifdef _AUDIO_IO_DEBUG_TIMING_
- AUDIO_IO_LOGD(COLOR_GREEN"SIGNAL"COLOR_END);
+ AUDIO_IO_LOGD(COLOR_GREEN "SIGNAL" COLOR_END);
#endif
pthread_cond_signal(&mCond);
assert(pClient != NULL);
assert(length > 0);
+#ifdef _AUDIO_IO_DEBUG_TIMING_
+ AUDIO_IO_LOGD("mStreamCallback.onStream(%p), pClient(%p), length(%zu)", mStreamCallback.onStream, pClient, length);
+#endif
+
if (mStreamCallback.onStream != NULL) {
mStreamCallback.onStream(length, mStreamCallback.mUserData);
}
} else if (state == FOCUS_IS_ACQUIRED) {
// Focus handle(id) of the other application was acquired, do pause if possible
internalLock();
+
if (mpPulseAudioClient->getStreamDirection() == CPulseAudioClient::STREAM_DIRECTION_PLAYBACK) {
if (mpPulseAudioClient->drain() == false) {
AUDIO_IO_LOGE("Failed CPulseAudioClient::drain()");
if (state == FOCUS_IS_RELEASED) {
// Focus handle(id) was released, do pause here
internalLock();
+
if (mpPulseAudioClient->getStreamDirection() == CPulseAudioClient::STREAM_DIRECTION_PLAYBACK) {
if (mpPulseAudioClient->drain() == false) {
AUDIO_IO_LOGE("Failed CPulseAudioClient::drain()");
}
try {
- internalLock();
AUDIO_IO_LOGD("prepare");
/* Do nothing */
- internalUnlock();
} catch (CAudioError e) {
- internalUnlock();
throw e;
}
}
}
try {
- internalLock();
AUDIO_IO_LOGD("unprepare");
/* Do nothing */
- internalUnlock();
} catch (CAudioError e) {
- internalUnlock();
throw e;
}
}
THROW_ERROR_MSG(CAudioError::ERROR_NOT_INITIALIZED, "Doesn't initialize CAudioIO");
}
- internalLock();
mStreamCallback = callback;
- internalUnlock();
}
CAudioIO::SStreamCallback CAudioIO::getStreamCallback() throw (CAudioError) {
THROW_ERROR_MSG(CAudioError::ERROR_NOT_INITIALIZED, "Doesn't initialize CAudioIO");
}
- internalLock();
mStateChangedCallback = callback;
- internalUnlock();
}
CAudioIO::SStateChangedCallback CAudioIO::getStateChangedCallback() throw (CAudioError) {
THROW_ERROR_MSG(CAudioError::ERROR_NOT_INITIALIZED, "Doesn't initialize CAudioIO");
}
- internalLock();
-
try {
+ internalLock();
+
if (mpPulseAudioClient != NULL && mpPulseAudioClient->isCorked() == false) {
THROW_ERROR_MSG(CAudioError::ERROR_INVALID_OPERATION, "An Operation is not permitted while started");
}
mpAudioSessionHandler->unregisterSound();
mForceIgnore = true;
}
+
+ internalUnlock();
} catch (CAudioError e) {
internalUnlock();
-
throw e;
}
-
- internalUnlock();
}