Enlightenment CVS committal Author : lok Project : e17 Module : proto
Dir : e17/proto/emphasis/src/bin Modified Files: Makefile.am emphasis.c emphasis.h emphasis_callbacks.c emphasis_config.c emphasis_config.h emphasis_gui.c emphasis_mpc.c Log Message: The config now use ecore_config. The textblock is fixed and display the current song or state. Small fix on the small/full mode. =================================================================== RCS file: /cvs/e/e17/proto/emphasis/src/bin/Makefile.am,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- Makefile.am 10 Jun 2006 11:52:49 -0000 1.2 +++ Makefile.am 8 Jul 2006 03:53:40 -0000 1.3 @@ -21,4 +21,4 @@ emphasis_callbacks.c \ emphasis_misc.c -emphasis_LDADD = @my_libs@ -lmpd +emphasis_LDADD = @my_libs@ =================================================================== RCS file: /cvs/e/e17/proto/emphasis/src/bin/emphasis.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- emphasis.c 29 Jun 2006 15:41:06 -0000 1.2 +++ emphasis.c 8 Jul 2006 03:53:40 -0000 1.3 @@ -10,16 +10,11 @@ printf("Unable to init etk\n"); return 1; } - if (!eet_init()) + if (ecore_config_init(strdup("emphasis"))) { - printf("Unable to init eet\n"); + printf("Unable to init ecore_config\n"); return 1; } - if (!ecore_file_init()) - { - printf("Unable to init ecore_file\n"); - return 3; - } gui = malloc(sizeof(Emphasis_Gui)); if (!gui) @@ -30,6 +25,7 @@ emphasis_init_gui(gui); + emphasis_pref_init(gui); emphasis_init_connect(gui); emphasis_try_connect(gui); @@ -39,6 +35,20 @@ } void +emphasis_pref_init(void *data) +{ + Emphasis_Gui *gui; + Emphasis_Config *config; + + gui = data; + config = config_load(); + etk_window_resize(ETK_WINDOW(gui->window), config->geometry.w, config->geometry.h); + emphasis_player_info_set(NULL, "Not connected to MPD", gui); + + config_free(config); +} + +void emphasis_init_connect(Emphasis_Gui *gui) { gui->timer = ecore_timer_add(0.2, emphasis_try_connect, gui); @@ -54,10 +64,11 @@ gui = data; config = config_load(); - etk_window_resize(ETK_WINDOW(gui->window), config->geometry.w, config->geometry.h); - etk_object_data_set(ETK_OBJECT(gui->window), "config", config); + +// etk_object_data_set(ETK_OBJECT(gui->window), "config", config); timer = mpc_init(config->hostname, config->port, config->password); + config_free(config); if (!timer) { =================================================================== RCS file: /cvs/e/e17/proto/emphasis/src/bin/emphasis.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- emphasis.h 29 Jun 2006 15:41:06 -0000 1.2 +++ emphasis.h 8 Jul 2006 03:53:40 -0000 1.3 @@ -9,9 +9,7 @@ #include <libmpd/libmpd.h> #include <Ecore.h> -#include <Ecore_File.h> #include <Evas.h> -#include <Eet.h> #include <etk/Etk.h> #include "emphasis_mpc.h" @@ -22,6 +20,7 @@ extern MpdObj *mo; +void emphasis_pref_init(void *data); void emphasis_init_connect(Emphasis_Gui *gui); int emphasis_try_connect(void *data); =================================================================== RCS file: /cvs/e/e17/proto/emphasis/src/bin/emphasis_callbacks.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- emphasis_callbacks.c 3 Jul 2006 02:33:26 -0000 1.4 +++ emphasis_callbacks.c 8 Jul 2006 03:53:40 -0000 1.5 @@ -13,14 +13,16 @@ Etk_Widget *window; Emphasis_Config *config; - config = etk_object_data_get(object, "config"); - etk_widget_geometry_get(ETK_WIDGET(object), &(config->geometry.x), - &(config->geometry.y), &(config->geometry.w), - &(config->geometry.h)); - config_write(config); + window = ETK_WIDGET(object); + config = config_load(); + etk_widget_geometry_get(ETK_WIDGET(window), + &(config->geometry.x), &(config->geometry.y), + &(config->geometry.w), &(config->geometry.h)); + config_save(config); + config_free(config); mpc_disconnect(); - eet_shutdown(); + ecore_config_shutdown(); etk_main_quit(); } @@ -534,12 +536,6 @@ gui = data; if (event->button == 3) { - if (etk_tree_selected_rows_get(ETK_TREE(gui->tree_pls)) == NULL) - { - printf("coin\n"); - event->button = 1; - etk_signal_emit_by_name("row_clicked", ETK_OBJECT(gui->tree_pls), NULL, gui, event); - } etk_menu_popup(ETK_MENU(gui->menu)); } } @@ -649,13 +645,17 @@ Emphasis_Config *config; gui = data; - config_gui_init(gui->config_gui); + gui->config_gui = config_gui_init(); config = config_load(); config_gui_set(gui->config_gui, config); etk_widget_show_all(gui->config_gui->window); - etk_signal_connect("clicked", ETK_OBJECT(gui->config_gui->buttons_box_ok), ETK_CALLBACK(cb_config_write), gui); - etk_signal_connect("clicked", ETK_OBJECT(gui->config_gui->buttons_box_apply), ETK_CALLBACK(cb_config_write), gui); - etk_signal_connect("clicked", ETK_OBJECT(gui->config_gui->buttons_box_cancel), ETK_CALLBACK(cb_config_hide), gui); + + etk_signal_connect("clicked", ETK_OBJECT(gui->config_gui->buttons_box_ok), + ETK_CALLBACK(cb_config_write), gui); + etk_signal_connect("clicked", ETK_OBJECT(gui->config_gui->buttons_box_apply), + ETK_CALLBACK(cb_config_write), gui); + etk_signal_connect("clicked", ETK_OBJECT(gui->config_gui->buttons_box_cancel), + ETK_CALLBACK(cb_config_hide), gui->config_gui); } void @@ -664,7 +664,7 @@ Emphasis_Config_Gui *gui; gui = data; - etk_object_destroy(ETK_OBJECT(gui->window)); + etk_widget_hide(ETK_WIDGET(gui->window)); } void @@ -672,17 +672,17 @@ { Emphasis_Config *config; Emphasis_Gui *gui; - const char *port; +// const char *port; - config = config_new(); + config = config_load(); gui = data; - config->hostname = etk_entry_text_get(ETK_ENTRY(gui->config_gui->hostname_entry)); - port = etk_entry_text_get(ETK_ENTRY(gui->config_gui->port_spin)); - config->port = atoi(port); - config->password = etk_entry_text_get(ETK_ENTRY(gui->config_gui->password_entry)); + config->hostname = (char *)etk_entry_text_get(ETK_ENTRY(gui->config_gui->hostname_entry)); +// port = etk_entry_text_get(ETK_ENTRY(gui->config_gui->port_spin)); +// config->port = atoi(port); + config->password = (char *)etk_entry_text_get(ETK_ENTRY(gui->config_gui->password_entry)); - config_write(config); + config_save(config); cb_config_hide(NULL, gui->config_gui); emphasis_try_connect(gui); } @@ -695,11 +695,14 @@ gui=data; - config = etk_object_data_get(ETK_OBJECT(gui->window), "config"); +// config = etk_object_data_get(ETK_OBJECT(gui->window), "config"); + config = config_load(); etk_container_border_width_set(ETK_CONTAINER(gui->window), 6); etk_widget_show_all(gui->vpaned); etk_window_resize(ETK_WINDOW(gui->window), config->geometry.w, config->geometry.h); + + config_free(config); } void @@ -710,13 +713,21 @@ int w,h; gui=data; + + if (etk_widget_is_visible(gui->tree_pls) == ETK_FALSE) + { + return; + } etk_widget_geometry_get(gui->window, NULL, NULL, &w, &h); - config = etk_object_data_get(ETK_OBJECT(gui->window), "config"); + config = config_load(); config->geometry.w = w; config->geometry.h = h; etk_container_border_width_set(ETK_CONTAINER(gui->window), 0); etk_widget_hide_all(gui->vpaned); etk_window_resize(ETK_WINDOW(gui->window), 0, 0); + + config_save(config); + config_free(config); } =================================================================== RCS file: /cvs/e/e17/proto/emphasis/src/bin/emphasis_config.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- emphasis_config.c 6 Jun 2006 11:22:15 -0000 1.1 +++ emphasis_config.c 8 Jul 2006 03:53:40 -0000 1.2 @@ -1,115 +1,70 @@ #include "emphasis.h" #include "emphasis_config.h" - -void -config_write(Emphasis_Config *config) +void +set_defaults (void) { - char *str_port, *str_x, *str_y, *str_w, *str_h; - char *config_dir; - Eet_File *ef; - - config_dir = ecore_file_get_dir(config->file_path); - if (!ecore_file_exists(config_dir)) - ecore_file_mkdir(config_dir); - else if (!ecore_file_is_dir(config_dir)) - { - printf("Error %s is not a directory\n", config_dir); - return; - } - - asprintf(&str_port, "%i", config->port); - asprintf(&str_x, "%i", config->geometry.x); - asprintf(&str_y, "%i", config->geometry.y); - asprintf(&str_w, "%i", config->geometry.w); - asprintf(&str_h, "%i", config->geometry.h); - ef = eet_open(config->file_path, EET_FILE_MODE_WRITE); - if (ef) - { - eet_write(ef, "Hostname", config->hostname, strlen(config->hostname)+1, 0); - eet_write(ef, "Port", str_port, strlen(str_port)+1, 0); - if (config->password) - eet_write(ef, "Password", config->password, strlen(config->password)+1, 0); - eet_write(ef, "x", str_x, sizeof(int), 0); - eet_write(ef, "y", str_y, sizeof(int), 0); - eet_write(ef, "w", str_w, sizeof(int), 0); - eet_write(ef, "h", str_h, sizeof(int), 0); - eet_close(ef); - } - free(str_port); - free(str_x); - free(str_y); - free(str_w); - free(str_h); + ecore_config_string_default(MPD_HOSTNAME_KEY, "localhost"); + ecore_config_int_default(MPD_PORT_KEY, 6600); + ecore_config_string_default(MPD_PASSWORD_KEY, NULL); + ecore_config_int_default(MPD_CROSSFADE_KEY, 0); + + ecore_config_int_default(EMP_GEOMETRY_X_KEY, 0); + ecore_config_int_default(EMP_GEOMETRY_Y_KEY, 0); + ecore_config_int_default(EMP_GEOMETRY_W_KEY, 500); + ecore_config_int_default(EMP_GEOMETRY_H_KEY, 400); + + ecore_config_int_default(EMP_MODE_KEY, EMPHASIS_FULL); } -/** - * @brief Load the config file - * @return The data set into the config file or the default parameters for a mpd connection - */ Emphasis_Config * config_load(void) { Emphasis_Config *config; - Eet_File *ef; - char *hostname, *password, *file_path; - - config = config_new(); - - ef = eet_open(config->file_path, EET_FILE_MODE_READ); - if (ef) - { - hostname = eet_read(ef, "Hostname", 0); - config->port = atoi(eet_read(ef, "Port", 0)); - password = eet_read(ef, "Password", 0); - config->geometry.x = atoi(eet_read(ef, "x", 0)); - config->geometry.y = atoi(eet_read(ef, "y", 0)); - config->geometry.w = atoi(eet_read(ef, "w", 0)); - config->geometry.h = atoi(eet_read(ef, "h", 0)); - eet_close(ef); - - config_str_change(config, &(config->hostname), hostname); - config_str_change(config, &(config->password), password); - } - - return config; -} -Emphasis_Config * -config_new(void) -{ - Emphasis_Config *config; - char *hostname, *password, *file_path; - config = malloc(sizeof(Emphasis_Config)); - - config_str_change(config, &(config->user_home_path), strdup(getenv("HOME"))); - asprintf(&file_path, "%s/.e/emphasis/emphasis.cfg", config->user_home_path); - config->file_path = strdup(file_path); - config->hostname = strdup("localhost"); - config->port = 6600; - config->password = NULL; - config->crossfade = 0; - config->geometry.x = 0; - config->geometry.y = 0; - config->geometry.w = 500; - config->geometry.h = 400; - + set_defaults(); + ecore_config_load(); + + config->hostname = ecore_config_string_get(MPD_HOSTNAME_KEY); + config->port = ecore_config_int_get(MPD_PORT_KEY); + config->password = ecore_config_string_get(MPD_PASSWORD_KEY); + config->crossfade = ecore_config_int_get(MPD_CROSSFADE_KEY); + + config->geometry.x = ecore_config_int_get(EMP_GEOMETRY_X_KEY); + config->geometry.y = ecore_config_int_get(EMP_GEOMETRY_Y_KEY); + config->geometry.w = ecore_config_int_get(EMP_GEOMETRY_W_KEY); + config->geometry.h = ecore_config_int_get(EMP_GEOMETRY_H_KEY); + + config->mode = ecore_config_int_get(EMP_MODE_KEY); + return config; } - + void -config_str_change(Emphasis_Config *config, const char **str, const char *value) +config_save(Emphasis_Config *config) { - if (!value) - return; + ecore_config_string_set(MPD_HOSTNAME_KEY, config->hostname); + ecore_config_int_set(MPD_PORT_KEY, config->port); + ecore_config_string_set(MPD_PASSWORD_KEY, config->password); + ecore_config_int_set(MPD_CROSSFADE_KEY, config->crossfade); + + ecore_config_int_set(EMP_GEOMETRY_X_KEY, config->geometry.x); + ecore_config_int_set(EMP_GEOMETRY_Y_KEY, config->geometry.y); + ecore_config_int_set(EMP_GEOMETRY_W_KEY, config->geometry.w); + ecore_config_int_set(EMP_GEOMETRY_H_KEY, config->geometry.h); + + ecore_config_int_set(EMP_MODE_KEY, config->mode); - *str = strdup(value); + ecore_config_save(); } -void -config_gui_init(Emphasis_Config_Gui *gui) +Emphasis_Config_Gui * +config_gui_init(void) { + Emphasis_Config_Gui *gui; + gui = malloc(sizeof(Emphasis_Config_Gui)); + gui->window = etk_window_new(); etk_window_title_set(ETK_WINDOW(gui->window),"Emphasis Configuration"); etk_window_wmclass_set(ETK_WINDOW(gui->window), "Emphasis Configuration", "emphasis"); @@ -135,7 +90,7 @@ gui->port_label = etk_label_new("Port :"); // gui->port_spin = etk_spin_button_new(0, 65536, 1); etk_box_pack_start(ETK_BOX(gui->port_hbox), gui->port_label, ETK_TRUE, ETK_TRUE, 0); - etk_box_pack_start(ETK_BOX(gui->port_hbox), gui->port_spin, ETK_TRUE, ETK_TRUE, 0); +// etk_box_pack_start(ETK_BOX(gui->port_hbox), gui->port_spin, ETK_TRUE, ETK_TRUE, 0); etk_box_pack_start(ETK_BOX(gui->connection_vbox), gui->port_hbox, ETK_TRUE, ETK_TRUE, 5); gui->password_hbox = etk_hbox_new(ETK_TRUE, 0); @@ -157,7 +112,7 @@ gui->rowheight_label = etk_label_new("Row Height :"); // gui->rowheight_spin = etk_spin_button_new(0, 50, 1); etk_box_pack_start(ETK_BOX(gui->rowheight_hbox), gui->rowheight_label, ETK_TRUE, ETK_TRUE, 0); - etk_box_pack_start(ETK_BOX(gui->rowheight_hbox), gui->rowheight_spin, ETK_TRUE, ETK_TRUE, 0); +// etk_box_pack_start(ETK_BOX(gui->rowheight_hbox), gui->rowheight_spin, ETK_TRUE, ETK_TRUE, 0); etk_box_pack_start(ETK_BOX(gui->interface_vbox), gui->rowheight_hbox, ETK_TRUE, ETK_TRUE, 5); /**/ @@ -169,15 +124,25 @@ etk_box_pack_start(ETK_BOX(gui->buttons_box_hbox), gui->buttons_box_apply, ETK_TRUE, ETK_FALSE, 0); etk_box_pack_start(ETK_BOX(gui->buttons_box_hbox), gui->buttons_box_cancel, ETK_TRUE, ETK_FALSE, 0); etk_box_pack_start(ETK_BOX(gui->vbox), gui->buttons_box_hbox, ETK_FALSE, ETK_FALSE, 0); + + return gui; } void config_gui_set(Emphasis_Config_Gui *gui, Emphasis_Config *config) { - char *port; +// char *port; etk_entry_text_set(ETK_ENTRY(gui->hostname_entry), config->hostname); - asprintf(&port, "%d", config->port); - etk_entry_text_set(ETK_ENTRY(gui->port_spin), port); - if (config->password) +// asprintf(&port, "%d", config->port); +// etk_entry_text_set(ETK_ENTRY(gui->port_spin), port); + if (config->password != NULL && strlen(config->password) != 0) etk_entry_text_set(ETK_ENTRY(gui->password_entry), config->password); +} + +void +config_free(Emphasis_Config *config) +{ + if (config->hostname) { free(config->hostname); } + if (config->password) { free(config->password); } + free(config); } =================================================================== RCS file: /cvs/e/e17/proto/emphasis/src/bin/emphasis_config.h,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- emphasis_config.h 6 Jun 2006 11:22:15 -0000 1.1 +++ emphasis_config.h 8 Jul 2006 03:53:40 -0000 1.2 @@ -5,12 +5,30 @@ * @{ */ -typedef struct _Emphasis_Config { - const char *user_home_path; - const char *file_path; - const char *hostname; +#include <Ecore_Config.h> + +#define MPD_HOSTNAME_KEY "/mpd/hostname" +#define MPD_PORT_KEY "/mpd/port" +#define MPD_PASSWORD_KEY "/mpd/password" +#define MPD_CROSSFADE_KEY "/mpd/crossfade" /*TODO handle the crossfade */ + +#define EMP_GEOMETRY_X_KEY "/geometry/x" +#define EMP_GEOMETRY_Y_KEY "/geometry/y" +#define EMP_GEOMETRY_W_KEY "/geometry/w" +#define EMP_GEOMETRY_H_KEY "/geometry/h" +#define EMP_MODE_KEY "/emphasis/mode" + +typedef enum +{ + EMPHASIS_SMALL=0, + EMPHASIS_FULL=1 +} Emphasis_Mode; + +typedef struct _Emphasis_Config +{ + char *hostname; int port; - const char *password; + char *password; int crossfade; struct { @@ -20,12 +38,7 @@ int h; } geometry; - enum { - EMPHASIS_PLAYER, - EMPHASIS_PLAYLIST, - EMPHASIS_FULL - } display_mode; - + Emphasis_Mode mode; } Emphasis_Config; struct _Emphasis_Config_Gui { @@ -62,11 +75,12 @@ typedef struct _Emphasis_Config_Gui Emphasis_Config_Gui; -void config_write(Emphasis_Config *config); +void config_save(Emphasis_Config *config); Emphasis_Config *config_load(void); void config_str_change(Emphasis_Config *config, const char **str, const char *value); -void config_gui_init(Emphasis_Config_Gui *gui); +Emphasis_Config_Gui *config_gui_init(void); void config_gui_set(Emphasis_Config_Gui *gui, Emphasis_Config *config); Emphasis_Config *config_new(void); +void config_free(Emphasis_Config *config); /** @} */ #endif /*_CONFIG_H_*/ =================================================================== RCS file: /cvs/e/e17/proto/emphasis/src/bin/emphasis_gui.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- emphasis_gui.c 3 Jul 2006 02:33:26 -0000 1.4 +++ emphasis_gui.c 8 Jul 2006 03:53:40 -0000 1.5 @@ -225,7 +225,7 @@ emphasis_menu_append(gui->menu, "clear", ETK_STOCK_EDIT_CLEAR, cb_playlist_clear, NULL, "delete", ETK_STOCK_EDIT_DELETE, cb_playlist_delete, gui, "update", ETK_STOCK_VIEW_REFRESH, cb_database_update, gui, - /* "config", ETK_STOCK_PREFERENCES_SYSTEM, cb_config_show, gui, */ + "config", ETK_STOCK_PREFERENCES_SYSTEM, cb_config_show, gui, NULL); separator = etk_menu_item_separator_new(); etk_menu_shell_append(ETK_MENU_SHELL(gui->menu), ETK_MENU_ITEM(separator)); @@ -508,25 +508,31 @@ { char *info; + etk_textblock_clear(ETK_TEXT_VIEW(gui->song_info)->textblock); if (song) { char **table[] = {&(song->artist), &(song->title), &(song->album), NULL}; emphasis_unknow_if_null(table); - asprintf(&info, "<p><font_size=11> %s - %s</p><br> %s", song->artist, song->title, song->album); + asprintf(&info, "<b><font size=12>%s</font></b>\n \n" + "<i>by</i> <font size=11>%s</font> " + "<i>in</i> <font size=11>%s</font> ", + song->title, song->artist, song->album); if (msg) { asprintf(&info, "%s (%s)", info, msg); } -// etk_textblock_text_set(ETK_TEXT_VIEW(gui->song_info)->textblock, info); + etk_textblock_text_set(ETK_TEXT_VIEW(gui->song_info)->textblock, info, + ETK_TRUE); free(info); } else { if (msg) { - asprintf(&info, "<center><font_size=11>%s</></center>", msg); -// etk_textblock_text_set(ETK_TEXT_VIEW(gui->song_info)->textblock, info); + asprintf(&info, "%s", msg); + etk_textblock_text_set(ETK_TEXT_VIEW(gui->song_info)->textblock, info, + ETK_TRUE); free(info); } } =================================================================== RCS file: /cvs/e/e17/proto/emphasis/src/bin/emphasis_mpc.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- emphasis_mpc.c 3 Jul 2006 02:33:26 -0000 1.4 +++ emphasis_mpc.c 8 Jul 2006 03:53:40 -0000 1.5 @@ -18,12 +18,10 @@ if (!mpd_connect(mo)) { mpd_send_password(mo); - printf("MPD daemon found at %s:%d\n", hostname, port); timer = ecore_timer_add(0.2, mpc_update, NULL); } else { - printf("MPD daemon not found at %s:%d \n", hostname, port); timer = NULL; } @@ -157,14 +155,9 @@ { if (!connect) { - emphasis_player_info_set(NULL, "Not connected to MPD daemon", data); - // emphasis_clear(data); + emphasis_player_info_set(NULL, "Not connected to MPD", data); ecore_timer_del(((Emphasis_Gui*)data)->timer); ((Emphasis_Gui*)data)->timer = ecore_timer_add(0.2, emphasis_try_connect, data); - } - if (connect) - { - printf("platypus\n"); } } 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