int pluginid;
int status;
- bool stop_by_user;
-
} __mmsound_mgr_codec_handle_t;
static MMSoundPluginType *g_codec_plugins = NULL;
#endif
static int _MMSoundMgrCodecRegisterInterface(MMSoundPluginType *plugin);
-static int _MMSoundMgrCodecStopCallback(int param);
+static int _MMSoundMgrCodecStopCallback(int param, bool stop_by_user);
static gboolean _mm_sound_mgr_codec_slot_is_empty();
static gboolean _idle_cb(gpointer user_data)
debug_msg("Found slot, Slotid [%d] State [%d]", slotid, g_slots[slotid].status);
#endif
- g_slots[slotid].stop_by_user = true;
-
err = g_plugins[g_slots[slotid].pluginid].Stop(g_slots[slotid].plughandle);
if (err != MM_ERROR_NONE)
debug_error("Fail to STOP Code : 0x%08X", err);
return err;
}
-static int _MMSoundMgrCodecStopCallback(int param)
+static int _MMSoundMgrCodecStopCallback(int param, bool stop_by_user)
{
int err = MM_ERROR_NONE;
return MM_ERROR_INVALID_ARGUMENT;
}
- debug_enter("Slot(%d) : stop-by-user(%d)", param, g_slots[param].stop_by_user);
+ debug_enter("Slot(%d) : stop-by-user(%d)", param, stop_by_user);
- if (!g_slots[param].stop_by_user) {
+ if (!stop_by_user) {
SLOT_LOCK();
__mm_sound_mgr_ipc_notify_play_file_end(param);
debug_msg("Client callback msg_type (instance) : [%d]", (int)g_slots[param].param);
if (_mm_sound_mgr_codec_slot_is_empty())
_mm_sound_mgr_codec_shutdown_timer_start();
- if (!g_slots[param].stop_by_user)
+ if (!stop_by_user)
SLOT_UNLOCK();
debug_fleave();