Callbacks


Functions

Etk_Bool cb_quit (Etk_Object *object, void *data)
 Quit the main loop.
void cb_button_stop_clicked (Etk_Object *object, void *data)
 Stop the playing.
void cb_button_prev_clicked (Etk_Object *object, void *data)
 Re-play the song from the start or play the previous song.
void cb_button_play_clicked (Etk_Object *object, void *data)
 Toggle play/pause the current song.
void cb_button_next_clicked (Etk_Object *object, void *data)
 Play the next song.
void cb_toggle_random (Etk_Object *object, void *data)
 Toggle the random mode.
void cb_toggle_repeat (Etk_Object *object, void *data)
 Toggle the repeat mode.
void cb_seek_time (Etk_Object *object, Etk_Event_Mouse_Down *event, void *data)
 Seek in the song the same percent position than the progress bar click.
void cb_vol_slider_value_changed (Etk_Object *object, double value, void *data)
 Changed the mpd output volume level.
void cb_tree_artist_selected (Etk_Object *object, Etk_Tree_Row *row, void *data)
 Get the name of the selected artists, search for his albums. And set the album tree with.
void cb_tree_album_selected (Etk_Object *object, Etk_Tree_Row *row, void *data)
 Get the selected albums and search for songs wich matches with these albums. Then set the tree track with that stuff.
void cb_drag_artist (Etk_Object *object, void *data)
 Set a drag widget from a list of artist selected.
void cb_drag_album (Etk_Object *object, void *data)
 Set a drag widget from a list of albums selected.
void cb_drag_track (Etk_Object *object, void *data)
 Set a drag widget from a list of selected song's row.
void cb_drop_song (Etk_Object *object, void *event, void *data)
 Get the playlist draged. Add it to the current playlist. And set the playlist tree up to date.
void cb_tree_mlib_clicked (Etk_Object *object, Etk_Tree_Row *row, Etk_Event_Mouse_Down *event, void *data)
 Double-click on a row add the artist's song to the playlist.
void cb_tree_pls_clicked (Etk_Object *object, Etk_Tree_Row *row, Etk_Event_Mouse_Down *event, void *data)
 Play the song double-clicked.
void cb_mlib_bindings_key (Etk_Object *object, Etk_Event_Key_Down *event, void *data)
 Fast find in mlib tree.
void cb_pls_contextual_menu (Etk_Object *object, Etk_Event_Mouse_Down *event, void *data)
 If right-clicked: popdown the contextual menu on the playlist.
void cb_playlist_clear (Etk_Object *object, Etk_Event_Mouse_Down *event, void *data)
 Clear the playlist.
void cb_pls_bindings_key (Etk_Object *object, Etk_Event_Key_Down *event, void *data)
 Callback function of bindings key on the playlist.
void cb_playlist_delete (Etk_Object *object, void *data)
 Delete all the selected item from the playlist.
void cb_playlist_shuffle (Etk_Object *object, void *data)
 Shuffle the playlist.
void cb_database_update (Etk_Object *object, void *data)
 Request an database update.

Function Documentation

void cb_drag_album ( Etk_Object *  object,
void *  data 
)

Set a drag widget from a list of albums selected.

Parameters:
data An Emphasis_Gui
00446 {
00447 #if 0
00448   Etk_Widget *drag_menu, *menu_item;
00449   Etk_Drag *drag;
00450   Etk_Tree *tree;
00451   Evas_List *rowlist;
00452   char **album;
00453   const char **types;
00454   unsigned int num_types;
00455   Evas_List *playlist = NULL, *tmplist;
00456 
00457   if(!data) return;
00458 
00459   tree = ETK_TREE(object);
00460   drag = ETK_DRAG((ETK_WIDGET(object))->drag);
00461   rowlist = etk_tree_selected_rows_get(tree);
00462 
00463   drag_menu = etk_menu_new();
00464 
00465   while (rowlist)
00466     {
00467       album = etk_tree_row_data_get(evas_list_data(rowlist));
00468       if (album != NULL)
00469         {
00470           tmplist = mpc_mlib_track_get(album[1], album[0]);
00471 
00472           if (album[0])
00473             {
00474               menu_item = etk_menu_item_new_with_label(album[0]);
00475             }
00476           else
00477             {
00478               menu_item = etk_menu_item_new_with_label(LABEL_MLIB_ALL);
00479             }
00480 
00481           etk_menu_shell_append(ETK_MENU_SHELL(drag_menu),
00482                                 ETK_MENU_ITEM(menu_item));
00483           if (!playlist)
00484             {
00485               playlist = tmplist;
00486             }
00487           else
00488             {
00489               playlist = evas_list_concatenate(playlist, tmplist);
00490             }
00491           rowlist = evas_list_next(rowlist);
00492         }
00493       else
00494         {
00495           Etk_Tree_Row *row;
00496 
00497           row = etk_tree_first_row_get(tree);
00498           row = etk_tree_row_next_get(row);
00499           rowlist = evas_list_free(rowlist);
00500           rowlist = NULL;
00501           emphasis_list_free(playlist);
00502           playlist = NULL;
00503           while (row)
00504             {
00505               rowlist = evas_list_append(rowlist, row);
00506               row = etk_tree_row_next_get(row);
00507             }
00508         }
00509     }
00510 
00511   types = calloc(1, sizeof(char));
00512   if(!types) return;
00513   num_types = 1;
00514   types[0] = strdup("Emphasis_Playlist");
00515 
00516   etk_drag_types_set(drag, types, num_types);
00517   etk_drag_data_set(drag, playlist, 1);
00518 
00519   etk_container_add(ETK_CONTAINER(drag), drag_menu);
00520 
00521   ((Emphasis_Player_Gui*)data)->media.drag = ETK_WIDGET(drag);
00522 #endif
00523 }

void cb_drag_artist ( Etk_Object *  object,
void *  data 
)

Set a drag widget from a list of artist selected.

Parameters:
data A common drag widget
00377 {
00378 #if 0
00379   Etk_Widget *drag_menu, *menu_item;
00380   Etk_Drag *drag;
00381   Etk_Tree *tree;
00382   Evas_List *rowlist, *next;
00383   char *artist;
00384   const char **types;
00385   unsigned int num_types;
00386   Evas_List *playlist = NULL, *tmplist;
00387 
00388   if(!data) return;
00389 
00390   tree = ETK_TREE(object);
00391   drag = ETK_DRAG((ETK_WIDGET(tree))->drag);
00392   rowlist = etk_tree_selected_rows_get(tree);
00393 
00394   drag_menu = etk_menu_new();
00395 
00396   while(rowlist)
00397     {
00398       artist = etk_tree_row_data_get(evas_list_data(rowlist));
00399       tmplist = mpc_mlib_track_get(artist, NULL);
00400       
00401       if(artist)
00402         {
00403           menu_item = etk_menu_item_new_with_label(artist);
00404         }
00405       else
00406         {
00407           menu_item = etk_menu_item_new_with_label(LABEL_MLIB_ALL);
00408         }
00409 
00410       etk_menu_shell_append(ETK_MENU_SHELL(drag_menu),
00411                             ETK_MENU_ITEM(menu_item));
00412 
00413       if(!playlist)
00414         {
00415           playlist = tmplist;
00416         }
00417       else
00418         {
00419           playlist = evas_list_concatenate(playlist, tmplist);
00420         }
00421       
00422       next = evas_list_next(rowlist);
00423       rowlist = next;
00424     }
00425   evas_list_free(rowlist);
00426 
00427   types = calloc(1, sizeof(char));
00428   if(!types) return;
00429   num_types = 1;
00430   types[0] = strdup("Emphasis_Playlist");
00431 
00432   etk_drag_types_set(drag, types, num_types);
00433   etk_drag_data_set(drag, playlist, 1);
00434 
00435   etk_container_add(ETK_CONTAINER(drag), drag_menu);
00436   ((Emphasis_Player_Gui*)data)->media.drag = ETK_WIDGET(drag);
00437 #endif
00438 }

void cb_drag_track ( Etk_Object *  object,
void *  data 
)

Set a drag widget from a list of selected song's row.

Parameters:
data A drag widget
Note:
this callback will set the data's drag and the object's drag
00532 {
00533 #if 0
00534   Etk_Widget *drag_menu, *menu_item;
00535   Etk_Drag *drag;
00536   Etk_Tree *tree;
00537   Evas_List *rowlist;
00538   char *title;
00539   const char **types;
00540   unsigned int num_types;
00541   Evas_List *playlist;
00542 
00543   if(!data) return;
00544 
00545   tree = ETK_TREE(object);
00546   drag = ETK_DRAG((ETK_WIDGET(object))->drag);
00547 
00548   drag_menu = etk_menu_new();
00549 
00550   rowlist = etk_tree_selected_rows_get(tree);
00551   playlist = convert_rowlist_in_playlist_with_file(rowlist);
00552   while (rowlist)
00553     {
00554       etk_tree_row_fields_get(evas_list_data(rowlist),
00555                               etk_tree_nth_col_get(tree, 0), &title, NULL);
00556 
00557       menu_item = etk_menu_item_new_with_label(title);
00558       etk_menu_shell_append(ETK_MENU_SHELL(drag_menu),
00559                             ETK_MENU_ITEM(menu_item));
00560 
00561       rowlist = evas_list_next(rowlist);
00562     }
00563 
00564   types = calloc(1, sizeof(char));
00565   if(!types) return;
00566   num_types = 1;
00567   types[0] = strdup("Emphasis_Playlist");
00568 
00569   etk_drag_types_set(drag, types, num_types);
00570   etk_drag_data_set(drag, playlist, 1);
00571 
00572   etk_tree_row_fields_get(evas_list_data(rowlist),
00573                           etk_tree_nth_col_get(tree, 0), &title, NULL);
00574 
00575   etk_container_add(ETK_CONTAINER(drag), drag_menu);
00576 
00577   ((Emphasis_Player_Gui*)data)->media.drag = ETK_WIDGET(drag);
00578 #endif
00579 }

void cb_drop_song ( Etk_Object *  object,
void *  event,
void *  data 
)

Get the playlist draged. Add it to the current playlist. And set the playlist tree up to date.

Parameters:
data A drag widget with a playlist in his data
00588 {
00589 #if 0
00590   UNUSED(event)
00591   Etk_Tree *tree;
00592   Etk_Drag *drag;
00593   Evas_List *list;
00594 
00595   if(!data) return;
00596 
00597   tree = ETK_TREE(object);
00598 
00599   drag = ETK_DRAG(((Emphasis_Player_Gui*)data)->media.drag);
00600   if (drag == NULL ||
00601       drag->types == NULL ||
00602       drag->types[0] == NULL || 
00603       strcmp("Emphasis_Playlist", drag->types[0]))
00604     {
00605       return;
00606     }
00607   
00608   list = drag->data;
00609   mpc_playlist_add(list);
00610 
00611   free(drag->types[0]);
00612   free(drag->types);
00613 
00614   /*
00615      Etk_Widget *wid;
00616      Evas_List *evaslist;
00617      evaslist = etk_container_children_get(ETK_CONTAINER(drag));
00618      while (evaslist)
00619      {
00620      etk_container_remove(evas_list_data(evaslist));
00621      etk_object_destroy(ETK_OBJECT(evas_list_data(evaslist)));
00622      evaslist = evas_list_next(evaslist);
00623      }
00624    */
00625 #endif
00626 }

void cb_playlist_shuffle ( Etk_Object *  object,
void *  data 
)

Shuffle the playlist.

*

00904 {
00905   UNUSED_CLICKED_PARAM;
00906   
00907   mpc_playlist_shuffle();
00908 }


Generated on Sat Apr 7 19:19:38 2007 for Emphasis by  doxygen 1.4.7