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_callbacks.h emphasis_config_gui.c emphasis_config_gui.h emphasis_cover_db.c emphasis_gui.c emphasis_media.c emphasis_media.h emphasis_misc.c emphasis_misc.h emphasis_mpc.c emphasis_mpc.h emphasis_player.c emphasis_player.h Log Message: Make it build. Handle mpd playlists. Config panel is now a glade. Pre-build eap added. Added a quick made cover editor (read the README). =================================================================== RCS file: /cvs/e/e17/proto/emphasis/src/bin/Makefile.am,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- Makefile.am 21 Jul 2006 04:05:27 -0000 1.4 +++ Makefile.am 20 Aug 2006 22:48:49 -0000 1.5 @@ -36,3 +36,5 @@ emphasis_data_list.c emphasis_LDADD = @my_libs@ + +MAINTAINERCLEANFILES = Makefile.in =================================================================== RCS file: /cvs/e/e17/proto/emphasis/src/bin/emphasis.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -3 -r1.7 -r1.8 --- emphasis.c 2 Aug 2006 05:53:58 -0000 1.7 +++ emphasis.c 20 Aug 2006 22:48:49 -0000 1.8 @@ -6,7 +6,7 @@ Emphasis_Gui *gui; /* void */ enhance_init(); - if (!etk_init(&argc, &argv)) + if(!etk_init(&argc, &argv)) { fprintf(stderr, "Unable to init etk\n"); return 1; @@ -32,7 +32,7 @@ etk_main(); - /* enhance_free(gui->player->en); *HUM* *HUM* */ + enhance_free(gui->player->en); return 0; } @@ -62,7 +62,7 @@ etk_tree_col_width_set(ETK_TREE_COL_GET(player->media.pls, 3), config->colwidth.album); - emphasis_player_mode_set(player, config->mode); + emphasis_player_force_mode_set(player, config->mode); emphasis_player_info_set(player, NULL, "Not connected to MPD"); config_free(config); =================================================================== RCS file: /cvs/e/e17/proto/emphasis/src/bin/emphasis.h,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- emphasis.h 21 Jul 2006 04:05:27 -0000 1.4 +++ emphasis.h 20 Aug 2006 22:48:49 -0000 1.5 @@ -8,6 +8,7 @@ #include "config.h" #include <libmpd/libmpd.h> +#include <libmpd/libmpd-internal.h> #include <Ecore.h> #include <Evas.h> =================================================================== RCS file: /cvs/e/e17/proto/emphasis/src/bin/emphasis_callbacks.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -3 -r1.8 -r1.9 --- emphasis_callbacks.c 15 Aug 2006 18:31:45 -0000 1.8 +++ emphasis_callbacks.c 20 Aug 2006 22:48:49 -0000 1.9 @@ -5,7 +5,7 @@ /** * @brief Quit the main loop */ -void +Etk_Bool cb_quit(Etk_Object *object, void *data) { /* TODO : @@ -40,8 +40,10 @@ config_free(config); mpc_disconnect(); - /* ecore_config_shutdown() *HUM* *HUM* */ + ecore_config_shutdown(); etk_main_quit(); + + return ETK_TRUE; } /* TODO : doc */ @@ -138,6 +140,7 @@ void cb_toggle_media(Etk_Object *object, void *data) { + /* Okay, now I have an ETK_FALSE. */ Emphasis_Player_Gui *player; Etk_Bool checked; player = data; @@ -145,13 +148,13 @@ checked = etk_toggle_button_active_get(ETK_TOGGLE_BUTTON(object)); - if(checked == ETK_TRUE) + if(checked == ETK_FALSE) { - etk_widget_show_all(player->media.window); + etk_widget_show(player->media.window); } else { - etk_widget_hide_all(player->media.window); + etk_widget_hide(player->media.window); } } @@ -178,7 +181,7 @@ Etk_Event_Mouse_Up_Down *event, void *data) { - UNUSED(event) + UNUSED(event); Emphasis_Player_Gui *player; player = data; @@ -202,6 +205,7 @@ { UNUSED(object) UNUSED(data) + mpc_change_vol(value); } @@ -519,26 +523,23 @@ cb_tree_mlib_clicked(Etk_Object *object, Etk_Tree_Row *row, Etk_Event_Mouse_Up_Down *event, void *data) { - Etk_Widget *widget, *tree; + Emphasis_Player_Gui *player; + Emphasis_Type et; char *str; + player = data; + et = (Emphasis_Type) etk_object_data_get(object, "Emphasis_Type"); if ((event->button == 1) && (event->flags & EVAS_BUTTON_DOUBLE_CLICK)) { - emphasis_playlist_append_selected(ETK_TREE(object), - (Emphasis_Type) data); + emphasis_playlist_append_selected(ETK_TREE(object), et); mpc_play_if_stopped(); } if (event->button == 2) { - widget = etk_widget_parent_get(ETK_WIDGET(object)); - widget = etk_widget_parent_get(ETK_WIDGET(widget)); - tree = etk_paned_child2_get(ETK_PANED(widget)); - etk_tree_row_fields_get(row, etk_tree_nth_col_get(ETK_TREE(object), 0), &str, NULL); - emphasis_playlist_search_and_delete(ETK_TREE(tree), str, - (Emphasis_Type) data); + emphasis_playlist_search_and_delete(ETK_TREE(player->media.pls), str, et); } } @@ -736,6 +737,7 @@ if (event->button == 3) { etk_menu_popup(ETK_MENU(gui->menu)); + etk_widget_show_all(gui->menu); } } @@ -815,6 +817,8 @@ etk_tree_col_title_set(ETK_TREE_COL_GET(player->media.artist, 0), "Artist"); etk_tree_col_title_set(ETK_TREE_COL_GET(player->media.album , 0), "Album"); etk_tree_col_title_set(ETK_TREE_COL_GET(player->media.track , 0), "Track"); + + /* TODO redraw */ } void @@ -822,6 +826,7 @@ { /* TODO : this function ;) */ UNUSED(object); +// int x, y, w, h; Emphasis_Player_Gui *player; player = data; @@ -832,17 +837,20 @@ } player->state = EMPHASIS_FULL; - etk_widget_hide_all(player->small.window); - etk_widget_hide_all(player->media.window); +// etk_window_geometry_get(ETK_WINDOW(player->small.window), &x, &y, &w, &h); + etk_widget_hide(player->small.window); + etk_widget_hide(player->media.window); etk_container_remove(ETK_CONTAINER(player->media.window), player->media.root); etk_box_append(ETK_BOX(player->full.root), player->media.root, - ETK_BOX_START, ETK_BOX_EXPAND_FILL, 0); + ETK_BOX_START, + ETK_BOX_EXPAND_FILL, 0); emphasis_player_toggle_full(player, ETK_TRUE); - etk_widget_show_all(player->full.window); + etk_widget_show(player->full.window); +// etk_window_move(ETK_WINDOW(player->full.window), x, y); } void @@ -850,20 +858,231 @@ { /* TODO : this function ;) */ UNUSED(object); +// int x, y, w, h; Emphasis_Player_Gui *player; player = data; + if(player->state == EMPHASIS_SMALL) + { + return; + } player->state = EMPHASIS_SMALL; - etk_widget_hide_all(player->full.window); +// etk_window_geometry_get(ETK_WINDOW(player->full.window), &x, &y, &w, &h); + etk_widget_hide(player->full.window); etk_container_add(ETK_CONTAINER(player->media.window), player->media.root); emphasis_player_toggle_full(player, ETK_FALSE); if(etk_toggle_button_active_get(ETK_TOGGLE_BUTTON(player->small.media))) { - etk_widget_show_all(player->media.window); + etk_widget_show(player->media.window); + } + etk_widget_show(player->small.window); +// etk_window_move(ETK_WINDOW(player->small.window), x, y); +} + +void +cb_media_button_lib_clicked(Etk_Object *object, + void *data) +{ + UNUSED(object); + + Emphasis_Player_Gui *player; + player = data; + + etk_notebook_current_page_set(ETK_NOTEBOOK(player->media.notebook), 0); +} + +void +cb_media_button_search_clicked(Etk_Object *object, + void *data) +{ + UNUSED(object); + + Emphasis_Player_Gui *player; + player = data; + + etk_notebook_current_page_set(ETK_NOTEBOOK(player->media.notebook), 1); +} + +void +cb_media_button_playlists_clicked(Etk_Object *object, + void *data) +{ + UNUSED(object); + + Emphasis_Player_Gui *player; + player = data; + + etk_notebook_current_page_set(ETK_NOTEBOOK(player->media.notebook), 2); + emphasis_pls_list_init(player); +} + +void +cb_media_button_stats_clicked(Etk_Object *object, + void *data) +{ + UNUSED(object); + + Emphasis_Player_Gui *player; + player = data; + + etk_notebook_current_page_set(ETK_NOTEBOOK(player->media.notebook), 3); +} + +void +cb_config_show(Etk_Object *object, void *data) +{ + Emphasis_Gui *gui; + Emphasis_Config_Gui *configgui; + UNUSED(object); + + gui = data; + + if(gui->config_gui == NULL) + { + gui->config_gui = malloc(sizeof(Emphasis_Config_Gui)); + emphasis_init_configgui(gui->config_gui); + gui->config_gui->data = data; + } + configgui = gui->config_gui; + + emphasis_configgui_autoset(configgui); + etk_widget_show_all(configgui->window); +} + +Etk_Bool +cb_config_hide(Etk_Object *object, void *data) +{ + Emphasis_Config_Gui *configgui; + UNUSED(object); + + configgui = data; + + etk_widget_hide_all(configgui->window); + return ETK_FALSE; +} + +void +cb_config_ok(Etk_Object *object, void *data) +{ + Emphasis_Config_Gui *configgui; + + configgui = data; + + emphasis_configgui_save(configgui); + emphasis_try_connect(configgui->data); + + cb_config_hide(object, data); +} + +void +cb_media_pls_list_row_clicked(Etk_Object *object, Etk_Tree_Row *row, + Etk_Event_Mouse_Up_Down *event, void *data) +{ + Emphasis_Player_Gui *player; + Etk_Tree *tree; + Etk_Tree_Col *col; + char *playlist_name; + + player = data; + if (event->button == 1) + { + if (event->flags == EVAS_BUTTON_NONE) + { + tree = ETK_TREE(object); + col = etk_tree_nth_col_get(tree, 0); + + etk_tree_clear(ETK_TREE(player->media.pls_content)); + etk_tree_row_fields_get(row, col, &playlist_name, NULL); + emphasis_tree_mlib_append(ETK_TREE(player->media.pls_content), + (mpc_get_playlist_content(playlist_name)), + MPD_DATA_TYPE_SONG, + NULL); + } + else if (event->flags == EVAS_BUTTON_DOUBLE_CLICK) + { + cb_media_pls_load_clicked(NULL, data); + } + } +} + +void +cb_media_pls_save_clicked(Etk_Object *object, void *data) +{ + UNUSED(object); + Emphasis_Player_Gui *player; + Etk_Widget *entry; + + player = data; + entry = player->media.pls_entry_save; + if (etk_widget_is_visible(entry)) + { + if (etk_entry_text_get(ETK_ENTRY(entry))) + { + mpc_save_playlist((char *) etk_entry_text_get(ETK_ENTRY(entry))); + } + etk_entry_text_set(ETK_ENTRY(entry), ""); + etk_widget_hide(entry); + } + else + { + etk_widget_show(entry); + etk_widget_focus(entry); + } + emphasis_pls_list_init(player); +} + +void +cb_media_pls_load_clicked(Etk_Object *object, void *data) +{ + UNUSED(object); + Emphasis_Player_Gui *player; + Etk_Tree_Col *col; + Etk_Tree_Row *row; + char *playlist_name; + + player = data; + col = etk_tree_nth_col_get(ETK_TREE(player->media.pls_list), 0); + row = etk_tree_selected_row_get(ETK_TREE(player->media.pls_list)); + etk_tree_row_fields_get(row, col, &playlist_name, NULL); + + mpc_playlist_clear(); + etk_tree_multiple_select_set(ETK_TREE(player->media.pls_content), ETK_TRUE); + etk_tree_select_all(ETK_TREE(player->media.pls_content)); + emphasis_playlist_append_selected(ETK_TREE(player->media.pls_content), + EMPHASIS_TRACK); + etk_tree_unselect_all(ETK_TREE(player->media.pls_content)); + mpc_play_if_stopped(); +} + +void +cb_media_pls_del_clicked(Etk_Object *object, void *data) +{ + UNUSED(object); + Emphasis_Player_Gui *player; + Etk_Tree_Col *col; + Etk_Tree_Row *row; + char *playlist_name; + + player = data; + col = etk_tree_nth_col_get(ETK_TREE(player->media.pls_list), 0); + row = etk_tree_selected_row_get(ETK_TREE(player->media.pls_list)); + etk_tree_row_fields_get(row, col, &playlist_name, NULL); + + mpc_delete_playlist(playlist_name); + emphasis_pls_list_init(player); +} + +void +cb_media_pls_save_key_down(Etk_Object *object, Etk_Event_Key_Up_Down *event, + void *data) +{ + if (!strcmp(event->key, "Return")) + { + etk_widget_unfocus(ETK_WIDGET(object)); + cb_media_pls_save_clicked(NULL, data); } - etk_widget_show_all(player->small.window); } =================================================================== RCS file: /cvs/e/e17/proto/emphasis/src/bin/emphasis_callbacks.h,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- emphasis_callbacks.h 21 Jul 2006 04:05:27 -0000 1.4 +++ emphasis_callbacks.h 20 Aug 2006 22:48:49 -0000 1.5 @@ -6,7 +6,7 @@ * @defgroup callbacks * @{ */ -void cb_quit(Etk_Object *object, void *data); +Etk_Bool cb_quit(Etk_Object *object, void *data); Etk_Bool cb_media_quit(Etk_Object *object, void *data); void cb_button_stop_clicked(Etk_Object *object, void *data); @@ -55,5 +55,21 @@ void cb_switch_small(Etk_Object *object, void *data); void cb_switch_full(Etk_Object *object, void *data); + +void cb_media_button_lib_clicked(Etk_Object *object, void *data); +void cb_media_button_search_clicked(Etk_Object *object, void *data); +void cb_media_button_playlists_clicked(Etk_Object *object, void *data); +void cb_media_button_stats_clicked(Etk_Object *object, void *data); +void cb_config_show(Etk_Object *object, void *data); +void cb_config_ok(Etk_Object *object, void *data); +Etk_Bool cb_config_hide(Etk_Object *object, void *data); + +void cb_media_pls_list_row_clicked(Etk_Object *object, Etk_Tree_Row *row, + Etk_Event_Mouse_Up_Down *event, void *data); +void cb_media_pls_save_clicked(Etk_Object *object, void *data); +void cb_media_pls_load_clicked(Etk_Object *object, void *data); +void cb_media_pls_del_clicked(Etk_Object *object, void *data); +void cb_media_pls_save_key_down(Etk_Object *object, + Etk_Event_Key_Up_Down *event, void *data); /** @} */ #endif /* EMPHASIS_CALLBACKS_H_ */ =================================================================== RCS file: /cvs/e/e17/proto/emphasis/src/bin/emphasis_config_gui.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- emphasis_config_gui.c 15 Aug 2006 18:31:45 -0000 1.2 +++ emphasis_config_gui.c 20 Aug 2006 22:48:49 -0000 1.3 @@ -1,157 +1,77 @@ #include "emphasis.h" #include "emphasis_config_gui.h" -Emphasis_Config_Gui * -config_gui_init(void) -{ - Emphasis_Config_Gui *gui; - gui = malloc(sizeof(Emphasis_Config_Gui)); +/* TODO : all docs */ - 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"); - etk_container_border_width_set(ETK_CONTAINER(gui->window), 2); - - gui->vbox = etk_vbox_new(ETK_FALSE, 0); - etk_container_add(ETK_CONTAINER(gui->window), gui->vbox); - - gui->connection_frame = etk_frame_new("Connection settings"); - etk_box_append(ETK_BOX(gui->vbox), gui->connection_frame, - ETK_BOX_START, ETK_BOX_EXPAND_FILL, 0); - - gui->connection_vbox = etk_vbox_new(ETK_TRUE, 5); - etk_container_add(ETK_CONTAINER(gui->connection_frame), gui->connection_vbox); - - gui->hostname_hbox = etk_hbox_new(ETK_TRUE, 0); - gui->hostname_label = etk_label_new("Hostname :"); - gui->hostname_entry = etk_entry_new(); - etk_box_append(ETK_BOX(gui->hostname_hbox), gui->hostname_label, - ETK_BOX_START, ETK_BOX_EXPAND_FILL, 0); - etk_box_append(ETK_BOX(gui->hostname_hbox), gui->hostname_entry, - ETK_BOX_START, ETK_BOX_EXPAND_FILL, 0); - etk_box_append(ETK_BOX(gui->connection_vbox), gui->hostname_hbox, - ETK_BOX_START, ETK_BOX_EXPAND_FILL, 0); - - gui->port_hbox = etk_hbox_new(ETK_TRUE, 0); - gui->port_label = etk_label_new("Port :"); -// gui->port_spin = etk_spin_button_new(0, 65536, 1); - etk_box_append(ETK_BOX(gui->port_hbox), gui->port_label, - ETK_BOX_START, ETK_BOX_EXPAND_FILL, 0); -/* etk_box_append(ETK_BOX(gui->port_hbox), gui->port_spin, - ETK_BOX_START, ETK_BOX_EXPAND_FILL, 0); */ - etk_box_append(ETK_BOX(gui->connection_vbox), gui->port_hbox, - ETK_BOX_START, ETK_BOX_EXPAND_FILL, 0); - - gui->password_hbox = etk_hbox_new(ETK_TRUE, 0); - gui->password_label = etk_label_new("password :"); - gui->password_entry = etk_entry_new(); - etk_entry_password_set(ETK_ENTRY(gui->password_entry), ETK_TRUE); - etk_box_append(ETK_BOX(gui->password_hbox), gui->password_label, - ETK_BOX_START, ETK_BOX_EXPAND_FILL, 0); - etk_box_append(ETK_BOX(gui->password_hbox), gui->password_entry, - ETK_BOX_START, ETK_BOX_EXPAND_FILL, 0); - etk_box_append(ETK_BOX(gui->connection_vbox), gui->password_hbox, - ETK_BOX_START, ETK_BOX_EXPAND_FILL, 0); - -/**/ - gui->interface_frame = etk_frame_new("Interface settings"); - etk_box_append(ETK_BOX(gui->vbox), gui->interface_frame, - ETK_BOX_START, ETK_BOX_EXPAND_FILL, 0); - - gui->interface_vbox = etk_vbox_new(ETK_TRUE, 5); - etk_container_add(ETK_CONTAINER(gui->interface_frame), gui->interface_vbox); - - gui->rowheight_hbox = etk_hbox_new(ETK_TRUE, 0); - gui->rowheight_label = etk_label_new("Row Height :"); -// gui->rowheight_spin = etk_spin_button_new(0, 50, 1); - etk_box_append(ETK_BOX(gui->rowheight_hbox), gui->rowheight_label, - ETK_BOX_START, ETK_BOX_EXPAND_FILL, 0); -/* etk_box_append(ETK_BOX(gui->rowheight_hbox), gui->rowheight_spin, - ETK_BOX_START, ETK_BOX_EXPAND_FILL, 0); */ - etk_box_append(ETK_BOX(gui->interface_vbox), gui->rowheight_hbox, - ETK_BOX_START, ETK_BOX_EXPAND_FILL, 0); -/**/ - gui->buttons_box_hbox = etk_hbox_new(ETK_TRUE, 5); - gui->buttons_box_ok = etk_button_new_with_label("Ok"); - gui->buttons_box_apply = etk_button_new_with_label("Apply"); - gui->buttons_box_cancel = etk_button_new_with_label("Cancel"); - etk_box_append(ETK_BOX(gui->buttons_box_hbox), gui->buttons_box_ok, - ETK_BOX_START, ETK_BOX_EXPAND_FILL, 0); - etk_box_append(ETK_BOX(gui->buttons_box_hbox), gui->buttons_box_apply, - ETK_BOX_START, ETK_BOX_EXPAND_FILL, 0); - etk_box_append(ETK_BOX(gui->buttons_box_hbox), gui->buttons_box_cancel, - ETK_BOX_START, ETK_BOX_EXPAND_FILL, 0); - etk_box_append(ETK_BOX(gui->vbox), gui->buttons_box_hbox, - ETK_BOX_START, ETK_BOX_EXPAND_FILL, 0); - return gui; -} +static void +_emphasis_enhance_callbacks(Emphasis_Config_Gui *configgui); void -config_gui_set(Emphasis_Config_Gui *gui, Emphasis_Config *config) +emphasis_init_configgui(Emphasis_Config_Gui *configgui) { -// 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 != NULL && strlen(config->password) != 0) - etk_entry_text_set(ETK_ENTRY(gui->password_entry), config->password); + Enhance *en; + en = enhance_new(); + + if(en==NULL) + { + fprintf(stderr, "enhance new failed\n"); + exit(1); + } + configgui->en = en; + + _emphasis_enhance_callbacks(configgui); + enhance_file_load(en, "Config", PACKAGE_DATA_DIR EMPHASIS_CONFIG_GLADE); + + configgui->window = enhance_var_get(en, "window"); + configgui->hostname = enhance_var_get(en, "hostname"); + //configgui->port = enhance_var_get(en, "port"); + configgui->password = enhance_var_get(en, "password"); + + etk_window_wmclass_set(ETK_WINDOW(configgui->window), "emphasis", "Emphasis"); } -void -cb_config_show(Etk_Object *object, void *data) +static void +_emphasis_enhance_callbacks(Emphasis_Config_Gui *configgui) { - UNUSED(object) - Emphasis_Gui *gui; - Emphasis_Config *config; + Enhance *en; - gui = data; - gui->config_gui = config_gui_init(); - config = config_load(); - config_gui_set(gui->config_gui, config); - etk_widget_show_all(gui->config_gui->window); + en = configgui->en; - 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); + enhance_callback_data_set(en, "cb_config_hide", configgui); + enhance_callback_data_set(en, "cb_config_ok" , configgui); + enhance_callback_data_set(en, "cb_config_hide", configgui); } void -cb_config_hide(Etk_Object *object, void *data) +emphasis_configgui_autoset(Emphasis_Config_Gui *configgui) { - UNUSED(object) - Emphasis_Config_Gui *gui; + Emphasis_Config *config; + + config = config_load(); + + etk_entry_text_set(ETK_ENTRY(configgui->hostname), + config->hostname); + if(config->password) + { + etk_entry_text_set(ETK_ENTRY(configgui->password), + config->password); + } - gui = data; - etk_widget_hide(ETK_WIDGET(gui->window)); + config_free(config); } void -cb_config_write(Etk_Object *object, void *data) +emphasis_configgui_save(Emphasis_Config_Gui *configgui) { - UNUSED(object) Emphasis_Config *config; - Emphasis_Gui *gui; -/* const char *port; */ config = config_load(); - gui = data; 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); */ + (char*)etk_entry_text_get(ETK_ENTRY(configgui->hostname)); config->password = - (char *) etk_entry_text_get(ETK_ENTRY(gui->config_gui->password_entry)); + (char*)etk_entry_text_get(ETK_ENTRY(configgui->password)); config_save(config); - cb_config_hide(NULL, gui->config_gui); - emphasis_try_connect(gui); + config_free(config); } - =================================================================== RCS file: /cvs/e/e17/proto/emphasis/src/bin/emphasis_config_gui.h,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- emphasis_config_gui.h 21 Jul 2006 04:05:27 -0000 1.1 +++ emphasis_config_gui.h 20 Aug 2006 22:48:49 -0000 1.2 @@ -1,46 +1,23 @@ #ifndef EMPHASIS_CONFIG_GUI_H_ #define EMPHASIS_CONFIG_GUI_H_ +#define EMPHASIS_CONFIG_GLADE "/config.glade" + +typedef struct _Emphasis_Config_Gui Emphasis_Config_Gui; struct _Emphasis_Config_Gui { - Etk_Widget *window; - Etk_Widget *vbox; - - Etk_Widget *connection_frame; - Etk_Widget *connection_vbox; - - Etk_Widget *hostname_hbox; - Etk_Widget *hostname_label; - Etk_Widget *hostname_entry; - - Etk_Widget *port_hbox; - Etk_Widget *port_label; - Etk_Widget *port_spin; - - Etk_Widget *password_hbox; - Etk_Widget *password_label; - Etk_Widget *password_entry; + Enhance *en; - Etk_Widget *buttons_box_hbox; - Etk_Widget *buttons_box_ok; - Etk_Widget *buttons_box_apply; - Etk_Widget *buttons_box_cancel; - - Etk_Widget *interface_frame; - Etk_Widget *interface_vbox; + Etk_Widget *window; + Etk_Widget *hostname; + Etk_Widget *password; + Etk_Widget *port; - Etk_Widget *rowheight_hbox; - Etk_Widget *rowheight_label; - Etk_Widget *rowheight_spin; + void *data; }; -typedef struct _Emphasis_Config_Gui Emphasis_Config_Gui; - -Emphasis_Config_Gui *config_gui_init(void); -void config_gui_set(Emphasis_Config_Gui *gui, Emphasis_Config *config); - -void cb_config_show(Etk_Object *object, void *data); -void cb_config_hide(Etk_Object *object, void *data); -void cb_config_write(Etk_Object *object, void *data); - +void emphasis_init_configgui (Emphasis_Config_Gui *configgui); +void emphasis_configgui_autoset(Emphasis_Config_Gui *configgui); +void emphasis_configgui_save (Emphasis_Config_Gui *configgui); +; #endif /* EMPHASIS_CONFIG_GUI_H_ */ =================================================================== RCS file: /cvs/e/e17/proto/emphasis/src/bin/emphasis_cover_db.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- emphasis_cover_db.c 21 Jul 2006 04:05:27 -0000 1.1 +++ emphasis_cover_db.c 20 Aug 2006 22:48:49 -0000 1.2 @@ -42,7 +42,7 @@ { emphasis_player_cover_set(gui->player, cover_path); } - emphasis_player_cover_size_set(gui->player, 100, 100); + emphasis_player_cover_size_update(gui->player); free(artist); free(album); =================================================================== RCS file: /cvs/e/e17/proto/emphasis/src/bin/emphasis_gui.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -3 -r1.7 -r1.8 --- emphasis_gui.c 21 Jul 2006 04:05:27 -0000 1.7 +++ emphasis_gui.c 20 Aug 2006 22:48:49 -0000 1.8 @@ -18,10 +18,11 @@ if(!etk_toggle_button_active_get(ETK_TOGGLE_BUTTON(gui->player->small.media))) { - etk_widget_hide_all(gui->player->media.window); + etk_widget_hide(gui->player->media.window); } gui->cover_queue = NULL; + gui->config_gui = NULL; } @@ -40,21 +41,15 @@ } /* TODO : documentation */ -/* TODO : enhanced? pfffffffffffffff */ void emphasis_init_menu(Emphasis_Gui *gui) { - gui->config_gui = malloc(sizeof(Emphasis_Config_Gui)); Emphasis_Player_Gui *player; /* playlist menu setup*/ - gui->menu = etk_menu_new(); player = gui->player; - Etk_Widget *separator, *radio_item=NULL; - - emphasis_menu_append(gui->menu, "clear", ETK_STOCK_EDIT_CLEAR, cb_playlist_clear, NULL, @@ -65,22 +60,8 @@ "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)); - - radio_item = etk_menu_item_radio_new_with_label_from_widget("full", NULL); - etk_menu_shell_append(ETK_MENU_SHELL(gui->menu), ETK_MENU_ITEM(radio_item)); - etk_signal_connect("activated", - ETK_OBJECT(radio_item), - ETK_CALLBACK(cb_switch_full), player); - radio_item = etk_menu_item_radio_new_with_label_from_widget - ("small", ETK_MENU_ITEM_RADIO(radio_item)); - etk_menu_shell_append(ETK_MENU_SHELL(gui->menu), ETK_MENU_ITEM(radio_item)); - etk_signal_connect("activated", - ETK_OBJECT(radio_item), - ETK_CALLBACK(cb_switch_small), player); - - /* Do we need all this connect ? */ + + /* Do we need all this connect ? */ etk_signal_connect("mouse_down", ETK_OBJECT(player->full.window), ETK_CALLBACK(cb_pls_contextual_menu), gui); etk_signal_connect("mouse_down", ETK_OBJECT(player->small.window), =================================================================== RCS file: /cvs/e/e17/proto/emphasis/src/bin/emphasis_media.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- emphasis_media.c 21 Jul 2006 04:05:27 -0000 1.1 +++ emphasis_media.c 20 Aug 2006 22:48:49 -0000 1.2 @@ -75,6 +75,7 @@ first_list = list; + etk_tree_freeze(tree); if (mpd_type == MPD_DATA_TYPE_TAG) { et = (Emphasis_Type) etk_object_data_get(ETK_OBJECT(tree), @@ -113,6 +114,18 @@ list = evas_list_next(list); } } + else + { + if (mpd_type == MPD_DATA_TYPE_PLAYLIST) + { + while (list) + { + data = evas_list_data(list); + etk_tree_append(tree, col, data->playlist, NULL); + list = evas_list_next(list); + } + } + } } etk_tree_thaw(tree); @@ -141,6 +154,7 @@ etk_tree_freeze(tree); row = etk_tree_first_row_get(tree); + /* LEAK : playlist and on NULL */ while (row && playlist) { data = evas_list_data(playlist); @@ -229,3 +243,19 @@ etk_tree_thaw(tree); } + + +/* Pane 3 : Playlists */ +void +emphasis_pls_list_init(Emphasis_Player_Gui *player) +{ + Etk_Tree *pls_list; + + pls_list = ETK_TREE(player->media.pls_list); + etk_tree_clear(pls_list); + emphasis_tree_mlib_append(pls_list, + (mpc_list_playlists()), + MPD_DATA_TYPE_PLAYLIST, + NULL); +} + =================================================================== RCS file: /cvs/e/e17/proto/emphasis/src/bin/emphasis_media.h,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- emphasis_media.h 21 Jul 2006 04:05:27 -0000 1.1 +++ emphasis_media.h 20 Aug 2006 22:48:49 -0000 1.2 @@ -12,4 +12,6 @@ void emphasis_tree_pls_set(Etk_Tree *tree, Evas_List *playlist); void emphasis_pls_mark_current(Etk_Tree *tree, int id); + +void emphasis_pls_list_init(Emphasis_Player_Gui *player); #endif /* EMPHASIS_MEDIA_H_ */ =================================================================== RCS file: /cvs/e/e17/proto/emphasis/src/bin/emphasis_misc.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- emphasis_misc.c 21 Jul 2006 04:05:27 -0000 1.3 +++ emphasis_misc.c 20 Aug 2006 22:48:49 -0000 1.4 @@ -250,3 +250,80 @@ i++; } } + +void +pack_in_vbox(Etk_Widget *child, void *data) +{ + Etk_Widget *vbox; + vbox = data; + etk_box_append(ETK_BOX(vbox), child, ETK_BOX_START, ETK_BOX_EXPAND_FILL, 0); +} + +void +etk_button_make_vertical(Etk_Widget *button) +{ + Etk_Widget *align; + Etk_Widget *hbox; + Etk_Widget *vbox; + + align = evas_list_data(etk_container_children_get(ETK_CONTAINER(button))); + hbox = evas_list_data(etk_container_children_get(ETK_CONTAINER(align))); + + etk_container_remove(ETK_CONTAINER(button), align); + etk_container_remove(ETK_CONTAINER(align), hbox); + + vbox = etk_vbox_new(ETK_FALSE, 0); + etk_widget_show(vbox); + etk_container_for_each_data(ETK_CONTAINER(hbox), pack_in_vbox, (void *)vbox); + etk_container_add(ETK_CONTAINER(align), vbox); + etk_container_add(ETK_CONTAINER(button), align); + + etk_widget_pass_mouse_events_set(align, ETK_TRUE); + etk_object_destroy(ETK_OBJECT(hbox)); +} + +/* Used for debug tiem to time */ +void etk_container_inspect(Etk_Container *container, int lvl, int *to_trace) +{ +#define PRINTF_TYPE_NAME(widget) printf("%s\n", \ + etk_type_name_get( \ + etk_object_object_type_get( \ + ETK_OBJECT(widget)))); + Evas_List *children; + Etk_Widget *widget; + int i = 0; + + if (lvl == 0) + PRINTF_TYPE_NAME(ETK_WIDGET(container)); + + children = etk_container_children_get(ETK_CONTAINER(container)); + + while (children) + { + widget = evas_list_data(children); + for (i=0; i<=lvl; i++) + { + if (to_trace[i]) + printf("| "); + else + printf(" "); + } + printf("'"); + printf("----"); + PRINTF_TYPE_NAME(widget); + + if ((int) sizeof(to_trace) < lvl+3) + to_trace = realloc(to_trace, sizeof(int) * (lvl+3)); + if (evas_list_next(children) && ETK_IS_CONTAINER(widget)) + to_trace[lvl+1] = 1; + else + to_trace[lvl+1] = 0; + + if (ETK_IS_CONTAINER(widget)) + { + etk_container_inspect(ETK_CONTAINER(widget), lvl+1, to_trace); + } + children = evas_list_next(children); + } +} + =================================================================== RCS file: /cvs/e/e17/proto/emphasis/src/bin/emphasis_misc.h,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- emphasis_misc.h 21 Jul 2006 04:05:27 -0000 1.3 +++ emphasis_misc.h 20 Aug 2006 22:48:49 -0000 1.4 @@ -19,5 +19,9 @@ void strescape(char *str); Evas_List *evas_list_concatenate(Evas_List *head, Evas_List *tail); +void go_in_vbox(Etk_Widget *child, void *data); +void etk_button_make_vertical(Etk_Widget *button); + +void etk_container_inspect(Etk_Container *container, int lvl, int *to_trace); /** @} */ #endif /* EMPHASIS_MISC_H_ */ =================================================================== RCS file: /cvs/e/e17/proto/emphasis/src/bin/emphasis_mpc.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -3 -r1.6 -r1.7 --- emphasis_mpc.c 21 Jul 2006 04:05:27 -0000 1.6 +++ emphasis_mpc.c 20 Aug 2006 22:48:49 -0000 1.7 @@ -24,6 +24,13 @@ timer = NULL; } + if (!mpd_server_check_version(mo, 0, 12, 0)) + { + fprintf(stderr, "Wrong server version. Emphasis require MPD 0.12.0\n"); + mpc_disconnect(); + exit(-1); + } + return timer; } @@ -473,3 +480,95 @@ { mpd_free(mo); } + +Evas_List * +mpc_list_playlists(void) +{ + MpdData *data; + Evas_List *list; + + data = mpd_database_list_playlist(mo); + list = convert_mpd_data(data); + + mpd_data_free(data); + return list; +} + +Evas_List * +mpc_get_playlist_content(char *playlist_name) +{ + MpdData *data; + Evas_List *list; + + data = mpd_database_get_playlist_content (mo, playlist_name); + list = convert_mpd_data(data); + + mpd_data_free(data); + return list; +} + +void +mpc_save_playlist(char *playlist_name) +{ + int mpd_error; + + mpd_error = mpd_database_save_playlist(mo, playlist_name); + if (mpd_error != MPD_OK) + { + if (mpd_error == MPD_DATABASE_PLAYLIST_EXIST) + { + fprintf(stderr, "A playlist with the same name already exist.\n"); + } + } +} + +void +mpc_delete_playlist(char *playlist_name) +{ + int mpd_error; + + mpd_error = mpd_database_delete_playlist(mo, playlist_name); + if (mpd_error != MPD_OK) + { + fprintf(stderr, "An error occur during the playlist deleting\n"); + } +} + +MpdData *mpd_database_list_playlist() +{ + MpdData *data = NULL; + mpd_InfoEntity *ent = NULL; + + if(!mpd_check_connected(mo)) + { + return NULL; + } + if(mpd_lock_conn(mo)) + { + return NULL; + } + + mpd_sendLsInfoCommand(mo->connection, ""); + + while((ent = mpd_getNextInfoEntity(mo->connection))) + { + if(ent->type == MPD_INFO_ENTITY_TYPE_PLAYLISTFILE) + { + data = mpd_new_data_struct_append(data); + data->type = MPD_DATA_TYPE_PLAYLIST; + data->playlist = ent->info.playlistFile->path; + ent->info.playlistFile->path=NULL; + } + mpd_freeInfoEntity(ent); + } + + mpd_finishCommand(mo->connection); + + mpd_unlock_conn(mo); + if(data == NULL) + { + return NULL; + } + return mpd_data_get_first(data); +} + =================================================================== RCS file: /cvs/e/e17/proto/emphasis/src/bin/emphasis_mpc.h,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- emphasis_mpc.h 21 Jul 2006 04:05:27 -0000 1.4 +++ emphasis_mpc.h 20 Aug 2006 22:48:49 -0000 1.5 @@ -46,6 +46,14 @@ void mpc_change_vol(int value); void mpc_database_update(void); void mpc_disconnect(void); + +Evas_List *mpc_list_playlists(void); +Evas_List *mpc_get_playlist_content(char *playlist_name); +void mpc_save_playlist(char *playlist_name); +void mpc_load_playlist(char *playlist_name); +void mpc_delete_playlist(char *playlist_name); + +MpdData *mpd_database_list_playlist(); /** @} */ #endif /* EMPHASIS_MPC_H_ */ =================================================================== RCS file: /cvs/e/e17/proto/emphasis/src/bin/emphasis_player.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- emphasis_player.c 21 Jul 2006 04:05:27 -0000 1.1 +++ emphasis_player.c 20 Aug 2006 22:48:49 -0000 1.2 @@ -1,6 +1,26 @@ #include "emphasis.h" #include "emphasis_player.h" +/* XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX */ +#ifndef EMPHASIS_LOCAL_PATH + +# if defined(__lok__) +# define EMPHASIS_LOCAL_PATH "/home/lok/projects/" +# elif defined(__any__) +# define EMPHASIS_LOCAL_PATH "./" +# elif defined(__aji__) +# define EMPHASIS_LOCAL_PATH "/home/aji/src/" +# else +# define EMPHASIS_LOCAL_PATH "./" +# endif + +#endif + +#undef ICON_TEST +#define ICON_TEST "emphasis/src/pict/haricot_eap-test3.png" +/* XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX */ + + #undef EN_VAR_GET #define EN_VAR_GET(en,root,id) \ (root)->small.id=ENHANCE_VAR_GET(en,"small_"#id);\ @@ -59,15 +79,39 @@ player->small.media = enhance_var_get(en, "small_media"); - player->media.window = enhance_var_get(en, "media_window"); - player->media.root = enhance_var_get(en, "media_root"); + player->media.window = enhance_var_get(en, "media_window"); + player->media.root = enhance_var_get(en, "media_root"); - player->media.pls = enhance_var_get(en, "media_pls"); + player->media.notebook = enhance_var_get(en, "media_notebook"); - player->media.artist = enhance_var_get(en, "media_artist"); - player->media.album = enhance_var_get(en, "media_album"); - player->media.track = enhance_var_get(en, "media_track"); + player->media.pls = enhance_var_get(en, "media_pls"); + player->media.artist = enhance_var_get(en, "media_artist"); + player->media.album = enhance_var_get(en, "media_album"); + player->media.track = enhance_var_get(en, "media_track"); + + player->media.pls_list = enhance_var_get(en, "media_pls_list"); + player->media.pls_content = enhance_var_get(en, "media_pls_content"); + + player->media.pls_entry_save = enhance_var_get(en, "media_pls_entry_save"); + + /* Mediabox buttons init */ + player->media.toolbar = enhance_var_get(en, "media_toolbar"); + player->media.button_lib = enhance_var_get(en, "media_button_lib"); + player->media.button_search = enhance_var_get(en, "media_button_search"); + player->media.button_playlists = enhance_var_get(en, "media_button_pls"); + player->media.button_stats = enhance_var_get(en, "media_button_stats"); + + /* TODO : finish the special theme + etk_widget_theme_file_set(ETK_WIDGET(player->media.button_lib), + PACKAGE_DATA_DIR "/widgets/media_tab_button.edj"); + etk_widget_theme_file_set(ETK_WIDGET(player->media.button_search), + PACKAGE_DATA_DIR "/widgets/media_tab_button.edj"); + etk_widget_theme_file_set(ETK_WIDGET(player->media.button_playlists), + PACKAGE_DATA_DIR "/widgets/media_tab_button.edj"); + etk_widget_theme_file_set(ETK_WIDGET(player->media.button_stats), + PACKAGE_DATA_DIR "/widgets/media_tab_button.edj"); + */ /* enhance completion : col def */ etk_tree_multiple_select_set(ETK_TREE(player->media.artist), ETK_TRUE); etk_tree_multiple_select_set(ETK_TREE(player->media.album) , ETK_TRUE); @@ -104,6 +148,15 @@ "Album", etk_tree_model_text_new(ETK_TREE(player->media.pls)), 120); + /* playlists page */ + etk_tree_col_new(ETK_TREE(player->media.pls_list), + "Playlists", + etk_tree_model_text_new(ETK_TREE(player->media.pls_list)), + 120); + etk_tree_col_new(ETK_TREE(player->media.pls_content), + "Preview", + etk_tree_model_text_new(ETK_TREE(player->media.pls_content)), + 120); /**/ etk_object_data_set(ETK_OBJECT(player->media.artist), "title", "Artist"); @@ -128,17 +181,22 @@ etk_signal_connect("row_clicked", ETK_OBJECT(player->media.artist), ETK_CALLBACK(cb_tree_mlib_clicked), - (void*)EMPHASIS_ARTIST); + player); etk_signal_connect("row_clicked", ETK_OBJECT(player->media.album ), ETK_CALLBACK(cb_tree_mlib_clicked), - (void*)EMPHASIS_ALBUM); + player); etk_signal_connect("row_clicked", ETK_OBJECT(player->media.track ), ETK_CALLBACK(cb_tree_mlib_clicked), - (void*)EMPHASIS_TRACK); + player); etk_signal_connect("row_clicked", ETK_OBJECT(player->media.pls ), ETK_CALLBACK(cb_tree_pls_clicked), NULL); + /* Media pls init */ + etk_object_data_set(ETK_OBJECT(player->media.pls_content), + "Emphasis_Type", + (void*)EMPHASIS_TRACK); + /* enhance complection : images */ /* TODO : use cover_haricotmagique() */ emphasis_player_cover_set(player, PACKAGE_DATA_DIR EMPHASIS_LOGO); @@ -146,13 +204,18 @@ emphasis_player_vol_image_set(player, 0, PACKAGE_DATA_DIR EMPHASIS_SOUNDL); emphasis_player_vol_image_set(player, 1, PACKAGE_DATA_DIR EMPHASIS_SOUNDR); + player->small.cover_size_w = player->small.cover->requested_size.w; + player->small.cover_size_h = player->small.cover->requested_size.h; + player->full.cover_size_w = player->full.cover->requested_size.w; + player->full.cover_size_h = player->full.cover->requested_size.h; + /* TEMP configuration, need to add this to enhance */ etk_window_wmclass_set(ETK_WINDOW(player->full.window), - "Emphasis", "emphasis"); + "emphasis", "Emphasis"); etk_window_wmclass_set(ETK_WINDOW(player->small.window), - "Emphasis", "emphasis"); + "emphasis", "Emphasis"); etk_window_wmclass_set(ETK_WINDOW(player->media.window), - "Emphasis", "emphasis"); + "emphasis", "Emphasis"); etk_container_border_width_set(ETK_CONTAINER(player->full.window), 5); } @@ -164,7 +227,7 @@ en = player->en; /* destroyed */ - enhance_callback_data_set(en, "cb_quit", player); + enhance_callback_data_set(en, "cb_quit" , player); enhance_callback_data_set(en, "cb_media_quit", player); /* clicked */ @@ -201,6 +264,21 @@ /* row_selected */ enhance_callback_data_set(en, "cb_tree_artist_selected", player); enhance_callback_data_set(en, "cb_tree_album_selected" , player); + + /* media buttonbox */ + enhance_callback_data_set(en, "cb_media_button_lib_clicked" , player); + enhance_callback_data_set(en, "cb_media_button_search_clicked" , player); + enhance_callback_data_set(en, "cb_media_button_playlists_clicked", player); + enhance_callback_data_set(en, "cb_media_button_stats_clicked" , player); + + enhance_callback_data_set(en, "cb_media_pls_list_row_clicked" , player); + enhance_callback_data_set(en, "cb_media_pls_save_clicked" , player); + enhance_callback_data_set(en, "cb_media_pls_load_clicked" , player); + enhance_callback_data_set(en, "cb_media_pls_del_clicked" , player); + + enhance_callback_data_set(en, "cb_media_pls_list_row_clicked" , player); + enhance_callback_data_set(en, "cb_tree_mlib_clicked" , player); + enhance_callback_data_set(en, "cb_media_pls_save_key_down" , player); } /* TODO : documentation */ @@ -219,6 +297,19 @@ etk_widget_size_request_set(player->full.cover , w, h); } +/* TODO : documentation */ +void +emphasis_player_cover_size_update(Emphasis_Player_Gui *player) +{ + etk_widget_size_request_set(player->small.cover, + player->small.cover_size_w, + player->small.cover_size_h); + + etk_widget_size_request_set(player->full.cover, + player->full.cover_size_w, + player->full.cover_size_h); +} + /* TODO : update doc */ /** * @brief Set the message in th textblock @@ -230,40 +321,87 @@ emphasis_player_info_set(Emphasis_Player_Gui *player, mpd_Song * song, char *msg) { - char *info; + char *info_label; + char *info_textblock; if (song) { char **table[] = {&(song->artist), &(song->title), &(song->album), NULL}; emphasis_unknow_if_null(table); - asprintf(&info, "\n<b><font size=16>%s</font></b> \n \n" - "<font size=11><i>by</i></font> <font size=13>%s</font> " - "<font size=11><i>in</i></font> <font size=13>%s</font> \n \n", - song->title, song->artist, song->album); - if (msg) + /* TEMP */ + if (!msg) { - asprintf(&info, "%s <font size=11>(%s)</font>", info, msg); + asprintf(&info_label, + "<left_margin=10>" + "<b><font_size=16>%s</font_size></b>" + "<br><br>" + "<font_size=11><i>by</i></font_size> " + "<font_size=13>%s</font_size> " + "<font_size=11><i>in</i></font_size> " + "<font_size=13>%s</font_size>" + "</left_margin>", + song->title, song->artist, song->album); + asprintf(&info_textblock, + "<b><font size=16>%s</font size></b>" + "\n\n" + "<font size=11><i>by</i></font size> " + "<font size=13>%s</font size>\n" + "<font size=11><i>in</i></font size> " + "<font size=13>%s</font size>", + song->title, song->artist, song->album); } - etk_textblock_text_set(ETK_TEXT_VIEW(player->full.info)->textblock, info, - ETK_TRUE); - etk_textblock_text_set(ETK_TEXT_VIEW(player->small.info)->textblock, info, + else + { + asprintf(&info_label, + "<left_margin=10>" + "<b><font_size=16>%s</font_size></b>" + "<br><br>" + "<font_size=11><i>by</i></font_size> " + "<font_size=13>%s</font_size> " + "<font_size=11><i>in</i></font_size> " + "<font_size=13>%s</font_size>" + "<font_size=11> (%s)</font_size>" + "</left_margin>", + song->title, song->artist, song->album, msg); + asprintf(&info_textblock, + "<b><font size=16>%s</font size></b>" + "\n\n" + "<font size=11><i>by</i></font size> " + "<font size=13>%s</font size>\n" + "<font size=11><i>in</i></font size> " + "<font size=13>%s</font size>" + "<font size=11>(%s)</font size>", + song->title, song->artist, song->album, msg); + } + + etk_label_set(ETK_LABEL(player->full.info), info_label); + etk_textblock_text_set(ETK_TEXT_VIEW(player->small.info)->textblock, + info_textblock, ETK_TRUE); - - free(info); + free(info_label); + free(info_textblock); } else { if (msg) { - asprintf(&info, "%s", msg); - etk_textblock_text_set(ETK_TEXT_VIEW(player->full.info)->textblock, - info, ETK_TRUE); + asprintf(&info_label, "%s", msg); + asprintf(&info_textblock, "%s", msg); + + etk_label_set(ETK_LABEL(player->full.info), info_label); etk_textblock_text_set(ETK_TEXT_VIEW(player->small.info)->textblock, - info, ETK_TRUE); - free(info); + info_textblock, ETK_TRUE); + + free(info_label); + free(info_textblock); + } } + + etk_textblock_object_cursor_visible_set + (ETK_TEXT_VIEW(player->small.info)->textblock->evas_objects->data, + ETK_FALSE); } /* TODO : update doc */ @@ -408,4 +546,12 @@ cb_switch_small(NULL, player); break; } +} + +void +emphasis_player_force_mode_set(Emphasis_Player_Gui *player, + Emphasis_Mode state) +{ + player->state = (state == EMPHASIS_SMALL) ? EMPHASIS_FULL : EMPHASIS_SMALL; + emphasis_player_mode_set(player, state); } =================================================================== RCS file: /cvs/e/e17/proto/emphasis/src/bin/emphasis_player.h,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- emphasis_player.h 21 Jul 2006 04:05:27 -0000 1.1 +++ emphasis_player.h 20 Aug 2006 22:48:49 -0000 1.2 @@ -4,7 +4,7 @@ #define EMPHASIS_GLADE "/emphasis.glade" -#define EMPHASIS_LOGO "/images/haricot_musique-grrrr.png" +#define EMPHASIS_LOGO "/images/haricot_musique.png" #define EMPHASIS_SOUNDL "/images/sound_low.png" #define EMPHASIS_SOUNDR "/images/sound_high.png" @@ -30,6 +30,8 @@ Etk_Widget *root; Etk_Widget *cover; + int cover_size_w; + int cover_size_h; Etk_Widget *play; Etk_Widget *stop; @@ -57,6 +59,8 @@ Etk_Widget *root; Etk_Widget *cover; + int cover_size_w; + int cover_size_h; Etk_Widget *play; Etk_Widget *stop; @@ -82,12 +86,26 @@ Etk_Widget *window; Etk_Widget *root; + Etk_Widget *button_lib; + Etk_Widget *button_search; + Etk_Widget *button_playlists; + Etk_Widget *button_stats; + + Etk_Widget *notebook; + Etk_Widget *toolbar; + + /* Pane 1 content */ Etk_Widget *pls; Etk_Widget *artist; Etk_Widget *album; Etk_Widget *track; + /* Pane 3 content */ + Etk_Widget *pls_list; + Etk_Widget *pls_content; + Etk_Widget *pls_entry_save; + Etk_Widget *drag; } media; @@ -101,6 +119,8 @@ void emphasis_player_cover_size_set(Emphasis_Player_Gui *player, int w, int h); +void emphasis_player_cover_size_update(Emphasis_Player_Gui *player); + void emphasis_player_info_set(Emphasis_Player_Gui *player, mpd_Song * song, char *msg); void emphasis_player_progress_set(Emphasis_Player_Gui *player, @@ -120,6 +140,9 @@ const char *path); void emphasis_player_mode_set(Emphasis_Player_Gui *player, Emphasis_Mode state); + +void emphasis_player_force_mode_set(Emphasis_Player_Gui *player, + Emphasis_Mode state); /** @} */ #endif /* EMPHASIS_PLAYER_H_ */ ------------------------------------------------------------------------- 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