Enlightenment CVS committal

Author  : tsauerbeck
Project : misc
Module  : eplayer

Dir     : misc/eplayer/src


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


Log Message:
refresh the playlist, track info parts etc on group switch
===================================================================
RCS file: /cvsroot/enlightenment/misc/eplayer/src/eplayer.c,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -3 -r1.20 -r1.21
--- eplayer.c   3 Dec 2003 21:35:18 -0000       1.20
+++ eplayer.c   7 Dec 2003 11:53:09 -0000       1.21
@@ -98,7 +98,7 @@
        free(player);
 }
 
-static ePlayer *eplayer_new() {
+static ePlayer *eplayer_new(const char **args) {
        ePlayer *player;
        char cfg_file[PATH_MAX + 1];
 
@@ -107,6 +107,8 @@
 
        memset(player, 0, sizeof(ePlayer));
 
+       player->args = args;
+
        /* load config */
        config_init(&player->cfg);
        
@@ -127,9 +129,6 @@
 
        player->playlist = playlist_new(player->input_plugins);
 
-       playlist_item_add_cb_set(player->playlist,
-                                show_playlist_item, player);
-
        /* load the output plugin */
        player->output = plugin_new(player->cfg.output_plugin,
                                    PLUGIN_TYPE_OUTPUT);
@@ -211,10 +210,13 @@
        debug(DEBUG_LEVEL_INFO, "Got %i playlist entries\n",
              player->playlist->num);
 
+       /* update the ui */
+       ui_fill_playlist(player);
+
        if (player->playlist->num)
                track_open(player);
-               
-       refresh_time(player, 0);
+       
+       ui_refresh_time(player, 0);
 
        return 0; /* stop timer */
 }
@@ -228,19 +230,18 @@
                return 1;
        }
        
-       if (!(player = eplayer_new()))
+       if (!(player = eplayer_new(argv)))
                return 1;
        
-       if (!setup_gui(player)) {
+       if (!ui_init(player)) {
                eplayer_free(player);
                return 1;
        }       
        
-       player->args = argv;
        ecore_timer_add(1, load_playlist, player);
 
-       refresh_volume(player);
-       ecore_timer_add(1.5, refresh_volume, player);
+       ui_refresh_volume(player);
+       ecore_timer_add(1.5, ui_refresh_volume, player);
 
        debug(DEBUG_LEVEL_INFO, "Starting main loop\n");
 
===================================================================
RCS file: /cvsroot/enlightenment/misc/eplayer/src/playlist.c,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -3 -r1.13 -r1.14
--- playlist.c  26 Nov 2003 22:54:44 -0000      1.13
+++ playlist.c  7 Dec 2003 11:53:09 -0000       1.14
@@ -98,14 +98,6 @@
        return pl;
 }
 
-void playlist_item_add_cb_set(PlayList *pl, ItemAddCallback cb, void *data) {
-       if (!pl)
-               return;
-
-       pl->cb = cb;
-       pl->cb_data = data;
-}
-
 /**
  * Removes all items from a PlayList.
  *
@@ -229,20 +221,11 @@
        
        pl->num++;
 
-       if (pl->cb)
-               pl->cb(pli, pl->cb_data);
-
        return 1;
 }
 
 static void finish_playlist(PlayList *pl, Evas_List *list, int append) {
-       Evas_List *l;
-
        list = evas_list_reverse(list);
-       
-       if (pl->cb)
-               for (l = list; l; l = l->next)
-                       pl->cb(l->data, pl->cb_data);
        
        if (append)
                playlist_append_list(pl, list);
===================================================================
RCS file: /cvsroot/enlightenment/misc/eplayer/src/playlist.h,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -3 -r1.7 -r1.8
--- playlist.h  23 Nov 2003 19:13:17 -0000      1.7
+++ playlist.h  7 Dec 2003 11:53:09 -0000       1.8
@@ -28,9 +28,6 @@
 typedef void (*ItemAddCallback) (PlayListItem *pli, void *data);
 
 typedef struct {
-       ItemAddCallback cb;
-       void *cb_data;
-
        int num; /* number of entries */
        Evas_List *items;
        Evas_List *cur_item;
@@ -40,8 +37,6 @@
 
 PlayList *playlist_new(Evas_List *plugins);
 void playlist_free();
-
-void playlist_item_add_cb_set(PlayList *pl, ItemAddCallback cb, void *data);
 
 int playlist_load_file(PlayList *pl, const char *file, int append);
 int playlist_load_dir(PlayList *pl, const char *dir, int append);
===================================================================
RCS file: /cvsroot/enlightenment/misc/eplayer/src/interface.c,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -3 -r1.21 -r1.22
--- interface.c 3 Dec 2003 21:35:18 -0000       1.21
+++ interface.c 7 Dec 2003 11:53:10 -0000       1.22
@@ -1,4 +1,5 @@
 #include <config.h>
+#include <assert.h>
 #include "eplayer.h"
 #include <Esmart/container.h>
 #include <Edje.h>
@@ -38,7 +39,7 @@
        evas_object_resize(edje, (Evas_Coord) w, (Evas_Coord) h);
 }
 
-int setup_gui(ePlayer *player) {
+int ui_init(ePlayer *player) {
        debug(DEBUG_LEVEL_INFO, "Starting setup\n");
 
        ecore_init();
@@ -78,15 +79,29 @@
        player->gui.evas = ecore_evas_get(player->gui.ee);
        evas_font_path_append(player->gui.evas, DATA_DIR "/fonts");
 
-       if (!setup_edje(player, "eplayer"))
+       if (!ui_init_edje(player, "eplayer"))
                return 0;
 
-       setup_playlist(player);
-
        return 1;
 }
 
-int setup_edje(ePlayer *player, const char *name) {
+void ui_fill_track_info(ePlayer *player) {
+       PlayListItem *pli;
+
+       if (!(pli = playlist_current_item_get(player->playlist)))
+               return;
+
+       track_update_time(player);
+
+       edje_object_part_text_set(player->gui.edje, "song_name",
+                                 pli->comment[COMMENT_ID_TITLE]);
+       edje_object_part_text_set(player->gui.edje, "artist_name",
+                                 pli->comment[COMMENT_ID_ARTIST]);
+       edje_object_part_text_set(player->gui.edje, "album_name",
+                                 pli->comment[COMMENT_ID_ALBUM]);
+}
+
+int ui_init_edje(ePlayer *player, const char *name) {
        char eet[PATH_MAX + 1];
        double edje_w = 0, edje_h = 0;
 
@@ -118,6 +133,11 @@
        /* resize to the min size */
        ecore_evas_resize(player->gui.ee, (int) edje_w, (int) edje_h);
        
+       setup_playlist(player);
+       ui_fill_playlist(player);
+       ui_fill_track_info(player);
+       ui_refresh_volume(player);
+       
        /*** Edje Callbacks ***************************/
        edje_object_signal_callback_add(player->gui.edje,
                                        "QUIT", "quit",
@@ -179,8 +199,7 @@
                                 player->gui.playlist);
 }
 
-void show_playlist_item(PlayListItem *pli, void *data) {
-       ePlayer *player = data;
+static void show_playlist_item(ePlayer *player, PlayListItem *pli) {
        Evas_Object *o;
        char len[32], eet[PATH_MAX + 1];
        double w = 0, h = 0;
@@ -225,7 +244,17 @@
                                        cb_playlist_item_selected, player);
 }
 
-int refresh_volume(void *udata) {
+void ui_fill_playlist(ePlayer *player) {
+       Evas_List *l;
+
+       assert (player);
+       assert (player->playlist);
+
+       for (l = player->playlist->items; l; l = l->next)
+               show_playlist_item(player, l->data);
+}
+
+int ui_refresh_volume(void *udata) {
        ePlayer *player = udata;
        char buf[8];
        int left = 0, right = 0;
@@ -239,7 +268,7 @@
        return 1;
 }
 
-int refresh_time(ePlayer *player, int time) {
+int ui_refresh_time(ePlayer *player, int time) {
        char buf[9], *fmt[2];
        
        fmt[TIME_DISPLAY_ELAPSED] = "%i:%02i";
===================================================================
RCS file: /cvsroot/enlightenment/misc/eplayer/src/interface.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -3 -r1.5 -r1.6
--- interface.h 25 Nov 2003 17:50:57 -0000      1.5
+++ interface.h 7 Dec 2003 11:53:10 -0000       1.6
@@ -3,12 +3,14 @@
 
 #include "eplayer.h"
 
-void show_playlist_item(PlayListItem *pli, void *data);
-int setup_gui(ePlayer *player);
-int setup_edje(ePlayer *player, const char *name);
+int ui_init(ePlayer *player);
+int ui_init_edje(ePlayer *player, const char *name);
 
-int refresh_volume(void *udata);
-int refresh_time(ePlayer *player, int time);
+void ui_fill_track_info(ePlayer *player);
+void ui_fill_playlist(ePlayer *player);
+
+int ui_refresh_volume(void *udata);
+int ui_refresh_time(ePlayer *player, int time);
 
 #endif
 
===================================================================
RCS file: /cvsroot/enlightenment/misc/eplayer/src/callbacks.c,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -3 -r1.19 -r1.20
--- callbacks.c 30 Nov 2003 14:44:20 -0000      1.19
+++ callbacks.c 7 Dec 2003 11:53:10 -0000       1.20
@@ -112,7 +112,7 @@
                return;
        
        player->output->volume_set(left + 5, right + 5);
-       refresh_volume(player);
+       ui_refresh_volume(player);
 }
 
 void cb_volume_lower(ePlayer *player, Evas_Object *obj,
@@ -125,7 +125,7 @@
                return;
        
        player->output->volume_set(left - 5, right - 5);
-       refresh_volume(player);
+       ui_refresh_volume(player);
 }
 
 void cb_time_display_toggle(ePlayer *player, Evas_Object *obj,
@@ -235,5 +235,5 @@
        ePlayer *player = udata;
        
        evas_object_del(player->gui.edje);
-       setup_edje(player, src);
+       ui_init_edje(player, src);
 }
===================================================================
RCS file: /cvsroot/enlightenment/misc/eplayer/src/track.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -3 -r1.9 -r1.10
--- track.c     7 Dec 2003 10:32:41 -0000       1.9
+++ track.c     7 Dec 2003 11:53:10 -0000       1.10
@@ -45,7 +45,7 @@
                return 1;
 
        old_time = cur_time;
-       refresh_time(player, cur_time);
+       ui_refresh_time(player, cur_time);
 
        return 1;
 }
@@ -75,13 +75,7 @@
        pli->current_pos = 0;
        pli->plugin->open(pli->file);
 
-       edje_object_part_text_set(player->gui.edje, "song_name",
-                                 pli->comment[COMMENT_ID_TITLE]);
-       edje_object_part_text_set(player->gui.edje, "artist_name",
-                                 pli->comment[COMMENT_ID_ARTIST]);
-       edje_object_part_text_set(player->gui.edje, "album_name",
-                                 pli->comment[COMMENT_ID_ALBUM]);
-       edje_object_part_text_set(player->gui.edje, "time_text", "0:00");
+       ui_fill_track_info(player);
 
        if (!player->output->configure(pli->channels, pli->sample_rate, 16)) {
                debug(DEBUG_LEVEL_CRITICAL, "Cannot configure output plugin\n");




-------------------------------------------------------
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