return _convert_sound_manager_error_code(__func__, MM_ERROR_POLICY_INTERNAL);
}
+ if ((stream_h->acquired_focus & focus_mask) || (stream_h->prev_acquired_focus & focus_mask)) {
+ LOGE("invalid state : focus_mask[0x%x], acquired_focus[0x%x], prev[0x%x]",
+ focus_mask, stream_h->acquired_focus, stream_h->prev_acquired_focus);
+ return _convert_sound_manager_error_code(__func__, MM_ERROR_SOUND_INVALID_STATE);
+ }
+
ret = mm_sound_acquire_focus_with_option(stream_h->index, (mm_sound_focus_type_e)focus_mask, sound_behavior, extra_info);
if (ret == MM_ERROR_NONE) {
stream_h->acquired_focus |= focus_mask;
+ stream_h->prev_acquired_focus |= focus_mask;
_update_focus_status(stream_h->index, (unsigned int)stream_h->acquired_focus);
}
SM_INSTANCE_CHECK(stream_h);
+ if (!(stream_h->acquired_focus & focus_mask) || !(stream_h->prev_acquired_focus & focus_mask)) {
+ LOGE("invalid state : focus_mask[0x%x], acquired_focus[0x%x], prev[0x%x]",
+ focus_mask, stream_h->acquired_focus, stream_h->prev_acquired_focus);
+ return _convert_sound_manager_error_code(__func__, MM_ERROR_SOUND_INVALID_STATE);
+ }
+
ret = mm_sound_release_focus_with_option(stream_h->index, (mm_sound_focus_type_e)focus_mask, sound_behavior, extra_info);
if (ret == MM_ERROR_NONE) {
stream_h->acquired_focus &= ~focus_mask;
+ stream_h->prev_acquired_focus &= ~focus_mask;
_update_focus_status(stream_h->index, (unsigned int)stream_h->acquired_focus);
}