Enlightenment CVS committal

Author  : tsauerbeck
Project : misc
Module  : eplayer

Dir     : misc/eplayer/src


Modified Files:
        callbacks.c callbacks.h eplayer.c interface.c track.c track.h 


Log Message:
Added STOP signal
===================================================================
RCS file: /cvsroot/enlightenment/misc/eplayer/src/callbacks.c,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -3 -r1.20 -r1.21
--- callbacks.c 7 Dec 2003 11:53:10 -0000       1.20
+++ callbacks.c 7 Dec 2003 13:08:48 -0000       1.21
@@ -7,7 +7,14 @@
 #include "interface.h"
 #include "utils.h"
 
-static int paused = 0;
+typedef enum {
+       PLAYBACK_STATE_STOPPED,
+       PLAYBACK_STATE_PAUSED,
+       PLAYBACK_STATE_PLAYING
+} PlaybackState;
+
+/*static int paused = 0;*/
+static PlaybackState state = PLAYBACK_STATE_STOPPED;
 
 /**
  * Starts/resumes playback.
@@ -17,16 +24,42 @@
  * @param o
  * @param event
  */
-void cb_play(ePlayer *player, Evas *e, Evas_Object *o, void *event) {
+void cb_play(ePlayer *player, Evas_Object *obj,
+             const char *emission, const char *src) {
        debug(DEBUG_LEVEL_INFO, "Play callback entered\n");
 
-       if (!paused) { /* restart from beginning */
-               eplayer_playback_stop(player);
-               eplayer_playback_start(player, 1);
-       } else { /* continue playback */
-               eplayer_playback_start(player, 0);
-               paused = 0;
+       switch (state) {
+               case PLAYBACK_STATE_STOPPED:
+               case PLAYBACK_STATE_PAUSED: /* continue playback */
+                       eplayer_playback_start(player, 0);
+                       break;
+               case PLAYBACK_STATE_PLAYING: /* restart from beginning */
+                       eplayer_playback_stop(player);
+                       eplayer_playback_start(player, 1);
+                       break;
+               default:
+                       assert(0);
+                       break;
        }
+       
+       state = PLAYBACK_STATE_PLAYING;
+}
+
+/**
+ * Stops playback.
+ *
+ * @param player
+ * @param e
+ * @param o
+ * @param event
+ */
+void cb_stop(ePlayer *player, Evas_Object *obj,
+             const char *emission, const char *src) {
+       debug(DEBUG_LEVEL_INFO, "Stop callback entered\n");
+
+       eplayer_playback_stop(player);
+       track_rewind(player);
+       state = PLAYBACK_STATE_STOPPED;
 }
 
 /**
@@ -37,15 +70,26 @@
  * @param o
  * @param event
  */
-void cb_pause(ePlayer *player, Evas *e, Evas_Object *o, void *event) {
+void cb_pause(ePlayer *player, Evas_Object *obj,
+              const char *emission, const char *src) {
        debug(DEBUG_LEVEL_INFO, "Pause callback entered\n");
-       
-       if (paused)
-               eplayer_playback_start(player, 0);
-       else
-               eplayer_playback_stop(player);
 
-       paused = !paused;
+       switch (state) {
+               case PLAYBACK_STATE_STOPPED:
+                       return;
+                       break;
+               case PLAYBACK_STATE_PAUSED:
+                       eplayer_playback_start(player, 0);
+                       state = PLAYBACK_STATE_PLAYING;
+                       break;
+               case PLAYBACK_STATE_PLAYING:
+                       eplayer_playback_stop(player);
+                       state = PLAYBACK_STATE_PAUSED;
+                       break;
+               default:
+                       assert(0);
+                       break;
+       }
 }
 
 /**
@@ -57,8 +101,8 @@
  * @param o
  * @param event
  */
-void cb_track_next(ePlayer *player, Evas *e, Evas_Object *o,
-                   void *event) {
+void cb_track_next(ePlayer *player, Evas_Object *o,
+                   const char *emission, const char *src) {
        int play = 1;
        
        debug(DEBUG_LEVEL_INFO, "Next File Called\n");
@@ -71,7 +115,7 @@
 
        if (play) {
                eplayer_playback_start(player, 1);
-               paused = 0;
+               state = PLAYBACK_STATE_PLAYING;
        } else /* refresh track info parts, but don't start playing yet */
                track_open(player);
 }
@@ -85,8 +129,8 @@
  * @param o
  * @param event
  */
-void cb_track_prev(ePlayer *player, Evas *e, Evas_Object *o,
-                   void *event) {
+void cb_track_prev(ePlayer *player, Evas_Object *obj,
+                   const char *emission, const char *src) {
        debug(DEBUG_LEVEL_INFO, "Previous File Called\n");
 
        /* first item on the list: do nothing */
@@ -99,7 +143,7 @@
        playlist_current_item_prev(player->playlist);
 
        eplayer_playback_start(player, 1);
-       paused = 0;
+       state = PLAYBACK_STATE_PLAYING;
 }
 
 void cb_volume_raise(ePlayer *player, Evas_Object *obj,
@@ -166,7 +210,7 @@
 
        playlist_current_item_set(player->playlist, pli);
        eplayer_playback_start(player, 1);
-       paused = 0;
+       state = PLAYBACK_STATE_PLAYING;
 }
 
 void cb_playlist_item_selected(void *udata, Evas_Object *obj,
@@ -194,7 +238,7 @@
        eplayer_playback_stop(player);
        pli->plugin->set_current_pos(pli->plugin->get_current_pos() + 5);
        eplayer_playback_start(player, 0);
-       paused = 0;
+       state = PLAYBACK_STATE_PLAYING;
 }
 
 void cb_seek_backward(void *udata, Evas_Object *obj,
@@ -215,7 +259,7 @@
                eplayer_playback_start(player, 0);
        }
        
-       paused = 0;
+       state = PLAYBACK_STATE_PLAYING;
 }
 
 void cb_eplayer_quit(void *udata, Evas_Object *obj,
===================================================================
RCS file: /cvsroot/enlightenment/misc/eplayer/src/callbacks.h,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -3 -r1.9 -r1.10
--- callbacks.h 30 Nov 2003 14:44:20 -0000      1.9
+++ callbacks.h 7 Dec 2003 13:08:48 -0000       1.10
@@ -7,6 +7,8 @@
              const char *emission, const char *src);
 void cb_pause(void *udata, Evas_Object *obj,
               const char *emission, const char *src);
+void cb_stop(void *udata, Evas_Object *obj,
+             const char *emission, const char *src);
 
 void cb_track_next(void *udata, Evas_Object *obj,
                    const char *emission, const char *src);
===================================================================
RCS file: /cvsroot/enlightenment/misc/eplayer/src/eplayer.c,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -3 -r1.21 -r1.22
--- eplayer.c   7 Dec 2003 11:53:09 -0000       1.21
+++ eplayer.c   7 Dec 2003 13:08:48 -0000       1.22
@@ -179,10 +179,8 @@
  * @param rewind_track
  */
 void eplayer_playback_start(ePlayer *player, int rewind_track) {
-       if (rewind_track) {
-               track_close(player);
-               track_open(player);
-       }
+       if (rewind_track)
+               track_rewind(player);
 
        player->time_timer = ecore_timer_add(0.5, track_update_time,
                                             player);
===================================================================
RCS file: /cvsroot/enlightenment/misc/eplayer/src/interface.c,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -3 -r1.22 -r1.23
--- interface.c 7 Dec 2003 11:53:10 -0000       1.22
+++ interface.c 7 Dec 2003 13:08:48 -0000       1.23
@@ -164,6 +164,9 @@
        edje_object_signal_callback_add(player->gui.edje,
                                        "PAUSE", "pause_button",
                                        cb_pause, player);
+       edje_object_signal_callback_add(player->gui.edje,
+                                       "STOP", "stop_button",
+                                       cb_stop, player);
        
        edje_object_signal_callback_add(player->gui.edje,
                                        "VOL_INCR", "vol_incr_button",
===================================================================
RCS file: /cvsroot/enlightenment/misc/eplayer/src/track.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -3 -r1.10 -r1.11
--- track.c     7 Dec 2003 11:53:10 -0000       1.10
+++ track.c     7 Dec 2003 13:08:48 -0000       1.11
@@ -86,3 +86,12 @@
        }
 }
 
+/**
+ * Rewinds the current track.
+ *
+ * @param player
+ */
+void track_rewind(ePlayer *player) {
+       track_close(player);
+       track_open(player);
+}
===================================================================
RCS file: /cvsroot/enlightenment/misc/eplayer/src/track.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -3 -r1.2 -r1.3
--- track.h     25 Oct 2003 19:31:39 -0000      1.2
+++ track.h     7 Dec 2003 13:08:48 -0000       1.3
@@ -8,6 +8,7 @@
 
 void track_open(ePlayer *player);
 void track_close(ePlayer *player);
+void track_rewind(ePlayer *player);
 
 #endif
 




-------------------------------------------------------
This SF.net email is sponsored by: IBM Linux Tutorials.
Become an expert in LINUX or just sharpen your skills.  Sign up for IBM's
Free Linux Tutorials.  Learn everything from the bash shell to sys admin.
Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to