return false;
}
+bool CAudioSessionHandler::__isFocusDisableReacquisitionRequired(MMSessionType type, int options) {
+ if ((type == MM_SESSION_TYPE_MEDIA) &&
+ !(options & MM_SESSION_OPTION_RESUME_BY_SYSTEM_OR_MEDIA_PAUSED))
+ return true;
+
+ return false;
+}
+
int CAudioSessionHandler::getId() {
return __mId;
}
THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_FAILED_OPERATION, "Failed mm_sound_register_focus_for_session() err:0x%x", errorCode);
}
+ if (__isFocusDisableReacquisitionRequired(__mMultimediaSession, __mOptions)) {
+ errorCode = mm_sound_set_focus_reacquisition_for_session(__mId, false);
+ if (errorCode != MM_ERROR_NONE) {
+ THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_FAILED_OPERATION, "Failed mm_sound_set_focus_reacquisition() err:0x%x", errorCode);
+ }
+ }
+
__focusIdCountInc();
AUDIO_IO_LOGD("Focus callback registered successfully [id:%d]", __mId);
if (__mUseFocus && __isFocusRequired(__mMultimediaSession, __mOptions)) {
if (__mId >= 0) {
- int ret = mm_sound_acquire_focus(__mId, FOCUS_FOR_BOTH, "audio-io acquire focus");
+ int ret = MM_ERROR_NONE;
+ if (__mMultimediaSession == MM_SESSION_TYPE_MEDIA)
+ ret = mm_sound_acquire_focus_with_option(__mId, FOCUS_FOR_BOTH, 1, "audio-io acquire focus"); /* option: 1 for no-resume */
+ else
+ ret = mm_sound_acquire_focus(__mId, FOCUS_FOR_BOTH, "audio-io acquire focus");
if (ret != MM_ERROR_NONE) {
THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_POLICY_BLOCKED, "Failed mm_sound_acquire_focus() err:0x%x", ret);
}
if (__mUseFocus && __isFocusRequired(__mMultimediaSession, __mOptions)) {
if (__mId >= 0) {
- int ret = mm_sound_release_focus(__mId, FOCUS_FOR_BOTH, "audio-io release focus");
+ int ret = MM_ERROR_NONE;
+ if (__mMultimediaSession == MM_SESSION_TYPE_MEDIA)
+ ret = mm_sound_release_focus_with_option(__mId, FOCUS_FOR_BOTH, 1, "audio-io release focus"); /* option: 1 for no-resume */
+ else
+ ret = mm_sound_release_focus(__mId, FOCUS_FOR_BOTH, "audio-io release focus");
if (ret != MM_ERROR_NONE) {
THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_FAILED_OPERATION, "Failed mm_sound_release_focus() err:0x%x", ret);
}