Enlightenment CVS committal

Author  : devilhorns
Project : e_modules
Module  : mixer

Dir     : e_modules/mixer


Modified Files:
        e_mod_config.c e_mod_main.c 


Log Message:
Automatic card/channel detection on fresh startup should work now.
Removed some printfs in config dialog.

===================================================================
RCS file: /cvs/e/e_modules/mixer/e_mod_config.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -3 -r1.10 -r1.11
--- e_mod_config.c      11 Sep 2006 19:14:56 -0000      1.10
+++ e_mod_config.c      12 Sep 2006 12:01:35 -0000      1.11
@@ -115,7 +115,6 @@
             if (card->channels) 
               {
                  of = e_widget_framelist_add(evas, _("Available Mixers"), 0);
-                 printf("\n\nChannel: %i\n\n", cfdata->channel_id);
                  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);
@@ -144,8 +143,6 @@
    
    ci->card_id = cfdata->card_id;
    ci->channel_id = cfdata->channel_id;
-   printf("\n\nChannel: %i\n\n", cfdata->channel_id);
-   
    e_config_save_queue();
    return 1;
 }
===================================================================
RCS file: /cvs/e/e_modules/mixer/e_mod_main.c,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -3 -r1.27 -r1.28
--- e_mod_main.c        12 Sep 2006 10:41:56 -0000      1.27
+++ e_mod_main.c        12 Sep 2006 12:01:35 -0000      1.28
@@ -18,7 +18,7 @@
 static Evas_Object     *_gc_icon     (Evas * evas);
 
 /* Module Protos */
-static Config_Item *_mixer_config_item_get   (const char *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);
 static void         _mixer_cb_mouse_down     (void *data, Evas *e, Evas_Object 
*obj, void *event_info);
@@ -80,7 +80,7 @@
    _mixer_system_init(mixer);
 
    /* Defer this until after the mixer system has been setup */
-   ci = _mixer_config_item_get(id);
+   ci = _mixer_config_item_get(mixer, id);
    if (!ci->id) ci->id = evas_stringshare_add(id);
 
    if ((mixer->mix_sys->get_volume) && (ci->card_id != 0) && (ci->channel_id 
!= 0))
@@ -221,17 +221,22 @@
 
    inst = data;
    if (!inst) return;
-   ci = _mixer_config_item_get(inst->gcc->id);
+   ci = _mixer_config_item_get(inst->mixer, inst->gcc->id);
    if (!ci) return;
    _config_mixer_module(inst->mixer, ci);
 }
 
 static Config_Item *
-_mixer_config_item_get(const char *id)
+_mixer_config_item_get(void *data, const char *id)
 {
-   Evas_List   *l;
-   Config_Item *ci;
+   Mixer         *mixer;
+   Mixer_Card    *card;
+   Mixer_Channel *chan;
+   Evas_List     *l;
+   Config_Item   *ci;
 
+   mixer = data;
+   
    for (l = mixer_config->items; l; l = l->next)
      {
        ci = l->data;
@@ -241,8 +246,51 @@
 
    ci = E_NEW(Config_Item, 1);
    ci->id = evas_stringshare_add(id);
-   ci->card_id = 0;
-   ci->channel_id = 0;
+   if ((!mixer) || (!mixer->mix_sys)) 
+     {
+       ci->card_id = 0;
+       ci->channel_id = 0;
+     }
+   else if (mixer->mix_sys)
+     {   
+       if (!mixer->mix_sys->cards) 
+         {
+            if (mixer->mix_sys->get_cards)
+              mixer->mix_sys->cards = mixer->mix_sys->get_cards();
+            else 
+              {
+                 ci->card_id = 0;
+                 ci->channel_id = 0;
+                 mixer_config->items = evas_list_append(mixer_config->items, 
ci);
+                 return ci;
+              }
+         }
+            
+       card = mixer->mix_sys->cards->data;
+       if (!card) 
+         {
+            ci->card_id = 0;
+            ci->channel_id = 0;
+            mixer_config->items = evas_list_append(mixer_config->items, ci);
+            return ci;
+         }
+       else 
+         {
+            ci->card_id = card->id;
+            if (!card->channels) 
+              {
+                 if (mixer->mix_sys->get_channels) 
+                   card->channels = mixer->mix_sys->get_channels(card);
+              }
+            if (card->channels) 
+              {             
+                 chan = card->channels->data;
+                 ci->channel_id = chan->id;
+              }
+            else 
+              ci->channel_id = 0;
+         }
+     }
    
    mixer_config->items = evas_list_append(mixer_config->items, ci);
    return ci;
@@ -377,7 +425,7 @@
        Config_Item *ci;
 
        inst = l->data;
-       ci = _mixer_config_item_get(inst->gcc->id);
+       ci = _mixer_config_item_get(inst->mixer, inst->gcc->id);
        if (ci->id) evas_stringshare_del(ci->id);
        ci->id = evas_stringshare_add(inst->gcc->id);
      }
@@ -407,7 +455,7 @@
    if (!inst || !inst->mixer) return;
    if (!(con = e_container_current_get(e_manager_current_get()))) return;
    
-   ci = _mixer_config_item_get(inst->gcc->id);
+   ci = _mixer_config_item_get(inst->mixer, inst->gcc->id);
    if (!ci) return;
    
    evas_object_geometry_get(inst->mixer->base, &ox, &oy, &ow, &oh); 
@@ -643,7 +691,7 @@
    if (!mixer->mix_sys) return;
    if (!mixer->mix_sys->set_volume) return;
    
-   ci = _mixer_config_item_get(mixer->inst->gcc->id);
+   ci = _mixer_config_item_get(mixer, mixer->inst->gcc->id);
    if (!ci) return;
 
    val = ((1.0 - (e_slider_value_get(obj))) * 100);



-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to