__mMultimediaSession(MM_SESSION_TYPE_MEDIA),
__mpEventListener(listener),
__mIsInit(false),
- __mSubscribeId(-1),
+ __mSubscribeId(0),
__mUseFocus(false),
__mFocusType(FOCUS_NONE),
__mState(FOCUS_IS_RELEASED),
return __mMultimediaSession;
}
-int CAudioSessionHandler::getSubscribeId() {
+unsigned int CAudioSessionHandler::getSubscribeId() {
return __mSubscribeId;
}
if (err == CAudioError::EError::ERROR_INVALID_HANDLE) {
// No session, No stream_info, No focus watch callback before
// Use focus watch callback with signal subscribe
- unsigned int subscribe_id;
- int errorCode = mm_sound_subscribe_signal(MM_SOUND_SIGNAL_RELEASE_INTERNAL_FOCUS, &subscribe_id, __sound_pcm_signal_cb, static_cast<void*>(this));
- if (errorCode != MM_ERROR_NONE) {
- THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_FAILED_OPERATION, "Failed mm_sound_subscribe_signal() err:0x%x", errorCode);
+
+ int errorCode = mm_sound_subscribe_signal(MM_SOUND_SIGNAL_RELEASE_INTERNAL_FOCUS, &__mSubscribeId, __sound_pcm_signal_cb, static_cast<void*>(this));
+ if (errorCode != MM_ERROR_NONE || __mSubscribeId == 0) {
+ THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_FAILED_OPERATION, "Failed mm_sound_subscribe_signal() err:0x%x, __mSubscribeId:%u",
+ errorCode, __mSubscribeId);
}
- __mSubscribeId = (int)subscribe_id;
AUDIO_IO_LOGD("Subscribed mm_sound signal");
sessionOptions = 0; // Mix with others by default
__pcmCaptureCountDec();
}
- if (__mSubscribeId >= 0) {
+ if (__mSubscribeId > 0) {
mm_sound_unsubscribe_signal(__mSubscribeId);
+ __mSubscribeId = 0;
}
__mpEventListener = NULL;