Enlightenment CVS committal Author : lok Project : e17 Module : apps/emphasis
Dir : e17/apps/emphasis/src/bin Modified Files: emphasis_callbacks.c emphasis_callbacks.h emphasis_config_gui.c emphasis_cover_db.c emphasis_gui.c emphasis_media.c emphasis_mpc.c emphasis_mpc.h emphasis_player.c emphasis_player.h Log Message: Another aji's patch : Shuffle added. A change in the config doesn't require to relaunch emphasis anymore. Keybinding added on 'c' to clear the playlist. Keybinding added on 's' to shuffle the playlist. textblock bug solved. =================================================================== RCS file: /cvs/e/e17/apps/emphasis/src/bin/emphasis_callbacks.c,v retrieving revision 1.15 retrieving revision 1.16 diff -u -3 -r1.15 -r1.16 --- emphasis_callbacks.c 10 Jan 2007 01:12:53 -0000 1.15 +++ emphasis_callbacks.c 14 Jan 2007 19:27:43 -0000 1.16 @@ -784,7 +784,7 @@ cb_pls_contextual_menu(Etk_Object *object, Etk_Event_Mouse_Down *event, void *data) { - UNUSED(object) + UNUSED(object); Emphasis_Gui *gui; gui = data; @@ -802,21 +802,32 @@ cb_playlist_clear(Etk_Object *object, Etk_Event_Mouse_Down *event, void *data) { - UNUSED(object) - UNUSED(event) - UNUSED(data) + UNUSED(object); + UNUSED(event); + UNUSED(data); mpc_playlist_clear(); } /** + * * @brief Shuffle the playlist + */ +void +cb_playlist_shuffle(Etk_Object *object, void *data) +{ + UNUSED_CLICKED_PARAM; + + mpc_playlist_shuffle(); +} + +/** * @brief Callback function of bindings key on the playlist */ void cb_pls_bindings_key(Etk_Object *object, Etk_Event_Key_Down *event, void *data) { - UNUSED(object) + UNUSED(object); Emphasis_Player_Gui *player; Evas_List *rowlist; Evas_List *list; @@ -832,6 +843,20 @@ mpc_playlist_delete(list); } } + else if(!strcmp(event->key, "c")) + { + cb_playlist_clear(NULL,NULL,NULL); + } + else if(!strcmp(event->key, "s")) + { + cb_playlist_shuffle(NULL,NULL); + } + /* + else if(!strcmp(event->key, "u")) + { + cb_database_update(NULL, data); + } + */ } /** @@ -840,7 +865,7 @@ void cb_playlist_delete(Etk_Object *object, void *data) { - UNUSED(object) + UNUSED(object); Emphasis_Player_Gui *player; Evas_List *rowlist; Evas_List *list; @@ -859,7 +884,7 @@ void cb_database_update(Etk_Object *object, void *data) { - UNUSED(object) + UNUSED(object); Emphasis_Player_Gui *player; player = data; @@ -896,7 +921,6 @@ cb_switch_full(Etk_Object *object, void *data) { UNUSED(object); -// int x, y, w, h; Emphasis_Player_Gui *player; player = data; @@ -907,7 +931,6 @@ } player->state = EMPHASIS_FULL; -// 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); @@ -920,14 +943,12 @@ emphasis_player_toggle_full(player, ETK_TRUE); etk_widget_show(player->full.window); -// etk_window_move(ETK_WINDOW(player->full.window), x, y); } void cb_switch_small(Etk_Object *object, void *data) { UNUSED(object); -// int x, y, w, h; Emphasis_Player_Gui *player; player = data; @@ -938,7 +959,6 @@ } player->state = EMPHASIS_SMALL; -// 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); @@ -949,7 +969,6 @@ etk_widget_show(player->media.window); } etk_widget_show(player->small.window); -// etk_window_move(ETK_WINDOW(player->small.window), x, y); } void =================================================================== RCS file: /cvs/e/e17/apps/emphasis/src/bin/emphasis_callbacks.h,v retrieving revision 1.7 retrieving revision 1.8 diff -u -3 -r1.7 -r1.8 --- emphasis_callbacks.h 30 Dec 2006 13:46:38 -0000 1.7 +++ emphasis_callbacks.h 14 Jan 2007 19:27:43 -0000 1.8 @@ -50,6 +50,7 @@ void cb_pls_bindings_key(Etk_Object *object, Etk_Event_Key_Down *event, void *data); void cb_playlist_delete(Etk_Object *object, void *data); +void cb_playlist_shuffle(Etk_Object *object, void *data); void cb_database_update(Etk_Object *object, void *data); void cb_small_resize(Etk_Object *object, void *data); =================================================================== RCS file: /cvs/e/e17/apps/emphasis/src/bin/emphasis_config_gui.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -3 -r1.5 -r1.6 --- emphasis_config_gui.c 30 Dec 2006 13:46:38 -0000 1.5 +++ emphasis_config_gui.c 14 Jan 2007 19:27:43 -0000 1.6 @@ -89,18 +89,33 @@ emphasis_configgui_save(Emphasis_Config_Gui *configgui) { Emphasis_Config *config; + char *key = NULL, *value = NULL; + int reconnect = 0; config = config_load(); - if(config->hostname) { free(config->hostname); } - if(config->password) { free(config->password); } - - config->hostname = - strdup(etk_entry_text_get(ETK_ENTRY(configgui->hostname))); - config->password = - strdup(etk_entry_text_get(ETK_ENTRY(configgui->password))); - config->port = - etk_range_value_get(ETK_RANGE(configgui->port)); + if((key = config->hostname)) + { + value = strdup(etk_entry_text_get(ETK_ENTRY(configgui->hostname))); + if(strcmp(key,value)) { reconnect = 1; } + free(config->hostname); + } + config->hostname = value; + + if((key = config->password)) + { + value = strdup(etk_entry_text_get(ETK_ENTRY(configgui->password))); + if(!reconnect && strcmp(key,value)) { reconnect = 1; } + free(config->password); + } + config->password = value; + + if(!reconnect && config->port != etk_range_value_get(ETK_RANGE(configgui->port))) + { + reconnect = 1; + } + config->port = etk_range_value_get(ETK_RANGE(configgui->port)); + config->crossfade = etk_range_value_get(ETK_RANGE(configgui->xfade)); @@ -122,5 +137,13 @@ config_save(config); config_free(config); + + if(reconnect) + { + Emphasis_Gui *gui = configgui->data; + emphasis_player_cover_set(gui->player, NULL); + emphasis_player_progress_set(gui->player, 0.0, 0.001); + mpc_disconnect(); + } } =================================================================== RCS file: /cvs/e/e17/apps/emphasis/src/bin/emphasis_cover_db.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- emphasis_cover_db.c 30 Dec 2006 13:46:38 -0000 1.3 +++ emphasis_cover_db.c 14 Jan 2007 19:27:43 -0000 1.4 @@ -27,22 +27,14 @@ ci = gui->cover_queue; artist = ci->artist; - album = ci->album; + album = ci->album; strescape(artist); strescape(album); gui->cover_queue = NULL; cover_path = emphasis_cover_db_search(artist, album); - if (cover_path == NULL) - { - emphasis_player_cover_set(gui->player, - emphasis_cover_haricotmagique()); - } - else - { - emphasis_player_cover_set(gui->player, cover_path); - free(cover_path); - } + emphasis_player_cover_set(gui->player, cover_path); + if (cover_path != NULL) { free(cover_path); } emphasis_player_cover_size_update(gui->player); free(artist); @@ -51,7 +43,7 @@ } else { - usleep(500); + usleep(200); } } } =================================================================== RCS file: /cvs/e/e17/apps/emphasis/src/bin/emphasis_gui.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -3 -r1.9 -r1.10 --- emphasis_gui.c 30 Dec 2006 13:46:38 -0000 1.9 +++ emphasis_gui.c 14 Jan 2007 19:27:43 -0000 1.10 @@ -52,13 +52,15 @@ emphasis_menu_append(gui->menu, "clear", - ETK_STOCK_EDIT_CLEAR, cb_playlist_clear, NULL, + ETK_STOCK_EDIT_CLEAR , cb_playlist_clear , NULL, + "shuffle", + ETK_STOCK_APPLICATIONS_GAMES, cb_playlist_shuffle, NULL, "delete", - ETK_STOCK_EDIT_DELETE, cb_playlist_delete, player, + ETK_STOCK_EDIT_DELETE , cb_playlist_delete, player, "update", - ETK_STOCK_VIEW_REFRESH, cb_database_update, player, + ETK_STOCK_VIEW_REFRESH , cb_database_update, player, "config", - ETK_STOCK_PREFERENCES_SYSTEM, cb_config_show, gui, + ETK_STOCK_PREFERENCES_SYSTEM, cb_config_show , gui, NULL); /* Do we need all this connect ? */ =================================================================== RCS file: /cvs/e/e17/apps/emphasis/src/bin/emphasis_media.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- emphasis_media.c 30 Dec 2006 13:46:38 -0000 1.3 +++ emphasis_media.c 14 Jan 2007 19:27:43 -0000 1.4 @@ -254,10 +254,15 @@ Etk_Tree *pls_list; pls_list = ETK_TREE(player->media.pls_list); - etk_tree_clear(pls_list); + etk_tree_clear(pls_list); +#if defined(LIBMPD_0_12_4) emphasis_tree_mlib_append(pls_list, (mpc_list_playlists()), MPD_DATA_TYPE_PLAYLIST, NULL); +#else + etk_tree_append(pls_list, etk_tree_nth_col_get(pls_list, 0), + "You need libmpd 0.12.4 in order to use mpd playlists", NULL); +#endif } =================================================================== RCS file: /cvs/e/e17/apps/emphasis/src/bin/emphasis_mpc.c,v retrieving revision 1.11 retrieving revision 1.12 diff -u -3 -r1.11 -r1.12 --- emphasis_mpc.c 30 Dec 2006 13:46:38 -0000 1.11 +++ emphasis_mpc.c 14 Jan 2007 19:27:43 -0000 1.12 @@ -18,7 +18,6 @@ { mpd_send_password(mo); mpc_signal_connect_status_changed(data); - /* TODO: Destroy this time if not needed anymore */ timer = ecore_timer_add(0.2, mpc_update, NULL); } else @@ -130,6 +129,7 @@ void status_changed_callback(MpdObj * mo, ChangedStatusType what, void *data) { + static int refresh_info = 1; Emphasis_Player_Gui *player; Emphasis_Song *song = NULL; MpdState state; @@ -149,11 +149,12 @@ total_time = mpd_status_get_total_song_time(mo); emphasis_player_progress_set(player, (float) elapsed_time, total_time); /* dirty hack */ - if(!mpd_status_db_is_updating(mo)) + if(!mpd_status_db_is_updating(mo) && refresh_info) { song = mpc_playlist_get_current_song(); emphasis_player_info_set(player, song, NULL); emphasis_song_free(song); + refresh_info = 0; } } if (what & MPD_CST_UPDATING) @@ -226,6 +227,7 @@ emphasis_player_info_set(player, song, NULL); emphasis_pls_mark_current(ETK_TREE(player->media.pls), song->id); emphasis_song_free(song); + refresh_info = 1; break; case MPD_STATUS_STATE_UNKNOWN: emphasis_player_info_set(player, NULL, "wtf is that ?"); @@ -447,6 +449,15 @@ } /** + * @brief Shuffle current mpd playlist + */ +void +mpc_playlist_shuffle(void) +{ + mpd_playlist_shuffle(mo); +} + +/** * @brief Play the song with id @e id * @param id An id of one of the songs in the playlist */ @@ -664,6 +675,7 @@ void mpc_save_playlist(char *playlist_name) { +#if defined(LIBMPD_0_12_4) int mpd_error; mpd_error = mpd_database_save_playlist(mo, playlist_name); @@ -674,6 +686,9 @@ fprintf(stderr, "A playlist with the same name already exist.\n"); } } +#else + UNUSED(playlist_name); +#endif } void =================================================================== RCS file: /cvs/e/e17/apps/emphasis/src/bin/emphasis_mpc.h,v retrieving revision 1.8 retrieving revision 1.9 diff -u -3 -r1.8 -r1.9 --- emphasis_mpc.h 30 Dec 2006 13:46:38 -0000 1.8 +++ emphasis_mpc.h 14 Jan 2007 19:27:43 -0000 1.9 @@ -33,6 +33,7 @@ void mpc_playlist_delete(Evas_List *list); void mpc_playlist_clear(void); void mpc_playlist_commit(void); +void mpc_playlist_shuffle(void); void mpc_play_id(int id); void mpc_play(void); =================================================================== RCS file: /cvs/e/e17/apps/emphasis/src/bin/emphasis_player.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -3 -r1.5 -r1.6 --- emphasis_player.c 30 Dec 2006 13:46:38 -0000 1.5 +++ emphasis_player.c 14 Jan 2007 19:27:43 -0000 1.6 @@ -76,9 +76,8 @@ player->media.search_tree = enhance_var_get(en, "search_page_tree"); - 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_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 */ @@ -88,16 +87,6 @@ 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); @@ -203,8 +192,7 @@ (void*)EMPHASIS_TRACK); /* enhance complection : images */ - /* TODO : use cover_haricotmagique() */ - emphasis_player_cover_set(player, PACKAGE_DATA_DIR EMPHASIS_LOGO); + emphasis_player_cover_set(player, NULL); emphasis_player_vol_image_set(player, 0, PACKAGE_DATA_DIR EMPHASIS_SOUNDL); emphasis_player_vol_image_set(player, 1, PACKAGE_DATA_DIR EMPHASIS_SOUNDR); @@ -290,8 +278,8 @@ 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); @@ -301,6 +289,8 @@ void emphasis_player_cover_set(Emphasis_Player_Gui *player, const char *path) { + if(!path) { path = emphasis_cover_haricotmagique(); } + etk_image_set_from_file(ETK_IMAGE(player->full.cover) , path, NULL); etk_image_set_from_file(ETK_IMAGE(player->small.cover), path, NULL); } @@ -426,7 +416,7 @@ } etk_textblock_object_cursor_visible_set - (ETK_TEXT_VIEW(player->small.info)->textblock->evas_objects->data, + (evas_list_data(ETK_TEXT_VIEW(player->small.info)->textblock->evas_objects), ETK_FALSE); } @@ -543,10 +533,10 @@ /* TODO : doc */ void emphasis_player_vol_image_set(Emphasis_Player_Gui *player, - int right, + int high, const char *path) { - switch(right) + switch(high) { case 0: etk_image_set_from_file(ETK_IMAGE(player->small.sound_low), path, NULL); =================================================================== RCS file: /cvs/e/e17/apps/emphasis/src/bin/emphasis_player.h,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- emphasis_player.h 30 Dec 2006 13:46:38 -0000 1.3 +++ emphasis_player.h 14 Jan 2007 19:27:43 -0000 1.4 @@ -143,7 +143,7 @@ void emphasis_player_vol_slider_set(Emphasis_Player_Gui *player, int value); void emphasis_player_vol_image_set(Emphasis_Player_Gui *player, - int right, + int high, const char *path); void emphasis_player_mode_set(Emphasis_Player_Gui *player, Emphasis_Mode state); ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs