1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
| void creer_file_selection(GtkWidget *Bouton, gpointer data)
{
MainWindow *Widget = (MainWindow*) data;/* On récupère la structure */
FILE *repertoire = fopen("Gestion musique\\musique.fls", "w+");
gchar *chaine_fichier = NULL;
gchar m3uChemin[100] = "";
GtkFileFilter *filter;
Widget->SelectionFichier = gtk_file_chooser_dialog_new ("Choisir une/des musiques", NULL, GTK_FILE_CHOOSER_ACTION_OPEN, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, NULL);
gtk_file_chooser_set_select_multiple(GTK_FILE_CHOOSER(Widget->SelectionFichier),TRUE);
gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(Widget->SelectionFichier), "D:\\Ma musique\\");
filter = gtk_file_filter_new ();
gtk_file_filter_add_pattern (filter, "*.mp3");
gtk_file_filter_add_pattern (filter, "*.wma");
gtk_file_filter_add_pattern (filter, "*.m3u");
gtk_file_chooser_set_filter (GTK_FILE_CHOOSER (Widget->SelectionFichier),filter);
if(gtk_dialog_run (GTK_DIALOG (Widget->SelectionFichier)) == GTK_RESPONSE_ACCEPT)
{
g_slist_foreach (Widget->PlayListe, (GFunc)g_free, NULL);
gint i = 0;
gint NombreDeMusique;
Widget->PlayListe = gtk_file_chooser_get_filenames (GTK_FILE_CHOOSER (Widget->SelectionFichier));
NombreDeMusique = g_slist_length(Widget->PlayListe);
chaine_fichier = g_slist_nth_data (Widget->PlayListe, 0);
if(NombreDeMusique == 1 && strstr(chaine_fichier, ".m3u") != NULL)
{
FILE *m3u = fopen(chaine_fichier, "r");
while(fgets(m3uChemin, 100, m3u) != NULL)
{
if(strstr(m3uChemin, "/") != NULL)
{
clean(m3uChemin);
fprintf(repertoire, "%s\n", m3uChemin);
}
}
/* On ferme tout et on remet le pointeur sur NULL */
fclose(m3u), m3u = NULL;
}
else
{
/* On mets les chemins récupérés dans ma GList */
for(i = 0; i < NombreDeMusique; i++)
{
chaine_fichier = g_slist_nth_data (Widget->PlayListe, i);
fprintf(repertoire, "%s\n", chaine_fichier);
}
}
fclose(repertoire), repertoire = NULL;
g_free (chaine_fichier), chaine_fichier = NULL;
}
gtk_widget_destroy (Widget->SelectionFichier);
} |
Partager