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