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