Enlightenment CVS committal

Author  : tsauerbeck
Project : misc
Module  : eplayer

Dir     : misc/eplayer/src


Modified Files:
        eplayer.c eplayer.h 


Log Message:
applied Dan Sinclair's patch
===================================================================
RCS file: /cvsroot/enlightenment/misc/eplayer/src/eplayer.c,v
retrieving revision 1.39
retrieving revision 1.40
diff -u -3 -r1.39 -r1.40
--- eplayer.c   14 Feb 2004 11:00:38 -0000      1.39
+++ eplayer.c   16 Feb 2004 16:43:02 -0000      1.40
@@ -2,7 +2,7 @@
 /* Edje Overhaul startnig phase 4 - Started 7/30/03 */
 
 /*
- * $Id: eplayer.c,v 1.39 2004/02/14 11:00:38 tsauerbeck Exp $
+ * $Id: eplayer.c,v 1.40 2004/02/16 16:43:02 tsauerbeck Exp $
  */
 
 #include <config.h>
@@ -150,7 +150,7 @@
        return !!player->output;
 }
 
-static ePlayer *eplayer_new(const char **args) {
+static ePlayer *eplayer_new() {
        ePlayer *player;
        char cfg_file[PATH_MAX + 1];
 
@@ -159,8 +159,6 @@
 
        memset(player, 0, sizeof(ePlayer));
 
-       player->args = args;
-
        /* load config */
        config_init(&player->cfg);
 
@@ -177,6 +175,12 @@
                              "falling back to default settings!\n");
        }
 
+       return player;
+}
+
+static int eplayer_setup(ePlayer *player) {
+       assert(player);
+
        load_input_plugins(player);
 
        if (!load_output_plugin(player)) {
@@ -184,14 +188,14 @@
                      player->cfg.output_plugin);
 
                eplayer_free(player);
-               return NULL;
+               return false;
        }
 
        pthread_mutex_init(&player->playback_next_mutex, NULL);
        pthread_mutex_init(&player->playback_stop_mutex, NULL);
-       player->playback_stop = 1;
+       player->playback_stop = true;
 
-       return player;
+       return true;
 }
 
 /**
@@ -279,7 +283,7 @@
                                        player->cfg.theme);
        assert(player->playlist);
 
-       for (i = 1; player->args[i]; i++)
+       for (i = player->opt_start; player->args[i]; i++)
                playlist_load_any(player->playlist, player->args[i], i > 1);
 
        debug(DEBUG_LEVEL_INFO, "Got %i playlist entries\n",
@@ -294,13 +298,17 @@
        return 0; /* stop idler */
 }
 
-static void handle_args(int argc, char **argv) {
+static void handle_args(int argc, const char **argv, ePlayer *player) {
        int o;
        struct option opts[] = {{"help", no_argument, 0, 'h'},
                                {"version", no_argument, 0, 'v'},
+                               {"output", required_argument, 0, 'o'},
+                               {"engine", required_argument, 0, 'e'},
+                               {"theme", required_argument, 0, 't'},
                                {NULL, 0, NULL, 0}};
 
-       while ((o = getopt_long(argc, argv, "hv", opts, NULL)) != -1) {
+       while ((o = getopt_long(argc, (char **) argv, "hvo:e:t:", opts,
+                               NULL)) != -1) {
                switch (o) {
                        case 'h':
                                printf("Usage: eplayer"
@@ -312,22 +320,42 @@
                                       "Copyright (C) 2003-2004 ePlayer project\n\n");
                                exit(1);
                                break;
+                       case 'o':
+                               snprintf(player->cfg.output_plugin,
+                                        sizeof(player->cfg.output_plugin), optarg);
+                               break;
+                       case 'e':
+                               snprintf(player->cfg.evas_engine,
+                                        sizeof(player->cfg.evas_engine), optarg);
+                               break;
+                       case 't':
+                               snprintf(player->cfg.theme,
+                                        sizeof(player->cfg.theme), optarg);
+                               break;
                        default:
                                break;
                }
        }
+
+       player->args = argv;
+       player->opt_start = optind;
 }
 
 int main(int argc, const char **argv) {
        ePlayer *player;
 
-       handle_args(argc, (char **) argv);
-
        lt_dlinit();
 
-       if (!(player = eplayer_new(argv)))
+       if (!(player = eplayer_new()))
                return 1;
 
+       handle_args(argc, argv, player);
+
+       if (!eplayer_setup(player)) {
+               eplayer_free(player);
+               return 1;
+       }
+
        if (!ui_init(player)) {
                eplayer_free(player);
                return 1;
===================================================================
RCS file: /cvsroot/enlightenment/misc/eplayer/src/eplayer.h,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -3 -r1.25 -r1.26
--- eplayer.h   1 Feb 2004 12:03:53 -0000       1.25
+++ eplayer.h   16 Feb 2004 16:43:02 -0000      1.26
@@ -2,7 +2,7 @@
 #define __EPLAYER_H
 
 /*
- * $Id: eplayer.h,v 1.25 2004/02/01 12:03:53 tsauerbeck Exp $
+ * $Id: eplayer.h,v 1.26 2004/02/16 16:43:02 tsauerbeck Exp $
  */
 
 #include <Ecore.h>
@@ -30,7 +30,6 @@
        Ecore_Evas *ee;
        Evas_Object *edje;
        Evas_Object *playlist; /* playlist container */
-       /*int playlist_font_size;*/
 } Gui;
 
 typedef struct {
@@ -41,6 +40,7 @@
 
 typedef struct _ePlayer {
        const char **args;
+       int opt_start;
 
        PlayList *playlist;
        Ecore_Timer *time_timer;




-------------------------------------------------------
SF.Net is sponsored by: Speed Start Your Linux Apps Now.
Build and deploy apps & Web services for Linux with
a free DVD software kit from IBM. Click Now!
http://ads.osdn.com/?ad_id=1356&alloc_id=3438&op=click
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to