goto INTERRUPT;
}
-FAILED:
+FAILED: /* with CMD UNLOCKED */
return FALSE;
-INTERRUPT:
+INTERRUPT: /* with CMD LOCKED */
return TRUE;
}
if (!__mmplayer_can_do_interrupt(player))
{
LOGW("no need to interrupt, so leave");
- goto EXIT;
+ goto EXIT_WITHOUT_UNLOCK;
}
if (player->sound_focus.session_flags & MM_SESSION_OPTION_UNINTERRUPTIBLE)
DONE:
player->sound_focus.by_asm_cb = FALSE;
player->sound_focus.cb_pending = FALSE;
- MMPLAYER_CMD_UNLOCK( player );
EXIT:
+ MMPLAYER_CMD_UNLOCK( player );
+ LOGW("dispatched");
+ return;
+
+EXIT_WITHOUT_UNLOCK:
LOGW("dispatched");
return;
}
if (!__mmplayer_can_do_interrupt(player))
{
LOGW("no need to interrupt, so leave");
- goto EXIT;
+ goto EXIT_WITHOUT_UNLOCK;
}
if (player->sound_focus.session_flags & MM_SESSION_OPTION_UNINTERRUPTIBLE)
player->sound_focus.by_asm_cb = FALSE;
}
player->sound_focus.cb_pending = FALSE;
- MMPLAYER_CMD_UNLOCK( player );
EXIT:
+ MMPLAYER_CMD_UNLOCK( player );
+ LOGW("dispatched");
+ return;
+
+EXIT_WITHOUT_UNLOCK:
LOGW("dispatched");
return;
}
}
ret = _mmplayer_resource_manager_release(&player->resource_manager);
- if ( ret == MM_ERROR_RESOURCE_INVALID_STATE )
+ if (ret == MM_ERROR_RESOURCE_INVALID_STATE)
{
LOGW("it could be in the middle of resource callback or there's no acquired resource\n");
ret = MM_ERROR_NONE;
LOGE("failed to release resource, ret(0x%x)\n", ret);
}
ret = _mmplayer_resource_manager_unprepare(&player->resource_manager);
+ if (ret != MM_ERROR_NONE)
{
LOGE("failed to unprepare resource, ret(0x%x)\n", ret);
}
LOGE(" - user data is null\n");
return;
}
+ player = (mm_player_t*)user_data;
if (err != MRP_RES_ERROR_NONE)
{
- LOGE(" - error message received from Murphy, err(0x%x)\n", err);
+ LOGE(" - error message received from Murphy, for the player(%p), err(0x%x)\n", player, err);
return;
}
- player = (mm_player_t*)user_data;
-
switch(context->state)
{
case MRP_RES_CONNECTED:
}
else
LOGW("could not find videobin");
+ MMPLAYER_CMD_UNLOCK(player);
}
MMPLAYER_FLEAVE();