Enlightenment CVS committal

Author  : tsauerbeck
Project : misc
Module  : eplayer

Dir     : misc/eplayer/src


Modified Files:
        callbacks.c callbacks.h eplayer.c eplayer.h interface.c 
        playlist.c utils.c 


Log Message:
Fixed playlist_load_dir(), added QUIT signal/button (thanks to digitalfallout), added 
PLAYLIST_ITEM_PLAY signal, updated playlist scrolling stuff
===================================================================
RCS file: /cvsroot/enlightenment/misc/eplayer/src/callbacks.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -3 -r1.14 -r1.15
--- callbacks.c 16 Nov 2003 00:02:06 -0000      1.14
+++ callbacks.c 17 Nov 2003 21:03:10 -0000      1.15
@@ -1,6 +1,7 @@
 #include <config.h>
 #include <Edje.h>
 #include <Esmart/container.h>
+#include <assert.h>
 #include "eplayer.h"
 #include "track.h"
 #include "interface.h"
@@ -161,6 +162,21 @@
                           player->gui.playlist_font_size * -3);
 }
 
+void cb_playlist_item_play(void *udata, Evas_Object *obj,
+                           const char *emission, const char *src) {
+       ePlayer *player = udata;
+       PlayListItem *pli = evas_object_data_get(obj, "PlayListItem");
+       Evas_List *item = evas_list_find_list(player->playlist->items, pli);
+
+       assert(item);
+       
+       eplayer_playback_stop(player);
+
+       player->playlist->cur_item = item;
+       eplayer_playback_start(player, 1);
+       paused = 0;
+}
+
 void cb_seek_forward(void *udata, Evas_Object *obj,
                      const char *emission, const char *src) {
        ePlayer *player = udata;
@@ -196,4 +212,9 @@
        }
        
        paused = 0;
+}
+
+void cb_eplayer_quit(void *udata, Evas_Object *obj,
+                     const char *emission, const char *src) {
+       ecore_main_loop_quit();
 }
===================================================================
RCS file: /cvsroot/enlightenment/misc/eplayer/src/callbacks.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -3 -r1.5 -r1.6
--- callbacks.h 15 Nov 2003 15:45:39 -0000      1.5
+++ callbacks.h 17 Nov 2003 21:03:10 -0000      1.6
@@ -29,10 +29,16 @@
 void cb_playlist_scroll_down(void *udata, Evas_Object *obj,
                              const char *emission, const char *src);
 
+void cb_playlist_item_play(void *udata, Evas_Object *obj,
+                           const char *emission, const char *src);
+
 void cb_seek_forward(void *udata, Evas_Object *obj,
                      const char *emission, const char *src);
 void cb_seek_backward(void *udata, Evas_Object *obj,
                       const char *emission, const char *src);
+
+void cb_eplayer_quit(void *udata, Evas_Object *obj,
+                     const char *emission, const char *src);
 
 #endif
 
===================================================================
RCS file: /cvsroot/enlightenment/misc/eplayer/src/eplayer.c,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -3 -r1.15 -r1.16
--- eplayer.c   14 Nov 2003 16:40:19 -0000      1.15
+++ eplayer.c   17 Nov 2003 21:03:10 -0000      1.16
@@ -202,6 +202,9 @@
        for (i = 1; player->args[i]; i++)
                playlist_load_any(player->playlist, player->args[i], i > 1);
 
+       debug(DEBUG_LEVEL_INFO, "Got %i playlist entries\n",
+             player->playlist->num);
+
        if (player->playlist->num)
                track_open(player);
                
===================================================================
RCS file: /cvsroot/enlightenment/misc/eplayer/src/eplayer.h,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -3 -r1.13 -r1.14
--- eplayer.h   16 Nov 2003 00:02:07 -0000      1.13
+++ eplayer.h   17 Nov 2003 21:03:10 -0000      1.14
@@ -22,8 +22,7 @@
        Evas *evas;
        Evas_Object *edje;
        Evas_Object *playlist; /* playlist container */
-       //Evas_Object *playlist_col[2];
-       int playlist_font_size; /* 0 -> title, 1 -> length */
+       int playlist_font_size;
 } Gui;
 
 typedef struct {
===================================================================
RCS file: /cvsroot/enlightenment/misc/eplayer/src/interface.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -3 -r1.14 -r1.15
--- interface.c 16 Nov 2003 00:02:07 -0000      1.14
+++ interface.c 17 Nov 2003 21:03:10 -0000      1.15
@@ -79,6 +79,10 @@
 
        /*** Edje Callbacks ***************************/
        edje_object_signal_callback_add(player->gui.edje,
+                                       "QUIT", "quit",
+                                       cb_eplayer_quit, player);
+       
+       edje_object_signal_callback_add(player->gui.edje,
                                        "PLAY_PREVIOUS", "previous_button",
                                        cb_track_prev, player);
        edje_object_signal_callback_add(player->gui.edje,
@@ -125,12 +129,6 @@
        
        edje_object_part_swallow(player->gui.edje, "playlist",
                                 player->gui.playlist);
-       edje_object_signal_callback_add(player->gui.edje,
-                                       "PLAYLIST_SCROLL_DOWN", "playlist",
-                                       cb_playlist_scroll_down, player);
-       edje_object_signal_callback_add(player->gui.edje,
-                                       "PLAYLIST_SCROLL_UP", "playlist",
-                                       cb_playlist_scroll_up, player);
 }
 
 void show_playlist_item(PlayListItem *pli, void *data) {
@@ -138,12 +136,6 @@
        Evas_Object *o;
        char len[32];
        double w = 0, h = 0;
-       int i, j;
-       char *part[] = {"title", "length"};
-       char *signal[] = {"PLAYLIST_SCROLL_UP", "PLAYLIST_SCROLL_DOWN"};
-       void (*cb[])(void *data, Evas_Object *o, const char *emission,
-                       const char *source) = {cb_playlist_scroll_up,
-                                              cb_playlist_scroll_down};
 
        /* add the item to the container */
        o = edje_object_add(player->gui.evas);
@@ -162,6 +154,8 @@
        edje_object_size_min_get(o, &w, &h);
        evas_object_resize(o, w, h);
        
+       evas_object_data_set(o, "PlayListItem", pli);
+
        /* store font size, we need it later for scrolling
         * FIXME: we're assuming that the objects minimal height
         * equals the text size
@@ -169,12 +163,14 @@
        player->gui.playlist_font_size = h;
 
        e_container_element_append(player->gui.playlist, o);
-               
+       
        /* add playlist item callbacks */
-       for (i = 0; i < 2; i++)
-               for (j = 0; j < 2; j++)
-                       edje_object_signal_callback_add(o, signal[i], part[j],
-                                                       cb[i], player);
+       edje_object_signal_callback_add(o, "PLAYLIST_SCROLL_UP", "",
+                                               cb_playlist_scroll_up, player);
+       edje_object_signal_callback_add(o, "PLAYLIST_SCROLL_DOWN", "",
+                                               cb_playlist_scroll_down, player);
+       edje_object_signal_callback_add(o, "PLAYLIST_ITEM_PLAY", "",
+                                               cb_playlist_item_play, player);
 }
 
 int refresh_volume(void *udata) {
===================================================================
RCS file: /cvsroot/enlightenment/misc/eplayer/src/playlist.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -3 -r1.10 -r1.11
--- playlist.c  14 Nov 2003 16:40:19 -0000      1.10
+++ playlist.c  17 Nov 2003 21:03:10 -0000      1.11
@@ -12,7 +12,7 @@
  *
  * @param pli The PlayListItem to store the comments/info stuff in.
  */
-void playlist_item_get_info(PlayListItem *pli) {
+static void playlist_item_get_info(PlayListItem *pli) {
        int i;
        
        pli->sample_rate = pli->plugin->get_sample_rate();
@@ -205,36 +205,26 @@
  * @return Boolean success or failure.
  */
 int playlist_load_dir(PlayList *pl, const char *path, int append) {
-       PlayListItem *pli = NULL;
-       Evas_List *tmp = NULL;
        DIR *dir;
        struct dirent *entry;
+       char buf[PATH_MAX + 1];
 
        if (!pl || !(dir = opendir(path)))
                return 0;
 
-       /* ignore "." and ".." */
-       while ((entry = readdir(dir))
-              && (!strcmp(entry->d_name, ".")
-              || !strcmp(entry->d_name, "..")));
-
-       if (!entry)
-               return 0;
-       
-       /* real entries: load directories recursively */
-       do {
-               if (is_dir(entry->d_name))
-                       playlist_load_dir(pl, entry->d_name, 1);
-               else if ((pli = playlist_item_new(pl->plugins, entry->d_name))) {
-                       tmp = evas_list_prepend(tmp, pli);
-                       pl->num++;
-               }
-       } while ((entry = readdir(dir)));
+       while ((entry = readdir(dir))) {
+               if (!strcmp(entry->d_name, ".") || !strcmp(entry->d_name, ".."))
+                       continue;
+               
+               snprintf(buf, sizeof(buf), "%s/%s", path, entry->d_name);
+               playlist_load_any(pl, buf, 1);
+       };
 
        closedir(dir);
 
-       finish_playlist(pl, tmp, append);
-       
+       if (!pl->cur_item->data)
+               pl->cur_item = pl->items;
+
        return 1;
 }
 
===================================================================
RCS file: /cvsroot/enlightenment/misc/eplayer/src/utils.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -3 -r1.2 -r1.3
--- utils.c     7 Nov 2003 22:33:28 -0000       1.2
+++ utils.c     17 Nov 2003 21:03:10 -0000      1.3
@@ -25,19 +25,13 @@
        if (!(dir = opendir(directory)))
                return NULL;
 
-       /* ignore "." and ".." */
-       while ((entry = readdir(dir))
-              && (!strcmp(entry->d_name, ".")
-              || !strcmp(entry->d_name, "..")));
+       while ((entry = readdir(dir))) {
+               if (!strcmp(entry->d_name, ".") || !strcmp(entry->d_name, ".."))
+                       continue;
 
-       if (!entry)
-               return NULL;
-       
-       /* real entries */
-       do {
                if (!is_dir(entry->d_name))
                        list = evas_list_prepend(list, strdup(entry->d_name));
-       } while ((entry = readdir(dir)));
+       }
 
        closedir(dir);
 




-------------------------------------------------------
This SF. Net email is sponsored by: GoToMyPC
GoToMyPC is the fast, easy and secure way to access your computer from
any Web browser or wireless device. Click here to Try it Free!
https://www.gotomypc.com/tr/OSDN/AW/Q4_2003/t/g22lp?Target=mm/g22lp.tmpl
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to