Beispiel #1
0
static int music_list_refresh(void)
{
	music_lock();
	g_list.curr_pos = 0;

	if (music_maxindex() > 0) {
		if (g_list.is_list_playing) {
			if (music_play(g_list.curr_pos) < 0) {
				g_list.is_list_playing = false;
			}
		} else {
			// only load information
			if (music_load(g_list.curr_pos) >= 0) {
				musicdrv_end();
			}
		}
	} else {
		musicdrv_end();
		set_musicdrv(NULL);
	}

	g_list.first_time = true;
	g_shuffle.first_time = true;
	music_unlock();

	return 0;
}
Beispiel #2
0
int music_stop(void)
{
	int ret;

	ret = musicdrv_get_status();
	if (ret < 0)
		return ret;

	if (ret == ST_PLAYING || ret == ST_PAUSED || ret == ST_LOADED || ret == ST_STOPPED || ret == ST_FFORWARD || ret == ST_FBACKWARD) {
		ret = musicdrv_end();
	} else
		ret = 0;

	return ret;
}
Beispiel #3
0
int music_suspend(void)
{
	int ret;

	dbg_printf(d, "%s", __func__);

	music_lock();
	ret = musicdrv_suspend();

	if (ret < 0) {
		dbg_printf(d, "%s: Suspend failed!", __func__);
		musicdrv_end();
		music_unlock();
		return ret;
	}

	prev_is_playing = g_list.is_list_playing;
	g_list.is_list_playing = 0;

	// now music module is locked
	return 0;
}