Enlightenment CVS committal

Author  : devilhorns
Project : e_modules
Module  : mixer

Dir     : e_modules/mixer


Modified Files:
        e_mod_config.c e_mod_main.c e_mod_main.h 


Log Message:
Highly modified patch from Janne Julkunen for launching an external mixer app.

===================================================================
RCS file: /cvs/e/e_modules/mixer/e_mod_config.c,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -3 -r1.15 -r1.16
--- e_mod_config.c      12 Sep 2006 17:36:43 -0000      1.15
+++ e_mod_config.c      3 Oct 2006 03:39:15 -0000       1.16
@@ -2,8 +2,6 @@
 #include "e_mod_main.h"
 #include "e_mod_types.h"
 
-//#define DEBUG 1
-
 struct _E_Config_Dialog_Data
 {
    Evas_Object *list;
@@ -11,6 +9,9 @@
    int card_id;
    int channel_id;
    int mode;
+       
+   char *app;
+   int use_app;
 };
 
 /* Protos */
@@ -28,7 +29,7 @@
    E_Config_Dialog_View *v;
    E_Container          *con;
    char                  buf[4096];
-
+   
    mixer = data;
    
    v = E_NEW(E_Config_Dialog_View, 1);
@@ -38,7 +39,9 @@
    v->free_cfdata = _free_data;
    v->basic.apply_cfdata = _basic_apply_data;
    v->basic.create_widgets = _basic_create_widgets;
-
+   v->advanced.apply_cfdata = NULL;
+   v->advanced.create_widgets = NULL;
+   
    snprintf(buf, sizeof(buf), "%s/module.eap",
             e_module_dir_get(mixer_config->module));
 
@@ -54,6 +57,9 @@
    cfdata->card_id = ci->card_id;
    cfdata->channel_id = ci->channel_id;
    cfdata->mode = ci->mode;
+   cfdata->use_app = ci->use_app;
+   if (ci->app != NULL)
+     cfdata->app = strdup(ci->app);
 }
 
 static void *
@@ -79,7 +85,7 @@
 static Evas_Object *
 _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data 
*cfdata)
 {
-   Evas_Object   *o, *ob, *of;
+   Evas_Object   *o, *ob, *of, *ot;
    Evas_List     *cards, *chans;
    Config_Item   *ci;
    E_Radio_Group *cg, *mg, *dg;
@@ -88,17 +94,14 @@
    ci = cfd->data;
 
    o = e_widget_list_add(evas, 0, 0);
-   #ifdef DEBUG
-   of = e_widget_framelist_add(evas, _("Display Mode"), 0);
-   dg = e_widget_radio_group_new(&cfdata->mode);
-   ob = e_widget_radio_add(evas, _("Simple Mode"), SIMPLE_MODE, dg);
-   e_widget_framelist_object_append(of, ob);
-   ob = e_widget_radio_add(evas, _("Full Mode"), FULL_MODE, dg);
-   e_widget_framelist_object_append(of, ob);
-   ob = e_widget_radio_add(evas, _("Shelf Mode"), ONEFANG_MODE, dg);
-   e_widget_framelist_object_append(of, ob);
-   e_widget_list_object_append(o, of, 1, 1, 0.5);      
-   #endif
+
+   ot = e_widget_frametable_add(evas, _("Mixer Application"), 1);
+   ob = e_widget_check_add(evas, _("Launch Mixer App"), &(cfdata->use_app));
+   e_widget_frametable_object_append(ot, ob, 0, 0, 1, 1, 1, 0, 1, 0);
+   ob = e_widget_entry_add(evas, &cfdata->app);
+   e_widget_frametable_object_append(ot, ob, 0, 1, 1, 1, 1, 0, 1, 0);
+
+   e_widget_list_object_append(o, ot, 1, 1, 0.5);
    
    if (!mixer->mix_sys->cards) 
      {
@@ -106,12 +109,10 @@
          mixer->mix_sys->cards = mixer->mix_sys->get_cards();
      }
    
-   if (mixer->mix_sys->cards)
+   if ((mixer->mix_sys->cards) && (evas_list_count(mixer->mix_sys->cards) > 1))
      {
        of = e_widget_framelist_add(evas, _("Available Cards"), 0);
        cg = e_widget_radio_group_new(&cfdata->card_id);
-       ob = e_widget_radio_add(evas, _("Unknown"), 0, cg);
-       e_widget_framelist_object_append(of, ob);
        for (cards = mixer->mix_sys->cards; cards; cards = cards->next) 
          {
             card = cards->data;
@@ -121,7 +122,7 @@
          }
        e_widget_list_object_append(o, of, 1, 1, 0.5);  
      }
-
+     
    if ((mixer->mix_sys->get_card) && (ci->card_id != 0))
      {
        card = mixer->mix_sys->get_card(ci->card_id);
@@ -132,8 +133,6 @@
               {
                  of = e_widget_framelist_add(evas, _("Available Mixers"), 0);
                  mg = e_widget_radio_group_new(&cfdata->channel_id);
-                 ob = e_widget_radio_add(evas, _("Unknown"), 0, mg);
-                 e_widget_framelist_object_append(of, ob);
                  for (chans = card->channels; chans; chans = chans->next) 
                    {
                       Mixer_Channel *chan;
@@ -147,6 +146,7 @@
               }
          }     
      }
+   
    return o;
 }
 
@@ -160,6 +160,10 @@
    ci->card_id = cfdata->card_id;
    ci->channel_id = cfdata->channel_id;
    ci->mode = cfdata->mode;
+   ci->use_app = cfdata->use_app;
+   if (ci->app) evas_stringshare_del(ci->app);
+   if (cfdata->app != NULL)
+     ci->app = evas_stringshare_add(cfdata->app);
    
    e_config_save_queue();
    return 1;
===================================================================
RCS file: /cvs/e/e_modules/mixer/e_mod_main.c,v
retrieving revision 1.47
retrieving revision 1.48
diff -u -3 -r1.47 -r1.48
--- e_mod_main.c        3 Oct 2006 02:18:04 -0000       1.47
+++ e_mod_main.c        3 Oct 2006 03:39:15 -0000       1.48
@@ -24,10 +24,11 @@
 static Evas_Object     *_gc_icon     (Evas * evas);
 
 /* Module Protos */
-static void         _mixer_simple_volume_change(Mixer *mixer, Config_Item *ci, 
double val);
-static void         _mixer_volume_change(Mixer *mixer, Config_Item *ci, int 
channel_id, double val);
-static void         _mixer_simple_mute_toggle(Mixer *mixer, Config_Item *ci);
-static void         _mixer_mute_toggle(Mixer *mixer, Config_Item *ci, int 
channel_id);
+static void         _mixer_simple_volume_change (Mixer *mixer, Config_Item 
*ci, double val);
+static void         _mixer_volume_change        (Mixer *mixer, Config_Item 
*ci, int channel_id, double val);
+static void         _mixer_simple_mute_toggle   (Mixer *mixer, Config_Item 
*ci);
+static void         _mixer_mute_toggle          (Mixer *mixer, Config_Item 
*ci, int channel_id);
+
 static Config_Item *_mixer_config_item_get   (void *data, const char *id);
 static void         _mixer_menu_cb_post      (void *data, E_Menu *m);
 static void         _mixer_menu_cb_configure (void *data, E_Menu *m, 
E_Menu_Item *mi);
@@ -37,17 +38,17 @@
 static void         _mixer_system_init       (void *data);
 static void         _mixer_system_shutdown   (void *data);
 
-static void _mixer_window_simple_pop_up           (Instance *inst);
-static void _mixer_window_simple_pop_down         (Instance *inst);
+static void _mixer_window_simple_pop_up        (Instance *inst);
+static void _mixer_window_simple_pop_down      (Instance *inst);
 static int  _mixer_window_simple_timer_up_cb   (void *data);
 static int  _mixer_window_simple_timer_down_cb (void *data);
-static void _mixer_window_simple_changed_cb       (void *data, Evas_Object 
*obj, void *event_info);
-static void _mixer_window_simple_mute_cb          (void *data, Evas_Object 
*obj, void *event_info);
+static void _mixer_window_simple_changed_cb    (void *data, Evas_Object *obj, 
void *event_info);
+static void _mixer_window_simple_mute_cb       (void *data, Evas_Object *obj, 
void *event_info);
 
-static int  _mixer_window_simple_mouse_move_cb    (void *data, int type, void 
*event);
-static int  _mixer_window_simple_mouse_down_cb    (void *data, int type, void 
*event);
-static int  _mixer_window_simple_mouse_up_cb      (void *data, int type, void 
*event);
-static int  _mixer_window_simple_mouse_wheel_cb   (void *data, int type, void 
*event);
+static int  _mixer_window_simple_mouse_move_cb  (void *data, int type, void 
*event);
+static int  _mixer_window_simple_mouse_down_cb  (void *data, int type, void 
*event);
+static int  _mixer_window_simple_mouse_up_cb    (void *data, int type, void 
*event);
+static int  _mixer_window_simple_mouse_wheel_cb (void *data, int type, void 
*event);
 
 /* Private vars */
 static E_Config_DD *conf_edd = NULL;
@@ -182,9 +183,13 @@
 {
    Instance              *inst;
    Evas_Event_Mouse_Down *ev;
+   Config_Item           *ci;
 
    inst = data;
    if (!inst) return;
+
+   ci = _mixer_config_item_get(inst->mixer, inst->gcc->id);
+   if (!ci) return;
    
    ev = event_info;
    if ((ev->button == 3) && (!mixer_config->menu))
@@ -216,27 +221,18 @@
                                 EVAS_BUTTON_NONE, ev->timestamp, NULL);
      }
    else if (ev->button == 2)
-     {
-       Config_Item *ci;
-
-       ci = _mixer_config_item_get(inst->mixer, inst->gcc->id);
-       if (!ci) return;
-
-       _mixer_simple_mute_toggle(inst->mixer, ci);
-     }
+     _mixer_simple_mute_toggle(inst->mixer, ci);
    else if (ev->button == 1) 
      {
        if (ev->flags == EVAS_BUTTON_DOUBLE_CLICK) 
          {
-            /* Call full mixer window. 
-             For now just call simple till this mode is made */
-            _mixer_window_simple_pop_up(inst);
+            if ((ci->use_app) && (ci->app != NULL))
+              ecore_exe_run(ci->app, NULL);
+            else
+              _mixer_window_simple_pop_up(inst);
          }
        else if (ev->flags == EVAS_BUTTON_NONE)
-         {
-            /* Call a simple window */
-            _mixer_window_simple_pop_up(inst);
-         }
+         _mixer_window_simple_pop_up(inst);
      }
 }
 
@@ -312,6 +308,7 @@
        ci->card_id = 0;
        ci->channel_id = 0;
        ci->mode = SIMPLE_MODE;
+       ci->app = NULL;
      }
    else if (mixer->mix_sys)
      {   
@@ -324,6 +321,7 @@
                  ci->card_id = 0;
                  ci->channel_id = 0;
                  ci->mode = SIMPLE_MODE;
+                 ci->app = NULL;
                  mixer_config->items = evas_list_append(mixer_config->items, 
ci);
                  return ci;
               }
@@ -335,6 +333,7 @@
             ci->card_id = 0;
             ci->channel_id = 0;
             ci->mode = SIMPLE_MODE;
+            ci->app = NULL;
             mixer_config->items = evas_list_append(mixer_config->items, ci);
             return ci;
          }
@@ -356,7 +355,6 @@
          }
      }
 
-   ci->mode = SIMPLE_MODE;
    mixer_config->items = evas_list_append(mixer_config->items, ci);
    return ci;
 }
@@ -431,6 +429,8 @@
    E_CONFIG_VAL(D, T, card_id, INT);
    E_CONFIG_VAL(D, T, channel_id, INT);
    E_CONFIG_VAL(D, T, mode, INT);
+   E_CONFIG_VAL(D, T, app, STR);
+   E_CONFIG_VAL(D, T, use_app, INT);
 
    conf_edd = E_CONFIG_DD_NEW("Mixer_Config", Config);
 #undef T
@@ -450,6 +450,8 @@
        ci->card_id = 0;
        ci->channel_id = 0;
        ci->mode = SIMPLE_MODE;
+       ci->app = NULL;
+       ci->use_app = 0;
        mixer_config->items = evas_list_append(mixer_config->items, ci);
      }
    
@@ -483,6 +485,7 @@
        mixer_config->items = evas_list_remove_list(mixer_config->items, 
                                                    mixer_config->items);
        if (ci->id) evas_stringshare_del(ci->id);
+       if (ci->app) evas_stringshare_del(ci->app);
        E_FREE(ci);
      }
 
@@ -533,7 +536,7 @@
 static void 
 _mixer_volume_change(Mixer *mixer, Config_Item *ci, int channel_id, double val)
 {
-   int               m;
+   int m;
    
    if (!mixer) return;
    if (!mixer->mix_sys) return;
@@ -742,10 +745,8 @@
                                               "e,state,disabled", "e");
                    }
                  else 
-                   {
-                      
edje_object_signal_emit(e_slider_edje_object_get(win->slider), 
-                                              "e,state,enabled", "e");
-                   }
+                   
edje_object_signal_emit(e_slider_edje_object_get(win->slider), 
+                                           "e,state,enabled", "e");
               }
          }
      }
===================================================================
RCS file: /cvs/e/e_modules/mixer/e_mod_main.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -3 -r1.6 -r1.7
--- e_mod_main.h        12 Sep 2006 12:17:47 -0000      1.6
+++ e_mod_main.h        3 Oct 2006 03:39:15 -0000       1.7
@@ -20,6 +20,9 @@
    int card_id;
    int channel_id;
    int mode;
+       
+   const char *app;
+   int         use_app;
 };
 
 EAPI extern E_Module_Api e_modapi;



-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to