Enlightenment CVS committal

Author  : devilhorns
Project : e_modules
Module  : mixer

Dir     : e_modules/mixer


Modified Files:
        e_mod_main.c e_mod_config.c 


Log Message:
Allow selection of sound card that this mixer will control.

If your testing, you'll need to remove old module.mixer.cfg

===================================================================
RCS file: /cvs/e/e_modules/mixer/e_mod_main.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -3 -r1.4 -r1.5
--- e_mod_main.c        7 Sep 2006 16:07:54 -0000       1.4
+++ e_mod_main.c        7 Sep 2006 16:36:34 -0000       1.5
@@ -85,7 +85,7 @@
                  
             card = c->data;
             if (!card) continue;
-            printf("\nFound Card: %s\n\n", card->real);
+            printf("\nFound Card: %s\tId: %i\n\n", card->real, card->id);
          }
        alsa_free_cards(c);
      }
@@ -262,7 +262,7 @@
 
    ci = E_NEW(Config_Item, 1);
    ci->id = evas_stringshare_add(id);
-   ci->volume = 10;
+   ci->card_id = 0;
 
    mixer_config->items = evas_list_append(mixer_config->items, ci);
    return ci;
@@ -282,7 +282,7 @@
 #define T Config_Item
 #define D conf_item_edd
    E_CONFIG_VAL(D, T, id, STR);
-   E_CONFIG_VAL(D, T, volume, INT);
+   E_CONFIG_VAL(D, T, card_id, INT);
 
    conf_edd = E_CONFIG_DD_NEW("Mixer_Config", Config);
 #undef T
@@ -300,7 +300,7 @@
 
        ci = E_NEW(Config_Item, 1);
        ci->id = evas_stringshare_add("0");
-       ci->volume = 10;
+       ci->card_id = 0;
 
        mixer_config->items = evas_list_append(mixer_config->items, ci);
      }
===================================================================
RCS file: /cvs/e/e_modules/mixer/e_mod_config.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -3 -r1.2 -r1.3
--- e_mod_config.c      7 Sep 2006 16:03:29 -0000       1.2
+++ e_mod_config.c      7 Sep 2006 16:36:34 -0000       1.3
@@ -4,7 +4,9 @@
 
 struct _E_Config_Dialog_Data
 {
-
+   Evas_Object *list;
+   
+   int card_id;
 };
 
 /* Protos */
@@ -44,7 +46,7 @@
 static void
 _fill_data(Config_Item *ci, E_Config_Dialog_Data *cfdata)
 {
-
+   cfdata->card_id = ci->card_id;
 }
 
 static void *
@@ -70,15 +72,19 @@
 static Evas_Object *
 _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data 
*cfdata)
 {
-   Evas_Object *o, *ol, *ot, *ob, *icon;
+   Evas_Object *o, *ol, *ot, *ob, *of, *icon;
    Evas_List   *cards, *c;
+   Config_Item *ci;
+   int          i = 0;
 
+   ci = cfd->data;
+     
    cards = alsa_get_cards();
    
-   o = e_widget_list_add(evas, 0, 0);
-   ot = e_widget_table_add(evas, 0);
-   
+   o = e_widget_list_add(evas, 0, 1);
+   of = e_widget_framelist_add(evas, _("Sound Cards"), 0);
    ol = e_widget_ilist_add(evas, 48, 48, NULL);
+   cfdata->list = ol;
    e_widget_min_size_set(ol, 160, 200);
    if (cards) 
      {
@@ -87,23 +93,45 @@
             Alsa_Card *card;
             
             card = c->data;
-            if (!c) continue;
+            if (!card) continue;
             e_widget_ilist_append(ol, NULL, card->real, NULL, NULL, NULL);
+            if (!ci) continue;
+            if (ci->card_id == card->id)
+              e_widget_ilist_selected_set(ol, i);
+            i++;
          }
      }
    e_widget_ilist_go(ol);
-   e_widget_table_object_append(ot, ol, 0, 0, 1, 1, 1, 0, 1, 0);
+   e_widget_framelist_object_append(of, ol);
+   e_widget_list_object_append(o, of, 1, 1, 0.5);
    
+   ot = e_widget_table_add(evas, 0);
    ob = e_widget_button_add(evas, _("Configure"), NULL, NULL, NULL, NULL);
    e_widget_disabled_set(ob, 1);
-   e_widget_table_object_append(ot, ob, 0, 1, 1, 1, 1, 0, 1, 0);
+   e_widget_table_object_append(ot, ob, 0, 0, 1, 1, 1, 1, 1, 0);
    
-   e_widget_list_object_append(o, ot, 1, 1, 0.5);
+   e_widget_list_object_append(o, ot, 1, 1, 0.0);
    return o;
 }
 
 static int
 _basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
 {
+   Evas_List   *cards, *c;
+   Alsa_Card   *card;
+   Config_Item *ci;
+
+   ci = cfd->data;
+   if (!ci) return 0;
+   
+   cards = alsa_get_cards();
+   if (cards) 
+     {
+       card = evas_list_nth(cards, e_widget_ilist_selected_get(cfdata->list));
+       if (!card) return 0;
+       ci->card_id = card->id;
+       e_config_save_queue();
+     }
+   
    return 1;
 }



-------------------------------------------------------------------------
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