Enlightenment CVS committal Author : moom16 Project : e17 Module : apps/eclair
Dir : e17/apps/eclair/src Modified Files: eclair.c eclair_playlist.c eclair_playlist.h Log Message: * We can now load m3u playlists =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/eclair/src/eclair.c,v retrieving revision 1.14 retrieving revision 1.15 diff -u -3 -r1.14 -r1.15 --- eclair.c 8 May 2005 12:29:06 -0000 1.14 +++ eclair.c 8 May 2005 13:23:33 -0000 1.15 @@ -690,7 +690,7 @@ fprintf(stderr, "\n"); fprintf(stderr, "Thanks :)\n"); - exit(20); + exit(128 + num); } int main(int argc, char *argv[]) =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/eclair/src/eclair_playlist.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -3 -r1.7 -r1.8 --- eclair_playlist.c 8 May 2005 12:29:06 -0000 1.7 +++ eclair_playlist.c 8 May 2005 13:23:33 -0000 1.8 @@ -1,6 +1,7 @@ #include "eclair_playlist.h" #include "../config.h" #include <string.h> +#include <stdio.h> #include <Esmart/Esmart_Container.h> #include <Evas.h> #include <Ecore_File.h> @@ -12,6 +13,8 @@ #include "eclair_callbacks.h" #include "eclair_utils.h" +#define MAX_PATH_LEN 1024 + //Initialize the playlist void eclair_playlist_init(Eclair_Playlist *playlist, Eclair *eclair) { @@ -94,6 +97,41 @@ return 1; } +//Add files stored in the m3u file +Evas_Bool eclair_playlist_add_m3u(Eclair_Playlist *playlist, char *m3u_path) +{ + FILE *m3u_file; + char line[MAX_PATH_LEN], *path, *c, *m3u_dir; + + if (!playlist || !m3u_path || !(m3u_file = fopen(m3u_path, "rt"))) + return 0; + + m3u_dir = ecore_file_get_dir(m3u_path); + + while (fgets(line, MAX_PATH_LEN, m3u_file)) + { + if (line[0] == '#') + continue; + + for (c = strpbrk(line, "\r\n"); c; c = strpbrk(c, "\r\n")) + *c = 0; + + if (line[0] == '/') + eclair_playlist_add_uri(playlist, line); + else if (m3u_dir) + { + path = (char *)malloc(strlen(m3u_dir) + strlen(line) + 2); + sprintf(path, "%s/%s", m3u_dir, line); + eclair_playlist_add_uri(playlist, path); + free(path); + } + } + + free(m3u_dir); + fclose(m3u_file); + return 1; +} + //Add the media file located at the uri Evas_Bool eclair_playlist_add_uri(Eclair_Playlist *playlist, char *uri) { @@ -121,10 +159,19 @@ else new_path = strdup(uri); - if (eclair_playlist_add_dir(playlist, new_path)) + if (!strstr(new_path, "://")) { - free(new_path); - return 1; + if (eclair_playlist_add_dir(playlist, new_path)) + { + free(new_path); + return 1; + } + if (strcmp(eclair_utils_file_get_extension(new_path), "m3u") == 0) + { + eclair_playlist_add_m3u(playlist, new_path); + free(new_path); + return 1; + } } new_media_file = eclair_media_file_new(); =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/eclair/src/eclair_playlist.h,v retrieving revision 1.5 retrieving revision 1.6 diff -u -3 -r1.5 -r1.6 --- eclair_playlist.h 8 May 2005 12:29:06 -0000 1.5 +++ eclair_playlist.h 8 May 2005 13:23:33 -0000 1.6 @@ -11,6 +11,7 @@ Eclair_Media_File *eclair_playlist_next_media_file(Eclair_Playlist *playlist); Evas_Bool eclair_playlist_add_dir(Eclair_Playlist *playlist, char *dir); +Evas_Bool eclair_playlist_add_m3u(Eclair_Playlist *playlist, char *m3u_path); Evas_Bool eclair_playlist_add_uri(Eclair_Playlist *playlist, char *uri); void eclair_playlist_remove_media_file(Eclair_Playlist *playlist, Eclair_Media_File *media_file); Evas_List *eclair_playlist_remove_media_file_list(Eclair_Playlist *playlist, Evas_List *list); ------------------------------------------------------- This SF.Net email is sponsored by: NEC IT Guy Games. Get your fingers limbered up and give it your best shot. 4 great events, 4 opportunities to win big! Highest score wins.NEC IT Guy Games. Play to win an NEC 61 plasma display. Visit http://www.necitguy.com/?r=20 _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs