From: <enl...@li...> - 2004-01-31 10:37:18
|
Enlightenment CVS committal Author : tsauerbeck Project : misc Module : eplayer Dir : misc/eplayer/src Modified Files: callbacks.c eplayer.c eplayer.h track.c Log Message: don't start playback if playlist->cur_item is NULL :) =================================================================== RCS file: /cvsroot/enlightenment/misc/eplayer/src/callbacks.c,v retrieving revision 1.34 retrieving revision 1.35 diff -u -3 -r1.34 -r1.35 --- callbacks.c 30 Jan 2004 02:57:00 -0000 1.34 +++ callbacks.c 31 Jan 2004 10:35:39 -0000 1.35 @@ -22,8 +22,6 @@ PLAYBACK_STATE_PLAYING } PlaybackState; - -/*static int paused = 0;*/ static PlaybackState state = PLAYBACK_STATE_STOPPED; /** @@ -35,23 +33,26 @@ * @param event */ EDJE_CB(play) { + int res; + debug(DEBUG_LEVEL_INFO, "Play callback entered\n"); switch (state) { case PLAYBACK_STATE_STOPPED: case PLAYBACK_STATE_PAUSED: /* continue playback */ - eplayer_playback_start(player, 0); + res = eplayer_playback_start(player, 0); break; case PLAYBACK_STATE_PLAYING: /* restart from beginning */ eplayer_playback_stop(player); - eplayer_playback_start(player, 1); + res = eplayer_playback_start(player, 1); break; default: assert(0); break; } - - state = PLAYBACK_STATE_PLAYING; + + if (res) + state = PLAYBACK_STATE_PLAYING; } /** @@ -208,8 +209,8 @@ eplayer_playback_start(player, 1); state = PLAYBACK_STATE_PLAYING; - /* pass the signal to the main edje */ - edje_object_signal_emit(player->gui.edje, "PLAYLIST_PLAY", "ePlayer"); + /* pass the signal to the main edje */ + edje_object_signal_emit(player->gui.edje, "PLAYLIST_ITEM_PLAY", "ePlayer"); } EDJE_CB(playlist_item_remove) { =================================================================== RCS file: /cvsroot/enlightenment/misc/eplayer/src/eplayer.c,v retrieving revision 1.27 retrieving revision 1.28 diff -u -3 -r1.27 -r1.28 --- eplayer.c 24 Jan 2004 21:05:54 -0000 1.27 +++ eplayer.c 31 Jan 2004 10:35:39 -0000 1.28 @@ -193,8 +193,7 @@ * @param player */ void eplayer_playback_stop(ePlayer *player) { - if (!player) - return; + assert(player); /* stop the timer that updates the time part */ if (player->time_timer) { @@ -233,20 +232,29 @@ * @param player * @param rewind_track */ -void eplayer_playback_start(ePlayer *player, int rewind_track) { +int eplayer_playback_start(ePlayer *player, int rewind_track) { + PlayListItem *pli; + + assert(player); + + if (!(pli = playlist_current_item_get(player->playlist))) + return 0; + if (rewind_track) track_rewind(player); ecore_timer_add(0.5, check_playback_next, player); player->time_timer = ecore_timer_add(0.5, track_update_time, player); - + pthread_mutex_lock(&player->playback_stop_mutex); player->playback_stop = 0; pthread_mutex_unlock(&player->playback_stop_mutex); pthread_create(&player->playback_thread, NULL, (void *) &track_play_chunk, player); + + return 1; } /** =================================================================== RCS file: /cvsroot/enlightenment/misc/eplayer/src/eplayer.h,v retrieving revision 1.20 retrieving revision 1.21 diff -u -3 -r1.20 -r1.21 --- eplayer.h 28 Jan 2004 11:17:38 -0000 1.20 +++ eplayer.h 31 Jan 2004 10:35:39 -0000 1.21 @@ -58,7 +58,7 @@ } ePlayer; void eplayer_playback_stop(ePlayer *player); -void eplayer_playback_start(ePlayer *player, int rewind_track); +int eplayer_playback_start(ePlayer *player, int rewind_track); #endif =================================================================== RCS file: /cvsroot/enlightenment/misc/eplayer/src/track.c,v retrieving revision 1.14 retrieving revision 1.15 diff -u -3 -r1.14 -r1.15 --- track.c 16 Jan 2004 05:10:55 -0000 1.14 +++ track.c 31 Jan 2004 10:35:39 -0000 1.15 @@ -16,6 +16,8 @@ int read; unsigned char *buf = NULL; + assert(pli); + while (!player->playback_stop && (read = pli->plugin->read(&buf)) != EOF) { player->output->play(buf, read); |