/* $Id: edit.c,v 1.1.1.1 2000/01/30 16:39:29 benediktroth Exp $ */ #include #include #include #include #include #include #include #include #include "yamt.h" #include "edit.h" #include "clist_items.h" #include "menus.h" GtkWidget *edit_box_new( ) { GtkWidget *box; /* Browse */ GtkWidget *edit_browse_box; GtkWidget *edit_browse_scrolled_window; GtkWidget *popup; /* File */ GtkWidget *edit_file_box; /* Info */ GtkWidget *edit_file_info_frame; GtkWidget *edit_file_info_table; GtkWidget *edit_file_info_label_filename; GtkWidget *edit_file_info_buttons_select; /* Tag */ GtkWidget *edit_file_tag_frame; GtkWidget *edit_file_tag_table; /* Buttons */ GtkWidget *edit_file_buttons_box; GtkWidget *edit_file_buttons_save; GtkWidget *edit_file_buttons_play; GtkWidget *edit_file_buttons_remove; GtkWidget *edit_file_buttons_quit; GtkWidget *label; gint i; gchar *titles[] = { _("File") }; /* The box it which everything is put */ box = gtk_hbox_new( FALSE, 10); /* The Browse part */ /* --------------------------------------------------------------------- */ edit_browse_box = gtk_vbox_new( FALSE, 10 ); gtk_box_pack_start( GTK_BOX (box), edit_browse_box, FALSE, TRUE, 0 ); gtk_widget_show( edit_browse_box ); /* Create a scrolled window to pack the CList widget into */ edit_browse_scrolled_window = gtk_scrolled_window_new(NULL, NULL); gtk_widget_set_usize( GTK_WIDGET(edit_browse_scrolled_window), 250, 250); gtk_scrolled_window_set_policy( GTK_SCROLLED_WINDOW(edit_browse_scrolled_window), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_box_pack_start( GTK_BOX(edit_browse_box), edit_browse_scrolled_window, TRUE, TRUE, 0); gtk_widget_show(edit_browse_scrolled_window); /* Create the CList with two columns */ edit_browse_list = gtk_clist_new_with_titles( 1, titles ); gtk_clist_set_column_width( GTK_CLIST (edit_browse_list), 0, 250); gtk_clist_set_selection_mode( GTK_CLIST(edit_browse_list), GTK_SELECTION_EXTENDED ); /* What do do if the user (un)selects something*/ gtk_signal_connect( GTK_OBJECT (edit_browse_list), "select_row", GTK_SIGNAL_FUNC (edit_selection_made), NULL); gtk_container_add( GTK_CONTAINER(edit_browse_scrolled_window), edit_browse_list); gtk_widget_show( edit_browse_list ); /* The popup menu */ popup = popup_menu_new( GTK_CLIST(edit_browse_list), ALL_ITEMS-EDIT_ITEM ); /* Connect the popup menu to the browse list */ if( popup ) gtk_signal_connect_object ( GTK_OBJECT(edit_browse_list), "event", GTK_SIGNAL_FUNC(menu_popup), GTK_OBJECT(popup) ); /* The File part */ /* --------------------------------------------------------------------- */ edit_file_box = gtk_vbox_new( FALSE, 20 ); gtk_box_pack_start( GTK_BOX (box), edit_file_box, FALSE, TRUE, 5 ); gtk_widget_show( edit_file_box ); /************************************** INFO **************************************/ /* Frame for file info */ edit_file_info_frame = gtk_frame_new( _("File Information") ); gtk_container_set_border_width( GTK_CONTAINER(edit_file_info_frame), 4 ); gtk_box_pack_start( GTK_BOX (edit_file_box), edit_file_info_frame, TRUE, FALSE, 0 ); gtk_widget_show( edit_file_info_frame ); /* Table for file info */ edit_file_info_table = gtk_table_new( 3, 3, FALSE); gtk_container_set_border_width( GTK_CONTAINER (edit_file_info_table), 2); gtk_table_set_row_spacings( GTK_TABLE (edit_file_info_table), 5 ); gtk_table_set_col_spacings( GTK_TABLE (edit_file_info_table), 10 ); gtk_container_add( GTK_CONTAINER (edit_file_info_frame), edit_file_info_table); gtk_widget_show( edit_file_info_table ); /* File */ edit_file_info_label_filename=gtk_label_new( _("File: ") ); gtk_table_attach_defaults( GTK_TABLE (edit_file_info_table), edit_file_info_label_filename, 0, 1, 0, 1); gtk_widget_show( edit_file_info_label_filename ); edit_file_info_filename=gtk_label_new( _("[no file selected]") ); gtk_table_attach_defaults( GTK_TABLE (edit_file_info_table), edit_file_info_filename, 1, 2, 0, 1); gtk_widget_show( edit_file_info_filename ); /* The select button */ edit_file_info_buttons_select = gnome_stock_or_ordinary_button( GNOME_STOCK_PIXMAP_OPEN ); gtk_signal_connect( GTK_OBJECT (edit_file_info_buttons_select), "clicked", GTK_SIGNAL_FUNC (edit_file_select), NULL ); gtk_table_attach_defaults( GTK_TABLE (edit_file_info_table), edit_file_info_buttons_select, 2, 3, 0, 1); gtk_widget_show( edit_file_info_buttons_select ); /* Mpeg version */ edit_file_info_mpeg=gtk_label_new( _("MPEG Version") ); gtk_table_attach_defaults( GTK_TABLE (edit_file_info_table), edit_file_info_mpeg, 0, 1, 1, 2); gtk_widget_show( edit_file_info_mpeg ); /* Layer version */ edit_file_info_layer=gtk_label_new( _("Layer Version") ); gtk_table_attach_defaults( GTK_TABLE (edit_file_info_table), edit_file_info_layer, 1, 2, 1, 2); gtk_widget_show( edit_file_info_layer ); /* Mode */ edit_file_info_mode=gtk_label_new( _("Mode") ); gtk_table_attach_defaults( GTK_TABLE (edit_file_info_table), edit_file_info_mode, 2, 3, 1, 2); gtk_widget_show( edit_file_info_mode ); /* Samplerate */ edit_file_info_samplerate=gtk_label_new( _("Samplerate") ); gtk_table_attach_defaults( GTK_TABLE (edit_file_info_table), edit_file_info_samplerate, 0, 1, 2, 3); gtk_widget_show( edit_file_info_samplerate ); /* Kilobitrate */ edit_file_info_kilobitrate=gtk_label_new( _("Kilobitrate") ); gtk_table_attach_defaults( GTK_TABLE (edit_file_info_table), edit_file_info_kilobitrate, 1, 2, 2, 3); gtk_widget_show( edit_file_info_kilobitrate ); /* Duration */ edit_file_info_duration=gtk_label_new( _("Duration") ); gtk_table_attach_defaults( GTK_TABLE (edit_file_info_table), edit_file_info_duration, 2, 3, 2, 3); gtk_widget_show( edit_file_info_duration ); /************************************** TAG **************************************/ /* Frame for the id3 tag */ edit_file_tag_frame = gtk_frame_new( _("ID3 TAG") ); gtk_box_pack_start( GTK_BOX (edit_file_box), edit_file_tag_frame, TRUE, FALSE, 0 ); gtk_widget_show( edit_file_tag_frame ); /* Table for id3 tag */ edit_file_tag_table = gtk_table_new( 5, 4, FALSE); gtk_container_add( GTK_CONTAINER (edit_file_tag_frame), edit_file_tag_table); gtk_widget_show(edit_file_tag_table); /* Title */ label = gtk_label_new( _("Title: ") ); gtk_misc_set_alignment( GTK_MISC (label), 1, 0.5 ); gtk_table_attach_defaults( GTK_TABLE (edit_file_tag_table), label, 0, 1, 0, 1); gtk_widget_show( label ); edit_tag_title = gtk_entry_new_with_max_length(30); gtk_entry_set_editable( GTK_ENTRY (edit_tag_title), TRUE ); gtk_table_attach_defaults( GTK_TABLE (edit_file_tag_table), edit_tag_title, 1, 4, 0, 1); gtk_widget_show( edit_tag_title ); /* Artist */ label = gtk_label_new( _("Artist: ") ); gtk_misc_set_alignment( GTK_MISC (label), 1, 0.5 ); gtk_table_attach_defaults( GTK_TABLE (edit_file_tag_table), label, 0, 1, 1, 2); gtk_widget_show( label ); edit_tag_artist = gtk_entry_new_with_max_length(30); gtk_table_attach_defaults( GTK_TABLE (edit_file_tag_table), edit_tag_artist, 1, 4, 1, 2); gtk_widget_show( edit_tag_artist ); /* Album */ label = gtk_label_new( _("Album: ") ); gtk_misc_set_alignment( GTK_MISC (label), 1, 0.5 ); gtk_table_attach_defaults( GTK_TABLE (edit_file_tag_table), label, 0, 1, 2, 3); gtk_widget_show( label ); edit_tag_album = gtk_entry_new_with_max_length(30); gtk_table_attach_defaults( GTK_TABLE (edit_file_tag_table), edit_tag_album, 1, 4, 2, 3); gtk_widget_show( edit_tag_album ); /* Comment */ label = gtk_label_new( _("Comment: ") ); gtk_misc_set_alignment( GTK_MISC (label), 1, 0.5 ); gtk_table_attach_defaults( GTK_TABLE (edit_file_tag_table), label, 0, 1, 3, 4); gtk_widget_show( label ); edit_tag_comment = gtk_entry_new_with_max_length(30); gtk_table_attach_defaults( GTK_TABLE (edit_file_tag_table), edit_tag_comment, 1, 4, 3, 4); gtk_widget_show( edit_tag_comment ); /* Year */ label = gtk_label_new( _("Year: ") ); gtk_misc_set_alignment( GTK_MISC (label), 1, 0.5 ); gtk_table_attach_defaults( GTK_TABLE (edit_file_tag_table), label, 0, 1, 4, 5); gtk_widget_show( label ); edit_tag_year = gtk_entry_new_with_max_length(4); gtk_table_attach_defaults( GTK_TABLE (edit_file_tag_table), edit_tag_year, 1, 2, 4, 5); gtk_widget_show( edit_tag_year ); /* Genre */ label = gtk_label_new( _("Genre: ") ); gtk_misc_set_alignment( GTK_MISC (label), 1, 0.5 ); gtk_table_attach_defaults( GTK_TABLE (edit_file_tag_table), label, 2, 3, 4, 5); gtk_widget_show( label ); /* Create a new combo box */ edit_tag_genre = gtk_combo_new(); gtk_entry_set_editable( GTK_ENTRY (GTK_COMBO(edit_tag_genre)->entry), FALSE); /* Create the CList */ if (!edit_tag_genre_list) { for (i = 0; i < GENRE_MAX; i++) edit_tag_genre_list = g_list_append( edit_tag_genre_list, (gchar *) id3tag_genres_sorted[i]); edit_tag_genre_list = g_list_append(edit_tag_genre_list, ""); } /* Connect the combo and the list */ gtk_combo_set_popdown_strings(GTK_COMBO(edit_tag_genre), edit_tag_genre_list); gtk_table_attach_defaults( GTK_TABLE (edit_file_tag_table), edit_tag_genre, 3, 4, 4, 5); gtk_entry_set_text( GTK_ENTRY(GTK_COMBO (edit_tag_genre)->entry), " "); gtk_widget_show(edit_tag_genre); /************************************** BUTTONS **************************************/ /* The Box for the buttons */ edit_file_buttons_box = gtk_hbox_new( TRUE, 10 ); gtk_box_pack_start( GTK_BOX (edit_file_box), edit_file_buttons_box, TRUE, FALSE, 0 ); gtk_widget_show( edit_file_buttons_box ); /* The buttons */ edit_file_buttons_save = gnome_stock_or_ordinary_button( GNOME_STOCK_PIXMAP_SAVE ); gtk_signal_connect( GTK_OBJECT (edit_file_buttons_save), "clicked", GTK_SIGNAL_FUNC (edit_file_save), NULL ); gtk_box_pack_start( GTK_BOX (edit_file_buttons_box), edit_file_buttons_save, TRUE, TRUE, 0 ); gtk_widget_show( edit_file_buttons_save ); /* Play */ edit_file_buttons_play = gnome_stock_or_ordinary_button( _("Play") ); gtk_signal_connect( GTK_OBJECT (edit_file_buttons_play), "clicked", GTK_SIGNAL_FUNC (edit_file_play), NULL ); gtk_box_pack_start( GTK_BOX (edit_file_buttons_box), edit_file_buttons_play, TRUE, TRUE, 0 ); gtk_widget_show( edit_file_buttons_play ); /* Remove ID3 TAG */ edit_file_buttons_remove = gnome_stock_or_ordinary_button( _("Remove ID3 TAG") ); gtk_signal_connect( GTK_OBJECT (edit_file_buttons_remove), "clicked", GTK_SIGNAL_FUNC (edit_tag_remove), NULL ); gtk_box_pack_start( GTK_BOX (edit_file_buttons_box), edit_file_buttons_remove, TRUE, TRUE, 0 ); gtk_widget_show( edit_file_buttons_remove ); /* Quit */ edit_file_buttons_quit = gnome_stock_or_ordinary_button( GNOME_STOCK_PIXMAP_QUIT ); gtk_signal_connect( GTK_OBJECT (edit_file_buttons_quit), "clicked", GTK_SIGNAL_FUNC (gtk_exit), NULL ); gtk_box_pack_start( GTK_BOX (edit_file_buttons_box), edit_file_buttons_quit, TRUE, TRUE, 0 ); gtk_widget_show( edit_file_buttons_quit ); return(box); } void edit_load_properties( void ) { tree_selection_changed( NULL, NULL ); } void edit_browse_load( void ) { gchar *dir; DIR *dp; struct dirent *entry; struct stat statbuf; gchar *buffer[1][1]; gtk_clist_clear( GTK_CLIST(edit_browse_list) ); dir = g_strdup(selected_directory); if( dir == NULL ) { g_free( dir ); return; } if(dir[strlen(dir)-1]=='/') dir[strlen(dir)-1]=0; if( (dp = opendir(dir))==NULL ) { yamtlog("%s %s %s", _("edit_browse_load(): ERROR while opening "), dir); gnome_error_dialog( _("Could not open directory!") ); return; } while( (entry = readdir(dp)) != NULL ) { update_progress_bar(); chdir(dir); lstat( entry->d_name, &statbuf); if( S_ISDIR(statbuf.st_mode)) /* If it's a directory */ { continue; } else /* If it's not a directory */ { if( !mp3_is_valid(entry->d_name) ) { yamtlog("%s %s", entry->d_name, _(" NO!")); continue; } /* Add it to the list */ buffer[0][0] = entry->d_name; gtk_clist_append( GTK_CLIST(edit_browse_list), buffer[0] ); gtk_clist_sort( GTK_CLIST(edit_browse_list) ); yamtlog("%s %s", entry->d_name, _(" YO!")); } } chdir(".."); closedir(dp); g_free(dir); gtk_clist_sort( GTK_CLIST(edit_browse_list) ); } void edit_selection_made( GtkWidget *clist, gint row, gint column, GdkEventButton *event, gpointer data ) { gchar *dir; gchar *file; dir = selected_directory; gtk_clist_get_text( GTK_CLIST (clist), row, 0, &file ); edit_file_load( g_concat_dir_and_file( dir, file ) ); } int edit_file_load( gchar *dirandfile ) { gchar buffer[80]; gchar *dir; gchar *tmp; gchar *filename; gchar *foo=""; /* Separate path and filename */ filename = g_strdup( g_basename( dirandfile )) ; /* g_print("filename: %s\n", filename ); */ dir = g_strdup( dirandfile ); tmp = g_filename_pointer( dir ); *tmp = '\0'; /* g_print("dir: %s\n", dir ); */ /* If the file is in the currtently selected dir */ /* just use the filename else the whole path in the edit_info_filename label */ if( strcmp(dir, selected_directory) ) filename = dirandfile; /* Clear all fields */ gtk_label_set_text( GTK_LABEL (edit_file_info_mpeg), _("MPEG Version") ); gtk_label_set_text( GTK_LABEL (edit_file_info_layer), _("Layer Version") ); gtk_label_set_text( GTK_LABEL (edit_file_info_mode), _("Mode") ); gtk_label_set_text( GTK_LABEL (edit_file_info_samplerate), _("Samplerate") ); gtk_label_set_text( GTK_LABEL (edit_file_info_kilobitrate), _("Kilobitrate") ); gtk_label_set_text( GTK_LABEL (edit_file_info_duration), _("Duration") ); gtk_entry_set_text( GTK_ENTRY (edit_tag_title), foo ); gtk_entry_set_text( GTK_ENTRY (edit_tag_artist), foo ); gtk_entry_set_text( GTK_ENTRY (edit_tag_album), foo ); gtk_entry_set_text( GTK_ENTRY (edit_tag_comment), foo ); gtk_entry_set_text( GTK_ENTRY (edit_tag_year), foo ); gtk_entry_set_text( GTK_ENTRY(GTK_COMBO (edit_tag_genre)->entry), id3tag_get_genre(0xFF) ); yamtlog("%s %s", _("Loading "), dirandfile ); /* Filename label */ gtk_label_set_text( GTK_LABEL (edit_file_info_filename), filename ); gtk_widget_show(edit_file_info_filename); mfile.tag = id3tag_get( dirandfile ); /* If the file has no valid tag */ if( strncmp( mfile.tag.tag, "TAG", 3 ) != 0 ) { yamtlog("%s %s %s", _("Skipped "), dirandfile, _(" No valid tag!")); gnome_app_question_modal( GNOME_APP (app),_("File has no ID3 TAG. Do you want to write it?"), GTK_SIGNAL_FUNC(edit_tag_new), NULL ); return(0); } /* id3tag_show( mfile.tag ); */ get_header_data( dirandfile, &mfile.header ); mfile.mins=mfile.header.duration/60; mfile.secs=mfile.header.duration % 60; /******************************************* FILE INFO *******************************************/ /* Filename */ /* Moved to above so that edit_tag_new() can access it */ /* Mpeg Version */ sprintf( buffer, _("MPEG %i"), mfile.header.version); gtk_label_set_text( GTK_LABEL (edit_file_info_mpeg), buffer ); gtk_widget_show(edit_file_info_mpeg); /* Layer Version */ sprintf( buffer, "Layer%i", mfile.header.layer); gtk_label_set_text( GTK_LABEL (edit_file_info_layer), buffer ); gtk_widget_show(edit_file_info_layer); /* Mode */ strcpy( buffer, "Mode: "); switch(mfile.header.channels) { case SINGLE_CHANNEL: strcat( buffer, _("Single Channel") ); break; case DUAL_CHANNEL : strcat( buffer, _("Dual Channel") ); break; case JOINT_STEREO : strcat( buffer, _("Joint Stereo") ); break; case STEREO : strcat( buffer, _("Stereo") ); break; default : strcat( buffer, _("Unknown") ); break; } gtk_label_set_text( GTK_LABEL (edit_file_info_mode), buffer ); gtk_widget_show(edit_file_info_mode); /* Samplerate */ sprintf( buffer, _("%i Hz"), mfile.header.samplerate ); gtk_label_set_text( GTK_LABEL (edit_file_info_samplerate), buffer ); gtk_widget_show(edit_file_info_samplerate); /* Kilobitrate */ sprintf( buffer, _("%i Kbit/s"), mfile.header.kilobitrate ); gtk_label_set_text( GTK_LABEL (edit_file_info_kilobitrate), buffer ); gtk_widget_show(edit_file_info_kilobitrate); /* Duration */ sprintf( buffer, _("%i:%im (%i s)"), mfile.mins, mfile.secs, mfile.header.duration); gtk_label_set_text( GTK_LABEL (edit_file_info_duration), buffer ); gtk_widget_show( edit_file_info_duration ); /******************************************* ID3 TAG *******************************************/ /* Title */ gtk_entry_set_text( GTK_ENTRY (edit_tag_title), mfile.tag.title); gtk_widget_show( edit_tag_title ); /* Artist */ gtk_entry_set_text( GTK_ENTRY (edit_tag_artist), mfile.tag.artist); gtk_widget_show( edit_tag_artist ); /* Album */ gtk_entry_set_text( GTK_ENTRY (edit_tag_album), mfile.tag.album); gtk_widget_show( edit_tag_album ); /* Comment */ gtk_entry_set_text( GTK_ENTRY (edit_tag_comment), mfile.tag.comment); gtk_widget_show( edit_tag_comment ); /* Year */ gtk_entry_set_text( GTK_ENTRY (edit_tag_year), mfile.tag.year); gtk_widget_show( edit_tag_year ); /* Genre */ sprintf( buffer, id3tag_get_genre(mfile.tag.genre)); gtk_entry_set_text( GTK_ENTRY(GTK_COMBO (edit_tag_genre)->entry), buffer ); gtk_widget_show(edit_tag_genre); /******************************************* E N D *******************************************/ g_free( filename ); g_free( dir ); return(1); } int edit_tag_new( gint reply, gpointer *data ) { gchar *filename; gchar *title; gchar *tmp; struct id3tag tag; if( reply == 0 ) /* Yes was selected */ { gtk_label_get( GTK_LABEL (edit_file_info_filename), &filename ); /* If we got only the filename use the selected_directory variable */ tmp = g_filename_pointer( filename ); if( tmp > 0 ) filename = g_concat_dir_and_file( selected_directory, filename ); /* Create a new tag for this file */ tag = id3tag_get_from_filename( filename, "Artist", "Title", '-', FALSE ); if( !id3tag_is_valid( tag ) ) { /* The file seems to be not in the 'foo - bar.mp3' format */ /* So use the filename without the extension as the title */ title = g_strdup(g_basename(filename)); tmp = strrchr(title,'.'); *tmp=0; strncpy( tag.title, title, 30 ); g_free( title ); strcpy( tag.tag, "TAG" ); } yamtlog("%s %s", _("Writing new TAG to "), filename); id3tag_set( filename, tag ); edit_file_load( filename ); } else gtk_label_set_text( GTK_LABEL (edit_file_info_filename), _("[no file selected]") ); return(1); } int edit_file_save( void ) { gchar *filename; gchar *buffer; gchar *tmp; gtk_label_get( GTK_LABEL (edit_file_info_filename), &filename ); if( !strcmp( filename, ("[no file selected]") ) ) { yamtlog("%s", "No file selected!"); return(0); } /* If we got only the filename use the selected_directory variable */ tmp = g_filename_pointer( filename ); if( tmp > 0 ) filename = g_concat_dir_and_file( selected_directory, filename ); yamtlog("%s %s", _("Saving "), filename); /* Title */ buffer = gtk_entry_get_text( GTK_ENTRY (edit_tag_title) ); /* To get sure the tag will be deleted */ if( buffer[0] == '\0' ) { buffer[0]=' '; buffer[1]='\0'; } strcpy( mfile.tag.title, buffer ); strcpy( mfile.tag.comment, (buffer[0] == '\0') ? " " : buffer ); /* Artist */ buffer = gtk_entry_get_text( GTK_ENTRY (edit_tag_artist) ); if( buffer[0] == '\0' ) { buffer[0]=' '; buffer[1]='\0'; } strcpy( mfile.tag.artist, buffer ); strcpy( mfile.tag.comment, (buffer[0] == '\0') ? " " : buffer ); /* Album */ buffer = gtk_entry_get_text( GTK_ENTRY (edit_tag_album) ); if( buffer[0] == '\0' ) { buffer[0]=' '; buffer[1]='\0'; } strcpy( mfile.tag.album, buffer ); strcpy( mfile.tag.comment, (buffer[0] == '\0') ? " " : buffer ); /* Comment */ buffer = gtk_entry_get_text( GTK_ENTRY (edit_tag_comment) ); strcpy( mfile.tag.comment, (buffer[0] == '\0') ? " " : buffer ); /* Year */ buffer = gtk_entry_get_text( GTK_ENTRY (edit_tag_year) ); strcpy( mfile.tag.year, (buffer[0] == '\0') ? " " : buffer ); /* Genre */ mfile.tag.genre = id3tag_lookup_genre( gtk_entry_get_text(GTK_ENTRY ( GTK_COMBO(edit_tag_genre)->entry) ) ); /* id3tag_show( mfile.tag ); */ id3tag_set( filename, mfile.tag ); return(1); } void edit_file_close( void ) { gchar *buffer=""; /* Filename */ gtk_label_set_text( GTK_LABEL (edit_file_info_filename), _("[no file selected]") ); /* Mpeg version */ gtk_label_set_text( GTK_LABEL (edit_file_info_mpeg), _("MPEG Version") ); /* Layer version */ gtk_label_set_text( GTK_LABEL (edit_file_info_layer), _("Layer Version") ); /* Mode */ gtk_label_set_text( GTK_LABEL (edit_file_info_mode), _("Mode") ); /* Samplerate */ gtk_label_set_text( GTK_LABEL (edit_file_info_samplerate), _("Samplerate") ); /* Kilobitrate */ gtk_label_set_text( GTK_LABEL (edit_file_info_kilobitrate), _("Kilobitrate") ); /* Duration */ gtk_label_set_text( GTK_LABEL (edit_file_info_duration), _("Duration") ); /* Title */ gtk_entry_set_text( GTK_ENTRY (edit_tag_title), buffer ); /* Artist */ gtk_entry_set_text( GTK_ENTRY (edit_tag_artist), buffer ); /* Album */ gtk_entry_set_text( GTK_ENTRY (edit_tag_album), buffer ); /* Comment */ gtk_entry_set_text( GTK_ENTRY (edit_tag_comment), buffer ); /* Year */ gtk_entry_set_text( GTK_ENTRY (edit_tag_year), buffer ); /* Genre */ gtk_entry_set_text( GTK_ENTRY(GTK_COMBO (edit_tag_genre)->entry), id3tag_get_genre(0xFF) ); gtk_clist_unselect_all( GTK_CLIST(edit_browse_list) ); yamtlog("%s", _("Closed")); } int edit_tag_remove( void ) { gchar *dirandfile; gchar *tmp; gtk_label_get( GTK_LABEL (edit_file_info_filename), &dirandfile ); /* If we got only the filename use the selected_directory variable */ tmp = g_filename_pointer( dirandfile ); if( tmp > 0 ) dirandfile = g_concat_dir_and_file( selected_directory, dirandfile ); yamtlog("%s %s", _("Removing TAG of "), dirandfile); if( (id3tag_remove( dirandfile )) < 1 ) gnome_error_dialog( _("Failed Removing the TAG!") ); g_free( dirandfile ); edit_file_close( ); return(1); } void edit_file_play( void ) { gchar *dirandfile; gchar *tmp; gtk_label_get( GTK_LABEL (edit_file_info_filename), &dirandfile ); /* If we got only the filename use the selected_directory variable */ tmp = g_filename_pointer( dirandfile ); if( tmp > 0 ) dirandfile = g_concat_dir_and_file( selected_directory, dirandfile ); yamtlog("%s %s", _("Playing "), dirandfile); play_file( dirandfile ); g_free( dirandfile ); } void edit_file_select( void ) { GtkWidget *filew; filew = gtk_file_selection_new( _("Select a MP3 FILE") ); gtk_file_selection_set_filename( GTK_FILE_SELECTION (filew), prop_mp3_dir ); gtk_signal_connect( GTK_OBJECT (filew), "destroy", GTK_SIGNAL_FUNC (gtk_widget_destroy), filew); /* Connect the ok buton to load_file */ gtk_signal_connect( GTK_OBJECT (GTK_FILE_SELECTION (filew)->ok_button), "clicked", GTK_SIGNAL_FUNC (edit_lf), filew); gtk_signal_connect( GTK_OBJECT (GTK_FILE_SELECTION (filew)->ok_button), "clicked", GTK_SIGNAL_FUNC (destroy), filew); /* Connect the cancel buton to destroy */ gtk_signal_connect( GTK_OBJECT (GTK_FILE_SELECTION (filew)->cancel_button), "clicked", GTK_SIGNAL_FUNC (destroy), filew); gtk_widget_show(filew); } void edit_lf( GtkWidget *widget, GtkFileSelection *file_selection ) { gchar *filename=gtk_file_selection_get_filename( GTK_FILE_SELECTION (file_selection)); gtk_clist_unselect_all( GTK_CLIST(edit_browse_list) ); edit_file_load( filename ); }