xcfa-4.3.6/0000755000175000017500000000000012224542443007450 500000000000000xcfa-4.3.6/glade/0000755000175000017500000000000012224542445010526 500000000000000xcfa-4.3.6/glade/Makefile.am0000644000175000017500000000026211525453100012472 00000000000000# # glade/Makefile.am # AUTOMAKE_OPTIONS= gnu EXTRA_DIST = xcfa.glade gladedir = $(datadir)/xcfa/glade glade_DATA = xcfa.glade uninstall: rm -rf "$(DESTDIR)$(datadir)/xcfa/"; xcfa-4.3.6/glade/xcfa.glade0000644000175000017500000344774112102742320012376 00000000000000 800 520 GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_MOTION_MASK | GDK_BUTTON1_MOTION_MASK | GDK_BUTTON2_MOTION_MASK | GDK_BUTTON3_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_FOCUS_CHANGE_MASK | GDK_STRUCTURE_MASK | GDK_PROPERTY_CHANGE_MASK | GDK_VISIBILITY_NOTIFY_MASK | GDK_PROXIMITY_IN_MASK | GDK_PROXIMITY_OUT_MASK | GDK_SUBSTRUCTURE_MASK | GDK_SCROLL_MASK all True vertical True True Fichier True True Quitter True True Outils True True True Visibilite des champs True True Aide True True A propos True False False 0 776 528 True True True 5 vertical True True 5 0 in True True True 5 True 0 True True False 5 True 0 0 True 2 True gtk-cdrom False False 0 True Lecture True False False 1 False False 1 True <b>Choix du peripherique / Lecture du DVD</b> True False False 0 True 5 0 in True True 5 button1 True True False True 0 True <b> Destination des fichiers </b> True 1 True 5 0 in True True 5 True True False True gtk-save 0 True <b> Eject </b> True False False 2 False False 0 True True 5 automatic automatic in 5 1 True True True 0 in True 5 True 5 True True <b> Normaliser </b> True False False 5 0 True 0 in True True True True False 5 True 0 0 True 2 True gtk-undo False False 0 True Deplier True False False 1 False False 0 True True False 5 True 0 0 True 2 True gtk-redo False False 0 True Replier True False False 1 False False 1 True True False False 5 1 True 0 in True 5 True 5 True True 5 0 True True 5 1 True <b> Vers 2CH: Sub / Ambiance </b> True False False 5 2 True 0 in True True True False 5 True 0 0 True 2 True gtk-execute False False 0 True Extraire True False False 1 True True False False 3 False False 0 False False 2 True DVD False True 5 vertical True True 5 0 in True True True 5 True liststore10 0 0 True True False 5 True 0 0 True 2 True gtk-cdrom False False 0 True Lecture True False False 1 False False 1 True <b>Choix du peripherique / Lecture du CD</b> True False False 0 True 5 0 in True True 5 button1 True True False True 0 True <b> Destination des fichiers </b> True 1 True 5 0 in True True 5 True True False True 0 0 True 2 True gtk-save False False 0 True True False False 1 0 True <b> Eject </b> True False False 2 False False 0 True True 5 automatic automatic in 5 1 True True True True True True 4 4 True 0 <i>Titre:</i> True GTK_FILL True 0 <i>Album:</i> True 1 2 GTK_FILL True 0 <i>Artiste:</i> True 2 3 GTK_FILL True 0 <i>Annee:</i> True 2 3 GTK_FILL True 0 <i>Genre:</i> True 2 3 1 2 GTK_FILL True 0 <i>Piste:</i> True 2 3 2 3 GTK_FILL True 0 <i>*.m3u et xspf:</i> True 2 3 3 4 GTK_FILL True True 1 2 True True 1 2 1 2 True True 1 2 2 3 True True 1 2 3 4 True True adjustment8 1 3 4 GTK_FILL True True adjustment7 1 3 4 2 3 GTK_FILL True True 3 4 3 4 GTK_FILL True True True False False 0 True True True True gtk-info 1 3 4 1 2 GTK_FILL True 0 <i>Commentaire:</i> True 3 4 GTK_FILL True Modification des tags Freedb False True vertical True %a [ %a="Artist" ] %b [ %b="Album" ] %Tl - Tetsumaki lower Transforme la chaine en minuscule sauf le premier caractere. Dans le champs 'Titre' depuis [ Modification des tags FreeDB ], le ou les caracteres devant etre conserves doivent etre precedes par le caractere % <b>%a</b> - artiste <b>%b</b> - titre de l'album <b>%c</b> - numero de la piste <b>%d</b> - titre de la chanson <b>%e</b> - annee <b>%g</b> - genre <b>%f</b> - creation d'un fichier *.m3u et *.xspf <b>%na</b> - <b>n</b>o <b>a</b>ccent <b>%u</b> - remplacement de caracteres: <b>%u(AB=C) %u( =_) %Tl</b> - <b>T</b>etsumaki <b>l</b>ower True 0 True True False False 1 1 True Arrangement des titres du CD 1 False True True True 0 in True True vertical True Creation d'un fichier unique au format: True True False True True False False 0 True True 1 False False 0 True True et dont le nom sera: False False 0 True True 1 1 Ecriture du fichier cue True True False True True False False 2 True <b> Au moins deux selections colonne Wav </b> True 0 True 0 in True True vertical True Creation d'un fichier cue unique depuis une lecture du cd audio False False 0 True True True False True 0 0 True 2 True gtk-cdrom False False 0 True Creation fichier cue uniquement True False False 1 False 0 False False 1 True <b> Creation Cue cd </b> True 1 5 0 2 True Creation d'un fichier unique 2 False True <b>Gestion des tags, titres et fichiers cue</b> True False False 5 2 True True True True 5 0 in True 5 True True <b> Normaliser </b> True 0 True 5 0 in True True 5 5 True 5 True liststore9 0 0 True 5 5 140 True True definit le serveur a contacter pour les recherches titre 1 70 True 5 5 True True False 2 True True False Parametres par defaut True 0 0 True 2 True gtk-refresh False False 0 True True False False 1 3 True <b> Serveur </b> True 1 False False 0 True 5 0 in True 5 True Choix parmis les differentes bases de donnees pour le CD. liststore12 0 True 0.4699999988079071 <b>DiscId</b> True False False 1 True 5 0 in True 5 5 True True True 5 True 0 0 True 2 True gtk-execute False False 0 True Extraire True False False 1 True True False 2 False False 0 True True True label_duree_cd True center 0 True True label_titre_cd True center True 1 0 False False 1 False 3 1 True CD 1 False True 5 vertical True True 5 0 in True 5 True True False True 0 0 True 2 True gtk-open False False 0 True True False False 1 True <b> Importer </b> True False False 0 True 5 0 in True 5 True True True True 0 True <b> Destination des conversions </b> True 1 True 5 0 in True 5 True True False True 0 0 True 2 True gtk-clear False False 0 True True False False 1 True <b> Nettoyer </b> True False False 2 False False 0 True True True bottom True vertical True True True automatic automatic in 0 True 5 vertical True True 0 True 1 True True False 5 True 0 0 True 2 True gtk-execute False False 0 True Appliquer les modifications True False False 1 False False 2 False False 0 True True 5 True liststore8 0 False False 0 True <b> Normalise: </b> True False False 1 True 5 True False False 2 True <b> Choix niveau dBFS: </b> True False False 3 True True adjustment6 1 False False 4 False False 1 True 2 False 1 True Fichiers False True vertical True True True automatic automatic in 0 True True 0 True True True 5 True 0 0 True 2 True gtk-execute False False 0 True Appliquer les modifications True False False 1 False 1 False 1 1 True Wav 1 False True vertical True True True automatic automatic in 5 0 True True 0 True True True 5 True 0 0 True 2 True gtk-execute False False 0 True Appliquer True False False 1 False False 1 True True True 5 True 0 0 True 2 True gtk-clear False False 0 True Effacer True False False 1 False False 2 False False 1 2 False True Mp3-Ogg 2 False True vertical True True True automatic automatic in 0 True 5 True True 4 4 True 0 Titre: GTK_FILL True 0 Album: 1 2 GTK_FILL True 0 Artiste: 2 3 GTK_FILL True 0 Commentaire: 3 4 GTK_FILL True 0 Annee: 2 3 GTK_FILL True 0 Genre: 2 3 1 2 GTK_FILL True 0 Piste: 2 3 2 3 GTK_FILL True 0 Modif.: 2 3 3 4 GTK_FILL True True 1 2 True True 1 2 1 2 True True 1 2 2 3 True True 1 2 3 4 True True adjustment4 1 3 4 2 3 GTK_FILL GTK_FILL True True adjustment3 1 3 4 GTK_FILL GTK_FILL True True <b>0</b> True 0 True True False True 0 0 True 2 True gtk-execute False False 0 True Appliquer True False False 1 False False 1 3 4 3 4 GTK_FILL GTK_FILL True True 3 4 1 2 GTK_FILL GTK_FILL False 0 False 1 3 True Tags 3 False 0 1 2 True Fichiers 2 False True vertical True True 5 0 in True 5 True True False True 0 0 True 2 True gtk-open False False 0 True True False False 1 True <b> Importer </b> True False False 0 True 5 0 in True 5 True button1 True True False True 0 True <b> Destination des fichiers </b> True 1 False False 0 True 5 vertical True True 18 True gnome-stock-blank False 0 True True GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_MOTION_MASK | GDK_BUTTON1_MOTION_MASK | GDK_BUTTON2_MOTION_MASK | GDK_BUTTON3_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_FOCUS_CHANGE_MASK | GDK_STRUCTURE_MASK | GDK_PROPERTY_CHANGE_MASK | GDK_VISIBILITY_NOTIFY_MASK | GDK_PROXIMITY_IN_MASK | GDK_PROXIMITY_OUT_MASK | GDK_SUBSTRUCTURE_MASK | GDK_SCROLL_MASK 18 True GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_MOTION_MASK | GDK_BUTTON1_MOTION_MASK | GDK_BUTTON2_MOTION_MASK | GDK_BUTTON3_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_FOCUS_CHANGE_MASK | GDK_STRUCTURE_MASK | GDK_PROPERTY_CHANGE_MASK | GDK_VISIBILITY_NOTIFY_MASK | GDK_PROXIMITY_IN_MASK | GDK_PROXIMITY_OUT_MASK | GDK_SUBSTRUCTURE_MASK | GDK_SCROLL_MASK gnome-stock-blank False 1 True queue none True GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_MOTION_MASK | GDK_BUTTON1_MOTION_MASK | GDK_BUTTON2_MOTION_MASK | GDK_BUTTON3_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_FOCUS_CHANGE_MASK | GDK_STRUCTURE_MASK | GDK_PROPERTY_CHANGE_MASK | GDK_VISIBILITY_NOTIFY_MASK | GDK_PROXIMITY_IN_MASK | GDK_PROXIMITY_OUT_MASK | GDK_SUBSTRUCTURE_MASK | GDK_SCROLL_MASK all True True True True True GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_MOTION_MASK | GDK_BUTTON1_MOTION_MASK | GDK_BUTTON2_MOTION_MASK | GDK_BUTTON3_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_FOCUS_CHANGE_MASK | GDK_STRUCTURE_MASK | GDK_PROPERTY_CHANGE_MASK | GDK_VISIBILITY_NOTIFY_MASK | GDK_PROXIMITY_IN_MASK | GDK_PROXIMITY_OUT_MASK | GDK_SUBSTRUCTURE_MASK | GDK_SCROLL_MASK all gnome-stock-blank 2 True True True never True False 3 1 True True True 0 in True True vertical True True False Lecture de 5 secondes apres le marqueur de debut True 0 0 True 2 True gtk-goto-last False False 0 True True False False 1 False 0 True Index de debut 00h00m00s True False 5 1 True True False 0 True 0 in True True vertical True True True True False lecture True 0 0 True 2 True gtk-media-play False False 0 True True False False 1 False 0 True True False Pause True 0 0 True 2 True gtk-media-pause False False 0 True True False False 1 False 1 False False 0 True Index de lecture label False 5 1 True True False 1 True 0 in True True vertical True True False Lecture de 5 secondes avant le marqueur de fin True 0 0 True 2 True gtk-goto-first False False 0 True True False False 1 False 0 True Index de fin 00h00m00s True False 5 1 True True False 2 True 0 in True True vertical True Plage True 0 True Duree de la plage active 00h00m00s True 9 1 True True False 3 True 0 in True True True True True 4 True 0 in True True vertical True True False Suprimer tous les marqueurs pour les remplacer par un marqueur unique True 0 0 True 2 True gtk-clear False False 0 True True False False 1 False False 0 True True False 5 True 0 in True True vertical True True False Le fichier CUE sera enregistre vers 'Destination des fichiers'. True 0 0 True 2 True gtk-cdrom False False 0 True Production fichier Cue True False False 1 False False 0 True True False Le resultat du Split sera dirige vers 'Destination des fichiers'. True 0 0 True 2 True gtk-execute False False 0 True Split True False False 1 False 1 True True False 6 0 False False 2 3 True Split 3 False True vertical True True 100 360 True 6 vertical True 2 0 in True True 5 True True 0 True True True Importation du titre du CD. 5 True gtk-cdrom False False 1 True <b>Titre CD</b> True False False 1 True True True True Choix d'une nouvelle police. True gtk-select-font False False 1 0 True True True Texte gras. True gtk-bold False False 1 1 True True True Texte italique. True gtk-italic False False 1 2 True Apres une lecture de CD et un ajout d'etiquette, ce menu permet la mise en forme des titres, auteurs ... 1 3 True True True Ajouter du texte editable. True gtk-add False False 1 4 False False 2 True 2 0 in True True True 5 automatic automatic True True True <b>Texte</b> True 3 True 2 0 in True True 5 5 True True Saisissez ici un critere de recherche d'images. 0 True True True True Importation des images depuis le Web. 5 True gtk-yes False False 1 True <b>Import images web</b> True False False 4 True False 600 True True automatic automatic True queue True GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_MOTION_MASK | GDK_BUTTON1_MOTION_MASK | GDK_BUTTON2_MOTION_MASK | GDK_BUTTON3_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_FOCUS_CHANGE_MASK | GDK_STRUCTURE_MASK | GDK_PROPERTY_CHANGE_MASK | GDK_VISIBILITY_NOTIFY_MASK | GDK_PROXIMITY_IN_MASK | GDK_PROXIMITY_OUT_MASK | GDK_SUBSTRUCTURE_MASK | GDK_SCROLL_MASK True False 0 True True True True Supprimer l'image en selection True gtk-clear False False 1 0 True True True AJouter de nouvelles images. True Ouvre un fichier gtk-open False False 1 1 True True True Enregistrer la page au format png. True Sauvegarde le fichier gtk-save False False 1 2 True True True Diminution de l'echelle. True Reduit l'agrandissement gtk-zoom-out False False 1 3 True True True Echelle a 100%. True Remet l'echelle a 100% gtk-zoom-100 False False 1 4 True True True Augmentation de l'echelle. True Augmente l'agrandissement gtk-zoom-in False False 1 5 True True True Echelle compatible avec la taille de la fenetre. True Adapte l'echelle a la taille de la fenetre gtk-zoom-fit False False 1 6 True True True Emplacement de sauvegarde des fichiers. 2 7 True True Nom (sans extention) du fichier a sauvegarder. False False 8 True label False False 9 False 1 100 True True never True queue False 2 4 True Pochette 4 False True True 5 left True vertical True True 5 0 in True True 5 50 True 0 0.4699999988079071 Nice False False 0 True True liststore5 0 1 True <b>Priorite systeme</b> True 0 False 0 True 5 0 in True True 5 vertical True <i><b>Indiquez</b> ici le dossier sur votre systeme qui servira de lieu de stockage provisoire pendant les differentes conversions.</i> True False False 0 button2 True True False True False False 1 True <b>Dossier provisoire des conversions</b> True False 1 True 5 0 in True True 5 True True False True False False 10 0 button True True True 1 True <b>Jouer une musique en fin de tache</b> True False False 2 True General False True vertical True True vertical True 5 0 in True True True vertical cdparanoia True True False 5 True True True 0 cdparanoia mode expert True True False 5 True True radiobutton_extract_with_cdparanoia 1 cdparanoia mode expert multi passes True True False 5 True 0.49000000953674316 0.47999998927116394 True radiobutton_extract_with_cdparanoia 2 0 cdda2wav / icedax True True False 5 True True radiobutton_extract_with_cdparanoia 1 True <b> Extraction cd-audio avec: </b> True 0 0 174 True vertical True 5 0 in True True vertical True True False 5 True 0 0 True 2 True gtk-connect False False 0 True <b>HomePage</b> True True False False 1 False False 0 True True False 5 True 0 0 True 2 True gtk-connect False False 0 True <b>ManPage</b> True True False False 1 False False 1 True <b>Web cdparanoia</b> True False False 0 False False 1 False 0 True 5 0 in True 5 True True True False 5 True False 0 True <i>Le fichier <b>LogExpertMode.txt</b> sera cree dans le dossier des extractions</i> True 1 True <b>Generation d'un rapport pour: cdparanoia mode expert multi passes</b> True False False 1 True 5 0 in True True 5 vertical True True <b>%a</b> - artiste <b>%b</b> - titre de l'album <b>%c</b> - numero de la piste <b>%d</b> - titre de la chanson <b>%e</b> - annee <b>%g</b> - genre <b>%na</b> - <b>n</b>o <b>a</b>ccent <b>%Tl</b> - <b>T</b>etsumaki <b>l</b>ower <b>%u</b> - remplacement de caracteres: <b>%u(AB=C) %u( =_)</b> True 0 0 True True False False 5 1 True 5 True True label_dossier_cdaudio_exemple True True 0 False False 2 True <b>Dossier de stockage</b> True False False 2 True 3 1 True CD 1 False True vertical True True vertical True 5 0 in True True vertical True 5 180 True 0 ABR / CBR / VBR / VBR-NEW False False 0 True True liststore4 0 1 False 0 True 5 100 True 0 Debit False False 0 True True liststore3 0 1 False 1 True 5 100 True 0 Mode False False 0 True True 1 False 2 True <b> Lame (fichier mp3): </b> True False 0 True 1 0 174 True vertical True 5 0 in True True True False 5 True 0 0 True 2 True gtk-dialog-info False False 0 True Par defaut True False False 1 True <b>Options LAME</b> True False False 0 True 5 0 in True True vertical True True False 5 True 0 0 True 2 True gtk-connect False False 0 True <b>Site officiel</b> True True False False 1 False False 0 True True False 5 True 0 0 True 2 True gtk-connect False False 0 True <b>Wiki mp3</b> True True False False 1 False False 1 True True False 5 True 0 0 5 True 2 True gtk-connect False False 0 True <b>Wiki </b> True True False False 1 False False 2 True True False 5 True 0 0 5 True 2 True gtk-connect False False 0 True <b>ManPage</b> True True False False 1 False False 3 True <b>Web Lame</b> True 1 False False 1 False 0 True 1 True 5 0 in True True 5 vertical True True False False 5 0 True 5 True <b>[</b> True False False 0 True True <b>string option interne</b> True True 1 True <b>]</b> True False False 2 5 1 True <b> Options experts, definies par l'utilisateur - lame (wav -> mp3) </b> True False False 2 2 True Mp3 2 False True vertical True True vertical True 5 0 in True True 3 2 True 5 True 1 2 2 3 GTK_FILL GTK_FILL True 5 True 1 2 1 2 GTK_FILL GTK_FILL 160 True 0 Mode 2 3 GTK_FILL 160 True 0 Mode flux (streaming) 1 2 GTK_FILL True 5 True liststore2 0 1 2 GTK_FILL 160 True 0 Debit GTK_FILL True <b> Oggenc (fichier ogg): </b> True False False 0 True 1 0 174 True vertical True 5 0 in True True True False 5 True 0 0 True 2 True gtk-dialog-info False False 0 True Par defaut True False False 1 True <b>Options OGGENC</b> True False False 0 True 5 0 in True True vertical True True False 5 True 0 0 True 2 True gtk-connect False False 0 True <b>Wiki</b> True True False False 1 False False 0 True True False 5 True 0 0 15 True 2 True gtk-connect False False 0 True <b>ManPage</b> True True False False 1 False False 1 True <b>Web Oggenc</b> True 1 False 1 False 0 True 1 True 5 0 in True True 5 vertical True True False False 5 0 True 5 True <b>[</b> True False False 0 True True <b>string option interne</b> True True 1 True <b>]</b> True False False 2 5 1 True <b> Options experts, definies par l'utilisateur - oggenc (wav -> ogg) </b> True False False 2 3 True Oggenc 3 False True vertical True True vertical True 5 0 in True True 150 True 0 Taux de compression False False 5 0 True 5 True liststore1 0 1 True <b> Flac (fichier flac): </b> True False 0 True 1 0 174 True vertical True 5 0 in True True True False 5 True 0 0 True 2 True gtk-dialog-info False False 0 True Par defaut True False False 1 True <b>Options FLAC</b> True False False 0 True 5 0 in True True vertical True True False 5 True 0 0 True 2 True gtk-connect False False 0 True <b>Site officiel</b> True True False False 1 False False 0 True True False 5 True 0 0 True 2 True gtk-connect False False 0 True <b>Framasoft</b> True True False False 1 False False 1 True True False 5 True 0 0 True 2 True gtk-connect False False 0 True <b>ManPage</b> True True False False 1 False False 2 True <b>Web Flac</b> True False False 1 False False 1 False 0 True 1 True 5 0 in True True 5 vertical True True False False 5 0 True 5 True <b>[</b> True False False 0 True True <b>string option interne</b> True True 1 True <b>]</b> True False False 2 5 1 True <b> Options experts, definies par l'utilisateur - flac (wav -> flac) </b> True False 2 4 True Flac 4 False True vertical True True vertical True 5 0 in True True 100 True 0 Qualite False False 0 True 5 True 1 True <b> Mac (fichier ape): </b> True False False 0 True 1 0 174 True vertical True 5 0 in True True True False 5 True 0 0 True 2 True gtk-dialog-info False False 0 True Par defaut True False False 1 True <b>Options MAC</b> True 0 True 5 0 in True True True False 5 True 0 0 True 2 True gtk-connect False False 0 True <b>Wiki</b> True True False False 1 True <b>Web Mac</b> True 1 False False 1 False 0 True 1 True 5 0 in True True 5 vertical True True False False 5 0 True 5 True <b>[</b> True False False 0 True True <b>string option interne</b> True True 1 True <b>]</b> True False False 2 5 1 True <b> Options experts, definies par l'utilisateur - mac (wav -> ape) </b> True False 2 5 True Mac 5 False True vertical True True vertical True 5 0 in True vertical True 5 True 120 True 0 Compression False False 5 0 True True 1 0 True True 5 120 True 0 Son False False 5 0 True True 1 1 True True 5 200 True 0 Mode hybride False False 5 0 True True 1 2 True True 5 200 True 0 Fichier de correction False False 5 0 True True 1 3 True True 5 200 True 0 Compression maximum False False 5 0 True True 1 4 True True 5 200 True 0 Signature MD5 False False 5 0 True True 1 5 True True 5 200 True 0 Extra encode processing False False 5 0 True True 1 6 True <b> WavPack (fichier wv): </b> True False False 0 True 1 0 174 True vertical True 5 0 in True True True False 5 True 0 0 True 2 True gtk-dialog-info False False 0 True Par defaut True False False 1 True <b>Options WAVPACK</b> True False False 0 True 5 0 in True True vertical True True False 5 True 0 0 True 2 True gtk-connect False False 0 True <b>Wiki</b> True True False False 1 0 True True False 5 True 0 0 True 2 True gtk-connect False False 0 True <b>ManPage</b> True True False False 1 1 True <b>Web Wavpack</b> True False False 1 False False 1 False 0 True 1 True 5 0 in True True 5 vertical True True False False 5 0 True 5 True <b>[</b> True False False 0 True True <b>string option interne</b> True True 1 True <b>]</b> True False False 2 5 1 True <b> Options experts, definies par l'utilisateur - wavpack (wav -> wv) </b> True False 2 6 True Wavpack 6 False True vertical True True vertical True 5 0 in True 5 True True True 0 True <b> MusePack (fichier mpc): </b> True False False 0 True 1 0 174 True vertical True 5 0 in True True True False 5 True 0 0 True 2 True gtk-dialog-info False False 0 True Par defaut True False False 1 True <b>Options MUSEPACK</b> True 0 True 5 0 in True True vertical True True False 5 True 0 0 True 2 True gtk-connect False False 0 True <b>Site officiel</b> True True False False 1 False False 0 True True False 5 True 0 0 True 2 True gtk-connect False False 0 True <b>Framasoft</b> True True False False 1 False False 1 True <b>Web Musepack</b> True 1 False False 1 False 0 True 1 True 5 0 in True True 5 vertical True True False False 5 0 True 5 True <b>[</b> True False False 0 True True <b>string option interne</b> True True 1 True <b>]</b> True False False 2 5 1 True <b> Options experts, definies par l'utilisateur - musepack (wav -> mpc) </b> True False 2 7 True Musepack 7 False True vertical True True vertical True 5 0 in True vertical True 3 2 True True 1 2 2 3 GTK_FILL GTK_FILL 5 5 True True 1 2 1 2 GTK_FILL GTK_FILL 5 5 True True 1 2 GTK_FILL 5 5 True 0 Qualite VBR / Debit ABR 2 3 GTK_FILL True 0 VBR / ABR 1 2 GTK_FILL 180 True 0 Conteneur GTK_FILL 0 True <b> Faac (fichier .m4a): </b> True 0 True 1 0 174 True vertical True 5 0 in True True True False 5 True 0 0 True 2 True gtk-dialog-info False False 0 True Par defaut True False False 1 True <b>Options FAAC</b> True False False 0 True 5 0 in True True vertical True True False 5 True 0 0 True 2 True gtk-connect False False 0 True <b>Site officiel</b> True True False False 1 False False 0 True True False 5 True 0 0 15 True 2 True gtk-connect False False 0 True <b>Web Info</b> True True False False 1 False False 1 True True False 5 True 0 0 15 True 2 True gtk-connect False False 0 True <b>ManPage</b> True True False False 1 False False 2 True <b>Web Faac</b> True False False 1 False False 1 False False 0 True 1 True 5 0 in True True 5 vertical True True False False 5 0 True 5 True <b>[</b> True False False 0 True True <b>string option interne</b> True True 1 True <b>]</b> True False False 2 5 1 True <b> Options experts, definies par l'utilisateur - faac (wav -> m4a) </b> True False False 2 8 True Faac 8 False True vertical True True vertical True 5 0 in True True 2 2 True True 1 2 GTK_FILL GTK_FILL 5 5 True True 1 2 1 2 GTK_FILL 5 5 210 True 0 Stereo: Qualite en kbit/s 1 2 GTK_FILL 210 True 0 Mono: Qualite en kbit/s GTK_FILL False False 0 True <b> AacplusEnc (fichier .aac): </b> True False False 0 True 1 0 174 True vertical True 5 0 in True True True False 5 True 0 0 True 2 True gtk-dialog-info False False 0 True Par defaut True False False 1 True <b>Options AacPlusEnc</b> True False False 0 True 5 0 in True True vertical True True False 5 True 0 0 True 2 True gtk-connect False False 0 True <b>Site officiel</b> True True False False 1 False False 0 True True False 5 True 0 0 15 True 2 True gtk-connect False False 0 True <b>Web Info</b> True True False False 1 False False 1 True True False 5 True 0 0 15 True 2 True gtk-connect False False 0 True <b>ManPage</b> True True False False 1 False False 2 True <b>Web AacPlusEnc</b> True False False 1 False False 1 False False 0 True 1 9 True AacplusEnc 9 False True vertical True 5 0 in True True vertical Artiste True True False 5 True True False False 0 Titre True True False 5 True True False False 1 Album True True False 5 True True False False 2 Numero True True False 5 True True False False 3 Genre True True False 5 True True False False 4 Annee True True False 5 True True False False 5 Commentaire True True False 5 True True False False 6 True <b> Exportation de </b> True False 0 10 True Tags 10 False 5 True Preferences 5 False True vertical True True 5 True 5 vertical True True 5 automatic automatic in 0 True vertical True True 5 0 in True SCAN True True False True True <b> Installation </b> True 0 True 5 0 in True True True <b> Votre systeme utilise ... </b> True 1 False False 0 True 5 0 in True True True <b><i>Pour installer les programmes externes requis, veuillez utiliser l'installateur de votre distribution Gnu/Linux.</i></b> True 0 65 True True False Le programme XCFA_INSTALL_ALL ecrit en Perl vous sera utile en ligne de commande pour une installation des programmes complementaire. 5 True gtk-network 5 False False 1 True <b> Informations </b> True 1 False False 1 True Application externes False True 5 vertical 10 True 0 in True 5 True True 0 True True 1 100 True 0.10000000149011612 True right 2 True <i>parametres:</i> True 3 True True konqueror : newTab iceweasel : -new-window -new-tab 4 True <b>Navigateur</b> True False False 5 0 True 0 in True 4 True True 0 True True 1 100 True 0.10000000894069672 True right 2 True <i>parametres:</i> True 3 True True 4 True <b>Lecteurs audio</b> True False False 5 1 1 True Navigateurs / Lecteurs audio 1 False 0 6 True Applications externes 6 False 5 1 True True <b>label472</b> True 0 False False 2 411 5 Scan en cours ... False True center-on-parent dialog False True vertical 2 True 5 vertical True True gtk-execute 6 False False 0 True <b>Scan du support en cours ...</b> True center 5 1 0 True False 5 1 True True 150 True True automatic automatic True Detail extraction mode expert False False 2 1 True end gtk-cancel True True True True False False 0 False end 0 button_cancel_windscan Modification des champs False True center-on-parent True 2 vertical True 5 True gtk-dialog-info 5 0 True <b>Modification des champs</b> True 1 False False 0 True vertical True True 5 left True 5 120 True 0 in True True 5 vertical Titre True True False True True False False 0 Play True True False True True False False 1 Temps True True False True True False False 2 Format True True False True True False False 3 Choix True True False True True False False 4 Normalise True True False True True False False 5 Nom True True False True True False False 6 True <b> Visibilite </b> True 0 143 True 0 in True True 5 vertical Nom a gauche True True False True True False False 0 Nom au centre True True False True True True radiobutton_nameleft_dvd False False 1 Nom a droite True True False True True radiobutton_nameleft_dvd False False 2 True True 1 True DVD False True 5 140 True 0 in True True 5 vertical Play True True False True True False False 0 Wav True True False True True False False 1 Flac True True False True True False False 2 Ape True True False True True False False 3 Wavpack True True False True True False False 4 Ogg True True False True True False False 5 M4a True True False True True False False 6 Aac True True False True True False False 7 Musepack True True False True True False False 8 Mp3 True True False True True False False 9 Num True True False True True False False 10 Time True True False True True False False 11 Normalise True True False True True False False 12 Nom True True False True True False False 13 True <b> Visibilite </b> True 0 140 True 0 in True True 5 vertical Nom a gauche True True False True True False False 0 Nom au centre True True False True True True radiobutton_nameleft_cd False False 1 Nom a droite True True False True True radiobutton_nameleft_cd False False 2 True True 1 1 True CD 1 False True 5 120 True 0 in True True 5 vertical Play True True False True True False False 0 Trash True True False True True False False 1 Type True True False True True False False 2 Wav True True False True True False False 3 Flac True True False True True False False 4 Ape True True False True True False False 5 Wavpack True True False True True False False 6 Ogg True True False True True False False 7 M4a True True False True True False False 8 Aac True True False True True False False 9 Musepack True True False True True False False 10 Mp3 True True False True True False False 11 Time True True False True True False False 12 Normalise True True False True True False False 13 Replaygain True True False True True False False 14 Nom True True False True True False False 15 True <b> Visibilite </b> True 0 130 True 0 in True True 5 vertical Nom a gauche True True False True True False False 0 Nom au centre True True False True True True radiobutton_nameleft_allfile False False 1 Nom a droite True True False True True radiobutton_nameleft_allfile False False 2 True True 1 2 True CONVERSIONS 2 False True 5 120 True 0 in True True 5 vertical Hertz True True False True True False False 0 New Hertz True True False True True False False 1 Voie True True False True True False False 2 New Voie True True False True True False False 3 Bits True True False True True False False 4 New Bits True True False True True False False 5 Nom True True False True True False False 6 True <b> Visibilite </b> True 0 130 True 0 in True True 5 vertical Nom a gauche True True False True True False False 0 Nom au centre True True False True True True radiobutton_nameleft_wav False False 1 Nom a droite True True False True True radiobutton_nameleft_wav False False 2 True True 1 3 True WAV 3 False True 5 120 True 0 in True True 5 vertical Type True True False True True False False 0 Bitrate True True False True True False False 1 New Bitrate True True False True True False False 2 Size True True False True True False False 3 Time True True False True True False False 4 Nom True True False True True False False 5 True <b> Visibilite </b> True 0 130 True 0 in True 1 True 5 vertical Nom a gauche True True False True True False False 0 Nom au centre True True False True True True radiobutton_nameleft_mp3ogg False False 1 Nom a droite True True False True True radiobutton_nameleft_mp3ogg False False 2 True True 1 4 True MP3-OGG 4 False True 5 120 True 0 in True True 5 vertical Type True True False True True False False 0 Time True True False True True False False 1 Nom True True False True True False False 2 True <b> Visibilite </b> True 0 130 True 0 in True 1 True 5 vertical Nom a gauche True True False True True False False 0 Nom au centre True True False True True True radiobutton_nameleft_tags False False 1 Nom a droite True True False True True radiobutton_nameleft_tags False False 2 True True 1 5 True TAGS 5 False 0 True True True False 5 True 0 0 True 2 True gtk-redo False False 0 True Selection globale True False False 1 0 True True False 5 True 0 0 True 2 True gtk-clear False False 0 True Deselection globale True False False 1 1 False False 1 True True False 5 True 0 0 True 2 True gtk-quit False False 0 True Retour True False False 1 False False 2 1 464 False center-on-parent True vertical True 5 gtk-quit True True True True False False 0 gtk-media-play 110 True True True True False False 1 gtk-media-pause 110 True True True True False False 2 True 3 False False 0 About X Convert File Audio False True center-on-parent True vertical True True 5 True vertical True gtk-missing-image 0 True 0 in True True True True True 1 True True 0 in True True True True <b>Author</b> True 0 True 0 in True True 10 gtk-missing-image True <b>Licence</b> True False 1 2 True Informations False True True automatic automatic True queue True True True 1 True Machine 3 False True True automatic automatic True True vertical True True True False False 0 True 9 4 True 0 @Shankarius @Dzef True 2 3 GTK_FILL True 0 Stephane de la Linuxerie @xens True 2 3 1 2 GTK_FILL True 0 @Bapoumba @Shankarius @Dzef Guillaume Gerry Butler True 2 3 2 3 GTK_FILL True 0 Karsten Mehrhoff True 2 3 3 4 GTK_FILL True 0 <b>Ingenieurs du son</b> True True 1 2 GTK_FILL True 0 <b>Graphisme</b> True True 1 2 1 2 GTK_FILL True 0 <b>Traduction Anglaise</b> True True 1 2 2 3 GTK_FILL True 0 <b>Traduction Allemande</b> True True 1 2 3 4 GTK_FILL True 0 1 2 GTK_FILL True 0 2 3 GTK_FILL True 0 3 4 GTK_FILL True 0 4 5 GTK_FILL True 0 5 6 GTK_FILL True 0 6 7 GTK_FILL True 0 True 0 3 4 True 0 3 4 1 2 GTK_FILL True 0 3 4 2 3 GTK_FILL True 0 3 4 3 4 GTK_FILL True 0 3 4 4 5 GTK_FILL True 0 3 4 5 6 GTK_FILL True 0 3 4 6 7 GTK_FILL True 0 7 8 GTK_FILL True 0 3 4 7 8 GTK_FILL True 0 <b>Codeur Xcfa</b> True True 1 2 7 8 GTK_FILL True 0 @b52 alias @xcfaudio True 2 3 7 8 GTK_FILL True 0 <b>ElementSpeak pour Xcfa</b> True True 1 2 6 7 GTK_FILL True 0 @Shankarius True 2 3 6 7 GTK_FILL True 0 <b>Codeur pages Web</b> True True 1 2 5 6 GTK_FILL True 0 @zarer True 2 3 5 6 GTK_FILL True 0 <b>Traduction Italienne</b> True True 1 2 4 5 GTK_FILL True 0 Guillaume Vincenzo Romano True 2 3 4 5 GTK_FILL 2 True True 0 0 True 0 <b>Pages a visiter</b> True False False 1 True 0 2 3 True 12 3 True 0 1 2 GTK_FILL True 0 2 3 GTK_FILL True 0 3 4 GTK_FILL True 0 4 5 GTK_FILL True 0 5 6 GTK_FILL True 0 6 7 GTK_FILL True 0 7 8 GTK_FILL True 0 8 9 GTK_FILL True 0 9 10 GTK_FILL True 0 10 11 GTK_FILL True 0 2 3 1 2 GTK_FILL True 0 2 3 2 3 GTK_FILL True 0 2 3 3 4 GTK_FILL True 0 2 3 4 5 GTK_FILL True 0 2 3 5 6 GTK_FILL True 0 2 3 6 7 GTK_FILL True 0 2 3 7 8 GTK_FILL True 0 2 3 8 9 GTK_FILL True 0 2 3 9 10 GTK_FILL True 0 2 3 10 11 GTK_FILL True True False 3 True 0 0 True 2 True gtk-connect False False 0 True Linux On The Root True False False 1 1 2 1 2 GTK_FILL True True False 3 True 0 0 True 2 True gtk-connect False False 0 True Frugalware True False False 1 1 2 2 3 GTK_FILL True True False 3 True 0 0 True 2 True gtk-connect False False 0 True Road2Mayotte True False False 1 1 2 3 4 GTK_FILL True True False 3 True 0 0 True 2 True gtk-connect False False 0 True La Linuxerie True False False 1 1 2 4 5 GTK_FILL True True False 3 True 0 0 True 2 True gtk-connect False False 0 True Audioptimisation by Dzef True False False 1 1 2 5 6 GTK_FILL True True False 3 True 0 0 True 2 True gtk-connect False False 0 True Tuxfamily True False False 1 1 2 6 7 GTK_FILL True True False 3 True 0 0 True 2 True gtk-connect False False 0 True Framasoft True False False 1 1 2 7 8 GTK_FILL True True False 3 True 0 0 True 2 True gtk-connect False False 0 True Ekd (EnKoDeur-Mixeur) True False False 1 1 2 8 9 GTK_FILL True True False 3 True 0 0 True 2 True gtk-connect False False 0 True Bishop's page True False False 1 1 2 9 10 GTK_FILL True True False 3 True 0 0 True 2 True gtk-connect False False 0 True Je suis libre True False False 1 1 2 10 11 GTK_FILL True 0 True 0 2 3 True True False 3 True 0 0 True 2 True gtk-connect False False 0 True Debian Multimedia True False False 1 1 2 True 0 11 12 GTK_FILL True 0 2 3 11 12 GTK_FILL True True True 3 True 0 0 True 2 True gtk-connect False False 0 True Alessio Treglia True False False 1 1 2 11 12 GTK_FILL False False 4 True True 0 0 True <b>Forum</b> True False False 1 True 0 2 5 True 3 3 True True False 3 True 0 0 True 2 True gtk-connect False False 0 True XCFA Vorstellung True False False 1 1 2 1 2 GTK_FILL True True False 3 True 0 0 True 2 True gtk-connect False False 0 True XCFA LinuxForen.de True False False 1 1 2 2 3 GTK_FILL True 0 2 3 True 0 1 2 True 0 GTK_FILL True 0 2 3 1 2 GTK_FILL True 0 2 3 2 3 GTK_FILL True 0 2 3 True True False 3 True 0 0 True 2 True gtk-connect False False 0 True Forum Xcfa True False False 1 1 2 6 True True 0 0 True <b>Documentation</b> True False False 1 True 0 2 7 True 6 3 True 0 1 2 GTK_FILL True 0 2 3 GTK_FILL True 0 3 4 GTK_FILL True 0 4 5 GTK_FILL True 0 5 6 GTK_FILL True 0 2 3 1 2 GTK_FILL True 0 2 3 2 3 GTK_FILL True 0 2 3 3 4 GTK_FILL True 0 2 3 4 5 GTK_FILL True 0 2 3 5 6 GTK_FILL True 0 True 0 2 3 True True False 3 True 0 0 True 2 True gtk-connect False False 0 True Wiki Xcfa par Shankarius True False False 1 1 2 GTK_FILL True True False 3 True 0 0 True 2 True gtk-connect False False 0 True Doc Xcfa par Patachon True False False 1 1 2 1 2 GTK_FILL True True False 2 True 0 0 True 2 True gtk-connect False False 0 True Ogg Vorbis explique par Shankarius True False False 1 1 2 2 3 GTK_FILL True True False 3 True 0 0 True 2 True gtk-connect False False 0 True La normalisation expliquee par Dzef True False False 1 1 2 3 4 GTK_FILL True True False 3 True 0 0 True 2 True gtk-connect False False 0 True Xcfa sur Linux On The Root True False False 1 1 2 4 5 GTK_FILL 8 2 True Contributions 2 False True True automatic automatic in True True 3 True License 3 False 0 True 5 OK True True True True False half True 0 True True False none False True 0 0 True 2 True gtk-connect False False 0 True Xcfa sur le web True False False 1 False False 1 False False 1 False True center-always True 5 vertical True True vertical True 11 10 gtk-dialog-warning 6 False False 0 False 0 True vertical True True center 0 True True 1 1 0 True True gtk-quit True True True True False False 0 False False 1 100 100 1 1 100 100 1 1 1 9999 1 1 2 999 1 1 1 1 99999 1 1 -10 -24 -6 1 1 1 999 1 1 1962 9999 1 1 xcfa-4.3.6/glade/Makefile.in0000644000175000017500000002732112224542373012520 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = glade DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_GEN = $(am__v_GEN_$(V)) am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) am__v_GEN_0 = @echo " GEN " $@; AM_V_at = $(am__v_at_$(V)) am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) am__v_at_0 = @ SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(gladedir)" DATA = $(glade_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PREFIX = @INSTALL_PREFIX@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_CFLAGS = @PACKAGE_CFLAGS@ PACKAGE_LIBS = @PACKAGE_LIBS@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ # # glade/Makefile.am # AUTOMAKE_OPTIONS = gnu EXTRA_DIST = xcfa.glade gladedir = $(datadir)/xcfa/glade glade_DATA = xcfa.glade all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu glade/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu glade/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-gladeDATA: $(glade_DATA) @$(NORMAL_INSTALL) test -z "$(gladedir)" || $(MKDIR_P) "$(DESTDIR)$(gladedir)" @list='$(glade_DATA)'; test -n "$(gladedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(gladedir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(gladedir)" || exit $$?; \ done uninstall-gladeDATA: @$(NORMAL_UNINSTALL) @list='$(glade_DATA)'; test -n "$(gladedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(gladedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(gladedir)" && rm -f $$files tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(gladedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-gladeDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-gladeDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic distclean \ distclean-generic distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-gladeDATA \ install-html install-html-am install-info install-info-am \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic pdf pdf-am ps ps-am uninstall \ uninstall-am uninstall-gladeDATA uninstall: rm -rf "$(DESTDIR)$(datadir)/xcfa/"; # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: xcfa-4.3.6/README0000644000175000017500000001005411610134714010244 00000000000000 ___ _ __ __ | _ \___ __ _ __| | \/ |___ | / -_) _` / _` | |\/| / -_) |_|_\___\__,_\__,_|_| |_\___| ---------------------------------------- | BONJOUR | ---------------------------------------- J'ai construis (programmé) XCFA (X Convert File Audio) qui me permet d'effectuer des extractions de pistes de CD Audios vers les formats flac, wav, mp3 et ogg. X Convert File Audio permet aussi des conversions de formats: flac <-> wav <-> mp3 <-> ogg Un de plus penserez-vous (direz-vous) ? Oui et non. OUI parce que l'on trouve déjà de très bons programmes tel Grip, (le plus connu sans doute !) plus d'autres. NON parce que tous ces différents logiciels que j'ai utilisés n'ont jamais le choix d'options au bon endroit. Et puis quel plaisir d'aligner des lignes de codes et de les voirs fonctionner... Bref, depuis que j'ai fait l'acquisition d'un balladeur MP3, X Convert File Audio trouve toute son utilité dans les conversions audio vers mp3. Il peut aussi aller récupérer sur le Web les informations concernant le cd-audio en cours de traitement. XCFA est écrit en langage C et utilise les librairies Gtk2, Glib2. J'utilise Glade pour developper l'interface. ---------------------------------------- | INSTALLATION | | DEPUIS LES | | SOURCES | ---------------------------------------- Compilation: $ ./configure --prefix=/usr $ make Installation: # make install Utilisation: $ xcfa Désinstallation propre: # make uninstall ---------------------------------------- | LITTERATURE | | IDEES DE LOGICIELS | | TESTS | ---------------------------------------- Des idees de code etudie, reprit et retravailles viennent de: graveman wavinfo grip mp3info xmms Gtktalog CdCover Kover Graveman Asunder et bien d'autres ... ;-) Les principaux livres utilises sont: Programmation Linux avec GTK+ de David Odin La reference du C norme ANSI/ISO de Claude Delannoy Programmation systeme en C sous Linux de Christophe Blaess Linux magazine Les tests sont effectues sous: - debian - frugalware - archlinux - Ubuntu - Fedora - Knoppix - Mandrake - Mepis - Slackware - ... ---------------------------------------- | LICENSE | ---------------------------------------- Copyright (C) 2003 - 2011 XCFA is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. XCFA is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, see http://www.gnu.org/licenses or write to the Free Software Foundation,Inc. 51 Franklin Street Fifth Floor Boston, MA 02110-1301 USA ------------ XCFA est un logiciel libre, vous pouvez le redistribuer et / ou le modifier selon les termes de la Licence Publique Générale GNU telle que publiée par la Free Software Foundation; soit la version 3 de la Licence, ou (à votre choix) toute version ultérieure. XCFA est distribué dans l'espoir qu'il sera utile, mais SANS AUCUNE GARANTIE, sans même la garantie implicite de COMMERCIALISATION ou D'ADAPTATION A UN USAGE PARTICULIER. Voir la Licence Publique Générale GNU pour plus de détails. Vous devriez avoir reçu une copie de la Licence Publique Générale GNU avec ce programme, sinon, voir http://www.gnu.org/licenses ou écrivez à la Free Software Foundation, Inc, 51 Franklin Street Fifth Floor Boston, Massachusetts, USA 02110-1301 xcfa-4.3.6/autogen.sh0000755000175000017500000000153212043302460011362 00000000000000#!/bin/sh (aclocal --version) < /dev/null > /dev/null 2>&1 || { echo echo "** Error **: You must have aclocal installed." echo exit 1 } (autoheader --version) < /dev/null > /dev/null 2>&1 || { echo echo "** Error **: You must have autoheader installed." echo exit 1 } (autoconf --version) < /dev/null > /dev/null 2>&1 || { echo echo "** Error **: You must have autoconf installed." echo exit 1 } (automake --version) < /dev/null > /dev/null 2>&1 || { echo echo "** Error **: You must have aclocal installed." echo exit 1 } echo aclocal aclocal # autoreconf --install # AM_GNU_GETTEXT_VERSION echo autoheader autoheader echo autoconf autoconf echo automake -a -c automake -a -c echo automake --add-missing automake --add-missing echo automake automake echo ./configure --prefix=/usr ./configure --prefix=/usr echo exit 0 xcfa-4.3.6/TODO0000644000175000017500000005551212224542257010073 00000000000000 __ __ ___ _ ___ _ _ _ _ _ \ \/ / / __|___ _ ___ _____ _ _| |_ | __(_) |___ /_\ _ _ __| (_)___ > < | (__/ _ \ ' \ V / -_) '_| _| | _|| | / -_) / _ \ || / _` | / _ \ /_/\_\ \___\___/_||_\_/\___|_| \__| |_| |_|_\___| /_/ \_\_,_\__,_|_\___/ __ __ / /____ ___/ /__ / __/ _ \/ _ / _ \ \__/\___/\_,_/\___/ ======================================== | 4.3.6 | | 4.3.6~beta0 | ======================================== - Corrections signalees par Christian Marillat: o configure.ac - LDFLAGS="-lm$LDFLAGS" + LDFLAGS="-lm $LDFLAGS" o mime/Makefile.am - mimedir = $(libdir)/mime/packages + mimedir = $(prefix)/lib/mime/packages - Deposit of XCFA: 4.3.6~beta0 - Deposit of XCFA: 4.3.6 ======================================== | 4.3.5 | | 4.3.5~beta0 .. 4.3.5~beta3 | ======================================== - Recodage de file_conv.c - Finalisation de l'import des fichiers BWF - Debug import drag-and-drop - Deposit of XCFA: 4.3.5~beta2 - Deposit of XCFA: 4.3.5~beta3 - Deposit of XCFA: 4.3.5 ======================================== | 4.3.4 | | 4.3.4~beta0 .. 4.3.4~beta4 | ======================================== - Demande de Christian Marillat o Gestion de Broadcast Wave Format http://fr.wikipedia.org/wiki/Broadcast_Wave_Format Les fichiers BWF sont des fichiers wave. Il n'est pas necessaire de les convertir. Ce qui rend un BWF special est tout simplement l'ajout de meta-informations dans le fichier. Recherche des tags [ 'bext' | 'qlty' | 'levl' | 'link' | 'axml' ] Les tags [ 'fmt ' ] et [ 'data' ] devront etre presents pour valider l'importation du fichier wav - Deposit of XCFA: 4.3.4~beta0 - Deposit of XCFA: 4.3.4~beta1 - Deposit of XCFA: 4.3.4~beta2 - Deposit of XCFA: 4.3.4 ======================================== | 4.3.3 | | 4.3.3~beta0 .. 4.3.3~beta4 | ======================================== - [ External Applications -> Browsers ] o Prise en compte du parametre pour le navigateur o Taking into account the parameter for the browser - SOLVED Bug in function: SplitCue_read_cue_file( ... ) - RENAME: configure.in -> configure.ac - RENAME: in configure.ac AM_CONFIG_HEADER([config.h]) -> AC_CONFIG_HEADERS([config.h]) - RENAME: in src/makefile.am and lib/makefile.am INCLUDES -> AM_CPPFLAGS - Deposit of XCFA: 4.3.3~beta1 - REPLACE: gtk_set_locale() has been deprecated : use setlocale( LC_ALL, "" ) - SOLVED Replacement correct de la ligne en selection lors d'une suppression dans le GtkTree - Deposit of XCFA: 4.3.3~beta2 - Deposit of XCFA: 4.3.3~beta3 - Deposit of XCFA: 4.3.3~beta4 - Deposit of XCFA: 4.3.3 ======================================== | 4.3.2 | | 4.3.2~beta0 .. 4.3.2~beta3 | ======================================== - TODO: CAIRO library integration for the tab Split o See: http://www.xcfa.tuxfamily.org/index.php?article8/coder-avec-cairo - Systray management was removed - Italian translation by Vincenzo Romano - SOLVED Bug de maximisation sous Unity signalé par @Gounlaf - [ Fichiers -> Mp3-Ogg ]: Application complete depuis une action popup sur une selection multiple - Deposit of XCFA: 4.3.2~beta1 - Colorized field names GtkTree - [ Fichiers -> Wav ]: Application complete depuis une action popup sur une selection multiple - Deposit of XCFA: 4.3.2~beta2 - Correction URL - Modification fichier glade + code associe - Deposit of XCFA: 4.3.2~beta3 - Deposit of XCFA: 4.3.2 ======================================== | 4.3.1 | | 4.3.1~beta0 .. 4.3.1~beta2 | ======================================== - SOLVED Bug#673641: xcfa: Wrong file directory o http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=673641 o Complement coding - SOLVED Bug#673640: xcfa: XCFA crashes when the CD is ejected o http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=673640 o The eject buttons CD / DVD are not accessible if no drives are found o New option command line: -systray o The tests are ok under sawfish window manager - Deposit of XCFA: 4.3.1~beta0 - SOLVED Bug in ArchLinux with the operation of link with error: o https://aur.archlinux.org/packages.php?ID=15386 o 'roundf@@GLIBC_2.2.5' is defined in DSO /lib/libm.so.6 so try adding it to the linker command line o File modification [ src/Makefile.am ] in xcfa-4.3.1~beta1 o Confirmed by 'Skunnyk', the build of XCFA under ArchLinux is ok - Deposit of XCFA: 4.3.1~beta2 - Deposit of XCFA: 4.3.1 ======================================== | 4.3.0 | | 4.3.0~beta0 .. 4.3.0~beta1 | ======================================== - Deposit of XCFA: 4.3.0~beta0 - Deposit of XCFA: 4.3.0 ======================================== | 4.2.9 | | 4.2.9~beta0 .. 4.2.9~beta9 | ======================================== - Cleaning code with unused variables - Use: IO Channels - Validation of the variable 'StartupNotify' File 'xcfa.desktop' with value FALSE - Deposit of XCFA: 4.2.9~beta1 - Gestion d'erreurs produites par mplayer et/ou sox: o mplayer: Symbol `ff_codec_bmp_tags' has different size in shared object, consider re-linking o Cette erreur signifie que les versions de librairies de mplayer et/ou sox sont inadéquates :/ - Correction d'un bug de réaffichage depuis: file_mp3ogg.c - Modification onglet Fichiers->Mp3-Ogg : o L'accès aux différentes sélections fonctionne via un menu popup. - Possibilité de generation d'un rapport pour une extraction en mode expert avec cdparanoia - Deposit of XCFA: 4.2.9~beta3 - Deposit of XCFA: 4.2.9~beta4 - Deposit of XCFA: 4.2.9~beta5 - Deposit of XCFA: 4.2.9~beta6 - Merci a @TICROB pour: o Recuperation complete d"une ligne TTITLE partagee sur plusieures lignes o Suppression du caractere '/' pour le fichier CUE - Deposit of XCFA: 4.2.9~beta7 - Un CD qui possede des piste DATA/BONUS pose un probleme a cdparanoia ! o Extraction avec cdparanoia mode expert et une seule passe prend du temps mais est fiable - Deposit of XCFA: 4.2.9~beta8 - Nouveaux modes pour l'extraction des cd-audio: o cdparanoia: mode normal o cdparanoia: mode expert o cdparanoia: mode expert multi passes o cdda2wav / icedax - Deposit of XCFA: 4.2.9~beta9 ======================================== | 4.2.8 | | 4.2.8~beta0 .. 4.2.8~beta4 | ======================================== - xcfa: Please Recommend ghostscript instead of gs-common o Supression de gs-common de la ligne Recommends : de mes paquets tandis que Alessio Treglia a déjà contourné le problème différemment chez Debian: o http://anonscm.debian.org/gitweb/?p=pkg-multimedia/xcfa.git;a=commitdiff;h=9d980a02 o http://anonscm.debian.org/gitweb/?p=pkg-multimedia/xcfa.git;a=commitdiff;h=679cc525 Vraiment très fort chez Debian : Thank you to the Team ;-) - At the request of Giannis Servetas, Removal of WAVSPLIT who is not any more maintained. o http://packages.qa.debian.org/w/wavsplit.html o http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=489456 The WavSplit operation is now encoded from XCFA. - Deposit of XCFA: 4.2.8~beta1 - Deposit of XCFA: 4.2.8~beta2 - Removing the slash character from a title on a CD. - Deposit of XCFA: 4.2.8~beta3 - Deposit of XCFA: 4.2.8~beta4 - Deposit of XCFA: 4.2.8 ======================================== | 4.2.7 | | 4.2.7~beta0 .. 4.2.7~beta3 | ======================================== - Intégration des spécifications Freedesktop. o http://doc.ubuntu-fr.org/variables_d_environnement o http://packages.debian.org/fr/lenny/xdg-user-dirs o http://fr.wikipedia.org/wiki/Freedesktop.org o http://www.planet-libre.org/index.php?post_id=3340 o http://www.ziki.com/en/linuxerie+128366/post/xdg-base-directory-specification-french-traduction-francaise+11044640 o http://linuxerie.midiblogs.com/tag/freedesktop - Update for bitrate parameter from APE to MP3 - Deposit of XCFA: 4.2.7~beta1 - Après une discussion avec Jérôme, re-codage du parsing pour prise en compte des différentes fonctions disponibles depuis o CD->Arrangement des titres du CD o Préférences->CD->Dossier de stockage - Deposit of XCFA: 4.2.7~beta2 - Deposit of XCFA: 4.2.7~beta3 - Deposit of XCFA: 4.2.7 ======================================== | 4.2.6 | | 4.2.6~beta0 | ======================================== - Update algorithm for recovering image files on the Net - Deposit of XCFA: 4.2.6~beta0 - Deposit of XCFA: 4.2.6 ======================================== | 4.2.5 | | 4.2.5~beta0 .. 4.2.5~beta3 | ======================================== - Update cue file with PERFORMER - @Jerome: o Test libcurl + cd-discid: ok o "Preferences" -> onglet "CD" -> "Dossier de stockage" Les caracteres espace ne sont plus remplaces par un underline Les caracteres accentues sont acceptes o Onglet "CD" -> "Album" le champ "Album" ne concatene plus "Artist + Album" mais uniquement "Album" o Onglet "CD" -> "Modification des tags Freedb" -> "Commentaires" Conserver le champ "Commentaire" d'une fois sur l'autre (meme vide) o Onglet "CD" -> "Modification des tags Freedb" -> "Genre" Saisie possible d'une categorie Completion de la saisie clavier o Onglet "CD" -> "DiscId" Disponible uniquement si plusieurs choix o Ajouts d'options en ligne de commande: o -Version : active le mode 'bavard' pour ne pas surcharger $HOME/.xsession-errors o -Verbose : affiche le numero de version et quitte xcfa - Deposit of XCFA: 4.2.5~beta0 - Deposit of XCFA: 4.2.5~beta1 - Deposit of XCFA: 4.2.5~beta2 - Deposit of XCFA: 4.2.5 - Deposit of XCFA: 4.2.5~beta3 ======================================== | 4.2.4 | | 4.2.4~beta0 .. 4.2.4~beta1 | ======================================== - Probleme resolu sous frugalware avec le lieu de stockage de vte.h o Success of compilate by @Devil505: xcfa-4.2.4~beta0 - Deposit of XCFA: 4.2.4~beta1 - Deposit of XCFA: 4.2.4 ======================================== | 4.2.3 | | 4.2.3~beta0 .. 4.2.3~beta2 | ======================================== - Correctif Gestion Proxy: o Suppression des librairies LibCDIO et LibCDDB o Utilisation de LibCURL et de cd-discid o Tests by @Gounlaf - Deposit of XCFA: 4.2.3~beta0 - Correctif module cd_curl.c - Deposit of XCFA: 4.2.3~beta1 - Update es.po - Add VTE terminal for expert extraction - Deposit of XCFA: 4.2.3~beta2 - Deposit of XCFA: 4.2.3 ======================================== | 4.2.2 | | 4.2.2~beta0 .. 4.2.2~beta11 | ======================================== - Alexandre Fromion: Intégration de l'extraction de la partie musicale de fichiers VIDEO M4A - Correction avancement barre de progression - Deposit of XCFA: 4.2.2~beta1 - @Gounlaf: Plantage suite à connexion à travers un proxy o Codage pour une connexion via un proxy - Deposit of XCFA: 4.2.2~beta2 - Codage reaffichage du spectre en mode play : gain de temps pour le CPU - Modification codage Gestion Proxy. Tests by @Gounlaf - Deposit of XCFA: 4.2.2~beta3 - Deposit of XCFA: 4.2.2~beta4 - Modification codage affichage du spectre en mode play : gain de temps pour le CPU - Deposit of XCFA: 4.2.2~beta5 - Modification codage Gestion Proxy. Tests by @Gounlaf - Deposit of XCFA: 4.2.2~beta6 - Correctif Gestion Proxy - Deposit of XCFA: 4.2.2~beta7 - Correctif Gestion Proxy. Tests by @Gounlaf - Correctif rafraichissement curseur lecture du spectre - Deposit of XCFA: 4.2.2~beta8 - Ajout dans onglet CD du choix parmis les differentes bases de donnees pour le CD. - Deposit of XCFA: 4.2.2~beta9 - Correctif module cddb.c - Deposit of XCFA: 4.2.2~beta11 ======================================== | 4.2.1 | | 4.2.1~beta0 .. 4.2.1~beta1 | ======================================== - Nettoyage structures fichiers H et C - @LeDub: Depuis "CD->Gestion des tags...": Resolution d'une insertion d'une eperluette ( & ) - Correction eperluette ( & ) File->modification_nom_fichier - Deposit of XCFA: 4.2.1~beta0 - recodage de configuser.c - Deposit of XCFA: 4.2.1~beta1 - Deposit of XCFA: 4.2.1 ======================================== | 4.2.0 | | 4.2.0~beta0 .. 4.2.0~beta5 | ======================================== - CAIRO library integration for the tab Pocket o See: http://www.xcfa.tuxfamily.org/index.php?article8/coder-avec-cairo - Deposit of XCFA: 4.2.0~beta1 - Roland: Intégration d'une possibilité de jouer une musique en fin de tâche - Deposit of XCFA: 4.2.0~beta2 - correctif pour l'internationalisation - Deposit of XCFA: 4.2.0~beta3 - la reconnaissance des entetes de fichiers ne fait (presque) plus appel a la commande 'file' qui est capricieuse suivant les distributions Gnu/Linux :/ - Deposit of XCFA: 4.2.0~beta4 - correctif ReplayGain et extraction-cd - Deposit of XCFA: 4.2.0~beta5 - Deposit of XCFA: 4.2.0 ======================================== | 4.1.0 | | 4.1.0~beta0 | ======================================== - rewrite of the module popup_systray.c - @gounlaf: Restitution correcte du parametre de debit des preferences pour le format mp3 - Fixed Drag & Drop from the File tab to export files - @soupaloignon: modification de 'License' en 'Licence' dans fr.po - Deposit of XCFA: 4.1.0~beta0 - Deposit of XCFA: 4.1.0 ======================================== | 4.0.9 | | 4.0.9~beta0 | ======================================== - Modification sur le test de presence de [ icedax et/ou cdda2wav ] pour les distribution n'incluant pas icedax - Deposit of XCFA: 4.0.9 et 4.0.9~beta0 ======================================== | 4.0.8 | | 4.0.8~beta0 .. 4.0.8~beta1 | ======================================== - In split: Added refresh after a zoom with [ Crtl + Scroll ] - Deposit of XCFA: 4.0.8~beta0 - Deposit of XCFA: 4.0.8 et 4.0.8~beta1 ======================================== | 4.0.7 | | 4.0.7~beta0 .. 4.0.7~beta4 | ======================================== - Complete rewrite of the module split: synchronization scroll and display - Codage messages de la StatusBar - Debug combobox choix dvd - Deposit of XCFA: 4.0.7~beta2 - Correction utf8 module file.c - Deposit of XCFA: 4.0.7~beta3 - Ajout importation du format WMA dans l'onglet Split - Deposit of XCFA: 4.0.7 et 4.0.7~beta4 ======================================== | 4.0.6 | | 4.0.6~beta0 .. 4.0.6~beta1 | ======================================== - Fabrice: Récupération correcte des information du CD lors d'une non connexion ou si aucune base n'existe. - Brett Cornwall o Reecriture du manpage - [ Hurd ] Problème avec ESTRPIPE qui n'existe pas sous hurd ! o solved with code [ #ifdef ESTRPIPE ] - Deposit of XCFA ======================================== | 4.0.5 | | 4.0.5~beta0 .. 4.0.5~beta3 | ======================================== - Creation des fichiers de traduction en_GB.po et nl.po - Acces correct à la lecture d'un fichier contenant une structure de type dvd - BUG: Debian Bug report logs - #618972 [ http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=618972 ] o kfreebsd: module [ cd_cddb.c ] o Abandon de ioctl.h et cdrom.h qui sont remplaces par LIBCDIO o hurd: module [ alsa_audio.c ] o Ajout de errno.h qui définit la variable ESTRPIPE - Deposit of XCFA ======================================== | 4.0.4 | | 4.0.4~beta1 .. 4.0.4~beta9 | ======================================== - Ajout d'une icône dans la barre de tâche: o popup_systray.c -> PopupSystray_init () - Adaptation de xcfa.glade sous Debian Squeeze avec glade 3.6.7 : l'utilisation de gtk-builder-convert n'est plus necessaire - @Tetsumaki : Ajout fonction depuis [ CD->Arrangement des titres du CD ] o %Tl ( Tetsumaki lower ): Toutes les lettres du titres CD en minuscule sauf la premiere. o Le ou les caracteres devant être conserves doivent être precedes par % - @marnux : Correction suite a plantage lecture cd-audio - @marnux : Correction de l'analyse de l'entree AUTEUR / TITRE_ALBUM avec suppression du slash. - Depuis [ CD->Arrangement des titres du CD ], possibilite de redefinition des tags %a et %b %a ou %a="Artiste" %b ou %a="Album" - @Gounlaf : extraction wav -> mp3 -> fail (fichiers trop petits en faits) o Il s'agissait simplement d'un temps d'attente obligatoire juste apres une operation de [ NORMALISE_EXEC Wav -> PEAK/GROUP ] qui etait sense etre prit en compte par la fonction g_usleep() que j'ai tres simplement remplace par sleep() qui fait nettement mieux son boulot. - Suppression de l'alerte indiquant l'absence du paquet LIBNOTIFY-BIN - @manuker: Correction suite à lecture de mauvais entête de fichier wav. C'est ici ... - Correction de l'appel de mpcenc pour une conversion de format - Amelioration de la reconnaissance de l'entête de fichier au format mpc - @zzero79 : Possibilte d'insertion de caracteres accentues dans un nom de dossiers pour une extraction. - Remplacement partiel de Icedax par LIBCURL o Correspondance correcte des genres de l'onglet CD o Ajout d'un menu de selection par genre (folk, rock, ...) o Depuis la version 4.0.4~beta6, le fichier modifie de icedax n'est plus necessaire. - Remplacement de LIBCURL par LIBCDDB - Correction de la lecture du DataTrack depuis icedax - A la demande de @mdos, creation d'une nouvelle fonction permettant de supprimer tous les accents dans les titres de fichiers depuis l'onglet CD. Je me suis inspire le l'algo.: Ignorer les diacritiques de FreetuxTV. - Deposit of XCFA ======================================== | 4.0.3 | | 4.0.3~beta1 .. 4.0.3~beta2 | ======================================== - Reconnaissance de yaourt et pacman sous ArchLinux pour affichage type de paquet depuis l'onglet > Applications Externes - @Didier : Choix des parametres: o cddbp-server=servername : definit le serveur a contacter pour les recherches titre o cddbp-port=portnumber : definit le nombre de port a utiliser pour les recherches titre - @Leonux: l'utilitaire txt2html n'est pas present sous FrugalWare :/ o Suppression de l'utilisation de l'utilitaire txt2html qui est remplace par quelques lignes de codes en C. - Avertissement si xcfa est utilise sous root - Deposit of XCFA ======================================== | 4.0.2 | | 4.0.2~beta1 | ======================================== - @Tetsumaki : demande de modification de: [ $HOME/.config/xcfa_new/ ] en [ $HOME/.config/xcfa/ ] - Debug correct du freeze sous ArchLinux - Debug d'un mauvais type depuis file_analyse.c - Deposit of XCFA ======================================== | 4.0.1 | | 4.0.1~beta3 | ======================================== - @Marillat_Christian: Probleme de compil sous KFreeBSD #ifdef __FreeBSD_kernel__ #include if( err == -BSM_ERRNO_ESTRPIPE) { #else if( err == -ESTRPIPE) { #endif - Suppression de l'utilisation des wXXcodecs pour mplayer - Debug (temporaire/passif) d'un freeze sous ARCHLINUX avec @Tetsumaki - Deposit of XCFA ======================================== | 4.0.0 | | 4.0.0~beta1 .. 4.0.0~beta22 | ======================================== - creation d'un nouveau squelette avec 'basebuild' - redefinition integrale du fichier glade - . - .. - ... - les conversions sont ok avec le trash - popup ajoutes - traduction FR ok - TST: @zarer: tests paquet deb - mise a jour de configure.in via autoscan - @zarer: ajout d'une selection automatique de lignes apres un chargement de fichiers - affichage des images dans le selecteur d'images depuis onglet pochette - remplacement de TIME SIZE par Temps Taille - Les modifications de noms dvd et fichiers sont indiques en couleur rouge - integration d'une lecture de plusieurs fichiers depuis le bureau - correction reconnaissance mp3 avec: MP3 file OU MPEG ADTS, layer III OU MP3 encoding OU XWD X Window Dump image dat - correction code DragAndDop avec une liberation correcte de chaine precedemment allouee - TST: @leonux: tests paquet rpm apres conversion avec alien - Indication du nombre maximal de normalisations possibles depuis Fichiers->Conversions o La taille du buffer statique de pointeurs est actuellement egal a 200 - Bascule dans l'onglet Fichiers->Conversions si un download de fichiers est fait depuis le bureau - @zarer: completer le manpage qui est vide - Laurent : gestion utf8 a completer fichier 'file_tags.c" - Modification url pour le site de Christophe: o http://www.road2mayotte.org/blook/ - @zarer: bug conversion ogg vers mp3 resolu - @patachonf : reconnaissance fichier APE - amelioration reconnaissance fichiers MP3 - Modification de l'url pour Frugalware a la demande de @Devil505 - @Hizoka: Inclusion du format AC3 en decompression depuis l'onglet 'Fichiers' : Ok dans la b21 - Gestion des accents dans l'onglet Pochette pour le PostScript: Ok dans la b22 - @leonux : codage de bulles d'aide - Guillaume : s'occupe de la traduction en Italien o it.po - OK - Merci Guillaume :D - completer les traductions: en.po et de.po puis passer le relais o en.po - OK - Thank you very much Gerry Butlter :D o de.po - OK - TODO: completer parametres pour le navigateur - TODO: codage onglet Split o Alsa est utilise pour la lecture o Conversion vers WAV suite a importation de WAV FLAC OGG MP3 APE o Adaptation du code de lecture de fichier wav trouve depuis high-geek.com Mon ajout de modification du code est en rapport avec la partie “data subchunk” qui n’est pas forcement tout de suite derriere le “fmt subchunk” :/ Ref: tags.h et tags_wav.c o Rectification erreur de chevauchement de plage: Ok dans la b21 o Probleme de conversion sous Squeeze avec SOX: Ok dans la b20 o Reconnaissance des fichiers AC3 pour ne plus interferer avec les MP3: Ok dans la b21 o TODO: Undo o TODO: Importation de formats supplementaires (en cours ...) - Deposit of XCFA xcfa-4.3.6/missing0000755000175000017500000002557711400750713011003 00000000000000#! /bin/sh # Common stub for a few missing GNU programs while installing. scriptversion=2006-05-10.23 # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006 # Free Software Foundation, Inc. # Originally by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi run=: sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' sed_minuso='s/.* -o \([^ ]*\).*/\1/p' # In the cases where this matters, `missing' is being run in the # srcdir already. if test -f configure.ac; then configure_ac=configure.ac else configure_ac=configure.in fi msg="missing on your system" case $1 in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 # Exit code 63 means version mismatch. This often happens # when the user try to use an ancient version of a tool on # a file that requires a minimum version. In this case we # we should proceed has if the program had been absent, or # if --run hadn't been passed. if test $? = 63; then run=: msg="probably too old" fi ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit --run try to run the given command, and emulate it if it fails Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' autom4te touch the output file, or create a stub one automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file tar try tar, gnutar, gtar, then tar without non-portable flags yacc create \`y.tab.[ch]', if possible, from existing .[ch] Send bug reports to ." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit $? ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; esac # Now exit if we have it, but it failed. Also exit now if we # don't have it and --version was passed (most likely to detect # the program). case $1 in lex|yacc) # Not GNU programs, they don't have --version. ;; tar) if test -n "$run"; then echo 1>&2 "ERROR: \`tar' requires --run" exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then exit 1 fi ;; *) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then # Could not run --version or --help. This is probably someone # running `$TOOL --version' or `$TOOL --help' to check whether # $TOOL exists and not knowing $TOOL uses missing. exit 1 fi ;; esac # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. case $1 in aclocal*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` test -z "$files" && files="config.h" touch_files= for f in $files; do case $f in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; autom4te) echo 1>&2 "\ WARNING: \`$1' is needed, but is $msg. You might have modified some files without having the proper tools for further handling them. You can get \`$1' as part of \`Autoconf' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo "#! /bin/sh" echo "# Created by GNU Automake missing as a replacement of" echo "# $ $@" echo "exit 0" chmod +x $file exit 1 fi ;; bison|yacc) echo 1>&2 "\ WARNING: \`$1' $msg. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if test $# -ne 1; then eval LASTARG="\${$#}" case $LASTARG in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.h fi ;; esac fi if test ! -f y.tab.h; then echo >y.tab.h fi if test ! -f y.tab.c; then echo 'main() { return 0; }' >y.tab.c fi ;; lex|flex) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if test $# -ne 1; then eval LASTARG="\${$#}" case $LASTARG in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if test ! -f lex.yy.c; then echo 'main() { return 0; }' >lex.yy.c fi ;; help2man) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a dependency of a manual page. You may need the \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit 1 fi ;; makeinfo) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." # The file to touch is that specified with -o ... file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -z "$file"; then # ... or it is the one specified with @setfilename ... infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n ' /^@setfilename/{ s/.* \([^ ]*\) *$/\1/ p q }' $infile` # ... or it is derived from the source name (dir/f.texi becomes f.info) test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info fi # If the file does not exist, the user really needs makeinfo; # let's fail without touching anything. test -f $file || exit 1 touch $file ;; tar) shift # We have already tried tar in the generic part. # Look for gnutar/gtar before invocation to avoid ugly error # messages. if (gnutar --version > /dev/null 2>&1); then gnutar "$@" && exit 0 fi if (gtar --version > /dev/null 2>&1); then gtar "$@" && exit 0 fi firstarg="$1" if shift; then case $firstarg in *o*) firstarg=`echo "$firstarg" | sed s/o//` tar "$firstarg" "$@" && exit 0 ;; esac case $firstarg in *h*) firstarg=`echo "$firstarg" | sed s/h//` tar "$firstarg" "$@" && exit 0 ;; esac fi echo 1>&2 "\ WARNING: I can't seem to be able to run \`tar' with the given arguments. You may want to install GNU tar or Free paxutils, or check the command line arguments." exit 1 ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and is $msg. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: xcfa-4.3.6/AUTHORS0000644000175000017500000000003111427113023010422 00000000000000B U L I N Claude - fr xcfa-4.3.6/configure0000755000175000017500000126726312224542370011317 00000000000000#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.67 for xcfa 4.3.6. # # Report bugs to . # # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, # 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software # Foundation, Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 test \$(( 1 + 1 )) = 2 || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir/$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : CONFIG_SHELL=$as_shell as_have_required=yes if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : break 2 fi fi done;; esac as_found=false done $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : CONFIG_SHELL=$SHELL as_have_required=yes fi; } IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV export CONFIG_SHELL exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} fi if test x$as_have_required = xno; then : $as_echo "$0: This script requires a shell more modern than all" $as_echo "$0: the shells that I found on your system." if test x${ZSH_VERSION+set} = xset ; then $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org and $0: http://www.xcfa.tuxfamily.org/ about your system, $0: including any error possibly output before this $0: message. Then install a modern shell, or manually run $0: the script under such a shell if you do have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in #( -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME='xcfa' PACKAGE_TARNAME='xcfa' PACKAGE_VERSION='4.3.6' PACKAGE_STRING='xcfa 4.3.6' PACKAGE_BUGREPORT='http://www.xcfa.tuxfamily.org/' PACKAGE_URL='http://www.xcfa.tuxfamily.org/' ac_unique_file="src/main.c" ac_default_prefix=/usr/local gt_needs= # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef STDC_HEADERS # include # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #ifdef HAVE_STRING_H # if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include # endif # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" ac_subst_vars='am__EXEEXT_FALSE am__EXEEXT_TRUE LTLIBOBJS PACKAGE_LIBS PACKAGE_CFLAGS PKG_CONFIG_LIBDIR PKG_CONFIG_PATH PKG_CONFIG LIBOBJS GETTEXT_PACKAGE POSUB LTLIBINTL LIBINTL INTLLIBS LTLIBICONV LIBICONV INTL_MACOSX_LIBS EGREP GREP host_os host_vendor host_cpu host build_os build_vendor build_cpu build XGETTEXT_EXTRA_OPTIONS MSGMERGE XGETTEXT_015 XGETTEXT GMSGFMT_015 MSGFMT_015 GMSGFMT MSGFMT GETTEXT_MACRO_VERSION USE_NLS INSTALL_PREFIX RANLIB XMKMF CPP am__fastdepCC_FALSE am__fastdepCC_TRUE CCDEPMODE ac_ct_CC CFLAGS CC am__fastdepCXX_FALSE am__fastdepCXX_TRUE CXXDEPMODE AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE am__quote am__include DEPDIR OBJEXT EXEEXT ac_ct_CXX CPPFLAGS LDFLAGS CXXFLAGS CXX AM_BACKSLASH AM_DEFAULT_VERBOSITY am__untar am__tar AMTAR am__leading_dot SET_MAKE AWK mkdir_p MKDIR_P INSTALL_STRIP_PROGRAM STRIP install_sh MAKEINFO AUTOHEADER AUTOMAKE AUTOCONF ACLOCAL VERSION PACKAGE CYGPATH_W am__isrc INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking enable_silent_rules enable_dependency_tracking with_x enable_nls with_gnu_ld enable_rpath with_libiconv_prefix with_libintl_prefix enable_debug_pg enable_debug enable_ansi ' ac_precious_vars='build_alias host_alias target_alias CXX CXXFLAGS LDFLAGS LIBS CPPFLAGS CCC CC CFLAGS CPP XMKMF PKG_CONFIG PKG_CONFIG_PATH PKG_CONFIG_LIBDIR PACKAGE_CFLAGS PACKAGE_LIBS' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *=) ac_optarg= ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error $? "unrecognized option: \`$ac_option' Try \`$0 --help' for more information" ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used" >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures xcfa 4.3.6 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/xcfa] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names X features: --x-includes=DIR X include files are in DIR --x-libraries=DIR X library files are in DIR System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of xcfa 4.3.6:";; esac cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-silent-rules less verbose build output (undo: `make V=1') --disable-silent-rules verbose build output (undo: `make V=0') --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors --disable-nls do not use Native Language Support --disable-rpath do not hardcode runtime library paths --disable-debug-pg Enable debug mode (default=disable) --disable-debug Disable debug mode (default=disable) --disable-ansi Enable ansi (default=enabled) Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-x use the X Window System --with-gnu-ld assume the C compiler uses GNU ld default=no --with-libiconv-prefix[=DIR] search for libiconv in DIR/include and DIR/lib --without-libiconv-prefix don't search for libiconv in includedir and libdir --with-libintl-prefix[=DIR] search for libintl in DIR/include and DIR/lib --without-libintl-prefix don't search for libintl in includedir and libdir Some influential environment variables: CXX C++ compiler command CXXFLAGS C++ compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory CC C compiler command CFLAGS C compiler flags CPP C preprocessor XMKMF Path to xmkmf, Makefile generator for X Window System PKG_CONFIG path to pkg-config utility PKG_CONFIG_PATH directories to add to pkg-config's search path PKG_CONFIG_LIBDIR path overriding pkg-config's built-in search path PACKAGE_CFLAGS C compiler flags for PACKAGE, overriding pkg-config PACKAGE_LIBS linker flags for PACKAGE, overriding pkg-config Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to . xcfa home page: . _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF xcfa configure 4.3.6 generated by GNU Autoconf 2.67 Copyright (C) 2010 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## # ac_fn_cxx_try_compile LINENO # ---------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_cxx_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_cxx_try_compile # ac_fn_c_try_compile LINENO # -------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_c_try_compile # ac_fn_c_try_cpp LINENO # ---------------------- # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } > conftest.i && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_c_try_cpp # ac_fn_c_try_link LINENO # ----------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_c_try_link # ac_fn_c_try_run LINENO # ---------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes # that executables *can* be run. ac_fn_c_try_run () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : ac_retval=0 else $as_echo "$as_me: program exited with status $ac_status" >&5 $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_c_try_run # ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists, giving a warning if it cannot be compiled using # the include files in INCLUDES and setting the cache variable VAR # accordingly. ac_fn_c_check_header_mongrel () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if eval "test \"\${$3+set}\"" = set; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval "test \"\${$3+set}\"" = set; then : $as_echo_n "(cached) " >&6 fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 $as_echo_n "checking $2 usability... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_header_compiler=yes else ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 $as_echo_n "checking $2 presence... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <$2> _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : ac_header_preproc=yes else ac_header_preproc=no fi rm -f conftest.err conftest.i conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( yes:no: ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ;; no:yes:* ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ( $as_echo "## --------------------------------------------- ## ## Report this to http://www.xcfa.tuxfamily.org/ ## ## --------------------------------------------- ##" ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval "test \"\${$3+set}\"" = set; then : $as_echo_n "(cached) " >&6 else eval "$3=\$ac_header_compiler" fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_c_check_header_mongrel # ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists and can be compiled using the include files in # INCLUDES, setting the cache variable VAR accordingly. ac_fn_c_check_header_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval "test \"\${$3+set}\"" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_c_check_header_compile # ac_fn_c_check_type LINENO TYPE VAR INCLUDES # ------------------------------------------- # Tests whether TYPE exists after having included INCLUDES, setting cache # variable VAR accordingly. ac_fn_c_check_type () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval "test \"\${$3+set}\"" = set; then : $as_echo_n "(cached) " >&6 else eval "$3=no" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof ($2)) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof (($2))) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else eval "$3=yes" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_c_check_type # ac_fn_c_find_intX_t LINENO BITS VAR # ----------------------------------- # Finds a signed integer type with width BITS, setting cache variable VAR # accordingly. ac_fn_c_find_intX_t () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for int$2_t" >&5 $as_echo_n "checking for int$2_t... " >&6; } if eval "test \"\${$3+set}\"" = set; then : $as_echo_n "(cached) " >&6 else eval "$3=no" # Order is important - never check a type that is potentially smaller # than half of the expected target width. for ac_type in int$2_t 'int' 'long int' \ 'long long int' 'short int' 'signed char'; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default enum { N = $2 / 2 - 1 }; int main () { static int test_array [1 - 2 * !(0 < ($ac_type) ((((($ac_type) 1 << N) << N) - 1) * 2 + 1))]; test_array [0] = 0 ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default enum { N = $2 / 2 - 1 }; int main () { static int test_array [1 - 2 * !(($ac_type) ((((($ac_type) 1 << N) << N) - 1) * 2 + 1) < ($ac_type) ((((($ac_type) 1 << N) << N) - 1) * 2 + 2))]; test_array [0] = 0 ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else case $ac_type in #( int$2_t) : eval "$3=yes" ;; #( *) : eval "$3=\$ac_type" ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if eval test \"x\$"$3"\" = x"no"; then : else break fi done fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_c_find_intX_t # ac_fn_c_check_func LINENO FUNC VAR # ---------------------------------- # Tests whether FUNC exists, setting the cache variable VAR accordingly ac_fn_c_check_func () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval "test \"\${$3+set}\"" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Define $2 to an innocuous variant, in case declares $2. For example, HP-UX 11i declares gettimeofday. */ #define $2 innocuous_$2 /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $2 (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $2 /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $2 (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$2 || defined __stub___$2 choke me #endif int main () { return $2 (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_c_check_func cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by xcfa $as_me 4.3.6, which was generated by GNU Autoconf 2.67. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo $as_echo "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo $as_echo "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then $as_echo "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then $as_echo "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h $as_echo "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_URL "$PACKAGE_URL" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then # We do not want a PATH search for config.site. case $CONFIG_SITE in #(( -*) ac_site_file1=./$CONFIG_SITE;; */*) ac_site_file1=$CONFIG_SITE;; *) ac_site_file1=./$CONFIG_SITE;; esac elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5 ; } fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi gt_needs="$gt_needs " gt_needs="$gt_needs " # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu am__api_version='1.11' ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in #(( ./ | .// | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 $as_echo_n "checking whether build environment is sane... " >&6; } # Just in case sleep 1 echo timestamp > conftest.file # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[\\\"\#\$\&\'\`$am_lf]*) as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5 ;; esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5 ;; esac # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi rm -f conftest.file if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". as_fn_error $? "ls -t appears to fail. Make sure there is not a broken alias in your environment" "$LINENO" 5 fi test "$2" = conftest.file ) then # Ok. : else as_fn_error $? "newly created file is older than distributed files! Check your system clock" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" # Double any \ or $. # By default was `s,x,x', remove it if useless. ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5 $as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} fi if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_STRIP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then if test "${ac_cv_path_mkdir+set}" = set; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir (GNU coreutils) '* | \ 'mkdir (coreutils) '* | \ 'mkdir (fileutils) '4.1*) ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext break 3;; esac done done done IFS=$as_save_IFS fi test -d ./--version && rmdir ./--version if test "${ac_cv_path_mkdir+set}" = set; then MKDIR_P="$ac_cv_path_mkdir -p" else # As a last resort, use the slow shell script. Don't cache a # value for MKDIR_P within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. MKDIR_P="$ac_install_sh -d" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 $as_echo "$MKDIR_P" >&6; } mkdir_p="$MKDIR_P" case $mkdir_p in [\\/$]* | ?:[\\/]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_AWK+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 $as_echo "$AWK" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AWK" && break done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\"" = set; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE='xcfa' VERSION='4.3.6' cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. AMTAR=${AMTAR-"${am_missing_run}tar"} am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' ac_config_headers="$ac_config_headers config.h" # Enable silent rules if supported # Check whether --enable-silent-rules was given. if test "${enable_silent_rules+set}" = set; then : enableval=$enable_silent_rules; fi case $enable_silent_rules in yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=0;; esac AM_BACKSLASH='\' # Checks for programs. ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu if test -z "$CXX"; then if test -n "$CCC"; then CXX=$CCC else if test -n "$ac_tool_prefix"; then for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CXX+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CXX"; then ac_cv_prog_CXX="$CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CXX=$ac_cv_prog_CXX if test -n "$CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 $as_echo "$CXX" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CXX" && break done fi if test -z "$CXX"; then ac_ct_CXX=$CXX for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CXX"; then ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CXX="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CXX=$ac_cv_prog_ac_ct_CXX if test -n "$ac_ct_CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5 $as_echo "$ac_ct_CXX" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CXX" && break done if test "x$ac_ct_CXX" = x; then CXX="g++" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CXX=$ac_ct_CXX fi fi fi fi # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C++ compiler works" >&5 $as_echo_n "checking whether the C++ compiler works... " >&6; } ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { { ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi if test -z "$ac_file"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "C++ compiler cannot create executables See \`config.log' for more details" "$LINENO" 5 ; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler default output file name" >&5 $as_echo_n "checking for C++ compiler default output file name... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 $as_echo "$ac_file" >&6; } ac_exeext=$ac_cv_exeext rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 $as_echo_n "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of executables: cannot compile and link See \`config.log' for more details" "$LINENO" 5 ; } fi rm -f conftest conftest$ac_cv_exeext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 $as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { FILE *f = fopen ("conftest.out", "w"); return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF ac_clean_files="$ac_clean_files conftest.out" # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 $as_echo_n "checking whether we are cross compiling... " >&6; } if test "$cross_compiling" != yes; then { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if { ac_try='./conftest$ac_cv_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run C++ compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details" "$LINENO" 5 ; } fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 $as_echo "$cross_compiling" >&6; } rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } if test "${ac_cv_objext+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of object files: cannot compile See \`config.log' for more details" "$LINENO" 5 ; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 $as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5 $as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; } if test "${ac_cv_cxx_compiler_gnu+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_cxx_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5 $as_echo "$ac_cv_cxx_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GXX=yes else GXX= fi ac_test_CXXFLAGS=${CXXFLAGS+set} ac_save_CXXFLAGS=$CXXFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5 $as_echo_n "checking whether $CXX accepts -g... " >&6; } if test "${ac_cv_prog_cxx_g+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_save_cxx_werror_flag=$ac_cxx_werror_flag ac_cxx_werror_flag=yes ac_cv_prog_cxx_g=no CXXFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_prog_cxx_g=yes else CXXFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : else ac_cxx_werror_flag=$ac_save_cxx_werror_flag CXXFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_prog_cxx_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cxx_werror_flag=$ac_save_cxx_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5 $as_echo "$ac_cv_prog_cxx_g" >&6; } if test "$ac_test_CXXFLAGS" = set; then CXXFLAGS=$ac_save_CXXFLAGS elif test $ac_cv_prog_cxx_g = yes; then if test "$GXX" = yes; then CXXFLAGS="-g -O2" else CXXFLAGS="-g" fi else if test "$GXX" = yes; then CXXFLAGS="-O2" else CXXFLAGS= fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 $as_echo_n "checking for style of include used by $am_make... " >&6; } am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from `make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 $as_echo "$_am_result" >&6; } rm -f confinc confmf # Check whether --enable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then : enableval=$enable_dependency_tracking; fi if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= fi depcc="$CXX" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CXX_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CXX_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CXX_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5 $as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; } CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then am__fastdepCXX_TRUE= am__fastdepCXX_FALSE='#' else am__fastdepCXX_TRUE='#' am__fastdepCXX_FALSE= fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5 ; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if test "${ac_cv_c_compiler_gnu+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if test "${ac_cv_prog_cc_g+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if test "${ac_cv_prog_cc_c89+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CC" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 $as_echo_n "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if test "${ac_cv_prog_CPP+set}" = set; then : $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 $as_echo "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details" "$LINENO" 5 ; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\"" = set; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for X" >&5 $as_echo_n "checking for X... " >&6; } # Check whether --with-x was given. if test "${with_x+set}" = set; then : withval=$with_x; fi # $have_x is `yes', `no', `disabled', or empty when we do not yet know. if test "x$with_x" = xno; then # The user explicitly disabled X. have_x=disabled else case $x_includes,$x_libraries in #( *\'*) as_fn_error $? "cannot use X directory names containing '" "$LINENO" 5 ;; #( *,NONE | NONE,*) if test "${ac_cv_have_x+set}" = set; then : $as_echo_n "(cached) " >&6 else # One or both of the vars are not set, and there is no cached value. ac_x_includes=no ac_x_libraries=no rm -f -r conftest.dir if mkdir conftest.dir; then cd conftest.dir cat >Imakefile <<'_ACEOF' incroot: @echo incroot='${INCROOT}' usrlibdir: @echo usrlibdir='${USRLIBDIR}' libdir: @echo libdir='${LIBDIR}' _ACEOF if (export CC; ${XMKMF-xmkmf}) >/dev/null 2>/dev/null && test -f Makefile; then # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. for ac_var in incroot usrlibdir libdir; do eval "ac_im_$ac_var=\`\${MAKE-make} $ac_var 2>/dev/null | sed -n 's/^$ac_var=//p'\`" done # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR. for ac_extension in a so sl dylib la dll; do if test ! -f "$ac_im_usrlibdir/libX11.$ac_extension" && test -f "$ac_im_libdir/libX11.$ac_extension"; then ac_im_usrlibdir=$ac_im_libdir; break fi done # Screen out bogus values from the imake configuration. They are # bogus both because they are the default anyway, and because # using them would break gcc on systems where it needs fixed includes. case $ac_im_incroot in /usr/include) ac_x_includes= ;; *) test -f "$ac_im_incroot/X11/Xos.h" && ac_x_includes=$ac_im_incroot;; esac case $ac_im_usrlibdir in /usr/lib | /usr/lib64 | /lib | /lib64) ;; *) test -d "$ac_im_usrlibdir" && ac_x_libraries=$ac_im_usrlibdir ;; esac fi cd .. rm -f -r conftest.dir fi # Standard set of common directories for X headers. # Check X11 before X11Rn because it is often a symlink to the current release. ac_x_header_dirs=' /usr/X11/include /usr/X11R7/include /usr/X11R6/include /usr/X11R5/include /usr/X11R4/include /usr/include/X11 /usr/include/X11R7 /usr/include/X11R6 /usr/include/X11R5 /usr/include/X11R4 /usr/local/X11/include /usr/local/X11R7/include /usr/local/X11R6/include /usr/local/X11R5/include /usr/local/X11R4/include /usr/local/include/X11 /usr/local/include/X11R7 /usr/local/include/X11R6 /usr/local/include/X11R5 /usr/local/include/X11R4 /usr/X386/include /usr/x386/include /usr/XFree86/include/X11 /usr/include /usr/local/include /usr/unsupported/include /usr/athena/include /usr/local/x11r5/include /usr/lpp/Xamples/include /usr/openwin/include /usr/openwin/share/include' if test "$ac_x_includes" = no; then # Guess where to find include files, by looking for Xlib.h. # First, try using that file with no special directory specified. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # We can compile using X headers with no special include directory. ac_x_includes= else for ac_dir in $ac_x_header_dirs; do if test -r "$ac_dir/X11/Xlib.h"; then ac_x_includes=$ac_dir break fi done fi rm -f conftest.err conftest.i conftest.$ac_ext fi # $ac_x_includes = no if test "$ac_x_libraries" = no; then # Check for the libraries. # See if we find them without any special options. # Don't add to $LIBS permanently. ac_save_LIBS=$LIBS LIBS="-lX11 $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { XrmInitialize () ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : LIBS=$ac_save_LIBS # We can link X programs with no special library path. ac_x_libraries= else LIBS=$ac_save_LIBS for ac_dir in `$as_echo "$ac_x_includes $ac_x_header_dirs" | sed s/include/lib/g` do # Don't even attempt the hair of trying to link an X program! for ac_extension in a so sl dylib la dll; do if test -r "$ac_dir/libX11.$ac_extension"; then ac_x_libraries=$ac_dir break 2 fi done done fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi # $ac_x_libraries = no case $ac_x_includes,$ac_x_libraries in #( no,* | *,no | *\'*) # Didn't find X, or a directory has "'" in its name. ac_cv_have_x="have_x=no";; #( *) # Record where we found X for the cache. ac_cv_have_x="have_x=yes\ ac_x_includes='$ac_x_includes'\ ac_x_libraries='$ac_x_libraries'" esac fi ;; #( *) have_x=yes;; esac eval "$ac_cv_have_x" fi # $with_x != no if test "$have_x" != yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_x" >&5 $as_echo "$have_x" >&6; } no_x=yes else # If each of the values was on the command line, it overrides each guess. test "x$x_includes" = xNONE && x_includes=$ac_x_includes test "x$x_libraries" = xNONE && x_libraries=$ac_x_libraries # Update the cache value to reflect the command line values. ac_cv_have_x="have_x=yes\ ac_x_includes='$x_includes'\ ac_x_libraries='$x_libraries'" { $as_echo "$as_me:${as_lineno-$LINENO}: result: libraries $x_libraries, headers $x_includes" >&5 $as_echo "libraries $x_libraries, headers $x_includes" >&6; } fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_RANLIB+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 $as_echo "$RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_RANLIB="ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 $as_echo "$ac_ct_RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_RANLIB" = x; then RANLIB=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac RANLIB=$ac_ct_RANLIB fi else RANLIB="$ac_cv_prog_RANLIB" fi if test "x$CC" != xcc; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC and cc understand -c and -o together" >&5 $as_echo_n "checking whether $CC and cc understand -c and -o together... " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cc understands -c and -o together" >&5 $as_echo_n "checking whether cc understands -c and -o together... " >&6; } fi set dummy $CC; ac_cc=`$as_echo "$2" | sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'` if eval "test \"\${ac_cv_prog_cc_${ac_cc}_c_o+set}\"" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF # Make sure it works both with $CC and with simple cc. # We do the test twice because some compilers refuse to overwrite an # existing .o file with -o, though they will create one. ac_try='$CC -c conftest.$ac_ext -o conftest2.$ac_objext >&5' rm -f conftest2.* if { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -f conftest2.$ac_objext && { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then eval ac_cv_prog_cc_${ac_cc}_c_o=yes if test "x$CC" != xcc; then # Test first that cc exists at all. if { ac_try='cc -c conftest.$ac_ext >&5' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then ac_try='cc -c conftest.$ac_ext -o conftest2.$ac_objext >&5' rm -f conftest2.* if { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -f conftest2.$ac_objext && { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then # cc works too. : else # cc exists but doesn't like -o. eval ac_cv_prog_cc_${ac_cc}_c_o=no fi fi fi else eval ac_cv_prog_cc_${ac_cc}_c_o=no fi rm -f core conftest* fi if eval test \$ac_cv_prog_cc_${ac_cc}_c_o = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } $as_echo "#define NO_MINUS_C_MINUS_O 1" >>confdefs.h fi # FIXME: we rely on the cache variable name because # there is no other way. set dummy $CC am_cc=`echo $2 | sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'` eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o if test "$am_t" != yes; then # Losing compiler, so override with the script. # FIXME: It is wrong to rewrite CC. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__CC in this case, # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" CC="$am_aux_dir/compile $CC" fi $as_echo "#define ENABLE_STATIC_LIBRARY 1" >>confdefs.h # Set PREFIX: ./configure OR ./configure --prefix=/usr if [ $prefix = "NONE" ] ; then $as_echo "#define INSTALL_PREFIX \"/usr/local\"" >>confdefs.h else cat >>confdefs.h <<_ACEOF #define INSTALL_PREFIX "$prefix" _ACEOF fi # Set used name package glade: *.glade or *.ui $as_echo "#define PACKAGE_NAME_GLADE \"xcfa.glade\"" >>confdefs.h $as_echo "#define PACKAGE_NAME_GLADE_UI \"xcfa.ui\"" >>confdefs.h # nls support { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nls mode support" >&5 $as_echo_n "checking for nls mode support... " >&6; } XCFA_LANG="en en_GB es fr de it nl" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5 $as_echo_n "checking whether NLS is requested... " >&6; } # Check whether --enable-nls was given. if test "${enable_nls+set}" = set; then : enableval=$enable_nls; USE_NLS=$enableval else USE_NLS=yes fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 $as_echo "$USE_NLS" >&6; } GETTEXT_MACRO_VERSION=0.18 # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi # Find out how to test for executable files. Don't use a zero-byte file, # as systems may use methods other than mode bits to determine executability. cat >conf$$.file <<_ASEOF #! /bin/sh exit 0 _ASEOF chmod +x conf$$.file if test -x conf$$.file >/dev/null 2>&1; then ac_executable_p="test -x" else ac_executable_p="test -f" fi rm -f conf$$.file # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_MSGFMT+set}" = set; then : $as_echo_n "(cached) " >&6 else case "$MSGFMT" in [\\/]* | ?:[\\/]*) ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. ;; *) ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$ac_save_IFS" test -z "$ac_dir" && ac_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then echo "$as_me: trying $ac_dir/$ac_word..." >&5 if $ac_dir/$ac_word --statistics /dev/null >&5 2>&1 && (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then ac_cv_path_MSGFMT="$ac_dir/$ac_word$ac_exec_ext" break 2 fi fi done done IFS="$ac_save_IFS" test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":" ;; esac fi MSGFMT="$ac_cv_path_MSGFMT" if test "$MSGFMT" != ":"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 $as_echo "$MSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_GMSGFMT+set}" = set; then : $as_echo_n "(cached) " >&6 else case $GMSGFMT in [\\/]* | ?:[\\/]*) ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" ;; esac fi GMSGFMT=$ac_cv_path_GMSGFMT if test -n "$GMSGFMT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 $as_echo "$GMSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi case `$MSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) MSGFMT_015=: ;; *) MSGFMT_015=$MSGFMT ;; esac case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;; *) GMSGFMT_015=$GMSGFMT ;; esac # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi # Find out how to test for executable files. Don't use a zero-byte file, # as systems may use methods other than mode bits to determine executability. cat >conf$$.file <<_ASEOF #! /bin/sh exit 0 _ASEOF chmod +x conf$$.file if test -x conf$$.file >/dev/null 2>&1; then ac_executable_p="test -x" else ac_executable_p="test -f" fi rm -f conf$$.file # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_XGETTEXT+set}" = set; then : $as_echo_n "(cached) " >&6 else case "$XGETTEXT" in [\\/]* | ?:[\\/]*) ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. ;; *) ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$ac_save_IFS" test -z "$ac_dir" && ac_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then echo "$as_me: trying $ac_dir/$ac_word..." >&5 if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&5 2>&1 && (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then ac_cv_path_XGETTEXT="$ac_dir/$ac_word$ac_exec_ext" break 2 fi fi done done IFS="$ac_save_IFS" test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" ;; esac fi XGETTEXT="$ac_cv_path_XGETTEXT" if test "$XGETTEXT" != ":"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 $as_echo "$XGETTEXT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi rm -f messages.po case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;; *) XGETTEXT_015=$XGETTEXT ;; esac # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi # Find out how to test for executable files. Don't use a zero-byte file, # as systems may use methods other than mode bits to determine executability. cat >conf$$.file <<_ASEOF #! /bin/sh exit 0 _ASEOF chmod +x conf$$.file if test -x conf$$.file >/dev/null 2>&1; then ac_executable_p="test -x" else ac_executable_p="test -f" fi rm -f conf$$.file # Extract the first word of "msgmerge", so it can be a program name with args. set dummy msgmerge; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_MSGMERGE+set}" = set; then : $as_echo_n "(cached) " >&6 else case "$MSGMERGE" in [\\/]* | ?:[\\/]*) ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path. ;; *) ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$ac_save_IFS" test -z "$ac_dir" && ac_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then echo "$as_me: trying $ac_dir/$ac_word..." >&5 if $ac_dir/$ac_word --update -q /dev/null /dev/null >&5 2>&1; then ac_cv_path_MSGMERGE="$ac_dir/$ac_word$ac_exec_ext" break 2 fi fi done done IFS="$ac_save_IFS" test -z "$ac_cv_path_MSGMERGE" && ac_cv_path_MSGMERGE=":" ;; esac fi MSGMERGE="$ac_cv_path_MSGMERGE" if test "$MSGMERGE" != ":"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5 $as_echo "$MSGMERGE" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$localedir" || localedir='${datadir}/locale' test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS= ac_config_commands="$ac_config_commands po-directories" if test "X$prefix" = "XNONE"; then acl_final_prefix="$ac_default_prefix" else acl_final_prefix="$prefix" fi if test "X$exec_prefix" = "XNONE"; then acl_final_exec_prefix='${prefix}' else acl_final_exec_prefix="$exec_prefix" fi acl_save_prefix="$prefix" prefix="$acl_final_prefix" eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" prefix="$acl_save_prefix" # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 $as_echo_n "checking build system type... " >&6; } if test "${ac_cv_build+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 $as_echo "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; *) as_fn_error $? "invalid value of canonical build" "$LINENO" 5 ;; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' set x $ac_cv_build shift build_cpu=$1 build_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: build_os=$* IFS=$ac_save_IFS case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 $as_echo_n "checking host system type... " >&6; } if test "${ac_cv_host+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 $as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; *) as_fn_error $? "invalid value of canonical host" "$LINENO" 5 ;; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' set x $ac_cv_host shift host_cpu=$1 host_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: host_os=$* IFS=$ac_save_IFS case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac # Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then : withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by GCC" >&5 $as_echo_n "checking for ld used by GCC... " >&6; } case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | [A-Za-z]:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the path of ld ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 $as_echo_n "checking for GNU ld... " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 $as_echo_n "checking for non-GNU ld... " >&6; } fi if test "${acl_cv_path_LD+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -z "$LD"; then IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then acl_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some GNU ld's only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in *GNU* | *'with BFD'*) test "$with_gnu_ld" != no && break ;; *) test "$with_gnu_ld" != yes && break ;; esac fi done IFS="$ac_save_ifs" else acl_cv_path_LD="$LD" # Let the user override the test with a path. fi fi LD="$acl_cv_path_LD" if test -n "$LD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5 $as_echo "$LD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if test "${acl_cv_prog_gnu_ld+set}" = set; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU ld's only accept -v. case `$LD -v 2>&1 &5 $as_echo "$acl_cv_prog_gnu_ld" >&6; } with_gnu_ld=$acl_cv_prog_gnu_ld { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shared library run path origin" >&5 $as_echo_n "checking for shared library run path origin... " >&6; } if test "${acl_cv_rpath+set}" = set; then : $as_echo_n "(cached) " >&6 else CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh . ./conftest.sh rm -f ./conftest.sh acl_cv_rpath=done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acl_cv_rpath" >&5 $as_echo "$acl_cv_rpath" >&6; } wl="$acl_cv_wl" acl_libext="$acl_cv_libext" acl_shlibext="$acl_cv_shlibext" acl_libname_spec="$acl_cv_libname_spec" acl_library_names_spec="$acl_cv_library_names_spec" acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" acl_hardcode_direct="$acl_cv_hardcode_direct" acl_hardcode_minus_L="$acl_cv_hardcode_minus_L" # Check whether --enable-rpath was given. if test "${enable_rpath+set}" = set; then : enableval=$enable_rpath; : else enable_rpath=yes fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } if test "${ac_cv_path_GREP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_GREP=$GREP fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 $as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } if test "${ac_cv_path_EGREP+set}" = set; then : $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else if test -z "$EGREP"; then ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_EGREP=$EGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 $as_echo "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" acl_libdirstem=lib acl_libdirstem2= case "$host_os" in solaris*) { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit host" >&5 $as_echo_n "checking for 64-bit host... " >&6; } if test "${gl_cv_solaris_64bit+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef _LP64 sixtyfour bits #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "sixtyfour bits" >/dev/null 2>&1; then : gl_cv_solaris_64bit=yes else gl_cv_solaris_64bit=no fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_solaris_64bit" >&5 $as_echo "$gl_cv_solaris_64bit" >&6; } if test $gl_cv_solaris_64bit = yes; then acl_libdirstem=lib/64 case "$host_cpu" in sparc*) acl_libdirstem2=lib/sparcv9 ;; i*86 | x86_64) acl_libdirstem2=lib/amd64 ;; esac fi ;; *) searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` if test -n "$searchpath"; then acl_save_IFS="${IFS= }"; IFS=":" for searchdir in $searchpath; do if test -d "$searchdir"; then case "$searchdir" in */lib64/ | */lib64 ) acl_libdirstem=lib64 ;; */../ | */.. ) # Better ignore directories of this form. They are misleading. ;; *) searchdir=`cd "$searchdir" && pwd` case "$searchdir" in */lib64 ) acl_libdirstem=lib64 ;; esac ;; esac fi done IFS="$acl_save_IFS" fi ;; esac test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem" use_additional=yes acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" # Check whether --with-libiconv-prefix was given. if test "${with_libiconv_prefix+set}" = set; then : withval=$with_libiconv_prefix; if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" else additional_includedir="$withval/include" additional_libdir="$withval/$acl_libdirstem" if test "$acl_libdirstem2" != "$acl_libdirstem" \ && ! test -d "$withval/$acl_libdirstem"; then additional_libdir="$withval/$acl_libdirstem2" fi fi fi fi LIBICONV= LTLIBICONV= INCICONV= LIBICONV_PREFIX= HAVE_LIBICONV= rpathdirs= ltrpathdirs= names_already_handled= names_next_round='iconv ' while test -n "$names_next_round"; do names_this_round="$names_next_round" names_next_round= for name in $names_this_round; do already_handled= for n in $names_already_handled; do if test "$n" = "$name"; then already_handled=yes break fi done if test -z "$already_handled"; then names_already_handled="$names_already_handled $name" uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` eval value=\"\$HAVE_LIB$uppername\" if test -n "$value"; then if test "$value" = yes; then eval value=\"\$LIB$uppername\" test -z "$value" || LIBICONV="${LIBICONV}${LIBICONV:+ }$value" eval value=\"\$LTLIB$uppername\" test -z "$value" || LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$value" else : fi else found_dir= found_la= found_so= found_a= eval libname=\"$acl_libname_spec\" # typically: libname=lib$name if test -n "$acl_shlibext"; then shrext=".$acl_shlibext" # typically: shrext=.so else shrext= fi if test $use_additional = yes; then dir="$additional_libdir" if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext"; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi fi if test "X$found_dir" = "X"; then for x in $LDFLAGS $LTLIBICONV; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" case "$x" in -L*) dir=`echo "X$x" | sed -e 's/^X-L//'` if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext"; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi ;; esac if test "X$found_dir" != "X"; then break fi done fi if test "X$found_dir" != "X"; then LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$found_dir -l$name" if test "X$found_so" != "X"; then if test "$enable_rpath" = no \ || test "X$found_dir" = "X/usr/$acl_libdirstem" \ || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" else haveit= for x in $ltrpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $found_dir" fi if test "$acl_hardcode_direct" = yes; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" else if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" haveit= for x in $rpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $found_dir" fi else haveit= for x in $LDFLAGS $LIBICONV; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir" fi if test "$acl_hardcode_minus_L" != no; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" else LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name" fi fi fi fi else if test "X$found_a" != "X"; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_a" else LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir -l$name" fi fi additional_includedir= case "$found_dir" in */$acl_libdirstem | */$acl_libdirstem/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` if test "$name" = 'iconv'; then LIBICONV_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; */$acl_libdirstem2 | */$acl_libdirstem2/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` if test "$name" = 'iconv'; then LIBICONV_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; esac if test "X$additional_includedir" != "X"; then if test "X$additional_includedir" != "X/usr/include"; then haveit= if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then for x in $CPPFLAGS $INCICONV; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_includedir"; then INCICONV="${INCICONV}${INCICONV:+ }-I$additional_includedir" fi fi fi fi fi if test -n "$found_la"; then save_libdir="$libdir" case "$found_la" in */* | *\\*) . "$found_la" ;; *) . "./$found_la" ;; esac libdir="$save_libdir" for dep in $dependency_libs; do case "$dep" in -L*) additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \ && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then haveit= if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \ || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then haveit= for x in $LDFLAGS $LIBICONV; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then LIBICONV="${LIBICONV}${LIBICONV:+ }-L$additional_libdir" fi fi haveit= for x in $LDFLAGS $LTLIBICONV; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$additional_libdir" fi fi fi fi ;; -R*) dir=`echo "X$dep" | sed -e 's/^X-R//'` if test "$enable_rpath" != no; then haveit= for x in $rpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $dir" fi haveit= for x in $ltrpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $dir" fi fi ;; -l*) names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` ;; *.la) names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` ;; *) LIBICONV="${LIBICONV}${LIBICONV:+ }$dep" LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$dep" ;; esac done fi else LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name" LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-l$name" fi fi fi done done if test "X$rpathdirs" != "X"; then if test -n "$acl_hardcode_libdir_separator"; then alldirs= for found_dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" done acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" else for found_dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$found_dir" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" done fi fi if test "X$ltrpathdirs" != "X"; then for found_dir in $ltrpathdirs; do LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-R$found_dir" done fi # Check whether --enable-nls was given. if test "${enable_nls+set}" = set; then : enableval=$enable_nls; if test "$enableval" = "yes"; then ALL_LINGUAS=$XCFA_LANG { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFPreferencesCopyAppValue" >&5 $as_echo_n "checking for CFPreferencesCopyAppValue... " >&6; } if test "${gt_cv_func_CFPreferencesCopyAppValue+set}" = set; then : $as_echo_n "(cached) " >&6 else gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { CFPreferencesCopyAppValue(NULL, NULL) ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gt_cv_func_CFPreferencesCopyAppValue=yes else gt_cv_func_CFPreferencesCopyAppValue=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$gt_save_LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFPreferencesCopyAppValue" >&5 $as_echo "$gt_cv_func_CFPreferencesCopyAppValue" >&6; } if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then $as_echo "#define HAVE_CFPREFERENCESCOPYAPPVALUE 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFLocaleCopyCurrent" >&5 $as_echo_n "checking for CFLocaleCopyCurrent... " >&6; } if test "${gt_cv_func_CFLocaleCopyCurrent+set}" = set; then : $as_echo_n "(cached) " >&6 else gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { CFLocaleCopyCurrent(); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gt_cv_func_CFLocaleCopyCurrent=yes else gt_cv_func_CFLocaleCopyCurrent=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$gt_save_LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFLocaleCopyCurrent" >&5 $as_echo "$gt_cv_func_CFLocaleCopyCurrent" >&6; } if test $gt_cv_func_CFLocaleCopyCurrent = yes; then $as_echo "#define HAVE_CFLOCALECOPYCURRENT 1" >>confdefs.h fi INTL_MACOSX_LIBS= if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" fi LIBINTL= LTLIBINTL= POSUB= case " $gt_needs " in *" need-formatstring-macros "*) gt_api_version=3 ;; *" need-ngettext "*) gt_api_version=2 ;; *) gt_api_version=1 ;; esac gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc" gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl" if test "$USE_NLS" = "yes"; then gt_use_preinstalled_gnugettext=no if test $gt_api_version -ge 3; then gt_revision_test_code=' #ifndef __GNU_GETTEXT_SUPPORTED_REVISION #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) #endif typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; ' else gt_revision_test_code= fi if test $gt_api_version -ge 2; then gt_expression_test_code=' + * ngettext ("", "", 0)' else gt_expression_test_code= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libc" >&5 $as_echo_n "checking for GNU gettext in libc... " >&6; } if eval "test \"\${$gt_func_gnugettext_libc+set}\"" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include $gt_revision_test_code extern int _nl_msg_cat_cntr; extern int *_nl_domain_bindings; int main () { bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_bindings ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$gt_func_gnugettext_libc=yes" else eval "$gt_func_gnugettext_libc=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$gt_func_gnugettext_libc { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then am_save_CPPFLAGS="$CPPFLAGS" for element in $INCICONV; do haveit= for x in $CPPFLAGS; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X$element"; then haveit=yes break fi done if test -z "$haveit"; then CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5 $as_echo_n "checking for iconv... " >&6; } if test "${am_cv_func_iconv+set}" = set; then : $as_echo_n "(cached) " >&6 else am_cv_func_iconv="no, consider installing GNU libiconv" am_cv_lib_iconv=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : am_cv_func_iconv=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test "$am_cv_func_iconv" != yes; then am_save_LIBS="$LIBS" LIBS="$LIBS $LIBICONV" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : am_cv_lib_iconv=yes am_cv_func_iconv=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$am_save_LIBS" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv" >&5 $as_echo "$am_cv_func_iconv" >&6; } if test "$am_cv_func_iconv" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working iconv" >&5 $as_echo_n "checking for working iconv... " >&6; } if test "${am_cv_func_iconv_works+set}" = set; then : $as_echo_n "(cached) " >&6 else am_save_LIBS="$LIBS" if test $am_cv_lib_iconv = yes; then LIBS="$LIBS $LIBICONV" fi if test "$cross_compiling" = yes; then : case "$host_os" in aix* | hpux*) am_cv_func_iconv_works="guessing no" ;; *) am_cv_func_iconv_works="guessing yes" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { /* Test against AIX 5.1 bug: Failures are not distinguishable from successful returns. */ { iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8"); if (cd_utf8_to_88591 != (iconv_t)(-1)) { static const char input[] = "\342\202\254"; /* EURO SIGN */ char buf[10]; const char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_utf8_to_88591, (char **) &inptr, &inbytesleft, &outptr, &outbytesleft); if (res == 0) return 1; } } /* Test against Solaris 10 bug: Failures are not distinguishable from successful returns. */ { iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646"); if (cd_ascii_to_88591 != (iconv_t)(-1)) { static const char input[] = "\263"; char buf[10]; const char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_ascii_to_88591, (char **) &inptr, &inbytesleft, &outptr, &outbytesleft); if (res == 0) return 1; } } #if 0 /* This bug could be worked around by the caller. */ /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */ { iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591"); if (cd_88591_to_utf8 != (iconv_t)(-1)) { static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; char buf[50]; const char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_88591_to_utf8, (char **) &inptr, &inbytesleft, &outptr, &outbytesleft); if ((int)res > 0) return 1; } } #endif /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is provided. */ if (/* Try standardized names. */ iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1) /* Try IRIX, OSF/1 names. */ && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1) /* Try AIX names. */ && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1) /* Try HP-UX names. */ && iconv_open ("utf8", "eucJP") == (iconv_t)(-1)) return 1; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : am_cv_func_iconv_works=yes else am_cv_func_iconv_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi LIBS="$am_save_LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv_works" >&5 $as_echo "$am_cv_func_iconv_works" >&6; } case "$am_cv_func_iconv_works" in *no) am_func_iconv=no am_cv_lib_iconv=no ;; *) am_func_iconv=yes ;; esac else am_func_iconv=no am_cv_lib_iconv=no fi if test "$am_func_iconv" = yes; then $as_echo "#define HAVE_ICONV 1" >>confdefs.h fi if test "$am_cv_lib_iconv" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libiconv" >&5 $as_echo_n "checking how to link with libiconv... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBICONV" >&5 $as_echo "$LIBICONV" >&6; } else CPPFLAGS="$am_save_CPPFLAGS" LIBICONV= LTLIBICONV= fi use_additional=yes acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" # Check whether --with-libintl-prefix was given. if test "${with_libintl_prefix+set}" = set; then : withval=$with_libintl_prefix; if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" else additional_includedir="$withval/include" additional_libdir="$withval/$acl_libdirstem" if test "$acl_libdirstem2" != "$acl_libdirstem" \ && ! test -d "$withval/$acl_libdirstem"; then additional_libdir="$withval/$acl_libdirstem2" fi fi fi fi LIBINTL= LTLIBINTL= INCINTL= LIBINTL_PREFIX= HAVE_LIBINTL= rpathdirs= ltrpathdirs= names_already_handled= names_next_round='intl ' while test -n "$names_next_round"; do names_this_round="$names_next_round" names_next_round= for name in $names_this_round; do already_handled= for n in $names_already_handled; do if test "$n" = "$name"; then already_handled=yes break fi done if test -z "$already_handled"; then names_already_handled="$names_already_handled $name" uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` eval value=\"\$HAVE_LIB$uppername\" if test -n "$value"; then if test "$value" = yes; then eval value=\"\$LIB$uppername\" test -z "$value" || LIBINTL="${LIBINTL}${LIBINTL:+ }$value" eval value=\"\$LTLIB$uppername\" test -z "$value" || LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$value" else : fi else found_dir= found_la= found_so= found_a= eval libname=\"$acl_libname_spec\" # typically: libname=lib$name if test -n "$acl_shlibext"; then shrext=".$acl_shlibext" # typically: shrext=.so else shrext= fi if test $use_additional = yes; then dir="$additional_libdir" if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext"; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi fi if test "X$found_dir" = "X"; then for x in $LDFLAGS $LTLIBINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" case "$x" in -L*) dir=`echo "X$x" | sed -e 's/^X-L//'` if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext"; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi ;; esac if test "X$found_dir" != "X"; then break fi done fi if test "X$found_dir" != "X"; then LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$found_dir -l$name" if test "X$found_so" != "X"; then if test "$enable_rpath" = no \ || test "X$found_dir" = "X/usr/$acl_libdirstem" \ || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" else haveit= for x in $ltrpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $found_dir" fi if test "$acl_hardcode_direct" = yes; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" else if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" haveit= for x in $rpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $found_dir" fi else haveit= for x in $LDFLAGS $LIBINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir" fi if test "$acl_hardcode_minus_L" != no; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" else LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name" fi fi fi fi else if test "X$found_a" != "X"; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_a" else LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir -l$name" fi fi additional_includedir= case "$found_dir" in */$acl_libdirstem | */$acl_libdirstem/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` if test "$name" = 'intl'; then LIBINTL_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; */$acl_libdirstem2 | */$acl_libdirstem2/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` if test "$name" = 'intl'; then LIBINTL_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; esac if test "X$additional_includedir" != "X"; then if test "X$additional_includedir" != "X/usr/include"; then haveit= if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then for x in $CPPFLAGS $INCINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_includedir"; then INCINTL="${INCINTL}${INCINTL:+ }-I$additional_includedir" fi fi fi fi fi if test -n "$found_la"; then save_libdir="$libdir" case "$found_la" in */* | *\\*) . "$found_la" ;; *) . "./$found_la" ;; esac libdir="$save_libdir" for dep in $dependency_libs; do case "$dep" in -L*) additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \ && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then haveit= if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \ || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then haveit= for x in $LDFLAGS $LIBINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then LIBINTL="${LIBINTL}${LIBINTL:+ }-L$additional_libdir" fi fi haveit= for x in $LDFLAGS $LTLIBINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$additional_libdir" fi fi fi fi ;; -R*) dir=`echo "X$dep" | sed -e 's/^X-R//'` if test "$enable_rpath" != no; then haveit= for x in $rpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $dir" fi haveit= for x in $ltrpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $dir" fi fi ;; -l*) names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` ;; *.la) names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` ;; *) LIBINTL="${LIBINTL}${LIBINTL:+ }$dep" LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$dep" ;; esac done fi else LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name" LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-l$name" fi fi fi done done if test "X$rpathdirs" != "X"; then if test -n "$acl_hardcode_libdir_separator"; then alldirs= for found_dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" done acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIBINTL="${LIBINTL}${LIBINTL:+ }$flag" else for found_dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$found_dir" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIBINTL="${LIBINTL}${LIBINTL:+ }$flag" done fi fi if test "X$ltrpathdirs" != "X"; then for found_dir in $ltrpathdirs; do LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-R$found_dir" done fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libintl" >&5 $as_echo_n "checking for GNU gettext in libintl... " >&6; } if eval "test \"\${$gt_func_gnugettext_libintl+set}\"" = set; then : $as_echo_n "(cached) " >&6 else gt_save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $INCINTL" gt_save_LIBS="$LIBS" LIBS="$LIBS $LIBINTL" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include $gt_revision_test_code extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias (const char *); int main () { bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("") ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$gt_func_gnugettext_libintl=yes" else eval "$gt_func_gnugettext_libintl=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then LIBS="$LIBS $LIBICONV" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include $gt_revision_test_code extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias (const char *); int main () { bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("") ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : LIBINTL="$LIBINTL $LIBICONV" LTLIBINTL="$LTLIBINTL $LTLIBICONV" eval "$gt_func_gnugettext_libintl=yes" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi CPPFLAGS="$gt_save_CPPFLAGS" LIBS="$gt_save_LIBS" fi eval ac_res=\$$gt_func_gnugettext_libintl { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \ || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \ && test "$PACKAGE" != gettext-runtime \ && test "$PACKAGE" != gettext-tools; }; then gt_use_preinstalled_gnugettext=yes else LIBINTL= LTLIBINTL= INCINTL= fi if test -n "$INTL_MACOSX_LIBS"; then if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then LIBINTL="$LIBINTL $INTL_MACOSX_LIBS" LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS" fi fi if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then $as_echo "#define ENABLE_NLS 1" >>confdefs.h else USE_NLS=no fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use NLS" >&5 $as_echo_n "checking whether to use NLS... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 $as_echo "$USE_NLS" >&6; } if test "$USE_NLS" = "yes"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking where the gettext function comes from" >&5 $as_echo_n "checking where the gettext function comes from... " >&6; } if test "$gt_use_preinstalled_gnugettext" = "yes"; then if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then gt_source="external libintl" else gt_source="libc" fi else gt_source="included intl directory" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_source" >&5 $as_echo "$gt_source" >&6; } fi if test "$USE_NLS" = "yes"; then if test "$gt_use_preinstalled_gnugettext" = "yes"; then if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libintl" >&5 $as_echo_n "checking how to link with libintl... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBINTL" >&5 $as_echo "$LIBINTL" >&6; } for element in $INCINTL; do haveit= for x in $CPPFLAGS; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X$element"; then haveit=yes break fi done if test -z "$haveit"; then CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" fi done fi $as_echo "#define HAVE_GETTEXT 1" >>confdefs.h $as_echo "#define HAVE_DCGETTEXT 1" >>confdefs.h fi POSUB=po fi INTLLIBS="$LIBINTL" $as_echo "#define ENABLE_NLS 1" >>confdefs.h else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } ALL_LINGUAS= USE_NLS="no" fi else ALL_LINGUAS=$XCFA_LANG { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFPreferencesCopyAppValue" >&5 $as_echo_n "checking for CFPreferencesCopyAppValue... " >&6; } if test "${gt_cv_func_CFPreferencesCopyAppValue+set}" = set; then : $as_echo_n "(cached) " >&6 else gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { CFPreferencesCopyAppValue(NULL, NULL) ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gt_cv_func_CFPreferencesCopyAppValue=yes else gt_cv_func_CFPreferencesCopyAppValue=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$gt_save_LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFPreferencesCopyAppValue" >&5 $as_echo "$gt_cv_func_CFPreferencesCopyAppValue" >&6; } if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then $as_echo "#define HAVE_CFPREFERENCESCOPYAPPVALUE 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFLocaleCopyCurrent" >&5 $as_echo_n "checking for CFLocaleCopyCurrent... " >&6; } if test "${gt_cv_func_CFLocaleCopyCurrent+set}" = set; then : $as_echo_n "(cached) " >&6 else gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { CFLocaleCopyCurrent(); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gt_cv_func_CFLocaleCopyCurrent=yes else gt_cv_func_CFLocaleCopyCurrent=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$gt_save_LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFLocaleCopyCurrent" >&5 $as_echo "$gt_cv_func_CFLocaleCopyCurrent" >&6; } if test $gt_cv_func_CFLocaleCopyCurrent = yes; then $as_echo "#define HAVE_CFLOCALECOPYCURRENT 1" >>confdefs.h fi INTL_MACOSX_LIBS= if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" fi LIBINTL= LTLIBINTL= POSUB= case " $gt_needs " in *" need-formatstring-macros "*) gt_api_version=3 ;; *" need-ngettext "*) gt_api_version=2 ;; *) gt_api_version=1 ;; esac gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc" gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl" if test "$USE_NLS" = "yes"; then gt_use_preinstalled_gnugettext=no if test $gt_api_version -ge 3; then gt_revision_test_code=' #ifndef __GNU_GETTEXT_SUPPORTED_REVISION #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) #endif typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; ' else gt_revision_test_code= fi if test $gt_api_version -ge 2; then gt_expression_test_code=' + * ngettext ("", "", 0)' else gt_expression_test_code= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libc" >&5 $as_echo_n "checking for GNU gettext in libc... " >&6; } if eval "test \"\${$gt_func_gnugettext_libc+set}\"" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include $gt_revision_test_code extern int _nl_msg_cat_cntr; extern int *_nl_domain_bindings; int main () { bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_bindings ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$gt_func_gnugettext_libc=yes" else eval "$gt_func_gnugettext_libc=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$gt_func_gnugettext_libc { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then am_save_CPPFLAGS="$CPPFLAGS" for element in $INCICONV; do haveit= for x in $CPPFLAGS; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X$element"; then haveit=yes break fi done if test -z "$haveit"; then CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5 $as_echo_n "checking for iconv... " >&6; } if test "${am_cv_func_iconv+set}" = set; then : $as_echo_n "(cached) " >&6 else am_cv_func_iconv="no, consider installing GNU libiconv" am_cv_lib_iconv=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : am_cv_func_iconv=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test "$am_cv_func_iconv" != yes; then am_save_LIBS="$LIBS" LIBS="$LIBS $LIBICONV" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : am_cv_lib_iconv=yes am_cv_func_iconv=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$am_save_LIBS" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv" >&5 $as_echo "$am_cv_func_iconv" >&6; } if test "$am_cv_func_iconv" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working iconv" >&5 $as_echo_n "checking for working iconv... " >&6; } if test "${am_cv_func_iconv_works+set}" = set; then : $as_echo_n "(cached) " >&6 else am_save_LIBS="$LIBS" if test $am_cv_lib_iconv = yes; then LIBS="$LIBS $LIBICONV" fi if test "$cross_compiling" = yes; then : case "$host_os" in aix* | hpux*) am_cv_func_iconv_works="guessing no" ;; *) am_cv_func_iconv_works="guessing yes" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { /* Test against AIX 5.1 bug: Failures are not distinguishable from successful returns. */ { iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8"); if (cd_utf8_to_88591 != (iconv_t)(-1)) { static const char input[] = "\342\202\254"; /* EURO SIGN */ char buf[10]; const char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_utf8_to_88591, (char **) &inptr, &inbytesleft, &outptr, &outbytesleft); if (res == 0) return 1; } } /* Test against Solaris 10 bug: Failures are not distinguishable from successful returns. */ { iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646"); if (cd_ascii_to_88591 != (iconv_t)(-1)) { static const char input[] = "\263"; char buf[10]; const char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_ascii_to_88591, (char **) &inptr, &inbytesleft, &outptr, &outbytesleft); if (res == 0) return 1; } } #if 0 /* This bug could be worked around by the caller. */ /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */ { iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591"); if (cd_88591_to_utf8 != (iconv_t)(-1)) { static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; char buf[50]; const char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_88591_to_utf8, (char **) &inptr, &inbytesleft, &outptr, &outbytesleft); if ((int)res > 0) return 1; } } #endif /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is provided. */ if (/* Try standardized names. */ iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1) /* Try IRIX, OSF/1 names. */ && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1) /* Try AIX names. */ && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1) /* Try HP-UX names. */ && iconv_open ("utf8", "eucJP") == (iconv_t)(-1)) return 1; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : am_cv_func_iconv_works=yes else am_cv_func_iconv_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi LIBS="$am_save_LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv_works" >&5 $as_echo "$am_cv_func_iconv_works" >&6; } case "$am_cv_func_iconv_works" in *no) am_func_iconv=no am_cv_lib_iconv=no ;; *) am_func_iconv=yes ;; esac else am_func_iconv=no am_cv_lib_iconv=no fi if test "$am_func_iconv" = yes; then $as_echo "#define HAVE_ICONV 1" >>confdefs.h fi if test "$am_cv_lib_iconv" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libiconv" >&5 $as_echo_n "checking how to link with libiconv... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBICONV" >&5 $as_echo "$LIBICONV" >&6; } else CPPFLAGS="$am_save_CPPFLAGS" LIBICONV= LTLIBICONV= fi use_additional=yes acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" # Check whether --with-libintl-prefix was given. if test "${with_libintl_prefix+set}" = set; then : withval=$with_libintl_prefix; if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" else additional_includedir="$withval/include" additional_libdir="$withval/$acl_libdirstem" if test "$acl_libdirstem2" != "$acl_libdirstem" \ && ! test -d "$withval/$acl_libdirstem"; then additional_libdir="$withval/$acl_libdirstem2" fi fi fi fi LIBINTL= LTLIBINTL= INCINTL= LIBINTL_PREFIX= HAVE_LIBINTL= rpathdirs= ltrpathdirs= names_already_handled= names_next_round='intl ' while test -n "$names_next_round"; do names_this_round="$names_next_round" names_next_round= for name in $names_this_round; do already_handled= for n in $names_already_handled; do if test "$n" = "$name"; then already_handled=yes break fi done if test -z "$already_handled"; then names_already_handled="$names_already_handled $name" uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` eval value=\"\$HAVE_LIB$uppername\" if test -n "$value"; then if test "$value" = yes; then eval value=\"\$LIB$uppername\" test -z "$value" || LIBINTL="${LIBINTL}${LIBINTL:+ }$value" eval value=\"\$LTLIB$uppername\" test -z "$value" || LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$value" else : fi else found_dir= found_la= found_so= found_a= eval libname=\"$acl_libname_spec\" # typically: libname=lib$name if test -n "$acl_shlibext"; then shrext=".$acl_shlibext" # typically: shrext=.so else shrext= fi if test $use_additional = yes; then dir="$additional_libdir" if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext"; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi fi if test "X$found_dir" = "X"; then for x in $LDFLAGS $LTLIBINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" case "$x" in -L*) dir=`echo "X$x" | sed -e 's/^X-L//'` if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext"; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi ;; esac if test "X$found_dir" != "X"; then break fi done fi if test "X$found_dir" != "X"; then LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$found_dir -l$name" if test "X$found_so" != "X"; then if test "$enable_rpath" = no \ || test "X$found_dir" = "X/usr/$acl_libdirstem" \ || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" else haveit= for x in $ltrpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $found_dir" fi if test "$acl_hardcode_direct" = yes; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" else if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" haveit= for x in $rpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $found_dir" fi else haveit= for x in $LDFLAGS $LIBINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir" fi if test "$acl_hardcode_minus_L" != no; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" else LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name" fi fi fi fi else if test "X$found_a" != "X"; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_a" else LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir -l$name" fi fi additional_includedir= case "$found_dir" in */$acl_libdirstem | */$acl_libdirstem/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` if test "$name" = 'intl'; then LIBINTL_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; */$acl_libdirstem2 | */$acl_libdirstem2/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` if test "$name" = 'intl'; then LIBINTL_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; esac if test "X$additional_includedir" != "X"; then if test "X$additional_includedir" != "X/usr/include"; then haveit= if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then for x in $CPPFLAGS $INCINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_includedir"; then INCINTL="${INCINTL}${INCINTL:+ }-I$additional_includedir" fi fi fi fi fi if test -n "$found_la"; then save_libdir="$libdir" case "$found_la" in */* | *\\*) . "$found_la" ;; *) . "./$found_la" ;; esac libdir="$save_libdir" for dep in $dependency_libs; do case "$dep" in -L*) additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \ && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then haveit= if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \ || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then haveit= for x in $LDFLAGS $LIBINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then LIBINTL="${LIBINTL}${LIBINTL:+ }-L$additional_libdir" fi fi haveit= for x in $LDFLAGS $LTLIBINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$additional_libdir" fi fi fi fi ;; -R*) dir=`echo "X$dep" | sed -e 's/^X-R//'` if test "$enable_rpath" != no; then haveit= for x in $rpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $dir" fi haveit= for x in $ltrpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $dir" fi fi ;; -l*) names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` ;; *.la) names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` ;; *) LIBINTL="${LIBINTL}${LIBINTL:+ }$dep" LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$dep" ;; esac done fi else LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name" LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-l$name" fi fi fi done done if test "X$rpathdirs" != "X"; then if test -n "$acl_hardcode_libdir_separator"; then alldirs= for found_dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" done acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIBINTL="${LIBINTL}${LIBINTL:+ }$flag" else for found_dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$found_dir" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIBINTL="${LIBINTL}${LIBINTL:+ }$flag" done fi fi if test "X$ltrpathdirs" != "X"; then for found_dir in $ltrpathdirs; do LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-R$found_dir" done fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libintl" >&5 $as_echo_n "checking for GNU gettext in libintl... " >&6; } if eval "test \"\${$gt_func_gnugettext_libintl+set}\"" = set; then : $as_echo_n "(cached) " >&6 else gt_save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $INCINTL" gt_save_LIBS="$LIBS" LIBS="$LIBS $LIBINTL" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include $gt_revision_test_code extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias (const char *); int main () { bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("") ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$gt_func_gnugettext_libintl=yes" else eval "$gt_func_gnugettext_libintl=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then LIBS="$LIBS $LIBICONV" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include $gt_revision_test_code extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias (const char *); int main () { bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("") ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : LIBINTL="$LIBINTL $LIBICONV" LTLIBINTL="$LTLIBINTL $LTLIBICONV" eval "$gt_func_gnugettext_libintl=yes" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi CPPFLAGS="$gt_save_CPPFLAGS" LIBS="$gt_save_LIBS" fi eval ac_res=\$$gt_func_gnugettext_libintl { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \ || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \ && test "$PACKAGE" != gettext-runtime \ && test "$PACKAGE" != gettext-tools; }; then gt_use_preinstalled_gnugettext=yes else LIBINTL= LTLIBINTL= INCINTL= fi if test -n "$INTL_MACOSX_LIBS"; then if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then LIBINTL="$LIBINTL $INTL_MACOSX_LIBS" LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS" fi fi if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then $as_echo "#define ENABLE_NLS 1" >>confdefs.h else USE_NLS=no fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use NLS" >&5 $as_echo_n "checking whether to use NLS... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 $as_echo "$USE_NLS" >&6; } if test "$USE_NLS" = "yes"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking where the gettext function comes from" >&5 $as_echo_n "checking where the gettext function comes from... " >&6; } if test "$gt_use_preinstalled_gnugettext" = "yes"; then if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then gt_source="external libintl" else gt_source="libc" fi else gt_source="included intl directory" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_source" >&5 $as_echo "$gt_source" >&6; } fi if test "$USE_NLS" = "yes"; then if test "$gt_use_preinstalled_gnugettext" = "yes"; then if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libintl" >&5 $as_echo_n "checking how to link with libintl... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBINTL" >&5 $as_echo "$LIBINTL" >&6; } for element in $INCINTL; do haveit= for x in $CPPFLAGS; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X$element"; then haveit=yes break fi done if test -z "$haveit"; then CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" fi done fi $as_echo "#define HAVE_GETTEXT 1" >>confdefs.h $as_echo "#define HAVE_DCGETTEXT 1" >>confdefs.h fi POSUB=po fi INTLLIBS="$LIBINTL" $as_echo "#define ENABLE_NLS 1" >>confdefs.h fi GETTEXT_PACKAGE=$PACKAGE cat >>confdefs.h <<_ACEOF #define GETTEXT_PACKAGE "$GETTEXT_PACKAGE" _ACEOF # Checks for libraries. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libutils_test_file_exist in -llib" >&5 $as_echo_n "checking for libutils_test_file_exist in -llib... " >&6; } if test "${ac_cv_lib_lib_libutils_test_file_exist+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-llib $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char libutils_test_file_exist (); int main () { return libutils_test_file_exist (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_lib_libutils_test_file_exist=yes else ac_cv_lib_lib_libutils_test_file_exist=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_lib_libutils_test_file_exist" >&5 $as_echo "$ac_cv_lib_lib_libutils_test_file_exist" >&6; } if test "x$ac_cv_lib_lib_libutils_test_file_exist" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBLIB 1 _ACEOF LIBS="-llib $LIBS" fi # Checks for header files. ac_header_dirent=no for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do as_ac_Header=`$as_echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_hdr that defines DIR" >&5 $as_echo_n "checking for $ac_hdr that defines DIR... " >&6; } if eval "test \"\${$as_ac_Header+set}\"" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include <$ac_hdr> int main () { if ((DIR *) 0) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$as_ac_Header=yes" else eval "$as_ac_Header=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$as_ac_Header { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_hdr" | $as_tr_cpp` 1 _ACEOF ac_header_dirent=$ac_hdr; break fi done # Two versions of opendir et al. are in -ldir and -lx on SCO Xenix. if test $ac_header_dirent = dirent.h; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5 $as_echo_n "checking for library containing opendir... " >&6; } if test "${ac_cv_search_opendir+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char opendir (); int main () { return opendir (); ; return 0; } _ACEOF for ac_lib in '' dir; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_opendir=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if test "${ac_cv_search_opendir+set}" = set; then : break fi done if test "${ac_cv_search_opendir+set}" = set; then : else ac_cv_search_opendir=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5 $as_echo "$ac_cv_search_opendir" >&6; } ac_res=$ac_cv_search_opendir if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5 $as_echo_n "checking for library containing opendir... " >&6; } if test "${ac_cv_search_opendir+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char opendir (); int main () { return opendir (); ; return 0; } _ACEOF for ac_lib in '' x; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_opendir=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if test "${ac_cv_search_opendir+set}" = set; then : break fi done if test "${ac_cv_search_opendir+set}" = set; then : else ac_cv_search_opendir=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5 $as_echo "$ac_cv_search_opendir" >&6; } ac_res=$ac_cv_search_opendir if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if test "${ac_cv_header_stdc+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then $as_echo "#define STDC_HEADERS 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sys/wait.h that is POSIX.1 compatible" >&5 $as_echo_n "checking for sys/wait.h that is POSIX.1 compatible... " >&6; } if test "${ac_cv_header_sys_wait_h+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #ifndef WEXITSTATUS # define WEXITSTATUS(stat_val) ((unsigned int) (stat_val) >> 8) #endif #ifndef WIFEXITED # define WIFEXITED(stat_val) (((stat_val) & 255) == 0) #endif int main () { int s; wait (&s); s = WIFEXITED (s) ? WEXITSTATUS (s) : 1; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_sys_wait_h=yes else ac_cv_header_sys_wait_h=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_sys_wait_h" >&5 $as_echo "$ac_cv_header_sys_wait_h" >&6; } if test $ac_cv_header_sys_wait_h = yes; then $as_echo "#define HAVE_SYS_WAIT_H 1" >>confdefs.h fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default " if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in fcntl.h libintl.h stdlib.h string.h unistd.h sys/time.h math.h locale.h sys/socket.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done # Checks for typedefs, structures, and compiler characteristics. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdbool.h that conforms to C99" >&5 $as_echo_n "checking for stdbool.h that conforms to C99... " >&6; } if test "${ac_cv_header_stdbool_h+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifndef bool "error: bool is not defined" #endif #ifndef false "error: false is not defined" #endif #if false "error: false is not 0" #endif #ifndef true "error: true is not defined" #endif #if true != 1 "error: true is not 1" #endif #ifndef __bool_true_false_are_defined "error: __bool_true_false_are_defined is not defined" #endif struct s { _Bool s: 1; _Bool t; } s; char a[true == 1 ? 1 : -1]; char b[false == 0 ? 1 : -1]; char c[__bool_true_false_are_defined == 1 ? 1 : -1]; char d[(bool) 0.5 == true ? 1 : -1]; bool e = &s; char f[(_Bool) 0.0 == false ? 1 : -1]; char g[true]; char h[sizeof (_Bool)]; char i[sizeof s.t]; enum { j = false, k = true, l = false * true, m = true * 256 }; /* The following fails for HP aC++/ANSI C B3910B A.05.55 [Dec 04 2003]. */ _Bool n[m]; char o[sizeof n == m * sizeof n[0] ? 1 : -1]; char p[-1 - (_Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1]; # if defined __xlc__ || defined __GNUC__ /* Catch a bug in IBM AIX xlc compiler version 6.0.0.0 reported by James Lemley on 2005-10-05; see http://lists.gnu.org/archive/html/bug-coreutils/2005-10/msg00086.html This test is not quite right, since xlc is allowed to reject this program, as the initializer for xlcbug is not one of the forms that C requires support for. However, doing the test right would require a runtime test, and that would make cross-compilation harder. Let us hope that IBM fixes the xlc bug, and also adds support for this kind of constant expression. In the meantime, this test will reject xlc, which is OK, since our stdbool.h substitute should suffice. We also test this with GCC, where it should work, to detect more quickly whether someone messes up the test in the future. */ char digs[] = "0123456789"; int xlcbug = 1 / (&(digs + 5)[-2 + (bool) 1] == &digs[4] ? 1 : -1); # endif /* Catch a bug in an HP-UX C compiler. See http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html */ _Bool q = true; _Bool *pq = &q; int main () { *pq |= q; *pq |= ! q; /* Refer to every declared value, to avoid compiler optimizations. */ return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !!j + !k + !!l + !m + !n + !o + !p + !q + !pq); ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdbool_h=yes else ac_cv_header_stdbool_h=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdbool_h" >&5 $as_echo "$ac_cv_header_stdbool_h" >&6; } ac_fn_c_check_type "$LINENO" "_Bool" "ac_cv_type__Bool" "$ac_includes_default" if test "x$ac_cv_type__Bool" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE__BOOL 1 _ACEOF fi if test $ac_cv_header_stdbool_h = yes; then $as_echo "#define HAVE_STDBOOL_H 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 $as_echo_n "checking for an ANSI C-conforming const... " >&6; } if test "${ac_cv_c_const+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { /* FIXME: Include the comments suggested by Paul. */ #ifndef __cplusplus /* Ultrix mips cc rejects this. */ typedef int charset[2]; const charset cs; /* SunOS 4.1.1 cc rejects this. */ char const *const *pcpcc; char **ppc; /* NEC SVR4.0.2 mips cc rejects this. */ struct point {int x, y;}; static struct point const zero = {0,0}; /* AIX XL C 1.02.0.0 rejects this. It does not let you subtract one const X* pointer from another in an arm of an if-expression whose if-part is not a constant expression */ const char *g = "string"; pcpcc = &g + (g ? g-g : 0); /* HPUX 7.0 cc rejects these. */ ++pcpcc; ppc = (char**) pcpcc; pcpcc = (char const *const *) ppc; { /* SCO 3.2v4 cc rejects this. */ char *t; char const *s = 0 ? (char *) 0 : (char const *) 0; *t++ = 0; if (s) return 0; } { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ int x[] = {25, 17}; const int *foo = &x[0]; ++foo; } { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ typedef const int *iptr; iptr p = 0; ++p; } { /* AIX XL C 1.02.0.0 rejects this saying "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ struct s { int j; const int *ap[3]; }; struct s *b; b->j = 5; } { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ const int foo = 10; if (!foo) return 0; } return !cs[0] && !zero.x; #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_const=yes else ac_cv_c_const=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 $as_echo "$ac_cv_c_const" >&6; } if test $ac_cv_c_const = no; then $as_echo "#define const /**/" >>confdefs.h fi ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default" if test "x$ac_cv_type_pid_t" = x""yes; then : else cat >>confdefs.h <<_ACEOF #define pid_t int _ACEOF fi ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" if test "x$ac_cv_type_size_t" = x""yes; then : else cat >>confdefs.h <<_ACEOF #define size_t unsigned int _ACEOF fi ac_fn_c_check_type "$LINENO" "ssize_t" "ac_cv_type_ssize_t" "$ac_includes_default" if test "x$ac_cv_type_ssize_t" = x""yes; then : else cat >>confdefs.h <<_ACEOF #define ssize_t int _ACEOF fi ac_fn_c_find_intX_t "$LINENO" "64" "ac_cv_c_int64_t" case $ac_cv_c_int64_t in #( no|yes) ;; #( *) cat >>confdefs.h <<_ACEOF #define int64_t $ac_cv_c_int64_t _ACEOF ;; esac # Checks for library functions. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether closedir returns void" >&5 $as_echo_n "checking whether closedir returns void... " >&6; } if test "${ac_cv_func_closedir_void+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ac_cv_func_closedir_void=yes else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default #include <$ac_header_dirent> #ifndef __cplusplus int closedir (); #endif int main () { return closedir (opendir (".")) != 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_closedir_void=no else ac_cv_func_closedir_void=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_closedir_void" >&5 $as_echo "$ac_cv_func_closedir_void" >&6; } if test $ac_cv_func_closedir_void = yes; then $as_echo "#define CLOSEDIR_VOID 1" >>confdefs.h fi for ac_header in vfork.h do : ac_fn_c_check_header_mongrel "$LINENO" "vfork.h" "ac_cv_header_vfork_h" "$ac_includes_default" if test "x$ac_cv_header_vfork_h" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_VFORK_H 1 _ACEOF fi done for ac_func in fork vfork do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done if test "x$ac_cv_func_fork" = xyes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working fork" >&5 $as_echo_n "checking for working fork... " >&6; } if test "${ac_cv_func_fork_works+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ac_cv_func_fork_works=cross else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { /* By Ruediger Kuhlmann. */ return fork () < 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_fork_works=yes else ac_cv_func_fork_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_fork_works" >&5 $as_echo "$ac_cv_func_fork_works" >&6; } else ac_cv_func_fork_works=$ac_cv_func_fork fi if test "x$ac_cv_func_fork_works" = xcross; then case $host in *-*-amigaos* | *-*-msdosdjgpp*) # Override, as these systems have only a dummy fork() stub ac_cv_func_fork_works=no ;; *) ac_cv_func_fork_works=yes ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: result $ac_cv_func_fork_works guessed because of cross compilation" >&5 $as_echo "$as_me: WARNING: result $ac_cv_func_fork_works guessed because of cross compilation" >&2;} fi ac_cv_func_vfork_works=$ac_cv_func_vfork if test "x$ac_cv_func_vfork" = xyes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working vfork" >&5 $as_echo_n "checking for working vfork... " >&6; } if test "${ac_cv_func_vfork_works+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ac_cv_func_vfork_works=cross else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Thanks to Paul Eggert for this test. */ $ac_includes_default #include #ifdef HAVE_VFORK_H # include #endif /* On some sparc systems, changes by the child to local and incoming argument registers are propagated back to the parent. The compiler is told about this with #include , but some compilers (e.g. gcc -O) don't grok . Test for this by using a static variable whose address is put into a register that is clobbered by the vfork. */ static void #ifdef __cplusplus sparc_address_test (int arg) # else sparc_address_test (arg) int arg; #endif { static pid_t child; if (!child) { child = vfork (); if (child < 0) { perror ("vfork"); _exit(2); } if (!child) { arg = getpid(); write(-1, "", 0); _exit (arg); } } } int main () { pid_t parent = getpid (); pid_t child; sparc_address_test (0); child = vfork (); if (child == 0) { /* Here is another test for sparc vfork register problems. This test uses lots of local variables, at least as many local variables as main has allocated so far including compiler temporaries. 4 locals are enough for gcc 1.40.3 on a Solaris 4.1.3 sparc, but we use 8 to be safe. A buggy compiler should reuse the register of parent for one of the local variables, since it will think that parent can't possibly be used any more in this routine. Assigning to the local variable will thus munge parent in the parent process. */ pid_t p = getpid(), p1 = getpid(), p2 = getpid(), p3 = getpid(), p4 = getpid(), p5 = getpid(), p6 = getpid(), p7 = getpid(); /* Convince the compiler that p..p7 are live; otherwise, it might use the same hardware register for all 8 local variables. */ if (p != p1 || p != p2 || p != p3 || p != p4 || p != p5 || p != p6 || p != p7) _exit(1); /* On some systems (e.g. IRIX 3.3), vfork doesn't separate parent from child file descriptors. If the child closes a descriptor before it execs or exits, this munges the parent's descriptor as well. Test for this by closing stdout in the child. */ _exit(close(fileno(stdout)) != 0); } else { int status; struct stat st; while (wait(&status) != child) ; return ( /* Was there some problem with vforking? */ child < 0 /* Did the child fail? (This shouldn't happen.) */ || status /* Did the vfork/compiler bug occur? */ || parent != getpid() /* Did the file descriptor bug occur? */ || fstat(fileno(stdout), &st) != 0 ); } } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_vfork_works=yes else ac_cv_func_vfork_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_vfork_works" >&5 $as_echo "$ac_cv_func_vfork_works" >&6; } fi; if test "x$ac_cv_func_fork_works" = xcross; then ac_cv_func_vfork_works=$ac_cv_func_vfork { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: result $ac_cv_func_vfork_works guessed because of cross compilation" >&5 $as_echo "$as_me: WARNING: result $ac_cv_func_vfork_works guessed because of cross compilation" >&2;} fi if test "x$ac_cv_func_vfork_works" = xyes; then $as_echo "#define HAVE_WORKING_VFORK 1" >>confdefs.h else $as_echo "#define vfork fork" >>confdefs.h fi if test "x$ac_cv_func_fork_works" = xyes; then $as_echo "#define HAVE_WORKING_FORK 1" >>confdefs.h fi if test $ac_cv_c_compiler_gnu = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC needs -traditional" >&5 $as_echo_n "checking whether $CC needs -traditional... " >&6; } if test "${ac_cv_prog_gcc_traditional+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_pattern="Autoconf.*'x'" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include Autoconf TIOCGETP _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "$ac_pattern" >/dev/null 2>&1; then : ac_cv_prog_gcc_traditional=yes else ac_cv_prog_gcc_traditional=no fi rm -f conftest* if test $ac_cv_prog_gcc_traditional = no; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include Autoconf TCGETA _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "$ac_pattern" >/dev/null 2>&1; then : ac_cv_prog_gcc_traditional=yes fi rm -f conftest* fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_gcc_traditional" >&5 $as_echo "$ac_cv_prog_gcc_traditional" >&6; } if test $ac_cv_prog_gcc_traditional = yes; then CC="$CC -traditional" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether lstat correctly handles trailing slash" >&5 $as_echo_n "checking whether lstat correctly handles trailing slash... " >&6; } if test "${ac_cv_func_lstat_dereferences_slashed_symlink+set}" = set; then : $as_echo_n "(cached) " >&6 else rm -f conftest.sym conftest.file echo >conftest.file if test "$as_ln_s" = "ln -s" && ln -s conftest.file conftest.sym; then if test "$cross_compiling" = yes; then : ac_cv_func_lstat_dereferences_slashed_symlink=no else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { struct stat sbuf; /* Linux will dereference the symlink and fail, as required by POSIX. That is better in the sense that it means we will not have to compile and use the lstat wrapper. */ return lstat ("conftest.sym/", &sbuf) == 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_lstat_dereferences_slashed_symlink=yes else ac_cv_func_lstat_dereferences_slashed_symlink=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi else # If the `ln -s' command failed, then we probably don't even # have an lstat function. ac_cv_func_lstat_dereferences_slashed_symlink=no fi rm -f conftest.sym conftest.file fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_lstat_dereferences_slashed_symlink" >&5 $as_echo "$ac_cv_func_lstat_dereferences_slashed_symlink" >&6; } test $ac_cv_func_lstat_dereferences_slashed_symlink = yes && cat >>confdefs.h <<_ACEOF #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 _ACEOF if test "x$ac_cv_func_lstat_dereferences_slashed_symlink" = xno; then case " $LIBOBJS " in *" lstat.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS lstat.$ac_objext" ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether lstat accepts an empty string" >&5 $as_echo_n "checking whether lstat accepts an empty string... " >&6; } if test "${ac_cv_func_lstat_empty_string_bug+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ac_cv_func_lstat_empty_string_bug=yes else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { struct stat sbuf; return lstat ("", &sbuf) == 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_lstat_empty_string_bug=no else ac_cv_func_lstat_empty_string_bug=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_lstat_empty_string_bug" >&5 $as_echo "$ac_cv_func_lstat_empty_string_bug" >&6; } if test $ac_cv_func_lstat_empty_string_bug = yes; then case " $LIBOBJS " in *" lstat.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS lstat.$ac_objext" ;; esac cat >>confdefs.h <<_ACEOF #define HAVE_LSTAT_EMPTY_STRING_BUG 1 _ACEOF fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether lstat correctly handles trailing slash" >&5 $as_echo_n "checking whether lstat correctly handles trailing slash... " >&6; } if test "${ac_cv_func_lstat_dereferences_slashed_symlink+set}" = set; then : $as_echo_n "(cached) " >&6 else rm -f conftest.sym conftest.file echo >conftest.file if test "$as_ln_s" = "ln -s" && ln -s conftest.file conftest.sym; then if test "$cross_compiling" = yes; then : ac_cv_func_lstat_dereferences_slashed_symlink=no else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { struct stat sbuf; /* Linux will dereference the symlink and fail, as required by POSIX. That is better in the sense that it means we will not have to compile and use the lstat wrapper. */ return lstat ("conftest.sym/", &sbuf) == 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_lstat_dereferences_slashed_symlink=yes else ac_cv_func_lstat_dereferences_slashed_symlink=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi else # If the `ln -s' command failed, then we probably don't even # have an lstat function. ac_cv_func_lstat_dereferences_slashed_symlink=no fi rm -f conftest.sym conftest.file fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_lstat_dereferences_slashed_symlink" >&5 $as_echo "$ac_cv_func_lstat_dereferences_slashed_symlink" >&6; } test $ac_cv_func_lstat_dereferences_slashed_symlink = yes && cat >>confdefs.h <<_ACEOF #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 _ACEOF if test "x$ac_cv_func_lstat_dereferences_slashed_symlink" = xno; then case " $LIBOBJS " in *" lstat.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS lstat.$ac_objext" ;; esac fi for ac_header in stdlib.h do : ac_fn_c_check_header_mongrel "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default" if test "x$ac_cv_header_stdlib_h" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STDLIB_H 1 _ACEOF fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU libc compatible malloc" >&5 $as_echo_n "checking for GNU libc compatible malloc... " >&6; } if test "${ac_cv_func_malloc_0_nonnull+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ac_cv_func_malloc_0_nonnull=no else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined STDC_HEADERS || defined HAVE_STDLIB_H # include #else char *malloc (); #endif int main () { return ! malloc (0); ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_malloc_0_nonnull=yes else ac_cv_func_malloc_0_nonnull=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_malloc_0_nonnull" >&5 $as_echo "$ac_cv_func_malloc_0_nonnull" >&6; } if test $ac_cv_func_malloc_0_nonnull = yes; then : $as_echo "#define HAVE_MALLOC 1" >>confdefs.h else $as_echo "#define HAVE_MALLOC 0" >>confdefs.h case " $LIBOBJS " in *" malloc.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS malloc.$ac_objext" ;; esac $as_echo "#define malloc rpl_malloc" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking return type of signal handlers" >&5 $as_echo_n "checking return type of signal handlers... " >&6; } if test "${ac_cv_type_signal+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { return *(signal (0, 0)) (0) == 1; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_type_signal=int else ac_cv_type_signal=void fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_signal" >&5 $as_echo "$ac_cv_type_signal" >&6; } cat >>confdefs.h <<_ACEOF #define RETSIGTYPE $ac_cv_type_signal _ACEOF for ac_func in dup2 getcwd memset mkfifo setlocale strcasecmp strchr strdup strncasecmp strrchr strstr uname gettimeofday strtoul socket do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done # # debug and ansi support # # Check whether --enable-debug_pg was given. if test "${enable_debug_pg+set}" = set; then : enableval=$enable_debug_pg; else enable_debug_pg=no fi # Check whether --enable-debug was given. if test "${enable_debug+set}" = set; then : enableval=$enable_debug; else enable_debug=no fi # Check whether --enable-ansi was given. if test "${enable_ansi+set}" = set; then : enableval=$enable_ansi; else enable_ansi=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for debug mode request" >&5 $as_echo_n "checking for debug mode request... " >&6; } if test "$enable_debug" = "yes"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } $as_echo "#define DEBUG 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: checking With ansi compilate" >&5 $as_echo_n "checking With ansi compilate... " >&6; } if test "$enable_ansi" = "yes"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } $as_echo "#define ENABLE_ANSI 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: checking With enable_debug_pg" >&5 $as_echo_n "checking With enable_debug_pg... " >&6; } if test "$enable_debug_pg" = "yes"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } $as_echo "#define ENABLE_DEBUG_PG 1" >>confdefs.h echo "***" echo "*** enable_debug=yes, enable_ansi=yes, enable_debug_pg=yes" echo "*** CFLAGS=-pg -g -O2 -Wall -ansi -D_REENTRANT -DLinux -Wl,--export-dynamic" echo "***" CFLAGS="-pg -g -O2 -Wall -ansi -D_REENTRANT -DLinux -Wl,--export-dynamic" else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } echo "***" echo "*** enable_debug=yes, enable_ansi=yes, enable_debug_pg=no" echo "*** CFLAGS=-g -O2 -Wall -ansi -D_REENTRANT -DLinux -Wl,--export-dynamic" echo "***" CFLAGS="-g -O2 -Wall -ansi -D_REENTRANT -DLinux -Wl,--export-dynamic" fi else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking With enable_debug_pg" >&5 $as_echo_n "checking With enable_debug_pg... " >&6; } if test "$enable_debug_pg" = "yes"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } $as_echo "#define ENABLE_DEBUG_PG 1" >>confdefs.h echo "***" echo "*** enable_debug=yes, enable_ansi=no, enable_debug_pg=yes" echo "*** CFLAGS=-pg -g -O2 -Wall -D_REENTRANT -DLinux -Wl,--export-dynamic" echo "***" CFLAGS="-pg -g -O2 -Wall -D_REENTRANT -DLinux -Wl,--export-dynamic" else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } echo "***" echo "*** enable_debug=yes, enable_ansi=no, enable_debug_pg=no" echo "*** CFLAGS=-g -O2 -Wall -D_REENTRANT -DLinux -Wl,--export-dynamic" echo "***" CFLAGS="-g -O2 -Wall -D_REENTRANT -DLinux -Wl,--export-dynamic" fi fi else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking With ansi compilate" >&5 $as_echo_n "checking With ansi compilate... " >&6; } if test "$enable_ansi" = "yes"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } $as_echo "#define ENABLE_ANSI 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: checking With enable_debug_pg" >&5 $as_echo_n "checking With enable_debug_pg... " >&6; } if test "$enable_debug_pg" = "yes"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } $as_echo "#define ENABLE_DEBUG_PG 1" >>confdefs.h echo "***" echo "*** enable_debug=no, enable_ansi=yes, enable_debug_pg=yes" echo "*** CFLAGS=-pg -Wall -ansi -D_REENTRANT -DLinux -Wl,--export-dynamic" echo "***" CFLAGS="-pg -Wall -ansi -D_REENTRANT -DLinux -Wl,--export-dynamic" else echo "***" echo "*** enable_debug=no, enable_ansi=yes, enable_debug_pg=no" echo "*** CFLAGS=-Wall -ansi -D_REENTRANT -DLinux -Wl,--export-dynamic" echo "***" CFLAGS="-Wall -ansi -D_REENTRANT -DLinux -Wl,--export-dynamic" fi else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking With enable_debug_pg" >&5 $as_echo_n "checking With enable_debug_pg... " >&6; } if test "$enable_debug_pg" = "yes"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } $as_echo "#define ENABLE_DEBUG_PG 1" >>confdefs.h echo "***" echo "*** enable_debug=no, enable_ansi=no, enable_debug_pg=yes" echo "*** CFLAGS=-pg -Wall -D_REENTRANT -DLinux -Wl,--export-dynamic" echo "***" CFLAGS="-pg -Wall -D_REENTRANT -DLinux -Wl,--export-dynamic" else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } echo "***" echo "*** enable_debug=no, enable_ansi=no, enable_debug_pg=no" echo "*** CFLAGS=-Wall -O3 -D_REENTRANT -DLinux -Wl,--export-dynamic" echo "***" CFLAGS="-Wall -O3 -D_REENTRANT -DLinux -Wl,--export-dynamic" fi fi fi # # Check for complex math functions support: -lm # { $as_echo "$as_me:${as_lineno-$LINENO}: checking for roundf in -lm" >&5 $as_echo_n "checking for roundf in -lm... " >&6; } if test "${ac_cv_lib_m_roundf+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lm $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char roundf (); int main () { return roundf (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_m_roundf=yes else ac_cv_lib_m_roundf=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_roundf" >&5 $as_echo "$ac_cv_lib_m_roundf" >&6; } if test "x$ac_cv_lib_m_roundf" = x""yes; then : LDFLAGS="-lm $LDFLAGS" fi # # gtk support # pkg_modules="gtk+-2.0 cairo glib-2.0 gthread-2.0" if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_PKG_CONFIG+set}" = set; then : $as_echo_n "(cached) " >&6 else case $PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi PKG_CONFIG=$ac_cv_path_PKG_CONFIG if test -n "$PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 $as_echo "$PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_path_PKG_CONFIG"; then ac_pt_PKG_CONFIG=$PKG_CONFIG # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then : $as_echo_n "(cached) " >&6 else case $ac_pt_PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG if test -n "$ac_pt_PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 $as_echo "$ac_pt_PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_pt_PKG_CONFIG" = x; then PKG_CONFIG="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac PKG_CONFIG=$ac_pt_PKG_CONFIG fi else PKG_CONFIG="$ac_cv_path_PKG_CONFIG" fi fi if test -n "$PKG_CONFIG"; then _pkg_min_version=0.9.0 { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 $as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } PKG_CONFIG="" fi fi pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for PACKAGE" >&5 $as_echo_n "checking for PACKAGE... " >&6; } if test -n "$PACKAGE_CFLAGS"; then pkg_cv_PACKAGE_CFLAGS="$PACKAGE_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$pkg_modules\""; } >&5 ($PKG_CONFIG --exists --print-errors "$pkg_modules") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_PACKAGE_CFLAGS=`$PKG_CONFIG --cflags "$pkg_modules" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$PACKAGE_LIBS"; then pkg_cv_PACKAGE_LIBS="$PACKAGE_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$pkg_modules\""; } >&5 ($PKG_CONFIG --exists --print-errors "$pkg_modules") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_PACKAGE_LIBS=`$PKG_CONFIG --libs "$pkg_modules" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then PACKAGE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$pkg_modules" 2>&1` else PACKAGE_PKG_ERRORS=`$PKG_CONFIG --print-errors "$pkg_modules" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$PACKAGE_PKG_ERRORS" >&5 as_fn_error $? "Package requirements ($pkg_modules) were not met: $PACKAGE_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables PACKAGE_CFLAGS and PACKAGE_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. Alternatively, you may set the environment variables PACKAGE_CFLAGS and PACKAGE_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . See \`config.log' for more details" "$LINENO" 5 ; } else PACKAGE_CFLAGS=$pkg_cv_PACKAGE_CFLAGS PACKAGE_LIBS=$pkg_cv_PACKAGE_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi # # taglib support # { $as_echo "$as_me:${as_lineno-$LINENO}: checking for taglib_file_new in -ltag_c" >&5 $as_echo_n "checking for taglib_file_new in -ltag_c... " >&6; } if test "${ac_cv_lib_tag_c_taglib_file_new+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ltag_c $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char taglib_file_new (); int main () { return taglib_file_new (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_tag_c_taglib_file_new=yes else ac_cv_lib_tag_c_taglib_file_new=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_tag_c_taglib_file_new" >&5 $as_echo "$ac_cv_lib_tag_c_taglib_file_new" >&6; } if test "x$ac_cv_lib_tag_c_taglib_file_new" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBTAG_C 1 _ACEOF LIBS="-ltag_c $LIBS" else echo "***" echo "*** Please, install libtag1-dev,libtagc0-dev development headers" echo "*** OR" echo "*** install taglib-dev for Fedora, Mandriva" echo "***" exit -1 fi $as_echo "#define HAVE_TAGLIB 1" >>confdefs.h # # asound support # { $as_echo "$as_me:${as_lineno-$LINENO}: checking for snd_pcm_open in -lasound" >&5 $as_echo_n "checking for snd_pcm_open in -lasound... " >&6; } if test "${ac_cv_lib_asound_snd_pcm_open+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lasound $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char snd_pcm_open (); int main () { return snd_pcm_open (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_asound_snd_pcm_open=yes else ac_cv_lib_asound_snd_pcm_open=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_asound_snd_pcm_open" >&5 $as_echo "$ac_cv_lib_asound_snd_pcm_open" >&6; } if test "x$ac_cv_lib_asound_snd_pcm_open" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBASOUND 1 _ACEOF LIBS="-lasound $LIBS" else echo "***" echo "*** Please, install libasound2-dev development headers" echo "***" exit -1 fi $as_echo "#define HAVE_ALSA 1" >>confdefs.h # # pthread support # { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_create in -lpthread" >&5 $as_echo_n "checking for pthread_create in -lpthread... " >&6; } if test "${ac_cv_lib_pthread_pthread_create+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lpthread $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char pthread_create (); int main () { return pthread_create (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_pthread_pthread_create=yes else ac_cv_lib_pthread_pthread_create=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_create" >&5 $as_echo "$ac_cv_lib_pthread_pthread_create" >&6; } if test "x$ac_cv_lib_pthread_pthread_create" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBPTHREAD 1 _ACEOF LIBS="-lpthread $LIBS" else echo "***" echo "*** Please, install pthread-dev development headers" echo "***" exit -1 fi # # curl support # { $as_echo "$as_me:${as_lineno-$LINENO}: checking for curl_easy_init in -lcurl" >&5 $as_echo_n "checking for curl_easy_init in -lcurl... " >&6; } if test "${ac_cv_lib_curl_curl_easy_init+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lcurl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char curl_easy_init (); int main () { return curl_easy_init (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_curl_curl_easy_init=yes else ac_cv_lib_curl_curl_easy_init=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_curl_curl_easy_init" >&5 $as_echo "$ac_cv_lib_curl_curl_easy_init" >&6; } if test "x$ac_cv_lib_curl_curl_easy_init" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBCURL 1 _ACEOF LIBS="-lcurl $LIBS" else echo "***" echo "*** Please, install libcurl4-gnutls-dev or libcurl4-openssl-dev development headers" echo "***" exit -1 fi $as_echo "#define HAVE_CURL 1" >>confdefs.h # # vte support # { $as_echo "$as_me:${as_lineno-$LINENO}: checking for vte_terminal_feed in -lvte" >&5 $as_echo_n "checking for vte_terminal_feed in -lvte... " >&6; } if test "${ac_cv_lib_vte_vte_terminal_feed+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lvte $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char vte_terminal_feed (); int main () { return vte_terminal_feed (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_vte_vte_terminal_feed=yes else ac_cv_lib_vte_vte_terminal_feed=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_vte_vte_terminal_feed" >&5 $as_echo "$ac_cv_lib_vte_vte_terminal_feed" >&6; } if test "x$ac_cv_lib_vte_vte_terminal_feed" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBVTE 1 _ACEOF LIBS="-lvte $LIBS" else echo "***" echo "*** Please, install libvte-dev development headers" echo "***" exit -1 fi $as_echo "#define HAVE_VTE 1" >>confdefs.h # # for win_vte.c: directory vte.h ? # FILE_DEBIAN_VTE_H="/usr/include/vte/vte.h" FILE_ARCH_VTE_H="/usr/include/vte-0.0/vte/vte.h" FILE_FW_VTE_H="/usr/include/vte-2.90/vte/vte.h" if test -f $FILE_DEBIAN_VTE_H; then $as_echo "#define FILE_DEBIAN_VTE_H_IS_OK 1" >>confdefs.h elif test -f $FILE_ARCH_VTE_H; then $as_echo "#define FILE_ARCH_VTE_H_IS_OK 1" >>confdefs.h elif test -f $FILE_FW_VTE_H; then $as_echo "#define FILE_FW_VTE_H_IS_OK 1" >>confdefs.h fi # # ? System info # case $host in *linux*) HOST="Linux-based system" ;; *openbsd*) HOST="OpenBSD" ;; *netbsd*) HOST="NetBSD" ;; *freebsd*) HOST="FreeBSD" ;; *mingw*) HOST="Mingw" ;; *solaris*) HOST="Solaris" ;; *) HOST="Other" ;; esac ac_config_files="$ac_config_files po/Makefile.in lib/Makefile Makefile src/Makefile man/Makefile pixmaps/Makefile menu/Makefile mime/Makefile glade/Makefile desktop/Makefile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then test "x$cache_file" != "x/dev/null" && { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} cat confcache >$cache_file else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs if test -n "$EXEEXT"; then am__EXEEXT_TRUE= am__EXEEXT_FALSE='#' else am__EXEEXT_TRUE='#' am__EXEEXT_FALSE= fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then as_fn_error $? "conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi : ${CONFIG_STATUS=./config.status} ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in #( -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by xcfa $as_me 4.3.6, which was generated by GNU Autoconf 2.67. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac case $ac_config_headers in *" "*) set x $ac_config_headers; shift; ac_config_headers=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" config_headers="$ac_config_headers" config_commands="$ac_config_commands" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Configuration commands: $config_commands Report bugs to . xcfa home page: ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ xcfa config.status 4.3.6 configured by $0, generated by GNU Autoconf 2.67, with options \\"\$ac_cs_config\\" Copyright (C) 2010 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' MKDIR_P='$MKDIR_P' AWK='$AWK' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; --*=) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append CONFIG_HEADERS " '$ac_optarg'" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header as_fn_error $? "ambiguous option: \`$1' Try \`$0 --help' for more information.";; --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # # INIT-COMMANDS # AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" # Capture the value of obsolete ALL_LINGUAS because we need it to compute # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it # from automake < 1.5. eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' # Capture the value of LINGUAS because we need it to compute CATALOGS. LINGUAS="${LINGUAS-%UNSET%}" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "po-directories") CONFIG_COMMANDS="$CONFIG_COMMANDS po-directories" ;; "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; "lib/Makefile") CONFIG_FILES="$CONFIG_FILES lib/Makefile" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; "man/Makefile") CONFIG_FILES="$CONFIG_FILES man/Makefile" ;; "pixmaps/Makefile") CONFIG_FILES="$CONFIG_FILES pixmaps/Makefile" ;; "menu/Makefile") CONFIG_FILES="$CONFIG_FILES menu/Makefile" ;; "mime/Makefile") CONFIG_FILES="$CONFIG_FILES mime/Makefile" ;; "glade/Makefile") CONFIG_FILES="$CONFIG_FILES glade/Makefile" ;; "desktop/Makefile") CONFIG_FILES="$CONFIG_FILES desktop/Makefile" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5 ;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= trap 'exit_status=$? { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove sole $(srcdir), # ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ h s/// s/^/:/ s/[ ]*$/:/ s/:\$(srcdir):/:/g s/:\${srcdir}:/:/g s/:@srcdir@:/:/g s/^:*// s/:*$// x s/\(=[ ]*\).*/\1/ G s/\n// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" # Set up the scripts for CONFIG_HEADERS section. # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then cat >"$tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF # Transform confdefs.h into an awk script `defines.awk', embedded as # here-document in config.status, that substitutes the proper values into # config.h.in to produce config.h. # Create a delimiter string that does not exist in confdefs.h, to ease # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do ac_t=`sed -n "/$ac_delim/p" confdefs.h` if test -z "$ac_t"; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done # For the awk script, D is an array of macro values keyed by name, # likewise P contains macro parameters if any. Preserve backslash # newline sequences. ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* sed -n ' s/.\{148\}/&'"$ac_delim"'/g t rset :rset s/^[ ]*#[ ]*define[ ][ ]*/ / t def d :def s/\\$// t bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3"/p s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p d :bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3\\\\\\n"\\/p t cont s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p t cont d :cont n s/.\{148\}/&'"$ac_delim"'/g t clear :clear s/\\$// t bsnlc s/["\\]/\\&/g; s/^/"/; s/$/"/p d :bsnlc s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p b cont ' >$CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 for (key in D) D_is_set[key] = 1 FS = "" } /^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { line = \$ 0 split(line, arg, " ") if (arg[1] == "#") { defundef = arg[2] mac1 = arg[3] } else { defundef = substr(arg[1], 2) mac1 = arg[2] } split(mac1, mac2, "(") #) macro = mac2[1] prefix = substr(line, 1, index(line, defundef) - 1) if (D_is_set[macro]) { # Preserve the white space surrounding the "#". print prefix "define", macro P[macro] D[macro] next } else { # Replace #undef with comments. This is necessary, for example, # in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. if (defundef == "undef") { print "/*", prefix defundef, macro, "*/" next } } } { print } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 fi # test -n "$CONFIG_HEADERS" eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5 ;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5 ;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac ac_MKDIR_P=$MKDIR_P case $MKDIR_P in [\\/$]* | ?:[\\/]* ) ;; */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$tmp/stdin" case $ac_file in -) cat "$tmp/out" && rm -f "$tmp/out";; *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; :H) # # CONFIG_HEADER # if test x"$ac_file" != x-; then { $as_echo "/* $configure_input */" \ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" } >"$tmp/config.h" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" mv "$tmp/config.h" "$ac_file" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else $as_echo "/* $configure_input */" \ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ || as_fn_error $? "could not create -" "$LINENO" 5 fi # Compute "$ac_file"'s index in $config_headers. _am_arg="$ac_file" _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || $as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$_am_arg" : 'X\(//\)[^/]' \| \ X"$_am_arg" : 'X\(//\)$' \| \ X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$_am_arg" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'`/stamp-h$_am_stamp_count ;; :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 $as_echo "$as_me: executing $ac_file commands" >&6;} ;; esac case $ac_file$ac_mode in "depfiles":C) test x"$AMDEP_TRUE" != x"" || { # Autoconf 2.62 quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`$as_dirname -- "$mf" || $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$mf" : 'X\(//\)[^/]' \| \ X"$mf" : 'X\(//\)$' \| \ X"$mf" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`$as_dirname -- "$file" || $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ X"$file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir=$dirpart/$fdir; as_fn_mkdir_p # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ;; "po-directories":C) for ac_file in $CONFIG_FILES; do # Support "outfile[:infile[:infile...]]" case "$ac_file" in *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; esac # PO directories have a Makefile.in generated from Makefile.in.in. case "$ac_file" in */Makefile.in) # Adjust a relative srcdir. ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` # In autoconf-2.13 it is called $ac_given_srcdir. # In autoconf-2.50 it is called $srcdir. test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" case "$ac_given_srcdir" in .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; /*) top_srcdir="$ac_given_srcdir" ;; *) top_srcdir="$ac_dots$ac_given_srcdir" ;; esac # Treat a directory as a PO directory if and only if it has a # POTFILES.in file. This allows packages to have multiple PO # directories under different names or in different locations. if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then rm -f "$ac_dir/POTFILES" test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" POMAKEFILEDEPS="POTFILES.in" # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend # on $ac_dir but don't depend on user-specified configuration # parameters. if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then # The LINGUAS file contains the set of available languages. if test -n "$OBSOLETE_ALL_LINGUAS"; then test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" fi ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` # Hide the ALL_LINGUAS assigment from automake < 1.5. eval 'ALL_LINGUAS''=$ALL_LINGUAS_' POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" else # The set of available languages was given in configure.in. # Hide the ALL_LINGUAS assigment from automake < 1.5. eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' fi # Compute POFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) # Compute UPDATEPOFILES # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) # Compute DUMMYPOFILES # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop) # Compute GMOFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) case "$ac_given_srcdir" in .) srcdirpre= ;; *) srcdirpre='$(srcdir)/' ;; esac POFILES= UPDATEPOFILES= DUMMYPOFILES= GMOFILES= for lang in $ALL_LINGUAS; do POFILES="$POFILES $srcdirpre$lang.po" UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" DUMMYPOFILES="$DUMMYPOFILES $lang.nop" GMOFILES="$GMOFILES $srcdirpre$lang.gmo" done # CATALOGS depends on both $ac_dir and the user's LINGUAS # environment variable. INST_LINGUAS= if test -n "$ALL_LINGUAS"; then for presentlang in $ALL_LINGUAS; do useit=no if test "%UNSET%" != "$LINGUAS"; then desiredlanguages="$LINGUAS" else desiredlanguages="$ALL_LINGUAS" fi for desiredlang in $desiredlanguages; do # Use the presentlang catalog if desiredlang is # a. equal to presentlang, or # b. a variant of presentlang (because in this case, # presentlang can be used as a fallback for messages # which are not translated in the desiredlang catalog). case "$desiredlang" in "$presentlang"*) useit=yes;; esac done if test $useit = yes; then INST_LINGUAS="$INST_LINGUAS $presentlang" fi done fi CATALOGS= if test -n "$INST_LINGUAS"; then for lang in $INST_LINGUAS; do CATALOGS="$CATALOGS $lang.gmo" done fi test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do if test -f "$f"; then case "$f" in *.orig | *.bak | *~) ;; *) cat "$f" >> "$ac_dir/Makefile" ;; esac fi done fi ;; esac done ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi the_hostname=`hostname` pkg_config_modversion_gtk=`pkg-config --modversion gtk+-2.0` pkg_config_modversion_cairo=`pkg-config --modversion cairo` pkg_config_modversion_glib=`pkg-config --modversion glib-2.0` pkg_config_modversion_gthread=`pkg-config --modversion gthread-2.0` pkg_config_modversion_libcurl=`pkg-config --modversion libcurl` pkg_config_modversion_vte=`pkg-config --modversion vte` { $as_echo "$as_me:${as_lineno-$LINENO}: ================================================================= Configuration for $PACKAGE $VERSION : ================================================================= Host System Type ................ : $host ( $HOST ) HosName ......................... : $the_hostname Compiler ........................ : $CC $CPPFLAGS LDFLAGS ......................... : $LDFLAGS LIBS ............................ : $LIBS NLS/gettext ..................... : $USE_NLS ALL_LINGUAS ..................... : $ALL_LINGUAS GTK+ version .................... : $pkg_config_modversion_gtk CAIRO version ................... : $pkg_config_modversion_cairo GLIB version .................... : $pkg_config_modversion_glib GTHREAD version ................. : $pkg_config_modversion_gthread LIBCURL version ................. : $pkg_config_modversion_libcurl VTE version ..................... : $pkg_config_modversion_vte Debug mode g .................... : $enable_debug Debug mode pg ................... : $enable_debug_pg WITH ANSI COMPILATE ............. : $enable_ansi CFLAGS .......................... : $CFLAGS INSTALL ......................... : $prefix/bin/xcfa Options parameters: ------------------- by default: --disable-debug No debug support --disable-debug-pg No debug support with gprof --disable-ansi No define ansi for probleme compilate Options is: --enable-debug #define DEBUG 1 Define for debug: -g --enable-debug-pg #define DEBUG_PG 1 Define for debug support with gprof: -pg --enable-ansi #define ENABLE_ANSI 1 Define With ansi compilate Now type 'make' to build $PACKAGE $VERSION, and then type (under root) 'make install' for installation. " >&5 $as_echo "$as_me: ================================================================= Configuration for $PACKAGE $VERSION : ================================================================= Host System Type ................ : $host ( $HOST ) HosName ......................... : $the_hostname Compiler ........................ : $CC $CPPFLAGS LDFLAGS ......................... : $LDFLAGS LIBS ............................ : $LIBS NLS/gettext ..................... : $USE_NLS ALL_LINGUAS ..................... : $ALL_LINGUAS GTK+ version .................... : $pkg_config_modversion_gtk CAIRO version ................... : $pkg_config_modversion_cairo GLIB version .................... : $pkg_config_modversion_glib GTHREAD version ................. : $pkg_config_modversion_gthread LIBCURL version ................. : $pkg_config_modversion_libcurl VTE version ..................... : $pkg_config_modversion_vte Debug mode g .................... : $enable_debug Debug mode pg ................... : $enable_debug_pg WITH ANSI COMPILATE ............. : $enable_ansi CFLAGS .......................... : $CFLAGS INSTALL ......................... : $prefix/bin/xcfa Options parameters: ------------------- by default: --disable-debug No debug support --disable-debug-pg No debug support with gprof --disable-ansi No define ansi for probleme compilate Options is: --enable-debug #define DEBUG 1 Define for debug: -g --enable-debug-pg #define DEBUG_PG 1 Define for debug support with gprof: -pg --enable-ansi #define ENABLE_ANSI 1 Define With ansi compilate Now type 'make' to build $PACKAGE $VERSION, and then type (under root) 'make install' for installation. " >&6;} xcfa-4.3.6/src/0000755000175000017500000000000012224542444010240 500000000000000xcfa-4.3.6/src/split.h0000644000175000017500000002463712122563437011502 00000000000000 /* * file : split.h * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifndef split_h #define split_h 1 #define FOND_BLANC \ gdk_color.red = 65535; \ gdk_color.green = 65535; \ gdk_color.blue = 65535; \ gdk_color_alloc (colormap, &gdk_color); \ gdk_window_set_background (VarSplit.AdrWidgetSpectre->window, &gdk_color); #define FOND_NOIR \ gdk_color.red = 0; \ gdk_color.green = 0; \ gdk_color.blue = 0; \ gdk_color_alloc (colormap, &gdk_color); \ gdk_window_set_background (VarSplit.AdrWidgetSpectre, &gdk_color); #define FOND_BLEU \ gdk_color.red = 0; \ gdk_color.green = 0; \ gdk_color.blue = 65535; \ gdk_color_alloc (colormap, &gdk_color); \ gdk_window_set_background (VarSplit.AdrWidgetSpectre->window, &gdk_color); #define CRAYON_NOIR \ gdk_color.red = 0; \ gdk_color.green = 0; \ gdk_color.blue = 0; \ gdk_color_alloc (colormap, &gdk_color); \ gdk_gc_set_foreground (gc, &gdk_color); #define CRAYON_GRIS \ gdk_color.red = 21845; \ gdk_color.green = 21845; \ gdk_color.blue = 21845; \ gdk_color_alloc (colormap, &gdk_color); \ gdk_gc_set_foreground (gc, &gdk_color); #define CRAYON_GRIS_CLAIR \ gdk_color.red = 30767; \ gdk_color.green = 30767; \ gdk_color.blue = 30767; \ gdk_color_alloc (colormap, &gdk_color); \ gdk_gc_set_foreground (gc, &gdk_color); #define CRAYON_BLANC \ gdk_color.red = 65535; \ gdk_color.green = 65535; \ gdk_color.blue = 65535; \ gdk_color_alloc (colormap, &gdk_color); \ gdk_gc_set_foreground (gc, &gdk_color); #define CRAYON_BLEU \ gdk_color.red = 0; \ gdk_color.green = 0; \ gdk_color.blue = 65535; \ gdk_color_alloc (colormap, &gdk_color); \ gdk_gc_set_foreground (gc, &gdk_color); #define CRAYON_BLEU_CLAIR \ gdk_color.red = 0; \ gdk_color.green = 32000; \ gdk_color.blue = 65535; \ gdk_color_alloc (colormap, &gdk_color); \ gdk_gc_set_foreground (gc, &gdk_color); #define CRAYON_BLEU_CLAIR_PLUS \ gdk_color.red = 0; \ gdk_color.green = 49000; \ gdk_color.blue = 65535; \ gdk_color_alloc (colormap, &gdk_color); \ gdk_gc_set_foreground (gc, &gdk_color); #define CRAYON_ROUGE \ gdk_color.red = 65535; \ gdk_color.green = 0; \ gdk_color.blue = 0; \ gdk_color_alloc (colormap, &gdk_color); \ gdk_gc_set_foreground (gc, &gdk_color); #define CRAYON_VERT \ gdk_color.red = 0; \ gdk_color.green = 65500; \ gdk_color.blue = 0; \ gdk_color_alloc (colormap, &gdk_color); \ gdk_gc_set_foreground (gc, &gdk_color); #define CRAYON_JAUNE \ gdk_color.red = 65535; \ gdk_color.green = 65535; \ gdk_color.blue = 0; \ gdk_color_alloc (colormap, &gdk_color); \ gdk_gc_set_foreground (gc, &gdk_color); #define CRAYON_ORANGE \ gdk_color.red = 0xffff; \ gdk_color.green = 0x9999; \ gdk_color.blue = 0; \ gdk_color_alloc (colormap, &gdk_color); \ gdk_gc_set_foreground (gc, &gdk_color); #include "file.h" typedef struct { // DEFINITION D'UN POINT POUR LA LECTURE DU FICHIER WAV float Max; // Partie haute float Min; // Partie basse } POINTS_FILE; typedef struct { // SPECIFICATION D'UN SELECTEUR gint Nmr; // Numero du selecteur float BeginPaint; // Position debut float EndPaint; // Position fin float PercentBegin; // Pourcentage debut float PercentEnd; // Pourcentage fin } SELECTEUR; typedef enum { _CURSOR_IS_NONE_ = 0, // _CURSOR_IS_LEFT_, // _CURSOR_IS_RIGHT_, // _CURSOR_IS_HAND_ // } TYPE_CURSOR; /* From Dzef: Salut la bande, Ouaip, 99 me semble être le bon choix : c'est le nombre de plages maximum que l'on puisse trouver car c'est le nombre maximum que peuvent afficher les afficheurs standards des players de salon... Les CDs de 99 plages existent, c'est par exemple assez fréquent dans les disques de bruitage... */ #define MAX_SELECTEURS_SPLIT 100 #define SPLIT_FILE_TMP_WAV "/tmp/split_wav2sox.wav" #define SPLIT_FILE_TMP_WAV_SOX "/tmp/split_wav2wavsox.wav" typedef struct { GtkWidget *AdrWidgetSpectre; // Adr Widget Spectre GtkWidget *AdrWidgetSpectreChrono; // Adr Widget Spectre Chrono GtkWidget *AdrWidgetSpectreTop; // Adr Widget Spectre Chrono GtkButton *Adr_button_destination; // Adr du widget de la destinations des decoupes gint NbrSelecteurs; // Nombre total de selecteurs SELECTEUR Selecteur [ MAX_SELECTEURS_SPLIT +2 ]; // Tableau des selecteurs gint SelecteurActif; // Le selecteur actif si NbrSelecteurs > -1 gboolean BoolReadFileSpectre; // TRUE = BoolReadFileSpectre else NONE gdouble TimeSongSec; // Duree totale du fichier en secondes void (*FuncExternBegin) (gdouble Percent); // Rappel modif pointeur DEBUT void (*FuncExternEnd) (gdouble Percent); // Rappel modif pointeur FIN void (*FuncExternWaitPlay) (void); // Rappel selection d'ecoute void (*FuncExternStopPlay) (void); // Rappel fin d'ecoute gdouble PercentActivePlay; // Pointeur de lecture audio gboolean BoolEventButtonPressSpectre; // POINTS_FILE *Tab; // Tableau des amplitudes du fichier actif glong TotalAllocation; // Longeur du tableau Tab gint MaxPointsInTab; // GdkPoint *MaxScale_0; // GdkPoint *MinScale_0; // GdkPoint *MaxScale_1; // GdkPoint *MinScale_1; // GdkPoint *MaxScale_2; // GdkPoint *MinScale_2; // glong TotalAllocationTabScreen; // Longeur du tableau TabScreen gshort nBitsPerSample; // 8 16 24 et 32 gint nTotalChunckSize; // Taille des données gchar *PathNameFile; // Nom complet du fichier gchar *PathNameFileReal; // Nom reel du fichier TYPE_FILE_IS TypeFileIs; // WAV, MP3, OGG, FLAC, SHN, WAVPACK INFO_WAV *Tags; // gboolean BoolInThread; // guint HandlerTimeoutDo; // TYPE_CURSOR TypeCursorSpectre; // NONE | LEFT | RIGHT gboolean BoolPlay; // FALSE -> TRUE -> FALSE gboolean BoolQueueDrawSpectre; // gboolean BoolQueueDrawChrono; // gboolean BoolQueueDrawTop; // GtkAdjustment *AdjScroll; // gboolean BoolBlankWithCue; // } VAR_SPLIT; #define VARSPLIT_CHRONO_X ( 0 ) #define VARSPLIT_CHRONO_Y ( 0 ) #define VARSPLIT_CHRONO_W ( VarSplit.AdrWidgetSpectreChrono->allocation.width - 1 ) #define VARSPLIT_CHRONO_H ( VarSplit.AdrWidgetSpectreChrono->allocation.height - 1 ) #define VARSPLIT_SPECTRE_TOP_X ( 0 ) #define VARSPLIT_SPECTRE_TOP_Y ( 0 ) #define VARSPLIT_SPECTRE_TOP_W ( VarSplit.AdrWidgetSpectreTop->allocation.width - 1 ) #define VARSPLIT_SPECTRE_TOP_H ( VarSplit.AdrWidgetSpectreTop->allocation.height - 1 ) #define VARSPLIT_SPECTRE_X ( 0 ) #define VARSPLIT_SPECTRE_Y ( 0 ) #define VARSPLIT_SPECTRE_W ( VarSplit.AdrWidgetSpectre->allocation.width - 1 ) #define VARSPLIT_SPECTRE_H ( VarSplit.AdrWidgetSpectre->allocation.height - 1 ) #define VARSPLIT_SPECTRE_WITH ( VarSplit.AdrWidgetSpectre->allocation.width ) typedef struct { gfloat value; // gfloat lower; // gfloat upper; // gfloat step_increment; // gfloat page_size; // gfloat page_increment; // gint with; // gint mul; // } ADJUST; // // --------------------------------------------------------------------------- // SPLIT_SPECTRE.C // --------------------------------------------------------------------------- // void SplitSpectre_draw_lines_play( void ); gboolean SplitSpectre_read_file_spectre (gchar *PathNameFile); void SplitSpectre_draw_lines (void); void SplitSpectre_realize (GtkWidget *widget); void split_draw (void); void SplitSpectre_draw_chrono ( GtkWidget *widget ); void SplitSpectre_draw_top ( GtkWidget *widget ); gint SplitSpectre_get_with (void); void SplitSpectre_remove (void); // // --------------------------------------------------------------------------- // SPLIT.C // --------------------------------------------------------------------------- // void split_file_load_continue (gchar *p_PathNameFile); void split_load_from_dnd (GSList *p_list); void split_set_name_file (void); void split_play (void); void split_set_stop (void); void split_from_popup (gint p_choice); void split_set_flag_buttons (void); // // --------------------------------------------------------------------------- // SPLIT_SELECTOR.C // --------------------------------------------------------------------------- // void SplitSelector_init (void); void SplitSelector_cut (void); void SplitSelector_add (gint p_CursorX); void SplitSelector_set_pos_begin (gint p_begin); void SplitSelector_set_pos_end (gint p_end); void SplitSelector_get_pos (void); gint SplitSelector_get_pos_begin (gint p_Sel); gint SplitSelector_get_pos_end (gint p_Sel); gdouble SplitSelector_get_percent_begin (gint p_Sel); gdouble SplitSelector_get_percent_end (gint p_Sel); gint SplitSelector_get_4_secondes_to_int (void); gdouble SplitSelector_get_percent_for_x_secondes (gint p_secondes); gboolean SplitSelector_cursor_in_box_play (gint p_cursor_x, gint p_cursor_y); gboolean SplitSelector_cursor_in_line_play (gint p_cursor_x, gint p_cursor_y); gint SplitSelector_get_pos_play (void); void SplitSelector_set_pos_play (gint p_play); gint SplitSelector_get_diff_sec (gdouble p_PercentBegin, gdouble p_PercentEnd); // // --------------------------------------------------------------------------- // SPLIT_CUE.C // --------------------------------------------------------------------------- // gchar *SplitCue_read_cue_file (gchar *p_pathname); // // --------------------------------------------------------------------------- // SPLIT_CONV.C // --------------------------------------------------------------------------- // void SplitConv_to (gchar *p_PathNameFile); // // --------------------------------------------------------------------------- // SPLIT_WAV.C // --------------------------------------------------------------------------- // void SplitWav_extract( void ); #endif xcfa-4.3.6/src/cursor.h0000644000175000017500000000273212122563437011654 00000000000000 /* * file : cursor.h * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifndef cursor_h #define cursor_h 1 void cursor_set_clear (void); void cursor_set_hand (void); void cursor_set_saisie (void); void cursor_set_gauche_droite (void); void cursor_set_haut (void); void cursor_set_bas (void); void cursor_set_gauche (void); void cursor_set_droit (void); void cursor_set_haut_gauche (void); void cursor_set_haut_droit (void); void cursor_set_bas_gauche (void); void cursor_set_bas_droit (void); void cursor_set_move (void); void cursor_set_old (void); void cursor_set_watch (void); gboolean cursor_get_watch (void); #endif xcfa-4.3.6/src/fileselect.c0000644000175000017500000007217112141166616012454 00000000000000 /* * file : fileselect.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "configuser.h" #include "file.h" #include "poche.h" #include "fileselect.h" /* *--------------------------------------------------------------------------- * DEFINITIONS *--------------------------------------------------------------------------- */ typedef enum { _REP_SIMPLE_, _REP_MULTIPLE_, _FILE_SIMPLE_, _FILE_MULTIPLE_, _FILE_IMG_SIMPLE_, _FILE_IMG_MULTIPLE_ } TYPE_SELECT; typedef struct { gchar *Title; TYPE_SELECT TypeSelect; GtkWidget *AdrFileChooser; void (*Call_Func) (GtkButton *button, gpointer user_data); void (*Func_Extern) (gchar *string); } SELECT; typedef struct { TYPE_FILESELECTION TypeFileSelection; } VAR_FILESELECT; VAR_FILESELECT VarFileSelect; /* *--------------------------------------------------------------------------- * PROTOTYPES *--------------------------------------------------------------------------- */ void ON_button_PATH_CHOICE_DESTINATION_clicked (GtkButton *button, gpointer user_data); void ON_button_PATH_LOAD_ONE_FILE_clicked (GtkButton *button, gpointer user_data); void ON_button_PATH_IMPORT_IMAGES_clicked (GtkButton *button, gpointer user_data); void ON_button_PATH_POCHETTE_clicked (GtkButton *button, gpointer user_data); /* *--------------------------------------------------------------------------- * DATAS *--------------------------------------------------------------------------- */ SELECT Select [ ] = { {gettext_noop("Choix d'un dossier de destination"), _REP_SIMPLE_, NULL, ON_button_PATH_CHOICE_DESTINATION_clicked, NULL}, {gettext_noop("Choix d'un fichier CUE WAV FLAC OGG MP3 APE WMA"), _FILE_SIMPLE_, NULL, ON_button_PATH_LOAD_ONE_FILE_clicked, NULL}, {gettext_noop("Choix d'un fichier musical"), _FILE_SIMPLE_, NULL, ON_button_PATH_LOAD_ONE_FILE_clicked, NULL}, {gettext_noop("Choix d'un fichier"), _FILE_SIMPLE_, NULL, ON_button_PATH_LOAD_ONE_FILE_clicked, NULL}, {gettext_noop("Choix de fichiers"), _FILE_MULTIPLE_, NULL, ON_button_PATH_LOAD_ONE_FILE_clicked, NULL}, {gettext_noop("Choix de fichiers WAV"), _FILE_MULTIPLE_, NULL, ON_button_PATH_LOAD_ONE_FILE_clicked, NULL}, {gettext_noop("Choix de fichiers MP3/OGG"), _FILE_MULTIPLE_, NULL, ON_button_PATH_LOAD_ONE_FILE_clicked, NULL}, {gettext_noop("Choix de fichiers FLAC MPC OGG MP3"), _FILE_MULTIPLE_, NULL, ON_button_PATH_LOAD_ONE_FILE_clicked, NULL}, {gettext_noop("Importer des images pour la pochette"), _FILE_IMG_MULTIPLE_, NULL, ON_button_PATH_IMPORT_IMAGES_clicked, NULL}, {gettext_noop("Choix d'un chemin de stockage des images"), _FILE_MULTIPLE_, NULL, ON_button_PATH_POCHETTE_clicked, NULL}, {gettext_noop("Choix d'un lieu de sauvegarde"), _FILE_MULTIPLE_, NULL, ON_button_PATH_POCHETTE_clicked, NULL}, {NULL, -1} }; // CHOIX D UN LIEU DE SAUVEGARDE // void ON_button_PATH_POCHETTE_clicked (GtkButton *button, gpointer user_data) { gint Choice = GPOINTER_TO_INT(user_data); gchar *Path = NULL; Path = gtk_file_chooser_get_current_folder (GTK_FILE_CHOOSER (Select[ Choice ].AdrFileChooser)); gtk_widget_destroy(Select[ Choice ].AdrFileChooser); Select[ Choice ].AdrFileChooser = NULL; if (Select[ Choice ].Func_Extern) (*Select[ Choice ].Func_Extern) (Path); g_free (Path); Path = NULL; } // CHOIX D UN FICHIER IMAGE // void ON_button_PATH_IMPORT_IMAGES_clicked (GtkButton *button, gpointer user_data) { /* gint Choice = GPOINTER_TO_INT(user_data); PRINT_FUNC_LF(); gtk_widget_destroy(Select[ Choice ].AdrFileChooser); Select[ Choice ].AdrFileChooser = NULL; */ gint Choice = GPOINTER_TO_INT(user_data); gchar *Path = NULL; GSList *List = NULL; Path = gtk_file_chooser_get_current_folder (GTK_FILE_CHOOSER (Select[ Choice ].AdrFileChooser)); if (Select[ Choice ].Func_Extern) (*Select[ Choice ].Func_Extern) (Path); g_free (Path); Path = NULL; List = gtk_file_chooser_get_filenames (GTK_FILE_CHOOSER (Select[ Choice ].AdrFileChooser)); gtk_widget_destroy(Select[ Choice ].AdrFileChooser); Select[ Choice ].AdrFileChooser = NULL; pochedir_add_img_file (List); g_slist_free (List); List = NULL; } // CHOIX D UN FICHIER // void ON_button_PATH_LOAD_ONE_FILE_clicked (GtkButton *button, gpointer user_data) { gint Choice = GPOINTER_TO_INT(user_data); gchar *Path = NULL; GSList *List = NULL; if( _PATH_LOAD_FILE_MUSIC_ == VarFileSelect.TypeFileSelection ) { Path = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (Select[ Choice ].AdrFileChooser)); if (Select[ Choice ].Func_Extern) (*Select[ Choice ].Func_Extern) (Path); g_free (Path); Path = NULL; gtk_widget_destroy(Select[ Choice ].AdrFileChooser); Select[ Choice ].AdrFileChooser = NULL; } else if (_PATH_LOAD_ONE_FILE_ == VarFileSelect.TypeFileSelection || _PATH_LOAD_SPLIT_FILE_ == VarFileSelect.TypeFileSelection) { Path = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (Select[ Choice ].AdrFileChooser)); gtk_widget_destroy(Select[ Choice ].AdrFileChooser); Select[ Choice ].AdrFileChooser = NULL; if (Select[ Choice ].Func_Extern) (*Select[ Choice ].Func_Extern) (Path); g_free (Path); Path = NULL; } else if (_PATH_LOAD_FILE_ALL_ == VarFileSelect.TypeFileSelection) { Path = gtk_file_chooser_get_current_folder (GTK_FILE_CHOOSER (Select[ Choice ].AdrFileChooser)); if (Select[ Choice ].Func_Extern) (*Select[ Choice ].Func_Extern) (Path); g_free (Path); Path = NULL; List = gtk_file_chooser_get_filenames (GTK_FILE_CHOOSER (Select[ Choice ].AdrFileChooser)); gtk_widget_destroy(Select[ Choice ].AdrFileChooser); Select[ Choice ].AdrFileChooser = NULL; fileanalyze_add_file_to_treeview (VarFileSelect.TypeFileSelection, List); g_slist_free (List); List = NULL; } else if (_PATH_LOAD_FILE_WAV_ == VarFileSelect.TypeFileSelection) { Path = gtk_file_chooser_get_current_folder (GTK_FILE_CHOOSER (Select[ Choice ].AdrFileChooser)); if (Select[ Choice ].Func_Extern) (*Select[ Choice ].Func_Extern) (Path); g_free (Path); Path = NULL; List = gtk_file_chooser_get_filenames (GTK_FILE_CHOOSER (Select[ Choice ].AdrFileChooser)); gtk_widget_destroy(Select[ Choice ].AdrFileChooser); Select[ Choice ].AdrFileChooser = NULL; fileanalyze_add_file_to_treeview (VarFileSelect.TypeFileSelection, List); g_slist_free (List); List = NULL; } else if (_PATH_LOAD_FILE_MP3OGG_ == VarFileSelect.TypeFileSelection) { Path = gtk_file_chooser_get_current_folder (GTK_FILE_CHOOSER (Select[ Choice ].AdrFileChooser)); if (Select[ Choice ].Func_Extern) (*Select[ Choice ].Func_Extern) (Path); g_free (Path); Path = NULL; List = gtk_file_chooser_get_filenames (GTK_FILE_CHOOSER (Select[ Choice ].AdrFileChooser)); gtk_widget_destroy(Select[ Choice ].AdrFileChooser); Select[ Choice ].AdrFileChooser = NULL; fileanalyze_add_file_to_treeview (VarFileSelect.TypeFileSelection, List); g_slist_free (List); List = NULL; } else if (_PATH_LOAD_FILE_TAGS_ == VarFileSelect.TypeFileSelection) { Path = gtk_file_chooser_get_current_folder (GTK_FILE_CHOOSER (Select[ Choice ].AdrFileChooser)); if (Select[ Choice ].Func_Extern) (*Select[ Choice ].Func_Extern) (Path); g_free (Path); Path = NULL; List = gtk_file_chooser_get_filenames (GTK_FILE_CHOOSER (Select[ Choice ].AdrFileChooser)); gtk_widget_destroy(Select[ Choice ].AdrFileChooser); Select[ Choice ].AdrFileChooser = NULL; fileanalyze_add_file_to_treeview (VarFileSelect.TypeFileSelection, List); g_slist_free (List); List = NULL; } } // CHOIX D UN DOSSIER DE DESTINATION // void ON_button_PATH_CHOICE_DESTINATION_clicked (GtkButton *button, gpointer user_data) { gchar *Path = NULL; gint Choice = GPOINTER_TO_INT(user_data); Path = gtk_file_chooser_get_current_folder (GTK_FILE_CHOOSER (Select[ Choice ].AdrFileChooser)); gtk_widget_destroy(Select[ Choice ].AdrFileChooser); Select[ Choice ].AdrFileChooser = NULL; if (Select[ Choice ].Func_Extern) (*Select[ Choice ].Func_Extern) (Path); g_free (Path); Path = NULL; } /* *--------------------------------------------------------------------------- * GESTION FILESELECT *--------------------------------------------------------------------------- */ // Demande de destruction de la fenetre // gboolean fileselect_on_filechooserdialog_delete_event (GtkWidget *widget, GdkEvent *event, gpointer user_data) { gint Choice = GPOINTER_TO_INT(user_data); /* PRINT_FUNC_LF(); */ /* g_print ("user_data = %d\n", (gint)user_data); g_print ("Choice = %d\n", Choice); */ gtk_widget_destroy(Select[ Choice ].AdrFileChooser); Select[ Choice ].AdrFileChooser = NULL; return FALSE; } // Demande de destruction de la fenetre // gboolean fileselect_on_filechooserdialog_destroy_event (GtkWidget *widget, GdkEvent *event, gpointer user_data) { gint Choice = GPOINTER_TO_INT(user_data); /* PRINT_FUNC_LF(); */ /* g_print ("user_data = %d\n", (gint)user_data); g_print ("Choice = %d\n", Choice); */ gtk_widget_destroy(Select[ Choice ].AdrFileChooser); Select[ Choice ].AdrFileChooser = NULL; return FALSE; } // // void fileselect_on_button_cancel_clicked (GtkButton *button, gpointer user_data) { gint Choice = GPOINTER_TO_INT(user_data); /* PRINT_FUNC_LF(); */ /* g_print ("user_data = %d\n", (gint)user_data); g_print ("Choice = %d\n", Choice); */ gtk_widget_destroy(Select[ Choice ].AdrFileChooser); Select[ Choice ].AdrFileChooser = NULL; } // // void fileselect_on_button_ok_clicked (GtkButton *button, gpointer user_data) { gint Choice = GPOINTER_TO_INT(user_data); /* PRINT_FUNC_LF(); */ /* g_print ("user_data = %d\n", (gint)user_data); g_print ("Choice = %d\n", Choice); */ gtk_widget_destroy(Select[ Choice ].AdrFileChooser); Select[ Choice ].AdrFileChooser = NULL; } // http://forum.gtk-fr.org/viewtopic.php?pid=22743 // void chooserDialog_preview_update (GtkFileChooser *filechooser, gpointer data) { GtkWidget *preview = NULL; GdkPixbuf *pixbuf = NULL; gchar *filename = NULL; preview = GTK_WIDGET (data); if( NULL != (filename = gtk_file_chooser_get_preview_filename(filechooser))) { pixbuf = gdk_pixbuf_new_from_file_at_size(filename, 200, 200, NULL); g_free (filename); filename = NULL; if( NULL != pixbuf ) { gtk_image_set_from_pixbuf (GTK_IMAGE(preview), pixbuf); g_object_unref(pixbuf); gtk_file_chooser_set_preview_widget_active(filechooser, TRUE); } } } // Demande de creation de la fenetre de selection de fichier(s) ou de repertoire // void fileselect_create (TYPE_FILESELECTION Choice, gchar *Path, void *Func_Extern) { GtkWidget *filechooserdialog; GtkWidget *dialog_vbox1; GtkWidget *dialog_action_area1; GtkWidget *button_cancel; GtkWidget *button_ok; GtkWidget *preview; GtkFileFilter *filter; if (_NB_PATH_ <= 0) return; if (Choice < 0 || Choice > _NB_PATH_) return; VarFileSelect.TypeFileSelection = Choice; if (Choice < _PATH_CHOICE_DESTINATION_ || Choice > _NB_PATH_) return; filechooserdialog = Select[ Choice ].AdrFileChooser; if (filechooserdialog != NULL) { gdk_window_raise (filechooserdialog->window); return; } /* CORRECTIF DU 26 01 2006 */ Select[ Choice ].Func_Extern = Func_Extern; /* CORRECTIF DU 28 05 2006 */ g_utf8_validate (Select[ Choice ].Title, -1, NULL); if (NULL == Select[ Choice ].Title) { PRINT("\tTITLE == NULL"); return; } /* typedef enum { GTK_FILE_CHOOSER_ACTION_OPEN, GTK_FILE_CHOOSER_ACTION_SAVE, GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER, GTK_FILE_CHOOSER_ACTION_CREATE_FOLDER } GtkFileChooserAction; */ if (Select[ Choice ].TypeSelect == _REP_SIMPLE_ || Select[ Choice ].TypeSelect == _REP_MULTIPLE_) { /* selection de directory */ filechooserdialog = gtk_file_chooser_dialog_new (Select[ Choice ].Title, NULL, GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER, /* | GTK_FILE_CHOOSER_ACTION_CREATE_FOLDER, */ NULL, NULL); } else if (Select[ Choice ].TypeSelect == _FILE_SIMPLE_ || Select[ Choice ].TypeSelect == _FILE_MULTIPLE_) { /* selection de fichiers(s) */ filechooserdialog = gtk_file_chooser_dialog_new (Select[ Choice ].Title, NULL, GTK_FILE_CHOOSER_ACTION_OPEN, NULL, NULL); if (_PATH_LOAD_SPLIT_FILE_ == Choice) { filter = gtk_file_filter_new (); gtk_file_filter_add_pattern (filter, "*.wav"); gtk_file_filter_add_pattern (filter, "*.WAV"); gtk_file_filter_add_pattern (filter, "*.bwf"); gtk_file_filter_add_pattern (filter, "*.BWF"); gtk_file_filter_add_pattern (filter, "*.flac"); gtk_file_filter_add_pattern (filter, "*.FLAC"); gtk_file_filter_add_pattern (filter, "*.ogg"); gtk_file_filter_add_pattern (filter, "*.OGG"); gtk_file_filter_add_pattern (filter, "*.mp3"); gtk_file_filter_add_pattern (filter, "*.MP3"); gtk_file_filter_add_pattern (filter, "*.ape"); gtk_file_filter_add_pattern (filter, "*.APE"); gtk_file_filter_add_pattern (filter, "*.wma"); gtk_file_filter_add_pattern (filter, "*.WMA"); gtk_file_filter_add_pattern (filter, "*.cue"); gtk_file_filter_add_pattern (filter, "*.CUE"); gtk_file_filter_set_name (filter, "*.wav *.flac *.ogg *.mp3 *.ape *.wma *.cue"); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (filechooserdialog), filter); filter = gtk_file_filter_new (); gtk_file_filter_set_name (filter, "WAV (*.wav)"); gtk_file_filter_add_pattern (filter, "*.wav"); gtk_file_filter_add_pattern (filter, "*.WAV"); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (filechooserdialog), filter); filter = gtk_file_filter_new (); gtk_file_filter_set_name (filter, "BWF (*.bwf)"); gtk_file_filter_add_pattern (filter, "*.bwf"); gtk_file_filter_add_pattern (filter, "*.BWF"); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (filechooserdialog), filter); filter = gtk_file_filter_new (); gtk_file_filter_set_name (filter, "FLAC (*.flac)"); gtk_file_filter_add_pattern (filter, "*.flac"); gtk_file_filter_add_pattern (filter, "*.FLAC"); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (filechooserdialog), filter); filter = gtk_file_filter_new (); gtk_file_filter_set_name (filter, "MP3 (*.mp3)"); gtk_file_filter_add_pattern (filter, "*.mp3"); gtk_file_filter_add_pattern (filter, "*.MP3"); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (filechooserdialog), filter); filter = gtk_file_filter_new (); gtk_file_filter_set_name (filter, "OGG (*.ogg)"); gtk_file_filter_add_pattern (filter, "*.ogg"); gtk_file_filter_add_pattern (filter, "*.OGG"); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (filechooserdialog), filter); filter = gtk_file_filter_new (); gtk_file_filter_set_name (filter, "APE (*.ape)"); gtk_file_filter_add_pattern (filter, "*.ape"); gtk_file_filter_add_pattern (filter, "*.APE"); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (filechooserdialog), filter); filter = gtk_file_filter_new (); gtk_file_filter_set_name (filter, "WMA (*.wma)"); gtk_file_filter_add_pattern (filter, "*.wma"); gtk_file_filter_add_pattern (filter, "*.WMA"); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (filechooserdialog), filter); filter = gtk_file_filter_new (); gtk_file_filter_set_name (filter, "CUE (*.cue)"); gtk_file_filter_add_pattern (filter, "*.cue"); gtk_file_filter_add_pattern (filter, "*.CUE"); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (filechooserdialog), filter); } else if( Choice == _PATH_LOAD_FILE_ALL_ || Choice == _PATH_LOAD_FILE_MUSIC_ ) { filter = gtk_file_filter_new (); gtk_file_filter_set_name (filter, _("All Files (*.*)")); gtk_file_filter_add_pattern (filter, "*.wav"); gtk_file_filter_add_pattern (filter, "*.WAV"); gtk_file_filter_add_pattern (filter, "*.bwf"); gtk_file_filter_add_pattern (filter, "*.BWF"); gtk_file_filter_add_pattern (filter, "*.flac"); gtk_file_filter_add_pattern (filter, "*.FLAC"); gtk_file_filter_add_pattern (filter, "*.ape"); gtk_file_filter_add_pattern (filter, "*.APE"); gtk_file_filter_add_pattern (filter, "*.wv"); gtk_file_filter_add_pattern (filter, "*.WV"); gtk_file_filter_add_pattern (filter, "*.ogg"); gtk_file_filter_add_pattern (filter, "*.OGG"); gtk_file_filter_add_pattern (filter, "*.oga"); gtk_file_filter_add_pattern (filter, "*.OGA"); gtk_file_filter_add_pattern (filter, "*.m4a"); gtk_file_filter_add_pattern (filter, "*.M4A"); gtk_file_filter_add_pattern (filter, "*.aac"); gtk_file_filter_add_pattern (filter, "*.AAC"); gtk_file_filter_add_pattern (filter, "*.mpc"); gtk_file_filter_add_pattern (filter, "*.MPC"); gtk_file_filter_add_pattern (filter, "*.mp3"); gtk_file_filter_add_pattern (filter, "*.MP3"); gtk_file_filter_add_pattern (filter, "*.rm"); gtk_file_filter_add_pattern (filter, "*.RM"); gtk_file_filter_add_pattern (filter, "*.dts"); gtk_file_filter_add_pattern (filter, "*.DTS"); gtk_file_filter_add_pattern (filter, "*.aif"); gtk_file_filter_add_pattern (filter, "*.aiff"); gtk_file_filter_add_pattern (filter, "*.AIF"); gtk_file_filter_add_pattern (filter, "*.AIFF"); gtk_file_filter_add_pattern (filter, "*.shn"); gtk_file_filter_add_pattern (filter, "*.SHN"); gtk_file_filter_add_pattern (filter, "*.wma"); gtk_file_filter_add_pattern (filter, "*.WMA"); gtk_file_filter_add_pattern (filter, "*.ac3"); gtk_file_filter_add_pattern (filter, "*.AC3"); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (filechooserdialog), filter); filter = gtk_file_filter_new (); gtk_file_filter_set_name (filter, "WAV (*.wav)"); gtk_file_filter_add_pattern (filter, "*.wav"); gtk_file_filter_add_pattern (filter, "*.WAV"); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (filechooserdialog), filter); filter = gtk_file_filter_new (); gtk_file_filter_set_name (filter, "BWF (*.bwf)"); gtk_file_filter_add_pattern (filter, "*.bwf"); gtk_file_filter_add_pattern (filter, "*.BWF"); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (filechooserdialog), filter); filter = gtk_file_filter_new (); gtk_file_filter_set_name (filter, "FLAC (*.flac)"); gtk_file_filter_add_pattern (filter, "*.flac"); gtk_file_filter_add_pattern (filter, "*.FLAC"); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (filechooserdialog), filter); filter = gtk_file_filter_new (); gtk_file_filter_set_name (filter, "APE (*.ape)"); gtk_file_filter_add_pattern (filter, "*.ape"); gtk_file_filter_add_pattern (filter, "*.APE"); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (filechooserdialog), filter); filter = gtk_file_filter_new (); gtk_file_filter_set_name (filter, "WAVPACK (*.wv)"); gtk_file_filter_add_pattern (filter, "*.wv"); gtk_file_filter_add_pattern (filter, "*.WV"); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (filechooserdialog), filter); filter = gtk_file_filter_new (); gtk_file_filter_set_name (filter, "OGG (*.ogg)"); gtk_file_filter_add_pattern (filter, "*.ogg"); gtk_file_filter_add_pattern (filter, "*.OGG"); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (filechooserdialog), filter); filter = gtk_file_filter_new (); gtk_file_filter_set_name (filter, "M4A (*.m4a)"); gtk_file_filter_add_pattern (filter, "*.m4a"); gtk_file_filter_add_pattern (filter, "*.M4A"); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (filechooserdialog), filter); filter = gtk_file_filter_new (); gtk_file_filter_set_name (filter, "AAC (*.aac)"); gtk_file_filter_add_pattern (filter, "*.aac"); gtk_file_filter_add_pattern (filter, "*.AAC"); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (filechooserdialog), filter); filter = gtk_file_filter_new (); gtk_file_filter_set_name (filter, "MPC (*.mpc)"); gtk_file_filter_add_pattern (filter, "*.mpc"); gtk_file_filter_add_pattern (filter, "*.MPC"); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (filechooserdialog), filter); filter = gtk_file_filter_new (); gtk_file_filter_set_name (filter, "MP3 (*.mp3)"); gtk_file_filter_add_pattern (filter, "*.mp3"); gtk_file_filter_add_pattern (filter, "*.MP3"); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (filechooserdialog), filter); filter = gtk_file_filter_new (); gtk_file_filter_set_name (filter, "AIFF (*.aif*)"); gtk_file_filter_add_pattern (filter, "*.aif*"); gtk_file_filter_add_pattern (filter, "*.AIF*"); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (filechooserdialog), filter); filter = gtk_file_filter_new (); gtk_file_filter_set_name (filter, "RM (*.rm)"); gtk_file_filter_add_pattern (filter, "*.rm"); gtk_file_filter_add_pattern (filter, "*.RM"); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (filechooserdialog), filter); filter = gtk_file_filter_new (); gtk_file_filter_set_name (filter, "DTS (*.dts)"); gtk_file_filter_add_pattern (filter, "*.dts"); gtk_file_filter_add_pattern (filter, "*.DTS"); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (filechooserdialog), filter); filter = gtk_file_filter_new (); gtk_file_filter_set_name (filter, "SHORTEN (*.shn)"); gtk_file_filter_add_pattern (filter, "*.shn"); gtk_file_filter_add_pattern (filter, "*.SHN"); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (filechooserdialog), filter); filter = gtk_file_filter_new (); gtk_file_filter_set_name (filter, "WMA (*.wma)"); gtk_file_filter_add_pattern (filter, "*.wma"); gtk_file_filter_add_pattern (filter, "*.WMA"); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (filechooserdialog), filter); filter = gtk_file_filter_new (); gtk_file_filter_set_name (filter, "AC3 (*.ac3)"); gtk_file_filter_add_pattern (filter, "*.ac3"); gtk_file_filter_add_pattern (filter, "*.AC3"); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (filechooserdialog), filter); } else if (Choice == _PATH_LOAD_FILE_WAV_) { filter = gtk_file_filter_new (); gtk_file_filter_set_name (filter, _("All Files (*.*)")); gtk_file_filter_add_pattern (filter, "*.wav"); gtk_file_filter_add_pattern (filter, "*.WAV"); gtk_file_filter_add_pattern (filter, "*.bwf"); gtk_file_filter_add_pattern (filter, "*.BWF"); gtk_file_filter_set_name (filter, "*.wav *.bwf"); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (filechooserdialog), filter); } else if (Choice == _PATH_LOAD_FILE_MP3OGG_) { filter = gtk_file_filter_new (); gtk_file_filter_set_name (filter, _("All Files (*.*)")); gtk_file_filter_add_pattern (filter, "*.ogg"); gtk_file_filter_add_pattern (filter, "*.OGG"); gtk_file_filter_add_pattern (filter, "*.oga"); gtk_file_filter_add_pattern (filter, "*.OGA"); gtk_file_filter_add_pattern (filter, "*.mp3"); gtk_file_filter_add_pattern (filter, "*.MP3"); gtk_file_filter_set_name (filter, "*.mp3 *.ogg"); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (filechooserdialog), filter); filter = gtk_file_filter_new (); gtk_file_filter_set_name (filter, "OGG (*.ogg)"); gtk_file_filter_add_pattern (filter, "*.ogg"); gtk_file_filter_add_pattern (filter, "*.OGG"); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (filechooserdialog), filter); filter = gtk_file_filter_new (); gtk_file_filter_set_name (filter, "MP3 (*.mp3)"); gtk_file_filter_add_pattern (filter, "*.mp3"); gtk_file_filter_add_pattern (filter, "*.MP3"); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (filechooserdialog), filter); } else if (Choice == _PATH_LOAD_FILE_TAGS_) { filter = gtk_file_filter_new (); gtk_file_filter_set_name (filter, _("All Files (*.*)")); gtk_file_filter_add_pattern (filter, "*.flac"); gtk_file_filter_add_pattern (filter, "*.FLAC"); gtk_file_filter_add_pattern (filter, "*.ogg"); gtk_file_filter_add_pattern (filter, "*.OGG"); gtk_file_filter_add_pattern (filter, "*.oga"); gtk_file_filter_add_pattern (filter, "*.OGA"); gtk_file_filter_add_pattern (filter, "*.mpc"); gtk_file_filter_add_pattern (filter, "*.MPC"); gtk_file_filter_add_pattern (filter, "*.mp3"); gtk_file_filter_add_pattern (filter, "*.MP3"); gtk_file_filter_set_name (filter, "*.flac *.mpc *.mp3 *.ogg"); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (filechooserdialog), filter); filter = gtk_file_filter_new (); gtk_file_filter_set_name (filter, "FLAC (*.flac)"); gtk_file_filter_add_pattern (filter, "*.flac"); gtk_file_filter_add_pattern (filter, "*.FLAC"); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (filechooserdialog), filter); filter = gtk_file_filter_new (); gtk_file_filter_set_name (filter, "OGG (*.ogg)"); gtk_file_filter_add_pattern (filter, "*.ogg"); gtk_file_filter_add_pattern (filter, "*.OGG"); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (filechooserdialog), filter); filter = gtk_file_filter_new (); gtk_file_filter_set_name (filter, "MPC (*.mpc)"); gtk_file_filter_add_pattern (filter, "*.mpc"); gtk_file_filter_add_pattern (filter, "*.MPC"); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (filechooserdialog), filter); filter = gtk_file_filter_new (); gtk_file_filter_set_name (filter, "MP3 (*.mp3)"); gtk_file_filter_add_pattern (filter, "*.mp3"); gtk_file_filter_add_pattern (filter, "*.MP3"); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (filechooserdialog), filter); } } else if (Select[ Choice ].TypeSelect == _FILE_IMG_SIMPLE_ || Select[ Choice ].TypeSelect == _FILE_IMG_MULTIPLE_) { /* selection de fichiers images avec previsualisation */ filechooserdialog = gtk_file_chooser_dialog_new (Select[ Choice ].Title, NULL, GTK_FILE_CHOOSER_ACTION_OPEN, /*GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,*/ NULL, NULL); preview = gtk_image_new (); gtk_widget_set_usize(GTK_WIDGET(preview), 200, 200); gtk_file_chooser_set_preview_widget(GTK_FILE_CHOOSER(filechooserdialog), GTK_WIDGET(preview)); gtk_file_chooser_set_preview_widget_active (GTK_FILE_CHOOSER (filechooserdialog), TRUE); g_signal_connect(GTK_FILE_CHOOSER(filechooserdialog), "update-preview", G_CALLBACK (chooserDialog_preview_update), preview); } if (Select[ Choice ].TypeSelect == _REP_MULTIPLE_ || Select[ Choice ].TypeSelect == _FILE_MULTIPLE_ || Select[ Choice ].TypeSelect == _FILE_IMG_MULTIPLE_) { /* selection 'multiple' */ g_object_set (filechooserdialog, "select-multiple", TRUE, NULL); gtk_file_chooser_set_select_multiple (GTK_FILE_CHOOSER (filechooserdialog), TRUE); } gtk_window_set_position (GTK_WINDOW (filechooserdialog), GTK_WIN_POS_CENTER); gtk_window_set_transient_for (GTK_WINDOW(filechooserdialog), GTK_WINDOW(WindMain)); gtk_window_set_modal (GTK_WINDOW (filechooserdialog), TRUE); gtk_file_chooser_set_current_folder ( GTK_FILE_CHOOSER (filechooserdialog), Path); Select[ Choice ].AdrFileChooser = filechooserdialog; gtk_window_set_type_hint (GTK_WINDOW (filechooserdialog), GDK_WINDOW_TYPE_HINT_DIALOG); dialog_vbox1 = GTK_DIALOG (filechooserdialog)->vbox; gtk_widget_show (dialog_vbox1); dialog_action_area1 = GTK_DIALOG (filechooserdialog)->action_area; gtk_widget_show (dialog_action_area1); gtk_button_box_set_layout (GTK_BUTTON_BOX (dialog_action_area1), GTK_BUTTONBOX_END); button_cancel = gtk_button_new_from_stock ("gtk-cancel"); gtk_widget_show (button_cancel); gtk_dialog_add_action_widget (GTK_DIALOG (filechooserdialog), button_cancel, GTK_RESPONSE_CANCEL); GTK_WIDGET_SET_FLAGS (button_cancel, GTK_CAN_DEFAULT); button_ok = gtk_button_new_from_stock ("gtk-open"); gtk_widget_show (button_ok); gtk_dialog_add_action_widget (GTK_DIALOG (filechooserdialog), button_ok, GTK_RESPONSE_OK); GTK_WIDGET_SET_FLAGS (button_ok, GTK_CAN_DEFAULT); g_signal_connect ((gpointer) filechooserdialog, "delete_event", G_CALLBACK (fileselect_on_filechooserdialog_delete_event), (gpointer)Choice); g_signal_connect ((gpointer) filechooserdialog, "destroy_event", G_CALLBACK (fileselect_on_filechooserdialog_destroy_event), (gpointer)Choice); g_signal_connect ((gpointer) button_cancel, "clicked", G_CALLBACK (fileselect_on_button_cancel_clicked), (gpointer)Choice); g_signal_connect ((gpointer) button_ok, "clicked", G_CALLBACK (Select[ Choice ].Call_Func), (gpointer)Choice); /* Store pointers to all widgets, for use by lookup_widget(). */ GLADE_HOOKUP_OBJECT_NO_REF (filechooserdialog, filechooserdialog, "filechooserdialog"); GLADE_HOOKUP_OBJECT_NO_REF (filechooserdialog, dialog_vbox1, "dialog_vbox1"); GLADE_HOOKUP_OBJECT_NO_REF (filechooserdialog, dialog_action_area1, "dialog_action_area1"); GLADE_HOOKUP_OBJECT (filechooserdialog, button_cancel, "button_cancel"); GLADE_HOOKUP_OBJECT (filechooserdialog, button_ok, "button_ok"); gtk_widget_grab_default (button_ok); gtk_widget_show (filechooserdialog); } xcfa-4.3.6/src/extra.h0000644000175000017500000000230512122563437011456 00000000000000 /* * file : extra.h * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifndef extra_h #define extra_h 1 gchar *extra_get_name_navigateur (void); gboolean extra_get_navigateur_is_ok (void); gchar *extra_get_name_lecteur_audio (void); gchar *extra_get_param_name_lecteur_audio (void); gboolean extra_get_lecteur_audio_is_ok (void); gboolean extra_get_param_name_lecteur_audio_is_ok (void); #endif xcfa-4.3.6/src/main.c0000644000175000017500000006217212211131106011241 00000000000000 /* * file : main.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include // /usr/include/gtk-2.0/gdk/gdkkeysyms.h #include #include #include #include #include #include #include #include #include /* For the workspace/viewport stuff */ #ifdef GDK_WINDOWING_X11 #include #include #include #include #endif #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "options.h" #include "configuser.h" #include "file.h" #include "notify_send.h" #include "parse.h" #include "scan.h" #include "cd_audio.h" #include "dvd.h" #include "web.h" #include "poche.h" #include "treeview.h" #include "get_info.h" #include "mplayer.h" #include "win_about.h" #include "process.h" #include "split.h" #include "alsa_play.h" #include "win_info.h" #include "statusbar.h" #include "cd_curl.h" #include "bacon.h" // FIXME // TODO GtkBuilder *GtkXcfaProjet = NULL; GtkWidget *WindMain = NULL; HOST_CONF HostConf; GtkWidget *AdrLabelStatusbarGlobal = NULL; BaconMessageConnection *connection = NULL; KEYS keys = { FALSE, // gboolean BoolGDKPress FALSE, // gboolean BoolGDK_Control_L_R FALSE, // gboolean BoolGDK_Control_A 0, // guint keyval }; // // void on_label_statusbar_global_realize (GtkWidget *widget, gpointer user_data) { AdrLabelStatusbarGlobal = widget; } // -RECUPERATION DES DATAS // -SAUVEGARDE DES DATAS // void remove_memory_apply (void) { static gboolean BoolDoEnterRemove = FALSE; if (TRUE == BoolDoEnterRemove) return; BoolDoEnterRemove = TRUE; VERBOSE ("\n--------------------------------------------------\n"); PRINT_FUNC_LF(); VERBOSE ("--------------------------------------------------\n"); VERBOSE("AlsaPlay_stop ()\n") AlsaPlay_stop (); VERBOSE ("split_set_stop ()\n"); split_set_stop (); VERBOSE ("Recuperation position et taille de la fenetre\n"); gdk_window_get_root_origin (WindMain->window, &Config.WinPos_X, &Config.WinPos_Y); gdk_window_get_size (WindMain->window, &Config.WinWidth, &Config.WinHeight); VERBOSE ("Sauvegarde l'etat de l'expander CD\n"); Config.BoolEtatExpanderCd = gtk_expander_get_expanded (GTK_EXPANDER (var_cd.Adr_Expander)); VERBOSE ("Sauvegarde de la configuration\n"); config_save (); VERBOSE ("config_remove ()\n"); config_remove (); VERBOSE ("fileanalyze_remove_entetefile ()\n"); fileanalyze_remove_entetefile (); VERBOSE ("dvdaudio_remove_GtkTree ()\n"); dvd_remove_GtkTree (); VERBOSE ("dvdread_remove_list ()\n"); dvdread_remove_list (); VERBOSE ("cdaudio_deallocate_glist ()\n"); cdaudio_deallocate_glist (); VERBOSE ("NotifySend_remove ()\n"); NotifySend_remove (); VERBOSE ("Parse_remove (PARSE_TYPE_STOCKAGE_CD)\n"); Parse_remove (PARSE_TYPE_STOCKAGE_CD, TRUE); VERBOSE ("Parse_remove (PARSE_TYPE_TITLE_CD)\n"); Parse_remove (PARSE_TYPE_TITLE_CD, TRUE); VERBOSE ("poche_remove_view()\n"); poche_remove_view(); VERBOSE ("poche_remove_ListImage()\n"); poche_remove_ListImage(); VERBOSE ("libcombo_remove ()\n"); libcombo_remove (); VERBOSE ("scan_remove_glist_media ()\n"); scan_remove_glist_media (); VERBOSE ("web_remove_temporary_rep ()\n"); web_remove_temporary_rep (); VERBOSE ("CdCurl_remove_struct_all ()\n"); CdCurl_remove_struct_all(); VERBOSE ("mplayer_remove_list_args ()\n"); mplayer_remove_list_args (); VERBOSE ("SplitSpectre_remove ()\n"); SplitSpectre_remove (); VERBOSE ("AlsaPlay_remove ()\n"); AlsaPlay_remove (); if (TRUE == libutils_test_file_exist (XCFA_FILE_LOAD)) { if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("g_unlink (%s)\n", XCFA_FILE_LOAD); g_unlink (XCFA_FILE_LOAD); } if (TRUE == libutils_test_file_exist (SPLIT_FILE_TMP_WAV)) { if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("g_unlink (%s)\n", SPLIT_FILE_TMP_WAV); g_unlink (SPLIT_FILE_TMP_WAV); } VERBOSE ("StatusBar_remove ()\n"); StatusBar_remove(); Config.PathPochette = libutils_remove_temporary_rep( Config.PathPochette ); if( NULL != Config.PathLoadImg ) { g_free( Config.PathLoadImg ); Config.PathLoadImg = NULL; } if( Config.PathSaveImg ) { g_free( Config.PathSaveImg ); Config.PathSaveImg = NULL; } g_print ("\n"); } // // void on_notebook_general_switch_page (GtkNotebook *notebook, GtkNotebookPage *page, guint page_num, gpointer user_data) { if (TRUE == Config.BoolConfigOk) { Config.NotebookGeneral = page_num; if (NOTEBOOK_SPLIT == Config.NotebookGeneral) { split_set_name_file (); } else { StatusBar_puts(); } } } // // void on_notebook_expander_cd_switch_page (GtkNotebook *notebook, GtkNotebookPage *page, guint page_num, gpointer user_data) { if (TRUE == Config.BoolConfigOk) Config.NotebookExpanderCd = page_num; } // // void on_notebook_in_file_switch_page (GtkNotebook *notebook, GtkNotebookPage *page, guint page_num, gpointer user_data) { if (TRUE == Config.BoolConfigOk) { Config.NotebookFile = page_num; switch (Config.NotebookFile) { case NOTEBOOK_FICHIERS_CONVERSION : gtk_combo_box_remove_text (GTK_COMBO_BOX (var_file.Adr_combobox_DestFile), 2); gtk_combo_box_append_text (GTK_COMBO_BOX (var_file.Adr_combobox_DestFile), Config.PathDestinationFileAll); gtk_combo_box_set_active (GTK_COMBO_BOX (var_file.Adr_combobox_DestFile), Config.TabIndiceComboDestFile[ NOTEBOOK_FICHIERS_CONVERSION ]); break; case NOTEBOOK_FICHIERS_WAV : gtk_combo_box_remove_text (GTK_COMBO_BOX (var_file.Adr_combobox_DestFile), 2); gtk_combo_box_append_text (GTK_COMBO_BOX (var_file.Adr_combobox_DestFile), Config.PathDestinationFileWav); gtk_combo_box_set_active (GTK_COMBO_BOX (var_file.Adr_combobox_DestFile), Config.TabIndiceComboDestFile[ NOTEBOOK_FICHIERS_WAV ]); break; case NOTEBOOK_FICHIERS_MP3OGG : gtk_combo_box_remove_text (GTK_COMBO_BOX (var_file.Adr_combobox_DestFile), 2); gtk_combo_box_append_text (GTK_COMBO_BOX (var_file.Adr_combobox_DestFile), Config.PathDestinationFileMp3Ogg); gtk_combo_box_set_active (GTK_COMBO_BOX (var_file.Adr_combobox_DestFile), Config.TabIndiceComboDestFile[ NOTEBOOK_FICHIERS_MP3OGG ]); break; case NOTEBOOK_FICHIERS_TAGS : gtk_combo_box_remove_text (GTK_COMBO_BOX (var_file.Adr_combobox_DestFile), 2); gtk_combo_box_append_text (GTK_COMBO_BOX (var_file.Adr_combobox_DestFile), Config.PathDestinationFileTags); gtk_combo_box_set_active (GTK_COMBO_BOX (var_file.Adr_combobox_DestFile), Config.TabIndiceComboDestFile[ NOTEBOOK_FICHIERS_TAGS ]); break; } StatusBar_set_mess( NOTEBOOK_FICHIERS, _STATUSBAR_SIMPLE_, "" ); StatusBar_puts(); } } // // void on_notebook_options_switch_page (GtkNotebook *notebook, GtkNotebookPage *page, guint page_num, gpointer user_data) { if (TRUE == Config.BoolConfigOk) Config.NotebookOptions = page_num; } // // void on_notebook_app_externes_switch_page (GtkNotebook *notebook, GtkNotebookPage *page, guint page_num, gpointer user_data) { if (TRUE == Config.BoolConfigOk) Config.NotebookAppExterns = page_num; } // // gboolean on_wind_main_key_press_event( GtkWidget *widget, GdkEventKey *kevent, gpointer user_data ) { keys.BoolGDKPress = TRUE; keys.keyval = kevent->keyval; if( kevent->keyval == GDK_Control_L || kevent->keyval == GDK_Control_R ) { keys.BoolGDK_Control_L_R = TRUE; } else if( kevent->state == 20 || kevent->state == 21 ) { if( kevent->keyval == 65 || kevent->keyval == 97 ) { keys.BoolGDK_Control_A = TRUE; } } if( NOTEBOOK_POCHETTE == Config.NotebookGeneral ) { if( TRUE == keys.BoolGDK_Control_L_R ) { pochedir_set_ctrl( TRUE ); } else if( kevent->keyval == GDK_Delete) { // poche_remove_image(); } } else if( NOTEBOOK_SPLIT == Config.NotebookGeneral ) { if( kevent->keyval == GDK_Delete ) { SplitSelector_cut (); } else if( kevent->keyval == GDK_space ) { // Une action sur la barre espace agit sur sur le play/pause split_play (); } } return FALSE; } // // gboolean on_wind_main_key_release_event( GtkWidget *widget, GdkEventKey *kevent, gpointer user_data ) { keys.BoolGDKPress = FALSE; keys.BoolGDK_Control_L_R = FALSE; keys.BoolGDK_Control_A = FALSE; keys.keyval = 0; if( NOTEBOOK_POCHETTE == Config.NotebookGeneral ) { pochedir_set_ctrl( FALSE ); } return FALSE; } gboolean on_wind_main_window_state_event( GtkWidget *widget, GdkEventWindowState *event, gpointer ser_data ) { /* typedef enum { GDK_WINDOW_STATE_WITHDRAWN = 1 << 0, GDK_WINDOW_STATE_ICONIFIED = 1 << 1, GDK_WINDOW_STATE_MAXIMIZED = 1 << 2, GDK_WINDOW_STATE_STICKY = 1 << 3, GDK_WINDOW_STATE_FULLSCREEN = 1 << 4, GDK_WINDOW_STATE_ABOVE = 1 << 5, GDK_WINDOW_STATE_BELOW = 1 << 6 } GdkWindowState; */ if( GDK_WINDOW_STATE_MAXIMIZED == event->new_window_state ) { gdk_window_maximize( WindMain->window ); } return FALSE; } // // gboolean on_wind_main_delete_event (GtkWidget *widget, GdkEvent *event, gpointer user_data) { remove_memory_apply (); gtk_main_quit (); return FALSE; } // // gboolean on_wind_main_destroy_event (GtkWidget *widget, GdkEvent *event, gpointer user_data) { remove_memory_apply (); gtk_main_quit (); return FALSE; } // // void on_quitter1_activate (GtkMenuItem *menuitem, gpointer user_data) { remove_memory_apply (); gtk_main_quit (); } // // void on_a_propos1_activate (GtkMenuItem *menuitem, gpointer user_data) { gchar *StrAboutXcfa = g_strdup_printf ("About XCFA - %s", VERSION); WinAbout_open (StrAboutXcfa); g_free (StrAboutXcfa); StrAboutXcfa = NULL; } // // void on_show_fields_activate (GtkMenuItem *menuitem, gpointer user_data) { treeview_open_window (); } /* Install un 'handler' sur une mauvaise allocation memoire * -- * entree : int sig : * retour : - */ void segfault_handler(int sig) { g_unlink (XCFA_FILE_LOAD); remove_memory_apply (); g_print ("\n=========================================================\n"); g_print ("= Segmentation fault\n"); g_print (_("= Adressage memoire invalide\n")); g_print ("=-------------------------------------------------------=\n"); g_print ("= You've probably found a bug in XCFA\n"); g_print (_("= Vous avez probablement trouve un bug dans XCFA\n")); g_print ("=========================================================\n\n"); exit (EXIT_FAILURE); } // // typedef enum { _PARAMS_GET_ALL_OPTIONS_ = 0, _PARAMS_GET_OPTIONS_ONLY_ } PARAMS_CMD_LINE; // // GList *AnalyseCommandLine_set_argv( gint argc, gchar *argv[], PARAMS_CMD_LINE ParamsCmdLine ) { gint i; gchar *str_current_dir = NULL; // FILE *fp = NULL; GList *GListFile = NULL; if( optind < argc ) { for( i = optind; i < argc; i++ ) { // VERBOSE MODE if( 0 == strcmp( argv[i], "-verbose" )) { OptionsCommandLine.BoolVerboseMode = TRUE; // g_print( "\nVERBOSE MODE:\n"); // g_print( " argv[ %d ] = %s\n", i, argv[ i ] ); // g_print( " BoolVerboseMode = %s\n", OptionsCommandLine.BoolVerboseMode ? "TRUE" : "FALSE" ); // g_print( "\n" ); } // VERSION MODE else if( 0 == strcmp( argv[i], "-version" )) { OptionsCommandLine.BoolVersionMode = TRUE; // g_print( "\nVERSION MODE:\n"); // g_print( " argv[ %d ] = %s\n", i, argv[ i ] ); // g_print( " OptionsCommandLine.BoolVersionMode = %s\n", OptionsCommandLine.BoolVersionMode ? "TRUE" : "FALSE" ); // g_print( "\n" ); } // HELP MODE else if( 0 == strcmp( argv[i], "-help" ) || 0 == strcmp( argv[i], "-h" )) { OptionsCommandLine.BoolHelpMode = TRUE; } } // STOP ? if( _PARAMS_GET_OPTIONS_ONLY_ == ParamsCmdLine )return( (GList *)NULL ); if( FALSE == OptionsCommandLine.BoolVerboseMode && FALSE == OptionsCommandLine.BoolVersionMode ) { str_current_dir = g_get_current_dir(); // fp = fopen( XCFA_FILE_LOAD, "a" ); for( i = optind; i < argc; i++ ) { if( *argv[ i ] == '-' ) continue; // FROM DESKTOP if( argv[i][0] == '/' ) { // fprintf( fp, "%s\n", argv[ i ] ); GListFile = g_list_append( GListFile, g_strdup( argv[ i ] )); } else { gchar *str = NULL; str = g_strdup_printf( "%s/%s", str_current_dir, argv[i] ); // fprintf( fp, "%s\n", str ); GListFile = g_list_append( GListFile, g_strdup( str )); g_free( str ); str = NULL; } } // fclose( fp ); g_free( str_current_dir ); str_current_dir = NULL; } } return( (GList *)GListFile ); } // // void main_save( GList *p_GListFile ) { GList *list = NULL; gchar *PtrName = NULL; FILE *fp = NULL; // g_return_if_fail (p_GListFile != NULL); if( NULL != p_GListFile ) { if( NULL != (list = g_list_first( p_GListFile ))) { fp = fopen( XCFA_FILE_LOAD, "a" ); while( list ) { if (NULL != (PtrName = (gchar *)list->data)) { fprintf( fp, "%s\n", PtrName ); if( TRUE == OptionsCommandLine.BoolVersionMode ) g_print( "%s\n", PtrName ); } list = g_list_next( list ); } fclose( fp ); } } } // // static void on_message_received( const char *message, gpointer data ) { FILE *fp = NULL; fp = fopen( XCFA_FILE_LOAD, "a" ); fprintf( fp, "%s\n", message ); fclose( fp ); gtk_window_present (GTK_WINDOW (WindMain)); } /* gint main (gint argc, gchar *argv[], gchar **envp) * * argc designe le nombre d'arguments transmis au moment du lancement de l'executable * argv designe le vecteur contenant les differents arguments * envp designe le vecteur contenant les informations sur l'environnement */ gint main (gint argc, gchar *argv[], gchar **envp) { GError *p_err = NULL; gchar *CurrentDir = g_get_current_dir (); gchar *PathCurrentDir = NULL; gchar *PathShareProjet = NULL; gchar *Path = NULL; gchar *PackageVersion = NULL; GList *GListFile = NULL; /* Init type system as soon as possible */ // g_type_init (); g_set_prgname ("xcfa"); PRINT_FUNC_LF(); g_print ("\n"); g_print ("***************************\n"); g_print ("%s %s\n", PACKAGE, VERSION); g_print ("***************************\n"); g_print ("%s %s compiled at %s %s\n", PACKAGE_NAME, VERSION, __DATE__, __TIME__); g_print ("Compiler: gcc %s\n", __VERSION__); g_print ("***************************\n"); g_print ("Gtk version = %d.%d.%d\n", GTK_MAJOR_VERSION, GTK_MICRO_VERSION, GTK_MINOR_VERSION); g_print ("Glib version = %d.%d.%d\n", GLIB_MAJOR_VERSION, GLIB_MICRO_VERSION, GLIB_MINOR_VERSION); g_print ("***************************\n\n"); // ANALYSE UNIQUEMENT LES OPTIONS AnalyseCommandLine_set_argv( argc, &argv[0], _PARAMS_GET_OPTIONS_ONLY_ ); if( TRUE == OptionsCommandLine.BoolVersionMode || TRUE == OptionsCommandLine.BoolHelpMode ) { if( TRUE == OptionsCommandLine.BoolHelpMode ) { g_print( "HELP MODE:\n"); g_print( " -help -h Displays this help section and exits\n" ); g_print( " -version Displays the version of the program and exits\n" ); g_print( " -verbose Activate verbose mode\n" ); } g_print( "\n" ); g_unlink( XCFA_FILE_LOAD ); g_unlink( SPLIT_FILE_TMP_WAV ); return( EXIT_SUCCESS ); } #ifdef ENABLE_NLS if( TRUE == OptionsCommandLine.BoolVerboseMode ) { g_print ("ENABLE_NLS OK\n"); g_print ("\tGETTEXT_PACKAGE = %s\n", GETTEXT_PACKAGE); g_print ("\tLOCALE_DIR = %s\n", LOCALE_DIR); } setlocale( LC_ALL, "" ); bindtextdomain (GETTEXT_PACKAGE, LOCALE_DIR); bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); textdomain (GETTEXT_PACKAGE); #else // g_error ("ENABLE_NLS IS NOT OK\n\n"); #endif GetInfo_cpu_print (); // IF Segmentation fault signal (SIGSEGV, segfault_handler); config_read(); setlocale( LC_ALL, "" ); gtk_init( &argc, &argv ); /* Code revu depuis: bacon-message-connection.c bacon-message-connection.h Copyright (C) 2003 Bastien Nocera LA connection PEUT ETRE LIBEREE DES LE CHARGEMENT TOTAL DEPUIS LA LIGNE DE COMMANDE LES FICHIERS SERONT PRIT EN COMPTE DEPUIS: process_goto_timeout() */ connection = bacon_message_connection_new( "xcfa" ); if( NULL != connection ) { if( FALSE == bacon_message_connection_get_is_server( connection )) { // g_print( "\nCLIENT:\nGET COMMAND LINE AND EXIT\n" ); GListFile = AnalyseCommandLine_set_argv( argc, &argv[0], _PARAMS_GET_ALL_OPTIONS_ ); // Get and save param-file // SEND WITH: // bacon_message_connection_send( connection, str ); bacon_message_connection_send( connection, GListFile ); GListFile = libutils_remove_glist( GListFile ); // g_print( "bacon_utils_get_current_workspace() = %d\n", bacon_utils_get_current_workspace() +1 ); bacon_message_connection_free( connection ); exit( EXIT_SUCCESS ); } else { g_unlink( XCFA_FILE_LOAD ); g_unlink( SPLIT_FILE_TMP_WAV ); // g_print( "\nSERVER:\nGET COMMAND LINE AND CONTINUE\n" ); bacon_message_connection_set_callback( connection, on_message_received, NULL ); GListFile = AnalyseCommandLine_set_argv( argc, &argv[0], _PARAMS_GET_ALL_OPTIONS_ ); // Get and save param-file // SAVE TO: // XCFA_FILE_LOAD main_save( GListFile ); GListFile = libutils_remove_glist( GListFile ); } } else { g_warning( "Cannot create the 'gedit' connection." ); } gdk_threads_enter (); if (NULL == (GtkXcfaProjet = gtk_builder_new ())) { gdk_threads_leave (); return (EXIT_FAILURE); } gtk_builder_set_translation_domain (GtkXcfaProjet, NULL); PathCurrentDir = g_strdup_printf ("%s/glade/%s", CurrentDir, PACKAGE_NAME_GLADE); g_free (CurrentDir); CurrentDir = NULL; // PathShareProjet = g_strdup_printf ("%s/%s/glade/%s", DATA_DIR, PACKAGE_NAME, PACKAGE_NAME_GLADE); PathShareProjet = xdg_search_data_xdg( PACKAGE_NAME_GLADE ); if( TRUE == OptionsCommandLine.BoolVerboseMode ) { g_print("\n"); g_print("!---\n"); g_print("! File XML: [ %s ] %s\n", PathCurrentDir != NULL ? PathCurrentDir : PACKAGE_NAME_GLADE, g_file_test (PathCurrentDir, G_FILE_TEST_EXISTS) ? "Found" : "Not Found !!!" ); g_print("!---\n"); g_print("! File XML: [ %s ] %s\n", PathShareProjet != NULL ? PathShareProjet : PACKAGE_NAME_GLADE, g_file_test (PathShareProjet, G_FILE_TEST_EXISTS) ? "Found" : "Not Found !!!" ); g_print("!---\n"); } if (FALSE == g_file_test (PathCurrentDir, G_FILE_TEST_EXISTS) && FALSE == g_file_test (PathShareProjet, G_FILE_TEST_EXISTS)) { g_free (PathCurrentDir); PathCurrentDir = NULL; g_free (PathShareProjet); PathShareProjet = NULL; gdk_threads_leave (); return (EXIT_FAILURE); } else if (TRUE == g_file_test (PathCurrentDir, G_FILE_TEST_EXISTS)) { Path = PathCurrentDir; } else if (TRUE == g_file_test (PathShareProjet, G_FILE_TEST_EXISTS)) { Path = PathShareProjet; } if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print("\nPATHNAME FILE %s: %s\n\n", PACKAGE_NAME_GLADE, Path); if (gtk_builder_add_from_file (GtkXcfaProjet, Path, &p_err) <= 0) { g_warning ("Couldn't load builder file: %s", p_err->message); g_error_free (p_err); g_free (PathCurrentDir); PathCurrentDir = NULL; g_free (PathShareProjet); PathShareProjet = NULL; Path = NULL; gdk_threads_leave (); return (EXIT_FAILURE); } g_free (PathCurrentDir); PathCurrentDir = NULL; g_free (PathShareProjet); PathShareProjet = NULL; Path = NULL; gtk_builder_set_translation_domain (GtkXcfaProjet, setlocale( LC_ALL, "" ) ); gtk_builder_connect_signals (GtkXcfaProjet, NULL); WindMain = GTK_WIDGET (GLADE_GET_OBJECT("wind_main")); // REDIMENSIONNER LA FENETRE gtk_window_resize(GTK_WINDOW(WindMain), Config.WinWidth, Config.WinHeight); // PLACER LA FENETRE gtk_window_move(GTK_WINDOW(WindMain), Config.WinPos_X, Config.WinPos_Y); PackageVersion = g_strdup_printf ("X Convert File Audio - %s", VERSION); gtk_window_set_title (GTK_WINDOW (WindMain), PackageVersion); g_free (PackageVersion); PackageVersion = NULL; libutils_set_default_icone_to_win (WindMain); gtk_widget_show (WindMain); // NOTEBOOK gtk_notebook_set_current_page (GTK_NOTEBOOK (GLADE_GET_OBJECT("notebook_general")), NOTEBOOK_PRGEXTERNES); gtk_notebook_set_current_page (GTK_NOTEBOOK (GLADE_GET_OBJECT("notebook_app_externes")), NOTEBOOK_OPTIONS_EXTRA); gtk_notebook_set_current_page (GTK_NOTEBOOK (GLADE_GET_OBJECT("notebook_app_externes")), NOTEBOOK_OPTIONS_PRGEXTERNES); // OPTIONS gtk_notebook_set_current_page (GTK_NOTEBOOK (GLADE_GET_OBJECT("notebook_general")), NOTEBOOK_OPTIONS); gtk_notebook_set_current_page (GTK_NOTEBOOK (GLADE_GET_OBJECT("notebook_options")), NOTEBOOK_OPTIONS_EXPORT_TAGS); gtk_notebook_set_current_page (GTK_NOTEBOOK (GLADE_GET_OBJECT("notebook_options")), NOTEBOOK_OPTIONS_AACPLUSENC); gtk_notebook_set_current_page (GTK_NOTEBOOK (GLADE_GET_OBJECT("notebook_options")), NOTEBOOK_OPTIONS_FAAC); gtk_notebook_set_current_page (GTK_NOTEBOOK (GLADE_GET_OBJECT("notebook_options")), NOTEBOOK_OPTIONS_MUSEPACK); gtk_notebook_set_current_page (GTK_NOTEBOOK (GLADE_GET_OBJECT("notebook_options")), NOTEBOOK_OPTIONS_WAVPACK); gtk_notebook_set_current_page (GTK_NOTEBOOK (GLADE_GET_OBJECT("notebook_options")), NOTEBOOK_OPTIONS_MAC); gtk_notebook_set_current_page (GTK_NOTEBOOK (GLADE_GET_OBJECT("notebook_options")), NOTEBOOK_OPTIONS_FLAC); gtk_notebook_set_current_page (GTK_NOTEBOOK (GLADE_GET_OBJECT("notebook_options")), NOTEBOOK_OPTIONS_OGGENC); gtk_notebook_set_current_page (GTK_NOTEBOOK (GLADE_GET_OBJECT("notebook_options")), NOTEBOOK_OPTIONS_LAME); gtk_notebook_set_current_page (GTK_NOTEBOOK (GLADE_GET_OBJECT("notebook_options")), NOTEBOOK_OPTIONS_CD_AUDIO); gtk_notebook_set_current_page (GTK_NOTEBOOK (GLADE_GET_OBJECT("notebook_options")), NOTEBOOK_OPTIONS_GENERAL); // POCHETTE gtk_notebook_set_current_page (GTK_NOTEBOOK (GLADE_GET_OBJECT("notebook_general")), NOTEBOOK_POCHETTE); // SPLIT gtk_notebook_set_current_page (GTK_NOTEBOOK (GLADE_GET_OBJECT("notebook_general")), NOTEBOOK_SPLIT); // FICHIERS gtk_notebook_set_current_page (GTK_NOTEBOOK (GLADE_GET_OBJECT("notebook_general")), NOTEBOOK_FICHIERS); gtk_notebook_set_current_page (GTK_NOTEBOOK (GLADE_GET_OBJECT("notebook_in_file")), NOTEBOOK_FICHIERS_TAGS); gtk_notebook_set_current_page (GTK_NOTEBOOK (GLADE_GET_OBJECT("notebook_in_file")), NOTEBOOK_FICHIERS_MP3OGG); gtk_notebook_set_current_page (GTK_NOTEBOOK (GLADE_GET_OBJECT("notebook_in_file")), NOTEBOOK_FICHIERS_WAV); gtk_notebook_set_current_page (GTK_NOTEBOOK (GLADE_GET_OBJECT("notebook_in_file")), NOTEBOOK_FICHIERS_CONVERSION); // CD-AUDIO gtk_notebook_set_current_page (GTK_NOTEBOOK (GLADE_GET_OBJECT("notebook_general")), NOTEBOOK_CD_AUDIO); gtk_notebook_set_current_page (GTK_NOTEBOOK (GLADE_GET_OBJECT("notebook_expander_cd")), NOTEBOOK_CD_AUDIO_CUE); gtk_notebook_set_current_page (GTK_NOTEBOOK (GLADE_GET_OBJECT("notebook_expander_cd")), NOTEBOOK_CD_AUDIO_TITRE_CD); gtk_notebook_set_current_page (GTK_NOTEBOOK (GLADE_GET_OBJECT("notebook_expander_cd")), NOTEBOOK_CD_AUDIO_TAGS); // DVD-AUDIO gtk_notebook_set_current_page (GTK_NOTEBOOK (GLADE_GET_OBJECT("notebook_general")), NOTEBOOK_DVD_AUDIO); var_options.ColorLineCommand = COLOR_INIT; options_set_all_interne (); var_options.ColorLineCommand = COLOR_NONE; Config.BoolConfigOk = TRUE; gtk_notebook_set_current_page (GTK_NOTEBOOK (GLADE_GET_OBJECT("notebook_general")), Config.NotebookGeneral); gtk_notebook_set_current_page (GTK_NOTEBOOK (GLADE_GET_OBJECT("notebook_expander_cd")), Config.NotebookExpanderCd); gtk_notebook_set_current_page (GTK_NOTEBOOK (GLADE_GET_OBJECT("notebook_in_file")), Config.NotebookFile); gtk_notebook_set_current_page (GTK_NOTEBOOK (GLADE_GET_OBJECT("notebook_options")), Config.NotebookOptions); gtk_notebook_set_current_page (GTK_NOTEBOOK (GLADE_GET_OBJECT("notebook_app_externes")), Config.NotebookAppExterns); if (NOTEBOOK_SPLIT == Config.NotebookGeneral) { split_set_name_file (); } cdaudio_set_flag_buttons (); file_set_flag_buttons (); FileWav_set_flag_buttons (); FileMp3Ogg_set_flag_buttons (); FileTags_set_flag_buttons (); gtk_widget_set_sensitive (GTK_WIDGET (var_file_tags.Adr_table_tag), FALSE); gtk_widget_set_sensitive (GTK_WIDGET (GLADE_GET_OBJECT("button_tag_appliquer")), FALSE); gtk_widget_hide( GTK_WIDGET (GLADE_GET_OBJECT("frame_discid"))); treeview_set_etat_fields (); treeview_radiobutton_set_PosFieldsName (); filetrash_test_trash_is_ok (); poche_set_flag_buttons(); // SI CHARGEMENT DE FICHIERS DEPUIS LE BUREAU AVEC LE MENU CONTEXTUEL process_goto_timeout (); // ADMINISTRATOR MODE ? if( 0 == getuid() ) { wininfo_create ( WindMain, _("MODE ADMINISTRATEUR"), "\n", _(" Vous ne devriez pas utiliser "), "\n", _(" XCFA sous ROOT !"), "\n", ""); } xdg_print_list_config_path(); xdg_print_list_data_path(); gtk_main (); // bacon_message_connection_free( connection ); gdk_threads_leave (); exit(EXIT_SUCCESS); } xcfa-4.3.6/src/tags_mpc.c0000644000175000017500000002133112122563465012124 00000000000000 /* * file : tags_mpc.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #include #include #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "tags.h" #include /* *--------------------------------------------------------------------------- * VARIABLES *--------------------------------------------------------------------------- */ typedef struct { unsigned is_4d : 8; unsigned is_50 : 8; unsigned is_2b : 8; unsigned is_StreamMajorVersion : 4; unsigned is_StreamMinorVersion : 4; } MPC_BIT_0; typedef struct { unsigned is_FrameCount : 32; } MPC_BIT_1; typedef struct { unsigned is_MaxLevel : 16; unsigned is_SampleFreq : 2; unsigned is_Link : 2; unsigned is_Profile : 4; unsigned is_MaxBand : 6; unsigned is_MidSideStereo : 1; unsigned is_IntensityStereo : 1; } MPC_BIT_2; typedef struct { unsigned is_TitlePeak : 16; unsigned is_TitleGain : 16; } MPC_BIT_3; typedef struct { unsigned is_AlbumPeak : 16; unsigned is_AlbumGain : 16; } MPC_BIT_4; typedef struct { unsigned is_unusued : 19; unsigned is_Safely : 1; unsigned is_LastFrameLength : 11; unsigned is_TrueGapless : 1; } MPC_BIT_5; typedef struct { unsigned is_unusued : 24; unsigned is_EncoderVersion : 8; } MPC_BIT_6; typedef struct { MPC_BIT_0 bit_0; MPC_BIT_1 bit_1; MPC_BIT_2 bit_2; MPC_BIT_3 bit_3; MPC_BIT_4 bit_4; MPC_BIT_5 bit_5; MPC_BIT_6 bit_6; } MPC_HEADER; /* *--------------------------------------------------------------------------- * FILE IS MPC ? *--------------------------------------------------------------------------- */ void tagsmpc_print_entete_mpc (gchar *namefile, MPC_HEADER *fm) { /*PRINT_FUNC_LF();*/ g_print ("\n"); g_print ("%s\n", namefile); g_print ("\n"); g_print ("-- BIT 0 -----------------------------------------\n"); g_print ("\tis_4d %4d - 0x%x\n", fm->bit_0.is_4d, fm->bit_0.is_4d); g_print ("\tis_50 %4d - 0x%x\n", fm->bit_0.is_50, fm->bit_0.is_50); g_print ("\tis_2b %4d - 0x%x\n", fm->bit_0.is_2b, fm->bit_0.is_2b); g_print ("\tis_StreamMajorVersion %4d - 0x%x\n", fm->bit_0.is_StreamMajorVersion, fm->bit_0.is_StreamMajorVersion); g_print ("\tis_StreamMinorVersion %4d - 0x%x\n", fm->bit_0.is_StreamMinorVersion, fm->bit_0.is_StreamMinorVersion); g_print ("-- BIT 1 -----------------------------------------\n"); g_print ("\tis_FrameCount %4d - 0x%x\n", fm->bit_1.is_FrameCount, fm->bit_1.is_FrameCount); g_print ("-- BIT 2 -----------------------------------------\n"); g_print ("\tis_MaxLevel %4d - 0x%x\n", fm->bit_2.is_MaxLevel, fm->bit_2.is_MaxLevel); g_print ("\tis_SampleFreq %4d - 0x%x\n", fm->bit_2.is_SampleFreq, fm->bit_2.is_SampleFreq); switch(fm->bit_2.is_SampleFreq) { case 0 : g_print ("\t\t44100 Hz\n"); break; case 1 : g_print ("\t\t48000 Hz\n"); break; case 2 : g_print ("\t\t37800 Hz\n"); break; case 3 : g_print ("\t\t32000 Hz\n"); break; } g_print ("\tis_Link %4d - 0x%x\n", fm->bit_2.is_Link, fm->bit_2.is_Link); switch(fm->bit_2.is_Link) { case 0 : g_print ("\t\tTitle start or ends with a very low level\n"); break; case 1 : g_print ("\t\tTitle ends loudly\n"); break; case 2 : g_print ("\t\tTitle start loudly\n"); break; case 3 : g_print ("\t\tTitle start loudly and ends loudly\n"); break; } g_print ("\tis_Profile %4d - 0x%x\n", fm->bit_2.is_Profile, fm->bit_2.is_Profile); switch (fm->bit_2.is_Profile) { case 0 : g_print ("\t\tno profile\n"); break; case 1 : g_print ("\t\tUnstable/Experimental\n"); break; case 2 : g_print ("\t\tunused\n"); break; case 3 : g_print ("\t\tunused\n"); break; case 4 : g_print ("\t\tunused\n"); break; case 5 : g_print ("\t\tbelow telephone : q=0.0\n"); break; case 6 : g_print ("\t\tbelow telephone : q=1.0\n"); break; case 7 : g_print ("\t\ttelephone : q=2.0\n"); break; case 8 : g_print ("\t\tThumb : q=3.0\n"); break; case 9 : g_print ("\t\tRadio : q=4.0\n"); break; case 10 : g_print ("\t\tStandard : q=5.0\n"); break; case 11 : g_print ("\t\tXtreme : q=6.0\n"); break; case 12 : g_print ("\t\tInsane : q=7.0\n"); break; case 13 : g_print ("\t\tBrainDead : q=8.0\n"); break; case 14 : g_print ("\t\tabove BrainDead : q=9.0\n"); break; case 15 : g_print ("\t\tabove BrainDead : q=10.0\n"); break; } g_print ("\tis_MaxBand %4d - 0x%x\n", fm->bit_2.is_MaxBand, fm->bit_2.is_MaxBand); g_print ("\tis_MidSideStereo %4d - 0x%x\n", fm->bit_2.is_MidSideStereo, fm->bit_2.is_MidSideStereo); g_print ("\tis_IntensityStereo %4d - 0x%x\n", fm->bit_2.is_IntensityStereo, fm->bit_2.is_IntensityStereo); g_print ("-- BIT 3 -----------------------------------------\n"); g_print ("\tis_TitlePeak %4d - 0x%x\n", fm->bit_3.is_TitlePeak, fm->bit_3.is_TitlePeak); g_print ("\tis_TitleGain %4d - 0x%x\n", fm->bit_3.is_TitleGain, fm->bit_3.is_TitleGain); g_print ("-- BIT 4 -----------------------------------------\n"); g_print ("\tis_AlbumPeak %4d - 0x%x\n", fm->bit_4.is_AlbumPeak, fm->bit_4.is_AlbumPeak); g_print ("\tis_AlbumGain %4d - 0x%x\n", fm->bit_4.is_AlbumGain, fm->bit_4.is_AlbumGain); g_print ("-- BIT 5 -----------------------------------------\n"); g_print ("\tis_unusued %4d - 0x%x\n", fm->bit_5.is_unusued, fm->bit_5.is_unusued); g_print ("\tis_Safely %4d - 0x%x\n", fm->bit_5.is_Safely, fm->bit_5.is_Safely); g_print ("\tis_LastFrameLength %4d - 0x%x\n", fm->bit_5.is_LastFrameLength, fm->bit_5.is_LastFrameLength); g_print ("\tis_TrueGapless %4d - 0x%x\n", fm->bit_5.is_TrueGapless, fm->bit_5.is_TrueGapless); g_print ("-- BIT 6 -----------------------------------------\n"); g_print ("\tis_EncoderVersion %4d - 0x%x\n", fm->bit_6.is_EncoderVersion, fm->bit_6.is_EncoderVersion); g_print ("\n"); } /* *--------------------------------------------------------------------------- * GET HEADER *--------------------------------------------------------------------------- */ INFO_MPC *tagsmpc_remove_info (INFO_MPC *info) { if (info) { info->tags = (TAGS *)tags_remove (info->tags); g_free (info); info = NULL; } return ((INFO_MPC *)NULL); } INFO_MPC *tagsmpc_get_info (DETAIL *detail) { INFO_MPC *ptrinfo = NULL; TagLib_File *file; TagLib_Tag *tag; ptrinfo = (INFO_MPC *)g_malloc0 (sizeof (INFO_MPC)); if (ptrinfo == NULL) return (NULL); ptrinfo->tags = (TAGS *)tags_alloc (FALSE); if ((file = taglib_file_new (detail->namefile))) { taglib_set_strings_unicode(FALSE); tag = taglib_file_tag(file); ptrinfo->tags->Title = g_strdup (taglib_tag_title(tag)); ptrinfo->tags->Artist = g_strdup (taglib_tag_artist(tag)); ptrinfo->tags->Album = g_strdup (taglib_tag_album(tag)); ptrinfo->tags->IntYear = taglib_tag_year(tag); ptrinfo->tags->Year = g_strdup_printf ("%d", ptrinfo->tags->IntYear); ptrinfo->tags->Comment = g_strdup (taglib_tag_comment(tag)); ptrinfo->tags->IntNumber = taglib_tag_track(tag); ptrinfo->tags->Number = g_strdup_printf ("%d", ptrinfo->tags->IntNumber); ptrinfo->tags->Genre = g_strdup (taglib_tag_genre(tag)); ptrinfo->tags->IntGenre = tags_get_genre_by_value (ptrinfo->tags->Genre); /* printf("title - \"%s\"\n", taglib_tag_title(tag)); printf("artist - \"%s\"\n", taglib_tag_artist(tag)); printf("album - \"%s\"\n", taglib_tag_album(tag)); printf("year - \"%i\"\n", taglib_tag_year(tag)); printf("comment - \"%s\"\n", taglib_tag_comment(tag)); printf("track - \"%i\"\n", taglib_tag_track(tag)); printf("genre - \"%s\"\n", taglib_tag_genre(tag)); */ taglib_tag_free_strings(); taglib_file_free (file); } else { ptrinfo->tags = (TAGS *)tags_alloc (FALSE); tags_set (detail->namefile, ptrinfo->tags); } return (ptrinfo); } xcfa-4.3.6/src/win_about.h0000644000175000017500000000172412122563437012326 00000000000000 /* * file : wind_about.h * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifndef win_about_h #define win_about_h 1 void WinAbout_open (gchar *title); #endif xcfa-4.3.6/src/tags_aiff.c0000644000175000017500000000407712122563465012262 00000000000000 /* * file : tags_aiff.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #include #include #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "tags.h" #include /* *--------------------------------------------------------------------------- * REMOVE HEADER *--------------------------------------------------------------------------- */ INFO_AIFF *tagsaiff_remove_info (INFO_AIFF *info) { if (info) { info->tags = (TAGS *)tags_remove (info->tags); g_free (info); info = NULL; } return ((INFO_AIFF *)NULL); } /* *--------------------------------------------------------------------------- * GET HEADER *--------------------------------------------------------------------------- */ INFO_AIFF *tagsaiff_get_info (DETAIL *detail) { INFO_AIFF *ptrinfo = NULL; ptrinfo = (INFO_AIFF *)g_malloc0 (sizeof (INFO_AIFF)); if (ptrinfo == NULL) return (NULL); ptrinfo->tags = (TAGS *)tags_alloc (FALSE); tags_set (detail->namefile, ptrinfo->tags); return ((INFO_AIFF *)ptrinfo); } xcfa-4.3.6/src/file_mp3ogg.c0000644000175000017500000007526612122677071012541 00000000000000 /* * file : file_mp3ogg.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #include #include #include #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "configuser.h" #include "dragNdrop.h" #include "fileselect.h" #include "tags.h" #include "file.h" #include "statusbar.h" #include "popup.h" /* typedef struct { GtkWidget *Adr_scroll; // Adresse GtkListStore *Adr_List_Store; // Adresse GtkTreeModel *Adr_Tree_Model; // Adresse GtkTreeSelection *Adr_Line_Selected; // Adresse GtkWidget *Adr_TreeView; // Adresse GtkWidget *Adr_Entry_Dest; // Adresse GtkWidget *Adr_Button_Dest; // Adresse GtkComboBox *Adr_combobox_DestFile; // Adresse GdkPixbuf *Pixbuf_NotInstall; // not_install.png GtkCellRenderer *Renderer; GtkTreeViewColumn *Adr_ColumnFileMp3OggType; GtkTreeViewColumn *Adr_ColumnFileMp3OggBitrate; GtkTreeViewColumn *Adr_ColumnFileMp3OggNewBitrate; GtkTreeViewColumn *Adr_ColumnFileMp3OggSize; GtkTreeViewColumn *Adr_ColumnFileMp3OggTime; GtkTreeViewColumn *Adr_ColumnFileMp3OggName; gboolean BoolPopUpIsSelected; // } VAR_FILE_MP3OGG; */ VAR_FILE_MP3OGG var_file_mp3ogg = { NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }; enum { COLUMN_FILEMP3OGG_TYPE, COLUMN_FILEMP3OGG_BITRATE, COLUMN_FILEMP3OGG_NEWBITRATE, COLUMN_FILEMP3OGG_SIZE, COLUMN_FILEMP3OGG_TIME, COLUMN_FILEMP3OGG_NAME, COLUMN_FILEMP3OGG_COLOR, COLUMN_FILEMP3OGG_POINTER_STRUCT, COLUMN_FILE_NUM }; enum { NUM_TREE_FILEMP3OGG_Type = 0, NUM_TREE_FILEMP3OGG_Bitrate, NUM_TREE_FILEMP3OGG_NOUVEAUBITRATE, NUM_TREE_FILEMP3OGG_Size, NUM_TREE_FILEMP3OGG_Time, NUM_TREE_FILEMP3OGG_Nom, NUM_TREE_FILEMP3OGG_ALL_COLUMN }; /* // // IDEE POUR AFFICHAGE AVEC PLUS DE DETAILS POUR L'UTILISATEUR // gchar *str_abr [] = { "ABR: -b 32", "ABR: -b 40", "ABR: -b 48", "ABR: -b 56", "ABR: -b 64", "ABR: -b 80", "ABR: -b 96", "ABR: -b 112", "ABR: -b 128", "ABR: -b 160", "ABR: -b 192", "ABR: -b 224", "ABR: -b 256", "ABR: -b 320" }; gchar *str_cbr [] = { "CBR: -b 32", "CBR: -b 40", "CBR: -b 48", "CBR: -b 56", "CBR: -b 64", "CBR: -b 80", "CBR: -b 96", "CBR: -b 112", "CBR: -b 128", "CBR: -b 160", "CBR: -b 192", "CBR: -b 224", "CBR: -b 256", "CBR: -b 320", "CBR: --preset insane" }; gchar *str_vbr [] = { "VBR: --preset medium", "VBR: --preset standard", "VBR: --preset extreme", "VBR: --preset fast standard", "VBR: --preset fast extreme", "VBR: -V0", "VBR: -V1", "VBR: -V2", "VBR: -V3", "VBR: -V4", "VBR: -V5", "VBR: -V6", "VBR: -V7", "VBR: -V8", "VBR: -V9" }; gchar *str_vbr_new [] = { "VBR NEW", "VBR NEW: --preset medium", "VBR NEW: --preset standard", "VBR NEW: --preset extreme", "VBR NEW: --preset fast standard", "VBR NEW: --preset fast extreme", "VBR NEW: -V0", "VBR NEW: -V1", "VBR NEW: -V2", "VBR NEW: -V3", "VBR NEW: -V4", "VBR NEW: -V5", "VBR NEW: -V6", "VBR NEW: -V7", "VBR NEW: -V8", "VBR NEW: -V9" }; gchar *val[] = { "--bitrate=45", "--bitrate=64", "--bitrate=80", "--bitrate=96", "--bitrate=112", "--bitrate=128", "--bitrate=160", "--bitrate=192", "--bitrate=224", "--bitrate=256", "--bitrate=320", "--quality=-1", "--quality=0", "--quality=1", "--quality=2", "--quality=3", "--quality=4", "--quality=5", "--quality=6", "--quality=7", "--quality=8", "--quality=9", "--quality=10" }; */ // MISE A JOUR DES PARAMETRES EN TENANT COMPTE DU FLAG: detail->BoolChanged == TRUE // void FileMp3Ogg_change_parameters (void) { GtkTreeIter iter; DETAIL *detail = NULL; gboolean valid; gchar *PtrBitrate = NULL; valid = gtk_tree_model_get_iter_first (var_file_mp3ogg.Adr_Tree_Model, &iter); while (valid) { PtrBitrate = NULL; gtk_tree_model_get (var_file_mp3ogg.Adr_Tree_Model, &iter, COLUMN_FILEMP3OGG_POINTER_STRUCT, &detail, -1); if (NULL != detail && TRUE == detail->BoolChanged) { if (FILE_IS_OGG == detail->type_infosong_file_is) { INFO_OGG *info = (INFO_OGG *)detail->info; detail->info = (INFO_OGG *)tagsogg_remove_info (info); info = (INFO_OGG *)detail->info; detail->info = (INFO_OGG *)tagsogg_get_info (detail); info = (INFO_OGG *)detail->info; PtrBitrate = info->Nominal_bitrate; } else if (FILE_IS_MP3 == detail->type_infosong_file_is) { INFO_MP3 *info = (INFO_MP3 *)detail->info; detail->info = (INFO_MP3 *)tagsmp3_remove_info (info); info = (INFO_MP3 *)detail->info; detail->info = (INFO_MP3 *)tagsmp3_get_info (detail); info = (INFO_MP3 *)detail->info; PtrBitrate = info->bitrate; } if (NULL != PtrBitrate) { gtk_list_store_set (var_file_mp3ogg.Adr_List_Store, &iter, COLUMN_FILEMP3OGG_BITRATE, PtrBitrate, -1); gtk_list_store_set (var_file_mp3ogg.Adr_List_Store, &iter, COLUMN_FILEMP3OGG_NEWBITRATE, "", -1); gtk_list_store_set (var_file_mp3ogg.Adr_List_Store, &iter, COLUMN_FILEMP3OGG_SIZE, file_get_size (detail), -1); gtk_list_store_set (var_file_mp3ogg.Adr_List_Store, &iter, COLUMN_FILEMP3OGG_TIME, file_get_time (detail), -1); detail->Mp3_Debit = detail->Mp3_Mode = detail->Ogg_Debit = detail->Ogg_Managed = detail->Ogg_Downmix = -1; detail->BoolChanged = FALSE; } // BUG SOLVED: 24 03 2012 // valid = gtk_tree_model_iter_next (var_file_mp3ogg.Adr_Tree_Model, &iter); } valid = gtk_tree_model_iter_next (var_file_mp3ogg.Adr_Tree_Model, &iter); } } // // gboolean FileMp3Ogg_is_appliqued (void) { GList *List = NULL; DETAIL *detail = NULL; List = g_list_first (entetefile); while (List) { if( NULL != (detail = (DETAIL *)List->data)) { if( TRUE == detail->BoolChanged ) return( TRUE ); } List = g_list_next (List); } return (FALSE); } // // gboolean FileMp3Ogg_is_removed (void) { GtkTreeIter iter; GtkTreeModel *model = NULL; GList *list = NULL; GtkTreePath *path; DETAIL *detail = NULL; model = gtk_tree_view_get_model (GTK_TREE_VIEW(var_file_mp3ogg.Adr_TreeView)); list = gtk_tree_selection_get_selected_rows (var_file_mp3ogg.Adr_Line_Selected, &model); list = g_list_first (list); while (list) { if (NULL != (path = list->data)) { gtk_tree_model_get_iter (model, &iter, path); gtk_tree_model_get (var_file_mp3ogg.Adr_Tree_Model, &iter, COLUMN_FILEMP3OGG_POINTER_STRUCT, &detail, -1); if( NULL != detail && TRUE == detail->BoolChanged ) return (TRUE); } list = g_list_next (list); } return (FALSE); } // // gboolean FileMp3Ogg_is_selected_FILE (TYPE_FILE_IS TypeFileIs) { GtkTreeIter iter; GtkTreeModel *model = NULL; GList *list = NULL; GtkTreePath *path; DETAIL *detail = NULL; model = gtk_tree_view_get_model (GTK_TREE_VIEW(var_file_mp3ogg.Adr_TreeView)); list = gtk_tree_selection_get_selected_rows (var_file_mp3ogg.Adr_Line_Selected, &model); list = g_list_first (list); while (list) { if (NULL != (path = list->data)) { gtk_tree_model_get_iter (model, &iter, path); gtk_tree_model_get (var_file_mp3ogg.Adr_Tree_Model, &iter, COLUMN_FILEMP3OGG_POINTER_STRUCT, &detail, -1); if (NULL != detail && TypeFileIs == detail->type_infosong_file_is) return (TRUE); } list = g_list_next (list); } return (FALSE); } // ACTIVE OU DESACTIVE LES ACTIONS // void FileMp3Ogg_set_flag_buttons (void) { gboolean BoolButtonsAudio [ 3 ] = { FALSE, FALSE, FALSE }; // APPLIQUE BoolButtonsAudio [ 0 ] = FileMp3Ogg_is_appliqued(); // EFFACE BoolButtonsAudio [ 1 ] = FileMp3Ogg_is_removed (); // REMOVE FILE BoolButtonsAudio [ 2 ] = FileMp3Ogg_is_selected_FILE (FILE_IS_MP3) | FileMp3Ogg_is_selected_FILE (FILE_IS_OGG); // ACTION gtk_widget_set_sensitive (GTK_WIDGET (GLADE_GET_OBJECT("button_applique_file_mp3ogg")), BoolButtonsAudio [ 0 ]); gtk_widget_set_sensitive (GTK_WIDGET (GLADE_GET_OBJECT("button_efface_bitrate_mp3ogg")), BoolButtonsAudio [ 1 ]); gtk_widget_set_sensitive (GTK_WIDGET (GLADE_GET_OBJECT("button_del_file")), BoolButtonsAudio [ 2 ]); } // MARQUER LES LIGNES POUR LA DESTRUCTION // gboolean FileMp3Ogg_del_file_clicked (void) { GtkTreeIter iter; GtkTreeModel *model = NULL; GList *BeginList = NULL; GList *list = NULL; GtkTreePath *path; DETAIL *detail = NULL; gboolean BoolPrint = FALSE; // RECUP. LIGNES EN SELECTION POUR DESTRUCTION model = gtk_tree_view_get_model (GTK_TREE_VIEW(var_file_mp3ogg.Adr_TreeView)); if ((BeginList = gtk_tree_selection_get_selected_rows (var_file_mp3ogg.Adr_Line_Selected, &model))) { BoolPrint = TRUE; list = g_list_first (BeginList); while (list) { if ((path = list->data)) { gtk_tree_model_get_iter (model, &iter, path); gtk_tree_model_get (var_file_mp3ogg.Adr_Tree_Model, &iter, COLUMN_FILEMP3OGG_POINTER_STRUCT, &detail, -1); // MARQUER LA LIGNE DU GLIST A DETRUIRE AVANT LE REAFFICHAGE if (NULL != detail) detail->BoolRemove = TRUE; } list = g_list_next (list); } // gtk_tree_selection_unselect_all (var_file_mp3ogg.Adr_Line_Selected); } return (BoolPrint); } // UPDATE NEW BITRATE // void FileMp3Ogg_update_newbitrate( TYPE_FILE_IS p_TypeFileIs, gint p_debit, gint p_mode_managed, gint p_downmix ) { GtkTreeModel *model = NULL; GList *list = NULL; GtkTreePath *path; DETAIL *detail = NULL; GtkTreeIter iter; gchar *Str = NULL; model = gtk_tree_view_get_model (GTK_TREE_VIEW(var_file_mp3ogg.Adr_TreeView)); list = g_list_first (gtk_tree_selection_get_selected_rows (var_file_mp3ogg.Adr_Line_Selected, &model)); while (list) { if (NULL != (path = list->data)) { gtk_tree_model_get_iter (model, &iter, path); gtk_tree_model_get (var_file_mp3ogg.Adr_Tree_Model, &iter, COLUMN_FILEMP3OGG_POINTER_STRUCT, &detail, -1); if (NULL == detail) { list = g_list_next(list); continue; } // FILE_IS_MP3 if (FILE_IS_MP3 == p_TypeFileIs && FILE_IS_MP3 == detail->type_infosong_file_is) { // Str = popup_get_param_mp3( detail->Mp3_Debit, detail->Mp3_Mode ); detail->Mp3_Debit = p_debit; detail->Mp3_Mode = p_mode_managed; Str = popup_get_param_mp3( p_debit, p_mode_managed ); gtk_list_store_set (var_file_mp3ogg.Adr_List_Store, &iter, COLUMN_FILEMP3OGG_NEWBITRATE, Str != NULL ? Str : "", -1); detail->BoolChanged = (Str != NULL) ? TRUE : FALSE; if( NULL != Str ) { g_free (Str); Str = NULL; } } // FILE_IS_OGG else if (FILE_IS_OGG == p_TypeFileIs && FILE_IS_OGG == detail->type_infosong_file_is) { // Str = popup_get_param_ogg( detail->Ogg_Debit, detail->Ogg_Managed, detail->Ogg_Downmix ); detail->Ogg_Debit = p_debit; detail->Ogg_Managed = p_mode_managed; detail->Ogg_Downmix = p_downmix; Str = popup_get_param_ogg( p_debit, p_mode_managed, p_downmix ); gtk_list_store_set (var_file_mp3ogg.Adr_List_Store, &iter, COLUMN_FILEMP3OGG_NEWBITRATE, Str != NULL ? Str : "", -1); detail->BoolChanged = (Str != NULL) ? TRUE : FALSE; if( NULL != Str ) { g_free (Str); Str = NULL; } } } list = g_list_next(list); } FileMp3Ogg_set_flag_buttons (); } // // void FileMp3Ogg_affiche_glist (void) { DETAIL *detail = NULL; GList *List = NULL; GtkTreeIter iter; GtkAdjustment *Adj = NULL; gdouble AdjValue; gint Line = 0; // LIGNE EN COURS INFO_MP3 *info_mp3 = NULL; INFO_OGG *info_ogg = NULL; gchar *StrInfo = NULL; gchar *PtrBitrate = NULL; gchar *NameDest = NULL; gint NumLineSelected = -1; gboolean BoolNumLineSelected = FALSE; // RECUP SELECTION // NumLineSelected = libutils_get_first_line_is_selected( var_file_mp3ogg.Adr_Line_Selected, var_file_mp3ogg.Adr_Tree_Model ); gtk_tree_selection_unselect_all (var_file_mp3ogg.Adr_Line_Selected); // DELETE TREEVIEW // gtk_list_store_clear (GTK_LIST_STORE (var_file_mp3ogg.Adr_List_Store)); // COORDONNEES POUR UN REAJUSTEMENT VISUEL DE LA PAGE // Adj = gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (var_file_mp3ogg.Adr_scroll)); AdjValue = gtk_adjustment_get_value (Adj); // AFFICHAGE DE LA LISTE // Line = 0; List = g_list_first (entetefile); while (List) { if (NULL != ((detail = (DETAIL *)List->data)) && FALSE == detail->BoolRemove) { if (FILE_IS_MP3 == detail->type_infosong_file_is) { if (NULL != (info_mp3 = (INFO_MP3 *)detail->info)) PtrBitrate = info_mp3->bitrate; } else if (FILE_IS_OGG == detail->type_infosong_file_is) { if (NULL != (info_ogg = (INFO_OGG *)detail->info)) PtrBitrate = info_ogg->Nominal_bitrate; } else { List = g_list_next (List); continue; } if (NULL == info_mp3 && NULL == info_ogg) { List = g_list_next (List); continue; } if (detail->type_infosong_file_is == FILE_IS_MP3) { StrInfo = popup_get_param_mp3( detail->Mp3_Debit, detail->Mp3_Mode ); } else { StrInfo = popup_get_param_ogg( detail->Ogg_Debit, detail->Ogg_Managed, detail->Ogg_Downmix ); } NameDest = libutils_get_name_without_ext_with_amp (detail->namefile); gtk_list_store_append (var_file_mp3ogg.Adr_List_Store, &iter); gtk_list_store_set (var_file_mp3ogg.Adr_List_Store, &iter, COLUMN_FILEMP3OGG_TYPE, tags_get_str_type_file_is (detail->type_infosong_file_is), COLUMN_FILEMP3OGG_BITRATE, PtrBitrate, COLUMN_FILEMP3OGG_NEWBITRATE, detail->BoolChanged == TRUE ? StrInfo : "", COLUMN_FILEMP3OGG_SIZE, file_get_size (detail), COLUMN_FILEMP3OGG_TIME, file_get_time (detail), COLUMN_FILEMP3OGG_NAME, NameDest, COLUMN_FILEMP3OGG_COLOR, &YellowColor, COLUMN_FILEMP3OGG_POINTER_STRUCT, detail, -1); g_free (NameDest); NameDest = NULL; g_free (StrInfo); StrInfo = NULL; // AFFICHE LES EVENTUELLES LIGNES EN SELECTION // if( NumLineSelected == Line ) { gtk_tree_selection_select_iter (var_file_mp3ogg.Adr_Line_Selected, &iter); BoolNumLineSelected = TRUE; } Line ++; } List = g_list_next (List); } // SUPPRESSON TABLEAU DES EVENTUELLES LIGNES EN SELECTION // if( NumLineSelected == -1 ) { if (gtk_tree_model_get_iter_first (var_file_mp3ogg.Adr_Tree_Model, &iter)) { gtk_tree_selection_select_iter (var_file_mp3ogg.Adr_Line_Selected, &iter); BoolNumLineSelected = TRUE; } } if( NumLineSelected > 0 && NULL != entetefile && BoolNumLineSelected == FALSE ) { gtk_tree_selection_select_iter (var_file_mp3ogg.Adr_Line_Selected, &iter); } // REAJUSTEMENT DE LA LISTE // gtk_adjustment_set_value (Adj, AdjValue); gtk_scrolled_window_set_vadjustment (GTK_SCROLLED_WINDOW (var_file_mp3ogg.Adr_scroll), Adj); FileMp3Ogg_set_flag_buttons (); } // // void on_filemp3ogg_button_efface_bitrate_clicked (GtkButton *button, gpointer user_data) { GtkTreeIter iter; GtkTreeModel *model = NULL; GList *BeginList = NULL; GList *list = NULL; GtkTreePath *path; DETAIL *detail = NULL; // CHERCHE LES ELEMENTS A DETRUIRE model = gtk_tree_view_get_model (GTK_TREE_VIEW(var_file_mp3ogg.Adr_TreeView)); BeginList = gtk_tree_selection_get_selected_rows (var_file_mp3ogg.Adr_Line_Selected, &model); list = g_list_first (BeginList); while (list) { if (NULL != (path = list->data)) { gtk_tree_model_get_iter (model, &iter, path); gtk_tree_model_get (var_file_mp3ogg.Adr_Tree_Model, &iter, COLUMN_FILEMP3OGG_POINTER_STRUCT, &detail, -1); if (NULL != detail) { if (detail->type_infosong_file_is == FILE_IS_MP3 || detail->type_infosong_file_is == FILE_IS_OGG) { detail->Mp3_Debit = -1; // SET DEBIT detail->Mp3_Mode = -1; // SET MODE detail->Ogg_Debit = -1; // SET DEBIT detail->Ogg_Managed = -1; // SET MANAGED detail->Ogg_Downmix = -1; // SET DOWNMIX detail->BoolChanged = FALSE; } gtk_list_store_set (var_file_mp3ogg.Adr_List_Store, &iter, COLUMN_FILEMP3OGG_NEWBITRATE, "", -1); } } list = g_list_next (list); } FileMp3Ogg_set_flag_buttons (); } // // void FileMp3Ogg_changed_selection_row (GtkTreeSelection *selection, gpointer data) { var_file_mp3ogg.Adr_Line_Selected = selection; FileMp3Ogg_set_flag_buttons (); } // // gboolean FileMp3Ogg_key_press_event (GtkWidget *widget, GdkEventKey *event, gpointer user_data) { if( TRUE == keys.BoolGDK_Control_A ) { // CONTROL_A gtk_tree_selection_unselect_all (var_file_mp3ogg.Adr_Line_Selected); gtk_tree_selection_select_all (var_file_mp3ogg.Adr_Line_Selected); } if (keys.keyval == GDK_Delete) { GtkTreeIter iter; if (gtk_tree_model_get_iter_first (var_file_mp3ogg.Adr_Tree_Model, &iter)) { on_file_button_del_file_clicked (NULL, NULL); return (FALSE); } } return (TRUE); } // AFFICHAGE DU NOM COMPLET DU FICHIER SI SURVOL PAR LE CURSEUR SOURIS DU CHAMPS 'Nom' // gboolean FileMp3Ogg_event (GtkWidget *treeview, GdkEvent *event, gpointer user_data) { gint x, y; GdkModifierType state; GtkTreePath *path; GtkTreeViewColumn *column; GtkTreeViewColumn *ColumnDum; GtkTreeIter iter; GtkTreeModel *model = (GtkTreeModel *)user_data; DETAIL *detail = NULL; gint Pos_X = 0, Pos_Y = 0; gint i; gboolean BoolSelectColNom = FALSE; gboolean BoolSelectNewBitrate = FALSE; // SI PAS DANS LE TREEVIEW gdk_window_get_pointer (((GdkEventButton*)event)->window, &x, &y, &state); if (FALSE == gtk_tree_view_get_path_at_pos (GTK_TREE_VIEW(treeview), x, y, &path, &column, &Pos_X, &Pos_Y)) { StatusBar_set_mess( NOTEBOOK_FICHIERS, _STATUSBAR_SIMPLE_, "" ); return (FALSE); } // RECUPERATION DE LA STRUCTURE POINTEE PAR LE CURSEUR SOURIS gtk_tree_model_get_iter (model, &iter, path); gtk_tree_model_get (var_file_mp3ogg.Adr_Tree_Model, &iter, COLUMN_FILEMP3OGG_POINTER_STRUCT, &detail, -1); if (NULL == detail) return (FALSE); // DANS TOUS LES CAS, EFFACE LA BARRE DE TACHE StatusBar_set_mess( NOTEBOOK_FICHIERS, _STATUSBAR_SIMPLE_, "" ); /* IDEE POUR REMPLACER LES COMPARAISON PAR NOMS. EXEMPLES: * PLAY = 0 * TRASH = 1 * TYPE = 2 * etc ... * NOTA: * CET ALGO PERMET DE RENOMMER AISEMENT LES ENTETES DE COLONNES DANS TOUTES LES LANGUES: FR, EN, DE, ... */ for (i = 0; i < NUM_TREE_FILEMP3OGG_ALL_COLUMN; i ++) { ColumnDum = gtk_tree_view_get_column (GTK_TREE_VIEW(treeview), i); if (ColumnDum == column) { switch ( i ) { case NUM_TREE_FILEMP3OGG_Nom : BoolSelectColNom = TRUE; break; case NUM_TREE_FILEMP3OGG_NOUVEAUBITRATE : BoolSelectNewBitrate = TRUE; break; default: StatusBar_set_mess( NOTEBOOK_FICHIERS, _STATUSBAR_SIMPLE_, ""); StatusBar_puts(); return (FALSE); } /* La colonne est trouvee ... sortie de la boucle */ break; } } if( BoolSelectColNom ) { StatusBar_set_mess( NOTEBOOK_FICHIERS, _STATUSBAR_SIMPLE_, detail->namefile ); } else if( BoolSelectNewBitrate ) { StatusBar_set_mess( NOTEBOOK_FICHIERS, _STATUSBAR_SIMPLE_, _("Click droit: acces popup") ); } StatusBar_puts( ); return (FALSE); } // // static void FileMp3Ogg_drag_data_received (GtkWidget *widget, GdkDragContext *drag_context, gint x, gint y, GtkSelectionData *data, guint info, guint time) { /* Une copie ne peut aller vers elle meme !!! */ if (gtk_drag_get_source_widget(drag_context) != widget) { dragndrop_list_drag_data (widget, (gchar *)data->data); } } // // static void FileMp3Ogg_drag_data_drop (GtkWidget *widget, GdkDragContext *dc, GtkSelectionData *selection_data, guint info, guint t, gpointer data) { GtkTreeIter iter; GtkTreeModel *model = NULL; GList *begin_list = NULL; GList *list = NULL; GtkTreePath *path; DETAIL *detail = NULL; gchar *text = NULL; model = gtk_tree_view_get_model (GTK_TREE_VIEW(widget)); begin_list = gtk_tree_selection_get_selected_rows (var_file_mp3ogg.Adr_Line_Selected, &model); list = g_list_first (begin_list); while (list) { if ((path = list->data)) { gtk_tree_model_get_iter (model, &iter, path); gtk_tree_model_get (var_file_mp3ogg.Adr_Tree_Model, &iter, COLUMN_FILEMP3OGG_POINTER_STRUCT, &detail, -1); // DEBUG DRAG AND DROP // [ Tue, 03 May 2011 17:39:08 +0200 ] // XCFA-4.1.0 // ----------------------------------------------------------- // OLD CODE: // text = g_strdup( detail->namefile ); // NEW_CODE: text = g_strdup_printf( "file://%s", detail->namefile ); gdk_drag_status (dc, GDK_ACTION_COPY, t); gtk_selection_data_set( selection_data, // GDK_SELECTION_TYPE_STRING, selection_data->target, 8, (guchar *)text, strlen( text ) ); g_free (text); text = NULL; } list = g_list_next (list); } } // // gboolean FileMp3Ogg_event_click_mouse( GtkWidget *treeview, GdkEventButton *event, gpointer data ) { GtkTreePath *path; GtkTreeViewColumn *column; GtkTreeIter iter; GtkTreeModel *model = (GtkTreeModel *)data; DETAIL *detail = NULL; gint Pos_X = 0, Pos_Y = 0; gboolean bool_click_droit = (event->button == 3); /* Single clicks only */ if (event->type != GDK_BUTTON_PRESS) return (FALSE); /* Si pas de selection a cet endroit retour */ if (FALSE == gtk_tree_view_get_path_at_pos (GTK_TREE_VIEW(treeview), (gint)event->x, (gint)event->y, &path, &column, &Pos_X, &Pos_Y)) return (FALSE); // RECUP DE LA STRUCTURE gtk_tree_model_get_iter (model, &iter, path); gtk_tree_model_get (var_file_mp3ogg.Adr_Tree_Model, &iter, COLUMN_FILEMP3OGG_POINTER_STRUCT, &detail, -1); if (NULL == detail) return (FALSE); /*-----------------*/ /*if( (bool_click_droit) && (FILE_IS_MP3 == detail->type_infosong_file_is || FILE_IS_OGG == detail->type_infosong_file_is) ) { GtkTreeSelection *selection; selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)); if (gtk_tree_selection_count_selected_rows(selection) <= 1) { GtkTreePath *path; if (gtk_tree_view_get_path_at_pos(GTK_TREE_VIEW(treeview), (gint) event->x, (gint) event->y, &path, NULL, NULL, NULL)) { gtk_tree_selection_unselect_all(selection); gtk_tree_selection_select_path(selection, path); gtk_tree_path_free(path); } } } */ /*-----------------*/ if( bool_click_droit && FILE_IS_MP3 == detail->type_infosong_file_is ) { // DEBIT MODE popup_file_mp3_type( detail, detail->Mp3_Debit, detail->Mp3_Mode ); // AUTORISE LE POPUP SUR UNE SELECTION MULTIPLE var_file_mp3ogg.Adr_Line_Selected = gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)); gtk_tree_selection_select_path(var_file_mp3ogg.Adr_Line_Selected, path); // gtk_tree_path_free(path); return TRUE; } else if( bool_click_droit && FILE_IS_OGG == detail->type_infosong_file_is ) { // DEBIT MANAGED DOWNMIX popup_file_ogg_type( detail, detail->Ogg_Debit, detail->Ogg_Managed, detail->Ogg_Downmix ); var_file_mp3ogg.Adr_Line_Selected = gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)); // AUTORISE LE POPUP SUR UNE SELECTION MULTIPLE gtk_tree_selection_select_path(var_file_mp3ogg.Adr_Line_Selected, path); // gtk_tree_path_free(path); return TRUE; } return (FALSE); } // // static void FileMp3Ogg_add_columns_scrolledwindow (GtkTreeView *treeview) { GtkCellRenderer *renderer; GtkTreeViewColumn *column; GtkTreeModel *model = gtk_tree_view_get_model (treeview); // SIGNAL : 'event' g_signal_connect(G_OBJECT(treeview), "event", (GCallback) FileMp3Ogg_event, model); // SIGNAL : 'Gestion click click' g_signal_connect(G_OBJECT(treeview), "button-press-event", (GCallback) FileMp3Ogg_event_click_mouse, model); // SIGNAL : Ligne actuellement selectionnee 'changed' var_file_mp3ogg.Adr_Line_Selected = gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)); g_signal_connect(G_OBJECT(var_file_mp3ogg.Adr_Line_Selected), "changed", G_CALLBACK(FileMp3Ogg_changed_selection_row), model); // SIGNAL 'key-press-event' g_signal_connect(G_OBJECT(treeview), "key-press-event", (GCallback) FileMp3Ogg_key_press_event, model); // Drag and drop support // SIGNAL : 'drag-data-received' gtk_drag_dest_set (GTK_WIDGET (treeview), GTK_DEST_DEFAULT_MOTION | GTK_DEST_DEFAULT_DROP, drag_types, n_drag_types, GDK_ACTION_COPY| GDK_ACTION_MOVE ); g_signal_connect(G_OBJECT(treeview), "drag-data-received", G_CALLBACK(FileMp3Ogg_drag_data_received), NULL); gtk_drag_source_set( GTK_WIDGET(treeview), GDK_BUTTON1_MASK | GDK_BUTTON2_MASK | GTK_DEST_DEFAULT_MOTION | GTK_DEST_DEFAULT_DROP, drag_types, n_drag_types, GDK_ACTION_MOVE | GDK_ACTION_COPY | GDK_ACTION_DEFAULT ); g_signal_connect(G_OBJECT(treeview), "drag-data-get", G_CALLBACK(FileMp3Ogg_drag_data_drop), treeview); // COLUMN_FILEMP3OGG_PLAY // var_file_mp3ogg.Adr_ColumnFileMp3OggPlay = // COLUMN_FILEMP3OGG_TYPE renderer = gtk_cell_renderer_text_new (); g_object_set (renderer, "xalign", 0.5, NULL); var_file_mp3ogg.Adr_ColumnFileMp3OggType = column = gtk_tree_view_column_new_with_attributes (_("Type"), renderer, "text", COLUMN_FILEMP3OGG_TYPE, NULL); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column), GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 90); gtk_tree_view_column_set_alignment (GTK_TREE_VIEW_COLUMN (column), 0.5); /* TRIS */ gtk_tree_view_column_set_sort_column_id (column, COLUMN_FILEMP3OGG_TYPE); gtk_tree_view_append_column (treeview, column); // COLUMN_FILEMP3OGG_BITRATE renderer = gtk_cell_renderer_text_new (); g_object_set (renderer, "xalign", 0.5, NULL); var_file_mp3ogg.Adr_ColumnFileMp3OggBitrate = column = gtk_tree_view_column_new_with_attributes (_("Bitrate"), renderer, "text", COLUMN_FILEMP3OGG_BITRATE, NULL); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column), GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 90); gtk_tree_view_column_set_alignment (GTK_TREE_VIEW_COLUMN (column), 0.5); // TRIS gtk_tree_view_column_set_sort_column_id (column, COLUMN_FILEMP3OGG_BITRATE); gtk_tree_view_append_column (treeview, column); // COLUMN_FILEMP3OGG_NEWBITRATE renderer = gtk_cell_renderer_text_new (); g_object_set (renderer, "xalign", 0.5, NULL); var_file_mp3ogg.Adr_ColumnFileMp3OggNewBitrate = column = gtk_tree_view_column_new_with_attributes (_("Nouveau bitrate"), renderer, "markup", COLUMN_FILEMP3OGG_NEWBITRATE, NULL); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column), GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 350); gtk_tree_view_column_set_alignment (GTK_TREE_VIEW_COLUMN (column), 0.5); gtk_tree_view_append_column (treeview, column); // COLUMN_FILEMP3OGG_SIZE renderer = gtk_cell_renderer_text_new (); g_object_set (renderer, "xalign", 0.5, NULL); var_file_mp3ogg.Adr_ColumnFileMp3OggSize = column = gtk_tree_view_column_new_with_attributes (_("Taille"), renderer, "text", COLUMN_FILEMP3OGG_SIZE, NULL); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column), GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 90); gtk_tree_view_column_set_alignment (GTK_TREE_VIEW_COLUMN (column), 0.5); gtk_tree_view_append_column (treeview, column); // COLUMN_FILEMP3OGG_TIME renderer = gtk_cell_renderer_text_new (); g_object_set (renderer, "xalign", 0.5, NULL); var_file_mp3ogg.Adr_ColumnFileMp3OggTime = column = gtk_tree_view_column_new_with_attributes (_("Temps"), renderer, "text", COLUMN_FILEMP3OGG_TIME, NULL); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column), GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 90); gtk_tree_view_column_set_alignment (GTK_TREE_VIEW_COLUMN (column), 0.5); gtk_tree_view_append_column (treeview, column); // COLUMN_FILEMP3OGG_NAME var_file_mp3ogg.Renderer = renderer = gtk_cell_renderer_text_new (); g_object_set (renderer, "xalign", 0.5, NULL); var_file_mp3ogg.Adr_ColumnFileMp3OggName = column = gtk_tree_view_column_new_with_attributes (_("Nom"), renderer, "markup", COLUMN_FILEMP3OGG_NAME, "background-gdk", COLUMN_FILEMP3OGG_COLOR, NULL); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column), GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 90); gtk_tree_view_column_set_alignment (GTK_TREE_VIEW_COLUMN (column), 0.5); gtk_tree_view_append_column (treeview, column); } // // void on_scrolledwindow_file_mp3ogg_realize (GtkWidget *widget, gpointer user_data) { GtkListStore *store; GtkTreeModel *model; GtkWidget *treeview; var_file_mp3ogg.Adr_scroll = widget; var_file_mp3ogg.Pixbuf_NotInstall = libutils_init_pixbufs ("xcfa/not_install.png"); var_file_mp3ogg.Adr_List_Store = store = gtk_list_store_new ( COLUMN_FILE_NUM, /* TOTAL NUMBER */ G_TYPE_STRING, /* COLUMN_FILEMP3OGG_TYPE */ G_TYPE_STRING, /* COLUMN_FILEMP3OGG_BITRATE */ G_TYPE_STRING, /* COLUMN_FILEMP3OGG_NEWBITRATE */ G_TYPE_STRING, /* COLUMN_FILEMP3OGG_SIZE */ G_TYPE_STRING, /* COLUMN_FILEMP3OGG_TIME */ G_TYPE_STRING, /* COLUMN_FILEMP3OGG_NAME */ GDK_TYPE_COLOR, /* COLUMN_FILEMP3OGG_COLOR */ G_TYPE_POINTER /* COLUMN_FILEMP3OGG_POINTER_STRUCT */ ); var_file_mp3ogg.Adr_Tree_Model = model = GTK_TREE_MODEL (store); var_file_mp3ogg.Adr_TreeView = treeview = gtk_tree_view_new_with_model (model); gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (treeview), TRUE); gtk_tree_selection_set_mode (gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview)), GTK_SELECTION_MULTIPLE); // GTK_SELECTION_BROWSE MULTIPLE g_object_unref (model); gtk_container_add (GTK_CONTAINER (widget), treeview); FileMp3Ogg_add_columns_scrolledwindow (GTK_TREE_VIEW (treeview)); gtk_widget_show_all (widget); } xcfa-4.3.6/src/split.c0000644000175000017500000011767612164023131011467 00000000000000 /* * file : split.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #include #include #include #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "configuser.h" #include "fileselect.h" #include "win_info.h" #include "cursor.h" #include "dragNdrop.h" #include "get_info.h" #include "tags.h" #include "win_scan.h" #include "popup.h" #include "mplayer.h" #include "alsa_play.h" #include "prg_init.h" #include "split.h" #include "statusbar.h" extern gint n_drag_types; /* Drag And Drop */ VAR_SPLIT VarSplit; ADJUST Adjust; void SetAjust (void); // // PERCENT = ( VALUE_X / LONGUEUR_TOTALE ) * 100.0 // VALUE_X = ( LONGUEUR_TOTALE * PERCENT ) / 100.0 // void split_set_time (void) { gint sec; // gdouble dsec; gdouble TimeSongSec; gdouble Percent; gint H, M, S; // gint C, hundr; gchar *Str = NULL; if (NULL == VarSplit.Tags || VarSplit.NbrSelecteurs <= 0) { gtk_label_set_use_markup (GTK_LABEL(GLADE_GET_OBJECT("label_begin_time_split")), TRUE); gtk_label_set_markup (GTK_LABEL(GLADE_GET_OBJECT("label_begin_time_split")), " 00:00:00 "); gtk_label_set_use_markup (GTK_LABEL(GLADE_GET_OBJECT("label_end_time_split")), TRUE); gtk_label_set_markup (GTK_LABEL(GLADE_GET_OBJECT("label_end_time_split")), " 00:00:00 "); gtk_label_set_use_markup (GTK_LABEL(GLADE_GET_OBJECT("label_time_split")), TRUE); gtk_label_set_markup (GTK_LABEL(GLADE_GET_OBJECT("label_time_split")), " 00:00:00 "); gtk_label_set_use_markup (GTK_LABEL(GLADE_GET_OBJECT("label_nmr_plage_split")), TRUE); gtk_label_set_markup (GTK_LABEL(GLADE_GET_OBJECT("label_nmr_plage_split")), " Plage -- / -- "); // gtk_label_set_use_markup (GTK_LABEL(GLADE_GET_OBJECT("label_curseur_lecture_split")), TRUE); gtk_label_set_markup (GTK_LABEL(GLADE_GET_OBJECT("label_curseur_lecture_split")), " 00:00:00 "); return; } // ACQUISITION DUREE TOTALE DU FICHIER EN SECONDES TimeSongSec = VarSplit.Tags->SecTime; // POSITION INDEX DEBUT Percent = SplitSelector_get_percent_begin (VarSplit.SelecteurActif); sec = (gint) (((gdouble)TimeSongSec * (gdouble)Percent) / 100.0); // dsec = ((gdouble)TimeSongSec *(gdouble)Percent) / 100.0; // hundr = ((gdouble)dsec - (gdouble)sec) * 100.0; H = (sec / 60) / 60; M = (sec / 60) % 60; S = sec % 60; // C = hundr; Str = g_strdup_printf (" %02d:%02d:%02d ", H, M, S); gtk_label_set_use_markup (GTK_LABEL(GLADE_GET_OBJECT("label_begin_time_split")), TRUE); gtk_label_set_markup (GTK_LABEL(GLADE_GET_OBJECT("label_begin_time_split")), Str); g_free (Str); Str = NULL; // POSITION INDEX FIN Percent = SplitSelector_get_percent_end (VarSplit.SelecteurActif); sec = (gint) (((gdouble)TimeSongSec * (gdouble)Percent) / 100.0); // dsec = ((gdouble)TimeSongSec *(gdouble)Percent) / 100.0; // hundr = ((gdouble)dsec - (gdouble)sec) * 100.0; H = (sec / 60) / 60; M = (sec / 60) % 60; S = sec % 60; // C = hundr; Str = g_strdup_printf (" %02d:%02d:%02d ", H, M, S); gtk_label_set_use_markup (GTK_LABEL(GLADE_GET_OBJECT("label_end_time_split")), TRUE); gtk_label_set_markup (GTK_LABEL(GLADE_GET_OBJECT("label_end_time_split")), Str); g_free (Str); Str = NULL; // NUMERO DE PLAGE EN COURS gtk_label_set_use_markup (GTK_LABEL(GLADE_GET_OBJECT("label_nmr_plage_split")), TRUE); Str = g_strdup_printf (" Plage %02d / %02d ", VarSplit.SelecteurActif +1, VarSplit.NbrSelecteurs); gtk_label_set_markup (GTK_LABEL(GLADE_GET_OBJECT("label_nmr_plage_split")), Str); g_free (Str); Str = NULL; // DUREE DE LA PLAGE Percent = SplitSelector_get_percent_end (VarSplit.SelecteurActif) - SplitSelector_get_percent_begin (VarSplit.SelecteurActif); sec = (gint) (((gdouble)TimeSongSec * (gdouble)Percent) / 100.0); // dsec = ((gdouble)TimeSongSec *(gdouble)Percent) / 100.0; // hundr = ((gdouble)dsec - (gdouble)sec) * 100.0; H = (sec / 60) / 60; M = (sec / 60) % 60; S = sec % 60; // C = hundr; Str = g_strdup_printf (" %02d:%02d:%02d ", H, M, S); gtk_label_set_use_markup (GTK_LABEL(GLADE_GET_OBJECT("label_time_split")), TRUE); gtk_label_set_markup (GTK_LABEL(GLADE_GET_OBJECT("label_time_split")), Str); g_free (Str); Str = NULL; // TEMPS DU PLAY Percent = VarSplit.PercentActivePlay; sec = (gint) (((gdouble)TimeSongSec * (gdouble)Percent) / 100.0); // dsec = ((gdouble)TimeSongSec *(gdouble)Percent) / 100.0; // hundr = ((gdouble)dsec - (gdouble)sec) * 100.0; H = (sec / 60) / 60; M = (sec / 60) % 60; S = sec % 60; // C = hundr; Str = g_strdup_printf (" %02d:%02d:%02d ", H, M, S); gtk_label_set_use_markup (GTK_LABEL(GLADE_GET_OBJECT("label_curseur_lecture_split")), TRUE); gtk_label_set_markup (GTK_LABEL(GLADE_GET_OBJECT("label_curseur_lecture_split")), Str); g_free (Str); Str = NULL; } // // void split_set_flag_buttons (void) { gboolean Bool [ 3 ]; Bool [ 0 ] = VarSplit.BoolReadFileSpectre; Bool [ 1 ] = VarSplit.NbrSelecteurs > 1 && !VarSplit.BoolPlay ? TRUE : FALSE; Bool [ 2 ] = VarSplit.NbrSelecteurs > 0 && !VarSplit.BoolPlay? TRUE : FALSE; gtk_widget_set_sensitive (GTK_WIDGET (GLADE_GET_OBJECT("button_del_cut_split")), Bool [ 1 ]); gtk_widget_set_sensitive (GTK_WIDGET (GLADE_GET_OBJECT("button_play_begin_split")), Bool [ 2 ]); gtk_widget_set_sensitive (GTK_WIDGET (GLADE_GET_OBJECT("button_play_split")), Bool [ 2 ]); gtk_widget_set_sensitive (GTK_WIDGET (GLADE_GET_OBJECT("button_play_end_split")), Bool [ 2 ]); gtk_widget_set_sensitive (GTK_WIDGET (GLADE_GET_OBJECT("button_gen_cue_split")), Bool [ 2 ]); gtk_widget_set_sensitive (GTK_WIDGET (GLADE_GET_OBJECT("button_action_split")), Bool [ 2 ]); gtk_widget_grab_focus (VarSplit.AdrWidgetSpectre); split_set_time (); split_set_name_file (); StatusBar_puts(); } // // void SplitSpectre_scroll_droite_play (void) { gdouble Value; gint Begin; gint LenScroll; if (VarSplit.NbrSelecteurs == 0) return; SplitSelector_get_pos (); Value = (gint)VarSplit.AdjScroll->value; LenScroll = VARSPLIT_SPECTRE_WITH -1; Begin = SplitSelector_get_pos_play () - (gint)Value; while( Begin > 100 && Value + LenScroll < SplitSpectre_get_with() ) { Begin --; Value ++; } if (Value < 0.0) { Value = 0.0; } Adjust.value = Value; SetAjust (); } // DEMANDE DE REDRAW // void split_redraw_image (void) { if (NULL == VarSplit.AdrWidgetSpectre) return; // PRINT_FUNC_LF(); gtk_widget_queue_draw_area ( VarSplit.AdrWidgetSpectre, VarSplit.AdrWidgetSpectre->allocation.x, VarSplit.AdrWidgetSpectre->allocation.y, VarSplit.AdrWidgetSpectre->allocation.width, VarSplit.AdrWidgetSpectre->allocation.height ); } // // static void split_drag_data_received_file (GtkWidget *widget, GdkDragContext *drag_context, gint x, gint y, GtkSelectionData *data, guint info, guint time) { if (gtk_drag_get_source_widget(drag_context) != widget) { dragndrop_list_drag_data (widget, (gchar *)data->data); } } // // void split_set_name_file (void) { gchar *Ptr = NULL; gchar *NewName = NULL; if (NULL != VarSplit.PathNameFileReal && NULL != (Ptr = strrchr (VarSplit.PathNameFileReal, '/'))) { gchar *Str = NULL; Ptr ++; NewName = utf8_eperluette_name( Ptr ); if (NULL != VarSplit.Tags) { Str = g_strdup_printf ("%s %s\n%s Hertz\n%s voies\n%s bits ", NewName, VarSplit.Tags->time, VarSplit.Tags->hertz, VarSplit.Tags->voie, VarSplit.Tags->bits); } else { Str = g_strdup_printf ("%s", NewName); } g_free( NewName ); NewName = NULL; gtk_label_set_use_markup (GTK_LABEL(GLADE_GET_OBJECT("label_temps_actuel_curseur_split")), TRUE); gtk_label_set_markup (GTK_LABEL(GLADE_GET_OBJECT("label_temps_actuel_curseur_split")), Str); g_free (Str); Str = NULL; if (VarSplit.NbrSelecteurs > 1) { StatusBar_set_mess( NOTEBOOK_SPLIT, _STATUSBAR_SIMPLE_, _("Menu: Click droit / Ajout plage: Click bouton centre / Zoom: Ctrl+Scroll") ); } else { StatusBar_set_mess( NOTEBOOK_SPLIT, _STATUSBAR_SIMPLE_, _("Ajout plage: Click bouton centre / Zoom: Ctrl+Scroll") ); } } else { StatusBar_set_mess( NOTEBOOK_SPLIT, _STATUSBAR_SIMPLE_, _("Pret pour l'import d'un fichier CUE, WAV, FLAC, OGG, MP3, APE, WMA") ); } } // // static void VarSplit_thread (void *arg) { VarSplit.BoolInThread = TRUE; SplitSpectre_read_file_spectre (VarSplit.PathNameFile); VarSplit.BoolInThread = FALSE; PRINT("FIN THREAD SPLIT"); pthread_exit(0); } // // static gint VarSplit_timeout (gpointer data) { if (FALSE == VarSplit.BoolInThread) { gint IndicePoints = 0; gtk_timeout_remove (VarSplit.HandlerTimeoutDo); VarSplit.Tags = tagswav_remove_info (VarSplit.Tags); VarSplit.Tags = (INFO_WAV *)tagswav_get_info (VarSplit.PathNameFile); // split_set_name_file (); if( TRUE == OptionsCommandLine.BoolVerboseMode ) { g_print("\ttime : Temps d'ecoute = %s\n", VarSplit.Tags->time); g_print("\tSecTime : Temps d'ecoute en secondes = %d\n", VarSplit.Tags->SecTime); g_print("\thertz : Taux d'échantillonnage = %s\n", VarSplit.Tags->hertz); g_print("\tvoie : 1, 2, 4, 6 = %s\n", VarSplit.Tags->voie); g_print("\tbits : 8, 16, 24, 32 ou 64 = %s\n", VarSplit.Tags->bits); g_print("\n"); } for (IndicePoints = 0; IndicePoints < MAX_SELECTEURS_SPLIT; IndicePoints ++) { if (-1 != VarSplit.Selecteur [ IndicePoints ] . Nmr) { VarSplit.NbrSelecteurs ++; } } SplitSelector_get_pos (); gtk_widget_queue_draw( VarSplit.AdrWidgetSpectre ); gtk_widget_queue_draw( VarSplit.AdrWidgetSpectreTop ); split_set_flag_buttons (); split_set_time (); VarSplit.PercentActivePlay = 0.0; gtk_widget_queue_draw (VarSplit.AdrWidgetSpectre); WindScan_close (); PRINT("FIN TIMEOUT SPLIT"); } return (TRUE); } // // IMPORT D'UN FICHIER // void split_file_load (gchar *p_PathNameFile) { gchar *PathNameFile = NULL; TYPE_FILE_IS TypeFileIs = GetInfo_file_is (p_PathNameFile); if (0 == strcmp (p_PathNameFile, SPLIT_FILE_TMP_WAV)) { wininfo_create ( WindMain, _("Ce fichier appartient a XCFA"), _("Selectionnez un autre fichier."), ""); return; } if (libutils_get_size_file (p_PathNameFile) <= 0) { wininfo_create ( WindMain, _("Fichier vide"), _("Le fichier ne contient aucune donnee !!!"), ""); return; } // INIT STRUCTURES: Selecteur SplitSelector_init (); if (TRUE == FileIs_g_str_has_suffix (p_PathNameFile, ".CUE")) { PRINT("FILE IS CUE ;-)"); if (NULL == (PathNameFile = SplitCue_read_cue_file (p_PathNameFile))) { g_print ("\tBAD FORMAT OF CUE FILE :/\n"); return; } if (0 == strcmp (PathNameFile, SPLIT_FILE_TMP_WAV)) { wininfo_create ( WindMain, _("Ce fichier appartient a XCFA"), _("Selectionnez un autre fichier."), ""); g_free (PathNameFile); PathNameFile = NULL; return; } VarSplit.BoolBlankWithCue = TRUE; } else { PathNameFile = g_strdup (p_PathNameFile); } if (FILE_IS_WAV == TypeFileIs || FILE_IS_FLAC == TypeFileIs || FILE_IS_MP3 == TypeFileIs || FILE_IS_OGG == TypeFileIs || FILE_IS_APE == TypeFileIs || FILE_IS_WMA== TypeFileIs ) { if (FALSE == PrgInit.bool_sox || FALSE == PrgInit.bool_mplayer) { wininfo_create ( WindMain, _("Sox et Mplayer absents"), _("Sox et Mplayer sont absents de votre"), "\n", _("configuration."), "\n\n", _("Veuillez les installer pour pouvoir continuer."), ""); return; } } if (NULL != VarSplit.PathNameFileReal) { g_free (VarSplit.PathNameFileReal); VarSplit.PathNameFileReal = NULL; } VarSplit.PathNameFileReal = g_strdup (p_PathNameFile); SplitConv_to (PathNameFile); } void split_file_load_continue (gchar *p_PathNameFile) { pthread_t nmr_tid; gchar *PathNameFile = p_PathNameFile; TYPE_FILE_IS TypeFileIs = libutils_test_file_exist (p_PathNameFile); if (TRUE == libutils_test_file_exist (PathNameFile) && (FILE_IS_WAV == TypeFileIs || FILE_IS_FLAC == TypeFileIs || FILE_IS_MP3 == TypeFileIs || FILE_IS_OGG == TypeFileIs || FILE_IS_APE == TypeFileIs)) { AlsaPlay_stop (); // REAJUSTEMENT DU ZOOM A 100% Adjust.mul = 1; SetAjust() ; gtk_widget_queue_draw( VarSplit.AdrWidgetSpectre ); gtk_widget_queue_draw( VarSplit.AdrWidgetSpectreTop ); gtk_widget_queue_draw( VarSplit.AdrWidgetSpectreChrono ); WindScan_set_pulse (); WindScan_set_label ("Analyse du fichier ..."); if (NULL != VarSplit.PathNameFile) { g_free (VarSplit.PathNameFile); VarSplit.PathNameFile = NULL; } VarSplit.PathNameFile = g_strdup (PathNameFile); VarSplit.BoolInThread = TRUE; PRINT("DEBUT TIMEOUT SPLIT"); PRINT("DEBUT THREAD SPLIT"); VarSplit.HandlerTimeoutDo = gtk_timeout_add (100, VarSplit_timeout, 0); pthread_create (&nmr_tid, NULL ,(void *)VarSplit_thread, (void *)NULL); } else { wininfo_create ( WindMain, _("Erreur de choix de fichier"), _("Veuillez selectionner un fichier de type WAV FLAC MP3 OGG APE"), ""); } split_set_flag_buttons (); } // IMPORT D'UN FICHIER // void split_maj_file_load (gchar *path) { gchar *Ptr = NULL; TYPE_FILE_IS TypeFileIs = FILE_IS_NONE; gboolean BoolTypeFileIsOk = FALSE; g_free (Config.PathLoadSplit); Config.PathLoadSplit = NULL; Config.PathLoadSplit = g_strdup (path); if (NULL != (Ptr = strrchr (Config.PathLoadSplit, '/'))) { *Ptr = '\0'; } TypeFileIs = GetInfo_file_is (path); if (FILE_IS_WAV == TypeFileIs || FILE_IS_FLAC == TypeFileIs || FILE_IS_MP3 == TypeFileIs || FILE_IS_OGG == TypeFileIs || FILE_IS_APE == TypeFileIs || FILE_IS_WMA == TypeFileIs || TRUE == FileIs_g_str_has_suffix (path, ".CUE")) { split_file_load (path); BoolTypeFileIsOk = TRUE; } if (FALSE == BoolTypeFileIsOk) { wininfo_create ( WindMain, _("Mauvais type de fichier"), _("Les types de fichiers acceptes\nsont: WAV FLAC MP3 OGG APE WMA CUE"), ""); } } // // void on_button_importer_split_clicked (GtkButton *button, gpointer user_data) { if (GDK_space != keys.keyval) fileselect_create (_PATH_LOAD_SPLIT_FILE_, Config.PathLoadSplit, split_maj_file_load); } // INIT WIDGET DE LA DESTINAION DES DECOUPES // void on_button_destination_split_realize (GtkWidget *widget, gpointer user_data) { VarSplit.Adr_button_destination = GTK_BUTTON (widget); gtk_button_set_use_underline (GTK_BUTTON (VarSplit.Adr_button_destination), FALSE); gtk_button_set_label (GTK_BUTTON (VarSplit.Adr_button_destination), Config.PathDestinationSplit); } // CHOIX D'UNE DESTINATION POUR LES DECOUPES // void split_maj_destination (gchar *path) { if (libutils_test_write (path) == TRUE) { g_free (Config.PathDestinationSplit); Config.PathDestinationSplit = NULL; Config.PathDestinationSplit = g_strdup (path); gtk_button_set_label (GTK_BUTTON (VarSplit.Adr_button_destination), Config.PathDestinationSplit); } } // // void on_button_destination_split_clicked (GtkButton *button, gpointer user_data) { if (GDK_space != keys.keyval) { fileselect_create (_PATH_CHOICE_DESTINATION_, Config.PathDestinationSplit, split_maj_destination); split_set_flag_buttons (); } } // LOAD DEPUIS UN DRAG AND DROP // void split_load_from_dnd (GSList *p_list) { GSList *gs_List = p_list; gchar *Ptr = NULL; TYPE_FILE_IS TypeFileIs = FILE_IS_NONE; gboolean BoolTypeFileIsOk = FALSE; // PRINT_FUNC_LF(); while (NULL != gs_List) { if (NULL != (Ptr = (gchar *)gs_List->data)) { if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print("\t%s\n", Ptr); TypeFileIs = GetInfo_file_is (Ptr); if (FILE_IS_WAV == TypeFileIs || FILE_IS_FLAC == TypeFileIs || FILE_IS_MP3 == TypeFileIs || FILE_IS_OGG == TypeFileIs || FILE_IS_APE == TypeFileIs || FILE_IS_WMA == TypeFileIs || TRUE == FileIs_g_str_has_suffix (Ptr, ".CUE")) { split_file_load (Ptr); BoolTypeFileIsOk = TRUE; break; } } gs_List = g_slist_next (gs_List); } if (FALSE == BoolTypeFileIsOk) { wininfo_create ( WindMain, _("Mauvais type de fichier"), _("Les types de fichiers acceptes\nsont: WAV FLAC MP3 OGG APE WMA CUE"), ""); } split_set_flag_buttons (); split_set_time (); } // // void split_set_value (gdouble p_value) { VarSplit.PercentActivePlay = p_value; if (VarSplit.PercentActivePlay >= 100.0) VarSplit.PercentActivePlay = 99.99; if( SplitSelector_get_pos_play () > VARSPLIT_SPECTRE_WITH + (gint)VarSplit.AdjScroll->value && (gint)VarSplit.AdjScroll->value < SplitSpectre_get_with() ) { SplitSpectre_scroll_droite_play (); } split_set_time (); gtk_widget_queue_draw( VarSplit.AdrWidgetSpectreTop ); SplitSpectre_draw_lines_play(); // gtk_widget_queue_draw( VarSplit.AdrWidgetSpectre ); } // // void split_end_play (void) { PRINT_FUNC_LF(); split_set_stop (); gtk_widget_show (GTK_WIDGET (GLADE_GET_OBJECT("button_play_split"))); gtk_widget_hide (GTK_WIDGET (GLADE_GET_OBJECT("button_pause_split"))); gtk_widget_set_sensitive (GTK_WIDGET (GLADE_GET_OBJECT("button_play_begin_split")), TRUE); gtk_widget_set_sensitive (GTK_WIDGET (GLADE_GET_OBJECT("button_play_split")), TRUE); gtk_widget_set_sensitive (GTK_WIDGET (GLADE_GET_OBJECT("button_play_end_split")), TRUE); gtk_widget_set_sensitive (GTK_WIDGET (GLADE_GET_OBJECT("button_del_cut_split")), TRUE); gtk_widget_set_sensitive (GTK_WIDGET (GLADE_GET_OBJECT("button_gen_cue_split")), TRUE); gtk_widget_set_sensitive (GTK_WIDGET (GLADE_GET_OBJECT("button_action_split")), TRUE); gtk_widget_set_sensitive (GTK_WIDGET (GLADE_GET_OBJECT("button_importer_split")), TRUE); } // // void split_set_stop (void) { VarSplit.BoolPlay = FALSE; } // // gboolean split_is_stop (void) { return (VarSplit.BoolPlay ? FALSE : TRUE); } // DEBUT DE LECTURE // void on_button_play_split_clicked (GtkButton *button, gpointer user_data) { // PRINT_FUNC_LF(); VarSplit.BoolPlay = TRUE; gtk_widget_show (GTK_WIDGET (GLADE_GET_OBJECT("button_pause_split"))); gtk_widget_hide (GTK_WIDGET (GLADE_GET_OBJECT("button_play_split"))); gtk_widget_set_sensitive (GTK_WIDGET (GLADE_GET_OBJECT("button_play_begin_split")), FALSE); gtk_widget_set_sensitive (GTK_WIDGET (GLADE_GET_OBJECT("button_play_end_split")), FALSE); gtk_widget_set_sensitive (GTK_WIDGET (GLADE_GET_OBJECT("button_del_cut_split")), FALSE); gtk_widget_set_sensitive (GTK_WIDGET (GLADE_GET_OBJECT("button_importer_split")), FALSE); gtk_widget_set_sensitive (GTK_WIDGET (GLADE_GET_OBJECT("button_gen_cue_split")), FALSE); gtk_widget_set_sensitive (GTK_WIDGET (GLADE_GET_OBJECT("button_action_split")), FALSE); AlsaPlay_song ( VarSplit.PathNameFile, VarSplit.PercentActivePlay, 100.0, split_set_value, split_end_play ); } // FIN DE LECTURE // void on_button_pause_split_clicked (GtkButton *button, gpointer user_data) { // PRINT_FUNC_LF(); VarSplit.BoolPlay = FALSE; AlsaPlay_stop (); gtk_widget_show (GTK_WIDGET (GLADE_GET_OBJECT("button_play_split"))); gtk_widget_hide (GTK_WIDGET (GLADE_GET_OBJECT("button_pause_split"))); } // FROM BARRE ESPACE // void split_play (void) { if (VarSplit.NbrSelecteurs > 0) { if (FALSE == VarSplit.BoolPlay) { on_button_play_split_clicked (NULL, NULL); } else { on_button_pause_split_clicked (NULL, NULL); } } } // LECTURE 5 SECONDES DEBUT // void on_button_play_begin_split_clicked (GtkButton *button, gpointer user_data) { // gdouble Percent; // PRINT_FUNC_LF(); gdouble PercentBegin = SplitSelector_get_percent_begin (VarSplit.SelecteurActif); gdouble PercentEnd = SplitSelector_get_percent_begin (VarSplit.SelecteurActif) + SplitSelector_get_percent_for_x_secondes (5); VarSplit.BoolPlay = TRUE; // Percent = SplitSelector_get_percent_begin (VarSplit.SelecteurActif); SplitSelector_get_percent_begin (VarSplit.SelecteurActif); AlsaPlay_song ( VarSplit.PathNameFile, PercentBegin, PercentEnd, split_set_value, split_end_play ); // gtk_widget_set_sensitive (GTK_WIDGET (GLADE_GET_OBJECT("frame_choice_reader")), FALSE); gtk_widget_set_sensitive (GTK_WIDGET (GLADE_GET_OBJECT("button_play_begin_split")), FALSE); gtk_widget_set_sensitive (GTK_WIDGET (GLADE_GET_OBJECT("button_play_split")), FALSE); gtk_widget_set_sensitive (GTK_WIDGET (GLADE_GET_OBJECT("button_play_end_split")), FALSE); gtk_widget_set_sensitive (GTK_WIDGET (GLADE_GET_OBJECT("button_del_cut_split")), FALSE); gtk_widget_set_sensitive (GTK_WIDGET (GLADE_GET_OBJECT("button_gen_cue_split")), FALSE); gtk_widget_set_sensitive (GTK_WIDGET (GLADE_GET_OBJECT("button_action_split")), FALSE); gtk_widget_set_sensitive (GTK_WIDGET (GLADE_GET_OBJECT("button_importer_split")), FALSE); } // LECTURE 5 SECONDES FIN // void on_button_play_end_split_clicked (GtkButton *button, gpointer user_data) { // gdouble Percent; // PRINT_FUNC_LF(); gdouble PercentBegin = SplitSelector_get_percent_end (VarSplit.SelecteurActif) - SplitSelector_get_percent_for_x_secondes (5); gdouble PercentEnd = SplitSelector_get_percent_end (VarSplit.SelecteurActif); VarSplit.BoolPlay = TRUE; // Percent = SplitSelector_get_percent_begin (VarSplit.SelecteurActif); SplitSelector_get_percent_begin (VarSplit.SelecteurActif); AlsaPlay_song ( VarSplit.PathNameFile, PercentBegin, PercentEnd, split_set_value, split_end_play ); gtk_widget_set_sensitive (GTK_WIDGET (GLADE_GET_OBJECT("button_play_begin_split")), FALSE); gtk_widget_set_sensitive (GTK_WIDGET (GLADE_GET_OBJECT("button_play_split")), FALSE); gtk_widget_set_sensitive (GTK_WIDGET (GLADE_GET_OBJECT("button_play_end_split")), FALSE); gtk_widget_set_sensitive (GTK_WIDGET (GLADE_GET_OBJECT("button_del_cut_split")), FALSE); gtk_widget_set_sensitive (GTK_WIDGET (GLADE_GET_OBJECT("button_gen_cue_split")), FALSE); gtk_widget_set_sensitive (GTK_WIDGET (GLADE_GET_OBJECT("button_action_split")), FALSE); gtk_widget_set_sensitive (GTK_WIDGET (GLADE_GET_OBJECT("button_importer_split")), FALSE); } // // void split_from_popup (gint p_choice) { // PRINT_FUNC_LF(); switch (p_choice) { // Selecteur suivant case 0 : if (VarSplit.NbrSelecteurs -1 == VarSplit.SelecteurActif) VarSplit.SelecteurActif = 0; else VarSplit.SelecteurActif ++; gtk_widget_queue_draw (VarSplit.AdrWidgetSpectre); gtk_widget_queue_draw( VarSplit.AdrWidgetSpectreTop ); break; // Selecteur precedant case 1 : if (VarSplit.SelecteurActif == 0) VarSplit.SelecteurActif = VarSplit.NbrSelecteurs -1; else VarSplit.SelecteurActif --; gtk_widget_queue_draw (VarSplit.AdrWidgetSpectre); gtk_widget_queue_draw( VarSplit.AdrWidgetSpectreTop ); break; // Supprimer le selecteur actif case 2 : SplitSelector_cut (); gtk_widget_queue_draw (VarSplit.AdrWidgetSpectre); gtk_widget_queue_draw( VarSplit.AdrWidgetSpectreTop ); break; } } // // void SetAjust (void) { // PRINT_FUNC_LF(); VarSplit.AdjScroll->value = Adjust.value; VarSplit.AdjScroll->lower = Adjust.lower; VarSplit.AdjScroll->upper = Adjust.upper; VarSplit.AdjScroll->step_increment = Adjust.step_increment; VarSplit.AdjScroll->page_increment = Adjust.page_increment; VarSplit.AdjScroll->page_size = Adjust.page_size; gtk_adjustment_value_changed( VarSplit.AdjScroll ); } // // void page_plus_scrolled ( gint p_CursorX ) { // PRINT_FUNC_LF(); Adjust.mul += 1; Adjust.with = SplitSpectre_get_with(); Adjust.lower = 0.; Adjust.upper = Adjust.with; Adjust.step_increment = 10; Adjust.page_size = VarSplit.AdrWidgetSpectre->allocation.width; Adjust.page_increment = VarSplit.AdrWidgetSpectre->allocation.width; Adjust.value = VarSplit.AdjScroll->value + p_CursorX; SetAjust (); } // // void rigtht_plus_scrolled (void) { // PRINT_FUNC_LF(); // Adjust.mul += 1; Adjust.with = SplitSpectre_get_with(); Adjust.lower = 0.; Adjust.upper = Adjust.with; Adjust.step_increment = 10; Adjust.page_size = VarSplit.AdrWidgetSpectre->allocation.width; Adjust.page_increment = VarSplit.AdrWidgetSpectre->allocation.width; Adjust.value = VarSplit.AdjScroll->value; Adjust.value += 10; while( Adjust.value > Adjust.with - VarSplit.AdrWidgetSpectre->allocation.width ) Adjust.value --; SetAjust (); } // // void page_moins_scrolled ( gint p_CursorX ) { // PRINT_FUNC_LF(); Adjust.mul -= 1; if( Adjust.mul < 1 ) Adjust.mul = 1; Adjust.with = SplitSpectre_get_with(); if( Adjust.with < VarSplit.AdrWidgetSpectre->allocation.width ) { Adjust.with = VarSplit.AdrWidgetSpectre->allocation.width; Adjust.value = 0; } else { Adjust.value = VarSplit.AdjScroll->value - p_CursorX; } while( Adjust.value > Adjust.with - VarSplit.AdrWidgetSpectre->allocation.width ) Adjust.value --; if( Adjust.value < 0. ) Adjust.value = 0.; Adjust.lower = 0.; Adjust.upper = Adjust.with; Adjust.step_increment = 10; Adjust.page_size = VarSplit.AdrWidgetSpectre->allocation.width; Adjust.page_increment = VarSplit.AdrWidgetSpectre->allocation.width; SetAjust (); } // // void left_plus_scrolled (void) { // PRINT_FUNC_LF(); // Adjust.mul += 1; Adjust.with = SplitSpectre_get_with(); Adjust.lower = 0.; Adjust.upper = Adjust.with; Adjust.step_increment = 10; Adjust.page_size = VarSplit.AdrWidgetSpectre->allocation.width; Adjust.page_increment = VarSplit.AdrWidgetSpectre->allocation.width; Adjust.value = VarSplit.AdjScroll->value; Adjust.value -= 10; while( Adjust.value < 0.0 ) Adjust.value = 0.0; SetAjust (); } // CHRONO // void on_image_splitspectre_chrono_realize (GtkWidget *widget, gpointer user_data) { VarSplit.AdrWidgetSpectreChrono = widget; } // // gboolean on_eventbox_splitspectre_chrono_expose_event (GtkWidget *drawing, GdkEventExpose *e, gpointer data) { SplitSpectre_draw_chrono( VarSplit.AdrWidgetSpectreChrono ); return TRUE; } // // gboolean on_eventbox_splitspectre_chrono_event (GtkWidget *widget, GdkEvent *event, gpointer user_data) { gint CursorX, CursorY; GdkModifierType state; // GET EMPLACEMENT CURSOR MOUSE gdk_window_get_pointer (((GdkEventButton*)event)->window, &CursorX, &CursorY, &state); // SI LE CURSEUR N EST PAS DANS LA ZONE ALORS SORTIE if (CursorX < VARSPLIT_CHRONO_X) return FALSE; if (CursorX > VARSPLIT_CHRONO_X + VARSPLIT_CHRONO_W) return FALSE; if (CursorY < VARSPLIT_CHRONO_Y) return FALSE; if (CursorY > VARSPLIT_CHRONO_Y + VARSPLIT_CHRONO_H) return FALSE; gtk_widget_queue_draw (VarSplit.AdrWidgetSpectreChrono); return FALSE; } // TOP // void on_image_splitspectre_top_realize (GtkWidget *widget, gpointer user_data) { VarSplit.AdrWidgetSpectreTop = widget; } // // gboolean on_eventbox_splitspectre_top_event (GtkWidget *widget, GdkEvent *event, gpointer user_data) { // static gint Nbr = 0; gboolean BoolEventTypeScroll = (GDK_SCROLL == event->type) ? TRUE : FALSE; gint EventTypeScrollDirection = ((GdkEventScroll*)event)->direction; gint CursorX, CursorY; GdkModifierType state; // gboolean bool_click_droit = (((GdkEventButton*)event)->button == 3); // gboolean bool_click_centre = (((GdkEventButton*)event)->button == 2); gboolean bool_click_gauche = (((GdkEventButton*)event)->button == 1); // PRINT(""); // GET EMPLACEMENT CURSOR MOUSE gdk_window_get_pointer (((GdkEventButton*)event)->window, &CursorX, &CursorY, &state); // UN CLICK BOUTON SOURIS : PRESSED if (TRUE == bool_click_gauche && event->type == GDK_BUTTON_PRESS) { gint Pos; CursorX += (gint)VarSplit.AdjScroll->value; for (Pos = 0; Pos < VarSplit.NbrSelecteurs ; Pos ++) { if (CursorX > SplitSelector_get_pos_begin (Pos) && CursorX < SplitSelector_get_pos_end (Pos)) { VarSplit.SelecteurActif = Pos; split_set_time (); gtk_widget_queue_draw( VarSplit.AdrWidgetSpectre ); gtk_widget_queue_draw( VarSplit.AdrWidgetSpectreTop ); break; } } } else if( TRUE == BoolEventTypeScroll ) { if( GDK_SCROLL_UP == EventTypeScrollDirection || GDK_SCROLL_DOWN == EventTypeScrollDirection ) { if( GDK_SCROLL_UP == EventTypeScrollDirection ) { if (VarSplit.SelecteurActif < VarSplit.NbrSelecteurs -1) { VarSplit.SelecteurActif ++; } } else if( GDK_SCROLL_DOWN == EventTypeScrollDirection ) { if (VarSplit.SelecteurActif > 0) { VarSplit.SelecteurActif --; } } gint BeginPos = SplitSelector_get_pos_begin (VarSplit.SelecteurActif); gint EndPos = SplitSelector_get_pos_end (VarSplit.SelecteurActif); gint LenPos = EndPos - BeginPos; gint LenWin = VARSPLIT_SPECTRE_WITH; gint demi; // LA SELECTION EST PLUS PETITE QUE LA FENETRE if( LenPos < LenWin ) { demi = ( LenWin - LenPos ) / 2; Adjust.value = BeginPos - demi; } // LA SELECTION EST PLUS GRANDE QUE LA FENETRE else if( LenPos > LenWin ) { Adjust.value = BeginPos - 50; } while( Adjust.value + LenWin > SplitSpectre_get_with() ) Adjust.value --; if( Adjust.value < 0.0 ) Adjust.value = 0.0; SetAjust(); gtk_widget_queue_draw( VarSplit.AdrWidgetSpectre ); gtk_widget_queue_draw( VarSplit.AdrWidgetSpectreTop ); } } else { gtk_widget_queue_draw( VarSplit.AdrWidgetSpectreChrono ); } return FALSE; } // // gboolean on_eventbox_splitspectre_top_expose_event (GtkWidget *drawing, GdkEventExpose *e, gpointer data) { SplitSpectre_draw_top( VarSplit.AdrWidgetSpectreTop ); return TRUE; } // IMAGE // void on_image_split_spectre_realize (GtkWidget *widget, gpointer user_data) { GtkScrolledWindow *AdrScrolledWindow; // INIT COORDONNEES WIDGET VarSplit.AdrWidgetSpectre = widget; // gtk_widget_grab_focus (VarSplit.AdrWidgetSpectre); /* Drag and drop support * SIGNAL : 'drag-data-received' */ gtk_drag_dest_set (GTK_WIDGET (widget), GTK_DEST_DEFAULT_MOTION | GTK_DEST_DEFAULT_DROP, drag_types, n_drag_types, GDK_ACTION_COPY| GDK_ACTION_MOVE ); gtk_drag_source_set( GTK_WIDGET(widget), GDK_BUTTON1_MASK | GDK_BUTTON2_MASK | GTK_DEST_DEFAULT_MOTION | GTK_DEST_DEFAULT_DROP, drag_types, n_drag_types, GDK_ACTION_MOVE | GDK_ACTION_COPY | GDK_ACTION_DEFAULT ); g_signal_connect(G_OBJECT(widget), "drag-data-received", G_CALLBACK(split_drag_data_received_file), NULL); VarSplit.BoolEventButtonPressSpectre = FALSE; VarSplit.BoolReadFileSpectre = FALSE; VarSplit.PathNameFile = NULL; VarSplit.NbrSelecteurs = 0; VarSplit.TypeCursorSpectre = _CURSOR_IS_NONE_; VarSplit.BoolPlay = FALSE; VarSplit.PercentActivePlay = 0.0; VarSplit.BoolQueueDrawSpectre = FALSE; VarSplit.BoolQueueDrawChrono = FALSE; VarSplit.BoolQueueDrawTop = FALSE; VarSplit.BoolBlankWithCue = FALSE; // INIT SCROLL AdrScrolledWindow = GTK_SCROLLED_WINDOW (GLADE_GET_OBJECT("scrolledwindow_splitspectre")); VarSplit.AdjScroll = gtk_scrolled_window_get_hadjustment (GTK_SCROLLED_WINDOW (AdrScrolledWindow)); Adjust.mul = 1; Adjust.with = VarSplit.AdrWidgetSpectre->allocation.width; Adjust.lower = VarSplit.AdjScroll->lower = 0.0; Adjust.upper = VarSplit.AdrWidgetSpectre->allocation.width; Adjust.step_increment = VarSplit.AdjScroll->step_increment = 10.0; Adjust.page_size = VarSplit.AdrWidgetSpectre->allocation.width; Adjust.page_increment = VarSplit.AdrWidgetSpectre->allocation.width; Adjust.value = VarSplit.AdjScroll->value = 0.0; SetAjust (); gtk_widget_show (GTK_WIDGET (GLADE_GET_OBJECT("button_play_split"))); gtk_widget_hide (GTK_WIDGET (GLADE_GET_OBJECT("button_pause_split"))); split_set_flag_buttons (); split_set_time (); } // // gboolean on_eventbox_splitspectre_event (GtkWidget *widget, GdkEvent *event, gpointer user_data) { gboolean BoolEventTypeScroll = (GDK_SCROLL == event->type) ? TRUE : FALSE; gint EventTypeScrollDirection = ((GdkEventScroll*)event)->direction; gint CursorX, _CursorX, CursorY; GdkModifierType state; gboolean bool_click_droit = (((GdkEventButton*)event)->button == 3); gboolean bool_click_centre = (((GdkEventButton*)event)->button == 2); gboolean bool_click_gauche = (((GdkEventButton*)event)->button == 1); // PRINT_FUNC_LF(); // IMPOSER UN REAFFICHAGE COMPLET // g_print( "event->type = %d\n", event->type ); if( 29 == event->type ) { gtk_widget_queue_draw( VarSplit.AdrWidgetSpectre ); // return FALSE; } if (VarSplit.NbrSelecteurs > 1 && GDK_BUTTON_PRESS == event->type && TRUE == bool_click_droit && VarSplit.NbrSelecteurs > 0) { popup_file_Split (); return FALSE; } Adjust.with = SplitSpectre_get_with(); Adjust.lower = VarSplit.AdjScroll->lower; Adjust.upper = Adjust.with; Adjust.step_increment = VarSplit.AdjScroll->step_increment; Adjust.page_size = VarSplit.AdrWidgetSpectre->allocation.width; Adjust.page_increment = VarSplit.AdrWidgetSpectre->allocation.width; Adjust.value = VarSplit.AdjScroll->value; while( Adjust.value + Adjust.page_size > Adjust.upper ) Adjust.value --; SetAjust (); // GET EMPLACEMENT CURSOR MOUSE gdk_window_get_pointer (((GdkEventButton*)event)->window, &CursorX, &CursorY, &state); _CursorX = CursorX + (gint)VarSplit.AdjScroll->value; // CHERCHE SI SELECTION if (FALSE == VarSplit.BoolEventButtonPressSpectre) { if (VarSplit.NbrSelecteurs > 0) { gint SelBegin = SplitSelector_get_pos_begin (VarSplit.SelecteurActif); gint SelEnd = SplitSelector_get_pos_end (VarSplit.SelecteurActif); if( TRUE == SplitSelector_cursor_in_box_play( _CursorX, CursorY )) { cursor_set_hand (); VarSplit.TypeCursorSpectre = _CURSOR_IS_HAND_; } else if( SelBegin -1 == _CursorX || SelBegin == _CursorX || SelBegin +1 == _CursorX ) { cursor_set_gauche (); VarSplit.TypeCursorSpectre = _CURSOR_IS_LEFT_; } else if( SelEnd -1 == _CursorX || SelEnd == _CursorX || SelEnd +1 == _CursorX ) { cursor_set_droit (); VarSplit.TypeCursorSpectre = _CURSOR_IS_RIGHT_; } else { cursor_set_old (); VarSplit.TypeCursorSpectre = _CURSOR_IS_NONE_; } } else { cursor_set_old (); VarSplit.TypeCursorSpectre = _CURSOR_IS_NONE_; } } // SCROLL if( TRUE == BoolEventTypeScroll && VarSplit.NbrSelecteurs > 0 ) { if( TRUE == keys.BoolGDK_Control_L_R ) { if (GDK_SCROLL_UP == EventTypeScrollDirection) { page_plus_scrolled( CursorX ); gtk_widget_queue_draw( VarSplit.AdrWidgetSpectre ); gtk_widget_queue_draw( VarSplit.AdrWidgetSpectreTop ); } else if (GDK_SCROLL_DOWN == EventTypeScrollDirection) { page_moins_scrolled( CursorX ); gtk_widget_queue_draw( VarSplit.AdrWidgetSpectre ); gtk_widget_queue_draw( VarSplit.AdrWidgetSpectreTop ); } } else { if (GDK_SCROLL_UP == EventTypeScrollDirection) { rigtht_plus_scrolled (); } else if (GDK_SCROLL_DOWN == EventTypeScrollDirection) { left_plus_scrolled (); } } } // else if (TRUE == bool_click_centre && GDK_BUTTON_PRESS == event->type && VarSplit.NbrSelecteurs > 0) { // CLICK CENTRE : GENERE UN NOUVEL INDEX // // @Dzef: // Pour ajouter manuellement un marqueur de début, j'ajoute, par défaut, au même endroit celui de sortie de la plage précédente. // En mode lecture un double clic sur le bandeau des index place un sélecteur à la position de la tête de lecture ? // En mode pause un double clic sur le bandeau des index place un sélecteur à l'endroit où on a cliqué ? // // 4 CAS D INSERTION SONT POSSISBLES. VOIR LA FONCTION : void SplitSelector_add (gint p_CursorX); // SplitSelector_add (CursorX + (gint)Adj->value); if (TRUE == VarSplit.BoolPlay) { SplitSelector_add( SplitSelector_get_pos_play ()); } else { SplitSelector_add( _CursorX ); } gtk_widget_queue_draw( VarSplit.AdrWidgetSpectre ); gtk_widget_queue_draw( VarSplit.AdrWidgetSpectreTop ); } // UN CLICK BOUTON SOURIS : PRESSED else if (TRUE == bool_click_gauche && event->type == GDK_BUTTON_PRESS) { if (VarSplit.TypeCursorSpectre == _CURSOR_IS_LEFT_ || VarSplit.TypeCursorSpectre == _CURSOR_IS_RIGHT_ || VarSplit.TypeCursorSpectre == _CURSOR_IS_HAND_) { if (VarSplit.TypeCursorSpectre == _CURSOR_IS_HAND_) { AlsaPlay_Pause (); } } // REPOSITIONNEMENT DU CURSEUR DE LECTURE PAR CLICK SUR LE SPECTRE else { SplitSelector_set_pos_play( _CursorX ); AlsaPlay_fseek( VarSplit.PercentActivePlay ); } VarSplit.BoolEventButtonPressSpectre = TRUE; // 1 000 000 = 1 seconde // g_usleep( 150000 ); } // GESTION CLICK BOUTON SOURIS : RELEASE else if (event->type == GDK_BUTTON_RELEASE) { if (TRUE == VarSplit.BoolEventButtonPressSpectre) { VarSplit.BoolEventButtonPressSpectre = FALSE; if (VarSplit.TypeCursorSpectre == _CURSOR_IS_HAND_) { AlsaPlay_fseek (VarSplit.PercentActivePlay); } else if (VarSplit.TypeCursorSpectre == _CURSOR_IS_LEFT_) { SplitSelector_set_pos_begin( _CursorX ); } else if (VarSplit.TypeCursorSpectre == _CURSOR_IS_RIGHT_) { SplitSelector_set_pos_end( _CursorX ); } gtk_widget_queue_draw( VarSplit.AdrWidgetSpectre ); gtk_widget_queue_draw( VarSplit.AdrWidgetSpectreTop ); cursor_set_old (); VarSplit.TypeCursorSpectre = _CURSOR_IS_NONE_; } split_set_name_file (); // g_usleep( 500000 ); } // MOVE CURSEUR if (TRUE == VarSplit.BoolEventButtonPressSpectre && TRUE == bool_click_gauche) { gint end = VARSPLIT_SPECTRE_WITH + (gint)VarSplit.AdjScroll->value; // SCROLL RIGHT if( (gint)VarSplit.AdjScroll->value >= 0 && _CursorX >= end ) { rigtht_plus_scrolled (); rigtht_plus_scrolled (); gtk_widget_queue_draw( VarSplit.AdrWidgetSpectre ); gtk_widget_queue_draw( VarSplit.AdrWidgetSpectreTop ); } // SCROLL LEFT else if( (gint)VarSplit.AdjScroll->value > 0 && _CursorX < (gint)VarSplit.AdjScroll->value ) { left_plus_scrolled (); left_plus_scrolled (); gtk_widget_queue_draw( VarSplit.AdrWidgetSpectre ); gtk_widget_queue_draw( VarSplit.AdrWidgetSpectreTop ); } if( VarSplit.TypeCursorSpectre == _CURSOR_IS_HAND_ ) { SplitSelector_set_pos_play( _CursorX ); gtk_widget_queue_draw( VarSplit.AdrWidgetSpectre ); gtk_widget_queue_draw( VarSplit.AdrWidgetSpectreTop ); } if( VarSplit.TypeCursorSpectre == _CURSOR_IS_LEFT_ ) { SplitSelector_set_pos_begin( _CursorX ); gtk_widget_queue_draw( VarSplit.AdrWidgetSpectre ); gtk_widget_queue_draw( VarSplit.AdrWidgetSpectreTop ); } else if( VarSplit.TypeCursorSpectre == _CURSOR_IS_RIGHT_ ) { SplitSelector_set_pos_end( _CursorX ); gtk_widget_queue_draw( VarSplit.AdrWidgetSpectre ); gtk_widget_queue_draw( VarSplit.AdrWidgetSpectreTop ); } split_set_time (); } split_set_flag_buttons (); if( 4 == event->type || 7 == event->type || 29 == event->type ) { // gtk_widget_queue_draw( VarSplit.AdrWidgetSpectre ); } gtk_widget_queue_draw( VarSplit.AdrWidgetSpectreChrono ); return FALSE; } // // gboolean on_eventbox_splitspectre_expose_event (GtkWidget *drawing, GdkEventExpose *e, gpointer data) { SplitSpectre_draw_lines(); return TRUE; } // SCROLLEDWINDOW // gboolean on_scrolledwindow_splitspectre_event (GtkWidget *widget, GdkEvent *event, gpointer user_data) { // PRINT_FUNC_LF(); Adjust.value = VarSplit.AdjScroll->value; if (GDK_EXPOSE == event->type) { gtk_widget_queue_draw( VarSplit.AdrWidgetSpectre ); gtk_widget_queue_draw( VarSplit.AdrWidgetSpectreTop ); gtk_widget_queue_draw( VarSplit.AdrWidgetSpectreChrono ); } return FALSE; } xcfa-4.3.6/src/tags_wma.c0000644000175000017500000000461312122563465012135 00000000000000 /* * file : tags_wma.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #include #include #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "tags.h" #include /* *--------------------------------------------------------------------------- * VARIABLES *--------------------------------------------------------------------------- */ /* *--------------------------------------------------------------------------- * FILE IS WMA ? *--------------------------------------------------------------------------- */ /* *--------------------------------------------------------------------------- * REMOVE HEADER *--------------------------------------------------------------------------- */ INFO_WMA *tagswma_remove_info (INFO_WMA *info) { if (info) { info->tags = (TAGS *)tags_remove (info->tags); g_free (info); info = NULL; } return ((INFO_WMA *)NULL); } /* *--------------------------------------------------------------------------- * GET HEADER *--------------------------------------------------------------------------- */ INFO_WMA *tagswma_get_info (DETAIL *detail) { INFO_WMA *ptrinfo = NULL; ptrinfo = (INFO_WMA *)g_malloc0 (sizeof (INFO_WMA)); if (ptrinfo == NULL) return (NULL); ptrinfo->tags = (TAGS *)tags_alloc (FALSE); tags_set (detail->namefile, ptrinfo->tags); return ((INFO_WMA *)ptrinfo); } xcfa-4.3.6/src/split_spectre.c0000644000175000017500000010701512122563465013213 00000000000000 /* * file : split_spectre.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "get_info.h" #include "tags.h" #include "split.h" #define SAMPLE_SHADES 3 extern VAR_SPLIT VarSplit; extern ADJUST Adjust; gint MarkerOld = -1; // // gint SplitSpectre_get_with (void) { return( VarSplit.AdrWidgetSpectre->allocation.width * Adjust.mul ); /* if( 1 == Adjust.mul ) return( VarSplit.AdrWidgetSpectre->allocation.width * Adjust.mul ); return( VarSplit.MaxPointsInTab * Adjust.mul ); */ } // AFFICHAGE IMAGE CHRONO // void SplitSpectre_draw_chrono ( GtkWidget *widget ) { GdkColor gdk_color; GdkColormap *colormap; GdkGC *gc; GdkPoint poly [ 10 ]; PangoContext *p_context = NULL; PangoLayout *layout = NULL; PangoFontDescription *fontdesc; gint layoutX = 0; gint layoutY = 0; gint CursorX, CursorY; GdkModifierType state; gint ChronoX; gint sec; // gdouble dsec; gdouble TimeSongSec; gdouble Percent; gint H, M, S; gchar *Str = NULL; // gint hundr; // gint C; /* cairo_t *cr; if (NULL == widget) return; cr = gdk_cairo_create( widget->window ); cairo_scale( cr, 1.0, 1.0 ); cairo_translate( cr, 0.0, 0.0 ); // COLOR: 0 .. 255 -> PRG: colorname gdouble red, blue, green; // CLEAR PREVIEW SURFACE // CRAYON_GRIS red = 99 blue = 99 green = 99 cairo_set_source_rgb( cr, red/255.0, green/255.0, blue/255.0 ); cairo_rectangle( cr, 0, 0, widget ->allocation.width, widget->allocation.height ); cairo_fill( cr ); // ECRITURE BARRE CHRONOLOGIQUE // CRAYON_BLANC red = 255 blue = 255 green = 255 cairo_set_source_rgb( cr, red/255.0, green/255.0, blue/255.0 ); #define SPLIT_TIME_CHRONO_ 80 for (ChronoX = 2; ChronoX +60 <= VARSPLIT_CHRONO_W +80; ChronoX += SPLIT_TIME_CHRONO_) { if (ChronoX > 2) { gdk_draw_line ( widget->window, gc, ChronoX -2, VARSPLIT_CHRONO_Y, ChronoX -2, VARSPLIT_CHRONO_Y + VARSPLIT_CHRONO_H ); } } cairo_paint( cr ); */ if (NULL == widget) return; colormap = gdk_drawable_get_colormap (widget->window); gc = gdk_gc_new (widget->window); // CLEAR poly [ 0 ] . x = VARSPLIT_CHRONO_X; poly [ 0 ] . y = VARSPLIT_CHRONO_Y; poly [ 1 ] . x = VARSPLIT_CHRONO_X + VARSPLIT_CHRONO_W +1; poly [ 1 ] . y = VARSPLIT_CHRONO_Y; poly [ 2 ] . x = VARSPLIT_CHRONO_X + VARSPLIT_CHRONO_W +1; poly [ 2 ] . y = VARSPLIT_CHRONO_Y + VARSPLIT_CHRONO_H +1; poly [ 3 ] . x = VARSPLIT_CHRONO_Y; poly [ 3 ] . y = VARSPLIT_CHRONO_Y + VARSPLIT_CHRONO_H +1; poly [ 4 ] . x = VARSPLIT_CHRONO_X; poly [ 4 ] . y = VARSPLIT_CHRONO_Y; CRAYON_GRIS gdk_draw_polygon ( widget->window, gc, TRUE, poly, 4 ); #define SPLIT_TIME_CHRONO_ 80 // ECRITURE BARRE CHRONOLOGIQUE CRAYON_BLANC for (ChronoX = 2; ChronoX +60 <= VARSPLIT_CHRONO_W +80; ChronoX += SPLIT_TIME_CHRONO_) { if (ChronoX > 2) { gdk_draw_line ( widget->window, gc, ChronoX -2, VARSPLIT_CHRONO_Y, ChronoX -2, VARSPLIT_CHRONO_Y + VARSPLIT_CHRONO_H ); } p_context = gtk_widget_get_pango_context (widget); layout = pango_layout_new (p_context); fontdesc = pango_font_description_from_string ("Times New Roman 8"); pango_layout_set_font_description (layout, fontdesc); layoutX = ChronoX; layoutY = VARSPLIT_CHRONO_Y + 3; CursorX = (gint)VarSplit.AdjScroll->value; CursorX += ChronoX; CursorX -= 2; if (NULL != VarSplit.Tags) { TimeSongSec = VarSplit.Tags->SecTime; } else { TimeSongSec = 300; } Percent = ((gdouble)CursorX / (gdouble)SplitSpectre_get_with() ) * 100.0; sec = (gint) (((gdouble)TimeSongSec * (gdouble)Percent) / 100.0); // dsec = ((gdouble)TimeSongSec *(gdouble)Percent) / 100.0; // hundr = ((gdouble)dsec - (gdouble)sec) * 100.0; H = (sec / 60) / 60; M = (sec / 60) % 60; S = sec % 60; // C = hundr; Str = g_strdup_printf ("%02d:%02d:%02d", H, M, S); pango_layout_set_markup (layout, Str, -1); gdk_draw_layout ( widget->window, gc, layoutX, layoutY, layout ); g_object_unref (layout); g_free (Str); Str = NULL; } gdk_window_get_pointer (widget->window, &CursorX, &CursorY, &state); if (CursorX < VARSPLIT_CHRONO_X) CursorX = VARSPLIT_CHRONO_X; else if (CursorX > (VARSPLIT_CHRONO_X + VARSPLIT_CHRONO_W) -1) CursorX = VARSPLIT_CHRONO_X + VARSPLIT_CHRONO_W; if (CursorY < VARSPLIT_CHRONO_Y) CursorY = VARSPLIT_CHRONO_Y; else if (CursorY > (VARSPLIT_CHRONO_Y + VARSPLIT_CHRONO_H) -1) CursorY = VARSPLIT_CHRONO_Y + VARSPLIT_CHRONO_H; // REPAIR VERTICAL PARTIE HAUTE if (VarSplit.NbrSelecteurs > 0) { CRAYON_ROUGE gdk_draw_line ( widget->window, gc, CursorX, VARSPLIT_CHRONO_Y, CursorX, VARSPLIT_CHRONO_Y + VARSPLIT_CHRONO_H ); } gdk_gc_destroy (gc); // POSITION DU CURSEUR DANS LA FORME D ONDE /* if (NULL != VarSplit.Tags) { TimeSongSec = VarSplit.Tags->SecTime; } else { TimeSongSec = 300; } CursorX += (gint)Adj->value; Percent = ((gdouble)CursorX / (gdouble)VarSplit.AdrWidgetSpectre->allocation.width) * 100.0; sec = (gint) (((gdouble)TimeSongSec * (gdouble)Percent) / 100.0); dsec = ((gdouble)TimeSongSec *(gdouble)Percent) / 100.0; hundr = ((gdouble)dsec - (gdouble)sec) * 100.0; H = (sec / 60) / 60; M = (sec / 60) % 60; S = sec % 60; C = hundr; gtk_label_set_use_markup (GTK_LABEL(GLADE_GET_OBJECT("label_temps_actuel_curseur_split")), TRUE); if (VarSplit.NbrSelecteurs > 0) { // Str = g_strdup_printf ("Codage en cours ...\n%02d:%02d:%02d.%02d", H, M, S, C); Str = g_strdup_printf ("Codage en cours ...\n%02d:%02d:%02d", H, M, S); } else { // Str = g_strdup ("Codage en cours ...\n00:00:00.00"); Str = g_strdup ("Codage en cours ...\n00:00:00"); } gtk_label_set_markup (GTK_LABEL(GLADE_GET_OBJECT("label_temps_actuel_curseur_split")), Str); // g_print("%s\n", Str); g_free (Str); Str = NULL; */ } // AFFICHAGE IMAGE TOP // void SplitSpectre_draw_top ( GtkWidget *widget ) { GdkColor gdk_color; GdkColormap *colormap; GdkGC *gc; GdkPoint poly [ 10 ]; if (NULL == widget) return; colormap = gdk_drawable_get_colormap (widget->window); gc = gdk_gc_new (widget->window); // CLEAR poly [ 0 ] . x = VARSPLIT_SPECTRE_TOP_X; poly [ 0 ] . y = VARSPLIT_SPECTRE_TOP_Y; poly [ 1 ] . x = VARSPLIT_SPECTRE_TOP_X + VARSPLIT_SPECTRE_TOP_W +1; poly [ 1 ] . y = VARSPLIT_SPECTRE_TOP_Y; poly [ 2 ] . x = VARSPLIT_SPECTRE_TOP_X + VARSPLIT_SPECTRE_TOP_W +1; poly [ 2 ] . y = VARSPLIT_SPECTRE_TOP_Y + VARSPLIT_SPECTRE_TOP_H +1; poly [ 3 ] . x = VARSPLIT_SPECTRE_TOP_Y; poly [ 3 ] . y = VARSPLIT_SPECTRE_TOP_Y + VARSPLIT_SPECTRE_TOP_H +1; poly [ 4 ] . x = VARSPLIT_SPECTRE_TOP_X; poly [ 4 ] . y = VARSPLIT_SPECTRE_TOP_Y; CRAYON_GRIS_CLAIR gdk_draw_polygon ( widget->window, gc, TRUE, poly, 4 ); if (VarSplit.NbrSelecteurs > 0) { gint begin = 0; gint Len; gint SelBegin; gint SelEnd; gint Cpt; gint i; PangoContext *p_context = NULL; PangoLayout *layout = NULL; PangoFontDescription *fontdesc; gint layoutX = 0; gint layoutY = 0; gchar *Str = NULL; // PRINT_FUNC_LF(); begin = (gint)VarSplit.AdjScroll->value; Len = SplitSpectre_get_with () + begin; // DRAW ALL SELECTEURS for (Cpt = 0; Cpt < MAX_SELECTEURS_SPLIT; Cpt ++) { // if (Cpt == VarSplit.SelecteurActif) continue; if (VarSplit.Selecteur [ Cpt ] . Nmr == -1) break; // FLECHE LIGNE DEBUT SelBegin = SplitSelector_get_pos_begin (Cpt); if (SelBegin >= begin && SelBegin <= Len) { poly [ 0 ] . x = SelBegin; CRAYON_NOIR for (i = 0; i < 9; i++) { gdk_draw_line (widget->window, gc, SelBegin - begin + i, (VARSPLIT_SPECTRE_TOP_Y + 1) + i, SelBegin - begin + i, (VARSPLIT_SPECTRE_TOP_Y + 16) - i ); } p_context = gtk_widget_get_pango_context (widget); layout = pango_layout_new (p_context); fontdesc = pango_font_description_from_string ("Times New Roman 9"); pango_layout_set_font_description (layout, fontdesc); Str = g_strdup_printf("%d", Cpt +1); layoutX = poly [ 0 ] . x + 10; layoutY = VARSPLIT_SPECTRE_TOP_Y +2; pango_layout_set_markup (layout, Str, -1); CRAYON_NOIR gdk_draw_layout ( widget->window, gc, layoutX - begin, layoutY, layout ); g_free (Str); Str = NULL; g_object_unref (layout); } // FLECHE LIGNE FIN SelEnd = SplitSelector_get_pos_end (Cpt); if (SelEnd > SelBegin && SelEnd > begin && SelEnd < Len) { poly [ 0 ] . x = SelEnd; CRAYON_NOIR for (i = 0; i < 9; i++) { gdk_draw_line (widget->window, gc, SelEnd - begin - i, (VARSPLIT_SPECTRE_TOP_Y + 1) + i, SelEnd - begin - i, (VARSPLIT_SPECTRE_TOP_Y + 16) - i ); } p_context = gtk_widget_get_pango_context (widget); layout = pango_layout_new (p_context); fontdesc = pango_font_description_from_string ("Times New Roman 9"); pango_layout_set_font_description (layout, fontdesc); Str = g_strdup_printf("%d", Cpt +1); if (Cpt +1 < 10) layoutX = poly [ 0 ] . x - 16; else layoutX = poly [ 0 ] . x - 21; layoutY = VARSPLIT_SPECTRE_TOP_Y +2; pango_layout_set_markup (layout, Str, -1); CRAYON_NOIR gdk_draw_layout ( widget->window, gc, layoutX - begin, layoutY, layout ); g_free (Str); Str = NULL; g_object_unref (layout); } } // DRAW SELECTEUR ACTIF // FLECHE LIGNE DEBUT SelBegin = SplitSelector_get_pos_begin (VarSplit.SelecteurActif); if (SelBegin >= begin && SelBegin < Len) { poly [ 0 ] . x = SelBegin; // CRAYON_ORANGE for (i = 0; i < 9; i++) { gdk_draw_line (widget->window, gc, SelBegin - begin + i, (VARSPLIT_SPECTRE_TOP_Y + 1) + i, SelBegin - begin + i, (VARSPLIT_SPECTRE_TOP_Y + 16) - i ); } p_context = gtk_widget_get_pango_context (widget); layout = pango_layout_new (p_context); fontdesc = pango_font_description_from_string ("Times New Roman 9"); pango_layout_set_font_description (layout, fontdesc); Str = g_strdup_printf("%d", VarSplit.SelecteurActif +1); layoutX = poly [ 0 ] . x + 10; layoutY = VARSPLIT_SPECTRE_TOP_Y +2; pango_layout_set_markup (layout, Str, -1); CRAYON_BLANC gdk_draw_layout ( widget->window, gc, layoutX - begin, layoutY, layout ); g_free (Str); Str = NULL; g_object_unref (layout); } // FLECHE LIGNE FIN SelEnd = SplitSelector_get_pos_end (VarSplit.SelecteurActif); if (SelEnd >= begin && SelEnd < Len) { if (VarSplit.SelecteurActif == VarSplit.NbrSelecteurs -1) SelEnd --; poly [ 0 ] . x = SelEnd; // CRAYON_VERT for (i = 0; i < 9; i++) { gdk_draw_line (widget->window, gc, SelEnd - begin - i, (VARSPLIT_SPECTRE_TOP_Y + 1) + i, SelEnd - begin - i, (VARSPLIT_SPECTRE_TOP_Y + 16) - i ); } p_context = gtk_widget_get_pango_context (widget); layout = pango_layout_new (p_context); fontdesc = pango_font_description_from_string ("Times New Roman 9"); pango_layout_set_font_description (layout, fontdesc); Str = g_strdup_printf("%d", VarSplit.SelecteurActif +1); if (VarSplit.SelecteurActif +1 < 10) layoutX = poly [ 0 ] . x - 16; else layoutX = poly [ 0 ] . x - 21; layoutY = VARSPLIT_SPECTRE_TOP_Y +2; pango_layout_set_markup (layout, Str, -1); CRAYON_BLANC gdk_draw_layout ( widget->window, gc, layoutX - begin, layoutY, layout ); g_free (Str); Str = NULL; g_object_unref (layout); } } gdk_gc_destroy (gc); } // // void SplitSpectre_remove_draw (void) { if (NULL != VarSplit.MaxScale_0) { g_free (VarSplit.MaxScale_0); VarSplit.MaxScale_0 = NULL; } if (NULL != VarSplit.MinScale_0) { g_free (VarSplit.MinScale_0); VarSplit.MinScale_0 = NULL; } if (NULL != VarSplit.MaxScale_1) { g_free (VarSplit.MaxScale_1); VarSplit.MaxScale_1 = NULL; } if (NULL != VarSplit.MinScale_1) { g_free (VarSplit.MinScale_1); VarSplit.MinScale_1 = NULL; } if (NULL != VarSplit.MaxScale_2) { g_free (VarSplit.MaxScale_2); VarSplit.MaxScale_2 = NULL; } if (NULL != VarSplit.MinScale_2) { g_free (VarSplit.MinScale_2); VarSplit.MinScale_2 = NULL; } } // // void SplitSpectre_remove (void) { if (NULL != VarSplit.Tab) { g_free (VarSplit.Tab); VarSplit.Tab = NULL; } SplitSpectre_remove_draw (); VarSplit.Tags = tagswav_remove_info (VarSplit.Tags); } // // PERCENT = ( VALUE_X / LONGUEUR_TOTALE ) * 100.0 // VALUE_X = ( LONGUEUR_TOTALE * PERCENT ) / 100.0 // // xavier a écrit : // Le marqueur de début doit coller le début de la forme d'onde. Celui de fin à la fin de la forme d'onde // // From @Dzef: // Sinon, Claude, pour le soucis de not' // Christophe-coupeur-d'album-en-rondelles-sans-cue, la parade existe en partie // dans le cas où les plages sont séparées par des "blancs" (ce qui n'est pas // le cas des albums "live" par exemple) : il suffit de détecter le niveau // audio et en dessous d'un seuil fixé (typiquement < ~-50 dB), hop, 1 plage ! // C'est peut être une option (un bouton) à cogiter pour une future mouture, // non ? M'est avis qu'not' Christophe serait pas contre... // // PS: // Et chose fut faite: MERCI Xavier :-) // void SplitSpectre_search_blank_pass (void) { gint IndicePoints = -1; gint PointBegin = -1; gint PointEnd = -1; gint Indice; gdouble PercentBegin; gdouble PercentEnd; gint ValueBegin; gint ValueEnd; gint MaxPoints = VarSplit.MaxPointsInTab; gboolean BoolErr = FALSE; if (TRUE == VarSplit.BoolBlankWithCue) { PRINT("TRUE == VarSplit.BoolBlankWithCue"); return; } PRINT_FUNC_LF(); Indice = 0; do { if (VarSplit.Tab [ Indice ].Min == 0 && VarSplit.Tab [ Indice ].Max == 0) { if (-1 == PointBegin) { while (Indice < MaxPoints && VarSplit.Tab [ Indice ].Min == 0 && VarSplit.Tab [ Indice ].Max == 0) Indice ++; PointBegin = Indice; while (Indice < MaxPoints && (VarSplit.Tab [ Indice ].Min != 0 || VarSplit.Tab [ Indice ].Max != 0)) Indice ++; PointEnd = Indice; if (PointBegin > -1 && PointEnd - PointBegin > 13) { IndicePoints ++; if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("PointBegin = %6d PointEnd = %6d Diff = %6d\n", PointBegin, PointEnd, PointEnd - PointBegin); PercentBegin = ((gdouble)PointBegin / (gdouble)MaxPoints) * 100.0; ValueBegin = ((gdouble)SplitSpectre_get_with() * (gdouble)PercentBegin) / 100.0; PercentEnd = ((gdouble)PointEnd / (gdouble)MaxPoints) * 100.0; ValueEnd = ((gdouble)SplitSpectre_get_with() * (gdouble)PercentEnd) / 100.0; VarSplit.Selecteur [ IndicePoints ] . Nmr = IndicePoints; VarSplit.Selecteur [ IndicePoints ] . BeginPaint = ValueBegin; VarSplit.Selecteur [ IndicePoints ] . PercentBegin = PercentBegin; VarSplit.Selecteur [ IndicePoints ] . EndPaint = ValueEnd; VarSplit.Selecteur [ IndicePoints ] . PercentEnd = PercentEnd; } PointBegin = -1; PointEnd = -1; } } Indice ++; } while (Indice < MaxPoints); if (-1 == IndicePoints) { IndicePoints = 0; VarSplit.Selecteur [ IndicePoints ] . Nmr = IndicePoints; PercentEnd = ((gdouble)(MaxPoints - 1) / (gdouble)MaxPoints) * 100.0; ValueEnd = ((gdouble)SplitSpectre_get_with() * (gdouble)PercentEnd) / 100.0; VarSplit.Selecteur [ 0 ] . PercentEnd = PercentEnd; VarSplit.Selecteur [ 0 ] . EndPaint = ValueEnd; } if( TRUE == OptionsCommandLine.BoolVerboseMode ) { g_print ("\n"); g_print ("IndicePoints = [ 0 .. %d ]\n", IndicePoints); g_print ("\n"); } // DEBUT Indice = 0; while (Indice < MaxPoints && VarSplit.Tab [ Indice ].Min == 0 && VarSplit.Tab [ Indice ].Max == 0) Indice ++; PercentBegin = ((gdouble)Indice / (gdouble)MaxPoints) * 100.0; ValueBegin = ((gdouble)SplitSpectre_get_with() * (gdouble)PercentBegin) / 100.0; VarSplit.Selecteur [ 0 ] . PercentBegin = PercentBegin; VarSplit.Selecteur [ 0 ] . BeginPaint = ValueBegin; // VERIFIE QUE LES POINTS NE SE CHEVAUCHENT PAS BoolErr = FALSE; for (IndicePoints = 0; VarSplit.Selecteur [ IndicePoints ] . Nmr != -1; IndicePoints ++) { if (IndicePoints > 0) { // if ((gint)VarSplit.Selecteur [ IndicePoints -1 ] . End >= (gint)VarSplit.Selecteur [ IndicePoints ] . Begin) { // g_print ("[ %02d ] ERREUR entre End %d et Begin %d --> RECTIFICATION\n", IndicePoints, IndicePoints -1, IndicePoints); // BoolErr = TRUE; // break; // } if ((gint)VarSplit.Selecteur [ IndicePoints ] . BeginPaint >= (gint)VarSplit.Selecteur [ IndicePoints ] . EndPaint) { if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("[ %02d ]ERREUR entre Begin %d et End %d --> RECTIFICATION\n", IndicePoints, IndicePoints, IndicePoints); BoolErr = TRUE; break; } } } // VERIFICATION DE LA COHERENCE DU TEMPS ENTRE DEUX POINTS BEGIN et END if (FALSE == BoolErr) { for (IndicePoints = 0; VarSplit.Selecteur [ IndicePoints ] . Nmr != -1; IndicePoints ++) { if (SplitSelector_get_diff_sec (VarSplit.Selecteur [ IndicePoints ] . PercentBegin, VarSplit.Selecteur [ IndicePoints ] . PercentEnd) <= 5) { if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("ERREUR Temps < a 5 secondes entre BEGIN %d et END %d --> RECTIFICATION\n", IndicePoints, IndicePoints); BoolErr = TRUE; break; } } } if (TRUE == BoolErr) { for (IndicePoints = 1; IndicePoints < MAX_SELECTEURS_SPLIT; IndicePoints ++) { VarSplit.Selecteur [ IndicePoints ] . Nmr = -1; VarSplit.Selecteur [ IndicePoints ] . BeginPaint = -1; VarSplit.Selecteur [ IndicePoints ] . EndPaint = -1; VarSplit.Selecteur [ IndicePoints ] . PercentBegin = VarSplit.Selecteur [ IndicePoints ] . PercentEnd = 0.0; } IndicePoints = 0; VarSplit.Selecteur [ IndicePoints ] . Nmr = IndicePoints; PercentEnd = ((gdouble)(MaxPoints - 1) / (gdouble)MaxPoints) * 100.0; ValueEnd = ((gdouble)SplitSpectre_get_with() * (gdouble)PercentEnd) / 100.0; VarSplit.Selecteur [ 0 ] . PercentEnd = PercentEnd; VarSplit.Selecteur [ 0 ] . EndPaint = ValueEnd; } // PRINT CONSOLE if( TRUE == OptionsCommandLine.BoolVerboseMode ) { for (IndicePoints = 0; VarSplit.Selecteur [ IndicePoints ] . Nmr != -1; IndicePoints ++) { g_print ("[ %2d ] BEGIN = %5d END = %5d PERCENTBEGIN = %f PERCENTEND = %f\n", VarSplit.Selecteur [ IndicePoints ] . Nmr, (gint)VarSplit.Selecteur [ IndicePoints ] . BeginPaint, (gint)VarSplit.Selecteur [ IndicePoints ] . EndPaint, VarSplit.Selecteur [ IndicePoints ] . PercentBegin, VarSplit.Selecteur [ IndicePoints ] . PercentEnd ); } g_print ("\n"); } } // LECTURE FICHIER // gboolean SplitSpectre_read_file_spectre (gchar *PathNameFile) { FILE *pFile = NULL; gboolean found = FALSE; gint Ret; gint Indice; gint ChannelNext; gint min, max; gint tmp = 0; gint points; unsigned char devbuf[ BLOCK_SIZE +10 ]; WAVE WaveHeader; TYPE_FILE_IS TypeFileIs = FILE_IS_NONE; PRINT_FUNC_LF(); if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print("\t%s\n\n", PathNameFile); VarSplit.MaxPointsInTab = 0; VarSplit.TypeFileIs = FILE_IS_NONE; if (FILE_IS_WAV != (TypeFileIs = GetInfo_file_is (PathNameFile))) { // SplitSpectre_remove_draw (); // DEL ALLOC MEMORY if (NULL != VarSplit.Tab) { g_free (VarSplit.Tab); VarSplit.Tab = NULL; return (TRUE); } } if (FALSE == tagswav_read_file (PathNameFile, &WaveHeader)) { tagswav_close_file (&WaveHeader); if( TRUE == OptionsCommandLine.BoolVerboseMode ) printf ("\nImpossible d'ouvrir le fichier : \"%s\"\n\n", PathNameFile); return FALSE; } pFile = WaveHeader.file; WaveHeader.file = NULL; if (pFile == NULL) { PRINT_FUNC_LF(); if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("\nImpossible d'ouvrir le fichier : \"%s\"\n\n", PathNameFile); return FALSE; } VarSplit.nBitsPerSample = WaveHeader.FMT.BitsPerSample; switch (WaveHeader.FMT.BitsPerSample) { case 8 : case 16 : case 24 : case 32 : break; default : { fclose (pFile); PRINT_FUNC_LF(); if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print("Seuls ces formats de bitrates : 8 16 24 et 32 sont pris en charge pour la lecture\n" "Format de bitrate [ %d ] non prit en charge\n", WaveHeader.FMT.BitsPerSample); // DEL ALLOC MEMORY if (NULL != VarSplit.Tab) { g_free (VarSplit.Tab); VarSplit.Tab = NULL; } return FALSE; } } VarSplit.nTotalChunckSize = WaveHeader.DATA.Subchunk2Size; found = TRUE; // DEL ALLOC MEMORY if (NULL != VarSplit.Tab) { g_free (VarSplit.Tab); VarSplit.Tab = NULL; } if (found == TRUE) { VarSplit.TotalAllocation = sizeof(POINTS_FILE) * ((WaveHeader.DATA.Subchunk2Size / BLOCK_SIZE) +10); VarSplit.Tab = (POINTS_FILE *)g_malloc0 (VarSplit.TotalAllocation + 10); points = 0; if (WaveHeader.FMT.BitsPerSample <= 0) WaveHeader.FMT.BitsPerSample = 8; // TRAITEMENT UNIQUES: 8, 16, 24 et 32 bits switch (WaveHeader.FMT.BitsPerSample) { case 8 : case 16 : case 24 : case 32 : // PRE - CALCUL ChannelNext = (WaveHeader.FMT.NumChannels -1) * (WaveHeader.FMT.BitsPerSample / 8); // LECTURE DES DATAS // #define BLOCK_SIZE 2352 // while ((Ret = fread (devbuf, 1, BLOCK_SIZE, pFile)) > 0) { min = max = 0; for (Indice = 0; Indice < Ret; Indice++) { if (WaveHeader.FMT.BitsPerSample == 8) { tmp = devbuf [ Indice ]; tmp -= 128; } else if (WaveHeader.FMT.BitsPerSample == 16) { tmp = (gchar)devbuf [ Indice +1 ] << 8 | (gchar)devbuf [ Indice ]; Indice ++; } else if (WaveHeader.FMT.BitsPerSample == 24) { tmp = (gchar)devbuf [ Indice +0 ] >> 16; tmp += (gchar)devbuf [ Indice +1 ] >> 8; tmp += (gchar)devbuf [ Indice +2 ]; Indice += 2; } else if (WaveHeader.FMT.BitsPerSample == 32) { tmp = (gchar)devbuf [ Indice +0 ] >> 24; tmp += (gchar)devbuf [ Indice +1 ] >> 16; tmp += (gchar)devbuf [ Indice +2 ] >> 8; tmp += (gchar)devbuf [ Indice +3 ]; Indice += 2; } if (tmp > max) { max = tmp; } else if (tmp <= min) { min = tmp; } // skip over any extra channels Indice += ChannelNext; } VarSplit.Tab [ points ].Min = min; VarSplit.Tab [ points ].Max = max; points ++; } break; default : PRINT("Ne doit pas arriver ici !!!!"); if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("Ce format n'est pas pris en charge : %d\n", WaveHeader.FMT.BitsPerSample); fclose (pFile); return FALSE; } } fclose (pFile); VarSplit.MaxPointsInTab = points; // ALL DATAS // points * BLOCK_SIZE /*g_print( "points(%d) * BLOCK_SIZE(%d) = \n\t%d octets\n\t%d Ko\n\t%d Mo\n\n", points, BLOCK_SIZE, points * BLOCK_SIZE, (points * BLOCK_SIZE) / 1024, ((points * BLOCK_SIZE) / 1024) / 1024 );*/ // TODO: MARQUAGE DES PASSAGES BLANC SOIT < ~-50 dB for (Indice = 0; Indice < points; Indice ++) { if (VarSplit.Tab [ Indice ].Min >= -1. && VarSplit.Tab [ Indice ].Max <= 1.) { VarSplit.Tab [ Indice ].Min = VarSplit.Tab [ Indice ].Max = 0.0; } } VarSplit.Tags = tagswav_remove_info (VarSplit.Tags); VarSplit.Tags = (INFO_WAV *)tagswav_get_info (PathNameFile); // RECHEFCHE DES PLAGES SELON L IDEE DE @Dzef ;-) SplitSpectre_search_blank_pass (); VarSplit.BoolReadFileSpectre = TRUE; VarSplit.TypeFileIs = TypeFileIs; return (TRUE); } // TODO // AFFICHAGE DU SPECTRE // RAPIDITE DE REAFFICHAGE DE L'AMPLITUDE ACCRUE AVEC LES FONCTIONS gdk_draw_ (...) // 13 juillet 2009 // 12 mars 2010 // void SplitSpectre_draw_lines (void) { GdkColor gdk_color; GdkColormap *colormap; GdkGC *gc; gint y_min; gint y_max; gint xaxis; gint scale; gint points = 0; gint k; gdouble Percent; gint AdjValue; gint begin = 0; gint end = 0; gint save_begin = 0; gboolean BoolAllocateMemory = FALSE; gint SelBegin = 0; gint SelEnd = 0; gint Len; GdkPoint poly [ 10 ]; gdouble SpectreGetWith; // static gint Nbr = 0; // PRINT_FUNC_LF(); // WAV if bitrate == 8 16 24 32 if (VarSplit.Tab != NULL && VarSplit.TypeFileIs == FILE_IS_WAV && VarSplit.MaxPointsInTab > 0) { // PRINT_FUNC_LF(); // g_print( "\tNbr = %d\n", Nbr++ ); // OPEN DRAW colormap = gdk_window_get_colormap (VarSplit.AdrWidgetSpectre->window); gc = gdk_gc_new (VarSplit.AdrWidgetSpectre->window); // // NE PAS REALLOUER A CHAQUE FOIS !!! // if (NULL == VarSplit.MaxScale_0) { BoolAllocateMemory = TRUE; } if (VarSplit.TotalAllocationTabScreen < (sizeof(GdkPoint) * (VARSPLIT_SPECTRE_WITH + 20))) { BoolAllocateMemory = TRUE; } if (TRUE == BoolAllocateMemory) { SplitSpectre_remove_draw (); VarSplit.TotalAllocationTabScreen = sizeof(GdkPoint) * (VARSPLIT_SPECTRE_WITH + 20); VarSplit.MaxScale_0 = (GdkPoint *)g_malloc0 (VarSplit.TotalAllocationTabScreen); VarSplit.MinScale_0 = (GdkPoint *)g_malloc0 (VarSplit.TotalAllocationTabScreen); VarSplit.MaxScale_1 = (GdkPoint *)g_malloc0 (VarSplit.TotalAllocationTabScreen); VarSplit.MinScale_1 = (GdkPoint *)g_malloc0 (VarSplit.TotalAllocationTabScreen); VarSplit.MaxScale_2 = (GdkPoint *)g_malloc0 (VarSplit.TotalAllocationTabScreen); VarSplit.MinScale_2 = (GdkPoint *)g_malloc0 (VarSplit.TotalAllocationTabScreen); } // LA LIGNE MEDIANE DU GRAPHE // xaxis = HAUTEUR_WIDGET / 2; xaxis = (VARSPLIT_SPECTRE_H) / 2; if (xaxis != 0) { if (VarSplit.nBitsPerSample == 16) scale = SHRT_MAX / (xaxis -1); else scale = UCHAR_MAX / (xaxis -1); if (scale == 0) { scale = 1; } } else { scale = 1; } // begin = save_begin = AdjValue = (gint)VarSplit.AdjScroll->value; Len = end = begin + VARSPLIT_SPECTRE_WITH; // PRE - CALCUL // 4.0.8~beta1 // Fri, 22 Apr 2011 15:03:02 +0200 SpectreGetWith = SplitSpectre_get_with(); // Thu, 23 Sep 2010 21:32:41 +0200 for( points = 0; begin < end; begin ++, points ++ ) { Percent = ( (gdouble)begin / SpectreGetWith ) * 100.; k = ( Percent * (gdouble)VarSplit.MaxPointsInTab ) / 100.; y_max = xaxis - VarSplit.Tab[ k ].Max / scale; y_min = xaxis + fabs( VarSplit.Tab[ k ].Min ) / scale; // shade = 0; VarSplit.MaxScale_0 [ points ] . x = begin; VarSplit.MaxScale_0 [ points ] . y = y_max - (y_max - xaxis) * 0 / SAMPLE_SHADES; VarSplit.MinScale_0 [ points ] . x = begin; VarSplit.MinScale_0 [ points ] . y = y_min + (xaxis - y_min) * 0 / SAMPLE_SHADES; // shade = 1; VarSplit.MaxScale_1 [ points ] . x = begin; VarSplit.MaxScale_1 [ points ] . y = y_max - (y_max - xaxis) * 1 / SAMPLE_SHADES; VarSplit.MinScale_1 [ points ] . x = begin; VarSplit.MinScale_1 [ points ] . y = y_min + (xaxis - y_min) * 1 / SAMPLE_SHADES; // shade = 2; VarSplit.MaxScale_2 [ points ] . x = begin; VarSplit.MaxScale_2 [ points ] . y = y_max - (y_max - xaxis) * 2 / SAMPLE_SHADES; VarSplit.MinScale_2 [ points ] . x = begin; VarSplit.MinScale_2 [ points ] . y = y_min + (xaxis - y_min) * 2 / SAMPLE_SHADES; // RECTIF HAUT if (VarSplit.MaxScale_0 [ points ] . y < VARSPLIT_SPECTRE_Y) { VarSplit.MaxScale_0 [ points ] . y = VARSPLIT_SPECTRE_Y; } // RECTIF BAS if (VarSplit.MinScale_0 [ points ] . y > VARSPLIT_SPECTRE_H) { VarSplit.MinScale_0 [ points ] . y = VARSPLIT_SPECTRE_H -1; } // RECTIF HAUT if (VarSplit.MaxScale_1 [ points ] . y < VARSPLIT_SPECTRE_Y) { VarSplit.MaxScale_1 [ points ] . y = VARSPLIT_SPECTRE_Y; } // RECTIF BAS if (VarSplit.MinScale_1 [ points ] . y > VARSPLIT_SPECTRE_H) { VarSplit.MinScale_1 [ points ] . y = VARSPLIT_SPECTRE_H -1; } // RECTIF HAUT if (VarSplit.MaxScale_2 [ points ] . y < VARSPLIT_SPECTRE_Y) { VarSplit.MaxScale_2 [ points ] . y = VARSPLIT_SPECTRE_Y; } // RECTIF BAS if (VarSplit.MinScale_2 [ points ] . y > VARSPLIT_SPECTRE_H) { VarSplit.MinScale_2 [ points ] . y = VARSPLIT_SPECTRE_H -1; } } // (CLEAR) NETTOYER LA SURFACE poly [ 0 ] . x = VARSPLIT_SPECTRE_X; poly [ 0 ] . y = VARSPLIT_SPECTRE_Y; poly [ 1 ] . x = VARSPLIT_SPECTRE_X + VARSPLIT_SPECTRE_W +1; poly [ 1 ] . y = VARSPLIT_SPECTRE_Y; poly [ 2 ] . x = VARSPLIT_SPECTRE_X + VARSPLIT_SPECTRE_W +1; poly [ 2 ] . y = VARSPLIT_SPECTRE_Y + VARSPLIT_SPECTRE_H +1; poly [ 3 ] . x = VARSPLIT_SPECTRE_X; poly [ 3 ] . y = VARSPLIT_SPECTRE_Y + VARSPLIT_SPECTRE_H +1; poly [ 4 ] . x = VARSPLIT_SPECTRE_X; poly [ 4 ] . y = VARSPLIT_SPECTRE_Y; CRAYON_BLANC gdk_draw_polygon ( VarSplit.AdrWidgetSpectre->window, gc, TRUE, poly, 4 ); SelBegin = SplitSelector_get_pos_begin (VarSplit.SelecteurActif); SelEnd = SplitSelector_get_pos_end (VarSplit.SelecteurActif); begin = save_begin; for (points = 0; begin < end; begin ++, points ++) { // MaxScale_0 if (begin >= SelBegin && begin <= SelEnd) { CRAYON_BLEU // LA SELECTION } else { CRAYON_NOIR // LA NON SELECTION } gdk_draw_line (VarSplit.AdrWidgetSpectre->window, gc, points, VarSplit.MaxScale_0 [ points ] . y, points, VarSplit.MinScale_0 [ points ] . y ); // MaxScale_1 if (begin >= SelBegin && begin <= SelEnd) { CRAYON_BLEU_CLAIR // LA SELECTION } else { CRAYON_GRIS // LA NON SELECTION } gdk_draw_line (VarSplit.AdrWidgetSpectre->window, gc, points, VarSplit.MaxScale_1 [ points ] . y, points, VarSplit.MinScale_1 [ points ] . y ); // MaxScale_2 if (begin >= SelBegin && begin <= SelEnd) { CRAYON_BLEU_CLAIR_PLUS // LA SELECTION } else { CRAYON_GRIS_CLAIR // LA NON SELECTION } gdk_draw_line (VarSplit.AdrWidgetSpectre->window, gc, points, VarSplit.MaxScale_2 [ points ] . y, points, VarSplit.MinScale_2 [ points ] . y ); } // AFFICHE CURSEUR DEBUT if (SelBegin >= save_begin && SelBegin < Len) { CRAYON_ORANGE gdk_draw_line ( VarSplit.AdrWidgetSpectre->window, gc, SelBegin -save_begin, VARSPLIT_SPECTRE_Y, SelBegin - save_begin, VARSPLIT_SPECTRE_Y + VARSPLIT_SPECTRE_H ); } // AFFICHE CURSEUR FIN if (VarSplit.SelecteurActif == VarSplit.NbrSelecteurs -1) SelEnd --; if (SelEnd >= save_begin && SelEnd < Len) { CRAYON_VERT gdk_draw_line ( VarSplit.AdrWidgetSpectre->window, gc, SelEnd - save_begin, VARSPLIT_SPECTRE_Y, SelEnd - save_begin, VARSPLIT_SPECTRE_Y + VARSPLIT_SPECTRE_H ); } // AFFICHE LE CURSEUR AUDIO if (VarSplit.PercentActivePlay >= 0.0) { MarkerOld = (gint)(((gdouble)SplitSpectre_get_with() * VarSplit.PercentActivePlay) / 100.0); if (MarkerOld >= save_begin && MarkerOld < Len) { CRAYON_ROUGE gdk_draw_line ( VarSplit.AdrWidgetSpectre->window, gc, MarkerOld - save_begin, VARSPLIT_SPECTRE_Y, MarkerOld - save_begin, VARSPLIT_SPECTRE_Y + VARSPLIT_SPECTRE_H -2 ); gdk_draw_rectangle ( VarSplit.AdrWidgetSpectre->window, gc, TRUE, MarkerOld - save_begin -6, VARSPLIT_SPECTRE_Y + VARSPLIT_SPECTRE_H -12, 14, 12 ); } } // CLOSE DRAW gdk_gc_destroy (gc); } } // AFFICHAGE DU CURSEUR EN MODE PLAY: GAIN DE TEMPS POUR LE CPU // void SplitSpectre_draw_lines_play( void ) { GdkColor gdk_color; GdkColormap *colormap; GdkGC *gc; gint points = 0; gint AdjValue; gint begin = 0; gint end = 0; gint save_begin = 0; gint SelBegin = 0; gint SelEnd = 0; gint Len; gint Marker; // WAV if bitrate == 8 16 24 32 if (VarSplit.Tab != NULL && VarSplit.TypeFileIs == FILE_IS_WAV && VarSplit.MaxPointsInTab > 0) { // PRINT_FUNC_LF(); // OPEN DRAW colormap = gdk_window_get_colormap (VarSplit.AdrWidgetSpectre->window); gc = gdk_gc_new (VarSplit.AdrWidgetSpectre->window); // begin = save_begin = AdjValue = (gint)VarSplit.AdjScroll->value; Len = end = begin + VARSPLIT_SPECTRE_WITH; Marker = (gint)(((gdouble)SplitSpectre_get_with() * VarSplit.PercentActivePlay) / 100.0); SelBegin = SplitSelector_get_pos_begin (VarSplit.SelecteurActif); SelEnd = SplitSelector_get_pos_end (VarSplit.SelecteurActif); begin = save_begin; if( -1 == MarkerOld ) MarkerOld = ( Marker - 20 ); else MarkerOld -= 20; for (points = 0; begin < end; begin ++, points ++) { if( begin < MarkerOld || begin > Marker +20 ) { continue; } CRAYON_BLANC gdk_draw_line (VarSplit.AdrWidgetSpectre->window, gc, points, VARSPLIT_SPECTRE_Y, points, VARSPLIT_SPECTRE_Y + VARSPLIT_SPECTRE_H +1 ); // MaxScale_0 if (begin >= SelBegin && begin <= SelEnd) { CRAYON_BLEU // LA SELECTION } else { CRAYON_NOIR // LA NON SELECTION } gdk_draw_line (VarSplit.AdrWidgetSpectre->window, gc, points, VarSplit.MaxScale_0 [ points ] . y, points, VarSplit.MinScale_0 [ points ] . y ); // MaxScale_1 if (begin >= SelBegin && begin <= SelEnd) { CRAYON_BLEU_CLAIR // LA SELECTION } else { CRAYON_GRIS // LA NON SELECTION } gdk_draw_line (VarSplit.AdrWidgetSpectre->window, gc, points, VarSplit.MaxScale_1 [ points ] . y, points, VarSplit.MinScale_1 [ points ] . y ); // MaxScale_2 if (begin >= SelBegin && begin <= SelEnd) { CRAYON_BLEU_CLAIR_PLUS // LA SELECTION } else { CRAYON_GRIS_CLAIR // LA NON SELECTION } gdk_draw_line (VarSplit.AdrWidgetSpectre->window, gc, points, VarSplit.MaxScale_2 [ points ] . y, points, VarSplit.MinScale_2 [ points ] . y ); } // AFFICHE CURSEUR DEBUT if (SelBegin >= save_begin && SelBegin < Len) { CRAYON_ORANGE gdk_draw_line ( VarSplit.AdrWidgetSpectre->window, gc, SelBegin -save_begin, VARSPLIT_SPECTRE_Y, SelBegin - save_begin, VARSPLIT_SPECTRE_Y + VARSPLIT_SPECTRE_H ); } // AFFICHE CURSEUR FIN if (VarSplit.SelecteurActif == VarSplit.NbrSelecteurs -1) SelEnd --; if (SelEnd >= save_begin && SelEnd < Len) { CRAYON_VERT gdk_draw_line ( VarSplit.AdrWidgetSpectre->window, gc, SelEnd - save_begin, VARSPLIT_SPECTRE_Y, SelEnd - save_begin, VARSPLIT_SPECTRE_Y + VARSPLIT_SPECTRE_H ); } // AFFICHE LE CURSEUR AUDIO if (VarSplit.PercentActivePlay >= 0.0) { if (Marker >= save_begin && Marker < Len) { CRAYON_ROUGE gdk_draw_line ( VarSplit.AdrWidgetSpectre->window, gc, Marker - save_begin, VARSPLIT_SPECTRE_Y, Marker - save_begin, VARSPLIT_SPECTRE_Y + VARSPLIT_SPECTRE_H -2 ); gdk_draw_rectangle ( VarSplit.AdrWidgetSpectre->window, gc, TRUE, Marker - save_begin -6, VARSPLIT_SPECTRE_Y + VARSPLIT_SPECTRE_H -12, 14, 12 ); } } // CLOSE DRAW gdk_gc_destroy (gc); MarkerOld = Marker; } } xcfa-4.3.6/src/Makefile.am0000644000175000017500000000431512110457065012215 00000000000000# # src/Makefile.am # AUTOMAKE_OPTIONS= gnu AM_CPPFLAGS = \ -DPACKAGE_DATA_DIR=\""$(datadir)"\" \ -DPACKAGE_LOCALE_DIR=\""$(prefix)/$(DATADIRNAME)/locale"\" \ -DPIXMAPS_DIR=\""$(datadir)/pixmaps/xcfa"\" \ @PACKAGE_CFLAGS@ AM_CFLAGS = @PACKAGE_CFLAGS@ \ -DDATA_DIR=\""$(datadir)"\" \ -DLOCALE_DIR=\""$(datadir)/locale"\" \ -DPIXMAPS_DIR=\""$(datadir)/pixmaps/xcfa"\" bin_PROGRAMS=xcfa xcfa_SOURCES=main.c \ alsa_audio.c alsa_audio.h alsa_play.c alsa_play.h \ bacon.c bacon.h \ cd_audio.c cd_audio_extract.c cd_audio_extract.h cd_audio_toc.c cd_cue.c cd_cue.h cd_expander.c cd_normalise.c cd_normalise.h cd_audio.h cd_curl.c cd_curl.h \ configuser.c configuser.h \ conv.c conv.h \ cursor.c cursor.h \ dvd.c dvd_table.c dvd_read.c dvd_extract.c dvd.h \ dragNdrop.c dragNdrop.h \ extra.c extra.h \ file.c file_analyze.c file_wav.c file_mp3ogg.c file_tags.c file_scan_db.c file_action.c file_lc.c file_conv.c file_wav_conv.c file_mp3ogg_conv.c file_trash.c file.h \ fileselect.c fileselect.h \ get_info.c get_info.h \ mplayer.c mplayer.h \ normalise.c normalise.h \ notify_send.c notify_send.h \ options.c options_cd.c options_mp3.c options_oggenc.c options_flac.c options_mac.c options_wavpack.c options_musepack.c options_faac.c options_aacplusenc.c options_tags.c options_internal.c options.h \ parse.c parse.h \ play_file.c play_file.h \ poche.c poche_dir.c poche_draw.c poche_save.c poche_txt.c poche_web.c poche.h \ popup.c popup.h \ prg_init.c prg_init.h \ proc.c proc.h \ process.c process.h \ replaygain.c replaygain.h \ scan.c scan.h \ split.c split_selector.c split_spectre.c split_cue.c split_conv.c split_wav.c split.h \ statusbar.c statusbar.h \ tags.c tags_aac.c tags_aiff.c tags_ape.c tags_dts.c tags_flac.c tags_m4a.c tags_mp3.c tags_mpc.c tags_ogg.c tags_rm.c tags_shn.c tags_wav.c tags_wavpack.c tags_wma.c tags_ac3.c tags.h \ translate.c \ treeview.c treeview.h \ web.c web.h \ win_about.c win_about.h \ win_info.c win_info.h \ win_reader.c win_reader.h \ win_scan.c win_scan.h \ win_vte.c win_vte.h \ global.h xcfa_CPPFLAGS=-I${top_srcdir}/lib datadir = @datadir@ localedir = $(datadir)/locale DEFS = -DLOCALEDIR="$(localedir)" @DEFS@ xcfa_LDADD =@PACKAGE_LIBS@ $(INTLLIBS) ${top_builddir}/lib/lib.a -lm -lX11 xcfa-4.3.6/src/win_info.c0000644000175000017500000000642012122563465012141 00000000000000 /* * file : win_info.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "win_info.h" typedef struct { GtkWidget *AdrWin; gboolean IsShow; } VAR_WININFO; VAR_WININFO VarWinInfo = { NULL, FALSE }; // QUITTER // gboolean on_wind_info_destroy_event( GtkWidget *widget, GdkEvent *event, gpointer user_data ) { VarWinInfo.IsShow = FALSE; gtk_widget_hide (VarWinInfo.AdrWin); return TRUE; } // QUITTER // gboolean on_wind_info_delete_event( GtkWidget *widget, GdkEvent *event, gpointer user_data ) { VarWinInfo.IsShow = FALSE; gtk_widget_hide (VarWinInfo.AdrWin); return TRUE; } // QUITTER // void on_button_quitter_wininfo_clicked (GtkButton *button, gpointer user_data) { VarWinInfo.IsShow = FALSE; gtk_widget_hide (VarWinInfo.AdrWin); } // WIN-READER OPEN // void wininfo_create( GtkWidget *p_WindMain, gchar *title, ... ) { gchar *StrTitle = NULL; va_list Arguments; gchar *PtrArg = NULL; GString *StrTxt = NULL; if (TRUE == VarWinInfo.IsShow) { gdk_window_raise (VarWinInfo.AdrWin->window); } else { if (NULL == VarWinInfo.AdrWin) { VarWinInfo.AdrWin = GTK_WIDGET (GLADE_GET_OBJECT("wind_info")); gtk_builder_connect_signals (GtkXcfaProjet, NULL); } gtk_window_set_transient_for (GTK_WINDOW(VarWinInfo.AdrWin), GTK_WINDOW(p_WindMain)); gtk_window_set_modal (GTK_WINDOW (VarWinInfo.AdrWin), TRUE); libutils_set_default_icone_to_win (VarWinInfo.AdrWin); StrTitle = g_strdup_printf ("\n %s \n", title); gtk_label_set_markup (GTK_LABEL (GLADE_GET_OBJECT("label_titre_wininfo")), StrTitle); g_free (StrTitle); StrTitle = NULL; StrTxt = g_string_new (NULL); // Creation du GString va_start (Arguments, title); // Debut des arguments while ( *(PtrArg = va_arg (Arguments, gchar *)) != '\0') { // TANSQUE message ALORS g_string_append_printf (StrTxt, "%s", &PtrArg[0]); // message.stock } // FIN_TANSQUE va_end (Arguments); // Fin des arguments g_string_append_printf (StrTxt, "\n\n"); gtk_label_set_markup (GTK_LABEL (GLADE_GET_OBJECT("label_texte_wininfo")), StrTxt->str); g_string_free (StrTxt, TRUE); gtk_window_set_title (GTK_WINDOW(VarWinInfo.AdrWin), title); gtk_widget_show (VarWinInfo.AdrWin); } VarWinInfo.IsShow = TRUE; } xcfa-4.3.6/src/tags.c0000644000175000017500000002475112122563465011276 00000000000000 /* * file : tags.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #include #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "tags.h" #include // // TAGS *tags_alloc (gboolean bool_tag_cd) { TAGS *new = (TAGS *)g_malloc0 (sizeof (TAGS)); /* TRUE is CD-AUDIO * FALSE is FILE */ if (new) { new->bool_tag_cd = bool_tag_cd; new->bool_save = FALSE; } return ((TAGS *)new); } // // TAGS *tags_remove (TAGS *tags) { if (NULL != tags) { if (NULL != tags->Album) { g_free (tags->Album); tags->Album = NULL; } if (NULL != tags->Artist) { g_free (tags->Artist); tags->Artist = NULL; } if (NULL != tags->Title) { g_free (tags->Title); tags->Title = NULL; } if (NULL != tags->Number) { g_free (tags->Number); tags->Number = NULL; } if (NULL != tags->Genre) { g_free (tags->Genre); tags->Genre = NULL; } if (NULL != tags->Year) { g_free (tags->Year); tags->Year = NULL; } if (NULL != tags->Comment) { g_free (tags->Comment); tags->Comment = NULL; } if (NULL != tags->Description) { g_free (tags->Description); tags->Description = NULL; } g_free (tags); tags = NULL; } return ((TAGS *)NULL); } // // void tags_set_flag_modification (TAGS *tags, gboolean p_flag) { if (tags) tags->bool_save = p_flag; } // // gboolean tags_is_modified (TAGS *tags) { return (tags ? tags->bool_save : FALSE); } // // TAGS *tags_set (gchar *filename, TAGS *tags) { gchar *Ptr = NULL; if (tags->Artist == NULL) { Ptr = strrchr (filename, '/'); if (Ptr) { Ptr ++; tags->Artist = g_strdup (Ptr); Ptr = strrchr (tags->Artist, '.'); if (Ptr) *Ptr = '\0'; } else { tags->Artist = g_strdup (filename); } } if (tags->Title == NULL) { Ptr = strrchr (filename, '/'); if (Ptr) { Ptr ++; tags->Title = g_strdup (Ptr); Ptr = strrchr (tags->Title, '.'); if (Ptr) *Ptr = '\0'; } else { tags->Title = g_strdup (filename); } } // Complete l'allocation if (NULL == tags->Album) tags->Album = g_strdup (""); if (NULL == tags->Artist) tags->Artist = g_strdup (""); if (NULL == tags->Title) tags->Title = g_strdup (""); if (NULL == tags->Number) { tags->Number = g_strdup ("1"); tags->IntNumber = 1; } else { tags->IntNumber = atoi (tags->Number); } if (NULL == tags->Genre) { tags->Genre = g_strdup ("1"); tags->IntGenre = 1; } else { tags->IntGenre = atoi (tags->Genre); } if (NULL == tags->Year) { tags->Year = g_strdup ("1962"); tags->IntYear = 1962; } else { tags->IntYear = atoi (tags->Year); } if (NULL == tags->Comment) tags->Comment = g_strdup (""); if (NULL == tags->Description) tags->Description = g_strdup (""); return ((TAGS *)tags); } // // gchar *tags_get_time (gchar *namefile) { TagLib_File *file; // TagLib_Tag *tag; const TagLib_AudioProperties *properties; gint seconds; gint minutes; gchar *RetTime = NULL; if ((file = taglib_file_new (namefile))) { taglib_set_strings_unicode(FALSE); // tag = taglib_file_tag(file); taglib_file_tag(file); properties = taglib_file_audioproperties(file); seconds = taglib_audioproperties_length(properties) % 60; minutes = (taglib_audioproperties_length(properties) - seconds) / 60; RetTime = g_strdup_printf ("%02d:%02d", minutes, seconds); taglib_tag_free_strings(); taglib_file_free (file); } else { RetTime = g_strdup ("???"); } return (RetTime); } // // gchar *tags_get_time_wav (gchar *namefile) { gchar *ptr = NULL; INFO_WAV *info = NULL; if ((info = tagswav_get_info (namefile))) { ptr = g_strdup (info->time); info = tagswav_remove_info (info); } if (NULL == ptr) ptr = g_strdup ("???"); return (ptr); } // // // // // typedef struct { // gint num; // gchar *name; // } STRUCT_TAGS_FILE_MP3; // // STRUCT_TAGS_FILE_MP3 StructTagsFileMp3 [] = { {123, "A Cappella"}, { 74, "Acid Jazz"}, { 73, "Acid Punk"}, { 34, "Acid"}, { 99, "Acoustic"}, { 40, "Alt. Rock"}, { 20, "Alternative"}, { 26, "Ambient"}, {145, "Anime"}, { 90, "Avantgarde"}, {116, "Ballad"}, { 41, "Bass"}, {135, "Beat"}, { 85, "Bebob"}, { 96, "Big Band"}, {138, "Black Metal"}, { 89, "Bluegrass"}, { 0, "Blues"}, {107, "Booty Bass"}, {132, "BritPop"}, { 65, "Cabaret"}, { 88, "Celtic"}, {104, "Chamber Music"}, {102, "Chanson"}, { 97, "Chorus"}, {136, "Christian Gangsta Rap"}, { 61, "Christian Rap"}, {141, "Christian Rock"}, { 1, "Classic Rock"}, { 32, "Classical"}, {128, "Club-House"}, {112, "Club"}, { 57, "Comedy"}, {140, "Contemporary Christian"}, { 2, "Country"}, {139, "Crossover"}, { 58, "Cult"}, {125, "Dance Hall"}, { 3, "Dance"}, { 50, "Darkwave"}, { 22, "Death Metal"}, { 4, "Disco"}, { 55, "Dream"}, {127, "Drum & Bass"}, {122, "Drum Solo"}, {120, "Duet"}, { 98, "Easy Listening"}, { 52, "Electronic"}, { 48, "Ethnic"}, {124, "Euro-House"}, { 25, "Euro-Techno"}, { 54, "Eurodance"}, { 84, "Fast-Fusion"}, { 81, "Folk/Rock"}, {115, "Folklore"}, { 80, "Folk"}, {119, "Freestyle"}, { 5, "Funk"}, { 30, "Fusion"}, { 36, "Game"}, { 59, "Gangsta Rap"}, {126, "Goa"}, { 38, "Gospel"}, { 91, "Gothic Rock"}, { 49, "Gothic"}, { 6, "Grunge"}, { 79, "Hard Rock"}, {129, "Hardcore"}, {137, "Heavy Metal"}, { 7, "Hip-Hop"}, { 35, "House"}, {100, "Humour"}, {131, "Indie"}, { 19, "Industrial"}, { 46, "Instrumental Pop"}, { 47, "Instrumental Rock"}, { 33, "Instrumental"}, {146, "JPop"}, { 29, "Jazz+Funk"}, { 8, "Jazz"}, { 63, "Jungle"}, { 86, "Latin"}, { 71, "Lo-Fi"}, { 45, "Meditative"}, {142, "Merengue"}, { 9, "Metal"}, {148, "Misc"}, { 77, "Musical"}, { 82, "National Folk"}, { 64, "Native American"}, {133, "Negerpunk"}, { 10, "New Age"}, { 10, "NewAge"}, { 66, "New Wave"}, { 39, "Noise"}, { 11, "Oldies"}, {103, "Opera"}, { 12, "Other"}, { 75, "Polka"}, {134, "Polsk Punk"}, { 53, "Pop-Folk"}, { 62, "Pop/Funk"}, { 13, "Pop"}, {109, "Porn Groove"}, {117, "Power Ballad"}, { 23, "Pranks"}, {108, "Primus"}, { 92, "Progressive Rock"}, { 93, "Psychedelic Rock"}, { 67, "Psychedelic"}, {121, "Punk Rock"}, { 43, "Punk"}, { 14, "R&B"}, { 15, "Rap"}, { 68, "Rave"}, { 16, "Reggae"}, { 76, "Retro"}, { 87, "Revival"}, {118, "Rhythmic Soul"}, { 78, "Rock & Roll"}, { 17, "Rock"}, {143, "Salsa"}, {114, "Samba"}, {110, "Satire"}, { 69, "Showtunes"}, { 21, "Ska"}, {111, "Slow Jam"}, { 95, "Slow Rock"}, {105, "Sonata"}, { 42, "Soul"}, { 37, "Sound Clip"}, { 24, "Soundtrack"}, { 56, "Southern Rock"}, { 44, "Space"}, {101, "Speech"}, { 83, "Swing"}, { 94, "Symphonic Rock"}, {106, "Symphony"}, {147, "Synthpop"}, {113, "Tango"}, { 51, "Techno-Industrial"}, { 18, "Techno"}, {130, "Terror"}, {144, "Thrash Metal"}, { 60, "Top 40"}, { 70, "Trailer"}, { 31, "Trance"}, { 72, "Tribal"}, { 27, "Trip-Hop"}, { 28, "Vocal"}, {102, "Chanson française"}, {-1, NULL} }; // // gint tags_get_genre_by_value( gchar *p_name ) { gint i; gint RetNum = -1; gchar *NameSrc = g_ascii_strdown( p_name, -1 ); gchar *NameStruct = NULL; // g_print( "-- RECHERCHE DE: '%s' '%s'\n", p_name, NameSrc ); for( i=0; StructTagsFileMp3[ i ].num != -1; i++ ) { NameStruct = g_ascii_strdown( StructTagsFileMp3[ i ].name, -1 ); // if( strlen( NameSrc ) == strlen( NameStruct ) && 0 == strcmp( NameSrc, NameStruct ) ) { if( strlen( NameSrc ) == strlen( NameStruct ) && 0 == strncmp( NameSrc, NameStruct, strlen( NameSrc ))) { // g_print( "NameSrc = %s NameStruct = %s\n", NameSrc, NameStruct ); RetNum = StructTagsFileMp3[ i ].num; break; } g_free( NameStruct ); NameStruct = NULL; } if( NULL != NameSrc ) { g_free( NameSrc ); NameSrc = NULL; } if( NULL != NameStruct ) { g_free( NameStruct ); NameStruct = NULL; } return( RetNum ); } // // void tags_set_elements_combobox (GtkWidget *widget) { gint i; for (i=0; StructTagsFileMp3[ i ].num != -1; i++) gtk_combo_box_append_text (GTK_COMBO_BOX (widget), StructTagsFileMp3[ i ].name); } // // gint tags_get_elements_combobox (gint num) { gint i; for (i=0; StructTagsFileMp3[ i ].num != num; i++); if (i > 148) i = 0; return (i); } // // gint tags_get_num_combobox (gint value) { return (StructTagsFileMp3[ value ].num); } // // gchar *tags_get_genre_by_name( gint value ) { gint i; if( value < 0 || value > 148 ) return ((gchar *)NULL ); for( i=0; StructTagsFileMp3[ i ].num != value; i++ ); return( (gchar *)StructTagsFileMp3[ i ].name ); } // // gchar *tags_get_str_type_file_is (TYPE_FILE_IS type) { static gchar str_type_file [ 8 ]; /* PRINT_FUNC_LF(); */ if (type == FILE_IS_FLAC) strcpy (str_type_file, "FLAC"); else if (type == FILE_IS_WAV) strcpy (str_type_file, "WAV "); else if (type == FILE_IS_MP3) strcpy (str_type_file, "MP3 "); else if (type == FILE_IS_OGG) strcpy (str_type_file, "OGG "); else if (type == FILE_IS_SHN) strcpy (str_type_file, "SHN "); else if (type == FILE_IS_M4A) strcpy (str_type_file, "M4A "); else if (type == FILE_IS_VID_M4A) strcpy (str_type_file, "M4A "); else if (type == FILE_IS_AAC) strcpy (str_type_file, "AAC "); else if (type == FILE_IS_WMA) strcpy (str_type_file, "WMA "); else if (type == FILE_IS_RM) strcpy (str_type_file, "RM "); else if (type == FILE_IS_DTS) strcpy (str_type_file, "DTS "); else if (type == FILE_IS_AIFF) strcpy (str_type_file, "AIFF "); else if (type == FILE_IS_MPC) strcpy (str_type_file, "MPC "); else if (type == FILE_IS_APE) strcpy (str_type_file, "APE "); else if (type == FILE_IS_WAVPACK) strcpy (str_type_file, "WVP "); else if (type == FILE_IS_AC3) strcpy (str_type_file, "AC3 "); else strcpy (str_type_file, "???"); return (&str_type_file[0]); } xcfa-4.3.6/src/file_trash.c0000644000175000017500000002114312122563465012450 00000000000000 /* * file : file_trash.h * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ /* void main_trash (void ) { GFile *file = NULL; file = g_file_new_for_path( "/home/cat/coucou.txt" ); if( FALSE == g_file_trash( file, NULL, NULL )) { g_print("TRASH BAD\n"); } else { g_print("TRASH OK\n"); } g_object_unref( file ); } */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "win_scan.h" #include "file.h" /* *--------------------------------------------------------------------------- * VARIABLES *--------------------------------------------------------------------------- */ typedef struct { gboolean BoolTrashIsOk; gboolean Bool_kde_full_session; pthread_t nmr_tid; guint handler_timeout; gboolean bool_thread_end; double total_percent; gint nbr_trash; gint ElementActif; gboolean BoolEtat; gboolean bool_pass_conv; gint pass_conv; gboolean bool_set_end_of_user; gchar PathNameTrash [ 1024 ]; } VAR_FILE_TRASH; VAR_FILE_TRASH var_filetrash = { FALSE, FALSE }; /* mv ./11\ Track_11.wav /home/cat/.Trash/11\ Track_11.wav Sous Ubuntu $HOME/.Trash Kubuntu et Xubuntu $HOME/.local/share/Trash/files */ /* #include * * gboolean g_file_trash (GFile *file, GCancellable *cancellable, GError **error); * * * void filetrash_test (gchar *Name) { GError *error; g_file_trash ((GFile *)Name, NULL, &error); } * * */ // // gboolean filetrash_test_desktop_is_kde (void) { FILE *fp; #define MAX_CARS_KDE 255 gchar buf [ MAX_CARS_KDE +1 ]; gboolean BoolRet = FALSE; /* KDE_FULL_SESSION */ system ("env | grep \"KDE_FULL_SESSION\" > /tmp/tst_kde_full_session.txt"); if ((fp = fopen ("/tmp/tst_kde_full_session.txt", "r")) != NULL) { while (fgets (buf, MAX_CARS_KDE, fp) != NULL) { if (strcmp (buf, "KDE_FULL_SESSION") == 0) { if (strcmp (buf, "true") == 0 || strcmp (buf, "TRUE") == 0) { BoolRet = TRUE; break; } } } fclose (fp); } g_unlink ("/tmp/tst_kde_full_session.txt"); return (BoolRet); } // // gboolean filetrash_move_to_trash (gchar *Name) { gchar *NameDest = NULL; gchar *Ptr = NULL; gchar *LineCommand = NULL; /*PRINT_FUNC_LF();*/ if ((Ptr = strrchr (Name, '/'))) Ptr ++; else Ptr = Name; NameDest = g_strdup_printf ("%s/%s", filetrash_get_trash (), Ptr); LineCommand = g_strdup_printf ("mv -f \"%s\" \"%s\"", Name, NameDest); g_print ("To Trash:\n\t%s\n", LineCommand); system (LineCommand); g_free (LineCommand); LineCommand = NULL; g_free (NameDest); NameDest = NULL; return (TRUE); } // // gchar *filetrash_get_trash (void) { if (var_filetrash.Bool_kde_full_session == TRUE) g_sprintf (var_filetrash.PathNameTrash, "%s/.local/share/Trash/files", getenv ("HOME")); else g_sprintf (var_filetrash.PathNameTrash, "%s/.Trash", getenv ("HOME")); return ((gchar *)var_filetrash.PathNameTrash); } // // void filetrash_test_trash_is_ok (void) { gboolean BoolExistTrashOLD; gboolean BoolExistTrashNEW; gchar *Path = NULL; gchar *StrTrash = NULL; if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("\n[ Trash ]\n"); if (var_filetrash.BoolTrashIsOk == TRUE) return; var_filetrash.BoolTrashIsOk = TRUE; var_filetrash.Bool_kde_full_session = filetrash_test_desktop_is_kde (); if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("KDE SESSION : %s\n", var_filetrash.Bool_kde_full_session ? "TRUE" : "FALSE"); Path = g_strdup_printf ("%s/.Trash", getenv ("HOME")); BoolExistTrashOLD = libutils_test_dir_exist (Path); if( TRUE == OptionsCommandLine.BoolVerboseMode ) { if (BoolExistTrashOLD == TRUE) g_print ("EXIST ......: %s\n", Path); else g_print ("NOT EXIST ..: %s\n", Path); } g_free (Path); Path = NULL; Path = g_strdup_printf ("%s/.local/share/Trash/files", getenv ("HOME")); BoolExistTrashNEW = libutils_test_dir_exist (Path); if( TRUE == OptionsCommandLine.BoolVerboseMode ) { if (BoolExistTrashNEW == TRUE) g_print ("EXIST ......: %s\n", Path); else g_print ("NOT EXIST ..: %s\n", Path); } g_free (Path); Path = NULL; // SI SESSION KDE if (var_filetrash.Bool_kde_full_session == TRUE) { if (BoolExistTrashNEW == FALSE) { StrTrash = g_strdup_printf ("mkdir -p %s", filetrash_get_trash ()); system (StrTrash); g_free (StrTrash); StrTrash = NULL; BoolExistTrashNEW = TRUE; } } // SI PAS SESSION KDE else { if (BoolExistTrashNEW == TRUE) { var_filetrash.Bool_kde_full_session = TRUE; } else if (BoolExistTrashOLD == FALSE) { var_filetrash.Bool_kde_full_session = TRUE; StrTrash = g_strdup_printf ("mkdir -p %s", filetrash_get_trash ()); system (StrTrash); g_free (StrTrash); StrTrash = NULL; BoolExistTrashNEW = TRUE; } else { } } if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("---\nUSE ........: %s\n---\n\n", filetrash_get_trash ()); } // // static void filetrash_thread (void *arg) { GList *list = NULL; DETAIL *detail = NULL; var_filetrash.bool_thread_end = FALSE; var_filetrash.bool_pass_conv = TRUE; list = g_list_first (entetefile); while (list) { if (NULL != (detail = (DETAIL *)list->data)) { if (detail->EtatTrash == FILE_TRASH_VERIF_OK) { var_filetrash.ElementActif ++; var_filetrash.BoolEtat = TRUE; if (filetrash_move_to_trash (detail->namefile) == TRUE) { detail->BoolRemove = TRUE; } } } list = g_list_next (list); } var_filetrash.bool_pass_conv = FALSE; var_filetrash.bool_thread_end = TRUE; pthread_exit(0); } // // static gint filetrash_timeout (gpointer data) { // if (TRUE == WindScan_close_request (void)) { // var_filetrash.bool_thread_end = TRUE; // } if (var_filetrash.bool_pass_conv == TRUE) { gchar *str = NULL; gchar *spinner="|/-\\"; gchar foo [ 2 ]; foo [ 0 ] = spinner[var_filetrash.pass_conv++%4]; foo [ 1 ] = '\0'; str = g_strdup_printf ("En cours: %d / %d %s", var_filetrash.ElementActif, var_filetrash.nbr_trash, foo ); WindScan_set_label (str); g_free (str); str = NULL; } if (var_filetrash.BoolEtat == TRUE) { gchar *Str = NULL; var_filetrash.total_percent = (double)((double)var_filetrash.ElementActif / (double)var_filetrash.nbr_trash); Str = g_strdup_printf ("%d%%", (int)(var_filetrash.total_percent * 100)); WindScan_set_progress (Str, var_filetrash.total_percent); g_free (Str); Str = NULL; var_filetrash.BoolEtat = FALSE; return (TRUE); } if (var_filetrash.bool_thread_end == TRUE) { WindScan_close (); fileaction_set_end (TYPE_TRASH); gtk_timeout_remove (var_filetrash.handler_timeout); on_file_button_del_file_clicked (NULL, NULL); } return (TRUE); } // // void filetrash_action (void) { // PRINT_FUNC_LF(); var_filetrash.bool_thread_end = FALSE; var_filetrash.ElementActif = 0; var_filetrash.BoolEtat = FALSE; var_filetrash.bool_pass_conv = FALSE; WindScan_open (_("Trash"), WINDSCAN_PULSE); WindScan_set_label (_("Trash files ...")); pthread_create (&var_filetrash.nmr_tid, NULL ,(void *)filetrash_thread, (void *)NULL); var_filetrash.handler_timeout = gtk_timeout_add (100, filetrash_timeout, 0); } // // gboolean filetrash_ok (void) { GList *list = NULL; DETAIL *detail = NULL; gboolean BoolTrash = FALSE; var_filetrash.nbr_trash = 0; list = g_list_first (entetefile); while (list) { if (NULL != (detail = (DETAIL *)list->data)) { if (detail->EtatTrash != FILE_TRASH_NONE) { BoolTrash = TRUE; var_filetrash.nbr_trash ++; } } list = g_list_next (list); } return (BoolTrash); } xcfa-4.3.6/src/process.c0000644000175000017500000000671012122563465012011 00000000000000 /* * file : process.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #include #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "file.h" #include "bacon.h" #include "process.h" typedef struct { guint handler_timeout; size_t Size_XCFA_FILE_LOAD; GSList *gslist; FILE *fp; GList *GslistBacon; } VAR_PROCESS; VAR_PROCESS VarProcess = { 0, -1, NULL, NULL, NULL }; extern BaconMessageConnection *connection; // // // VarProcess.GslistBacon = libutils_remove_glist( VarProcess.GslistBacon ) // void process_set_list_bacon( gchar *p_Name ) { VarProcess.GslistBacon = g_list_append( VarProcess.GslistBacon, g_strdup( p_Name )); } // // void process_debug (gchar *p_trace) { FILE *fp = NULL; fp = fopen ("/tmp/xcfa_trace.txt", "a"); fprintf (fp, "%s\n", p_trace); fclose (fp); } // // static gint process_level_timeout_do (gpointer data) { #define PROCESS_MAX_CARS 2048 if (VarProcess.Size_XCFA_FILE_LOAD != libutils_get_size_file (XCFA_FILE_LOAD)) { VarProcess.Size_XCFA_FILE_LOAD = libutils_get_size_file (XCFA_FILE_LOAD); return (TRUE); } // LECTURE DU FICHIER [ XCFA_FILE_LOAD ] ET CONSTRUCTION DU GSLIST if (NULL != (VarProcess.fp = fopen (XCFA_FILE_LOAD, "r"))) { gchar buf [ PROCESS_MAX_CARS +1 ]; gchar *ptr = NULL; while (fgets (buf, PROCESS_MAX_CARS, VarProcess.fp) != NULL) { if ((ptr = strchr (buf, '\n'))) *ptr = '\0'; VarProcess.gslist = g_slist_append (VarProcess.gslist, g_strdup (buf)); } fclose (VarProcess.fp); // ANALYSE DE LA LISTE fileanalyze_add_file_to_treeview (_PATH_LOAD_FILE_ALL_, VarProcess.gslist); } // DESTRUCTION DE LA LISTE VarProcess.gslist = libutils_remove_gslist (VarProcess.gslist); // DESTRUCTION DU FICHIER [ XCFA_FILE_LOAD ] g_unlink (XCFA_FILE_LOAD); // FIN DU TIMEOUT gtk_timeout_remove (VarProcess.handler_timeout); // bacon_message_connection_free( connection ); #undef PROCESS_MAX_CARS return (TRUE); } // // void process_goto_timeout (void) { if (TRUE == libutils_test_file_exist (XCFA_FILE_LOAD)) { gtk_notebook_set_current_page (GTK_NOTEBOOK (GLADE_GET_OBJECT("notebook_general")), NOTEBOOK_FICHIERS); gtk_notebook_set_current_page (GTK_NOTEBOOK (GLADE_GET_OBJECT("notebook_in_file")), NOTEBOOK_FICHIERS_CONVERSION); g_usleep (20); VarProcess.handler_timeout = gtk_timeout_add (400, process_level_timeout_do, 0); } else { bacon_message_connection_free( connection ); } } xcfa-4.3.6/src/file_tags.c0000644000175000017500000010750012123000465012252 00000000000000 /* * file : file_tags.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ // FILE_IS_FLAC // FILE_IS_MP3 // FILE_IS_OGG // FILE_IS_MPC #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #include #include #include #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "configuser.h" #include "dragNdrop.h" #include "tags.h" #include "file.h" #include #include "statusbar.h" VAR_FILE_TAGS var_file_tags; enum { COLUMN_FILETAGS_TYPE = 0, COLUMN_FILETAGS_TIME, COLUMN_FILETAGS_NAME, COLUMN_FILETAGS_COLOR, COLUMN_FILETAGS_POINTER_STRUCT, COLUMN_FILETAGS_NUM }; enum { NUM_TREE_FILETAGS_TYPE = 0, NUM_TREE_FILETAGS_TIME, NUM_TREE_FILETAGS_NAME, NUM_TREE_FILETAGS_ALL_COLUMN }; #define TAG_GENRE 0 #define TAG_TRACK 1 #define TAG_YEAR 2 #define TAG_COMMENT 3 #define TAG_ARTIST 4 #define TAG_ALBUM 5 #define TAG_TITLE 6 gboolean FileTags_bool_changed_OK = FALSE; // // gboolean FileTags_get_line_is_selected (void) { GtkTreeModel *model = NULL; GList *list = NULL; if (var_file_tags.Adr_TreeView == NULL) return (FALSE); if (var_file_tags.Adr_Line_Selected == NULL) return (FALSE); model = gtk_tree_view_get_model (GTK_TREE_VIEW(var_file_tags.Adr_TreeView)); list = gtk_tree_selection_get_selected_rows (var_file_tags.Adr_Line_Selected, &model); return (list ? TRUE : FALSE); } // // void FileTags_set_flag_buttons (void) { gtk_widget_set_sensitive (GTK_WIDGET (GLADE_GET_OBJECT("button_del_file")), FileTags_get_line_is_selected ()); } // // DETAIL *FileTags_get_line_selected (void) { GtkTreeIter iter; GtkTreeModel *model = NULL; GList *begin_list = NULL; GList *list = NULL; GtkTreePath *path; DETAIL *detail = NULL; if (NULL == var_file_tags.Adr_TreeView) return ((DETAIL *)detail); if (NULL == var_file_tags.Adr_Tree_Model) return ((DETAIL *)detail); if (NULL == var_file_tags.Adr_Line_Selected) return ((DETAIL *)detail); model = gtk_tree_view_get_model (GTK_TREE_VIEW(var_file_tags.Adr_TreeView)); if (NULL != (begin_list = gtk_tree_selection_get_selected_rows (var_file_tags.Adr_Line_Selected, &model))) { list = g_list_first (begin_list); while (list) { if (NULL != (path = list->data)) { gtk_tree_model_get_iter (model, &iter, path); gtk_tree_model_get (var_file_tags.Adr_Tree_Model, &iter, COLUMN_FILETAGS_POINTER_STRUCT, &detail, -1); if (NULL != (DETAIL *)detail) return ((DETAIL *)detail); } list = g_list_next (list); } } return ((DETAIL *)detail); } // // TAGS *FileTags_get_tag (DETAIL *detail) { INFO_WAV *infoWAV = NULL; INFO_SHN *infoSHN = NULL; INFO_WMA *infoWMA = NULL; INFO_RM *infoRM = NULL; INFO_DTS *infoDTS = NULL; INFO_AIFF *infoAIFF = NULL; INFO_APE *infoAPE = NULL; INFO_FLAC *infoFLAC = NULL; INFO_MP3 *infoMP3 = NULL; INFO_OGG *infoOGG = NULL; INFO_M4A *infoM4A = NULL; INFO_AAC *infoAAC = NULL; INFO_MPC *infoMPC = NULL; INFO_WAVPACK *infoWAVPACK = NULL; INFO_AC3 *infoAC3 = NULL; TAGS *tags = NULL; if (NULL == detail) { detail = FileTags_get_line_selected (); if (NULL == detail) return ((TAGS *)tags); } switch (detail->type_infosong_file_is) { case FILE_IS_NONE : case FILE_IS_WAVPACK_MD5 : case FILE_TO_NORMALISE : case FILE_TO_NORMALISE_COLLECTIF : case FILE_TO_REPLAYGAIN : break; case FILE_IS_WAV : infoWAV = (INFO_WAV *)detail->info; tags = (TAGS *)infoWAV->tags; break; case FILE_IS_SHN : infoSHN = (INFO_SHN *)detail->info; tags = (TAGS *)infoSHN->tags; break; case FILE_IS_WMA : infoWMA = (INFO_WMA *)detail->info; tags = (TAGS *)infoWMA->tags; break; case FILE_IS_RM : infoRM = (INFO_RM *)detail->info; tags = (TAGS *)infoRM->tags; break; case FILE_IS_DTS : infoDTS = (INFO_DTS *)detail->info; tags = (TAGS *)infoDTS->tags; break; case FILE_IS_AIFF : infoAIFF = (INFO_AIFF *)detail->info; // tags = (TAGS *)infoDTS->tags; tags = (TAGS *)infoAIFF->tags; break; case FILE_IS_APE : infoAPE = (INFO_APE *)detail->info; tags = (TAGS *)infoAPE->tags; break; case FILE_IS_M4A : infoM4A = (INFO_M4A *)detail->info; tags = (TAGS *)infoM4A->tags; break; case FILE_IS_VID_M4A : infoM4A = (INFO_M4A *)detail->info; tags = (TAGS *)infoM4A->tags; break; case FILE_IS_AAC : infoAAC = (INFO_AAC *)detail->info; tags = (TAGS *)infoAAC->tags; break; case FILE_IS_WAVPACK : infoWAVPACK = (INFO_WAVPACK *)detail->info; tags = (TAGS *)infoWAVPACK->tags; break; case FILE_IS_AC3 : infoAC3 = (INFO_AC3 *)detail->info; tags = (TAGS *)infoAC3->tags; break; // FICHIER GERES PAR LA LIBRARIE TagFile case FILE_IS_FLAC : infoFLAC = (INFO_FLAC *)detail->info; tags = (TAGS *)infoFLAC->tags; break; case FILE_IS_MP3 : infoMP3 = (INFO_MP3 *)detail->info; tags = (TAGS *)infoMP3->tags; break; case FILE_IS_OGG : infoOGG = (INFO_OGG *)detail->info; tags = (TAGS *)infoOGG->tags; break; case FILE_IS_MPC : infoMPC = (INFO_MPC *)detail->info; tags = (TAGS *)infoMPC->tags; break; } return ((TAGS *)tags); } // // void FileTags_set_entry_tag_album (void) { TAGS *tags = FileTags_get_tag (NULL); // gchar *ptr = NULL; gchar *PtrStr = NULL; if (NULL == var_file_tags.Adr_entry_tag_album) return; FileTags_bool_changed_OK = FALSE; // ptr = g_strdup (tags ? tags->Album : "ééé"); // PtrStr = utils_convert_string (tags->Album, TRUE); // PtrStr = g_strdup (tags->Album); PtrStr = utf8_convert_to_utf8 (tags->Album); gtk_entry_set_text (GTK_ENTRY (var_file_tags.Adr_entry_tag_album), tags ? tags->Album ? PtrStr : "" : ""); g_free (PtrStr); PtrStr = NULL; FileTags_bool_changed_OK = TRUE; } // // void FileTags_set_entry_tag_title (void) { TAGS *tags = FileTags_get_tag (NULL); gchar *PtrStr = NULL; if (NULL == var_file_tags.Adr_entry_tag_title) return; FileTags_bool_changed_OK = FALSE; // PtrStr = utils_convert_string (tags->Title, TRUE); // PtrStr = g_strdup (tags->Title); PtrStr = utf8_convert_to_utf8 (tags->Title); gtk_entry_set_text (GTK_ENTRY (var_file_tags.Adr_entry_tag_title), tags ? tags->Title ? PtrStr : "" : ""); g_free (PtrStr); PtrStr = NULL; FileTags_bool_changed_OK = TRUE; } // // void FileTags_set_entry_tag_artist (void) { TAGS *tags = FileTags_get_tag (NULL); gchar *PtrStr = NULL; if (NULL == var_file_tags.Adr_entry_tag_artist) return; FileTags_bool_changed_OK = FALSE; // PtrStr = utils_convert_string (tags->Artist, TRUE); // PtrStr = g_strdup (tags->Artist); PtrStr = utf8_convert_to_utf8 (tags->Artist); gtk_entry_set_text (GTK_ENTRY (var_file_tags.Adr_entry_tag_artist), tags ? tags->Artist ? PtrStr : "" : ""); g_free (PtrStr); PtrStr = NULL; FileTags_bool_changed_OK = TRUE; } // // void FileTags_set_entry_tag_comment (void) { TAGS *tags = FileTags_get_tag (NULL); gchar *PtrStr = NULL; if (NULL == var_file_tags.Adr_entry_tag_comment) return; FileTags_bool_changed_OK = FALSE; // PtrStr = utils_convert_string (tags->Comment, TRUE); // PtrStr = g_strdup (tags->Comment); PtrStr = utf8_convert_to_utf8 (tags->Comment); gtk_entry_set_text (GTK_ENTRY (var_file_tags.Adr_entry_tag_comment), tags ? tags->Comment ? PtrStr : "" : ""); g_free (PtrStr); PtrStr = NULL; FileTags_bool_changed_OK = TRUE; } // // void FileTags_set_spinbutton_tag_year (void) { TAGS *tags = FileTags_get_tag (NULL); if (NULL == var_file_tags.Adr_spinbutton_tag_year) return; if (NULL == tags) return; FileTags_bool_changed_OK = FALSE; gtk_spin_button_set_value (GTK_SPIN_BUTTON (var_file_tags.Adr_spinbutton_tag_year), (gdouble)tags->IntYear); FileTags_bool_changed_OK = TRUE; } // // void FileTags_set_spinbutton_tag_track (void) { TAGS *tags = FileTags_get_tag (NULL); if (NULL == var_file_tags.Adr_spinbutton_tag_track) return; if (NULL == tags) return; FileTags_bool_changed_OK = FALSE; gtk_spin_button_set_value (GTK_SPIN_BUTTON (var_file_tags.Adr_spinbutton_tag_track), (gdouble)tags->IntNumber); FileTags_bool_changed_OK = TRUE; } // // void FileTags_set_combobox_tag_genre (void) { TAGS *tags = FileTags_get_tag (NULL); if (NULL == var_file_tags.Adr_combobox_tag_genre) return; if (NULL == tags) return; FileTags_bool_changed_OK = FALSE; gtk_combo_box_set_active (GTK_COMBO_BOX (var_file_tags.Adr_combobox_tag_genre), tags_get_elements_combobox (tags->IntGenre)); FileTags_bool_changed_OK = TRUE; } // CETTE FONCTION INDIQUE QU UNE MODIFICATION DE TAG A EU LIEU // FLAG MODIFIE: : LA COLONNE 'TYPE' EST EN ROUGE GRAS // APRES UNE SAUVEGARDE : COLONNE 'TYPE' EST EN COULEUR NORMALE // void FileTags_affiche_type (void) { GtkTreeIter iter; gboolean valid; DETAIL *detail = NULL; TAGS *tags = NULL; // PRINT_FUNC_LF(); if (NULL == var_file_tags.Adr_Tree_Model) return; valid = gtk_tree_model_get_iter_first (var_file_tags.Adr_Tree_Model, &iter); while (valid) { gtk_tree_model_get (var_file_tags.Adr_Tree_Model, &iter, COLUMN_FILETAGS_POINTER_STRUCT, &detail, -1); if (detail && (detail->type_infosong_file_is == FILE_IS_FLAC || detail->type_infosong_file_is == FILE_IS_MP3 || detail->type_infosong_file_is == FILE_IS_OGG || detail->type_infosong_file_is == FILE_IS_MPC)) { if ((tags = (TAGS *)FileTags_get_tag (detail))) { gchar *old_text = NULL; GtkTreeModel *model = var_file_tags.Adr_Tree_Model; gtk_tree_model_get (model, &iter, COLUMN_FILETAGS_TYPE, &old_text, -1); g_free (old_text); old_text = NULL; if (TRUE == tags->bool_save) { gtk_list_store_set (var_file_tags.Adr_List_Store, &iter, COLUMN_FILETAGS_TYPE, g_strdup_printf ("%s", tags_get_str_type_file_is (detail->type_infosong_file_is)), -1); } else { gtk_list_store_set (var_file_tags.Adr_List_Store, &iter, COLUMN_FILETAGS_TYPE, g_strdup (tags_get_str_type_file_is (detail->type_infosong_file_is)), -1); } } } valid = gtk_tree_model_iter_next (var_file_tags.Adr_Tree_Model, &iter); } } // // void FileTags_set_label_tag_change (void) { GList *list = NULL; DETAIL *detail = NULL; TAGS *tags = NULL; gchar *str = NULL; gint changed = 0; if (NULL == var_file_tags.Adr_label_tag_change) return; tags = FileTags_get_tag (NULL); gtk_widget_set_sensitive (GTK_WIDGET (var_file_tags.Adr_table_tag), tags ? TRUE : FALSE); if (NULL != tags) { list = g_list_first (entetefile); while (list) { if (NULL != (detail = (DETAIL *)list->data)) { if (detail->type_infosong_file_is == FILE_IS_FLAC || detail->type_infosong_file_is == FILE_IS_MP3 || detail->type_infosong_file_is == FILE_IS_OGG || detail->type_infosong_file_is == FILE_IS_MPC) { if (NULL != (tags = (TAGS *)FileTags_get_tag (detail)) && TRUE == tags->bool_save) { changed ++; } } } list = g_list_next (list); } } gtk_widget_set_sensitive (GTK_WIDGET (GLADE_GET_OBJECT("button_tag_appliquer")), changed > 0 ? TRUE : FALSE); gtk_label_set_use_markup (GTK_LABEL (var_file_tags.Adr_label_tag_change), TRUE); str = g_strdup_printf ("%d ", changed); gtk_label_set_markup (GTK_LABEL (var_file_tags.Adr_label_tag_change), str); g_free (str); str = NULL; FileTags_affiche_type (); } // // void FileTags_changed_all_tags (gint TYPE_TAG) { GtkTreeIter iter; GtkTreeModel *model = NULL; GList *begin_list = NULL; GList *list = NULL; GtkTreePath *path; DETAIL *detail = NULL; TAGS *tags = NULL; if (NULL == var_file_tags.Adr_TreeView) return; if (NULL == var_file_tags.Adr_Tree_Model) return; if (NULL == var_file_tags.Adr_Line_Selected) return; model = gtk_tree_view_get_model (GTK_TREE_VIEW(var_file_tags.Adr_TreeView)); begin_list = gtk_tree_selection_get_selected_rows (var_file_tags.Adr_Line_Selected, &model); list = g_list_first (begin_list); while (list) { if (NULL != (path = list->data)) { gtk_tree_model_get_iter (model, &iter, path); gtk_tree_model_get (var_file_tags.Adr_Tree_Model, &iter, COLUMN_FILETAGS_POINTER_STRUCT, &detail, -1); if (NULL != (DETAIL *)detail) { switch (TYPE_TAG) { case TAG_GENRE : if (NULL != (tags = FileTags_get_tag (detail))) { g_free (tags->Genre); tags->Genre = NULL; tags->Genre = g_strdup ((gchar *)gtk_combo_box_get_active_text (var_file_tags.Adr_combobox_tag_genre)); tags->IntGenre = tags_get_num_combobox ((gint)gtk_combo_box_get_active (var_file_tags.Adr_combobox_tag_genre)); tags_set_flag_modification (tags, TRUE); FileTags_set_label_tag_change (); } break; case TAG_TRACK : if (NULL != (tags = FileTags_get_tag (detail))) { g_free (tags->Number); tags->Number = NULL; tags->IntNumber = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(var_file_tags.Adr_spinbutton_tag_track)); tags->Number = g_strdup_printf ("%d", tags->IntNumber); tags_set_flag_modification (tags, TRUE); FileTags_set_label_tag_change (); } break; case TAG_YEAR : if (NULL != (tags = FileTags_get_tag (detail))) { g_free (tags->Year); tags->Year = NULL; tags->IntYear = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(var_file_tags.Adr_spinbutton_tag_year)); tags->Year = g_strdup_printf ("%d", tags->IntYear); tags_set_flag_modification (tags, TRUE); FileTags_set_label_tag_change (); } break; case TAG_COMMENT : if (NULL != (tags = FileTags_get_tag (detail))) { g_free (tags->Comment); tags->Comment = NULL; tags->Comment = g_strdup ((gchar *)gtk_entry_get_text (GTK_ENTRY (var_file_tags.Adr_entry_tag_comment))); tags_set_flag_modification (tags, TRUE); FileTags_set_label_tag_change (); } break; case TAG_ARTIST : if (NULL != (tags = FileTags_get_tag (detail))) { g_free (tags->Artist); tags->Artist = NULL; tags->Artist = g_strdup ((gchar *)gtk_entry_get_text (GTK_ENTRY (var_file_tags.Adr_entry_tag_artist))); tags_set_flag_modification (tags, TRUE); FileTags_set_label_tag_change (); } break; case TAG_ALBUM : if (NULL != (tags = FileTags_get_tag (detail))) { g_free (tags->Album); tags->Album = NULL; tags->Album = g_strdup ((gchar *)gtk_entry_get_text (GTK_ENTRY (var_file_tags.Adr_entry_tag_album))); tags_set_flag_modification (tags, TRUE); FileTags_set_label_tag_change (); } break; case TAG_TITLE : if (NULL != (tags = FileTags_get_tag (detail))) { gchar *str = NULL; gchar *ptr = NULL; g_free (tags->Title); tags->Title = NULL; tags->Title = g_strdup ((gchar *)gtk_entry_get_text (GTK_ENTRY (var_file_tags.Adr_entry_tag_title))); // Suppression du caracteres '/' interdit si il existe str = g_strdup (tags->Title); if (strchr (str, '/')) { while ((ptr = strchr (str, '/'))) { strcpy (ptr, ptr+1); } gtk_entry_set_text (GTK_ENTRY (var_file_tags.Adr_entry_tag_title), str); } g_free (tags->Title); tags->Title = NULL; tags->Title = g_strdup (str); g_free (str); str = NULL; tags_set_flag_modification (tags, TRUE); FileTags_set_label_tag_change (); } break; } } } list = g_list_next (list); } } // // void on_entry_tag_title_file_realize (GtkWidget *widget, gpointer user_data) { var_file_tags.Adr_entry_tag_title = widget; } // // void on_entry_tag_title_file_changed (GtkEditable *editable, gpointer user_data) { if (NULL == var_file_tags.Adr_entry_tag_title) return; if (FALSE == FileTags_bool_changed_OK) return; FileTags_changed_all_tags (TAG_TITLE); } // // void on_entry_tag_album_file_realize (GtkWidget *widget, gpointer user_data) { var_file_tags.Adr_entry_tag_album = widget; } // // void on_entry_tag_album_file_changed (GtkEditable *editable, gpointer user_data) { if (NULL == var_file_tags.Adr_entry_tag_album) return; if (FALSE == FileTags_bool_changed_OK) return; FileTags_changed_all_tags (TAG_ALBUM); } // // void on_entry_tag_artist_file_realize (GtkWidget *widget, gpointer user_data) { var_file_tags.Adr_entry_tag_artist = widget; } // // void on_entry_tag_artist_file_changed (GtkEditable *editable, gpointer user_data) { if (NULL == var_file_tags.Adr_entry_tag_artist) return; if (FALSE == FileTags_bool_changed_OK) return; FileTags_changed_all_tags (TAG_ARTIST); } // // void on_entry_tag_comment_file_realize (GtkWidget *widget, gpointer user_data) { var_file_tags.Adr_entry_tag_comment = widget; } // // void on_entry_tag_comment_file_changed (GtkEditable *editable, gpointer user_data) { if (NULL == var_file_tags.Adr_entry_tag_comment) return; if (FALSE == FileTags_bool_changed_OK) return; FileTags_changed_all_tags (TAG_COMMENT); } // // void on_spinbutton_tag_year_file_realize (GtkWidget *widget, gpointer user_data) { var_file_tags.Adr_spinbutton_tag_year = widget; } // // void on_spinbutton_tag_year_file_changed (GtkWidget *widget, gpointer user_data) { if (NULL == var_file_tags.Adr_spinbutton_tag_year) return; if (FALSE == FileTags_bool_changed_OK) return; FileTags_changed_all_tags (TAG_YEAR); } // // void on_combobox_tag_genre_file_realize (GtkWidget *widget, gpointer user_data) { libcombo_alloc (GTK_COMBO_BOX (widget)); tags_set_elements_combobox (widget); gtk_combo_box_set_wrap_width (GTK_COMBO_BOX (widget), 4); gtk_combo_box_set_active (GTK_COMBO_BOX (widget), 0); var_file_tags.Adr_combobox_tag_genre = GTK_COMBO_BOX (widget); } // // void on_combobox_tag_genre_file_changed (GtkComboBox *combobox, gpointer user_data) { if (NULL == var_file_tags.Adr_combobox_tag_genre) return; if (FALSE == FileTags_bool_changed_OK) return; FileTags_changed_all_tags (TAG_GENRE); } // // void on_spinbutton_tag_track_file_realize (GtkWidget *widget, gpointer user_data) { var_file_tags.Adr_spinbutton_tag_track = widget; } // // void on_spinbutton_tag_track_file_changed (GtkWidget *widget, gpointer user_data) { if (NULL == var_file_tags.Adr_spinbutton_tag_track) return; if (FALSE == FileTags_bool_changed_OK) return; FileTags_changed_all_tags (TAG_TRACK); } // // void FileTags_appliquer_clicked (void) { TAGS *tags = FileTags_get_tag (NULL); TagLib_File *file; TagLib_Tag *tag; DETAIL *detail = NULL; GList *list = NULL; gchar *Ptr = NULL; list = g_list_first (entetefile); while (list) { if (NULL != (detail = (DETAIL *)list->data)) { if (detail->type_infosong_file_is == FILE_IS_FLAC || detail->type_infosong_file_is == FILE_IS_MP3 || detail->type_infosong_file_is == FILE_IS_OGG || detail->type_infosong_file_is == FILE_IS_MPC) { if ((tags = (TAGS *)FileTags_get_tag (detail)) && tags->bool_save == TRUE) { /* g_print ("\n"); g_print ("Album = %s\n", tags->Album); g_print ("Artist = %s\n", tags->Artist); g_print ("Title = %s\n", tags->Title); g_print ("Comment = %s\n", tags->Comment); g_print ("Genre = %s [%d]\n", tags->Genre, tags->IntGenre); g_print ("Year = %s [%d]\n", tags->Year, tags->IntYear); g_print ("Number = %s [%d]\n", tags->Number, tags->IntNumber); g_print ("\n"); */ if ((file = taglib_file_new (detail->namefile))) { tag = taglib_file_tag(file); /* // Ptr = utils_convert_from_utf8 (tags->Title); Ptr = tags->Title; taglib_tag_set_title (tag, Ptr); // g_free (Ptr); Ptr = NULL; // Ptr = utils_convert_from_utf8 (tags->Artist); Ptr = tags->Artist;// taglib_tag_set_artist (tag, Ptr); // g_free (Ptr); Ptr = NULL; // Ptr = utils_convert_from_utf8 (tags->Album); Ptr = tags->Album; taglib_tag_set_album (tag, Ptr); // g_free (Ptr); Ptr = NULL; // Ptr = utils_convert_from_utf8 (tags->Comment); Ptr = tags->Comment; taglib_tag_set_comment (tag, Ptr); // g_free (Ptr); Ptr = NULL; // Ptr = utils_convert_from_utf8 (tags->Genre); Ptr = tags->Genre; taglib_tag_set_genre (tag, Ptr); // g_free (Ptr); Ptr = NULL; taglib_tag_set_year (tag, tags->IntYear); taglib_tag_set_track (tag, tags->IntNumber); */ // ----------------- Ptr = utf8_convert_to_utf8 (tags->Title); taglib_tag_set_title (tag, Ptr); g_free (Ptr); Ptr = NULL; Ptr = utf8_convert_to_utf8 (tags->Artist); taglib_tag_set_artist (tag, Ptr); g_free (Ptr); Ptr = NULL; Ptr = utf8_convert_to_utf8 (tags->Album); taglib_tag_set_album (tag, Ptr); g_free (Ptr); Ptr = NULL; Ptr = utf8_convert_to_utf8 (tags->Comment); taglib_tag_set_comment (tag, Ptr); g_free (Ptr); Ptr = NULL; Ptr = utf8_convert_to_utf8 (tags->Genre); taglib_tag_set_genre (tag, Ptr); g_free (Ptr); Ptr = NULL; taglib_tag_set_year (tag, tags->IntYear); taglib_tag_set_track (tag, tags->IntNumber); taglib_file_save(file); taglib_tag_free_strings(); taglib_file_free (file); } tags->bool_save = FALSE; } } } list = g_list_next (list); } gtk_widget_set_sensitive (GTK_WIDGET (GLADE_GET_OBJECT("button_tag_appliquer")), FALSE); gtk_label_set_use_markup (GTK_LABEL (var_file_tags.Adr_label_tag_change), TRUE); gtk_label_set_markup (GTK_LABEL (var_file_tags.Adr_label_tag_change), "0"); FileTags_affiche_type (); } // // void on_label_tag_change_realize (GtkWidget *widget, gpointer user_data) { var_file_tags.Adr_label_tag_change = widget; } // // void on_table_tag_realize (GtkWidget *widget, gpointer user_data) { var_file_tags.Adr_table_tag = widget; } // MARQUER LES LIGNES POUR LA DESTRUCTION // gboolean FileTags_del_file_clicked (void) { GtkTreeIter iter; GtkTreeModel *model = NULL; GList *BeginList = NULL; GList *list = NULL; GtkTreePath *path; DETAIL *detail = NULL; gboolean BoolPrint = FALSE; // RECUP. LIGNES EN SELECTION POUR DESTRUCTION model = gtk_tree_view_get_model (GTK_TREE_VIEW(var_file_tags.Adr_TreeView)); if ((BeginList = gtk_tree_selection_get_selected_rows (var_file_tags.Adr_Line_Selected, &model))) { BoolPrint = TRUE; list = g_list_first (BeginList); while (list) { if (NULL != (path = list->data)) { gtk_tree_model_get_iter (model, &iter, path); gtk_tree_model_get (var_file_tags.Adr_Tree_Model, &iter, COLUMN_FILETAGS_POINTER_STRUCT, &detail, -1); // MARQUER LA LIGNE DU GLIST A DETRUIRE AVANT LE REAFFICHAGE if (NULL != detail) detail->BoolRemove = TRUE; } list = g_list_next (list); } // gtk_tree_selection_unselect_all (var_file_tags.Adr_Line_Selected); } return (BoolPrint); } // FILE_IS_FLAC // FILE_IS_MP3 // FILE_IS_OGG // FILE_IS_MPC // // void FileTags_affiche_glist( void ) { DETAIL *detail = NULL; GList *List = NULL; GtkTreeIter iter; GtkAdjustment *Adj = NULL; gdouble AdjValue; gint Line = 0; // LIGNE EN COURS gchar *NameDest = NULL; gint NumLineSelected = -1; gboolean BoolNumLineSelected = FALSE; // PRINT_FUNC_LF(); // RECUP SELECTION // NumLineSelected = libutils_get_first_line_is_selected( var_file_tags.Adr_Line_Selected, var_file_tags.Adr_Tree_Model ); gtk_tree_selection_unselect_all (var_file_tags.Adr_Line_Selected); // DELETE TREEVIEW // gtk_list_store_clear (GTK_LIST_STORE (var_file_tags.Adr_List_Store)); // COORDONNEES POUR UN REAJUSTEMENT VISUEL DE LA PAGE // Adj = gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (var_file_tags.Adr_scroll)); AdjValue = gtk_adjustment_get_value (Adj); // AFFICHAGE DE LA LISTE // Line = 0; List = g_list_first (entetefile); while (List) { if (NULL != ((detail = (DETAIL *)List->data)) && FALSE == detail->BoolRemove) { if (FILE_IS_FLAC != detail->type_infosong_file_is && FILE_IS_MP3 != detail->type_infosong_file_is && FILE_IS_OGG != detail->type_infosong_file_is && FILE_IS_MPC != detail->type_infosong_file_is) { List = g_list_next (List); continue; } NameDest = libutils_get_name_without_ext_with_amp (detail->namefile); gtk_list_store_append (var_file_tags.Adr_List_Store, &iter); gtk_list_store_set (var_file_tags.Adr_List_Store, &iter, COLUMN_FILETAGS_TYPE, tags_get_str_type_file_is (detail->type_infosong_file_is), COLUMN_FILETAGS_TIME, file_get_time (detail), COLUMN_FILETAGS_NAME, NameDest, COLUMN_FILETAGS_COLOR, &YellowColor, COLUMN_FILETAGS_POINTER_STRUCT, detail, -1); g_free (NameDest); NameDest = NULL; // AFFICHE LES EVENTUELLES LIGNES EN SELECTION // if( NumLineSelected == Line ) { gtk_tree_selection_select_iter (var_file_tags.Adr_Line_Selected, &iter); BoolNumLineSelected = TRUE; } Line ++; } List = g_list_next (List); } // SUPPRESSON TABLEAU DES EVENTUELLES LIGNES EN SELECTION // if( NumLineSelected == -1 ) { if (gtk_tree_model_get_iter_first (var_file_tags.Adr_Tree_Model, &iter)) { gtk_tree_selection_select_iter (var_file_tags.Adr_Line_Selected, &iter); BoolNumLineSelected = TRUE; } } if( NumLineSelected > 0 && NULL != entetefile && BoolNumLineSelected == FALSE ) { gtk_tree_selection_select_iter (var_file_tags.Adr_Line_Selected, &iter); } // REAJUSTEMENT DE LA LISTE // gtk_adjustment_set_value (Adj, AdjValue); gtk_scrolled_window_set_vadjustment (GTK_SCROLLED_WINDOW (var_file_tags.Adr_scroll), Adj); FileTags_set_flag_buttons (); FileTags_set_label_tag_change (); } // // void FileTags_changed_selection_row (GtkTreeSelection *selection, gpointer data) { var_file_tags.Adr_Line_Selected = selection; if (NOTEBOOK_FICHIERS == Config.NotebookGeneral && NOTEBOOK_FICHIERS_TAGS == Config.NotebookFile) { if (NULL != FileTags_get_line_selected ()) { FileTags_set_entry_tag_album (); FileTags_set_entry_tag_title (); FileTags_set_entry_tag_artist (); FileTags_set_entry_tag_comment (); FileTags_set_spinbutton_tag_year (); FileTags_set_spinbutton_tag_track (); FileTags_set_combobox_tag_genre (); } FileTags_set_label_tag_change (); } FileTags_set_flag_buttons (); } // // gboolean FileTags_key_press_event (GtkWidget *widget, GdkEventKey *event, gpointer user_data) { if( TRUE == keys.BoolGDK_Control_A ) { // CONTROL_A gtk_tree_selection_unselect_all (var_file_tags.Adr_Line_Selected); gtk_tree_selection_select_all (var_file_tags.Adr_Line_Selected); } if (keys.keyval == GDK_Delete) { GtkTreeIter iter; if (gtk_tree_model_get_iter_first (var_file_tags.Adr_Tree_Model, &iter)) { on_file_button_del_file_clicked (NULL, NULL); return (FALSE); } } return (TRUE); } // AFFICHAGE DU NOM COMPLET DU FICHIER SI SURVOL PAR LE CURSEUR SOURIS DU CHAMPS 'Nom' // gboolean FileTags_event (GtkWidget *treeview, GdkEvent *event, gpointer user_data) { gint x, y; GdkModifierType state; GtkTreePath *path; GtkTreeViewColumn *column; GtkTreeViewColumn *ColumnDum; GtkTreeIter iter; GtkTreeModel *model = (GtkTreeModel *)user_data; DETAIL *detail = NULL; gint Pos_X = 0, Pos_Y = 0; gint i; gboolean BoolSelectColNom = FALSE; // TODO : @Tetsumaki http://forum.ubuntu-fr.org/viewtopic.php?pid=3889380#p3889380 // return (FALSE); // PRINT_FUNC_LF(); // SI PAS DANS LE TREEVIEW gdk_window_get_pointer (((GdkEventButton*)event)->window, &x, &y, &state); if (FALSE == gtk_tree_view_get_path_at_pos (GTK_TREE_VIEW(treeview), x, y, &path, &column, &Pos_X, &Pos_Y)) { StatusBar_set_mess( NOTEBOOK_FICHIERS, _STATUSBAR_SIMPLE_, "" ); return (FALSE); } // RECUPERATION DE LA STRUCTURE POINTEE PAR LE CURSEUR SOURIS gtk_tree_model_get_iter (model, &iter, path); gtk_tree_model_get (var_file_tags.Adr_Tree_Model, &iter, COLUMN_FILETAGS_POINTER_STRUCT, &detail, -1); if (NULL == detail) return (FALSE); // DANS TOUS LES CAS, EFFACE LA BARRE DE TACHE StatusBar_set_mess( NOTEBOOK_FICHIERS, _STATUSBAR_SIMPLE_, "" ); /* IDEE POUR REMPLACER LES COMPARAISON PAR NOMS. EXEMPLES: * PLAY = 0 * TRASH = 1 * TYPE = 2 * etc ... * NOTA: * CET ALGO PERMET DE RENOMMER AISEMENT LES ENTETES DE COLONNES DANS TOUTES LES LANGUES: FR, EN, DE, ... */ for (i = 0; i < NUM_TREE_FILETAGS_ALL_COLUMN; i ++) { ColumnDum = gtk_tree_view_get_column (GTK_TREE_VIEW(treeview), i); if (ColumnDum == column) { switch ( i ) { case NUM_TREE_FILETAGS_NAME : BoolSelectColNom = TRUE; break; default: StatusBar_set_mess( NOTEBOOK_FICHIERS, _STATUSBAR_SIMPLE_, ""); StatusBar_puts(); return (FALSE); } // LA COLONNE ES TROUVEE ... SRTIE DE LA BOUCLE break; } } if (BoolSelectColNom) { StatusBar_set_mess( NOTEBOOK_FICHIERS, _STATUSBAR_SIMPLE_, detail->namefile ); } return (FALSE); } // // static void FileTags_drag_data_received (GtkWidget *widget, GdkDragContext *drag_context, gint x, gint y, GtkSelectionData *data, guint info, guint time) { /* PRINT_FUNC_LF(); */ /* Une copie ne peut aller vers elle meme !!! */ if (gtk_drag_get_source_widget(drag_context) != widget) { dragndrop_list_drag_data (widget, (gchar *)data->data); } } // // static void FileTags_drag_data_drop (GtkWidget *widget, GdkDragContext *dc, GtkSelectionData *selection_data, guint info, guint t, gpointer data) { GtkTreeIter iter; GtkTreeModel *model = NULL; GList *begin_list = NULL; GList *list = NULL; GtkTreePath *path; DETAIL *detail = NULL; gchar *text = NULL; /* PRINT_FUNC_LF(); */ model = gtk_tree_view_get_model (GTK_TREE_VIEW(widget)); begin_list = gtk_tree_selection_get_selected_rows (var_file_tags.Adr_Line_Selected, &model); list = g_list_first (begin_list); while (list) { if ((path = list->data)) { gtk_tree_model_get_iter (model, &iter, path); gtk_tree_model_get (var_file_tags.Adr_Tree_Model, &iter, COLUMN_FILETAGS_POINTER_STRUCT, &detail, -1); // DEBUG DRAG AND DROP // [ Tue, 03 May 2011 17:39:08 +0200 ] // XCFA-4.1.0 // ----------------------------------------------------------- // OLD CODE: // text = g_strdup( detail->namefile ); // NEW_CODE: text = g_strdup_printf( "file://%s", detail->namefile ); gdk_drag_status (dc, GDK_ACTION_COPY, t); gtk_selection_data_set( selection_data, // GDK_SELECTION_TYPE_STRING, selection_data->target, 8, (guchar *)text, strlen( text ) ); g_free (text); text = NULL; } list = g_list_next (list); } } // // void FileTags_add_columns_scrolledwindow (GtkTreeView *treeview) { GtkTreeModel *model = gtk_tree_view_get_model (treeview); GtkCellRenderer *renderer; GtkTreeViewColumn *column; // TODO : @Tetsumaki http://forum.ubuntu-fr.org/viewtopic.php?pid=3889380#p3889380 // SIGNAL : 'event' g_signal_connect(G_OBJECT(treeview), "event", (GCallback) FileTags_event, model); // SIGNAL 'key-press-event' g_signal_connect(G_OBJECT(treeview), "key-press-event", (GCallback) FileTags_key_press_event, model); // SIGNAL : Ligne actuellement selectionnee 'changed' var_file_tags.Adr_Line_Selected = gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)); g_signal_connect(G_OBJECT(var_file_tags.Adr_Line_Selected), "changed", G_CALLBACK(FileTags_changed_selection_row), "1"); // Drag and drop support // SIGNAL : 'drag-data-received' gtk_drag_dest_set (GTK_WIDGET (treeview), GTK_DEST_DEFAULT_MOTION | GTK_DEST_DEFAULT_DROP, drag_types, n_drag_types, GDK_ACTION_COPY| GDK_ACTION_MOVE ); g_signal_connect(G_OBJECT(treeview), "drag-data-received", G_CALLBACK(FileTags_drag_data_received), NULL); gtk_drag_source_set( GTK_WIDGET(treeview), GDK_BUTTON1_MASK | GDK_BUTTON2_MASK | GTK_DEST_DEFAULT_MOTION | GTK_DEST_DEFAULT_DROP, drag_types, n_drag_types, GDK_ACTION_MOVE | GDK_ACTION_COPY | GDK_ACTION_DEFAULT ); g_signal_connect(G_OBJECT(treeview), "drag-data-get", G_CALLBACK(FileTags_drag_data_drop), treeview); // COLUMN_FILETAGS_TYPE renderer = gtk_cell_renderer_text_new (); g_object_set (renderer, "xalign", 0.5, NULL); // var_file_tags.Adr_ColumnFileWavNewHertz = var_file_tags.Adr_ColumnFileTagsType = column = gtk_tree_view_column_new_with_attributes (_("Type"), renderer, "markup", COLUMN_FILETAGS_TYPE, NULL); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column), GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 90); gtk_tree_view_column_set_alignment (GTK_TREE_VIEW_COLUMN (column), 0.5); gtk_tree_view_append_column (treeview, column); // COLUMN_FILETAGS_TIME renderer = gtk_cell_renderer_text_new (); g_object_set (renderer, "xalign", 0.5, NULL); // var_file_tags.Adr_ColumnFileWavNewHertz = var_file_tags.Adr_ColumnFileTagsTime = column = gtk_tree_view_column_new_with_attributes (_("Temps"), renderer, "markup", COLUMN_FILETAGS_TIME, NULL); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column), GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 90); gtk_tree_view_column_set_alignment (GTK_TREE_VIEW_COLUMN (column), 0.5); gtk_tree_view_append_column (treeview, column); // COLUMN_FILETAGS_NAME var_file_tags.Renderer = renderer = gtk_cell_renderer_text_new (); g_object_set (renderer, "xalign", 0.5, NULL); // var_file_tags.Adr_ColumnFileWavNewHertz = var_file_tags.Adr_ColumnFileTagsName = column = gtk_tree_view_column_new_with_attributes (_("Nom"), renderer, "markup", COLUMN_FILETAGS_NAME, "background-gdk", COLUMN_FILETAGS_COLOR, NULL); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column), GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 90); gtk_tree_view_column_set_alignment (GTK_TREE_VIEW_COLUMN (column), 0.5); gtk_tree_view_append_column (treeview, column); } // // void on_scrolledwindow_tags_file_realize (GtkWidget *widget, gpointer user_data) { GtkListStore *store; GtkTreeModel *model; GtkWidget *treeview; var_file_tags.Adr_scroll = widget; var_file_tags.Adr_List_Store = store = gtk_list_store_new ( COLUMN_FILETAGS_NUM, // TOTAL NUMBER G_TYPE_STRING, // COLUMN_FILETAGS_TYPE G_TYPE_STRING, // COLUMN_FILETAGS_TIME G_TYPE_STRING, // COLUMN_FILETAGS_NAME GDK_TYPE_COLOR, // COLUMN_FILETAGS_COLOR G_TYPE_POINTER // COLUMN_FILETAGS_POINTER_STRUCT ); var_file_tags.Adr_Tree_Model = model = GTK_TREE_MODEL (store); var_file_tags.Adr_TreeView = treeview = gtk_tree_view_new_with_model (model); gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (treeview), TRUE); gtk_tree_selection_set_mode (gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview)), GTK_SELECTION_MULTIPLE); // GTK_SELECTION_BROWSE MULTIPLE g_object_unref (model); gtk_container_add (GTK_CONTAINER (widget), treeview); FileTags_add_columns_scrolledwindow (GTK_TREE_VIEW (treeview)); gtk_widget_show_all (widget); } xcfa-4.3.6/src/poche.c0000644000175000017500000010556712122563465011443 00000000000000 /* * file : poche.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #include #include #include #include #include // M_PI #include #include #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "popup.h" #include "cursor.h" #include "dragNdrop.h" #include "fileselect.h" #include "configuser.h" #include "cd_curl.h" #include "poche.h" VIEW view = { FALSE, // BoolAccessChanged; // COMBOBOX changed is TRUE NULL, // *AdrComboBoxChoice; // NULL, // *AdrEntrySearchImgWeb; // Adresse saisie image web NULL, // *AdrEntryNameFileSave; // Adresse saisie nom fichier image NULL, // *AdrEntryTitleCD; // Adresse saisie titre du CD NULL, // *TitleCD; // NULL, // *Buffer_none; // NULL, // *Buffer_title; // NULL, // *Buffer_title_time; // NULL, // *Buffer_artist_title_time; // NULL, // *AdrDrawingarea; // Adresse de la surface FALSE, // BoolScaleAdjust; // TRUE = ajustement de l'echelle avec la surface de la fentre NULL, // *image; // Adresse de l'image 1.0, // scale; // Pourcentage de surface de l'image 0.0, // x0; // Pos X 0.0, // y0; // Pos Y 0, // image_width; // Width 0, // image_height; // Height NULL, // *ListImage; // Pointeur de structure IMAGE pour AdrDrawingarea FALSE, // BoolEventButtonPress; // TRUE == BOUTON SOURIS PRESSED NULL, // *GetImage; // Adresse de l'image en selection IMG_NONE, // ImgCorner; // See IMG_CORNER NULL, // *Adr_viewport_image_preview; // Adresse viewport NULL, // *Adr_table; // Adresse table contenu dans le viewport NULL, // *glist; // Contient les structures GLIST_POCHETTE NULL, // *AdrTextview; // Adresse textview FALSE, // BoolSaveToFile; // TRUE si sauvegarde vers fichier // HandleMove; // Les coordonnees de saisie de l'image }; gdouble oldX = -1.0; gdouble oldY = -1.0; // // void poche_remove_view (void) { if( NULL != view.TitleCD ) { g_free( view.TitleCD ); view.TitleCD = NULL; } if( NULL != view.Buffer_none ) { g_free( view.Buffer_none ); view.Buffer_none = NULL; } if( NULL != view.Buffer_title ) { g_free( view.Buffer_title ); view.Buffer_title = NULL; } if( NULL != view.Buffer_title_time ) { g_free( view.Buffer_title_time ); view.Buffer_title_time = NULL; } if( NULL != view.Buffer_artist_title_time ) { g_free( view.Buffer_artist_title_time ); view.Buffer_artist_title_time = NULL; } } // // void poche_remove_ListImage( void ) { GList *List = NULL; IMAGE *Image = NULL; gint NbrFree = 0; List = g_list_first( view.ListImage ); while( List ) { if( NULL != (Image = (IMAGE *)List->data )) { if( NULL != Image->Texte ) { g_free( Image->Texte ); Image->Texte = NULL; } if( NULL != Image->FontName ) { g_free( Image->FontName ); Image->FontName = NULL; } if( NULL != Image->Pixbuf ) { g_object_unref( Image->Pixbuf ); Image->Pixbuf = NULL; } if( NULL != Image->PixbufOriginal ) { g_object_unref( Image->PixbufOriginal ); Image->PixbufOriginal = NULL; } g_free( Image ); List->data = Image = NULL; NbrFree ++; } List = g_list_next( List ); } g_list_free( view.ListImage ); view.ListImage = NULL; if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print( "\tRemove: %d\n", NbrFree ); } // // gboolean poche_is_erase_active( void ) { GList *List = NULL; IMAGE *Image = NULL; gboolean BoolEraseActive = FALSE; List = g_list_first( view.ListImage ); while( List ) { if( NULL != (Image = (IMAGE *)List->data ) && FALSE == Image->BoolStructRemove ) { if( TRUE == Image->BoolIsSelected ) return( TRUE ); } List = g_list_next( List ); } return( BoolEraseActive ); } // // void poche_set_flag_buttons (void ) { IMAGE *Image = poche_get_struct_selected_is_txt(); gtk_widget_set_sensitive( GTK_WIDGET(GLADE_GET_OBJECT("button_erase")), poche_is_erase_active() ); gtk_widget_set_sensitive( GTK_WIDGET(GLADE_GET_OBJECT("button_load_file")), TRUE ); gtk_widget_set_sensitive( GTK_WIDGET(GLADE_GET_OBJECT("button_save")), *pochetxt_get_ptr_entry_name_file_to_save() == '\0' ? FALSE : TRUE ); gtk_widget_set_sensitive( GTK_WIDGET(GLADE_GET_OBJECT("button_moins")), TRUE ); gtk_widget_set_sensitive( GTK_WIDGET(GLADE_GET_OBJECT("button_normal")), TRUE ); gtk_widget_set_sensitive( GTK_WIDGET(GLADE_GET_OBJECT("button_plus")), TRUE ); gtk_widget_set_sensitive( GTK_WIDGET(GLADE_GET_OBJECT("button_ajuster")), TRUE ); gtk_widget_set_sensitive( GTK_WIDGET(GLADE_GET_OBJECT("button_change_font")), poche_get_struct_selected_is_txt() == NULL ? FALSE : TRUE ); gtk_widget_set_sensitive( GTK_WIDGET(GLADE_GET_OBJECT("togglebutton_font_bold")), poche_get_struct_selected_is_txt() == NULL ? FALSE : TRUE ); gtk_widget_set_sensitive( GTK_WIDGET(GLADE_GET_OBJECT("togglebutton_font_italic")), poche_get_struct_selected_is_txt() == NULL ? FALSE : TRUE ); gtk_widget_set_sensitive( GTK_WIDGET(GLADE_GET_OBJECT("button_import_img_web")), *pochetxt_get_ptr_entry_img_web() == '\0' ? FALSE : TRUE ); gtk_widget_set_sensitive( GTK_WIDGET(GLADE_GET_OBJECT("combobox_choice_get_cd")), (NULL != view.Buffer_none && NULL != Image) ? TRUE : FALSE ); gtk_widget_set_sensitive( GTK_WIDGET(GLADE_GET_OBJECT("frame_texte_poche")), (NULL != Image) ? TRUE : FALSE ); gtk_widget_set_sensitive( GTK_WIDGET(GLADE_GET_OBJECT("button_import_title_cd")), (NULL != view.Buffer_none) ? TRUE : FALSE ); if( NULL != Image ) { gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON(GLADE_GET_OBJECT("togglebutton_font_bold")), Image->BoolFontBold ); gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON(GLADE_GET_OBJECT("togglebutton_font_italic")), Image->BoolFontItalic ); } else { gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON(GLADE_GET_OBJECT("togglebutton_font_bold")), FALSE ); gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON(GLADE_GET_OBJECT("togglebutton_font_italic")), FALSE ); } } // // void poche_print_zoom_changed( gdouble p_zoom_scale ) { gchar *Str = NULL; Str = g_strdup_printf( " %3.0f%% ", 100.0 * p_zoom_scale ); gtk_label_set_text( GTK_LABEL(GLADE_GET_OBJECT("label_percent")), Str ); // g_print( "scale = %f %3.0f%% \n", view.scale, 100.0 * view.scale ); g_free( Str ); Str = NULL; } // // void poche_set_size_request( void ) { gtk_widget_set_size_request( view.AdrDrawingarea, (gint)((gdouble)view.image_width * view.scale), (gint)((gdouble)view.image_height * view.scale) ); } // // gboolean on_drawingareamain_expose_event( GtkWidget *widget, GdkEventExpose *event, gpointer user_data ) { pochedraw_paint( NULL ); poche_set_flag_buttons(); return( FALSE ); } // // IMAGE *poche_get_is_move( gdouble x, gdouble y ) { cairo_t *cr; GdkRectangle zone; GdkRegion *region = NULL; IMAGE *Image = NULL; GList *List = NULL; gboolean BoolInZone = FALSE; cr = gdk_cairo_create( view.AdrDrawingarea->window ); cairo_scale (cr, view.scale, view.scale); cairo_translate (cr, view.x0, view.y0); List = g_list_last( view.ListImage ); while( List ) { if( NULL != (Image = (IMAGE *)List->data ) && FALSE == Image->BoolStructRemove ) { BoolInZone = FALSE; // IMG_MOVE zone.x = Image->x0; zone.y = Image->y0; zone.width = Image->image_width; zone.height = Image->image_height; region = gdk_region_rectangle (&zone); if( gdk_region_point_in( region, x, y )) { BoolInZone = TRUE; Image->XPointer = x; Image->YPointer = y; } gdk_region_destroy (region); if( TRUE == BoolInZone ) { cairo_destroy( cr ); return( Image ); } } List = g_list_previous( List ); } cairo_destroy( cr ); return( NULL ); } // // IMAGE *poche_get( gdouble x, gdouble y ) { cairo_t *cr; GdkRegion *region = NULL; IMAGE *Image = NULL; GList *List = NULL; gboolean BoolInZone = FALSE; gint CptImgCorner; cr = gdk_cairo_create( view.AdrDrawingarea->window ); cairo_scale (cr, view.scale, view.scale); cairo_translate (cr, view.x0, view.y0); List = g_list_last( view.ListImage ); while( List ) { if( NULL != (Image = (IMAGE *)List->data ) && FALSE == Image->BoolStructRemove ) { if( TRUE != Image->BoolIsSelected ) { List = g_list_previous( List ); continue; } BoolInZone = FALSE; pochedraw_get_handle_move( Image, TRUE ); for( CptImgCorner = 0; CptImgCorner < IMG_SIZE; CptImgCorner ++ ) { region = gdk_region_rectangle( &view.HandleMove.zone [ CptImgCorner ] ); if( gdk_region_point_in( region, x, y )) { BoolInZone = TRUE; Image->XPointer = x; Image->YPointer = y; } gdk_region_destroy (region); if( TRUE == BoolInZone ) { cairo_destroy( cr ); view.ImgCorner = CptImgCorner; switch( CptImgCorner ) { case IMG_HAUT_GAUCHE : cursor_set_haut_gauche(); break; case IMG_HAUT : cursor_set_haut(); break; case IMG_HAUT_DROIT : cursor_set_haut_droit(); break; case IMG_DROIT : cursor_set_droit(); break; case IMG_BAS_DROIT : cursor_set_bas_droit(); break; case IMG_BAS : cursor_set_bas(); break; case IMG_BAS_GAUCHE : cursor_set_bas_gauche(); break; case IMG_GAUCHE : cursor_set_gauche(); break; case IMG_MOVE : cursor_set_move(); break; case IMG_SIZE : case IMG_NONE : cursor_set_old(); break; } return( Image ); } } } List = g_list_previous( List ); } cursor_set_old(); view.ImgCorner = IMG_NONE; cairo_destroy( cr ); return( NULL ); } // // Image[ n ] image en dessous / image below // Image[ n +1 ] // Image[ n +2 ] // Image[ n +3 ] // Image[ n +4 ] image au dessus / image above // void poche_set_selected_first_image( IMAGE *p_Image ) { GList *List = NULL; IMAGE *Image = NULL; GList *ListLast = NULL; IMAGE *ImageLast = NULL; // GET List OF p_Image List = g_list_first( view.ListImage ); while( List ) { if( NULL != (Image = (IMAGE *)List->data ) && FALSE == Image->BoolStructRemove ) { if( p_Image == Image ) { break; } } List = g_list_next( List ); } // GET ListLast for image above ( image au dessus ) ListLast = g_list_last( view.ListImage ); while( ListLast ) { if( NULL != (ImageLast = (IMAGE *)ListLast->data ) && FALSE == Image->BoolStructRemove ) { break; } ListLast = g_list_previous( ListLast ); } // CHANGE List <-> ListLast if( NULL != List && NULL != ListLast ) { ListLast->data = Image; List->data = ImageLast; gtk_widget_queue_draw( view.AdrDrawingarea ); } } void poche_set_selected_up_image( IMAGE *p_Image ) { GList *List = NULL; IMAGE *Image = NULL; GList *ListLast = NULL; IMAGE *ImageLast = NULL; if( g_list_length( view.ListImage ) <= 1 ) return; // GET List OF p_Image List = g_list_first( view.ListImage ); while( List ) { if( NULL != (Image = (IMAGE *)List->data ) && FALSE == Image->BoolStructRemove ) { if( p_Image == Image ) { if( NULL != (ListLast = g_list_next( List ))) { if( NULL != (ImageLast = (IMAGE *)ListLast->data ) && FALSE == ImageLast->BoolStructRemove ) { // CHANGE List <-> ListLast if( NULL != List && NULL != ListLast ) { ListLast->data = Image; List->data = ImageLast; gtk_widget_queue_draw( view.AdrDrawingarea ); } } } break; } } List = g_list_next( List ); } } void poche_set_selected_down_image( IMAGE *p_Image ) { GList *List = NULL; IMAGE *Image = NULL; GList *ListLast = NULL; IMAGE *ImageLast = NULL; if( g_list_length( view.ListImage ) <= 1 ) return; // GET List OF p_Image List = g_list_first( view.ListImage ); while( List ) { if( NULL != (Image = (IMAGE *)List->data ) && FALSE == Image->BoolStructRemove ) { if( p_Image == Image ) { if( NULL != (ListLast = g_list_previous( List ))) { if( NULL != (ImageLast = (IMAGE *)ListLast->data ) && FALSE == ImageLast->BoolStructRemove ) { // CHANGE List <-> ListLast if( NULL != List && NULL != ListLast ) { ListLast->data = Image; List->data = ImageLast; gtk_widget_queue_draw( view.AdrDrawingarea ); } } } break; } } List = g_list_next( List ); } } // // La derniere image doit etre en haut de la liste // void poche_set_selected_last_image( IMAGE *p_Image ) { GList *List = NULL; IMAGE *Image = NULL; GList *ListFisrt = NULL; IMAGE *ImageLast = NULL; // GET List OF p_Image List = g_list_first( view.ListImage ); while( List ) { if( NULL != (Image = (IMAGE *)List->data ) && FALSE == Image->BoolStructRemove ) { if( p_Image == Image ) { break; } } List = g_list_next( List ); } // GET ListFisrt for image above ( image au dessus ) ListFisrt = g_list_first( view.ListImage ); while( ListFisrt ) { if( NULL != (ImageLast = (IMAGE *)ListFisrt->data ) && FALSE == Image->BoolStructRemove ) { break; } ListFisrt = g_list_next( ListFisrt ); } // CHANGE List <-> ListFisrt if( NULL != List && NULL != ListFisrt ) { ListFisrt->data = Image; List->data = ImageLast; gtk_widget_queue_draw( view.AdrDrawingarea ); } } // // gboolean on_drawingareamain_button_press_event( GtkWidget *widget, GdkEventButton *event, gpointer user_data ) { cairo_t *cr; gdouble x, y; guint state; IMAGE *Image = NULL; IMAGE *ListImage = NULL; GList *List = NULL; gboolean bool_click_droit = (event->button == 3); cr = gdk_cairo_create( view.AdrDrawingarea->window ); cairo_scale (cr, view.scale, view.scale); cairo_translate (cr, view.x0, view.y0); x = event->x; y = event->y; cairo_device_to_user (cr, &x, &y); if( TRUE == bool_click_droit ) { if( NULL != (Image = (IMAGE *)poche_get_is_move( x, y ))) { cairo_destroy( cr ); if( TRUE == Image->BoolIsSelected ) { popup_flip( Image ); } return( FALSE ); } } state = event->state; // IMAGE A DESSUS AVEC: CTRL + click if( state & GDK_CONTROL_MASK ) { if( IMG_NONE == view.ImgCorner || IMG_MOVE == view.ImgCorner ) { if( NULL != (Image = (IMAGE *)poche_get_is_move( x, y ))) { poche_set_selected_first_image( Image ); } } } // NOUVELLE SELECTION D IMAGE if( IMG_NONE == view.ImgCorner || IMG_MOVE == view.ImgCorner ) { if( NULL != (Image = (IMAGE *)poche_get_is_move( x, y ))) { if( FALSE == Image->BoolIsSelected ) { List = g_list_first( view.ListImage ); while( List ) { if( NULL != (ListImage = (IMAGE *)List->data ) && FALSE == Image->BoolStructRemove ) { ListImage->BoolIsSelected = FALSE; } List = g_list_next( List ); } Image->BoolIsSelected = TRUE; cursor_set_move(); view.ImgCorner = IMG_MOVE; view.GetImage = Image; cairo_destroy( cr ); gtk_widget_queue_draw( view.AdrDrawingarea ); view.BoolEventButtonPress = TRUE; pochetxt_set_text_to_textview( Image ); poche_set_flag_buttons(); return( FALSE ); } } } // DESELECTION if( IMG_NONE == view.ImgCorner && NULL == Image ) { List = g_list_first( view.ListImage ); while( List ) { if( NULL != (Image = (IMAGE *)List->data ) && FALSE == Image->BoolStructRemove ) { Image->BoolIsSelected = FALSE; } List = g_list_next( List ); } cursor_set_old(); cairo_destroy( cr ); gtk_widget_queue_draw( view.AdrDrawingarea ); view.BoolEventButtonPress = TRUE; return( FALSE ); } cairo_destroy( cr ); view.BoolEventButtonPress = TRUE; return( FALSE ); } // // gboolean on_drawingareamain_button_release_event( GtkWidget *widget, GdkEventButton *event, gpointer user_data ) { cairo_t *cr; gdouble x, y; cr = gdk_cairo_create( view.AdrDrawingarea->window ); cairo_scale (cr, view.scale, view.scale); cairo_translate (cr, view.x0, view.y0); x = event->x; y = event->y; cairo_device_to_user (cr, &x, &y); view.BoolEventButtonPress = FALSE; view.GetImage = NULL; cairo_destroy( cr ); return( FALSE ); } // // gboolean on_drawingareamain_motion_notify_event( GtkWidget *widget, GdkEventMotion *event, gpointer user_data ) { cairo_t *cr; gdouble x, y; gboolean BoolRedraw = FALSE; cr = gdk_cairo_create( view.AdrDrawingarea->window ); cairo_scale (cr, view.scale, view.scale); cairo_translate (cr, view.x0, view.y0); x = event->x; y = event->y; cairo_device_to_user (cr, &x, &y); if (oldX == -1.0 || oldY == -1.0) { oldX = x; oldY = y; } if( FALSE == view.BoolEventButtonPress ) { view.GetImage = (IMAGE *)poche_get( x, y ); } if( TRUE == view.BoolEventButtonPress ) { if( NULL != view.GetImage ) { if( IMG_MOVE == view.ImgCorner ) { view.GetImage->x0 += (x - view.GetImage->XPointer); view.GetImage->y0 += (y - view.GetImage->YPointer); view.GetImage->XPointer = x; view.GetImage->YPointer = y; BoolRedraw = TRUE; } else if( IMG_DROIT == view.ImgCorner ) { if( x > oldX ) { gint add = x - (view.GetImage->x0 + view.GetImage->image_width); view.GetImage->image_width += add; } else if( x < oldX ) { gint add = (view.GetImage->x0 + view.GetImage->image_width) - x; view.GetImage->image_width -= add; } if( x != oldX ) { // VERIFICATION DIMENSION DROIT if( view.GetImage->image_width < MIN_SIZE_IMAGE ) view.GetImage->image_width = MIN_SIZE_IMAGE; BoolRedraw = TRUE; } } else if( IMG_GAUCHE == view.ImgCorner ) { if( x > oldX ) { gint add = x - view.GetImage->x0; view.GetImage->x0 += add; view.GetImage->image_width -= add; } else if( x < oldX ) { gint add = view.GetImage->x0 - x; view.GetImage->x0 -= add; view.GetImage->image_width += add; } if( x != oldX ) { // VERIFICATION DIMENSION GAUCHE while( view.GetImage->image_width < MIN_SIZE_IMAGE ) { view.GetImage->x0 --; view.GetImage->image_width ++; } BoolRedraw = TRUE; } } else if( IMG_HAUT == view.ImgCorner ) { if( y > oldY ) { gint add = y - view.GetImage->y0; view.GetImage->y0 += add; view.GetImage->image_height -= add; } else if( y < oldY ) { gint add = view.GetImage->y0 - y; view.GetImage->y0 -= add; view.GetImage->image_height += add; } if( y != oldY ) { // VERIFICATION DIMENSION HAUT while( view.GetImage->image_height < MIN_SIZE_IMAGE ) { view.GetImage->y0 --; view.GetImage->image_height ++; } BoolRedraw = TRUE; } } else if( IMG_BAS == view.ImgCorner ) { if( y > oldY ) { gint add = y - (view.GetImage->y0 + view.GetImage->image_height); view.GetImage->image_height += add; } else if( y < oldY ) { gint add = (view.GetImage->y0 + view.GetImage->image_height) - y; view.GetImage->image_height -= add; } if( y != oldY ) { // VERIFICATION DIMENSION BAS if( view.GetImage->image_height < MIN_SIZE_IMAGE ) view.GetImage->image_height = MIN_SIZE_IMAGE; BoolRedraw = TRUE; } } else if( IMG_HAUT_GAUCHE == view.ImgCorner ) { // HAUT if( y > oldY ) { gint add = y - view.GetImage->y0; view.GetImage->y0 += add; view.GetImage->image_height -= add; } else if( y < oldY ) { gint add = view.GetImage->y0 - y; view.GetImage->y0 -= add; view.GetImage->image_height += add; } // VERIFICATION DIMENSION HAUT while( view.GetImage->image_height < MIN_SIZE_IMAGE ) { view.GetImage->y0 --; view.GetImage->image_height ++; } // GAUCHE if( x > oldX ) { gint add = x - view.GetImage->x0; view.GetImage->x0 += add; view.GetImage->image_width -= add; } else if( x < oldX ) { gint add = view.GetImage->x0 - x; view.GetImage->x0 -= add; view.GetImage->image_width += add; } // VERIFICATION DIMENSION GAUCHE while( view.GetImage->image_width < MIN_SIZE_IMAGE ) { view.GetImage->x0 --; view.GetImage->image_width ++; } if( x != oldX || y != oldY ) { BoolRedraw = TRUE; } } else if( IMG_HAUT_DROIT == view.ImgCorner ) { // HAUT if( y > oldY ) { gint add = y - view.GetImage->y0; view.GetImage->y0 += add; view.GetImage->image_height -= add; } else if( y < oldY ) { gint add = view.GetImage->y0 - y; view.GetImage->y0 -= add; view.GetImage->image_height += add; } // VERIFICATION DIMENSION HAUT while( view.GetImage->image_height < MIN_SIZE_IMAGE ) { view.GetImage->y0 --; view.GetImage->image_height ++; } // DROIT if( x > oldX ) { gint add = x - (view.GetImage->x0 + view.GetImage->image_width); view.GetImage->image_width += add; } else if( x < oldX ) { gint add = (view.GetImage->x0 + view.GetImage->image_width) - x; view.GetImage->image_width -= add; } // VERIFICATION DIMENSION DROIT if( view.GetImage->image_width < MIN_SIZE_IMAGE ) view.GetImage->image_width = MIN_SIZE_IMAGE; if( x != oldX || y != oldY ) { BoolRedraw = TRUE; } } else if( IMG_BAS_DROIT == view.ImgCorner ) { // BAS if( y > oldY ) { gint add = y - (view.GetImage->y0 + view.GetImage->image_height); view.GetImage->image_height += add; } else if( y < oldY ) { gint add = (view.GetImage->y0 + view.GetImage->image_height) - y; view.GetImage->image_height -= add; } // VERIFICATION DIMENSION BAS if( view.GetImage->image_height < MIN_SIZE_IMAGE ) view.GetImage->image_height = MIN_SIZE_IMAGE; // DROIT if( x > oldX ) { gint add = x - (view.GetImage->x0 + view.GetImage->image_width); view.GetImage->image_width += add; } else if( x < oldX ) { gint add = (view.GetImage->x0 + view.GetImage->image_width) - x; view.GetImage->image_width -= add; } // VERIFICATION DIMENSION DROIT if( view.GetImage->image_width < MIN_SIZE_IMAGE ) view.GetImage->image_width = MIN_SIZE_IMAGE; if( x != oldX || y != oldY ) { BoolRedraw = TRUE; } } else if( IMG_BAS_GAUCHE == view.ImgCorner ) { // BAS if( y > oldY ) { gint add = y - (view.GetImage->y0 + view.GetImage->image_height); view.GetImage->image_height += add; } else if( y < oldY ) { gint add = (view.GetImage->y0 + view.GetImage->image_height) - y; view.GetImage->image_height -= add; } // VERIFICATION DIMENSION BAS if( view.GetImage->image_height < MIN_SIZE_IMAGE ) view.GetImage->image_height = MIN_SIZE_IMAGE; // GAUCHE if( x > oldX ) { gint add = x - view.GetImage->x0; view.GetImage->x0 += add; view.GetImage->image_width -= add; } else if( x < oldX ) { gint add = view.GetImage->x0 - x; view.GetImage->x0 -= add; view.GetImage->image_width += add; } // VERIFICATION DIMENSION GAUCHE while( view.GetImage->image_width < MIN_SIZE_IMAGE ) { view.GetImage->x0 --; view.GetImage->image_width ++; } if( x != oldX || y != oldY ) { BoolRedraw = TRUE; } } } } oldX = x; oldY = y; cairo_destroy( cr ); if( TRUE == BoolRedraw ) gtk_widget_queue_draw( view.AdrDrawingarea ); return( FALSE ); } // // void on_button_moins_clicked( GtkButton *button, gpointer user_data ) { view.BoolScaleAdjust = FALSE; view.scale -= 0.4; if( view.scale < 0.4 ) view.scale = 0.4; poche_set_size_request(); gtk_widget_queue_draw( view.AdrDrawingarea ); } // // void on_button_normal_clicked( GtkButton *button, gpointer user_data ) { view.BoolScaleAdjust = FALSE; view.scale = 1.0; poche_set_size_request(); gtk_widget_queue_draw( view.AdrDrawingarea ); } // // void on_button_plus_clicked( GtkButton *button, gpointer user_data ) { view.BoolScaleAdjust = FALSE; view.scale += 0.4; if( view.scale > 6.0 ) view.scale = 6.0; poche_set_size_request(); gtk_widget_queue_draw( view.AdrDrawingarea ); } // // void on_button_ajuster_clicked( GtkButton *button, gpointer user_data ) { view.BoolScaleAdjust = TRUE; gtk_widget_queue_draw( view.AdrDrawingarea ); } // // IMAGE *poche_add_to_glist( gchar *PathNameFile, gdouble x, gdouble y, gboolean p_BoolScale, TYPE_IMAGE p_TypeImage ) { IMAGE *New = (IMAGE *)g_malloc0( sizeof(IMAGE) ); New->TypeImage = p_TypeImage; // _TYPE_TEXT_ // _TYPE_TEXT_TITLE_ New->Texte = NULL; New->FontName = NULL; New->SizeFontName = 8; New->BoolFontBold = FALSE; New->BoolFontItalic = FALSE; New->PosCombobox = 0; // _TYPE_IMAGE_ New->Pixbuf = NULL; New->PixbufOriginal = NULL; // VALUES New->x0 = 0.0; New->y0 = 0.0; New->image_width = 0; New->image_height = 0; New->XPointer = 0.0; New->YPointer = 0.0; New->BoolIsSelected = FALSE; New->BoolStructRemove = FALSE; New->BoolFlipVertical = FALSE; New->BoolFlipHorizontal = FALSE; if( p_TypeImage == _TYPE_IMAGE_ ) { New->PixbufOriginal = gdk_pixbuf_new_from_file( PathNameFile, NULL ); if( TRUE == p_BoolScale ) New->Pixbuf = gdk_pixbuf_scale_simple( New->PixbufOriginal, SIZE_IMAGE_ADD, SIZE_IMAGE_ADD, 2 ); // GDK_INTERP_NEAREST else New->Pixbuf = NULL; // New->image_width = cairo_image_surface_get_width( New->image ); // New->image_height = cairo_image_surface_get_height( New->image ); if( NULL != New->Pixbuf ) { New->image_width = gdk_pixbuf_get_width( New->Pixbuf ); New->image_height = gdk_pixbuf_get_height( New->Pixbuf ); } else { New->image_width = gdk_pixbuf_get_width( New->PixbufOriginal ); New->image_height = gdk_pixbuf_get_height( New->PixbufOriginal ); } New->x0 = x - (New->image_width / 2); New->y0 = y - (New->image_height / 2); New->BoolIsSelected = FALSE; New->BoolStructRemove = FALSE; New->BoolFlipVertical = FALSE; New->BoolFlipHorizontal = FALSE; } else if( p_TypeImage == _TYPE_TEXT_ ) { // _TYPE_TEXT_TITLE_ // _TYPE_TEXT_ New->Texte = g_strdup_printf( "\n Write text %d", g_list_length( view.ListImage )); New->FontName = g_strdup( "Sans" ); New->SizeFontName = 8; New->BoolFontBold = FALSE; New->BoolFontItalic = FALSE; New->PosCombobox = 0; // _TYPE_IMAGE_ New->Pixbuf = NULL; New->PixbufOriginal = NULL; New->BoolFontBold = FALSE; New->BoolFontItalic = FALSE; // VALUES New->x0 = x - 50; New->y0 = y - 50; New->image_width = 100; New->image_height = 50; New->XPointer = 0.0; New->YPointer = 0.0; New->BoolIsSelected = FALSE; New->BoolStructRemove = FALSE; New->BoolFlipVertical = FALSE; New->BoolFlipHorizontal = FALSE; } else if( p_TypeImage == _TYPE_TEXT_TITLE_ ) { // _TYPE_TEXT_TITLE_ // _TYPE_TEXT_ New->Texte = NULL; New->FontName = g_strdup( "Sans" ); New->SizeFontName = 8; New->PosCombobox = 0; // _TYPE_IMAGE_ New->Pixbuf = NULL; New->PixbufOriginal = NULL; // VALUES New->x0 = 0; New->y0 = 0; New->image_width = 100; New->image_height = 50; New->XPointer = 0.0; New->YPointer = 0.0; New->BoolIsSelected = FALSE; New->BoolStructRemove = FALSE; New->BoolFlipVertical = FALSE; New->BoolFlipHorizontal = FALSE; } view.ListImage = g_list_append( view.ListImage, New ); return( New ); } // // AJOUT D UNE STRUCTURE _TYPE_TEXT_TITLE_ SI ELLE N EXISTE PAS // INSERTION DE LA CHANE p_str DANS LA STRUCTURE // void poche_set_texte_title( gchar *p_str ) { GList *List = NULL; IMAGE *Image = NULL; gboolean BoolExist = FALSE; List = g_list_first( view.ListImage ); while( List ) { if( NULL != (Image = (IMAGE *)List->data ) && _TYPE_TEXT_TITLE_ == Image->TypeImage ) { BoolExist = TRUE; break; } List = g_list_next( List ); } if( FALSE == BoolExist ) { Image = poche_add_to_glist( NULL, 0.0, 0.0, FALSE, _TYPE_TEXT_TITLE_ ); Image->Texte = g_strdup( p_str ); } else { if( NULL != Image->Texte ) { g_free( Image->Texte ); Image->Texte = NULL; } Image->Texte = g_strdup( p_str ); } gtk_widget_queue_draw( view.AdrDrawingarea ); } // // static void poche_drag_data_received (GtkWidget *widget, GdkDragContext *drag_context, gint x, gint y, GtkSelectionData *data, guint info, guint time) { // PRINT("DND FROM DESKTOP TO DRAWING"); // Une copie ne peut aller vers elle meme !!! if (gtk_drag_get_source_widget(drag_context) != widget) { dragndrop_list_drag_data (widget, (gchar *)data->data); } } // // void on_drawingareamain_realize( GtkWidget *widget, gpointer user_data ) { view.AdrDrawingarea = widget; view.BoolScaleAdjust = TRUE; view.scale = SCALE_MIN; view.BoolSaveToFile = FALSE; view.image = cairo_image_surface_create( CAIRO_FORMAT_ARGB32, 372, 527 ); view.image_width = cairo_image_surface_get_width( view.image ); view.image_height = cairo_image_surface_get_height( view.image ); poche_set_size_request(); // Drag and drop support // SIGNAL : 'drag-data-received' gtk_drag_dest_set (GTK_WIDGET (widget), GTK_DEST_DEFAULT_MOTION | GTK_DEST_DEFAULT_DROP | GTK_DEST_DEFAULT_HIGHLIGHT, drag_types, n_drag_types, GDK_ACTION_MOVE | GDK_ACTION_COPY | GDK_ACTION_DEFAULT ); g_signal_connect(G_OBJECT(widget), "drag-data-received", G_CALLBACK(poche_drag_data_received), NULL); gtk_button_set_label( GTK_BUTTON(GLADE_GET_OBJECT("button_stock_img")), Config.PathSaveImg ); // EMPLACEMENT DE STOCKAGE DES IMAGES CHARGEES DEPUIS LE WEB // Config.PathPochette = libutils_create_temporary_rep( "/tmp", "zoomc" ); Config.PathPochette = libutils_create_temporary_rep( Config.PathnameTMP, PATH_SAVE_POCHETTE_IMG ); } // // void poche_gestion_images (gchar *path) { if( NULL != Config.PathLoadImg ) { g_free( Config.PathLoadImg ); Config.PathLoadImg = NULL; } Config.PathLoadImg = g_strdup( path ); } // // void on_button_load_file_clicked (GtkButton *button, gpointer user_data) { fileselect_create( _PATH_IMPORT_IMAGES_, Config.PathLoadImg, poche_gestion_images ); } // // void poche_remove_image( void ) { GList *List = NULL; IMAGE *Image = NULL; List = g_list_first( view.ListImage ); while( List ) { if( NULL != (Image = (IMAGE *)List->data ) && FALSE == Image->BoolStructRemove ) { if( TRUE == Image->BoolIsSelected ) { Image->BoolStructRemove = TRUE; if( _TYPE_TEXT_ == Image->TypeImage && NULL != Image->Texte ) { g_free( Image->Texte ); Image->Texte = NULL; pochetxt_set_text_to_textview( Image ); } gtk_widget_queue_draw( view.AdrDrawingarea ); poche_set_flag_buttons(); // DEBUG CDDB_CURL pochetxt_set_combobox_choice( 0 ); break; } } List = g_list_next( List ); } } // // Cette fonction suppose un flag de (non) validite d'une structure IMAGE: BoolStructRemove // void on_button_erase_clicked (GtkButton *button, gpointer user_data) { poche_remove_image(); } // // static void poche_drag_data_received_file (GtkWidget *widget, GdkDragContext *drag_context, gint x, gint y, GtkSelectionData *data, guint info, guint time) { dragndrop_list_drag_data (widget, (gchar *)data->data); } // // void poche_table_add_images_init (void) { if( NULL != view.Adr_table ) { gtk_widget_destroy( view.Adr_table ); view.Adr_table = NULL; } view.Adr_table = gtk_table_new (4, 5, TRUE); gtk_container_add (GTK_CONTAINER (view.Adr_viewport_image_preview), view.Adr_table); gtk_widget_show_all (view.Adr_table); } // // void on_viewport_stock_realize (GtkWidget *widget, gpointer user_data) { view.Adr_viewport_image_preview = widget; view.Adr_table = NULL; poche_table_add_images_init (); // Drag and drop support // SIGNAL : 'drag-data-received' // gtk_drag_dest_set (GTK_WIDGET (widget), GTK_DEST_DEFAULT_MOTION | GTK_DEST_DEFAULT_DROP, drag_types, n_drag_types, GDK_ACTION_COPY| GDK_ACTION_MOVE ); g_signal_connect(G_OBJECT(widget), "drag-data-received", G_CALLBACK(poche_drag_data_received_file), NULL); } // // void poche_set_selected_flag_image( IMAGE *p_Image ) { GList *List = NULL; IMAGE *Image = NULL; // GET List OF p_Image to FALSE List = g_list_first( view.ListImage ); while( List ) { if( NULL != (Image = (IMAGE *)List->data ) && FALSE == Image->BoolStructRemove ) { Image->BoolIsSelected = FALSE; } List = g_list_next( List ); } // SET p_Image to TRUE p_Image->BoolIsSelected = TRUE; } // // void poche_add_img_file_to_Drawingarea( GSList *p_list ) { GSList *gs_List = p_list; gchar *Ptr = NULL; IMAGE *Image = NULL; gdouble x, y; gint X, Y; GdkModifierType state; cairo_t *cr; PRINT_FUNC_LF(); gdk_window_get_pointer( view.AdrDrawingarea->window, &X, &Y, &state ); cr = gdk_cairo_create( view.AdrDrawingarea->window ); cairo_scale (cr, view.scale, view.scale); cairo_translate (cr, view.x0, view.y0); x = X; y = Y; cairo_device_to_user (cr, &x, &y); cairo_destroy( cr ); while (gs_List) { if ((Ptr = (gchar *)gs_List->data) != NULL) { // PRENDRE UNIQUEMENT LA PREMIERE IMAGE VALIDE DANS LA LISTE if( TRUE == FileIs_image( Ptr )) { Image = poche_add_to_glist( Ptr, x, y, TRUE, _TYPE_IMAGE_ ); poche_set_selected_flag_image( Image ); gtk_widget_queue_draw( view.AdrDrawingarea ); return; } } gs_List = g_slist_next (gs_List); } if(NULL != Ptr && FALSE == FileIs_image( Ptr )) { PRINT("BAD FILE"); g_print( "\t%s\n", Ptr ); } } // // IMAGE *poche_get_struct_selected_is_txt( void ) { IMAGE *Image = NULL; GList *List = NULL; List = g_list_first( view.ListImage ); while( List ) { if( NULL != (Image = (IMAGE *)List->data ) && TRUE == Image->BoolIsSelected && _TYPE_TEXT_ == Image->TypeImage && FALSE == Image->BoolStructRemove ) { return( Image ); } List = g_list_next( List ); } return( NULL ); } xcfa-4.3.6/src/win_reader.c0000644000175000017500000001436312122563465012455 00000000000000 /* * file : win_reader.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "mplayer.h" #include "win_reader.h" typedef struct { GtkWidget *AdrWin; GtkWidget *AdrScale; GtkObject *AdrAdjust; GtkWidget *AdrHscale; gboolean IsShow; gboolean BoolValueChange; } VAR_WINDREADER; VAR_WINDREADER VarWindReader = { NULL, NULL, NULL, NULL, FALSE, FALSE }; void WinReader_set_value (gdouble p_value) { if (TRUE == VarWindReader.IsShow) { gtk_adjustment_set_value (GTK_ADJUSTMENT (VarWindReader.AdrAdjust), p_value); } } // HSCALE VALUR-CHANGE // gboolean WinReader_value_change (GtkRange *range, GtkScrollType scroll, gdouble value, gpointer user_data) { if (value < 0.0) value = 0.0; if (value > 100.0) value = 100.0; if (GDK_BUTTON_RELEASE == VarMplayer.Button) { mplayer_fifo_seek_with_hundr (value); VarMplayer.Button = -1; } VarMplayer.PercentTempsActuel = value; VarWindReader.BoolValueChange = TRUE; WinReader_set_value (value); return FALSE; } // HSCALE EVENT // gboolean WinReader_event (GtkWidget *treeview, GdkEvent *event, gpointer user_data) { if (GDK_BUTTON_PRESS == event->type) { VarMplayer.Button = GDK_BUTTON_PRESS; } if (GDK_BUTTON_RELEASE == event->type) { VarMplayer.Button = GDK_BUTTON_RELEASE; } return (FALSE); } // HSCALE REALISE // void on_hbox_WindReader_realize (GtkWidget *widget, gpointer user_data) { VarWindReader.AdrAdjust = gtk_adjustment_new (0, 0, 100.0, 0.001, 1, 0); VarWindReader.AdrHscale = gtk_hscale_new (GTK_ADJUSTMENT (VarWindReader.AdrAdjust)); gtk_widget_show (VarWindReader.AdrHscale); gtk_scale_set_draw_value (GTK_SCALE (VarWindReader.AdrHscale), FALSE); gtk_box_pack_start (GTK_BOX (widget), VarWindReader.AdrHscale, TRUE, TRUE, 0); GTK_WIDGET_UNSET_FLAGS (widget, GTK_CAN_FOCUS); gtk_scale_set_value_pos (GTK_SCALE (VarWindReader.AdrHscale), GTK_POS_LEFT); g_signal_connect ((gpointer) VarWindReader.AdrHscale, "change_value", G_CALLBACK (WinReader_value_change), NULL); g_signal_connect ((gpointer) VarWindReader.AdrHscale, "event",G_CALLBACK (WinReader_event), NULL); } // DELETE EVENT // gboolean on_WindReader_delete_event (GtkWidget *widget, GdkEvent *event, gpointer user_data) { mplayer_fifo_quit (); VarWindReader.IsShow = FALSE; gtk_widget_hide (VarWindReader.AdrWin); return TRUE; } // DESTROY EVENT // gboolean on_WindReader_destroy_event (GtkWidget *widget, GdkEvent *event, gpointer user_data) { mplayer_fifo_quit (); VarWindReader.IsShow = FALSE; gtk_widget_hide (VarWindReader.AdrWin); return TRUE; } // PAUSE // void on_button_pause_WindReader_clicked (GtkButton *button, gpointer user_data) { mplayer_fifo_pause (); WinReader_set_lecture (); } // LECTURE // void on_button_lecture_WindReader_clicked (GtkButton *button, gpointer user_data) { if (TRUE == VarWindReader.BoolValueChange) { VarMplayer.Button = -1; VarWindReader.BoolValueChange = FALSE; mplayer_fifo_seek_with_hundr (VarMplayer.PercentTempsActuel); } else { mplayer_fifo_seek (VarMplayer.PercentTempsActuel); } WinReader_set_pause (); } // QUITTER // void on_button_quitter_WindReader_clicked (GtkButton *button, gpointer user_data) { VarMplayer.BoolIsPause = FALSE; mplayer_fifo_seek (VarMplayer.PercentTempsActuel); mplayer_fifo_quit (); VarWindReader.IsShow = FALSE; gtk_widget_hide (VarWindReader.AdrWin); } // WIN-READER OPEN // void WinReader_open (gchar *title) { if (TRUE == VarWindReader.IsShow) { gdk_window_raise (VarWindReader.AdrWin->window); } else { if (NULL == VarWindReader.AdrWin) { VarWindReader.AdrWin = GTK_WIDGET (GLADE_GET_OBJECT("WindReader")); gtk_builder_connect_signals (GtkXcfaProjet, NULL); } gtk_window_set_transient_for (GTK_WINDOW(VarWindReader.AdrWin), GTK_WINDOW(WindMain)); gtk_window_set_modal (GTK_WINDOW (VarWindReader.AdrWin), TRUE); libutils_set_default_icone_to_win (VarWindReader.AdrWin); gtk_widget_show (VarWindReader.AdrWin); } VarWindReader.IsShow = TRUE; VarWindReader.BoolValueChange = FALSE; if (NULL != title) gtk_window_set_title (GTK_WINDOW (VarWindReader.AdrWin), title); if (LIST_MPLAYER_FROM_DVD == VarMplayer.ListPlayFrom) { gtk_widget_hide (GTK_WIDGET (GLADE_GET_OBJECT("hbox_WindReader"))); } else { gtk_widget_show (GTK_WIDGET (GLADE_GET_OBJECT("hbox_WindReader"))); } } // WIN-READER SET-TITLE // void WinReader_set_title (gchar *title) { if (TRUE == VarWindReader.IsShow && NULL != title) gtk_window_set_title (GTK_WINDOW (VarWindReader.AdrWin), title); } // WIN-READER SHOW-PAUSE & HIDE-LECTURE // void WinReader_set_pause (void) { if (TRUE == VarWindReader.IsShow) { gtk_widget_hide (GTK_WIDGET (GLADE_GET_OBJECT("button_lecture_WindReader"))); gtk_widget_show (GTK_WIDGET (GLADE_GET_OBJECT("button_pause_WindReader"))); } } // WIN-READER HIDE-PAUSE & SHOW-LECTURE // void WinReader_set_lecture (void) { if (TRUE == VarWindReader.IsShow) { gtk_widget_hide (GTK_WIDGET (GLADE_GET_OBJECT("button_pause_WindReader"))); gtk_widget_show (GTK_WIDGET (GLADE_GET_OBJECT("button_lecture_WindReader"))); } } // WIN-READER CLOSE // void WinReader_close (void) { if (TRUE == VarWindReader.IsShow) { WinReader_set_lecture (); VarWindReader.IsShow = FALSE; gtk_widget_hide (VarWindReader.AdrWin); } } // WIN-READER IS OK // gboolean WinReader_is_close (void) { return (VarWindReader.IsShow ? FALSE : TRUE); } xcfa-4.3.6/src/scan.c0000644000175000017500000002763312122563465011266 00000000000000 /* * file : scan_cd.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "cd_audio.h" #include "configuser.h" #include "proc.h" #include "dvd.h" #include "get_info.h" #include "win_info.h" #include "scan.h" /* *--------------------------------------------------------------------------- * VARIABLES *--------------------------------------------------------------------------- */ typedef struct { GList *Media_List; // NULL gint TotalReadersDetected; // 0 gboolean bool_scan_cd_dvd; // TRUE } VAR_SCANCD; VAR_SCANCD var_scancd = {NULL, 0, TRUE}; /* Idee de code reprise depuis : graveman-0.3.12-4 * 2005 - 11 - 11 */ typedef enum { _NONE_, IDE, SCSI } TP; typedef struct { TP tp; gchar *detectline; gchar *useline; gchar *info; gboolean tst; } Tsearchdrive; // definition de tous les type de bus // Tsearchdrive listesearchdrives[] = { /* * 10 - LINUX_IDE : pure ide devices with linux */ { IDE, "dev=/dev/hda", "/dev/hda", "hda", FALSE }, { IDE, "dev=/dev/hdb", "/dev/hdb", "hdb", FALSE }, { IDE, "dev=/dev/hdc", "/dev/hdc", "hdc", FALSE }, { IDE, "dev=/dev/hdd", "/dev/hdd", "hdd", FALSE }, { IDE, "dev=/dev/hde", "/dev/hde", "hde", FALSE }, { IDE, "dev=/dev/hdf", "/dev/hdf", "hdf", FALSE }, { IDE, "dev=/dev/hdg", "/dev/hdg", "hdg", FALSE }, { IDE, "dev=/dev/hdh", "/dev/hdh", "hdh", FALSE }, { IDE, "dev=/dev/hdi", "/dev/hdi", "hdi", FALSE }, { IDE, "dev=/dev/hdj", "/dev/hdj", "hdj", FALSE }, /* * 28 - LINUX_SCSI : SCSI alias with linux */ { SCSI, "dev=/dev/scd0", "/dev/scd0", "scd0", FALSE }, { SCSI, "dev=/dev/scd1", "/dev/scd1", "scd1", FALSE }, { SCSI, "dev=/dev/scd2", "/dev/scd2", "scd2", FALSE }, { SCSI, "dev=/dev/scd3", "/dev/scd3", "scd3", FALSE }, { SCSI, "dev=/dev/scd4", "/dev/scd4", "scd4", FALSE }, { SCSI, "dev=/dev/scd5", "/dev/scd5", "scd5", FALSE }, { SCSI, "dev=/dev/scd6", "/dev/scd6", "scd6", FALSE }, { SCSI, "dev=/dev/sr0", "/dev/sr0", "sr0", FALSE }, { SCSI, "dev=/dev/sr1", "/dev/sr1", "sr1", FALSE }, { SCSI, "dev=/dev/sr2", "/dev/sr2", "sr2", FALSE }, { SCSI, "dev=/dev/sr3", "/dev/sr3", "sr3", FALSE }, { SCSI, "dev=/dev/sr4", "/dev/sr4", "sr4", FALSE }, { SCSI, "dev=/dev/sr5", "/dev/sr5", "sr5", FALSE }, { SCSI, "dev=/dev/sr6", "/dev/sr6", "sr6", FALSE }, { SCSI, "dev=/dev/sg0", "/dev/sg0", "sg0", FALSE }, { SCSI, "dev=/dev/sg1", "/dev/sg1", "sg1", FALSE }, { SCSI, "dev=/dev/sg2", "/dev/sg2", "sg2", FALSE }, { SCSI, "dev=/dev/sg3", "/dev/sg3", "sg3", FALSE }, { SCSI, "dev=/dev/sg4", "/dev/sg4", "sg4", FALSE }, { SCSI, "dev=/dev/sg5", "/dev/sg5", "sg5", FALSE }, { SCSI, "dev=/dev/sg6", "/dev/sg6", "sg6", FALSE }, { SCSI, "dev=/dev/sga", "/dev/sga", "sga", FALSE }, { SCSI, "dev=/dev/sgb", "/dev/sgb", "sgb", FALSE }, { SCSI, "dev=/dev/sgc", "/dev/sgc", "sgc", FALSE }, { SCSI, "dev=/dev/sgd", "/dev/sgd", "sgd", FALSE }, { SCSI, "dev=/dev/sge", "/dev/sge", "sge", FALSE }, { SCSI, "dev=/dev/sgf", "/dev/sgf", "sgf", FALSE }, { SCSI, "dev=/dev/sgg", "/dev/sgg", "sgg", FALSE }, /* * The end of list */ { _NONE_, NULL, NULL, NULL, FALSE} }; /* *--------------------------------------------------------------------------- * FUNCTIONS *--------------------------------------------------------------------------- */ void scan_set_bool_scan (gboolean p_flag) { var_scancd.bool_scan_cd_dvd = p_flag; } /* ** Return total readers in computer */ gint scan_get_nbr_readers_detected (void) { /* PRINT_FUNC_LF(); */ return (var_scancd.TotalReadersDetected); } /* ** Renvoie le numero du lecteur en selection */ gint scan_get_num_config_cd_is_selected (void) { /* PRINT_FUNC_LF(); */ return (0); } /* ** Ouverture du lecteur en selection */ void scan_open_peri_cd (void) { /* PRINT_FUNC_LF(); */ } /* ** Fermeture du lecteur en selection */ void scan_close_peri_cd (void) { /* PRINT_FUNC_LF(); */ } /* ** Nouvelle selection de lecteur CD ou DVD */ void scan_set_sel_reader_cd (gint column, gint row) { /* PRINT_FUNC_LF(); */ } /* ** Affiche 'NameDevice' et 'NameLink' dans 'Adr_ClistConfigCD' */ void scan_print_name_cdrom (gchar *NameDevice, gchar *NameLink) { /* PRINT_FUNC_LF(); */ if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("\tNameDevice=%s NameLink=%s\n", NameDevice, NameLink); } /* Detruit la GList MEDIA */ void scan_remove_glist_media (void) { GList *list = NULL; MEDIA *Media = NULL; gint NbList = 0; /* PRINT_FUNC_LF(); */ list = g_list_first (var_scancd.Media_List); while (list) { if (NULL != (Media = (MEDIA *)list->data)) { g_free (Media->Full_Name); g_free (Media->Device); g_free (Media); Media = NULL; list->data = NULL; NbList ++; } list = g_list_next (list); } g_list_free (var_scancd.Media_List); var_scancd.Media_List = NULL; if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("\tRemove: %d\n", NbList); } // // GList *scan_scan_drives_cd_dvd (void) { GString *gstr = NULL; gchar *Lout = NULL; Tsearchdrive *Lcurentry; gchar *Ptr = NULL; MEDIA *Media = NULL; GList *List = NULL; GList *cd_list = NULL; gchar str [256]; gint i; gint pass; // PRINT_FUNC_LF(); if (var_scancd.bool_scan_cd_dvd == FALSE) { g_print ("En activant cette option [xcfa --no_cd_dvd] en ligne de commande, vous activez la non reconnaissance des lecteurs cd - dvd\n\n"); return ((GList *)NULL); } /* test is 'dvd+rw-tools package' present ? */ if (libutils_find_file ("dvd+rw-mediainfo") == FALSE) { wininfo_create ( WindMain, _("PACKAGE dvd+rw-tools ABSENT"), _("Le package 'dvd+rw-tools' est absent"), "\n", _("de votre systeme !"), "\n\n", _("Veuillez l'installer car j'ai besoin de"), "\n", _("'dvd+rw-mediainfo' pour identifier le(s)"), "\n", _("lecteur(s) de cd / dvd."), ""); return (NULL); } /* Init a FALSE */ for (Lcurentry = listesearchdrives; Lcurentry->detectline; Lcurentry++) Lcurentry->tst = FALSE; /* Prend dans tous les cd.dvd installes de l'ordi et * active la variable de recherche dans 'Lcurentry' */ List = proc_get_proc_init_cdrominfo (); if (List) { cd_list = g_list_first (List); while (cd_list) { if ((gchar *)cd_list->data) { if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("%s\n", (gchar *)cd_list->data); for (Lcurentry = listesearchdrives; Lcurentry->detectline; Lcurentry++) { /*Lcurentry->tst = FALSE;*/ if (0 == strncmp((gchar *)cd_list->data, Lcurentry->info, strlen((gchar *)cd_list->data))) { Lcurentry->tst = TRUE; break; } } } cd_list = g_list_next(cd_list); } } else { /* Le fichier n'existe pas: toutes * les entrees 'Lcurentry->useline' seront testees */ for (Lcurentry = listesearchdrives; Lcurentry->detectline; Lcurentry++) Lcurentry->tst = TRUE; } List = proc_remove_glist_cdrominfo (List); /* l'analyse des medias commence ici */ var_scancd.TotalReadersDetected = 0; if( TRUE == OptionsCommandLine.BoolVerboseMode ) { g_print ("\nAnalyse devices in : "); g_print ("%s::%s(line=%d) \n", __FILE__, __FUNCTION__, __LINE__); } if( TRUE == libutils_test_dir_exist( "/dev" )) { for (pass = 0, Lcurentry = listesearchdrives; Lcurentry->detectline; pass++, Lcurentry++) { /* Entree en test ? */ if (Lcurentry->tst == FALSE) continue; if( FALSE == libutils_access_mode( Lcurentry->useline )) continue; /* TODO * TODO : 'dvd+rw-mediainfo' FONCTIONNE T-IL AUSSI AVEC LES LECTEURS DE CD ? * TODO : IL FAUDRAIT AUSSI FAIRE UN TEST AVEC DES LECTEURS / GRAVEURS DE CD * TODO */ gstr = GetInfo_mediainfo( Lcurentry->useline ); Lout = gstr->str; if (*Lout) { if ((Ptr = strstr (Lout, "INQUIRY:"))) { /* sur mon ordi : INQUIRY: [_NEC ][DVD_RW ND-3520A ][1.04] INQUIRY: [_NEC ][DVD_RW ND-3520A ][3.05] -- Apres un flash bios INQUIRY: [_NEC ][DVD_RW ND-3520A ][3.06] -- Apres un flash bios INQUIRY: [DVDRW ][IDE 16X ][A07R] INQUIRY: [DVDRW ][IDE 16X ][A190] -- Apres un flash bios */ /* remplacer tous les '[' et les ']' par ' ' */ if (strchr (Ptr, '[') && strchr (Ptr, ']')) { Ptr = strchr (Ptr, '['); i = 0; while (*Ptr != '\n') str [ i++ ] = *Ptr++; str [ i ] = '\0'; while ((Ptr = strchr (str, '['))) *Ptr = ' '; while ((Ptr = strchr (str, ']'))) *Ptr = ' '; /* supprimer les espaces de debut */ Ptr = str; while (*Ptr == ' ') Ptr ++; strcpy (str, Ptr); /* supprimer les espaces de fin */ Ptr = str; while (*Ptr) Ptr ++; Ptr --; while (*Ptr == ' ') Ptr --; Ptr ++; *Ptr = '\0'; /* supprimer les doubles espaces */ Ptr = str; while (*Ptr) { if ((*Ptr==' ') && (*(Ptr+1)==' ')) { strcpy (Ptr, Ptr+1); Ptr = str; continue; } Ptr ++; } if( TRUE == OptionsCommandLine.BoolVerboseMode ) { g_print ("\tline[ %d ] %s ", pass, Lcurentry->tp == IDE ? "IDE" : "SCSI"); g_print ("%s\t'%s'\n", Lcurentry->useline, str); } if ((Media = (MEDIA *)g_malloc0 (sizeof (MEDIA)))) { Media->Full_Name = g_strdup (str); Media->Device = g_strdup (Lcurentry->useline); Media->Num = var_scancd.TotalReadersDetected; var_scancd.TotalReadersDetected ++; Media->line = pass; Media->type = Lcurentry->tp == IDE ? 0 : 1; List = g_list_append (List, Media); } } else { PRINT_FUNC_LF(); if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("La ligne renvoyee par: dvd+rw-mediainfo est inconnue\n"); } } } g_string_free (gstr, TRUE); Lout = NULL; } } g_print ("\n"); return (List); } // Retourne un pointeur sur le media actif // gchar *scan_get_text_combo_cd (TYPE_READER type_reader) { gint Nmr_Combo_Actif = -1; GList *List = NULL; MEDIA *Media = NULL; /* PRINT_FUNC_LF(); */ if (type_reader == _CD_) { Nmr_Combo_Actif = gtk_combo_box_get_active (var_cd.Adr_Combo_Box); } else if (type_reader == _DVD_) { Nmr_Combo_Actif = gtk_combo_box_get_active (var_dvd.Adr_ComboBox_Reader); if( dvd_bool_read_dvd_from_directory () == TRUE ) { return( (gchar *)var_dvd.from.path ); } } List = g_list_first (var_scancd.Media_List); while (List) { if ((Media = (MEDIA *)List->data)) { if (Media->Num == Nmr_Combo_Actif) return ((gchar *)Media->Device); } List = g_list_next(List); } return ((gchar *)NULL); } // // GList *scan_get_glist (void) { if (var_scancd.Media_List == NULL) var_scancd.Media_List = scan_scan_drives_cd_dvd (); return ( (GList *)var_scancd.Media_List); } // // void scan_eject_media (TYPE_READER TypeReadder) { GetInfo_eject ( scan_get_text_combo_cd (TypeReadder)); } xcfa-4.3.6/src/cd_audio_toc.c0000644000175000017500000001602212122563465012744 00000000000000 /* * file : cd_audio_toc.h * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "file.h" #include "cd_audio_extract.h" #include "configuser.h" #include "scan.h" #include "cd_cue.h" #include "win_info.h" #include "win_scan.h" #include "cd_audio.h" #include "cd_curl.h" #include "statusbar.h" #include "prg_init.h" #include "cd_curl.h" #include "options.h" /* *--------------------------------------------------------------------------- * VARIABLES *--------------------------------------------------------------------------- */ /* Activation du thread de lecture du catalogue du cd-audio et * des datas WEB si l'utilisateur est connecte * -- * entree : - * retour : - */ void *cdaudiotoc_thread_do_read_toc_cd (void *data) { var_cd.bool_thread_read_toc_cd = TRUE; EnteteCD.Bool_Read_Infos_cd = CdCurl_get_info_cd(); var_cd.bool_thread_read_toc_cd = FALSE; pthread_exit (0); } /* Mise a jour des informations du cd-audio * -- * entree : * gpointer data : * retour : * TRUE */ static gint cdaudiotoc_timeout_do_read_toc_cd (gpointer data) { if (var_cd.bool_thread_read_toc_cd == FALSE) { // FIN du timeout Update_cdaudio_do_read_toc_cd gtk_timeout_remove (var_cd.handler_timeout_read_toc_cd); cdaudio_put_label_duree (""); cdaudio_put_label_titre (""); if (EnteteCD.Bool_Read_Infos_cd == TRUE) { if (EnteteCD.GList_Audio_cd != NULL) { cdaudio_affiche_glist_audio (); cdaudio_set_flag_buttons (); cdaudio_put_label_duree (EnteteCD.StrDureeCd); cdaudio_put_label_titre (EnteteCD.TitleCD != NULL ? EnteteCD.TitleCD : ""); OptionsCd_set_entry_and_label(); /* TO DEBUG : A VERIFIER DES QUE CONNECTION WEB EST OK g_print ("\n"); g_print ("EnteteCD.TitleCD : %s\n", EnteteCD.TitleCD); g_print ("EnteteCD.Title : %s\n", EnteteCD.Title); g_print ("EnteteCD.Artiste : %s\n", EnteteCD.Artiste); g_print ("EnteteCD.StrDureeCd : %s\n", EnteteCD.StrDureeCd); g_print ("EnteteCD.Num_ID_CD : %lu\n",EnteteCD.Num_ID_CD); g_print ("EnteteCD.Str_ID_CD : %s\n", EnteteCD.Str_ID_CD); g_print ("EnteteCD.TotalTracks : %d\n", EnteteCD.TotalTracks); g_print ("EnteteCD.NumGenre : %d\n", EnteteCD.NumGenre); g_print ("EnteteCD.StrGenre : %s\n", EnteteCD.StrGenre); g_print ("GENRE : %s\n", cddb_disc_db_genre(EnteteCD.NumGenre)); g_print ("EnteteCD.NumYear : %d\n", EnteteCD.NumYear); g_print ("EnteteCD.StrYear : %s\n", EnteteCD.StrYear); g_print ("EnteteCD.Bool_Read_Infos_cd : %s\n", EnteteCD.Bool_Read_Infos_cd ? "TRUE" : "FALSE"); g_print ("EnteteCD.Message : %s\n", EnteteCD.Message); */ } } CdCurl_set_list_discid(); StatusBar_set_mess( NOTEBOOK_CD_AUDIO, _STATUSBAR_SIMPLE_, EnteteCD.Message); StatusBar_puts(); var_cd.bool_timeout_read_toc_cd = FALSE; cd_audio_bool_access_discid( TRUE ); WindScan_close (); } return (TRUE); } /* Lecture du catalogue du cd-audio * -- * entree : - * retour : - */ void cdaudiotoc_reffresh_list_cd (void) { pthread_t nmr_tid; if (var_cd.Adr_Combo_Box == NULL) return; if( FALSE == PrgInit.bool_cdda2wav ) { PRINT_FUNC_LF(); if( FALSE == libutils_find_file( "icedax" ) && FALSE == libutils_find_file( "cdda2wav" )) { wininfo_create ( WindMain, _("cdda2wav and icedax NOT FOUND"), _("Please, install packages [ icedax, cdda2wav ]"), ""); } else if( FALSE == libutils_find_file( "icedax" )) { wininfo_create ( WindMain, _("icedax NOT FOUND"), _("Please, install package [ icedax ]"), ""); } else if( FALSE == libutils_find_file( "cdda2wav" )) { wininfo_create ( WindMain, _("cdda2wav NOT FOUND"), _("Please, install package [ cdda2wav ]"), ""); } return; } if( FALSE == PrgInit.bool_cdparanoia ) { PRINT_FUNC_LF(); wininfo_create ( WindMain, _("cdparanoia NOT FOUND"), _("Please, install package [ cdparanoia ]"), ""); return; } if( FALSE == PrgInit.bool_cd_discid ) { wininfo_create ( WindMain, _("cd-discid NOT FOUND"), _("Please, install packages [ cd-discid ]"), ""); return; } if( SERVER_PROXY_PARAM == Config.ServeurCddb ) { gboolean BoolAccess = TRUE; if( '\0' == *Config.entry_proxy_server ) BoolAccess = FALSE; if( '\0' == *Config.entry_proxy_port ) BoolAccess = FALSE; if( FALSE == BoolAccess ) { wininfo_create ( WindMain, _("ERREUR datas proxy"), _("Veuillez renseigner les champs du proxy"), ""); return; } } WindScan_open ("Scan CD", WINDSCAN_PULSE); WindScan_show_cancel( FALSE ); WindScan_set_label ("Scanning CD ..."); WindScan_set_pulse (); EnteteCD.NameCD_Device = scan_get_text_combo_cd (_CD_); cdaudio_deallocate_glist_context (); cdaudio_deallocate_glist (); cdcue_remove_base_ioctl (); gtk_list_store_clear (var_cd.Adr_List_Store); cdaudio_set_flag_buttons (); // ACTIVATION de l'update qui attends la fin du thread cd audio var_cd.bool_thread_read_toc_cd = TRUE; var_cd.bool_timeout_read_toc_cd = TRUE; var_cd.handler_timeout_read_toc_cd = gtk_timeout_add (50, cdaudiotoc_timeout_do_read_toc_cd, 0); pthread_create (&nmr_tid, NULL ,(void *)cdaudiotoc_thread_do_read_toc_cd, (void *)NULL); } // // void cdaudiotoc_button_eject_cd_clicked (void) { if (FALSE == libutils_find_file ("eject")) { PRINT_FUNC_LF(); wininfo_create ( WindMain, "eject NOT FOUND !", "Please, install package [ eject ]", ""); return; } cdaudio_deallocate_glist_context (); cdaudio_deallocate_glist (); cdcue_remove_base_ioctl (); gtk_list_store_clear (var_cd.Adr_List_Store); cdaudio_set_flag_buttons (); scan_eject_media (_CD_); libcombo_remove_options( GTK_COMBO_BOX(var_cd.Adr_combobox_discid_cd)); gtk_combo_box_set_active( GTK_COMBO_BOX(var_cd.Adr_combobox_discid_cd), 0 ); while (gtk_events_pending()) gtk_main_iteration(); gtk_widget_hide( GTK_WIDGET (GLADE_GET_OBJECT("frame_discid"))); while (gtk_events_pending()) gtk_main_iteration(); } xcfa-4.3.6/src/poche_save.c0000644000175000017500000001143612122563465012450 00000000000000 /* * file : poche_save.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #include #include #include #include #include // M_PI #include #include #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "win_info.h" #include "configuser.h" #include "statusbar.h" #include "poche.h" // SEE: // http://en.literateprograms.org/Hello_World_%28C,_Cairo%29 // void pochesave_write_png( gchar *fname, gint width, gint height ) { cairo_surface_t *cs; cs = cairo_image_surface_create( CAIRO_FORMAT_ARGB32, width, height ); pochedraw_paint( cs ); cairo_surface_write_to_png( cs, fname ); cairo_surface_destroy( cs ); } // SEE: // http://en.literateprograms.org/Hello_World_%28C,_Cairo%29 // void pochesave_write_pdf( gchar *fname, gint width, gint height ) { cairo_surface_t *cs; cs = cairo_pdf_surface_create( fname, width, height ); pochedraw_paint( cs ); cairo_surface_destroy( cs ); } // SEE: // http://en.literateprograms.org/Hello_World_%28C,_Cairo%29 // void pochesave_write_ps( gchar *fname, gint width, gint height ) { cairo_surface_t *cs; cs = cairo_ps_surface_create( fname, width, height ); pochedraw_paint( cs ); cairo_surface_destroy( cs ); } // // PRINT WITH GIMP IS OK // PRINT PS and PDF IS OK // void on_button_save_clicked( GtkButton *button, gpointer user_data ) { gint width; gint height; gdouble OldScale = view.scale; gboolean BoolScaleAdjust = view.BoolScaleAdjust; gchar *PathNameSaveFile = NULL; gchar *NameSaveFile = pochetxt_get_ptr_entry_name_file_to_save(); if( NULL == NameSaveFile || '\0' == *NameSaveFile ) { wininfo_create ( WindMain, _("Nom de fichier absent !!"), _("Pour resoudre ce probleme:"), "\n", "-----------------------------------\n", _("Saisissez un nom de fichier sans extention"), ""); return; } view.BoolScaleAdjust = FALSE; // // PDF POSTSCRIPT // // StatusBar_puts( _("Sauvegarde aux formats PDF et PostScript") ); StatusBar_set_mess( NOTEBOOK_POCHETTE, _STATUSBAR_SIMPLE_, _("Sauvegarde aux formats PDF et PostScript") ); view.scale = 1.55; poche_set_size_request(); gtk_widget_queue_draw( view.AdrDrawingarea ); while (gtk_events_pending()) gtk_main_iteration(); width = view.AdrDrawingarea->allocation.width; height = view.AdrDrawingarea->allocation.height; PathNameSaveFile = g_strdup_printf( "%s/%s.pdf", Config.PathSaveImg, NameSaveFile ); // REDIRECTION VERS PDF ET POSTSCRIPT view.BoolSaveToFile = TRUE; pochesave_write_pdf( PathNameSaveFile, width, height ); g_free( PathNameSaveFile ); PathNameSaveFile = NULL; PathNameSaveFile = g_strdup_printf( "%s/%s.ps", Config.PathSaveImg, NameSaveFile ); pochesave_write_ps( PathNameSaveFile, width, height ); g_free( PathNameSaveFile ); PathNameSaveFile = NULL; view.BoolSaveToFile = FALSE; // // PNG // // StatusBar_puts( _("Sauvegarde au format PNG") ); StatusBar_set_mess( NOTEBOOK_POCHETTE, _STATUSBAR_SIMPLE_, _("Sauvegarde au format PNG") ); view.scale = 2.0; poche_set_size_request(); gtk_widget_queue_draw( view.AdrDrawingarea ); while (gtk_events_pending()) gtk_main_iteration(); width = view.AdrDrawingarea->allocation.width; height = view.AdrDrawingarea->allocation.height; PathNameSaveFile = g_strdup_printf( "%s/%s.png", Config.PathSaveImg, NameSaveFile ); // REDIRECTION VERS PNG view.BoolSaveToFile = TRUE; pochesave_write_png( PathNameSaveFile, width, height ); g_free( PathNameSaveFile ); PathNameSaveFile = NULL; view.BoolSaveToFile = FALSE; view.scale = OldScale; view.BoolScaleAdjust = BoolScaleAdjust; poche_set_size_request(); gtk_widget_queue_draw( view.AdrDrawingarea ); // StatusBar_puts( "" ); StatusBar_set_mess( NOTEBOOK_POCHETTE, _STATUSBAR_SIMPLE_, "" ); } xcfa-4.3.6/src/popup.c0000644000175000017500000014372412122563465011505 00000000000000 /* * file : popup.c * project : xcfa * with : Gtk-2 * * copyright :( C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "poche.h" #include "cd_audio.h" #include "dvd.h" #include "split.h" #include "popup.h" typedef struct { DETAIL *detail; CD_AUDIO *Audio; TYPE_FILE_IS type_file_is; } VAR_POPUP; VAR_POPUP VarPopup; typedef struct { gboolean Show; gint Type; gint Val; gint Call; } MENU_VAL; typedef struct { GtkWidget *Widget; gchar *Title; MENU_VAL Op; } POP_MENU; #define CASE_POP_MENU_FICHERS 0 #define MAX_POP_MENU_FICHERS 9 POP_MENU PopMenuFichiers [ MAX_POP_MENU_FICHERS ] = { /* WIDGET TITLE OP SHOW TYPE VAL CALL */ {NULL, gettext_noop(" Deselection globale"), {TRUE, 0, 0, CASE_POP_MENU_FICHERS}}, {NULL, gettext_noop(" Deselection verticale"), {TRUE, 0, 0, CASE_POP_MENU_FICHERS +1}}, {NULL, gettext_noop(" Deselection horizontale"), {TRUE, 0, 0, CASE_POP_MENU_FICHERS +2}}, {NULL, gettext_noop(" ---"), {FALSE, -1, 0, -1}}, {NULL, gettext_noop(" Selection verticale"), {TRUE, 0, 0, CASE_POP_MENU_FICHERS +3}}, {NULL, gettext_noop(" Selection Expert verticale"), {TRUE, 0, 0, CASE_POP_MENU_FICHERS +4}}, {NULL, gettext_noop(" ---"), {FALSE, -1, 0, -1}}, {NULL, gettext_noop(" Selection horizontale"), {TRUE, 0, 0, CASE_POP_MENU_FICHERS +5}}, {NULL, gettext_noop(" Selection Expert horizontale "), {TRUE, 0, 0, CASE_POP_MENU_FICHERS +6}} }; #define CASE_POP_MENU_CD 10 #define MAX_POP_MENU_CD 9 POP_MENU PopMenuCD [ MAX_POP_MENU_CD ] = { /* WIDGET TITLE OP SHOW TYPE VAL CALL */ {NULL, gettext_noop(" Deselection globale"), {TRUE, 0, 0, CASE_POP_MENU_CD}}, {NULL, gettext_noop(" Deselection verticale"), {TRUE, 0, 0, CASE_POP_MENU_CD +1}}, {NULL, gettext_noop(" Deselection horizontale"), {TRUE, 0, 0, CASE_POP_MENU_CD +2}}, {NULL, gettext_noop(" ---"), {FALSE, -1, 0, -1}}, {NULL, gettext_noop(" Selection verticale"), {TRUE, 0, 0, CASE_POP_MENU_CD +3}}, {NULL, gettext_noop(" Selection Expert verticale"), {TRUE, 0, 0, CASE_POP_MENU_CD +4}}, {NULL, gettext_noop(" ---"), {FALSE, -1, 0, -1}}, {NULL, gettext_noop(" Selection horizontale"), {TRUE, 0, 0, CASE_POP_MENU_CD +5}}, {NULL, gettext_noop(" Selection Expert horizontale "), {TRUE, 0, 0, CASE_POP_MENU_CD +6}} }; #define CASE_POP_MENU_NORMALISE_CD 200 #define MAX_POP_MENU_NORMALISE_CD 3 POP_MENU PopMenuNormaliseCD [ MAX_POP_MENU_NORMALISE_CD ] = { /* WIDGET TITLE OP SHOW TYPE VAL CALL */ {NULL, gettext_noop(" Deselection verticale "), {TRUE, 0, 0, CASE_POP_MENU_NORMALISE_CD +0}}, {NULL, gettext_noop(" ---"), {FALSE, -1, 0, -1}}, {NULL, gettext_noop(" Selection verticale "), {TRUE, 0, 0, CASE_POP_MENU_NORMALISE_CD +1}} }; #define CASE_POP_MENU_NORMALISE_DVD 300 #define MAX_POP_MENU_NORMALISE_DVD 3 POP_MENU PopMenuNormaliseDVD [ MAX_POP_MENU_NORMALISE_DVD ] = { /* WIDGET TITLE OP SHOW TYPE VAL CALL */ {NULL, gettext_noop(" Deselection verticale "), {TRUE, 0, 0, CASE_POP_MENU_NORMALISE_DVD +0}}, {NULL, gettext_noop(" ---"), {FALSE, -1, 0, -1}}, {NULL, gettext_noop(" Selection verticale "), {TRUE, 0, 0, CASE_POP_MENU_NORMALISE_DVD +1}} }; #define CASE_POP_MENU_REPLAYGAIN 30 #define MAX_POP_MENU_REPLAYGAIN 6 POP_MENU PopMenuReplayGain[ MAX_POP_MENU_REPLAYGAIN ] = { /* WIDGET TITLE OP SHOW TYPE VAL CALL */ {NULL, gettext_noop("---SELECTION VERTICALE-----"), {FALSE, -2, 0, -1}}, {NULL, gettext_noop(" Deselection verticale "), {TRUE, 0, 0, CASE_POP_MENU_REPLAYGAIN +0}}, {NULL, gettext_noop(" ---"), {FALSE, -1, 0, -1}}, {NULL, gettext_noop(" Selection PISTE "), {TRUE, 0, 0, CASE_POP_MENU_REPLAYGAIN +1}}, {NULL, gettext_noop(" Selection ALBUM "), {TRUE, 0, 0, CASE_POP_MENU_REPLAYGAIN +2}}, {NULL, gettext_noop(" Selection NETTOYER "), {TRUE, 0, 0, CASE_POP_MENU_REPLAYGAIN +3}} }; #define CASE_POP_MENU_TRASH 40 #define MAX_POP_MENU_TRASH 3 POP_MENU PopMenuTrash[ MAX_POP_MENU_TRASH ] = { /* WIDGET TITLE OP SHOW TYPE VAL CALL */ {NULL, gettext_noop("---MENU TRASH--------------"), {FALSE, -2, 0, -1}}, {NULL, gettext_noop(" Deselection verticale"), {TRUE, 0, 0, CASE_POP_MENU_TRASH}}, {NULL, gettext_noop(" Selection verticale "), {TRUE, 0, 0, CASE_POP_MENU_TRASH +1}} }; // // void popup_callback( GtkMenuItem *menuitem, gpointer user_data ) { MENU_VAL *Op =( MENU_VAL *)user_data; if( -1 == Op->Call) return; // g_print("Op->Call = %d\n",Op->Call ); switch( Op->Call ) { // Deselection globale case CASE_POP_MENU_FICHERS : file_from_popup( FILE_CONV_DESELECT_ALL, VarPopup.detail, VarPopup.type_file_is ); break; // Deselection verticale case CASE_POP_MENU_FICHERS +1 : file_from_popup( FILE_CONV_DESELECT_V, VarPopup.detail, VarPopup.type_file_is ); break; // Deselection horizontale case CASE_POP_MENU_FICHERS +2 : file_from_popup( FILE_CONV_DESELECT_H, VarPopup.detail, VarPopup.type_file_is ); break; // Selection verticale case CASE_POP_MENU_FICHERS +3 : file_from_popup( FILE_CONV_SELECT_V, VarPopup.detail, VarPopup.type_file_is ); break; // Selection Expert verticale case CASE_POP_MENU_FICHERS +4 : file_from_popup( FILE_CONV_SELECT_EXPERT_V, VarPopup.detail, VarPopup.type_file_is ); break; // Selection horizontale case CASE_POP_MENU_FICHERS +5 : file_from_popup( FILE_CONV_SELECT_H, VarPopup.detail, VarPopup.type_file_is ); break; // Selection Expert horizontale case CASE_POP_MENU_FICHERS +6 : file_from_popup( FILE_CONV_SELECT_EXPERT_H, VarPopup.detail, VarPopup.type_file_is ); break; // Deselection globale case CASE_POP_MENU_CD +0 : cdaudio_from_popup( CD_CONV_DESELECT_ALL, VarPopup.Audio, VarPopup.type_file_is ); break; // Deselection verticale case CASE_POP_MENU_CD +1 : cdaudio_from_popup( CD_CONV_DESELECT_V, VarPopup.Audio, VarPopup.type_file_is ); break; // Deselection horizontale case CASE_POP_MENU_CD +2 : cdaudio_from_popup( CD_CONV_DESELECT_H, VarPopup.Audio, VarPopup.type_file_is ); break; // Selection verticale case CASE_POP_MENU_CD +3 : cdaudio_from_popup( CD_CONV_SELECT_V, VarPopup.Audio, VarPopup.type_file_is ); break; // Selection Expert verticale case CASE_POP_MENU_CD +4 : cdaudio_from_popup( CD_CONV_SELECT_EXPERT_V, VarPopup.Audio, VarPopup.type_file_is ); break; // Selection horizontale case CASE_POP_MENU_CD +5 : cdaudio_from_popup( CD_CONV_SELECT_H, VarPopup.Audio, VarPopup.type_file_is ); break; // Selection Expert horizontale case CASE_POP_MENU_CD +6 : cdaudio_from_popup( CD_CONV_SELECT_EXPERT_H, VarPopup.Audio, VarPopup.type_file_is ); break; // Deselection verticale case CASE_POP_MENU_NORMALISE_CD +0: cdaudio_from_popup( CD_REPLAYGAIN_SELECT_V, VarPopup.Audio, VarPopup.type_file_is ); break; // Selection verticale case CASE_POP_MENU_NORMALISE_CD +1: cdaudio_from_popup( CD_REPLAYGAIN_DESELECT_V, VarPopup.Audio, VarPopup.type_file_is ); break; // Deselection verticale case CASE_POP_MENU_NORMALISE_DVD +0: dvd_from_popup( CD_NORMALISE_SELECT_V , FALSE ); break; // Selection verticale case CASE_POP_MENU_NORMALISE_DVD +1: dvd_from_popup( CD_NORMALISE_DESELECT_V, TRUE ); break; // Deselection verticale case CASE_POP_MENU_REPLAYGAIN +0 : file_from_popup( FILE_REPLAYGAIN_DESELECT_V, VarPopup.detail, VarPopup.type_file_is ); break; // Selection PISTE case CASE_POP_MENU_REPLAYGAIN +1 : file_from_popup( FILE_REPLAYGAIN_SELECT_PISTE, VarPopup.detail, VarPopup.type_file_is ); break; // Selection ALBUM case CASE_POP_MENU_REPLAYGAIN +2 : file_from_popup( FILE_REPLAYGAIN_SELECT_ALBUM, VarPopup.detail, VarPopup.type_file_is ); break; // Selection NETTOYER case CASE_POP_MENU_REPLAYGAIN +3 : file_from_popup( FILE_REPLAYGAIN_SELECT_NETTOYER, VarPopup.detail, VarPopup.type_file_is ); break; // Deselection verticale case CASE_POP_MENU_TRASH : file_from_popup( FILE_TRASH_DESELECT_V, VarPopup.detail, VarPopup.type_file_is ); break; // Selection verticale case CASE_POP_MENU_TRASH +1 : file_from_popup( FILE_TRASH_SELECT_V, VarPopup.detail, VarPopup.type_file_is ); break; } } // // void popup_make_popup( POP_MENU *p_popup, gint nbr_op ) { GtkWidget *menu = NULL; GtkWidget *SubMenu = NULL; gint cpt = 0; gint val = 0; if( VarPopup.detail != NULL ) { if( VarPopup.detail->type_infosong_file_is == FILE_IS_WAV ) { INFO_WAV *info =( INFO_WAV *)VarPopup.detail->info; val = info->LevelDbfs.level; } else if( VarPopup.detail->type_infosong_file_is == FILE_IS_OGG ) { INFO_OGG *info =( INFO_OGG *)VarPopup.detail->info; val = info->LevelDbfs.level; } else if( VarPopup.detail->type_infosong_file_is == FILE_IS_MP3 ) { INFO_MP3 *info =( INFO_MP3 *)VarPopup.detail->info; val = info->LevelDbfs.level; } val = val; } menu = gtk_menu_new( ); gtk_widget_set_extension_events( menu, GDK_EXTENSION_EVENTS_ALL ); for( cpt = 0; cpt < nbr_op; cpt ++ ) { if( p_popup[ cpt ].Op.Type > -1 ) { p_popup[ cpt ].Widget = gtk_menu_item_new_with_mnemonic( gettext(p_popup[ cpt ].Title) ); gtk_widget_show( p_popup[ cpt ].Widget ); gtk_container_add( GTK_CONTAINER( menu), p_popup[ cpt ].Widget ); } else if( p_popup[ cpt ].Op.Type == -1 ) { p_popup[ cpt ].Widget = gtk_separator_menu_item_new( ); gtk_widget_show( p_popup[ cpt ].Widget ); gtk_container_add( GTK_CONTAINER( menu), p_popup[ cpt ].Widget ); } else if( p_popup[ cpt ].Op.Type == -2 ) { p_popup[ cpt ].Widget = gtk_menu_item_new_with_mnemonic( gettext(p_popup[ cpt ].Title) ); gtk_widget_show( p_popup[ cpt ].Widget ); gtk_container_add( GTK_CONTAINER( menu), p_popup[ cpt ].Widget ); } else if( p_popup[ cpt ].Op.Type == -3 ) { p_popup[ cpt ].Widget = gtk_menu_item_new_with_mnemonic( gettext(p_popup[ cpt ].Title) ); gtk_widget_show( p_popup[ cpt ].Widget ); gtk_container_add( GTK_CONTAINER( menu), p_popup[ cpt ].Widget ); SubMenu = gtk_menu_new( ); gtk_menu_item_set_submenu( GTK_MENU_ITEM( p_popup[ cpt ].Widget), SubMenu ); } else if( p_popup[ cpt ].Op.Type == -10 ) { p_popup[ cpt ].Widget = gtk_image_menu_item_new_with_mnemonic( gettext(p_popup[ cpt ].Title) ); gtk_widget_show( p_popup[ cpt ].Widget ); gtk_container_add( GTK_CONTAINER( SubMenu), p_popup[ cpt ].Widget ); } gtk_widget_set_sensitive( p_popup[ cpt ].Widget, p_popup[ cpt ].Op.Show ); } for( cpt = 0; cpt < nbr_op; cpt ++ ) { g_signal_connect( (gpointer) p_popup[ cpt ].Widget, "activate", G_CALLBACK( popup_callback), (gpointer)&p_popup[ cpt ].Op ); } GLADE_HOOKUP_OBJECT_NO_REF( menu, menu, "menu" ); for( cpt = 0; cpt < nbr_op; cpt ++ ) { GLADE_HOOKUP_OBJECT( menu, p_popup[ cpt ].Widget, p_popup[ cpt ].Title ); } gtk_menu_popup( GTK_MENU( menu), NULL, NULL, NULL, NULL, 3, 0 ); } // // // POPUP CD // // void popup_cd( CD_AUDIO *Audio, TYPE_FILE_IS TypeFileIs ) { VarPopup.detail = (DETAIL *)NULL; VarPopup.type_file_is = TypeFileIs; VarPopup.Audio = (CD_AUDIO *)Audio; popup_make_popup( PopMenuCD, MAX_POP_MENU_CD ); } // // // POPUP FILE // // void popup_file( DETAIL *detail, TYPE_FILE_IS TypeFileIs ) { VarPopup.Audio = (CD_AUDIO *)NULL; VarPopup.detail = (DETAIL *)detail; VarPopup.type_file_is = TypeFileIs; popup_make_popup( PopMenuFichiers, MAX_POP_MENU_FICHERS ); } // // // POPUP FILE REPLAYGAIN // // void popup_file_ReplayGain( DETAIL *detail ) { VarPopup.detail = (DETAIL *)detail; VarPopup.Audio = (CD_AUDIO *)NULL; PopMenuReplayGain[ 3 ].Op.Show = TRUE; if( VarPopup.detail->type_infosong_file_is == FILE_IS_FLAC ) { PopMenuReplayGain[ 3 ].Op.Show = FALSE; } popup_make_popup( PopMenuReplayGain, MAX_POP_MENU_REPLAYGAIN ); } // // // POPUP NORMALISE DVD // // void popup_normalise_dvd( void ) { VarPopup.detail = (DETAIL *)NULL; VarPopup.Audio = (CD_AUDIO *)NULL; popup_make_popup( PopMenuNormaliseDVD, MAX_POP_MENU_NORMALISE_DVD ); } // // // POPUP NORMALISE CD // // void popup_normalise_cd( void ) { VarPopup.detail = (DETAIL *)NULL; VarPopup.Audio = (CD_AUDIO *)NULL; popup_make_popup( PopMenuNormaliseCD, MAX_POP_MENU_NORMALISE_CD ); } // // // POPUP TRASH // // void popup_trash( void ) { VarPopup.detail = (DETAIL *)NULL; VarPopup.Audio = (CD_AUDIO *)NULL; popup_make_popup( PopMenuTrash, MAX_POP_MENU_TRASH ); } // // // POPUP FILE WAV PISTE // // void on_CellTrack1_activate( GtkMenuItem *menuitem, gpointer user_data ) { DETAIL *detail = ( DETAIL *)user_data; FileWav_from_popup( FILEWAV_TRACK_CELL, detail, -2, 1, -2 ); } void on_CellTrack2_activate( GtkMenuItem *menuitem, gpointer user_data ) { DETAIL *detail = ( DETAIL *)user_data; FileWav_from_popup( FILEWAV_TRACK_CELL, detail, -2, 2, -2 ); } void on_CellTrack4_activate( GtkMenuItem *menuitem, gpointer user_data ) { DETAIL *detail = ( DETAIL *)user_data; FileWav_from_popup( FILEWAV_TRACK_CELL, detail, -2, 4, -2 ); } void on_CellTrack6_activate( GtkMenuItem *menuitem, gpointer user_data ) { DETAIL *detail = ( DETAIL *)user_data; FileWav_from_popup( FILEWAV_TRACK_CELL, detail, -2, 6, -2 ); } void on_CellTrackOriginal_activate( GtkMenuItem *menuitem, gpointer user_data ) { DETAIL *detail = ( DETAIL *)user_data; FileWav_from_popup( FILEWAV_TRACK_CELL, detail, -2, -1, -2 ); } void popup_file_wav_piste( DETAIL *detail) { GtkWidget *Menu; GtkWidget *CellTrack1; GtkWidget *CellTrack2; GtkWidget *CellTrack4; GtkWidget *CellTrack6; GtkWidget *CellSeparate; GtkWidget *CellTrackOriginal; Menu = gtk_menu_new( ); CellTrack1 = gtk_menu_item_new_with_mnemonic( _("1 piste") ); gtk_widget_show( CellTrack1 ); gtk_container_add( GTK_CONTAINER( Menu), CellTrack1 ); CellTrack2 = gtk_menu_item_new_with_mnemonic( _("2 pistes") ); gtk_widget_show( CellTrack2 ); gtk_container_add( GTK_CONTAINER( Menu), CellTrack2 ); CellTrack4 = gtk_menu_item_new_with_mnemonic( _("4 pistes") ); gtk_widget_show( CellTrack4 ); gtk_container_add( GTK_CONTAINER( Menu), CellTrack4 ); CellTrack6 = gtk_menu_item_new_with_mnemonic( _("6 pistes") ); gtk_widget_show( CellTrack6 ); gtk_container_add( GTK_CONTAINER( Menu), CellTrack6 ); CellSeparate = gtk_separator_menu_item_new( ); gtk_widget_show( CellSeparate ); gtk_container_add( GTK_CONTAINER( Menu), CellSeparate ); CellTrackOriginal = gtk_menu_item_new_with_mnemonic( _("Valeur d'origine") ); gtk_widget_show( CellTrackOriginal ); gtk_container_add( GTK_CONTAINER( Menu), CellTrackOriginal ); g_signal_connect(( gpointer) CellTrack1, "activate", G_CALLBACK( on_CellTrack1_activate), detail ); g_signal_connect(( gpointer) CellTrack2, "activate", G_CALLBACK( on_CellTrack2_activate), detail ); g_signal_connect(( gpointer) CellTrack4, "activate", G_CALLBACK( on_CellTrack4_activate), detail ); g_signal_connect(( gpointer) CellTrack6, "activate", G_CALLBACK( on_CellTrack6_activate), detail ); g_signal_connect(( gpointer) CellTrackOriginal, "activate", G_CALLBACK( on_CellTrackOriginal_activate), detail ); GLADE_HOOKUP_OBJECT_NO_REF( Menu, Menu, "Menu" ); GLADE_HOOKUP_OBJECT( Menu, CellTrack1, "CellTrack1" ); GLADE_HOOKUP_OBJECT( Menu, CellTrack2, "CellTrack2" ); GLADE_HOOKUP_OBJECT( Menu, CellTrack4, "CellTrack4" ); GLADE_HOOKUP_OBJECT( Menu, CellTrack6, "CellTrack6" ); GLADE_HOOKUP_OBJECT( Menu, CellSeparate, "CellSeparate" ); GLADE_HOOKUP_OBJECT( Menu, CellTrackOriginal, "CellTrackOriginal" ); gtk_menu_popup( GTK_MENU( Menu), NULL, NULL, NULL, NULL, 3, 0 ); } // // // POPUP FILE WAV FREQUENCE // // void on_CellHertz8000_activate( GtkMenuItem *menuitem, gpointer user_data ) { DETAIL *detail = ( DETAIL *)user_data; FileWav_from_popup( FILEWAV_FREQUENCY_CELL_HERTZ, detail, 8000, -2, -2 ); } void on_CellHertz22000_activate( GtkMenuItem *menuitem, gpointer user_data ) { DETAIL *detail = ( DETAIL *)user_data; FileWav_from_popup( FILEWAV_FREQUENCY_CELL_HERTZ, detail, 22000, -2, -2 ); } void on_CellHertz32000_activate( GtkMenuItem *menuitem, gpointer user_data ) { DETAIL *detail = ( DETAIL *)user_data; FileWav_from_popup( FILEWAV_FREQUENCY_CELL_HERTZ, detail, 32000, -2, -2 ); } void on_CellHertz44056_activate( GtkMenuItem *menuitem, gpointer user_data ) { DETAIL *detail = ( DETAIL *)user_data; FileWav_from_popup( FILEWAV_FREQUENCY_CELL_HERTZ, detail, 44056, -2, -2 ); } void on_CellHertz44100_activate( GtkMenuItem *menuitem, gpointer user_data ) { DETAIL *detail = ( DETAIL *)user_data; FileWav_from_popup( FILEWAV_FREQUENCY_CELL_HERTZ, detail, 44100, -2, -2 ); } void on_CellHertz48000_activate( GtkMenuItem *menuitem, gpointer user_data ) { DETAIL *detail = ( DETAIL *)user_data; FileWav_from_popup( FILEWAV_FREQUENCY_CELL_HERTZ, detail, 48000, -2, -2 ); } void on_CellHertz88200_activate( GtkMenuItem *menuitem, gpointer user_data ) { DETAIL *detail = ( DETAIL *)user_data; FileWav_from_popup( FILEWAV_FREQUENCY_CELL_HERTZ, detail, 88200, -2, -2 ); } void on_CellHertz96000_activate( GtkMenuItem *menuitem, gpointer user_data ) { DETAIL *detail = ( DETAIL *)user_data; FileWav_from_popup( FILEWAV_FREQUENCY_CELL_HERTZ, detail, 96000, -2, -2 ); } void on_CellHertzOriginal_activate( GtkMenuItem *menuitem, gpointer user_data ) { DETAIL *detail = ( DETAIL *)user_data; FileWav_from_popup( FILEWAV_FREQUENCY_CELL_HERTZ, detail, -1, -2, -2 ); } void popup_file_wav_frequence( DETAIL *detail) { GtkWidget *Menu; GtkWidget *CellHertz8000; GtkWidget *CellHertz22000; GtkWidget *CellHertz32000; GtkWidget *CellHertz44056; GtkWidget *CellHertz44100; GtkWidget *CellHertz48000; GtkWidget *CellHertz88200; GtkWidget *CellHertz96000; GtkWidget *CellSeparate; GtkWidget *CellHertzOriginal; Menu = gtk_menu_new( ); gtk_widget_set_extension_events( Menu, GDK_EXTENSION_EVENTS_ALL ); CellHertz8000 = gtk_menu_item_new_with_mnemonic( _(" 8000 Hertz") ); gtk_widget_show( CellHertz8000 ); gtk_container_add( GTK_CONTAINER( Menu), CellHertz8000 ); CellHertz22000 = gtk_menu_item_new_with_mnemonic( _("22000 Hertz") ); gtk_widget_show( CellHertz22000 ); gtk_container_add( GTK_CONTAINER( Menu), CellHertz22000 ); CellHertz32000 = gtk_menu_item_new_with_mnemonic( _("32000 Hertz") ); gtk_widget_show( CellHertz32000 ); gtk_container_add( GTK_CONTAINER( Menu), CellHertz32000 ); CellHertz44056 = gtk_menu_item_new_with_mnemonic( _("44056 Hertz") ); gtk_widget_show( CellHertz44056 ); gtk_container_add( GTK_CONTAINER( Menu), CellHertz44056 ); CellHertz44100 = gtk_menu_item_new_with_mnemonic( _("44100 Hertz") ); gtk_widget_show( CellHertz44100 ); gtk_container_add( GTK_CONTAINER( Menu), CellHertz44100 ); CellHertz48000 = gtk_menu_item_new_with_mnemonic( _("48000 Hertz") ); gtk_widget_show( CellHertz48000 ); gtk_container_add( GTK_CONTAINER( Menu), CellHertz48000 ); CellHertz88200 = gtk_menu_item_new_with_mnemonic( _("88200 Hertz") ); gtk_widget_show( CellHertz88200 ); gtk_container_add( GTK_CONTAINER( Menu), CellHertz88200 ); CellHertz96000 = gtk_menu_item_new_with_mnemonic( _("96000 Hertz") ); gtk_widget_show( CellHertz96000 ); gtk_container_add( GTK_CONTAINER( Menu), CellHertz96000 ); CellSeparate = gtk_separator_menu_item_new( ); gtk_widget_show( CellSeparate ); gtk_container_add( GTK_CONTAINER( Menu), CellSeparate ); CellHertzOriginal = gtk_menu_item_new_with_mnemonic( _("Valeur d'origine") ); gtk_widget_show( CellHertzOriginal ); gtk_container_add( GTK_CONTAINER( Menu), CellHertzOriginal ); g_signal_connect(( gpointer) CellHertz8000, "activate", G_CALLBACK( on_CellHertz8000_activate), detail ); g_signal_connect(( gpointer) CellHertz22000, "activate", G_CALLBACK( on_CellHertz22000_activate), detail ); g_signal_connect(( gpointer) CellHertz32000, "activate", G_CALLBACK( on_CellHertz32000_activate), detail ); g_signal_connect(( gpointer) CellHertz44056, "activate", G_CALLBACK( on_CellHertz44056_activate), detail ); g_signal_connect(( gpointer) CellHertz44100, "activate", G_CALLBACK( on_CellHertz44100_activate), detail ); g_signal_connect(( gpointer) CellHertz48000, "activate", G_CALLBACK( on_CellHertz48000_activate), detail ); g_signal_connect(( gpointer) CellHertz88200, "activate", G_CALLBACK( on_CellHertz88200_activate), detail ); g_signal_connect(( gpointer) CellHertz96000, "activate", G_CALLBACK( on_CellHertz96000_activate), detail ); g_signal_connect(( gpointer) CellHertzOriginal, "activate", G_CALLBACK( on_CellHertzOriginal_activate), detail ); GLADE_HOOKUP_OBJECT_NO_REF( Menu, Menu, "Menu" ); GLADE_HOOKUP_OBJECT( Menu, Menu, "Menu" ); GLADE_HOOKUP_OBJECT( Menu, CellHertz8000, "CellHertz8000" ); GLADE_HOOKUP_OBJECT( Menu, CellHertz22000, "CellHertz22000" ); GLADE_HOOKUP_OBJECT( Menu, CellHertz32000, "CellHertz32000" ); GLADE_HOOKUP_OBJECT( Menu, CellHertz44056, "CellHertz44056" ); GLADE_HOOKUP_OBJECT( Menu, CellHertz44100, "CellHertz44100" ); GLADE_HOOKUP_OBJECT( Menu, CellHertz48000, "CellHertz48000" ); GLADE_HOOKUP_OBJECT( Menu, CellHertz88200, "CellHertz88200" ); GLADE_HOOKUP_OBJECT( Menu, CellHertz96000, "CellHertz96000" ); GLADE_HOOKUP_OBJECT( Menu, CellSeparate, "CellSeparate" ); GLADE_HOOKUP_OBJECT( Menu, CellHertzOriginal, "CellHertzOriginal" ); gtk_menu_popup( GTK_MENU( Menu), NULL, NULL, NULL, NULL, 3, 0 ); } // // // POPUP FILE WAV QUANTIFICATION // // void on_CellWav8_activate( GtkMenuItem *menuitem, gpointer user_data ) { DETAIL *detail = ( DETAIL *)user_data; FileWav_from_popup( FILEWAV_QUANTIFICATION_CELL, detail, -2, -2, 8 ); } void on_CellWav16_activate( GtkMenuItem *menuitem, gpointer user_data ) { DETAIL *detail = ( DETAIL *)user_data; FileWav_from_popup( FILEWAV_QUANTIFICATION_CELL, detail, -2, -2, 16 ); } void on_CellWav24_activate( GtkMenuItem *menuitem, gpointer user_data ) { DETAIL *detail = ( DETAIL *)user_data; FileWav_from_popup( FILEWAV_QUANTIFICATION_CELL, detail, -2, -2, 24 ); } void on_CellWav32_activate( GtkMenuItem *menuitem, gpointer user_data ) { DETAIL *detail = ( DETAIL *)user_data; FileWav_from_popup( FILEWAV_QUANTIFICATION_CELL, detail, -2, -2, 32 ); } void on_CellWav64_activate( GtkMenuItem *menuitem, gpointer user_data ) { DETAIL *detail = ( DETAIL *)user_data; FileWav_from_popup( FILEWAV_QUANTIFICATION_CELL, detail, -2, -2, 64 ); } void on_CellOriginal_activate( GtkMenuItem *menuitem, gpointer user_data ) { DETAIL *detail = ( DETAIL *)user_data; FileWav_from_popup( FILEWAV_QUANTIFICATION_CELL, detail, -2, -2, -1 ); } void popup_file_wav_quantification( DETAIL *detail) { GtkWidget *Menu; GtkWidget *CellWav8; GtkWidget *CellWav16; GtkWidget *CellWav24; GtkWidget *CellWav32; GtkWidget *CellWav64; GtkWidget *CellSeparate; GtkWidget *CellOriginal; Menu = gtk_menu_new( ); gtk_widget_set_extension_events( Menu, GDK_EXTENSION_EVENTS_ALL ); CellWav8 = gtk_menu_item_new_with_mnemonic( _(" 8 bits") ); gtk_widget_show( CellWav8 ); gtk_container_add( GTK_CONTAINER( Menu), CellWav8 ); CellWav16 = gtk_menu_item_new_with_mnemonic( _("16 bits") ); gtk_widget_show( CellWav16 ); gtk_container_add( GTK_CONTAINER( Menu), CellWav16 ); CellWav24 = gtk_menu_item_new_with_mnemonic( _("24 bits") ); gtk_widget_show( CellWav24 ); gtk_container_add( GTK_CONTAINER( Menu), CellWav24 ); CellWav32 = gtk_menu_item_new_with_mnemonic( _("32 bits") ); gtk_widget_show( CellWav32 ); gtk_container_add( GTK_CONTAINER( Menu), CellWav32 ); CellWav64 = gtk_menu_item_new_with_mnemonic( _("64 bits") ); gtk_widget_show( CellWav64 ); gtk_container_add( GTK_CONTAINER( Menu), CellWav64 ); CellSeparate = gtk_separator_menu_item_new( ); gtk_widget_show( CellSeparate ); gtk_container_add( GTK_CONTAINER( Menu), CellSeparate ); CellOriginal = gtk_menu_item_new_with_mnemonic( _("Valeur d'origine") ); gtk_widget_show( CellOriginal ); gtk_container_add( GTK_CONTAINER( Menu), CellOriginal ); g_signal_connect(( gpointer) CellWav8, "activate", G_CALLBACK( on_CellWav8_activate), detail ); g_signal_connect(( gpointer) CellWav16, "activate", G_CALLBACK( on_CellWav16_activate), detail ); g_signal_connect(( gpointer) CellWav24, "activate", G_CALLBACK( on_CellWav24_activate), detail ); g_signal_connect(( gpointer) CellWav32, "activate", G_CALLBACK( on_CellWav32_activate), detail ); g_signal_connect(( gpointer) CellWav64, "activate", G_CALLBACK( on_CellWav64_activate), detail ); g_signal_connect(( gpointer) CellOriginal, "activate", G_CALLBACK( on_CellOriginal_activate), detail ); GLADE_HOOKUP_OBJECT_NO_REF( Menu, Menu, "Menu" ); GLADE_HOOKUP_OBJECT( Menu, CellWav8, "CellWav8" ); GLADE_HOOKUP_OBJECT( Menu, CellWav16, "CellWav16" ); GLADE_HOOKUP_OBJECT( Menu, CellWav24, "CellWav24" ); GLADE_HOOKUP_OBJECT( Menu, CellWav32, "CellWav32" ); GLADE_HOOKUP_OBJECT( Menu, CellWav64, "CellWav64" ); GLADE_HOOKUP_OBJECT( Menu, CellWav64, "CellSeparate" ); GLADE_HOOKUP_OBJECT( Menu, CellOriginal, "CellOriginal" ); gtk_menu_popup( GTK_MENU( Menu), NULL, NULL, NULL, NULL, 3, 0 ); } // // // POPUP SPLIT // // void on_SplitNext_activate( GtkMenuItem *menuitem, gpointer user_data ) { split_from_popup( 0 ); } void on_SplitPrevious_activate( GtkMenuItem *menuitem, gpointer user_data ) { split_from_popup( 1 ); } void on_SplitRemove_activate( GtkMenuItem *menuitem, gpointer user_data ) { split_from_popup( 2 ); } void popup_file_Split( void ) { GtkWidget *Menu; GtkWidget *SplitNext; GtkWidget *SplitPrevious; GtkWidget *Separate; GtkWidget *SplitRemove; Menu = gtk_menu_new( ); gtk_widget_set_extension_events( Menu, GDK_EXTENSION_EVENTS_ALL ); SplitNext = gtk_menu_item_new_with_mnemonic( _("Selecteur suivant") ); gtk_widget_show( SplitNext ); gtk_container_add( GTK_CONTAINER( Menu), SplitNext ); SplitPrevious = gtk_menu_item_new_with_mnemonic( _("Selecteur precedant") ); gtk_widget_show( SplitPrevious ); gtk_container_add( GTK_CONTAINER( Menu), SplitPrevious ); Separate = gtk_separator_menu_item_new( ); gtk_widget_show( Separate ); gtk_container_add( GTK_CONTAINER( Menu), Separate ); SplitRemove = gtk_menu_item_new_with_mnemonic( _("Supprimer la plage active") ); gtk_widget_show( SplitRemove ); gtk_container_add( GTK_CONTAINER( Menu), SplitRemove ); g_signal_connect(( gpointer) SplitNext, "activate", G_CALLBACK( on_SplitNext_activate), NULL ); g_signal_connect(( gpointer) SplitPrevious, "activate", G_CALLBACK( on_SplitPrevious_activate), NULL ); g_signal_connect(( gpointer) SplitRemove, "activate", G_CALLBACK( on_SplitRemove_activate), NULL ); GLADE_HOOKUP_OBJECT_NO_REF( Menu, Menu, "Menu" ); GLADE_HOOKUP_OBJECT( Menu, SplitNext, "SplitNext" ); GLADE_HOOKUP_OBJECT( Menu, SplitPrevious, "SplitPrevious" ); GLADE_HOOKUP_OBJECT( Menu, SplitRemove, "SplitRemove" ); gtk_menu_popup( GTK_MENU( Menu), NULL, NULL, NULL, NULL, 3, 0 ); } // // // POPUP FLIP // // void on_FlipHorizontal_activate( GtkMenuItem *menuitem, gpointer user_data ) { IMAGE *Image = ( IMAGE *)user_data; Image->BoolFlipHorizontal =( TRUE == Image->BoolFlipHorizontal ) ? FALSE : TRUE; gtk_widget_queue_draw( view.AdrDrawingarea ); } void on_FlipVertical_activate( GtkMenuItem *menuitem, gpointer user_data ) { IMAGE *Image = ( IMAGE *)user_data; Image->BoolFlipVertical =( TRUE == Image->BoolFlipVertical ) ? FALSE : TRUE; gtk_widget_queue_draw( view.AdrDrawingarea ); } void on_RemoveImage_activate( GtkMenuItem *menuitem, gpointer user_data ) { // IMAGE *Image =( IMAGE *)user_data; poche_remove_image( ); } void on_ImageFisrt_activate( GtkMenuItem *menuitem, gpointer user_data ) { IMAGE *Image = ( IMAGE *)user_data; poche_set_selected_first_image( Image ); } void on_ImageUp_activate( GtkMenuItem *menuitem, gpointer user_data ) { IMAGE *Image = ( IMAGE *)user_data; poche_set_selected_up_image( Image ); } void on_ImageDown_activate( GtkMenuItem *menuitem, gpointer user_data ) { IMAGE *Image = ( IMAGE *)user_data; poche_set_selected_down_image( Image ); } void on_ImageLast_activate( GtkMenuItem *menuitem, gpointer user_data ) { IMAGE *Image = ( IMAGE *)user_data; poche_set_selected_last_image( Image ); } void popup_flip( IMAGE *p_Image ) { GtkWidget *Menu; GtkWidget *FlipHorizontal; GtkWidget *FlipVertical; GtkWidget *Separate; GtkWidget *RemoveImage; GtkWidget *ImageFisrt; GtkWidget *ImageUp; GtkWidget *ImageDown; GtkWidget *ImageLast; Menu = gtk_menu_new( ); gtk_widget_set_extension_events( Menu, GDK_EXTENSION_EVENTS_ALL ); FlipHorizontal = gtk_menu_item_new_with_mnemonic( _("Retourner horizontalement") ); gtk_widget_show( FlipHorizontal ); gtk_container_add( GTK_CONTAINER( Menu), FlipHorizontal ); FlipVertical = gtk_menu_item_new_with_mnemonic( _("Retourner verticalement") ); gtk_widget_show( FlipVertical ); gtk_container_add( GTK_CONTAINER( Menu), FlipVertical ); Separate = gtk_separator_menu_item_new( ); gtk_widget_show( Separate ); gtk_container_add( GTK_CONTAINER( Menu), Separate ); ImageFisrt = gtk_menu_item_new_with_mnemonic( _("Image au premier plan") ); gtk_widget_show( ImageFisrt ); gtk_container_add( GTK_CONTAINER( Menu), ImageFisrt ); ImageUp = gtk_menu_item_new_with_mnemonic( _("Image au dessus") ); gtk_widget_show( ImageUp ); gtk_container_add( GTK_CONTAINER( Menu), ImageUp ); ImageDown = gtk_menu_item_new_with_mnemonic( _("Image en dessous") ); gtk_widget_show( ImageDown ); gtk_container_add( GTK_CONTAINER( Menu), ImageDown ); ImageLast = gtk_menu_item_new_with_mnemonic( _("Image au dernier plan") ); gtk_widget_show( ImageLast ); gtk_container_add( GTK_CONTAINER( Menu), ImageLast ); Separate = gtk_separator_menu_item_new( ); gtk_widget_show( Separate ); gtk_container_add( GTK_CONTAINER( Menu), Separate ); RemoveImage = gtk_menu_item_new_with_mnemonic( _("Effacer l'image") ); gtk_widget_show( RemoveImage ); gtk_container_add( GTK_CONTAINER( Menu), RemoveImage ); g_signal_connect( (gpointer) FlipHorizontal, "activate", G_CALLBACK( on_FlipHorizontal_activate), p_Image ); g_signal_connect( (gpointer) FlipVertical, "activate", G_CALLBACK( on_FlipVertical_activate), p_Image ); g_signal_connect( (gpointer) ImageFisrt, "activate", G_CALLBACK( on_ImageFisrt_activate), p_Image ); g_signal_connect( (gpointer) ImageUp, "activate", G_CALLBACK( on_ImageUp_activate), p_Image ); g_signal_connect( (gpointer) ImageDown, "activate", G_CALLBACK( on_ImageDown_activate), p_Image ); g_signal_connect( (gpointer) ImageLast, "activate", G_CALLBACK( on_ImageLast_activate), p_Image ); g_signal_connect( (gpointer) RemoveImage, "activate", G_CALLBACK( on_RemoveImage_activate), p_Image ); GLADE_HOOKUP_OBJECT_NO_REF( Menu, Menu, "Menu" ); GLADE_HOOKUP_OBJECT( Menu, FlipHorizontal, "FlipHorizontal" ); GLADE_HOOKUP_OBJECT( Menu, FlipVertical, "FlipVertical" ); GLADE_HOOKUP_OBJECT( Menu, RemoveImage, "RemoveImage" ); gtk_menu_popup( GTK_MENU( Menu), NULL, NULL, NULL, NULL, 3, 0 ); } // // // POPUP REMOVE IMAGE IN VIEWPORT // // void on_viewport_remove_activate( GtkMenuItem *menuitem, gpointer user_data ) { GLIST_POCHETTE *gl = ( GLIST_POCHETTE *)user_data; gl->BoolStructRemove = TRUE; pochedir_destroy_image( gl ); } void popup_viewport( GLIST_POCHETTE *gl ) { GtkWidget *Menu; GtkWidget *RemoveImage; Menu = gtk_menu_new( ); gtk_widget_set_extension_events( Menu, GDK_EXTENSION_EVENTS_ALL ); RemoveImage = gtk_menu_item_new_with_mnemonic( _("Supprimer l'image de la liste") ); gtk_widget_show( RemoveImage ); gtk_container_add( GTK_CONTAINER( Menu), RemoveImage ); g_signal_connect(( gpointer) RemoveImage, "activate", G_CALLBACK( on_viewport_remove_activate), gl ); GLADE_HOOKUP_OBJECT_NO_REF( Menu, Menu, "Menu" ); GLADE_HOOKUP_OBJECT( Menu, RemoveImage, "RemoveImage" ); gtk_menu_popup( GTK_MENU( Menu), NULL, NULL, NULL, NULL, 3, 0 ); } // // // POPUP TAG CD // // /* typedef struct { gboolean BoolFromPopup; gint num; gchar *name; } CD_POPUP_GENRE; */ CD_POPUP_GENRE CdPopupGenre = { FALSE, -1, NULL }; void on_menu_popup_num_activate( GtkMenuItem *menuitem, gpointer user_data ) { gint Choice = GPOINTER_TO_INT(user_data); CdPopupGenre.num = Choice; CdPopupGenre.BoolFromPopup = TRUE; PRINT_FUNC_LF(); if( TRUE == OptionsCommandLine.BoolVerboseMode ) { g_print( "\tPtrEntry = %s\n", CdPopupGenre.name ); g_print( "\tNumEntry = %d\n", Choice); } gtk_entry_set_text( GTK_ENTRY(GLADE_GET_OBJECT("entry_tag_genre")), CdPopupGenre.name ); cd_expander_set_genre( CdPopupGenre.num, CdPopupGenre.name ); CdPopupGenre.BoolFromPopup = FALSE; } void on_menu_popup_txt_activate( GtkMenuItem *menuitem, gpointer user_data ) { gchar *Ptr = (gchar *)user_data; if( NULL != CdPopupGenre.name ) { g_free( CdPopupGenre.name ); CdPopupGenre.name = NULL; } CdPopupGenre.name = g_strdup( Ptr ); } void popup_menu_cd( void ) { GtkWidget *Menu; GtkWidget *RemoveImage; gint Choice; Menu = gtk_menu_new( ); gtk_widget_set_extension_events( Menu, GDK_EXTENSION_EVENTS_ALL ); for( Choice = 0; -1 != StructTagsFileMp3[ Choice ].num; Choice ++ ) { // StructTagsFileMp3[ i ].name // StructTagsFileMp3[ i ].num RemoveImage = gtk_menu_item_new_with_mnemonic( StructTagsFileMp3[ Choice ].name ); gtk_widget_show( RemoveImage ); gtk_container_add( GTK_CONTAINER( Menu), RemoveImage ); g_signal_connect(( gpointer) RemoveImage, "activate", G_CALLBACK(on_menu_popup_txt_activate), (gpointer)StructTagsFileMp3[ Choice ].name ); g_signal_connect(( gpointer) RemoveImage, "activate", G_CALLBACK(on_menu_popup_num_activate), GINT_TO_POINTER(StructTagsFileMp3[ Choice ].num)); GLADE_HOOKUP_OBJECT( Menu, RemoveImage, "RemoveImage" ); } GLADE_HOOKUP_OBJECT_NO_REF( Menu, Menu, "Menu" ); gtk_menu_popup( GTK_MENU( Menu), NULL, NULL, NULL, NULL, 3, 0 ); } // // POPUP MP3 FILES // /* TYPE: ABR DEBIT: 32 40 48 56 64 80 96 112 128 160 192 224 320 MODE: Defaut / Stereo / Join Stereo / Forced Join Stereo / Duo Channels / Mono TYPE: CBR DEBIT: 32 40 48 56 64 80 96 112 128 160 192 224 320 MODE: Defaut / Stereo / Join Stereo / Forced Join Stereo / Duo Channels / Mono TYPE: VBR DEBIT: preset medium / preset standard / preset extreme / preset fast standard / preset fast extreme / V0 V1 V2 V3 V4 V5 V6 V7 V8 V9 MODE: Defaut / Stereo / Join Stereo / Forced Join Stereo / Duo Channels / Mono TYPE: VBR-NEW DEBIT: NONE / preset medium / preset standard / preset extreme / preset fast standard / preset fast extreme / V0 V1 V2 V3 V4 V5 V6 V7 V8 V9 MODE: Defaut / Stereo / Join Stereo / Forced Join Stereo / Duo Channels / Mono */ DETAIL *Detail_VarOptionsFileOggMp3 = NULL; gchar *VarOptionsFileMp3[] = { // ABR // 0 .. 13 " 32", " 40", " 48", " 56", " 64", " 80", " 96", "112", "128", "160", "192", "224", "256", "320", // CBR // 14 .. 28 " 32", " 40", " 48", " 56", " 64", " 80", " 96", "112", "128", "160", "192", "224", "256", "320", "preset insane", // VBR // 29 .. 43 "preset medium", "preset standard", "preset extreme", "preset fast standard", "preset fast extreme", gettext_noop("V0 [ meilleure qualite ]"), "V1", "V2", "V3", gettext_noop("V4 [ defaut ]"), "V5", "V6", "V7", "V8", gettext_noop("V9 [ moins bonne qualite ]"), // VBR-NEW // 44 .. 59 "NONE", "preset medium", "preset standard", "preset extreme", "preset fast standard", "preset fast extreme", "V0", "V1", "V2", "V3", gettext_noop("V4 [ defaut ]"), "V5", "V6", "V7", "V8", "V9", // MODE // 60 .. 65 "Default", "Stereo", "Join Stereo", "Forced Join Stereo", "Duo Channels", "Mono" }; // // void on_type_file_mp3_activate( GtkMenuItem *menuitem, gpointer user_data ) { gint Choice = GPOINTER_TO_INT(user_data); gint Debit = Detail_VarOptionsFileOggMp3->Mp3_Debit; gint Mode = Detail_VarOptionsFileOggMp3->Mp3_Mode; if( -1 == Choice ) { // g_print( "REMOVE\n"); Debit = Detail_VarOptionsFileOggMp3->Mp3_Debit = -1; // SET DEBIT Mode = Detail_VarOptionsFileOggMp3->Mp3_Mode = -1; // SET MODE FileMp3Ogg_update_newbitrate( FILE_IS_MP3, Debit, Mode, -1 ); return; } // MP3: DEBIT MODE if( Choice <= 59 ) Debit = Detail_VarOptionsFileOggMp3->Mp3_Debit = Choice; // SET DEBIT else Mode = Detail_VarOptionsFileOggMp3->Mp3_Mode = Choice; // SET MODE // SELECTIONS DES DEUX OPTIONS OBLIGATOIRE if( -1 == Detail_VarOptionsFileOggMp3->Mp3_Debit ) Debit = Detail_VarOptionsFileOggMp3->Mp3_Debit = 0; if( -1 == Detail_VarOptionsFileOggMp3->Mp3_Mode ) Mode = Detail_VarOptionsFileOggMp3->Mp3_Mode = 60; Detail_VarOptionsFileOggMp3->BoolChanged = ( -1 != Detail_VarOptionsFileOggMp3->Mp3_Debit || -1 != Detail_VarOptionsFileOggMp3->Mp3_Mode ); FileMp3Ogg_update_newbitrate( FILE_IS_MP3, Debit, Mode, -1 ); } // // void popup_file_mp3_type( DETAIL *detail, gint p_debit, gint p_mode ) { GtkWidget *Menu; GtkWidget *Type; GtkWidget *SubMenu; GtkWidget *Debit; GtkWidget *Separate; gint Cpt; gchar *Str = NULL; Detail_VarOptionsFileOggMp3 = detail; Menu = gtk_menu_new( ); gtk_widget_set_extension_events( Menu, GDK_EXTENSION_EVENTS_ALL ); // ABR Type = gtk_menu_item_new_with_mnemonic( "Abr" ); gtk_widget_show( Type ); gtk_container_add( GTK_CONTAINER( Menu), Type ); // SUBMENU ABR SubMenu = gtk_menu_new(); gtk_menu_item_set_submenu( GTK_MENU_ITEM(Type), SubMenu ); for( Cpt = 0; Cpt <= 13; Cpt ++ ) { if( p_debit == Cpt ) Str = g_strdup_printf( ">%s", VarOptionsFileMp3[ Cpt ] ); else Str = g_strdup_printf( " %s", VarOptionsFileMp3[ Cpt ] ); Debit = gtk_menu_item_new_with_mnemonic( Str ); g_free( Str ); Str = NULL; gtk_widget_show( Debit ); gtk_container_add( GTK_CONTAINER(SubMenu), Debit ); g_signal_connect( (gpointer)Debit, "activate", G_CALLBACK(on_type_file_mp3_activate), GINT_TO_POINTER(Cpt)); } // CBR Type = gtk_menu_item_new_with_mnemonic( "Cbr" ); gtk_widget_show( Type ); gtk_container_add( GTK_CONTAINER( Menu), Type ); // SUBMENU CBR SubMenu = gtk_menu_new(); gtk_menu_item_set_submenu( GTK_MENU_ITEM(Type), SubMenu ); for( Cpt = 14; Cpt <= 28; Cpt ++ ) { if( p_debit == Cpt ) Str = g_strdup_printf( ">%s", VarOptionsFileMp3[ Cpt ] ); else Str = g_strdup_printf( " %s", VarOptionsFileMp3[ Cpt ] ); Debit = gtk_menu_item_new_with_mnemonic( Str ); g_free( Str ); Str = NULL; gtk_widget_show( Debit ); gtk_container_add( GTK_CONTAINER(SubMenu), Debit ); g_signal_connect( (gpointer)Debit, "activate", G_CALLBACK(on_type_file_mp3_activate), GINT_TO_POINTER(Cpt)); } // VBR Type = gtk_menu_item_new_with_mnemonic( "Vbr" ); gtk_widget_show( Type ); gtk_container_add( GTK_CONTAINER( Menu), Type ); // SUBMENU VBR SubMenu = gtk_menu_new(); gtk_menu_item_set_submenu( GTK_MENU_ITEM(Type), SubMenu ); for( Cpt = 29; Cpt <= 43; Cpt ++ ) { if( p_debit == Cpt ) Str = g_strdup_printf( ">%s", VarOptionsFileMp3[ Cpt ] ); else Str = g_strdup_printf( " %s", VarOptionsFileMp3[ Cpt ] ); Debit = gtk_menu_item_new_with_mnemonic( Str ); g_free( Str ); Str = NULL; gtk_widget_show( Debit ); gtk_container_add( GTK_CONTAINER(SubMenu), Debit ); g_signal_connect( (gpointer)Debit, "activate", G_CALLBACK(on_type_file_mp3_activate), GINT_TO_POINTER(Cpt)); } // VBR-NEW Type = gtk_menu_item_new_with_mnemonic( "Vbr New" ); gtk_widget_show( Type ); gtk_container_add( GTK_CONTAINER( Menu), Type ); // SUBMENU VBR-NEW SubMenu = gtk_menu_new(); gtk_menu_item_set_submenu( GTK_MENU_ITEM(Type), SubMenu ); for( Cpt = 44; Cpt <= 59; Cpt ++ ) { if( p_debit == Cpt ) Str = g_strdup_printf( ">%s", VarOptionsFileMp3[ Cpt ] ); else Str = g_strdup_printf( " %s", VarOptionsFileMp3[ Cpt ] ); Debit = gtk_menu_item_new_with_mnemonic( Str ); g_free( Str ); Str = NULL; gtk_widget_show( Debit ); gtk_container_add( GTK_CONTAINER(SubMenu), Debit ); g_signal_connect( (gpointer)Debit, "activate", G_CALLBACK(on_type_file_mp3_activate), GINT_TO_POINTER(Cpt)); } // MODE Type = gtk_menu_item_new_with_mnemonic( "Mode" ); gtk_widget_show( Type ); gtk_container_add( GTK_CONTAINER( Menu), Type ); // SUBMENU MODE SubMenu = gtk_menu_new(); gtk_menu_item_set_submenu( GTK_MENU_ITEM(Type), SubMenu ); for( Cpt = 60; Cpt <= 65; Cpt ++ ) { if( p_mode == Cpt ) Str = g_strdup_printf( "> %s", VarOptionsFileMp3[ Cpt ] ); else Str = g_strdup_printf( " %s", VarOptionsFileMp3[ Cpt ] ); Debit = gtk_menu_item_new_with_mnemonic( Str ); g_free( Str ); Str = NULL; gtk_widget_show( Debit ); gtk_container_add( GTK_CONTAINER(SubMenu), Debit ); g_signal_connect( (gpointer)Debit, "activate", G_CALLBACK(on_type_file_mp3_activate), GINT_TO_POINTER(Cpt)); } // REMOVE ENTRY if( p_debit > -1 ) { Separate = gtk_separator_menu_item_new( ); gtk_widget_show( Separate ); gtk_container_add( GTK_CONTAINER( Menu), Separate ); Separate = gtk_menu_item_new_with_mnemonic( "Effacer la saisie" ); gtk_widget_show( Separate ); gtk_container_add( GTK_CONTAINER(Menu), Separate ); g_signal_connect( (gpointer)Separate, "activate", G_CALLBACK(on_type_file_mp3_activate), GINT_TO_POINTER(-1)); } GLADE_HOOKUP_OBJECT_NO_REF( Menu, Menu, "Menu" ); gtk_menu_popup( GTK_MENU(Menu), NULL, NULL, NULL, NULL, 3, 0 ); } // // POPUP OGG FILES // /* DEBIT: 45 kbit/s / 64 kbit/s / 80 kbit/s / 96 kbit/s / 112 kbit/s / 128 kbit/s / 160 kbit/s / 192 kbit/s / 224 kbit/s / 256 kbit/s / 320 kbit/s / Qualite -1 -Moins bonne qualite / Qualite 0 / Qualite 1 / Qualite 2 / Qualite 3 -Defaut / Qualite 4 / Qualite 5 / Qualite 6 / Qualite 7 / Qualite 8 / Qualite 9 / Qualite 10 -Meilleure qualite MANAGED: Oui / Non DOWNMIX: Mono force / Stereo */ gchar *VarOptionsFileOgg[] = { // 0 .. 22 " 45 kbit/s", " 64 kbit/s", " 80 kbit/s", " 96 kbit/s", "112 kbit/s", "128 kbit/s", "160 kbit/", "192 kbit/s", "224 kbit/s", "256 kbit/s", "320 kbit/s", gettext_noop("Qualite -1 [ Moins bonne qualite ]"), gettext_noop("Qualite 0"), gettext_noop("Qualite 1"), gettext_noop("Qualite 2"), gettext_noop("Qualite 3 [ Defaut ]"), gettext_noop("Qualite 4"), gettext_noop("Qualite 5"), gettext_noop("Qualite 6"), gettext_noop("Qualite 7"), gettext_noop("Qualite 8"), gettext_noop("Qualite 9"), gettext_noop("Qualite 10 [ Meilleure qualite ]"), // 23 .. 24 gettext_noop("Oui"), gettext_noop("Non"), // 25 .. 26 "Mono force", "Stereo" }; // // void on_type_file_ogg_activate( GtkMenuItem *menuitem, gpointer user_data ) { gint Choice = GPOINTER_TO_INT(user_data); gint Debit = Detail_VarOptionsFileOggMp3->Ogg_Debit; gint Managed = Detail_VarOptionsFileOggMp3->Ogg_Managed; gint Downmix = Detail_VarOptionsFileOggMp3->Ogg_Downmix; if( -1 == Choice ) { // g_print( "REMOVE\n"); Debit = Detail_VarOptionsFileOggMp3->Ogg_Debit = -1; // SET DEBIT Managed = Detail_VarOptionsFileOggMp3->Ogg_Managed = -1; // SET MANAGED Downmix = Detail_VarOptionsFileOggMp3->Ogg_Downmix = -1; // SET DOWNMIX FileMp3Ogg_update_newbitrate( FILE_IS_OGG, Debit, Managed, Downmix ); return; } // OGG: DEBIT MANAGED DOWNMIX if( Choice <= 22 ) Debit = Detail_VarOptionsFileOggMp3->Ogg_Debit = Choice; // SET DEBIT else if( Choice <= 24) Managed = Detail_VarOptionsFileOggMp3->Ogg_Managed = Choice; // SET MANAGED else Downmix = Detail_VarOptionsFileOggMp3->Ogg_Downmix = Choice; // SET DOWNMIX // SELECTIONS DES DEUX OPTIONS OBLIGATOIRE if( -1 == Detail_VarOptionsFileOggMp3->Ogg_Debit ) Debit = Detail_VarOptionsFileOggMp3->Ogg_Debit = 0; if( -1 == Detail_VarOptionsFileOggMp3->Ogg_Managed ) Managed = Detail_VarOptionsFileOggMp3->Ogg_Managed = 23; if( -1 == Detail_VarOptionsFileOggMp3->Ogg_Downmix ) Downmix = Detail_VarOptionsFileOggMp3->Ogg_Downmix = 25; if( Detail_VarOptionsFileOggMp3->Ogg_Debit >= 11 ) Managed = Detail_VarOptionsFileOggMp3->Ogg_Managed = -1; if( Detail_VarOptionsFileOggMp3->Ogg_Debit >= 9 ) Downmix = Detail_VarOptionsFileOggMp3->Ogg_Downmix = -1; Detail_VarOptionsFileOggMp3->BoolChanged = ( -1 != Detail_VarOptionsFileOggMp3->Ogg_Debit || -1 != Detail_VarOptionsFileOggMp3->Ogg_Managed || -1 != Detail_VarOptionsFileOggMp3->Ogg_Downmix ); FileMp3Ogg_update_newbitrate( FILE_IS_OGG, Debit, Managed, Downmix ); } // // void popup_file_ogg_type( DETAIL *detail, gint p_debit, gint p_managed, gint p_downmix ) { GtkWidget *Menu; GtkWidget *Debit; GtkWidget *SubMenu; GtkWidget *Separate; gint Cpt; gchar *Str = NULL; Detail_VarOptionsFileOggMp3 = detail; Menu = gtk_menu_new( ); gtk_widget_set_extension_events( Menu, GDK_EXTENSION_EVENTS_ALL ); // DEBIT Debit = gtk_menu_item_new_with_mnemonic( "Debit" ); gtk_widget_show( Debit ); gtk_container_add( GTK_CONTAINER( Menu), Debit ); // SUBMENU DEBIT SubMenu = gtk_menu_new(); gtk_menu_item_set_submenu( GTK_MENU_ITEM(Debit), SubMenu ); for( Cpt = 0; Cpt <= 22; Cpt ++ ) { if( p_debit == Cpt ) Str = g_strdup_printf( ">%s", VarOptionsFileOgg[ Cpt ] ); else Str = g_strdup_printf( " %s", VarOptionsFileOgg[ Cpt ] ); Debit = gtk_menu_item_new_with_mnemonic( Str ); g_free( Str ); Str = NULL; gtk_widget_show( Debit ); gtk_container_add( GTK_CONTAINER(SubMenu), Debit ); g_signal_connect( (gpointer)Debit, "activate", G_CALLBACK(on_type_file_ogg_activate), GINT_TO_POINTER(Cpt)); } // MANAGED if( p_debit < 11 ) { Debit = gtk_menu_item_new_with_mnemonic( "Managed" ); gtk_widget_show( Debit ); gtk_container_add( GTK_CONTAINER( Menu), Debit ); // SUBMENU MANAGED SubMenu = gtk_menu_new(); gtk_menu_item_set_submenu( GTK_MENU_ITEM(Debit), SubMenu ); for( Cpt = 23; Cpt <= 24; Cpt ++ ) { if( p_managed == Cpt ) Str = g_strdup_printf( ">%s", VarOptionsFileOgg[ Cpt ] ); else Str = g_strdup_printf( " %s", VarOptionsFileOgg[ Cpt ] ); Debit = gtk_menu_item_new_with_mnemonic( Str ); g_free( Str ); Str = NULL; gtk_widget_show( Debit ); gtk_container_add( GTK_CONTAINER(SubMenu), Debit ); g_signal_connect( (gpointer)Debit, "activate", G_CALLBACK(on_type_file_ogg_activate), GINT_TO_POINTER(Cpt)); } } // DOWNMIX if( p_debit < 9 ) { Debit = gtk_menu_item_new_with_mnemonic( "Downmix" ); gtk_widget_show( Debit ); gtk_container_add( GTK_CONTAINER( Menu), Debit ); // SUBMENU DOWNMIX SubMenu = gtk_menu_new(); gtk_menu_item_set_submenu( GTK_MENU_ITEM(Debit), SubMenu ); for( Cpt = 25; Cpt <= 26; Cpt ++ ) { if( p_downmix == Cpt ) Str = g_strdup_printf( ">%s", VarOptionsFileOgg[ Cpt ] ); else Str = g_strdup_printf( " %s", VarOptionsFileOgg[ Cpt ] ); Debit = gtk_menu_item_new_with_mnemonic( Str ); g_free( Str ); Str = NULL; gtk_widget_show( Debit ); gtk_container_add( GTK_CONTAINER(SubMenu), Debit ); g_signal_connect( (gpointer)Debit, "activate", G_CALLBACK(on_type_file_ogg_activate), GINT_TO_POINTER(Cpt)); } } // REMOVE ENTRY if( p_debit > -1 ) { Separate = gtk_separator_menu_item_new( ); gtk_widget_show( Separate ); gtk_container_add( GTK_CONTAINER( Menu), Separate ); Separate = gtk_menu_item_new_with_mnemonic( "Effacer la saisie" ); gtk_widget_show( Separate ); gtk_container_add( GTK_CONTAINER(Menu), Separate ); g_signal_connect( (gpointer)Separate, "activate", G_CALLBACK(on_type_file_ogg_activate), GINT_TO_POINTER(-1)); } GLADE_HOOKUP_OBJECT_NO_REF( Menu, Menu, "Menu" ); gtk_menu_popup( GTK_MENU(Menu), NULL, NULL, NULL, NULL, 3, 0 ); } // // gchar *popup_get_param_ogg( gint p_debit, gint p_managed, gint p_downmix ) { gchar *val_bitrate_ogg[] = { "--bitrate=45", "--bitrate=64", "--bitrate=80", "--bitrate=96", "--bitrate=112", "--bitrate=128", "--bitrate=160", "--bitrate=192", "--bitrate=224", "--bitrate=256", "--bitrate=320", "--quality=-1", "--quality=0", "--quality=1", "--quality=2", "--quality=3", "--quality=4", "--quality=5", "--quality=6", "--quality=7", "--quality=8", "--quality=9", "--quality=10" }; gchar *StrRet = NULL; if( p_debit > -1 ) { StrRet = g_strdup_printf( "%s%s%s", val_bitrate_ogg[ p_debit ], ( p_debit < 11 && p_managed == 23 ) ? " --managed" : "", ( p_debit < 9 && p_downmix == 25 ) ? " --downmix" : "" ); } return( (gchar *)StrRet ); } // // gchar *popup_get_param_mp3( gint p_debit, gint p_mode ) { static gchar *str_param_mp3 [] = { // ABR // 0 .. 13 "-b 32", "-b 40", "-b 48", "-b 56", "-b 64", "-b 80", "-b 96", "-b 112", "-b 128", "-b 160", "-b 192", "-b 224", "-b 256", "-b 320", // CBR // 14 .. 28 "-b 32", "-b 40", "-b 48", "-b 56", "-b 64", "-b 80", "-b 96", "-b 112", "-b 128", "-b 160", "-b 192", "-b 224", "-b 256", "-b 320", "--preset insane", // VBR // 29 .. 43 "--preset medium", "--preset standard", "--preset extreme", "--preset fast standard", "--preset fast extreme", "-V0", "-V1", "-V2", "-V3", "-V4", "-V5", "-V6", "-V7", "-V8", "-V9", // VBR-NEW // 44 .. 59 "--vbr-new", "--vbr-new --preset medium", "--vbr-new --preset standard", "--vbr-new --preset extreme", "--vbr-new --preset fast standard", "--vbr-new --preset fast extreme", "--vbr-new -V0", "--vbr-new -V1", "--vbr-new -V2", "--vbr-new -V3", "--vbr-new -V4", "--vbr-new -V5", "--vbr-new -V6", "--vbr-new -V7", "--vbr-new -V8", "--vbr-new -V9", // MODE // 60 .. 65 "", // Defaut "-m s", // Stereo "-m j", // Join Stereo "-m f", // Forced Join Stereo "-m d", // Duo Channels "-m m" // Mono }; gchar *StrRet = NULL; if( p_debit > -1) { StrRet = g_strdup_printf( "%s%s%s", str_param_mp3[ p_debit ], ( p_mode == 60 ) ? "" : " ", ( p_mode > 60 ) ? str_param_mp3[ p_mode ] : "" ); } return( (gchar *)StrRet ); } xcfa-4.3.6/src/prg_init.c0000644000175000017500000005036612164063153012147 00000000000000 /* * file : prg_init.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "options.h" #include "cd_audio.h" #include "prg_init.h" /* *--------------------------------------------------------------------------- * VARIABLES *--------------------------------------------------------------------------- */ enum { NUM_TREE_Nom = 0, NUM_TREE_Status, NUM_TREE_Action, NUM_TREE_ALL_COLUMN }; enum { PRGEXT_NAME = 0, PRGEXT_STATUS, PRGEXT_PAQUAGE, PRGEXT_COMMENT, PRGEXT_NUM_COLUMN, PRGEXT_TOTAL_COLUMN }; VAR_PRGEXTERN var_prgextern; PRGINIT PrgInit; TABLEAU_PRG_EXTERN TableauPrgExtern [ NMR_MAX_TABLEAU ] = { {"a52dec", // PACKAGEDEBIAN_64 "a52dec", // PACKAGEDEBIAN_32 "a52dec", // NAME1 "", // NAME2 "", // NAME3 &PrgInit.bool_a52dec, // FOUND NULL, // NAME TREE-VIEW NULL, // PIXBUF TREE-VIEW " liba52-0.7.4-dev", // PAQUAGE gettext_noop(" Decode ATSC A/52 audio streams")}, // DESCRIPTION {"aacplusenc", // PACKAGEDEBIAN_64 "aacplusenc", // PACKAGEDEBIAN_32 "aacplusenc", // NAME1 "", // NAME2 "", // NAME3 &PrgInit.bool_aacplusenc, // FOUND NULL, // NAME TREE-VIEW NULL, // PIXBUF TREE-VIEW " aacplusenc", // PAQUAGE gettext_noop(" AAC+ encoder")}, // DESCRIPTION {"cdparanoia", // PACKAGEDEBIAN_64 "cdparanoia", // PACKAGEDEBIAN_32 "cdparanoia", // NAME1 "", // NAME2 "", // NAME3 &PrgInit.bool_cdparanoia, // FOUND NULL, // NAME TREE-VIEW NULL, // PIXBUF TREE-VIEW " cdparanoia", // PAQUAGE gettext_noop(" Extracteur cd audio")}, // DESCRIPTION {"cd-discid", // PACKAGEDEBIAN_64 "cd-discid", // PACKAGEDEBIAN_32 "cd-discid", // NAME1 "", // NAME2 "", // NAME3 &PrgInit.bool_cd_discid, // FOUND NULL, // NAME TREE-VIEW NULL, // PIXBUF TREE-VIEW " cd-discid", // PAQUAGE gettext_noop(" Read CD and get CDDB discid information")}, // DESCRIPTION {"checkmp3", // PACKAGEDEBIAN_64 "checkmp3", // PACKAGEDEBIAN_32 "mp3check", // NAME1 "checkmp3", // NAME2 "mp3_check", // NAME3 &PrgInit.bool_checkmp3, // FOUND NULL, // NAME TREE-VIEW NULL, // PIXBUF TREE-VIEW " checkmp3", // PAQUAGE gettext_noop(" Cherche des renseignements sur les formats mp3")}, // DESCRIPTION {"faac", // PACKAGEDEBIAN_64 "faac", // PACKAGEDEBIAN_32 "faac", // NAME1 "", // NAME2 "", // NAME3 &PrgInit.bool_faac, // FOUND NULL, // NAME TREE-VIEW NULL, // PIXBUF TREE-VIEW " faac", // PAQUAGE gettext_noop(" Audio Codeur freeware")}, // DESCRIPTION {"faad", // PACKAGEDEBIAN_64 "faad", // PACKAGEDEBIAN_32 "faad", // NAME1 "faad2", // NAME2 "", // NAME3 &PrgInit.bool_faad, // FOUND NULL, // NAME TREE-VIEW NULL, // PIXBUF TREE-VIEW " faad", // PAQUAGE gettext_noop(" MPEG-4 AAC decodeur")}, // DESCRIPTION {"flac", // PACKAGEDEBIAN_64 "flac", // PACKAGEDEBIAN_32 "flac", // NAME1 "", // NAME2 "", // NAME3 &PrgInit.bool_flac, // FOUND NULL, // NAME TREE-VIEW NULL, // PIXBUF TREE-VIEW " flac", // PAQUAGE gettext_noop(" Conversion wav : flac")}, // DESCRIPTION {"icedax", // PACKAGEDEBIAN_64 "icedax", // PACKAGEDEBIAN_32 "icedax", // NAME1 "cdda2wav", // NAME2 "", // NAME3 &PrgInit.bool_cdda2wav, // FOUND NULL, // NAME TREE-VIEW NULL, // PIXBUF TREE-VIEW " icedax", // PAQUAGE gettext_noop(" Extracteur cd audio")}, // DESCRIPTION {"lame", // PACKAGEDEBIAN_64 "lame", // PACKAGEDEBIAN_32 "lame", // NAME1 "", // NAME2 "", // NAME3 &PrgInit.bool_lame, // FOUND NULL, // NAME TREE-VIEW NULL, // PIXBUF TREE-VIEW " lame", // PAQUAGE gettext_noop(" Conversion wav : mp3")}, // DESCRIPTION {"lsdvd", // PACKAGEDEBIAN_64 "lsdvd", // PACKAGEDEBIAN_32 "lsdvd", // NAME1 "", // NAME2 "", // NAME3 &PrgInit.bool_lsdvd, // FOUND NULL, // NAME TREE-VIEW NULL, // PIXBUF TREE-VIEW " lsdvd", // PAQUAGE gettext_noop(" Cherche les informations d'un dvd")}, // DESCRIPTION // ADD {"monkeys-audio", // PACKAGEDEBIAN_64 "monkeys-audio", // PACKAGEDEBIAN_32 "mac", // NAME1 "", // NAME2 "", // NAME3 &PrgInit.bool_ape, // FOUND NULL, // NAME TREE-VIEW NULL, // PIXBUF TREE-VIEW " monkeys-audio", // PAQUAGE gettext_noop(" Monkey's Audio Console Front End : APE")}, // DESCRIPTION // ADD TO amd64 and i386 {"musepack-tools", // PACKAGEDEBIAN_64 "musepack-tools", // PACKAGEDEBIAN_32 "mpcdec", // NAME1 "mppdec", // NAME2 "mpc123", // NAME3 &PrgInit.bool_mpc123_mppdec, // FOUND NULL, // NAME TREE-VIEW NULL, // PIXBUF TREE-VIEW " musepack-tools", // PAQUAGE gettext_noop(" MusePack commandline utilities")}, // DESCRIPTION {"musepack-tools", // PACKAGEDEBIAN_64 "musepack-tools", // PACKAGEDEBIAN_32 "mpcenc", // NAME1 "mppenc", // NAME2 "", // NAME3 &PrgInit.bool_mppenc, // FOUND NULL, // NAME TREE-VIEW NULL, // PIXBUF TREE-VIEW " musepack-tools", // PAQUAGE gettext_noop(" MusePack commandline utilities")}, // DESCRIPTION {"mplayer", // PACKAGEDEBIAN_64 "mplayer", // PACKAGEDEBIAN_32 "mplayer", // NAME1 "", // NAME2 "", // NAME3 &PrgInit.bool_mplayer, // FOUND NULL, // NAME TREE-VIEW NULL, // PIXBUF TREE-VIEW " mplayer", // PAQUAGE gettext_noop(" Lecteur et extracteur")}, // DESCRIPTION {"mp3gain", // PACKAGEDEBIAN_64 "mp3gain", // PACKAGEDEBIAN_32 "mp3gain", // NAME1 "", // NAME2 "", // NAME3 &PrgInit.bool_mp3gain, // FOUND NULL, // NAME TREE-VIEW NULL, // PIXBUF TREE-VIEW " mp3gain", // PAQUAGE gettext_noop(" Normaliseur de fichier mp3")}, // DESCRIPTION {"normalize-audio", // PACKAGEDEBIAN_64 "normalize-audio", // PACKAGEDEBIAN_32 "normalize-audio", // NAME1 "normalize", // NAME2 "", // NAME3 &PrgInit.bool_normalize, // FOUND NULL, // NAME TREE-VIEW NULL, // PIXBUF TREE-VIEW " normalize-audio", // PAQUAGE gettext_noop(" Normaliseur de fichier wav")}, // DESCRIPTION {"libnotify-bin", // PACKAGEDEBIAN_64 "libnotify-bin", // PACKAGEDEBIAN_32 "libnotify-bin", // NAME1 "notify-send", // NAME2 "", // NAME3 &PrgInit.bool_notify_send, // FOUND NULL, // NAME TREE-VIEW NULL, // PIXBUF TREE-VIEW " libnotify-bin", // PAQUAGE gettext_noop(" A program to send desktop notifications")}, // DESCRIPTION {"shorten", // PACKAGEDEBIAN_64 "shorten", // PACKAGEDEBIAN_32 "shorten", // NAME1 "", // NAME2 "", // NAME3 &PrgInit.bool_shorten, // FOUND NULL, // NAME TREE-VIEW NULL, // PIXBUF TREE-VIEW " shorten", // PAQUAGE gettext_noop(" Forte compression au format wave")}, // DESCRIPTION {"shntool", // PACKAGEDEBIAN_64 "shntool", // PACKAGEDEBIAN_32 "shntool", // NAME1 "", // NAME2 "", // NAME3 &PrgInit.bool_shntool, // FOUND NULL, // NAME TREE-VIEW NULL, // PIXBUF TREE-VIEW " shntool", // PAQUAGE gettext_noop(" Decoupage de fichiers sans decodage")}, // DESCRIPTION {"sox", // PACKAGEDEBIAN_64 "sox", // PACKAGEDEBIAN_32 "sox", // NAME1 "", // NAME2 "", // NAME3 &PrgInit.bool_sox, // FOUND NULL, // NAME TREE-VIEW NULL, // PIXBUF TREE-VIEW " sox", // PAQUAGE gettext_noop(" Transformation universelle de fichiers son")}, // DESCRIPTION {"vorbis-tools", // PACKAGEDEBIAN_64 "vorbis-tools", // PACKAGEDEBIAN_32 "oggenc", // NAME1 "", // NAME2 "", // NAME3 &PrgInit.bool_oggenc, // FOUND NULL, // NAME TREE-VIEW NULL, // PIXBUF TREE-VIEW " Vorbis-tools", // PAQUAGE gettext_noop(" Conversion wav : ogg")}, // DESCRIPTION {"vorbisgain", // PACKAGEDEBIAN_64 "vorbisgain", // PACKAGEDEBIAN_32 "vorbisgain", // NAME1 "", // NAME2 "", // NAME3 &PrgInit.bool_vorbisgain, // FOUND NULL, // NAME TREE-VIEW NULL, // PIXBUF TREE-VIEW " vorbisgain", // PAQUAGE gettext_noop(" Normaliseur de fichier ogg")}, // DESCRIPTION {"wavpack", // PACKAGEDEBIAN_64 "wavpack", // PACKAGEDEBIAN_32 "wavpack", // NAME1 "", // NAME2 "", // NAME3 &PrgInit.bool_wavpack, // FOUND NULL, // NAME TREE-VIEW NULL, // PIXBUF TREE-VIEW " wavpack", // PAQUAGE gettext_noop(" WAVPACK Hybrid Lossless Audio Compressor")} // DESCRIPTION }; // // CHERCHE LA DISTRIBUTION EN RAPPORT AVEC LE PROGRAMME D' INSTALLATION // void on_label_type_package_realize (GtkWidget *widget, gpointer user_data) { gchar *New_Str = NULL; var_options.Adr_label_type_paquege = widget; if (libutils_find_file ("apt-get") == TRUE || libutils_find_file ("aptitude") == TRUE) { if (widget != NULL) { New_Str = g_strdup_printf (_(" ... les paquets: deb ")); } var_options.Type_Package = _DEBIAN_; } else if (libutils_find_file ("slackpkg") == TRUE || libutils_find_file ("installpkg") == TRUE) { if (widget != NULL) { New_Str = g_strdup_printf (_(" ... les paquets: tgz ")); } var_options.Type_Package = _TGZ_; } else if (libutils_find_file ("pacman-g2") == TRUE) { if (widget != NULL) { New_Str = g_strdup_printf (_(" ... les paquets: fpm ")); } var_options.Type_Package = _FPM_; } else if (libutils_find_file ("rpm") == TRUE || libutils_find_file ("urpmi") == TRUE || libutils_find_file ("zypper") == TRUE || libutils_find_file ("yum") == TRUE) { if (widget != NULL) { New_Str = g_strdup_printf (_(" ... les paquets: rpm ")); } var_options.Type_Package = _RPM_; } else if (libutils_find_file ("yaourt") == TRUE || libutils_find_file ("pacman") == TRUE) { if (widget != NULL) { New_Str = g_strdup_printf (_(" ... les paquets: pkg.tar.xz ")); } var_options.Type_Package = _ARCHLINUX_; } else { if (widget != NULL) { New_Str = g_strdup_printf (_(" ... les paquets: ? ")); } var_options.Type_Package = _PACKAGE_NOT_FOUND_; } if (widget != NULL && New_Str != NULL) { gtk_label_set_markup (GTK_LABEL (var_options.Adr_label_type_paquege), New_Str); g_free (New_Str); New_Str = NULL; } } // GET INFOS FROM STRUCT // gchar *prginit_get_name (TYPE_PROGINIT TypeEnum) { return ((gchar *)TableauPrgExtern [ TypeEnum ] . PtrName); } // // GdkPixbuf *prginit_get_pixbuf (TYPE_PROGINIT TypeEnum) { return ((GdkPixbuf *)TableauPrgExtern [ TypeEnum ] . Pixbuf); } // // gchar *prginit_get_Paquage (TYPE_PROGINIT TypeEnum) { return ((gchar *)TableauPrgExtern [ TypeEnum ] . Paquage); } // // gchar *prginit_get_Description (TYPE_PROGINIT TypeEnum) { return (gettext((gchar *)TableauPrgExtern [ TypeEnum ] . Description)); } // // gboolean prginit_elem_is_present (TYPE_PROGINIT TypeEnum) { return ((gboolean)*TableauPrgExtern [ TypeEnum ] . BoolFound); } // // void prginit_affiche_glist (void) { gchar *Name; gchar *Paquage; GtkAdjustment *Adj = NULL; gdouble AdjValue; GtkTreeIter iter; gint index; // EFFACER LE CONTENU DU TREEVIEW gtk_list_store_clear (GTK_LIST_STORE (var_prgextern.Adr_List_Store)); // AJUSTEMENT DE LA LISTE Adj = gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (var_prgextern.Adr_scroll)); AdjValue = gtk_adjustment_get_value (Adj); gtk_adjustment_set_value (Adj, AdjValue); gtk_scrolled_window_set_vadjustment (GTK_SCROLLED_WINDOW (var_prgextern.Adr_scroll), Adj); for (index = 0; index < NMR_MAX_TABLEAU; index ++) { gtk_list_store_append (var_prgextern.Adr_List_Store, &iter); if (prginit_elem_is_present (index) == TRUE) { Name = g_strdup_printf ("%s", prginit_get_name (index)); Paquage = g_strdup_printf ("%s", prginit_get_Paquage (index)); } else { Name = g_strdup_printf ("%s", prginit_get_name (index)); Paquage = g_strdup_printf ("%s", prginit_get_Paquage (index)); } gtk_list_store_set (var_prgextern.Adr_List_Store, &iter, PRGEXT_NAME, Name, PRGEXT_STATUS, prginit_get_pixbuf (index), PRGEXT_PAQUAGE, Paquage, PRGEXT_COMMENT, prginit_get_Description (index), PRGEXT_NUM_COLUMN, index, -1); g_free (Name); Name = NULL; g_free (Paquage); Paquage = NULL; } } // // void prginit_print_info (void) { PRINT_FUNC_LF(); if( TRUE == OptionsCommandLine.BoolVerboseMode ) { gint index; g_print ("!------------------------------\n"); g_print ("! INSTALL NAME\n"); g_print ("!------------------------------\n"); for (index = 0; index < NMR_MAX_TABLEAU; index ++) g_print("! %s %s\n", (*TableauPrgExtern [ index ] . BoolFound == TRUE) ? "Yes " : " NO --> ", TableauPrgExtern [ index ] . PtrName); g_print ("!------------------------------\n\n"); } } // // void prginit_scan (void) { gint index; for (index = 0; index < NMR_MAX_TABLEAU; index ++) { // INIT VAR *TableauPrgExtern [ index ] . BoolFound = FALSE; TableauPrgExtern [ index ] . PtrName = NULL; // CHERCHE LE NOM APPROPRIE SUIVANT LA DISTRIBUTION UTILISEE *TableauPrgExtern [ index ] . BoolFound = libutils_find_file (TableauPrgExtern [ index ] . Name1); TableauPrgExtern [ index ] . PtrName = TableauPrgExtern [ index ] .Name1; if (*TableauPrgExtern [ index ] . BoolFound == FALSE) { if (*TableauPrgExtern [ index ] . Name2 != '\0') { if ((*TableauPrgExtern [ index ] . BoolFound = libutils_find_file (TableauPrgExtern [ index ] . Name2)) == TRUE) { TableauPrgExtern [ index ] . PtrName = TableauPrgExtern [ index ] .Name2; } } } if (*TableauPrgExtern [ index ] . BoolFound == FALSE) { if (*TableauPrgExtern [ index ] . Name3 != '\0') { if ((*TableauPrgExtern [ index ] . BoolFound = libutils_find_file (TableauPrgExtern [ index ] . Name3)) == TRUE) { TableauPrgExtern [ index ] . PtrName = TableauPrgExtern [ index ] .Name3; } } } // FIXER LE PIXBUF SI PAS EN SELECTION if (*TableauPrgExtern [ index ] . BoolFound == TRUE) TableauPrgExtern [ index ] . Pixbuf = var_prgextern.Pixbuf_Ok; else TableauPrgExtern [ index ] . Pixbuf = var_prgextern.Pixbuf_Not_Ok; } prginit_affiche_glist (); } // // gboolean prginit_get_etat (void) { prginit_scan (); var_prgextern.Bool_Goto_Page_Options = PrgInit.bool_a52dec & PrgInit.bool_cdparanoia & PrgInit.bool_cdda2wav & PrgInit.bool_flac & PrgInit.bool_lame & PrgInit.bool_oggenc & PrgInit.bool_sox & PrgInit.bool_normalize & PrgInit.bool_checkmp3 & PrgInit.bool_faad & PrgInit.bool_faac & PrgInit.bool_mplayer & PrgInit.bool_shorten & PrgInit.bool_wavpack & PrgInit.bool_ape & PrgInit.bool_lsdvd & PrgInit.bool_vorbisgain & PrgInit.bool_mp3gain & PrgInit.bool_shntool & PrgInit.bool_aacplusenc; return (var_prgextern.Bool_Goto_Page_Options); } // UPDATE DU TREEVIEW // void on_button_scan_without_deb_clicked (GtkButton *button, gpointer user_data) { if (var_prgextern.Adr_Tree_Model == NULL) return; prginit_scan (); prginit_affiche_glist (); // cdaudio_update_glist (); cdaudio_affiche_glist_audio (); cdaudio_set_flag_buttons (); // file_pixbuf_update_glist (); file_affiche_glist (); file_set_flag_buttons (); } // // gboolean prginit_key_press_event (GtkWidget *widget, GdkEventKey *event, gpointer user_data) { return (TRUE); } // CREAATION DU SCROLLWINDOW ET DES EVENEMENTS ASSOCIES // static void prginit_add_columns (GtkTreeView *treeview) { GtkCellRenderer *renderer; GtkTreeViewColumn *column; GtkTreeModel *model = gtk_tree_view_get_model (treeview); // SIGNAL 'key-press-event' g_signal_connect(G_OBJECT(treeview), "key-press-event", (GCallback) prginit_key_press_event, model); // SIGNAL 'changed' var_prgextern.Adr_Line_Selected = gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)); gtk_tree_selection_set_mode (var_prgextern.Adr_Line_Selected, GTK_SELECTION_BROWSE); // PRGEXT_NAME renderer = gtk_cell_renderer_text_new (); g_object_set (renderer, "xalign", 0.0, NULL); column = gtk_tree_view_column_new_with_attributes (_("Nom"), renderer, "markup", PRGEXT_NAME, NULL); // gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column), // GTK_TREE_VIEW_COLUMN_FIXED); // gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 130); gtk_tree_view_column_set_alignment (GTK_TREE_VIEW_COLUMN (column), 0.5); gtk_tree_view_append_column (treeview, column); // PRGEXT_STATUS renderer = gtk_cell_renderer_pixbuf_new (); g_object_set (renderer, "xalign", 0.5, NULL); column = gtk_tree_view_column_new_with_attributes ( _("Status"), renderer, "pixbuf", PRGEXT_STATUS, NULL); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column), GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 50); gtk_tree_view_column_set_alignment (GTK_TREE_VIEW_COLUMN (column), 0.5); gtk_tree_view_append_column (treeview, column); // PRGEXT_PAQUAGE renderer = gtk_cell_renderer_text_new (); g_object_set (renderer, "xalign", 0.0, NULL); column = gtk_tree_view_column_new_with_attributes ( _("Paquet"), renderer, "markup", PRGEXT_PAQUAGE, NULL); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column), GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 140); gtk_tree_view_column_set_alignment (GTK_TREE_VIEW_COLUMN (column), 0.5); gtk_tree_view_append_column (treeview, column); // PRGEXT_COMMENT renderer = gtk_cell_renderer_text_new (); g_object_set (renderer, "xalign", 0.0, NULL); column = gtk_tree_view_column_new_with_attributes ( _("Action"), renderer, "markup", PRGEXT_COMMENT, NULL); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column), GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 160); gtk_tree_view_column_set_alignment (GTK_TREE_VIEW_COLUMN (column), 0.5); gtk_tree_view_append_column (treeview, column); } // INITIALISATION DU SCROLLWINDOW // void on_scrolledwindow_applications_externes_realize (GtkWidget *widget, gpointer user_data) { GtkTreeModel *model; GtkWidget *treeview; GtkListStore *store; var_prgextern.Pixbuf_Ok = libutils_init_pixbufs ("prg-ok.png"); var_prgextern.Pixbuf_Not_Ok = libutils_init_pixbufs ("dbfs-no.png"); var_prgextern.Adr_scroll = widget; var_prgextern.Adr_List_Store = store = gtk_list_store_new (PRGEXT_TOTAL_COLUMN, // Nombre total de colonnes G_TYPE_STRING, // Name GDK_TYPE_PIXBUF, // Status G_TYPE_STRING, // Paquage G_TYPE_STRING, // Commentaire G_TYPE_INT ); var_prgextern.Adr_Tree_Model = model = GTK_TREE_MODEL (store); treeview = gtk_tree_view_new_with_model (model); gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (treeview), TRUE); g_object_unref (model); gtk_container_add (GTK_CONTAINER (widget), treeview); prginit_add_columns (GTK_TREE_VIEW (treeview)); prginit_scan (); prginit_print_info (); gtk_widget_show_all (widget); } xcfa-4.3.6/src/alsa_audio.h0000644000175000017500000000453512122563437012443 00000000000000 /* * file : alsa_audio.h * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . * * --- * * Code de lecture audio pour fichiers de type WAV reprit et retravaille * depuis: * Analyse code depuis: wavbreaker * par Timothy Robinson et Thomas Perl * http://wavbreaker.sourceforge.net/ * */ #ifndef alsa_audio_h #define alsa_audio_h 1 #include #include typedef struct { snd_pcm_t *playback_handle; // Handle guint bytesPerFrame; // 8, 16, 24, 32, 64 ... guint channels; // 1, 2, 4 ... gint SampleRate; // Frequence: 44100 ... gint TotalChunckSize; // guchar *buffer; // Pointeur de buffer guint SizeBuffer; // Taille requise du buffer gint Sec; // Duree total en secondes gdouble Percent; // Poucentage en retour sur la duree total gdouble PercentSel; // Poucentage en retour depuis la selection gdouble PercentBegin; // gdouble PercentEnd; // gboolean BoolThreadEnd; // guint HandlerTimeout; // gboolean StopPlay; // gboolean PauseAlsa; // void (*FuncSetValueTime) (gdouble p_value); // void (*FuncIconeStop) (void); // FILE *pFile; // Handler du fichier ouvert } VAR_ALSA; extern VAR_ALSA VarAlsa; void AlsaAudio_close_device (void); gboolean AlsaAudio_open_device (const gchar *audio_dev, // default gint p_bitsPerSample, // 8, 16, 24, ... gint p_channels, // 1, 2, 4, ... guint p_samplesPerSec, // 44100, ... guint *p_bufferSize); // Taille buffer retournee gboolean AlsaAudio_write (gint size); #endif xcfa-4.3.6/src/extra.c0000644000175000017500000001437312141321465011453 00000000000000 /* * file : extra.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "configuser.h" #include "extra.h" typedef struct { GtkWidget *Adr_entry_navigateur; GtkWidget *Adr_entry_param_navigateur; GtkWidget *Adr_entry_audio; GtkWidget *Adr_entry_param_audio; gboolean BoolNavigateurOk; gboolean BoolAudioOk; } VAR_EXTRA; VAR_EXTRA VarExtra; // ENTRY: NAVIGATEUR // void on_entry_navigateur_extra_realize (GtkWidget *widget, gpointer user_data) { VarExtra.Adr_entry_navigateur = widget; if (NULL == Config.StringNameNavigateur) { Config.StringNameNavigateur = g_strdup ("iceweasel"); } else if ('\0' == *Config.StringNameNavigateur) { g_free (Config.StringNameNavigateur); Config.StringNameNavigateur = NULL; Config.StringNameNavigateur = g_strdup ("iceweasel"); } gtk_entry_set_text (GTK_ENTRY (VarExtra.Adr_entry_navigateur), Config.StringNameNavigateur); } // // void on_entry_navigateur_extra_changed (GtkEditable *editable, gpointer user_data) { if (NULL != VarExtra.Adr_entry_navigateur) { gchar *Ptr = (gchar *)gtk_entry_get_text (GTK_ENTRY (VarExtra.Adr_entry_navigateur)); if (TRUE == libutils_find_file (Ptr)) { gtk_label_set_markup (GTK_LABEL (GLADE_GET_OBJECT("label_navigateur_extra")), "Found"); VarExtra.BoolNavigateurOk = TRUE; } else { gtk_label_set_markup (GTK_LABEL (GLADE_GET_OBJECT("label_navigateur_extra")), "NOT Found"); VarExtra.BoolNavigateurOk = FALSE; } if (NULL != Config.StringNameNavigateur) { g_free (Config.StringNameNavigateur); Config.StringNameNavigateur = NULL; } Config.StringNameNavigateur = g_strdup (Ptr); } } // // void on_entry_param_navigateur_extra_realize (GtkWidget *widget, gpointer user_data) { VarExtra.Adr_entry_param_navigateur = widget; if (NULL == Config.StringParamNameNavigateur) { Config.StringParamNameNavigateur = g_strdup (""); } gtk_entry_set_text (GTK_ENTRY (VarExtra.Adr_entry_param_navigateur),Config.StringParamNameNavigateur); } // // void on_entry_param_navigateur_extra_changed (GtkEditable *editable, gpointer user_data) { if (NULL != VarExtra.Adr_entry_param_navigateur) { if (NULL != Config.StringParamNameNavigateur) { g_free (Config.StringParamNameNavigateur); Config.StringParamNameNavigateur = NULL; } Config.StringParamNameNavigateur = g_strdup ((gchar *)gtk_entry_get_text (GTK_ENTRY (VarExtra.Adr_entry_param_navigateur))); } } // // gchar *extra_get_name_navigateur (void) { return ((gchar *)gtk_entry_get_text (GTK_ENTRY (VarExtra.Adr_entry_navigateur))); } // // gboolean extra_get_navigateur_is_ok (void) { return (VarExtra.BoolNavigateurOk); } // ENTRY: LECTEUR AUDIO // void on_entry_lecteur_audio_extra_realize (GtkWidget *widget, gpointer user_data) { VarExtra.Adr_entry_audio = widget; if (NULL == Config.StringNameLecteurAudio) { Config.StringNameLecteurAudio = g_strdup ("totem"); } else if ('\0' == *Config.StringNameLecteurAudio) { g_free (Config.StringNameLecteurAudio); Config.StringNameLecteurAudio = NULL; Config.StringNameLecteurAudio = g_strdup ("totem"); } gtk_entry_set_text (GTK_ENTRY (VarExtra.Adr_entry_audio),Config.StringNameLecteurAudio); } // // void on_entry_lecteur_audio_extra_changed (GtkEditable *editable, gpointer user_data) { if (NULL != VarExtra.Adr_entry_audio) { gchar *Ptr = (gchar *)gtk_entry_get_text (GTK_ENTRY (VarExtra.Adr_entry_audio)); if (TRUE == libutils_find_file (Ptr)) { gtk_label_set_markup (GTK_LABEL (GLADE_GET_OBJECT("label_lecteur_audio_extra")), "Found"); VarExtra.BoolAudioOk = TRUE; } else { gtk_label_set_markup (GTK_LABEL (GLADE_GET_OBJECT("label_lecteur_audio_extra")), "NOT Found"); VarExtra.BoolAudioOk = FALSE; } if (NULL != Config.StringNameLecteurAudio) { g_free (Config.StringNameLecteurAudio); Config.StringNameLecteurAudio = NULL; } Config.StringNameLecteurAudio = g_strdup (Ptr); } } // // void on_entry_param_lecteur_audio_extra_realize (GtkWidget *widget, gpointer user_data) { VarExtra.Adr_entry_param_audio = widget; if (NULL == Config.StringParamNameLecteurAudio) { Config.StringParamNameLecteurAudio = g_strdup (""); } gtk_entry_set_text (GTK_ENTRY (VarExtra.Adr_entry_param_audio),Config.StringParamNameLecteurAudio); } // // void on_entry_param_lecteur_audio_extra_changed (GtkEditable *editable, gpointer user_data) { if (NULL != VarExtra.Adr_entry_param_audio) { if (NULL != Config.StringParamNameLecteurAudio) { g_free (Config.StringParamNameLecteurAudio); Config.StringParamNameLecteurAudio = NULL; } Config.StringParamNameLecteurAudio = g_strdup ((gchar *)gtk_entry_get_text (GTK_ENTRY (VarExtra.Adr_entry_param_audio))); } } // // gchar *extra_get_name_lecteur_audio (void) { return ((gchar *)gtk_entry_get_text (GTK_ENTRY (VarExtra.Adr_entry_audio))); } // // gchar *extra_get_param_name_lecteur_audio (void) { return ((gchar *)gtk_entry_get_text (GTK_ENTRY (VarExtra.Adr_entry_param_audio))); } // // gboolean extra_get_param_name_lecteur_audio_is_ok (void) { gchar *Ptr = (gchar *)gtk_entry_get_text (GTK_ENTRY (VarExtra.Adr_entry_param_audio)); return (('\0' == *Ptr) ? FALSE : TRUE); } // // gboolean extra_get_lecteur_audio_is_ok (void) { return (VarExtra.BoolAudioOk); } xcfa-4.3.6/src/get_info.c0000644000175000017500000007103612122563465012130 00000000000000 /* * file : get_info.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #include #include #include #include #include #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "prg_init.h" #include "file.h" #include "configuser.h" #include "get_info.h" #define GET_MAX_CARS 1024 typedef struct { pid_t code_fork; /* Num Code Fork */ int signal_numchildren; /* the signal handler */ int tube [ 2 ]; /* for pipe */ gboolean bool_percent; } VAR_GET; VAR_GET VarGet; /* *--------------------------------------------------------------------------- * SIGNAL *--------------------------------------------------------------------------- */ void GetInfo_sigchld (gint signum) { gint status; wait(&status); /* PRINT_FUNC(); */ /* if there are still children waiting * re-install the signal handler */ VarGet.signal_numchildren --; if (VarGet.signal_numchildren > 0) { /* re-install the signal handler */ signal (SIGCHLD, GetInfo_sigchld); } } // // gint GetInfo_exec_with_output (gchar **args, pid_t *p, gint Streams) { VarGet.signal_numchildren = 0; if (pipe (VarGet.tube) != 0) { fprintf (stderr, "error: pipe\n"); exit (1); } if ((*p = fork()) == 0) { dup2 (VarGet.tube [ 1 ], Streams); /* STDOUT_FILENO STDERR_FILENO */ close (VarGet.tube [ 1 ]); execvp (args[0], args); fprintf (stderr, "error: exec"); exit (2); } VarGet.signal_numchildren ++; signal (SIGCHLD, GetInfo_sigchld); close (VarGet.tube [ 1 ]); return (VarGet.tube [ 0 ]); } /* *--------------------------------------------------------------------------- * FUNCTION *--------------------------------------------------------------------------- */ extern float roundf(float x); // RETOURNE, EN KiloOctet LA PLACE DISPONIBLE DU DOSSIER TEMPORAIRE // glong GetInfo_level_df (void) { gint pos = 0; gchar *args [ 20 ]; gint fd; gint size = -1; gchar buf [ 1024 + 10 ]; gchar *Path = g_strdup_printf ("%s/", Config.PathnameTMP); glong Size = 0; gchar *Ptr = NULL; args[pos++] = "df"; args[pos++] = "--block-size=K"; args[pos++] = Path; args[pos++] = NULL; /* g_print ("!-----------------------------------!\n"); g_print ("! NORMALISE -n %s\n", args[ 0 ]); g_print ("!-----------------------------------!\n"); for (pos = 0; args[ pos ] != NULL; pos++) g_print ("args [ %02d ] = '%s'\n", pos, args [ pos ]); g_print ("\n"); */ fd = GetInfo_exec_with_output (args, &VarGet.code_fork, STDOUT_FILENO); do { pos = -1; do { pos++; if (pos >= 1024) { PRINT_FUNC_LF(); g_print ("pos(%d) >= 1024\n", pos); pos --; } size = read(fd, &buf[pos], 1); } while ((buf[pos] != '\b') && (buf[pos] != '\r') && (buf[pos] != '\n') && (size > 0)); pos ++; buf[ pos ] = '\0'; if (strstr (buf, "/dev/")) { /* buf=/dev/sda5 19686772K 4080996K 14605736K 22% / */ /* g_print("buf=%s\n", buf); */ Ptr = strchr (buf, 'K'); Ptr ++; Ptr = strchr (Ptr, 'K'); Ptr ++; while (*Ptr == ' ') Ptr ++; /* g_print("Ptr = '%s'\n", Ptr); */ Size = (glong)atol (Ptr); /* g_print("Size = %lu\n", Size); */ } } while (size != 0); g_free (Path); Path = NULL; close(fd); VarGet.code_fork = -1; return (Size); } // // gboolean GetInfo_level_bool_percent (void) { return (VarGet.bool_percent); } // // gint GetInfo_level_get_from (TYPE_FILE_IS TypeFileIs, gchar *file) { gint pos = 0; gchar *args [ 20 ]; gint fd; gint size = -1; gchar buf [ 1024 + 10 ]; gint arrondit = -1; if (TypeFileIs == FILE_IS_WAV || TypeFileIs == FILE_IS_MP3) { /* normalize-audio -n ./kill_bill.wav */ args[pos++] = prginit_get_name (NMR_normalize); args[pos++] = "-n"; args[pos++] = file; args[pos++] = NULL; } else if (TypeFileIs == FILE_IS_OGG) { /* normalize-ogg -n ./kill_bill.ogg */ args[pos++] = "normalize-ogg"; args[pos++] = "-n"; args[pos++] = file; args[pos++] = NULL; } /* g_print ("!-----------------------------------!\n"); g_print ("! NORMALISE -n %s\n", args[ 0 ]); g_print ("!-----------------------------------!\n"); for (pos = 0; args[ pos ] != NULL; pos++) g_print ("args [ %02d ] = '%s'\n", pos, args [ pos ]); g_print ("\n"); */ fd = GetInfo_exec_with_output (args, &VarGet.code_fork, STDOUT_FILENO); do { pos = -1; do { pos++; if (pos >= 1024) { PRINT_FUNC_LF(); g_print ("pos(%d) >= 1024\n", pos); pos --; } size = read(fd, &buf[pos], 1); } while ((buf[pos] != '\b') && (buf[pos] != '\r') && (buf[pos] != '\n') && (size > 0)); pos ++; buf[ pos ] = '\0'; VarGet.bool_percent = TRUE; if (strstr (buf, "dBFS")) { arrondit = (gint)roundf(atof(buf)); } } while (size != 0); close(fd); VarGet.code_fork = -1; return (arrondit); } // // GString *GetInfo_file (gchar *file) { gint fd; gint pos = 0; gchar *args [ 10 ]; gchar buf [ GET_MAX_CARS + 10 ]; gint size = 0; GString *gstr = g_string_new (NULL); args[pos++] = "file"; args[pos++] = "-b"; args[pos++] = "-z"; args[pos++] = "-n"; args[pos++] = file; args[pos++] = NULL; /* g_print ("!-----------------------------------!\n"); g_print ("! F I L E !\n"); g_print ("!-----------------------------------!\n"); for (pos = 0; args[ pos ] != NULL; pos++) g_print ("args [ %02d ] = '%s'\n", pos, args [ pos ]); g_print ("\n"); */ fd = GetInfo_exec_with_output (args, &VarGet.code_fork, STDOUT_FILENO); do { pos = -1; do { pos++; if (pos >= GET_MAX_CARS) { PRINT_FUNC_LF(); g_print ("pos(%d) >= GET_MAX_CARS(%d)\n", pos, GET_MAX_CARS); pos --; } size = read(fd, &buf[pos], 1); } while ((buf[pos] != '\b') && (buf[pos] != '\r') && (buf[pos] != '\n') && (size > 0)); /* if (pos > 0 ) { buf[pos ++ ] = '\n'; buf[pos] = '\0'; g_string_append_printf (gstr, "%s", buf); } */ buf[pos ++ ] = '\n'; buf[pos] = '\0'; g_string_append_printf (gstr, "%s", buf); } while (size != 0); close(fd); return (gstr); } // // gchar *GetInfo_cpu (void) { gchar buf [ GET_MAX_CARS + 10 ]; FILE *fp; gchar *Ptr = NULL; fp = fopen ("/proc/cpuinfo", "r"); while (fgets (buf, GET_MAX_CARS, fp) != NULL) { // g_print("BUF = %s", buf); Ptr = buf; if (*(Ptr + 0) == 'm' && *(Ptr + 1) == 'o' && *(Ptr + 2) == 'd' && *(Ptr + 3) == 'e' && *(Ptr + 4) == 'l' && *(Ptr + 5) == ' ' && *(Ptr + 6) == 'n' && *(Ptr + 7) == 'a' && *(Ptr + 8) == 'm' && *(Ptr + 9) == 'e' ) { // g_print("---------BUF = %s", buf); Ptr = buf; while (*Ptr ++) if (*Ptr == '\n') *Ptr = '\0'; for ( Ptr = buf; *Ptr != ':'; Ptr ++ ); Ptr ++; while (*Ptr == ' ') Ptr ++; // g_print("---------BUF = %s", Ptr); fclose (fp); return (g_strdup (Ptr)); } } fclose (fp); return (NULL); } // // gchar *GetInfo_cpu_str (void) { struct utsname utsname; gchar *ptruname = NULL; gchar *ModelName = NULL; ModelName = GetInfo_cpu (); HostConf.NbCpu = sysconf(_SC_NPROCESSORS_ONLN); HostConf.TypeCpu = 8 * sizeof(void*); if (uname (&utsname) == 0) { strcpy (HostConf.Machine, utsname.machine); if (strcmp (HostConf.Machine, "x86_64") == 0) HostConf.BoolCpuIs64Bits = TRUE; else HostConf.BoolCpuIs64Bits = FALSE; ptruname = g_strdup_printf ( "Informations machine:\n\n" "sysname\n\t %s\n" "nodename\n\t %s\n" "release\n\t %s\n" "version\n\t %s\n" "machine\n\t %s\n" "\t %d CPU (%d bits)\n" "\t %s\n", utsname.sysname, utsname.nodename, utsname.release, utsname.version, utsname.machine, HostConf.NbCpu, HostConf.TypeCpu, ModelName); } g_free (ModelName); ModelName = NULL; return (ptruname); } // // void GetInfo_cpu_print (void) { struct utsname utsname; gchar *ptruname = NULL; gchar *ModelName = NULL; ModelName = GetInfo_cpu (); HostConf.NbCpu = sysconf(_SC_NPROCESSORS_ONLN); // g_print ("_SC_NPROCESSORS_CONF : Le nombre de processeurs configure = %d\n", (gint)sysconf(_SC_NPROCESSORS_CONF)); // g_print ("_SC_NPROCESSORS_ONLN : Le nombre de processeurs actuellement en ligne (disponibles) = %d\n", (gint)sysconf(_SC_NPROCESSORS_ONLN)); HostConf.TypeCpu = 8 * sizeof(void*); if (uname (&utsname) == 0) { strcpy (HostConf.Machine, utsname.machine); if (strcmp (HostConf.Machine, "x86_64") == 0) HostConf.BoolCpuIs64Bits = TRUE; else HostConf.BoolCpuIs64Bits = FALSE; ptruname = g_strdup_printf ( "\nINFORMATIONS MACHINE:\n\n" "sysname\t\t = %s\n" "nodename\t = %s\n" "release\t\t = %s\n" "version\t\t = %s\n" "machine\t\t = %s\n" " \t\t = %d CPU (%d bits)\n" " \t\t = %s\n", utsname.sysname, utsname.nodename, utsname.release, utsname.version, utsname.machine, HostConf.NbCpu, HostConf.TypeCpu, ModelName); if( TRUE == OptionsCommandLine.BoolVerboseMode ) { g_print("%s",ptruname); g_print ("HostConf.NbCpu = %d CPU\n", HostConf.NbCpu); g_print ("HostConf.TypeCpu = %d Bits\n", HostConf.TypeCpu); g_print ("HostConf.Machine = %s\n", HostConf.Machine); g_print ("\n"); } } g_free (ModelName); ModelName = NULL; g_free (ptruname); ptruname = NULL; } // // GString *GetInfo_faad (gchar *file) { gint fd; gint pos = 0; gchar *args [ 10 ]; gchar buf [ GET_MAX_CARS + 10 ]; gint size = 0; GString *gstr = g_string_new (NULL); args[pos++] = "faad"; args[pos++] = "-i"; args[pos++] = file; args[pos++] = NULL; /* g_print ("!-----------------------------------!\n"); g_print ("! F A A D !\n"); g_print ("!-----------------------------------!\n"); for (pos = 0; args[ pos ] != NULL; pos++) g_print ("args [ %02d ] = '%s'\n", pos, args [ pos ]); g_print ("\n"); */ fd = GetInfo_exec_with_output (args, &VarGet.code_fork, STDERR_FILENO); do { pos = -1; do { pos++; if (pos >= GET_MAX_CARS) { PRINT_FUNC_LF(); g_print ("pos(%d) >= GET_MAX_CARS(%d)\n", pos, GET_MAX_CARS); pos --; } size = read(fd, &buf[pos], 1); } while ((buf[pos] != '\b') && (buf[pos] != '\r') && (buf[pos] != '\n') && (size > 0)); /* if (pos > 0 ) { buf[pos ++ ] = '\n'; buf[pos] = '\0'; g_string_append_printf (gstr, "%s", buf); } */ buf[pos ++ ] = '\n'; buf[pos] = '\0'; g_string_append_printf (gstr, "%s", buf); } while (size != 0); close(fd); return (gstr); } // // GString *GetInfo_checkmp3 (gchar *file) { gint fd; gint pos = 0; gchar *args [ 10 ]; gchar buf [ GET_MAX_CARS + 10 ]; gint size = 0; GString *gstr = NULL; if (FALSE == PrgInit.bool_checkmp3) { PRINT_FUNC_LF(); g_print ("\tPrgInit.bool_checkmp3 = %s\n", PrgInit.bool_checkmp3 ? "TRUE" : "FALSE"); g_print ("\tIL FAUT INSTALLER checkmp3 OU mp3check SUIVANT VOTRE DISTRIBUTION !\n\n"); return (NULL); } gstr = g_string_new (NULL); // args[pos++] = PrgInit.name_checkmp3; args[pos++] = prginit_get_name (NMR_checkmp3); args[pos++] = "-a"; args[pos++] = "-v"; // TODO: @Tetsumaki // http://forum.ubuntu-fr.org/viewtopic.php?pid=3889239#p3889239 // OPTION -i n'existe pas sous ARCHLINUX !!! // args[pos++] = "-i"; args[pos++] = file; args[pos++] = NULL; /* g_print ("!-----------------------------------!\n"); g_print ("! C H E C K M P 3 !\n"); g_print ("!-----------------------------------!\n"); for (pos = 0; args[ pos ] != NULL; pos++) g_print ("args [ %02d ] = '%s'\n", pos, args [ pos ]); g_print ("\n"); */ fd = GetInfo_exec_with_output (args, &VarGet.code_fork, STDOUT_FILENO); do { pos = -1; do { pos++; if (pos >= GET_MAX_CARS) { PRINT_FUNC_LF(); g_print ("pos(%d) >= GET_MAX_CARS(%d)\n", pos, GET_MAX_CARS); pos --; } size = read(fd, &buf[pos], 1); } while ((buf[pos] != '\b') && (buf[pos] != '\r') && (buf[pos] != '\n') && (size > 0)); if (pos > 0 ) { buf[pos ++ ] = '\n'; buf[pos] = '\0'; g_string_append_printf (gstr, "%s", buf); } } while (size != 0); close(fd); return (gstr); } // // GString *GetInfo_ogginfo (gchar *file) { gint fd; gint pos = 0; gchar *args [ 10 ]; gchar buf [ GET_MAX_CARS + 10 ]; gint size = 0; GString *gstr = g_string_new (NULL); args[pos++] = "ogginfo"; args[pos++] = file; args[pos++] = NULL; /* g_print ("!-----------------------------------!\n"); g_print ("! O G G I N F O !\n"); g_print ("!-----------------------------------!\n"); for (pos = 0; args[ pos ] != NULL; pos++) g_print ("args [ %02d ] = '%s'\n", pos, args [ pos ]); g_print ("\n"); */ fd = GetInfo_exec_with_output (args, &VarGet.code_fork, STDOUT_FILENO); do { pos = -1; do { pos++; if (pos >= GET_MAX_CARS) { PRINT_FUNC_LF(); g_print ("pos(%d) >= GET_MAX_CARS(%d)\n", pos, GET_MAX_CARS); pos --; } size = read(fd, &buf[pos], 1); } while ((buf[pos] != '\b') && (buf[pos] != '\r') && (buf[pos] != '\n') && (size > 0)); if (pos > 0 ) { buf[pos ++ ] = '\n'; buf[pos] = '\0'; g_string_append_printf (gstr, "%s", buf); } } while (size != 0); close(fd); return (gstr); } // // GString *GetInfo_mediainfo (gchar *file) { gint fd; gint pos = 0; gchar *args [ 10 ]; gchar buf [ GET_MAX_CARS + 10 ]; gint size = 0; GString *gstr = g_string_new (NULL); args[pos++] = "dvd+rw-mediainfo"; args[pos++] = file; args[pos++] = NULL; /* g_print ("!-----------------------------------!\n"); g_print ("! DVD+RW-MEDIAINFO !\n"); g_print ("!-----------------------------------!\n"); for (pos = 0; args[ pos ] != NULL; pos++) g_print ("args [ %02d ] = '%s'\n", pos, args [ pos ]); g_print ("\n"); */ // STDIN_FILENO // STDOUT_FILENO // STDERR_FILENO fd = GetInfo_exec_with_output( args, &VarGet.code_fork, STDOUT_FILENO ); do { pos = -1; do { pos++; if (pos >= GET_MAX_CARS) { PRINT_FUNC_LF(); g_print ("pos(%d) >= GET_MAX_CARS(%d)\n", pos, GET_MAX_CARS); pos --; } size = read(fd, &buf[pos], 1); } while ((buf[pos] != '\b') && (buf[pos] != '\r') && (buf[pos] != '\n') && (size > 0)); if (pos > 0 ) { buf[pos ++ ] = '\n'; buf[pos] = '\0'; g_string_append_printf (gstr, "%s", buf); } } while (size != 0); close(fd); return (gstr); } // // GString *GetInfo_cdplay (gchar *file) { gint fd; gint pos = 0; gchar *args [ 10 ]; gchar buf [ GET_MAX_CARS + 10 ]; gint size = 0; GString *gstr = g_string_new (NULL); args[pos++] = "cdplay"; args[pos++] = "-d"; args[pos++] = file; args[pos++] = "info"; args[pos++] = NULL; /* g_print ("!-----------------------------------!\n"); g_print ("! C D P L A Y !\n"); g_print ("!-----------------------------------!\n"); for (pos = 0; args[ pos ] != NULL; pos++) g_print ("args [ %02d ] = '%s'\n", pos, args [ pos ]); g_print ("\n"); */ fd = GetInfo_exec_with_output (args, &VarGet.code_fork, STDOUT_FILENO); do { pos = -1; do { pos++; if (pos >= GET_MAX_CARS) { PRINT_FUNC_LF(); g_print ("pos(%d) >= GET_MAX_CARS(%d)\n", pos, GET_MAX_CARS); pos --; } size = read(fd, &buf[pos], 1); } while ((buf[pos] != '\b') && (buf[pos] != '\r') && (buf[pos] != '\n') && (size > 0)); if (pos > 0 ) { buf[pos ++ ] = '\n'; buf[pos] = '\0'; g_string_append_printf (gstr, "%s", buf); } } while (size != 0); close(fd); return (gstr); } // // GString *GetInfo_which (gchar *file) { gint fd; gint pos = 0; gchar *args [ 10 ]; gchar buf [ GET_MAX_CARS + 10 ]; gint size = 0; GString *gstr = g_string_new (NULL); args[pos++] = "which"; args[pos++] = file; args[pos++] = NULL; /* g_print ("!-----------------------------------!\n"); g_print ("! W H I C H !\n"); g_print ("!-----------------------------------!\n"); for (pos = 0; args[ pos ] != NULL; pos++) g_print ("args [ %02d ] = '%s'\n", pos, args [ pos ]); g_print ("\n"); */ fd = GetInfo_exec_with_output (args, &VarGet.code_fork, STDOUT_FILENO); do { pos = -1; do { pos++; if (pos >= GET_MAX_CARS) { PRINT_FUNC_LF(); g_print ("pos(%d) >= GET_MAX_CARS(%d)\n", pos, GET_MAX_CARS); pos --; } size = read(fd, &buf[pos], 1); } while ((buf[pos] != '\b') && (buf[pos] != '\r') && (buf[pos] != '\n') && (size > 0)); if (pos > 0 ) { buf[pos ++ ] = '\n'; buf[pos] = '\0'; g_string_append_printf (gstr, "%s", buf); } } while (size != 0); close(fd); return (gstr); } // // void GetInfo_eject (gchar *StrDevice) { gint fd; gint pos = 0; gchar *args [ 10 ]; gchar buf [ GET_MAX_CARS + 10 ]; gint size = 0; args[pos++] = "eject"; // args[pos++] = "--cdrom"; args[pos++] = StrDevice; args[pos++] = NULL; /* g_print ("!-----------------------------------!\n"); g_print ("! E J E C T !\n"); g_print ("!-----------------------------------!\n"); for (pos = 0; args[ pos ] != NULL; pos++) g_print ("args [ %02d ] = '%s'\n", pos, args [ pos ]); g_print ("\n"); */ fd = GetInfo_exec_with_output (args, &VarGet.code_fork, STDERR_FILENO); do { pos = -1; do { pos++; if (pos >= GET_MAX_CARS) { PRINT_FUNC_LF(); g_print ("pos(%d) >= GET_MAX_CARS(%d)\n", pos, GET_MAX_CARS); pos --; } size = read(fd, &buf[pos], 1); } while ((buf[pos] != '\b') && (buf[pos] != '\r') && (buf[pos] != '\n') && (size > 0)); } while (size != 0); close(fd); } // // GString *GetInfo_cdparanoia( gchar *p_device ) { gint fd; gint pos = 0; gchar *args [ 10 ]; gchar buf [ GET_MAX_CARS + 10 ]; gint size = 0; GString *gstr = g_string_new (NULL); args[pos++] = "cdparanoia"; args[pos++] = "-Q"; args[pos++] = "-d"; args[pos++] = p_device; args[pos++] = NULL; /* g_print ("!-----------------------------------!\n"); g_print ("! C D P A R A N O I A !\n"); g_print ("!-----------------------------------!\n"); for (pos = 0; args[ pos ] != NULL; pos++) g_print ("args [ %02d ] = '%s'\n", pos, args [ pos ]); g_print ("\n"); */ fd = GetInfo_exec_with_output (args, &VarGet.code_fork, STDERR_FILENO); do { pos = -1; do { pos++; if (pos >= GET_MAX_CARS) { PRINT_FUNC_LF(); g_print ("pos(%d) >= GET_MAX_CARS(%d)\n", pos, GET_MAX_CARS); pos --; } size = read(fd, &buf[pos], 1); } while ((buf[pos] != '\b') && (buf[pos] != '\r') && (buf[pos] != '\n') && (size > 0)); if (pos > 0 ) { buf[pos ++ ] = '\n'; buf[pos] = '\0'; g_string_append_printf (gstr, "%s", buf); } } while (size != 0); close(fd); return (gstr); } // // GString *GetInfo_metaflac (gchar *file) { gint fd; gint pos = 0; gchar *args [ 10 ]; gchar buf [ GET_MAX_CARS + 10 ]; gint size = 0; GString *gstr = g_string_new (NULL); args[pos++] = "metaflac"; args[pos++] = "--show-total-samples"; args[pos++] = "--show-sample-rate"; args[pos++] = file; args[pos++] = NULL; /* g_print ("!-----------------------------------!\n"); g_print ("! M E T A F L A C !\n"); g_print ("!-----------------------------------!\n"); for (pos = 0; args[ pos ] != NULL; pos++) g_print ("args [ %02d ] = '%s'\n", pos, args [ pos ]); g_print ("\n"); */ fd = GetInfo_exec_with_output (args, &VarGet.code_fork, STDOUT_FILENO); do { pos = -1; do { pos++; if (pos >= GET_MAX_CARS) { PRINT_FUNC_LF(); g_print ("pos(%d) >= GET_MAX_CARS(%d)\n", pos, GET_MAX_CARS); pos --; } size = read(fd, &buf[pos], 1); } while ((buf[pos] != '\b') && (buf[pos] != '\r') && (buf[pos] != '\n') && (size > 0)); if (pos > 0 ) { buf[pos ++ ] = '\n'; buf[pos] = '\0'; g_string_append_printf (gstr, "%s", buf); } } while (size != 0); close(fd); return (gstr); } // // gboolean GetInfo_wget (void) { gint fd; gint pos = 0; gchar *args [ 10 ]; gchar buf [ GET_MAX_CARS + 10 ]; gint size = 0; gboolean bool_access_ok = TRUE; // PRINT_FUNC_LF(); args[pos++] = "wget"; args[pos++] = "--user-agent=\"Mozilla 22.0\""; args[pos++] = "--directory-prefix=/tmp/"; args[pos++] = "http://www.google.fr/index.html"; args[pos++] = NULL; args[pos++] = NULL; /* g_print ("!-----------------------------------!\n"); g_print ("! W G E T !\n"); g_print ("!-----------------------------------!\n"); for (pos = 0; args[ pos ] != NULL; pos++) g_print ("args [ %02d ] = '%s'\n", pos, args [ pos ]); g_print ("\n"); */ fd = GetInfo_exec_with_output (args, &VarGet.code_fork, STDERR_FILENO); do { pos = -1; do { pos++; if (pos >= GET_MAX_CARS) { PRINT_FUNC_LF(); g_print ("pos(%d) >= GET_MAX_CARS(%d)\n", pos, GET_MAX_CARS); pos --; } size = read(fd, &buf[pos], 1); } while ((buf[pos] != '\b') && (buf[pos] != '\r') && (buf[pos] != '\n') && (size > 0)); if (NULL != strstr (buf, "Not Found")) { bool_access_ok = FALSE; } } while (size != 0); close(fd); if( TRUE == libutils_test_file_exist( "/tmp/index.html" )) { g_unlink ("/tmp/index.html"); bool_access_ok = TRUE; } else { bool_access_ok = FALSE; } return (bool_access_ok); } // // SHNTAG *GetInfo_free_shntool (SHNTAG *ShnTag) { if (NULL != ShnTag) { if (NULL != ShnTag->time) { g_free (ShnTag->time); ShnTag->time = NULL; } if (NULL != ShnTag->size) { g_free (ShnTag->size); ShnTag->size = NULL; } g_free (ShnTag); ShnTag = NULL; } return ((SHNTAG *)NULL); } gchar *GetInfo_cd_discid( gchar *p_device ) { gint fd; gint pos = 0; gchar *args [ 10 ]; gchar buf [ GET_MAX_CARS + 10 ]; gint size = 0; GString *gstr = g_string_new (NULL); gchar *StrCdDiscId = NULL; args[pos++] = "cd-discid"; args[pos++] = p_device; args[pos++] = NULL; /* g_print( "\n" ); g_print ("!-----------------------------------!\n"); g_print ("! C D - D I S C I D !\n"); g_print ("!-----------------------------------!\n"); for( pos = 0; args[ pos ] != NULL; pos++ ) g_print( "args [ %02d ] = '%s'\n", pos, args [ pos ] ); g_print( "\n" ); */ fd = GetInfo_exec_with_output( args, &VarGet.code_fork, STDOUT_FILENO ); do { pos = -1; do { pos++; if( pos >= GET_MAX_CARS ) { PRINT_FUNC_LF(); g_print( "pos(%d) >= GET_MAX_CARS(%d)\n", pos, GET_MAX_CARS ); pos --; } size = read( fd, &buf[pos], 1 ); } while(( buf[pos] != '\b' ) && ( buf[pos] != '\r' ) && ( buf[pos] != '\n' ) && ( size > 0 )); if( pos > 0 ) { buf[pos ++ ] = '\n'; buf[pos] = '\0'; g_string_append_printf( gstr, "%s", buf ); } } while( size != 0 ); close( fd ); if( '\0' != *gstr->str ) StrCdDiscId = g_strdup( gstr->str ); g_string_free( gstr, TRUE ); gstr = NULL; return( StrCdDiscId ); } SHNTAG *GetInfo_shntool (gchar *file) { gint fd; gint pos = 0; gchar *args [ 10 ]; gchar buf [ GET_MAX_CARS + 10 ]; gint size = 0; GString *gstr = g_string_new (NULL); SHNTAG *ShnTag = NULL; gchar *Ptr = NULL; guint Min; guint Sec; guint Hundr; args[pos++] = "shntool"; args[pos++] = "info"; args[pos++] = file; args[pos++] = NULL; /* g_print ("!-----------------------------------!\n"); g_print ("! S H N T O O L !\n"); g_print ("!-----------------------------------!\n"); for (pos = 0; args[ pos ] != NULL; pos++) g_print ("args [ %02d ] = '%s'\n", pos, args [ pos ]); g_print ("\n"); */ fd = GetInfo_exec_with_output (args, &VarGet.code_fork, STDOUT_FILENO); do { pos = -1; do { pos++; if (pos >= GET_MAX_CARS) { PRINT_FUNC_LF(); g_print ("pos(%d) >= GET_MAX_CARS(%d)\n", pos, GET_MAX_CARS); pos --; } size = read(fd, &buf[pos], 1); } while ((buf[pos] != '\b') && (buf[pos] != '\r') && (buf[pos] != '\n') && (size > 0)); if (pos > 0 ) { buf[pos ++ ] = '\n'; buf[pos] = '\0'; g_string_append_printf (gstr, "%s", buf); } } while (size != 0); close(fd); ShnTag = g_malloc0 (sizeof (SHNTAG)); if ((Ptr = strstr (gstr->str, "Length:")) != NULL) { Ptr = strchr (Ptr, ':'); Ptr ++; while (*Ptr == ' ') Ptr ++; Min = atoi (Ptr); Ptr = strchr (Ptr, ':'); Ptr ++; Sec = atoi (Ptr); Ptr = strchr (Ptr, '.'); Ptr ++; Hundr = atoi (Ptr); ShnTag->SecTime = (gdouble)(Min * 60) + (gdouble)(Sec) + (gdouble)(Hundr / 10.0); ShnTag->time = g_strdup_printf ("%02d:%02d", Min, Sec); if ((Ptr = strchr (ShnTag->time, '.')) != NULL) { *Ptr = '\0'; } } ShnTag->size = g_strdup_printf ("%d Ko", (gint)libutils_get_size_file (file) / 1024); g_string_free (gstr, TRUE); return ((SHNTAG *)ShnTag); } // // RECONNAISSANCE ENTETE FICHIER: // FILE_IS_M4A // FILE_IS_VID_M4A // FILE_IS_WAVPACK // FILE_IS_WAVPACK_MD5 // FILE_IS_WAV // FILE_IS_SHN // FILE_IS_RM // FILE_IS_OGG // FILE_IS_MPC // FILE_IS_AC3 // FILE_IS_MP3 // FILE_IS_FLAC // FILE_IS_APE // FILE_IS_AIFF // FILE_IS_DTS // SI COMMANDE file IS OK TEST DE: // FILE_IS_AAC // FILE_IS_WMA // TYPE_FILE_IS GetInfo_file_is( gchar *PathName ) { GString *gstr = NULL; TYPE_FILE_IS TypeFileRet = FILE_IS_NONE; gstr = GetInfo_file (PathName); // g_print( "gstr =\n%s\n", gstr->str ); // ABANDON SI LA COMMANDE file NE TROUVE PAS LE TYPE DE FICHIER if( 0 == strcmp( gstr->str, "data" )) { TypeFileRet = FILE_IS_NONE; PRINT("ERROR: LA COMMANDE file NE TROUVE RIEN :/"); } // UNE PETITE CHANCE SE PRESENTE ICI POUR AAC else { // FILE_IS_AAC if( TRUE == FileIs_vidm4a( PathName )) { TypeFileRet = FILE_IS_VID_M4A; } else if( strstr (gstr->str, "AAC" ) || strstr (gstr->str, "MPEG ADTS, AAC," )) { TypeFileRet = FILE_IS_AAC; } // FILE_IS_WMA else if (strstr (gstr->str, "Microsoft ASF")) { TypeFileRet = FILE_IS_WMA; } // FILE_IS_VID_M4A // WCC_RADIO_EP042.m4a: ISO Media, MPEG v4 system, iTunes AAC-LC // // FILE_IS_M4A // 21 The Academy.m4a: ISO Media, MPEG v4 system, version 2 // 4 Non Blondes - Whats Going On.m4a: ISO Media, MPEG v4 system, version 2 // audio.m4a: ISO Media, MPEG v4 system, version 2 // // FILE_IS_AAC // 01_King_Porter_Stomp.aac: MPEG ADTS, AAC, v4 LC, 22.05 kHz, stereo // aif.aac: MPEG ADTS, AAC, v4 LC, 22.05 kHz, stereo // audio.aac: MPEG ADTS, AAC, v2 LC, 48 kHz, stereo } if( FILE_IS_VID_M4A == TypeFileRet || FILE_IS_AAC == TypeFileRet || FILE_IS_WMA == TypeFileRet ) { g_string_free (gstr, TRUE); gstr = NULL; return( TypeFileRet ); } // FILE_IS_VID_M4A if( TRUE == FileIs_vidm4a( PathName )) { TypeFileRet = FILE_IS_VID_M4A; } // FILE_IS_M4A else if( TRUE == FileIs_m4a( PathName )) { TypeFileRet = FILE_IS_M4A; } // FILE_IS_WAVPACK // FILE_IS_WAVPACK_MD5 else if( TRUE == FileIs_wavpack( PathName )) { TypeFileRet = FILE_IS_WAVPACK; } // FILE_IS_WAV else if( TRUE == FileIs_wav( PathName )) { TypeFileRet = FILE_IS_WAV; } // FILE_IS_SHN else if( TRUE == FileIs_shn( PathName )) { TypeFileRet = FILE_IS_SHN; } // FILE_IS_RM else if( TRUE == FileIs_rm( PathName )) { TypeFileRet = FILE_IS_RM; } // FILE_IS_OGG else if( TRUE == FileIs_ogg( PathName )) { TypeFileRet = FILE_IS_OGG; } // FILE_IS_MPC else if( TRUE == FileIs_mpc( PathName )) { TypeFileRet = FILE_IS_MPC; } // FILE_IS_AC3 else if( TRUE == FileIs_ac3( PathName )) { TypeFileRet = FILE_IS_AC3; } // FILE_IS_FLAC else if( TRUE == FileIs_flac( PathName )) { TypeFileRet = FILE_IS_FLAC; } // FILE_IS_APE else if( TRUE == FileIs_ape( PathName )) { TypeFileRet = FILE_IS_APE; } // FILE_IS_DTS else if( TRUE == FileIs_dts( PathName )) { TypeFileRet = FILE_IS_DTS; } // FILE_IS_AIFF else if( TRUE == FileIs_aiff( PathName )) { TypeFileRet = FILE_IS_AIFF; } // FILE_IS_MP3 else if( TRUE == FileIs_mp3( PathName )) { TypeFileRet = FILE_IS_MP3; } // FILE_IS_MP3 // Without tag id3 :/ else if( strstr (gstr->str, "MPEG ADTS, layer III" )) { TypeFileRet = FILE_IS_MP3; } g_string_free (gstr, TRUE); gstr = NULL; return( TypeFileRet ); } xcfa-4.3.6/src/treeview.h0000644000175000017500000000205712122563437012171 00000000000000 /* * file : treeview.h * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifndef treeview_h #define treeview_h 1 void treeview_open_window (void); void treeview_set_etat_fields (void); void treeview_radiobutton_set_PosFieldsName (void); #endif xcfa-4.3.6/src/options_flac.c0000644000175000017500000000535112122563465013013 00000000000000 /* * file : options_flac.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "configuser.h" #include "options.h" static gchar *CompLevel[] = {"-0","-1","-2","-3","-4","-5","-6","-7","-8"}; gchar *optionsFlac_get_compression_level_flac (void) { // return ((gchar *)CompLevel [ gtk_combo_box_get_active ( GTK_COMBO_BOX (var_options.Adr_Widget_flac_compression)) ]); return ((gchar *)CompLevel [ Config.CompressionLevelFlac ]); } void on_options_combobox_flac_compression_realize (GtkWidget *widget, gpointer user_data) { var_options.Adr_Widget_flac_compression = GTK_COMBO_BOX (widget); // libcombo_alloc (GTK_COMBO_BOX (widget)); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), _("0 (Rapide)")); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "1"); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "2"); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "3"); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "4"); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "5"); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "6"); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "7"); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), _("8 (Lent)")); gtk_combo_box_set_active (GTK_COMBO_BOX (widget), Config.CompressionLevelFlac); } void on_combobox_flac_compression_changed (GtkComboBox *combobox, gpointer user_data) { if (NULL != var_options.Adr_Widget_flac_compression) { gint ind; if ((ind = gtk_combo_box_get_active (GTK_COMBO_BOX (var_options.Adr_Widget_flac_compression))) >= 0) Config.CompressionLevelFlac = ind; OptionsInternal_set_datas_interne (COLOR_FLAC_TAUX_COMPRESSION, var_options.Adr_label_flac_flac, FLAC_WAV_TO_FLAC); } } xcfa-4.3.6/src/popup.h0000644000175000017500000000362212122563437011501 00000000000000 /* * file : popup.h * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifndef popup_h #define popup_h 1 #include "cd_audio.h" void popup_cd (CD_AUDIO *Audio, TYPE_FILE_IS TypeFileIs); void popup_file (DETAIL *detail, TYPE_FILE_IS TypeFileIs); void popup_file_ReplayGain (DETAIL *detail); void popup_file_wav_frequence (DETAIL *detail); void popup_file_wav_piste (DETAIL *detail); void popup_file_wav_quantification (DETAIL *detail); #include "poche.h" void popup_file_Split (void); void popup_flip( IMAGE *p_Image ); void popup_viewport( GLIST_POCHETTE *gl ); void popup_trash (void); void popup_normalise_cd (void); void popup_normalise_dvd (void); typedef struct { gboolean BoolFromPopup; gint num; gchar *name; } CD_POPUP_GENRE; extern CD_POPUP_GENRE CdPopupGenre ; void popup_menu_cd( void ); void popup_file_mp3_type( DETAIL *detail, gint p_debit, gint p_mode ); void popup_file_ogg_type( DETAIL *detail, gint p_debit, gint p_managed, gint p_downmix ); gchar *popup_get_param_ogg( gint p_debit, gint p_managed, gint p_downmix ); gchar *popup_get_param_mp3( gint p_debit, gint p_mode ); #endif xcfa-4.3.6/src/options_faac.c0000644000175000017500000001665312122563465013007 00000000000000 /* * file : options_faac.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "configuser.h" #include "options.h" static gchar *str_faac_conteneur[] = { "", "-w" }; static gchar *str_faac_abr[] = { "-b 56", "-b 64", "-b 80", "-b 96", "-b 128", "-b 152" }; static gchar *str_faac_vbr[] = { "-q 10", "-q 30", "-q 50", "-q 70", "-q 80", "-q 90", "-q 100", "-q 120", "-q 150", "-q 200", "-q 250", "-q 300", "-q 400", "-q 500" }; gchar *OptionsFaac_get_faac_conteneur (void) { if (NULL == var_options.Adr_Widget_faac_conteneur) return ( (gchar *)str_faac_conteneur[ 0 ]); return ( (gchar *)str_faac_conteneur[ gtk_combo_box_get_active (GTK_COMBO_BOX (var_options.Adr_Widget_faac_conteneur)) ]); } gchar *OptionsFaac_get_faac_set_choice_vbr_abr (void) { if (0 == gtk_combo_box_get_active (GTK_COMBO_BOX (var_options.Adr_Widget_faac_choice_vbr_abr))) { gint ind = gtk_combo_box_get_active (GTK_COMBO_BOX (var_options.Adr_Widget_faac_set_choice_vbr_abr)); if (ind < 0) ind = 0; return ( (gchar *)str_faac_vbr[ ind ]); } return ( (gchar *)str_faac_abr[ gtk_combo_box_get_active (GTK_COMBO_BOX (var_options.Adr_Widget_faac_set_choice_vbr_abr)) ]); } void on_combobox_faac_conteneur_realize (GtkWidget *widget, gpointer user_data) { libcombo_alloc (GTK_COMBO_BOX (widget)); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), _("Transport Stream (ADTS) - Extension .aac")); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), _("MPEG-4 File Format (MP4) - Extension .m4a")); gtk_combo_box_set_active (GTK_COMBO_BOX (widget), Config.ConteneurFacc); var_options.Adr_Widget_faac_conteneur = GTK_COMBO_BOX (widget); // on_combobox_faac_set_choice_vbr_abr_changed (NULL,NULL); } void on_combobox_faac_conteneur_changed (GtkComboBox *combobox, gpointer user_data) { if (NULL != var_options.Adr_Widget_faac_conteneur) { gint ind; if ((ind = gtk_combo_box_get_active (GTK_COMBO_BOX (var_options.Adr_Widget_faac_conteneur))) >= 0) Config.ConteneurFacc = ind; OptionsInternal_set_datas_interne (COLOR_FAAC_CONTENEUR, var_options.Adr_label_faac_m4a, FAAC_WAV_TO_M4A); } } void on_combobox_faac_choice_vbr_abr_realize (GtkWidget *widget, gpointer user_data) { libcombo_alloc (GTK_COMBO_BOX (widget)); var_options.Adr_Widget_faac_choice_vbr_abr = GTK_COMBO_BOX (widget); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "VBR"); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "ABR"); gtk_combo_box_set_active (GTK_COMBO_BOX (widget), Config.AbrVbrFacc); } void on_combobox_faac_choice_vbr_abr_changed (GtkComboBox *combobox, gpointer user_data) { if (NULL != var_options.Adr_Widget_faac_choice_vbr_abr) { gint ind; if ((ind = gtk_combo_box_get_active (GTK_COMBO_BOX (var_options.Adr_Widget_faac_choice_vbr_abr))) >= 0) Config.AbrVbrFacc = ind; } if (var_options.Adr_Widget_faac_choice_vbr_abr == NULL) return; if (var_options.Adr_Widget_faac_set_choice_vbr_abr == NULL) return; libcombo_alloc (GTK_COMBO_BOX (var_options.Adr_Widget_faac_set_choice_vbr_abr)); switch (gtk_combo_box_get_active (var_options.Adr_Widget_faac_choice_vbr_abr)) { /* VBR * 10, 30, 50, 70, 80, 90, 100, 120, 150, 200, 250, 300, 400, 500 */ case 0 : gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_faac_set_choice_vbr_abr), "10"); gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_faac_set_choice_vbr_abr), "30"); gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_faac_set_choice_vbr_abr), "50"); gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_faac_set_choice_vbr_abr), "70"); gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_faac_set_choice_vbr_abr), "80"); gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_faac_set_choice_vbr_abr), "90"); gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_faac_set_choice_vbr_abr), "100"); gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_faac_set_choice_vbr_abr), "120"); gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_faac_set_choice_vbr_abr), "150"); gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_faac_set_choice_vbr_abr), "200"); gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_faac_set_choice_vbr_abr), "250"); gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_faac_set_choice_vbr_abr), "300"); gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_faac_set_choice_vbr_abr), "400"); gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_faac_set_choice_vbr_abr), "500"); gtk_combo_box_set_active (GTK_COMBO_BOX (var_options.Adr_Widget_faac_set_choice_vbr_abr), Config.VbrFaccIndice); break; /* ABR * 56, 64, 80, 96, 128, 152 */ case 1 : gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_faac_set_choice_vbr_abr), "56"); gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_faac_set_choice_vbr_abr), "64"); gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_faac_set_choice_vbr_abr), "80"); gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_faac_set_choice_vbr_abr), "96"); gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_faac_set_choice_vbr_abr), "128"); gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_faac_set_choice_vbr_abr), "152"); gtk_combo_box_set_active (GTK_COMBO_BOX (var_options.Adr_Widget_faac_set_choice_vbr_abr), Config.AbrFaccIndice); break; } OptionsInternal_set_datas_interne (COLOR_FAAC_SET_CHOICE_VBR_ABR, var_options.Adr_label_faac_m4a, FAAC_WAV_TO_M4A); } void on_combobox_faac_set_choice_vbr_abr_realize (GtkWidget *widget, gpointer user_data) { // libcombo_alloc (GTK_COMBO_BOX (widget)); var_options.Adr_Widget_faac_set_choice_vbr_abr = GTK_COMBO_BOX (widget); on_combobox_faac_choice_vbr_abr_changed (NULL,NULL); } void on_combobox_faac_set_choice_vbr_abr_changed (GtkComboBox *combobox, gpointer user_data) { if (NULL != var_options.Adr_Widget_faac_set_choice_vbr_abr) { gint ind; if ((ind = gtk_combo_box_get_active (GTK_COMBO_BOX (var_options.Adr_Widget_faac_set_choice_vbr_abr))) >= 0) { switch (gtk_combo_box_get_active (var_options.Adr_Widget_faac_choice_vbr_abr)) { case 0 : Config.VbrFaccIndice = ind; break; case 1 : Config.AbrFaccIndice = ind; break; } } OptionsInternal_set_datas_interne (COLOR_FAAC_SET_CHOICE_VBR_ABR, var_options.Adr_label_faac_m4a, FAAC_WAV_TO_M4A); } } xcfa-4.3.6/src/poche_txt.c0000644000175000017500000002436212122563465012333 00000000000000 /* * file : poche_txt.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #include #include #include #include #include // M_PI #include #include #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "configuser.h" #include "scan.h" #include "cd_curl.h" #include "poche.h" // #include "cd_audio.h" // // FONT BOLD // gboolean pochetxt_get_is_bold( void ) { return( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(GLADE_GET_OBJECT("togglebutton_font_bold"))) ); } void on_togglebutton_font_bold_clicked( GtkButton *button, gpointer user_data ) { IMAGE *Image = poche_get_struct_selected_is_txt(); if( NULL != Image ) { Image->BoolFontBold = pochetxt_get_is_bold(); gtk_widget_queue_draw( view.AdrDrawingarea ); } } // // FONT ITALIC // gboolean pochetxt_get_is_italic( void ) { return( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(GLADE_GET_OBJECT("togglebutton_font_italic"))) ); } void on_togglebutton_font_italic_clicked( GtkButton *button, gpointer user_data ) { IMAGE *Image = poche_get_struct_selected_is_txt(); if( NULL != Image ) { Image->BoolFontItalic = pochetxt_get_is_italic(); gtk_widget_queue_draw( view.AdrDrawingarea ); } } // // NAME FILE TO PNG / PS / PDF // gchar *pochetxt_get_ptr_entry_name_file_to_save( void ) { if( NULL != view.AdrEntryNameFileSave ) { return( (gchar *)gtk_entry_get_text (GTK_ENTRY (view.AdrEntryNameFileSave))); } return( NULL ); } void on_entry_name_save_file_changed( GtkEditable *editable, gpointer user_data ) { if( NULL != view.AdrEntryNameFileSave ) { if( NULL != Config.NameImg ) { g_free( Config.NameImg ); Config.NameImg = NULL; } Config.NameImg = g_strdup( pochetxt_get_ptr_entry_name_file_to_save() ); poche_set_flag_buttons(); } } void on_entry_name_save_file_realize( GtkWidget *widget, gpointer user_data ) { view.AdrEntryNameFileSave = widget; gtk_entry_set_text( GTK_ENTRY(widget), Config.NameImg ); } // // NAME SEARCH ON WEB // gchar *pochetxt_get_ptr_entry_img_web( void ) { if( NULL != view.AdrEntrySearchImgWeb ) { return( (gchar *)gtk_entry_get_text (GTK_ENTRY (view.AdrEntrySearchImgWeb))); } return( NULL ); } void on_entry_img_web_changed( GtkEditable *editable, gpointer user_data ) { if( NULL != view.AdrEntrySearchImgWeb ) { poche_set_flag_buttons (); } } void on_entry_img_web_realize( GtkWidget *widget, gpointer user_data ) { view.AdrEntrySearchImgWeb = widget; } // // LE TITRE S'AFFICHE DE FACON PERPENDICULARE SUR LES COTES DE LA POCHETTE // void on_entry_titre_changed( GtkEditable *editable, gpointer user_data ) { if( NULL != (gchar *)gtk_entry_get_text (GTK_ENTRY (editable))) { poche_set_texte_title( (gchar *)gtk_entry_get_text (GTK_ENTRY (editable)) ); } } void on_entry_titre_realize( GtkWidget *widget, gpointer user_data ) { view.AdrEntryTitleCD = widget; } // // INSERTION D UNE NOUVELLE BOITE DE TEXTE // void on_button_text_add_clicked( GtkButton *button, gpointer user_data ) { IMAGE *Image = NULL; Image = poche_add_to_glist( NULL, 100, 100, TRUE, _TYPE_TEXT_ ); poche_set_selected_flag_image( Image ); gtk_widget_queue_draw( view.AdrDrawingarea ); pochetxt_set_text_to_textview( Image ); // DEBUG CDDB_CURL pochetxt_set_combobox_choice( Image->PosCombobox ); } // // IMPORTATION DU TITRE DU CD // void on_button_import_title_cd_clicked( GtkButton *button, gpointer user_data ) { gchar *PtrTitleCd = CdCurl_get_title_cd(); if( NULL != PtrTitleCd ) { gtk_entry_set_text( GTK_ENTRY(view.AdrEntryTitleCD), PtrTitleCd ); } } // // IMPORTATION DEPUIS LE WEB SELON LE CRITERE DE RECHERCHE // void on_button_import_img_web_clicked( GtkButton *button, gpointer user_data ) { pocheweb_get(); } // // IMPORTATION DES DATAS DU CD // void pochetxt_set_text_from_cd( gchar *p_buffer, gint p_PosCombobox ) { IMAGE *Image = poche_get_struct_selected_is_txt(); if( NULL != Image ) { if( NULL != Image->Texte ) { g_free( Image->Texte ); Image->Texte = NULL; } Image->PosCombobox = p_PosCombobox; /*Image->Texte = g_strdup( "01 california ][ 05:01\n" "02 XXL ][ 04:28\n" "03 l'instant X ][ 04:45\n" "04 comme j'ai mal ][ 03:57\n" "05 rever ][ 05:25\n" "06 l'âme-stram-gram ][ 04:26\n" "07 je te rends ton amour ][ 05:13\n" "08 souviens toi du jour ][ 05:01\n" "09 optimistique moi ][ 04:23\n" "10 innamoramento ][ 05:15\n" "11 l'histoire dune fee , c'est... ][ 05:02\n" );*/ Image->Texte = g_strdup( p_buffer ); pochetxt_set_text_to_textview( Image ); gtk_widget_queue_draw( view.AdrDrawingarea ); } } // // CHOIX DE LA FONTE // void on_button_change_font_clicked( GtkButton *button, gpointer user_data ) { IMAGE *Image = NULL; if( NULL != ( Image = (IMAGE *)poche_get_struct_selected_is_txt())) { GtkResponseType result; GtkWidget *dialog = NULL; gchar *Ptr = NULL; gchar *Font = g_strdup_printf( "%s %d", Image->FontName, Image->SizeFontName ); dialog = gtk_font_selection_dialog_new("Select Font"); gtk_font_selection_dialog_set_font_name( GTK_FONT_SELECTION_DIALOG(dialog), Font ); g_free( Font ); Font = NULL; result = gtk_dialog_run(GTK_DIALOG(dialog)); if (result == GTK_RESPONSE_OK || result == GTK_RESPONSE_APPLY) { if( NULL != Image->FontName ) { g_free( Image->FontName ); Image->FontName = NULL; } Image->FontName = gtk_font_selection_dialog_get_font_name( GTK_FONT_SELECTION_DIALOG(dialog)); // LE NOM DE LA POLICE: FontName Ptr = Image->FontName; while( *Ptr ++ ); Ptr --; while( *Ptr != ' ' ) Ptr --; Ptr ++; // LA TAILLE DE LA POLICE: SizeFont Image->SizeFontName = atoi( Ptr ); Ptr --; *Ptr = '\0'; // FORCER AFFICHAGE gtk_widget_queue_draw( view.AdrDrawingarea ); } gtk_widget_destroy(dialog); } } // // COPY BOX TEXT IN TEXTVIEW // void pochetxt_set_text_to_textview( IMAGE *p_Image ) { if( _TYPE_TEXT_ == p_Image->TypeImage ) { GtkTextBuffer *Buf = NULL; GtkTextIter Start; GtkTextIter End; view.BoolAccessChanged = FALSE; // ACQUISITION BUFFER TEXTVIEW Buf = gtk_text_view_get_buffer( GTK_TEXT_VIEW(view.AdrTextview)); gtk_text_buffer_get_bounds( Buf, &Start, &End ); // DESTROY BUFFER TEXTE gtk_text_buffer_delete( Buf, &Start, &End ); // AFFICHAGE if( NULL == p_Image->Texte ) gtk_text_buffer_set_text( Buf, "", -1 ); else gtk_text_buffer_set_text( Buf, p_Image->Texte, -1 ); // NEW OPTION COMBOBOX // DEBUG CDDB_CURL pochetxt_set_combobox_choice( p_Image->PosCombobox ); view.BoolAccessChanged = TRUE; } } // // TEXTVIEW // void pochetxt_texte_changed_in_textview (GtkTextBuffer *textbuffer, gpointer user_data) { IMAGE *Image = NULL; // SI _TYPE_TEXT_ EN SELECTION if( TRUE == view.BoolAccessChanged && NULL != ( Image = poche_get_struct_selected_is_txt())) { GtkTextBuffer *Buf = NULL; gchar *PtrTexte = NULL; GtkTextIter Start; GtkTextIter End; // ACQUISITION BUFFER TEXTVIEW Buf = gtk_text_view_get_buffer( GTK_TEXT_VIEW(view.AdrTextview)); gtk_text_buffer_get_bounds( Buf, &Start, &End ); // ACQUISITION DU TEXTE PtrTexte = gtk_text_buffer_get_text (Buf, &Start, &End, FALSE); // DESTRUCTION BUFFER ACTUEL DE LA BOITE if( NULL != Image->Texte ) { g_free( Image->Texte ); Image->Texte = NULL; } // INSERTION DU NOUVEA TEXTE Image->Texte = g_strdup( PtrTexte ); // FORCER AFFICHAGE gtk_widget_queue_draw( view.AdrDrawingarea ); g_free( PtrTexte ); PtrTexte = NULL; } } void on_textview_poche_realize( GtkWidget *widget, gpointer user_data ) { view.AdrTextview = widget; g_signal_connect((gpointer) gtk_text_view_get_buffer (GTK_TEXT_VIEW (widget)), "changed", G_CALLBACK (pochetxt_texte_changed_in_textview), NULL); } // // CALLBACKS // // // LES OPTIONS > 0 APPELLES UNE LECTURE SI BESOIN // void on_combobox_choice_get_cd_realize( GtkWidget *widget, gpointer user_data ) { libcombo_alloc (GTK_COMBO_BOX (widget)); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "Aucun" ); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "Titre" ); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "Titre - Temps" ); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "Artiste - Titre - Temps" ); gtk_combo_box_set_active(GTK_COMBO_BOX (widget), 0 ); view.AdrComboBoxChoice = GTK_COMBO_BOX (widget); } void on_combobox_choice_get_cd_changed( GtkComboBox *combobox, gpointer user_data ) { if( NULL != view.AdrComboBoxChoice && TRUE == view.BoolAccessChanged && NULL != view.Buffer_none ) { gint NbrGet = gtk_combo_box_get_active (GTK_COMBO_BOX (view.AdrComboBoxChoice)); switch( NbrGet ) { case _CDDB_BUFFER_NONE_ : pochetxt_set_text_from_cd( view.Buffer_none, NbrGet ); break; case _CDDB_BUFFER_TITLE_ : pochetxt_set_text_from_cd( view.Buffer_title, NbrGet ); break; case _CDDB_BUFFER_TITLE_TIME_ : pochetxt_set_text_from_cd( view.Buffer_title_time, NbrGet ); break; case _CDDB_BUFFER_ARTIST_TITLE_TIME_ : pochetxt_set_text_from_cd( view.Buffer_artist_title_time, NbrGet ); break; } } } // // void pochetxt_set_combobox_choice( gint p_activate ) { if( p_activate > -1 ) { view.BoolAccessChanged = FALSE; gtk_combo_box_set_active( GTK_COMBO_BOX (view.AdrComboBoxChoice), p_activate ); view.BoolAccessChanged = TRUE; } } xcfa-4.3.6/src/conv.c0000644000175000017500000017761712164313336011313 00000000000000 /* * file : conv.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #include #include #include #include // #include // PROCESSUS NON-BLOQUANT #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "file.h" #include "conv.h" /* *--------------------------------------------------------------------------- * EXTERN *--------------------------------------------------------------------------- */ extern int kill (pid_t pid, int sig); /* *--------------------------------------------------------------------------- * VARIABLES *--------------------------------------------------------------------------- */ #define CONV_MAX_CARS 1024 #define CONV_MAX_VALUE_PERCENT 0.978597 CONV conv; /* *--------------------------------------------------------------------------- * STOP THREAD AND TIMEOUT *--------------------------------------------------------------------------- */ /* void conv_print (void) { g_print("\tconv.encode_completed->%d conv.total_convert->%d\n", conv.encode_completed, conv.total_convert); g_print("\tconv.rip_completed---->%d conv.total_rip----->%d\n", conv.rip_completed, conv.total_rip); g_print("\tconv.total_percent = %f\n", conv.total_percent); g_print("\tconv.extract_percent = %f\n", conv.extract_percent); g_print("\tconv.conversion_percent = %f\n", conv.conversion_percent); g_print("\n"); } */ void conv_inc_rip_completed (void) { if (conv.rip_completed < conv.total_rip) { conv.rip_completed ++; conv.total_percent = ((double)conv.rip_completed + (double)conv.encode_completed + (double)conv.extract_percent + (double)conv.conversion_percent) / ((double)conv.total_rip + (double)conv.total_convert); } conv.bool_percent_conv = TRUE; } void conv_inc_encode_completed (void) { if (conv.encode_completed < conv.total_convert) { conv.encode_completed ++; conv.total_percent = ((double)conv.rip_completed + (double)conv.encode_completed + (double)conv.extract_percent + (double)conv.conversion_percent) / ((double)conv.total_rip + (double)conv.total_convert); } conv.bool_percent_conv = TRUE; } void conv_stop_conversion (void) { gint Ret_Kill; // PRINT_FUNC_LF(); conv.bool_stop = TRUE; if (conv.code_fork_conv > 0) { g_print ("kill (%d, SIGKILL)\n", conv.code_fork_conv); Ret_Kill = kill (conv.code_fork_conv, SIGKILL); if (Ret_Kill != 0) { g_print ("--------------------------\n"); g_print ("ERREUR Ret_Kill = %d\n", Ret_Kill); g_print ("-------------------------\n"); } } conv.code_fork_conv = -1; if (conv.code_fork_extract > 0) { g_print ("kill (%d, SIGKILL)\n", conv.code_fork_extract); Ret_Kill = kill (conv.code_fork_extract, SIGKILL); if (Ret_Kill != 0) { g_print ("--------------------------\n"); g_print ("ERREUR Ret_Kill = %d\n", Ret_Kill); g_print ("-------------------------\n"); } } conv.code_fork_extract = -1; } /* *--------------------------------------------------------------------------- * SIGNAL ET EXTRACTION *--------------------------------------------------------------------------- */ void conv_sigchld_extract (gint signum) { gint status; wait(&status); /* PRINT_FUNC_LF(); */ /* if there are still children waiting * re-install the signal handler */ conv.signal_numchildren_extract --; if (conv.signal_numchildren_extract > 0) { /* re-install the signal handler */ signal (SIGCHLD, conv_sigchld_extract); } } int conv_extract_call_exec (gchar **args, pid_t *p, gint p_output) { gchar **ptr = (gchar **)args; // gint status; conv.signal_numchildren_extract = 0; if (pipe (conv.tube_extract) != 0) { fprintf (stderr, "error: pipe\n"); exit (1); } if ((*p = fork()) == 0) { dup2 (conv.tube_extract [1 ], p_output); close (conv.tube_extract [ 1 ]); execvp ((gchar *)*(ptr+0), ptr); fprintf (stderr, "error: exec"); exit (2); } conv.signal_numchildren_extract ++; signal (SIGCHLD, conv_sigchld_extract); close(conv.tube_extract [ 1 ]); // LE FICHIER EST OUVERT EN MODE « NON-BLOQUANT » // status = fcntl( conv.tube_extract [ 0 ], F_GETFL ); // status = fcntl( conv.tube_extract [ 0 ], F_SETFL, status | O_NONBLOCK ); return (conv.tube_extract [ 0 ]); } /* *--------------------------------------------------------------------------- * SIGNAL ET CONVERSIONS *--------------------------------------------------------------------------- */ void conv_sigchld_convert (gint signum) { gint status; wait(&status); /* PRINT_FUNC_LF(); */ /* if there are still children waiting * re-install the signal handler */ conv.signal_numchildren_conv --; if (conv.signal_numchildren_conv > 0) { /* re-install the signal handler */ signal (SIGCHLD, conv_sigchld_convert); } } int conv_call_exec (gchar **args, pid_t *p, gint p_output) { gchar **ptr = (gchar **)args; // gint status; conv.signal_numchildren_conv = 0; if (pipe (conv.tube_conv) != 0) { fprintf (stderr, "error: pipe\n"); exit (1); } if ((*p = fork()) == 0) { dup2 (conv.tube_conv [ 1 ], p_output); close (conv.tube_conv [ 1 ]); execvp ((gchar *)*(ptr+0), ptr); fprintf (stderr, "error: exec"); exit (2); } conv.signal_numchildren_conv ++; signal (SIGCHLD, conv_sigchld_convert); close (conv.tube_conv [ 1 ]); // LE FICHIER EST OUVERT EN MODE « NON-BLOQUANT » // status = fcntl( conv.tube_conv [ 0 ], F_GETFL ); // status = fcntl( conv.tube_conv [ 0 ], F_SETFL, status | O_NONBLOCK ); return (conv.tube_conv [ 0 ]); } // RESET STRUCTURE CONV // void conv_reset_struct (void *p_func) { gint i; /*PRINT_FUNC_LF();*/ conv.Func_request_stop = p_func; conv.BoolIsExtract = FALSE; conv.BoolIsConvert = FALSE; conv.BoolIsCopy = FALSE; conv.BoolIsNormalise = FALSE; conv.BoolIsReplaygain = FALSE; conv.extract_percent = 0.0; conv.total_rip = 0; conv.rip_completed = 0; conv.conversion_percent = 0.0; conv.total_convert = 0; conv.encode_completed = 0; conv.total_percent = 0.0; conv.bool_percent_conv = FALSE; conv.bool_percent_extract = FALSE; conv.bool_stop = FALSE; if( NULL != conv.TmpRep ) { g_free (conv.TmpRep); conv.TmpRep = NULL; } conv.code_fork_conv = -1; conv.code_fork_extract = -1; conv.handler_timeout_conv = 0; conv.bool_thread_conv = FALSE; conv.bool_thread_extract = FALSE; conv.signal_numchildren_conv = 0; conv.signal_numchildren_extract = 0; conv.Bool_MAJ_select = FALSE; for (i = 0; i < MAX_ARG_CONV; i++) { conv.ArgExtract [ i ] = NULL; } } // LSDVD // void conv_with_lsdvd_ARGS (gchar **args) { gint fd; gint size; gint pos = 0; gchar buf [ CONV_MAX_CARS + 10 ]; fd = conv_call_exec (args, &conv.code_fork_conv, STDOUT_FILENO); do { pos = -1; do { pos++; if (pos >= CONV_MAX_CARS) { PRINT_FUNC_LF(); g_print ("pos(%d) >= CONV_MAX_CARS(%d)\n", pos, CONV_MAX_CARS); pos --; } size = read(fd, &buf[pos], 1); } while ((buf[pos] != '\b') && (buf[pos] != '\r') && (buf[pos] != '\n') && (size > 0)); buf[pos++] = '\n'; buf[pos] = '\0'; libutils_add_datas_on_disk (buf); } while (size != 0); close(fd); conv.code_fork_conv = -1; conv.conversion_percent = 0.0; } // MPLAYER // gboolean conv_with_mplayer_ARGS (gchar **args, TYPE_CONV p_TypeConv) { gint pos = 0; gint fd = -1; gint size; gchar buf [ CONV_MAX_CARS + 10 ]; gboolean BoolRet = TRUE; gchar *Ptr = NULL; gboolean BoolFinfTotal = FALSE; gint TimeTotal = 0; gboolean BoolErreurMplayer = FALSE; gint Total = 0; gint Value = 0; /* PRINT_FUNC_LF(); */ conv.conversion_percent = 0.0; conv.bool_percent_conv = TRUE; fd = conv_call_exec (args, &conv.code_fork_conv, STDOUT_FILENO); /* Ne pas stopper mplayer */ /* conv.code_fork_conv = -1; */ do { pos = -1; do { pos++; if (pos >= CONV_MAX_CARS) { PRINT_FUNC_LF(); g_print ("pos(%d) >= CONV_MAX_CARS(%d)\n", pos, CONV_MAX_CARS); pos --; } size = read(fd, &buf[pos], 1); if (strstr(buf,"Audio: no sound")) { BoolRet = FALSE; BoolErreurMplayer = TRUE; break; } if (strstr(buf,"relocation error")) { BoolRet = FALSE; BoolErreurMplayer = TRUE; break; } } while (FALSE == conv.bool_stop && (buf[pos] != '\b') && (buf[pos] != '\r') && (buf[pos] != '\n') && (size > 0)); // SI LA FONCTION EST NON NULLE if (NULL != conv.Func_request_stop) { // SI DEMANDE DE STOP EST VALIDE if (TRUE == (conv.bool_stop = (*conv.Func_request_stop)())) { // ARRET DES CONVERTISSEURS / EXTRACTEURS conv_stop_conversion (); } } if (TRUE == BoolErreurMplayer) break; if (FALSE == conv.bool_stop && p_TypeConv != MPLAYER_AUDIO_TO_WAV) { // A: 7.3 (07.2) of 276.0 (04:36.0) 0.6% // A:4061.6 ( 1:07:41.6) of 4089.0 ( 1:08:09.0) 0.0 if (BoolFinfTotal == FALSE) { if ((Ptr = strstr(buf,"A:")) != NULL) { if ((Ptr = strstr(buf,"of")) != NULL) { Ptr ++; Ptr ++; Ptr ++; sscanf( Ptr, "%d", &TimeTotal ); Total = TimeTotal; BoolFinfTotal = TRUE; } } } else if( buf[0] == 'A' && buf[1] == ':' ) { Ptr = &buf[2]; while (*Ptr == ' ') Ptr++; sscanf( Ptr, "%d", &Value ); conv.conversion_percent = ( (double)Value / (double)Total ) ; if (conv.conversion_percent >= CONV_MAX_VALUE_PERCENT) conv.conversion_percent = 1.000000; conv.total_percent = ((double)conv.rip_completed + (double)conv.encode_completed + (double)conv.extract_percent + (double)conv.conversion_percent) / ((double)conv.total_rip + (double)conv.total_convert); conv.bool_percent_conv = TRUE; } } if (buf[pos] != '\n') { pos ++; buf[pos++] = '\n'; buf[pos] = '\0'; } } while (FALSE == conv.bool_stop && (size > 0)); close(fd); if (TRUE == BoolErreurMplayer) { g_print("\n"); g_print("BoolErreurMplayer = TRUE\n"); g_print("KILL Process mplayer = "); if ((kill (conv.code_fork_conv, SIGKILL) != 0)) g_print ("ERREUR\n"); else g_print ("OK\n"); g_print("\n"); } conv.code_fork_conv = -1; conv.conversion_percent = 0.0; return (BoolRet); } // SOX // void conv_with_sox_ARGS (gchar **args) { gint fd; gint size; gint pos = 0; gchar buf [ CONV_MAX_CARS + 10 ]; float Percent; fd = conv_call_exec (args, &conv.code_fork_conv, STDERR_FILENO); do { pos = -1; do { pos++; if (pos >= CONV_MAX_CARS) { PRINT_FUNC_LF(); g_print ("pos(%d) >= CONV_MAX_CARS(%d)\n", pos, CONV_MAX_CARS); pos --; } size = read(fd, &buf[pos], 1); } while ((buf[pos] != '\b') && (buf[pos] != '\r') && (buf[pos] != '\n') && (size > 0)); pos ++; buf[ pos ] = '\0'; // SI LA FONCTION EST NON NULLE if (NULL != conv.Func_request_stop) { // SI DEMANDE DE STOP EST VALIDE if (TRUE == (conv.bool_stop = (*conv.Func_request_stop)())) { // ARRET DES CONVERTISSEURS / EXTRACTEURS conv_stop_conversion (); } } if( strstr( buf, "In:" )) { gchar *Ptr = NULL; // In:76.6% 00:52:11.54 [00:15:58.40] Out:138M [======|=====!] Hd:0.0 Clip:0 if( NULL != ( Ptr = strchr( buf, ':' ))) { Ptr ++ ; if( sscanf( Ptr, "%f", &Percent ) > 0 ) { conv.conversion_percent = (Percent / 100.0); if (conv.conversion_percent >= CONV_MAX_VALUE_PERCENT) conv.conversion_percent = 1.0; conv.total_percent = ((double)conv.rip_completed + (double)conv.encode_completed + (double)conv.extract_percent + (double)conv.conversion_percent) / ((double)conv.total_rip + (double)conv.total_convert); conv.bool_percent_conv = TRUE; } } } buf [ 0 ] = '\0'; buf [ 1 ] = '\0'; buf [ 2 ] = '\0'; } while (FALSE == conv.bool_stop && size != 0); close(fd); conv.code_fork_conv = -1; conv.conversion_percent = 0.0; } gchar **conv_with_sox_get_param( gchar *filesrc, gchar *filedest, gchar *frequence, gchar *voie, gchar *bits ) { gint pos; gchar **PtrTabArgs = NULL; PtrTabArgs = filelc_AllocTabArgs(); pos = 3; PtrTabArgs [ pos++ ] = g_strdup ("sox"); PtrTabArgs [ pos++ ] = g_strdup ("-t"); PtrTabArgs [ pos++ ] = g_strdup (".wav"); PtrTabArgs [ pos++ ] = g_strdup (filesrc); PtrTabArgs [ pos++ ] = g_strdup ("-S"); PtrTabArgs [ pos++ ] = g_strdup ("-r"); PtrTabArgs [ pos++ ] = g_strdup (frequence); PtrTabArgs [ pos++ ] = g_strdup ("-c"); PtrTabArgs [ pos++ ] = g_strdup (voie); switch (atoi (bits)) { case 8 : PtrTabArgs [ pos++ ] = g_strdup ("-1"); break; case 16 : PtrTabArgs [ pos++ ] = g_strdup ("-2"); break; case 24 : PtrTabArgs [ pos++ ] = g_strdup ("-3"); break; case 32 : PtrTabArgs [ pos++ ] = g_strdup ("-4"); break; case 64 : PtrTabArgs [ pos++ ] = g_strdup ("-8"); break; default : PtrTabArgs [ pos++ ] = g_strdup ("-2"); break; } PtrTabArgs [ pos++ ] = g_strdup ("-o"); PtrTabArgs [ pos++ ] = g_strdup (filedest); PtrTabArgs [ pos++ ] = NULL; return( (gchar **)PtrTabArgs ); } gchar **conv_with_sox_float_get_param( gchar *filesrc, gchar *filedest ) { gint pos; gchar **PtrTabArgs = NULL; PtrTabArgs = filelc_AllocTabArgs(); pos = 3; PtrTabArgs [ pos++ ] = g_strdup ("sox"); PtrTabArgs [ pos++ ] = g_strdup (filesrc); PtrTabArgs [ pos++ ] = g_strdup ("-t"); PtrTabArgs [ pos++ ] = g_strdup ("wavpcm"); PtrTabArgs [ pos++ ] = g_strdup ("-S"); PtrTabArgs [ pos++ ] = g_strdup ("-f"); PtrTabArgs [ pos++ ] = g_strdup ("-o"); PtrTabArgs [ pos++ ] = g_strdup (filedest); PtrTabArgs [ pos++ ] = NULL; return( (gchar **)PtrTabArgs ); } gchar **conv_lsdvd_read_get_param( gchar *p_PathDvd ) { gint pos; gchar **PtrTabArgs = NULL; PtrTabArgs = filelc_AllocTabArgs(); pos = 3; PtrTabArgs [ pos++ ] = g_strdup( "lsdvd" ); PtrTabArgs [ pos++ ] = g_strdup( p_PathDvd ); PtrTabArgs [ pos++ ] = g_strdup( "-x" ); PtrTabArgs [ pos++ ] = g_strdup( "2>&1" ); PtrTabArgs [ pos++ ] = NULL; return( (gchar **)PtrTabArgs ); } // FLAC // gboolean conv_with_flac_ARGS (gchar **args) { gint pos = 0; gint fd; gint size; gint sector = 0; gchar buf [ CONV_MAX_CARS + 10 ]; gchar *Ptr = NULL; gboolean BoolNoErrorRet = TRUE; fd = conv_call_exec (args, &conv.code_fork_conv, STDERR_FILENO); do { /* 01.flac: 27% complete */ pos = -1; do { pos++; if (pos >= CONV_MAX_CARS) { PRINT_FUNC_LF(); g_print ("pos(%d) >= CONV_MAX_CARS(%d)\n", pos, CONV_MAX_CARS); pos --; } size = read(fd, &buf[pos], 1); } while ((buf[pos] != '\b') && (buf[pos] != '\r') && (buf[pos] != '\n') && (size > 0)); pos ++; buf[ pos ] = '\0'; // SI LA FONCTION EST NON NULLE if (NULL != conv.Func_request_stop) { // SI DEMANDE DE STOP EST VALIDE if (TRUE == (conv.bool_stop = (*conv.Func_request_stop)())) { // ARRET DES CONVERTISSEURS / EXTRACTEURS conv_stop_conversion (); } } if ((Ptr = strstr (buf, "ERROR"))) { /* coldplay_test.flac: ERROR, MD5 signature mismatch coldplay_test.wav: ERROR while decoding metadata state = FLAC__STREAM_DECODER_END_OF_STREAM */ BoolNoErrorRet = FALSE; break; } /* exemple du contenu de buf * a.wav: 5% complete, ratio=0,534 a.wav: 41% complete, ratio=0,489 a.wav: 91% complete, ratio=0,455 */ if ((Ptr = strchr (buf, ':'))) { Ptr ++; Ptr ++; sscanf(Ptr, "%d", §or); conv.conversion_percent = (double)((sector * 0.1) / 10); if (conv.conversion_percent >= CONV_MAX_VALUE_PERCENT) conv.conversion_percent = 1.000000; conv.total_percent = ((double)conv.rip_completed + (double)conv.encode_completed + (double)conv.extract_percent + (double)conv.conversion_percent) / ((double)conv.total_rip + (double)conv.total_convert); conv.bool_percent_conv = TRUE; } } while (FALSE == conv.bool_stop && size != 0); close(fd); conv.code_fork_conv = -1; conv.conversion_percent = 0.0; return (BoolNoErrorRet); } // MAC // void conv_with_mac_ARGS (gchar **args) { gint pos = 0; gint fd; gint size; gchar buf [ CONV_MAX_CARS + 10 ]; gint percent; fd = conv_call_exec (args, &conv.code_fork_conv, STDERR_FILENO); /* mac ./01.wav ./02.ape -c2000 --- Monkey's Audio Console Front End (v 3.99) (c) Matthew T. Ashland --- Compressing (normal)... Progress: 8.4% (8.6 seconds remaining, 0.8 seconds total) Progress: 13.3% (7.6 seconds remaining, 1.2 seconds total) Progress: 19.3% (6.9 seconds remaining, 1.6 seconds total) Progress: 24.1% (6.4 seconds remaining, 2.0 seconds total) Progress: 26.6% (6.1 seconds remaining, 2.2 seconds total) Progress: 29.0% (5.9 seconds remaining, 2.4 seconds total) Progress: 53.1% (3.8 seconds remaining, 4.3 seconds total) Progress: 79.7% (1.7 seconds remaining, 6.6 seconds total) Progress: 100.0% (0.0 seconds remaining, 8.2 seconds total) Success... */ do { pos = -1; do { pos++; if (pos >= CONV_MAX_CARS) { PRINT_FUNC_LF(); g_print ("pos(%d) >= CONV_MAX_CARS(%d)\n", pos, CONV_MAX_CARS); pos --; } size = read(fd, &buf[pos], 1); } while ((buf[pos] != '\b') && (buf[pos] != '\r') && (buf[pos] != '\n') && (size > 0)); pos ++; buf[ pos ] = '\0'; // SI LA FONCTION EST NON NULLE if (NULL != conv.Func_request_stop) { // SI DEMANDE DE STOP EST VALIDE if (TRUE == (conv.bool_stop = (*conv.Func_request_stop)())) { // ARRET DES CONVERTISSEURS / EXTRACTEURS conv_stop_conversion (); } } sscanf(buf, "Progress: %d)", &percent); if (percent == 0) continue; conv.conversion_percent = (double)((percent * 0.1) / 10); if (conv.conversion_percent >= CONV_MAX_VALUE_PERCENT) conv.conversion_percent = 1.000000; conv.total_percent = ((double)conv.rip_completed + (double)conv.encode_completed + (double)conv.extract_percent + (double)conv.conversion_percent) / ((double)conv.total_rip + (double)conv.total_convert); conv.bool_percent_conv = TRUE; } while (FALSE == conv.bool_stop && size != 0); close(fd); conv.code_fork_conv = -1; conv.conversion_percent = 0.0; } // WAVPACK // void conv_with_wavpack_ARGS (gchar **args) { gint pos = 0; gboolean BoolPass = FALSE; gint fd; gint size; gchar buf [ CONV_MAX_CARS + 10 ]; gchar *ptr = NULL; gint percent; fd = conv_call_exec (args, &conv.code_fork_conv, STDERR_FILENO); conv.conversion_percent = 1.0; conv.bool_percent_conv = TRUE; do { pos = -1; do { pos++; if (pos >= CONV_MAX_CARS) { PRINT_FUNC_LF(); g_print ("pos(%d) >= CONV_MAX_CARS(%d)\n", pos, CONV_MAX_CARS); pos --; } size = read(fd, &buf[pos], 1); } while ((buf[pos] != '\b') && (buf[pos] != '\r') && (buf[pos] != '\n') && (size > 0)); buf[pos] = '\0'; // SI LA FONCTION EST NON NULLE if (NULL != conv.Func_request_stop) { // SI DEMANDE DE STOP EST VALIDE if (TRUE == (conv.bool_stop = (*conv.Func_request_stop)())) { // ARRET DES CONVERTISSEURS / EXTRACTEURS conv_stop_conversion (); } } /* fish@debian:~/tmp$ wavpack -y -f -j0 ./1.wav WAVPACK Hybrid Lossless Audio Compressor Linux Version 4.32 2006-04-05 Copyright (c) 1998 - 2005 Conifer Software. All Rights Reserved. creating ./1.wv, 10% done... 14% done... 18% done... 32% done... 38% done... 41% done... 49% done... 53% done... created ./1.wv in 4.25 secs (lossless, 20.89%) */ if ((ptr = strstr (&buf[0], "done"))) { ptr -= 5; while (*ptr == ' ') ptr ++; if (sscanf(ptr, "%d",&percent) == 1) { if (percent == 0) continue; conv.conversion_percent = (double)((percent * 0.1) / 10); if (conv.conversion_percent >= CONV_MAX_VALUE_PERCENT) conv.conversion_percent = 1.000000; conv.total_percent = ((double)conv.rip_completed + (double)conv.encode_completed + (double)conv.extract_percent + (double)conv.conversion_percent) / ((double)conv.total_rip + (double)conv.total_convert); conv.bool_percent_conv = TRUE; BoolPass = TRUE; } } } while (FALSE == conv.bool_stop && size != 0); if (BoolPass == FALSE) { percent = 100; conv.conversion_percent = 1.0; conv.total_percent = ((conv.encode_completed) + (double)conv.conversion_percent) / conv.total_convert; conv.bool_percent_conv = TRUE; } close(fd); conv.code_fork_conv = -1; conv.conversion_percent = 0.0; } // OGGENC // void conv_with_oggenc_ARGS (gchar **args) { gint pos = 0; gint fd; gint size; gint sector; gint end; gchar buf [ CONV_MAX_CARS + 10 ]; fd = conv_call_exec (args, &conv.code_fork_conv, STDERR_FILENO); conv.conversion_percent = 0.0; do { size = -1; pos = -1; do { pos++; if (pos >= CONV_MAX_CARS) { PRINT_FUNC_LF(); g_print ("pos(%d) >= CONV_MAX_CARS(%d)\n", pos, CONV_MAX_CARS); pos --; } size = read(fd, &buf[pos], 1); } while (buf[pos] != '\b' && buf[pos] != '\r' && buf[pos] != '\n' && size > 0); pos ++; buf[ pos ] = '\0'; // SI LA FONCTION EST NON NULLE if (NULL != conv.Func_request_stop) { // SI DEMANDE DE STOP EST VALIDE if (TRUE == (conv.bool_stop = (*conv.Func_request_stop)())) { // ARRET DES CONVERTISSEURS / EXTRACTEURS conv_stop_conversion (); } } sector = -1; end = -1; /* [ 3,0%] [ 0m17s remaining] */ if (sscanf(buf, "\t[%d.%d%%]", §or, &end) != 2) { sscanf(buf, "\t[%d,%d%%]", §or, &end); } if (sector > -1 && end > -1) { conv.conversion_percent = (double)(sector + (end * 0.1)) / 100; if (conv.conversion_percent >= CONV_MAX_VALUE_PERCENT) conv.conversion_percent = 1.000000; conv.total_percent = ((double)conv.rip_completed + (double)conv.encode_completed + (double)conv.extract_percent + (double)conv.conversion_percent) / ((double)conv.total_rip + (double)conv.total_convert); conv.bool_percent_conv = TRUE; } } while (FALSE == conv.bool_stop && size != 0); close(fd); conv.code_fork_conv = -1; conv.conversion_percent = 0.0; } // FAAC // void conv_with_faac_ARGS (gchar **args) { gint pos = 0; gint fd; gint size; gchar buf [ CONV_MAX_CARS + 10 ]; gint dum = 0; gint sector = 0; fd = conv_call_exec (args, &conv.code_fork_conv, STDERR_FILENO); /* 53/9518 ( 0%)| 108.2 | 0.1/18.0 | 12.31x | 17.9 250/9518 ( 2%)| 117.7 | 0.5/17.5 | 12.62x | 17.1 450/9518 ( 4%)| 122.8 | 0.8/17.9 | 12.38x | 17.0 650/9518 ( 6%)| 124.8 | 1.2/17.9 | 12.37x | 16.6 2100/9518 ( 22%)| 120.5 | 3.8/17.2 | 12.89x | 13.4 9518/9518 (100%)| 124.0 | 17.2/17.2 | 12.86x | 0.0 */ do { pos = -1; do { pos++; if (pos >= CONV_MAX_CARS) { PRINT_FUNC_LF(); g_print ("pos(%d) >= CONV_MAX_CARS(%d)\n", pos, CONV_MAX_CARS); pos --; } size = read(fd, &buf[pos], 1); } while ((buf[pos] != '\b') && (buf[pos] != '\r') && (buf[pos] != '\n') && (size > 0)); pos ++; buf[ pos ] = '\0'; // SI LA FONCTION EST NON NULLE if (NULL != conv.Func_request_stop) { // SI DEMANDE DE STOP EST VALIDE if (TRUE == (conv.bool_stop = (*conv.Func_request_stop)())) { // ARRET DES CONVERTISSEURS / EXTRACTEURS conv_stop_conversion (); } } sscanf(buf, "%d/%d (%d)", &dum, &dum, §or); if (sector == 0) continue; conv.conversion_percent = (double)((sector * 0.1) / 10); if (conv.conversion_percent >= CONV_MAX_VALUE_PERCENT) conv.conversion_percent = 1.000000; conv.total_percent = ((double)conv.rip_completed + (double)conv.encode_completed + (double)conv.extract_percent + (double)conv.conversion_percent) / ((double)conv.total_rip + (double)conv.total_convert); conv.bool_percent_conv = TRUE; } while (FALSE == conv.bool_stop && size != 0); close(fd); conv.code_fork_conv = -1; conv.conversion_percent = 0.0; } // LAME // void conv_with_lame_ARGS (gchar **args) { gint pos = 0; gint fd; gint size; gint sector; gint end; gchar buf [ CONV_MAX_CARS + 10 ]; fd = conv_call_exec (args, &conv.code_fork_conv, STDERR_FILENO); do { pos = -1; do { pos++; if (pos >= CONV_MAX_CARS) { PRINT_FUNC_LF(); g_print ("pos(%d) >= CONV_MAX_CARS(%d)\n", pos, CONV_MAX_CARS); pos --; } size = read(fd, &buf[pos], 1); } while ((buf[pos] != '\b') && (buf[pos] != '\r') && (buf[pos] != '\n') && (size > 0)); pos ++; buf[ pos ] = '\0'; // SI LA FONCTION EST NON NULLE if (NULL != conv.Func_request_stop) { // SI DEMANDE DE STOP EST VALIDE if (TRUE == (conv.bool_stop = (*conv.Func_request_stop)())) { // ARRET DES CONVERTISSEURS / EXTRACTEURS conv_stop_conversion (); } } sector = -1; end = -1; if (sscanf(buf, "%d/%d", §or, &end) == 2) { conv.conversion_percent = (double)sector/end; if (conv.conversion_percent >= CONV_MAX_VALUE_PERCENT) conv.conversion_percent = 1.000000; conv.total_percent = ((double)conv.rip_completed + (double)conv.encode_completed + (double)conv.extract_percent + (double)conv.conversion_percent) / ((double)conv.total_rip + (double)conv.total_convert); conv.bool_percent_conv = TRUE; } } while (FALSE == conv.bool_stop && size != 0); close(fd); conv.code_fork_conv = -1; conv.conversion_percent = 0.0; } // OGG123 // void conv_with_ogg123_ARGS (gchar **args) { gint fd; gint pos = 0; gint size; gchar buf [ CONV_MAX_CARS + 10 ]; gint Dummy; gint Min = -1, Sec = -1, Cent = -1; // gint Code = -1; gint TT_Sector = -1; fd = conv_call_exec (args, &conv.code_fork_conv, STDERR_FILENO); do { size = 0; pos = -1; do { pos++; if (pos >= CONV_MAX_CARS) { PRINT_FUNC_LF(); g_print ("pos(%d) >= CONV_MAX_CARS(%d)\n", pos, CONV_MAX_CARS); pos --; } size = read(fd, &buf[pos], 1); } while ((buf[pos] != '\b') && (buf[pos] != '\r') && (buf[pos] != '\n') && (size > 0)); pos ++; buf[ pos ] = '\0'; // SI LA FONCTION EST NON NULLE if (NULL != conv.Func_request_stop) { // SI DEMANDE DE STOP EST VALIDE if (TRUE == (conv.bool_stop = (*conv.Func_request_stop)())) { // ARRET DES CONVERTISSEURS / EXTRACTEURS conv_stop_conversion (); } } /* Time: 00:39,17 [03:57,86] of 04:37,03 (190,3 kbit/s) Output Buffer 100,0% */ // Code = -1; if (TT_Sector == -1) { sscanf(buf, "Time: %d:%d,%d [%d:%d,%d] of %d:%d,%d", &Dummy, &Dummy, &Dummy, &Dummy, &Dummy, &Dummy, &Min, &Sec, &Cent); if (Min > -1 && Sec > -1 && Cent > -1) { TT_Sector = ((Min * 60) + Sec); } } else { sscanf(buf, "Time: %d:%d,%d", &Min, &Sec, &Cent); if (Min > -1 && Sec > -1 && Cent > -1) { conv.conversion_percent = (double)((Min * 60) + Sec) / TT_Sector; if (conv.conversion_percent >= CONV_MAX_VALUE_PERCENT) conv.conversion_percent = 1.000000; conv.total_percent = (conv.encode_completed + (double)((Min * 60) + Sec) / TT_Sector) / conv.total_convert; conv.bool_percent_conv = TRUE; } } } while (FALSE == conv.bool_stop && size != 0); close(fd); conv.code_fork_conv = -1; conv.conversion_percent = 0.0; } // NORMALISE // void conv_with_normalise_ARGS (gchar **args) { gint end = 0; gchar *ptr = NULL; gchar buf [ CONV_MAX_CARS + 10 ]; gint fd; gint size = 0; gint pos = 0; gboolean bool_pass_2 = TRUE; fd = conv_call_exec (args, &conv.code_fork_conv, STDERR_FILENO); do { /* $ normalize-audio --peak "/home/cat/Musique/CD/PEAK_Charles Aznavour/01.wav" -- Computing levels... 01.wav 100% done, ETA 00:00:00 (batch 100% done, ETA 00:00:00) Applying adjustment of 0,82dB to /home/cat/Musique/CD/PEAK_Charles Aznavour/01.wav... 01.wav 100% done, ETA 00:00:00 (batch 100% done, ETA 00:00:00) */ pos = -1; do { pos++; if (pos >= CONV_MAX_CARS) { PRINT_FUNC_LF(); g_print ("pos(%d) >= CONV_MAX_CARS(%d)\n", pos, CONV_MAX_CARS); pos --; } size = read(fd, &buf[pos], 1); } while ((buf[pos] != '\b') && (buf[pos] != '\r') && (buf[pos] != '\n') && (size > 0)); buf[pos] = '\0'; // SI LA FONCTION EST NON NULLE if (NULL != conv.Func_request_stop) { // SI DEMANDE DE STOP EST VALIDE if (TRUE == (conv.bool_stop = (*conv.Func_request_stop)())) { // ARRET DES CONVERTISSEURS / EXTRACTEURS conv_stop_conversion (); } } // g_print("BUF = %s\n", buf); // 1_77842900.wav 35% done, ETA 00:00:02 (batch 35% done, ETA 00:00:02) if( NULL != ( ptr = strstr( buf, "done" ))) { ptr --; ptr --; while( *ptr != ' ' ) ptr --; ptr ++; if (sscanf(ptr, "%d",&end) == 1) { if (bool_pass_2 == TRUE) { if (end >= 100) bool_pass_2 = FALSE; conv.conversion_percent = (double)end / 100.0; if (conv.conversion_percent >= CONV_MAX_VALUE_PERCENT) conv.conversion_percent = 1.000000; // conv.total_percent = (conv.encode_completed + (double)conv.conversion_percent) / conv.total_convert; conv.total_percent = ((double)conv.rip_completed + (double)conv.encode_completed + (double)conv.extract_percent + (double)conv.conversion_percent) / ((double)conv.total_rip + (double)conv.total_convert); conv.bool_percent_conv = TRUE; } else { // conv.conversion_percent = (double)((end * 0.1) / 10); conv.conversion_percent = (double)end / 100.0; if (conv.conversion_percent >= CONV_MAX_VALUE_PERCENT) conv.conversion_percent = 1.000000; conv.total_percent = ((double)conv.rip_completed + (double)conv.encode_completed + (double)conv.extract_percent + (double)conv.conversion_percent) / ((double)conv.total_rip + (double)conv.total_convert); conv.bool_percent_conv = TRUE; } } } } while (FALSE == conv.bool_stop && size != 0); close(fd); conv.code_fork_conv = -1; conv.conversion_percent = 0.0; } void conv_with_normalise_get_PEAK_RMS_GROUP_ARGS (gchar **args) { gchar *ptr = NULL; gchar buf [ CONV_MAX_CARS + 10 ]; gint fd; gint size; gint pos = 0; gdouble value = 0.0; gdouble dmin = 0.0; gdouble dmax = 0.0; gboolean BoolPass = TRUE; fd = conv_call_exec (args, &conv.code_fork_conv, STDOUT_FILENO); do { pos = -1; do { pos++; if (pos >= CONV_MAX_CARS) { PRINT_FUNC_LF(); g_print ("pos(%d) >= CONV_MAX_CARS(%d)\n", pos, CONV_MAX_CARS); pos --; } size = read(fd, &buf[pos], 1); } while ((buf[pos] != '\b') && (buf[pos] != '\r') && (buf[pos] != '\n') && (size > 0)); buf[pos] = '\0'; // SI LA FONCTION EST NON NULLE if (NULL != conv.Func_request_stop) { // SI DEMANDE DE STOP EST VALIDE if (TRUE == (conv.bool_stop = (*conv.Func_request_stop)())) { // ARRET DES CONVERTISSEURS / EXTRACTEURS conv_stop_conversion (); } } if ((ptr = strstr (&buf[0], "dBFS"))) { while (*ptr != ' ') ptr ++; while (*ptr == ' ') ptr ++; /*g_print ("buf = %s\n", buf);*/ value = atof(ptr); if (BoolPass == TRUE) { dmin = dmax = value; BoolPass = FALSE; } if (dmin > value) dmin = value; if (dmax < value) dmax = value; } } while (FALSE == conv.bool_stop && size != 0); /* g_print ("value = %f, dmin = %f, dmax = %f\n", value, dmin, dmax); g_print ("dmax - dmin - 0.1 = %f\n", (dmax - dmin) - 0.1); g_print ("dmin - dmax - 0.1 = %f\n", (dmin - dmax) - 0.1); conv.value_PEAK_RMS_GROUP_ARGS = (dmin - dmax) - 0.1; conv.value_PEAK_RMS_GROUP_ARGS = dmax - dmin - 0.1; g_print ("conv.value_PEAK_RMS_GROUP_ARGS = %f\n", conv.value_PEAK_RMS_GROUP_ARGS); g_print ("****\n"); */ g_print ("\nSUR LES TRES BONS CONSEILS DE @Dzef ;-)\n"); g_print ("\tdmin = %f\n", dmin); g_print ("\tdmax = %f\n", dmax); g_print ("\t0.0 - dmax(%f) - 0.1 = %f\n", dmax, 0.0 - dmax - 0.1); conv.value_PEAK_RMS_GROUP_ARGS = 0.0 - dmax - 0.1; g_print ("\tconv.value_PEAK_RMS_GROUP_ARGS = %f\n\n", conv.value_PEAK_RMS_GROUP_ARGS); close(fd); conv.code_fork_conv = -1; conv.conversion_percent = 0.0; } // REPLAGAIN // void conv_with_replaygain_ARGS (gchar **args) { gint pos = 0; gint size = 0; gchar buf[CONV_MAX_CARS + 10]; gint fd; conv.bool_percent_conv = TRUE; fd = conv_call_exec (args, &conv.code_fork_conv, STDERR_FILENO); do { size = -1; pos = -1; do { pos++; if (pos >= CONV_MAX_CARS) { PRINT_FUNC_LF(); g_print ("pos(%d) >= CONV_MAX_CARS(%d)\n", pos, CONV_MAX_CARS); pos --; } size = read(fd, &buf[pos], 1); conv.bool_percent_conv = TRUE; } while (buf[pos] != '\b' && buf[pos] != '\r' && buf[pos] != '\n' && size > 0); pos ++; buf[ pos ] = '\0'; // SI LA FONCTION EST NON NULLE if (NULL != conv.Func_request_stop) { // SI DEMANDE DE STOP EST VALIDE if (TRUE == (conv.bool_stop = (*conv.Func_request_stop)())) { // ARRET DES CONVERTISSEURS / EXTRACTEURS conv_stop_conversion (); } } } while (FALSE == conv.bool_stop && size != 0); close(fd); } // AACPLUSENC // void conv_with_aacplusenc_ARGS (gchar **args) { gint pos = 0; gint size = 0; gchar buf[CONV_MAX_CARS + 10]; gint fd; gchar *Ptr = NULL; conv.conversion_percent = 0.0; conv.bool_percent_conv = TRUE; fd = conv_call_exec (args, &conv.code_fork_conv, STDERR_FILENO); do { pos = -1; do { pos++; if (pos >= CONV_MAX_CARS) { PRINT_FUNC_LF(); g_print ("pos(%d) >= CONV_MAX_CARS(%d)\n", pos, CONV_MAX_CARS); pos --; } size = read(fd, &buf[pos], 1); } while ((buf[pos] != '\b') && (buf[pos] != '\r') && (buf[pos] != '\n') && (size > 0)); buf[pos ++ ] = '\n'; buf[pos] = '\0'; // SI LA FONCTION EST NON NULLE if (NULL != conv.Func_request_stop) { // SI DEMANDE DE STOP EST VALIDE if (TRUE == (conv.bool_stop = (*conv.Func_request_stop)())) { // ARRET DES CONVERTISSEURS / EXTRACTEURS conv_stop_conversion (); } } if ((Ptr = strchr (buf, '['))) { Ptr ++; conv.conversion_percent = (double)((atoi(Ptr) * 0.1) / 10); if (conv.conversion_percent >= CONV_MAX_VALUE_PERCENT) conv.conversion_percent = 1.000000; conv.total_percent = ((double)conv.rip_completed + (double)conv.encode_completed + (double)conv.extract_percent + (double)conv.conversion_percent) / ((double)conv.total_rip + (double)conv.total_convert); conv.bool_percent_conv = TRUE; } } while (FALSE == conv.bool_stop && size != 0); conv.code_fork_conv = -1; conv.conversion_percent = 0.0; close(fd); } // MPPENC // void conv_with_mppenc_ARGS (gchar **args) { gint pos = 0; gint fd; gint size; gchar buf [ CONV_MAX_CARS + 10 ]; gint percent = 0; gint old_percent = 0; fd = conv_call_exec (args, &conv.code_fork_conv, STDERR_FILENO); do { pos = -1; do { pos++; if (pos >= CONV_MAX_CARS) { PRINT_FUNC_LF(); g_print ("pos(%d) >= CONV_MAX_CARS(%d)\n", pos, CONV_MAX_CARS); pos --; } size = read(fd, &buf[pos], 1); } while ((buf[pos] != '\b') && (buf[pos] != '\r') && (buf[pos] != '\n') && (size > 0)); pos ++; buf[ pos ] = '\0'; // SI LA FONCTION EST NON NULLE if (NULL != conv.Func_request_stop) { // SI DEMANDE DE STOP EST VALIDE if (TRUE == (conv.bool_stop = (*conv.Func_request_stop)())) { // ARRET DES CONVERTISSEURS / EXTRACTEURS conv_stop_conversion (); } } sscanf(buf, "%d", &percent); if (percent <= 0) continue; if (percent >= old_percent) { conv.conversion_percent = (double)((percent * 0.1) / 10); if (conv.conversion_percent >= CONV_MAX_VALUE_PERCENT) conv.conversion_percent = 1.000000; conv.total_percent = ((double)conv.rip_completed + (double)conv.encode_completed + (double)conv.extract_percent + (double)conv.conversion_percent) / ((double)conv.total_rip + (double)conv.total_convert); conv.bool_percent_conv = TRUE; old_percent = percent; } } while (FALSE == conv.bool_stop && size != 0); close(fd); conv.code_fork_conv = -1; conv.conversion_percent = 0.0; } // ICEDAX // gboolean conv_with_icedax_tool_ARGS (gchar **args) { gint pos = 0; gint size = 0; gchar buf[CONV_MAX_CARS + 10]; gint fd; gboolean BoolRet = TRUE; gint NbrError = 0; conv.bool_percent_conv = TRUE; fd = conv_call_exec (args, &conv.code_fork_conv, STDERR_FILENO); do { pos = -1; do { pos++; if (pos >= CONV_MAX_CARS) { PRINT_FUNC_LF(); g_print ("pos(%d) >= CONV_MAX_CARS(%d)\n", pos, CONV_MAX_CARS); pos --; } size = read(fd, &buf[pos], 1); } while ((buf[pos] != '\b') && (buf[pos] != '\r') && (buf[pos] != '\n') && (size > 0)); buf[pos ++ ] = '\n'; buf[pos] = '\0'; // SI LA FONCTION EST NON NULLE if (NULL != conv.Func_request_stop) { // SI DEMANDE DE STOP EST VALIDE if (TRUE == (conv.bool_stop = (*conv.Func_request_stop)())) { // ARRET DES CONVERTISSEURS / EXTRACTEURS conv_stop_conversion (); } } /* POSSIBILITE D ERREUR PRODUITE: ------------------------------ BUF = Error trying to open /dev/hdb exclusively (Device or resource busy)... retrying in 1 second. BUF = Error trying to open /dev/hdb exclusively (Device or resource busy)... retrying in 1 second. BUF = Error trying to open /dev/hdb exclusively (Device or resource busy)... retrying in 1 second. BUF = Error trying to open /dev/hdb exclusively (Device or resource busy)... retrying in 1 second. BUF = Error trying to open /dev/hdb exclusively (Device or resource busy)... giving up. BUF = device /dev/hdb does not support generic_scsi; falling back to cooked_ioctl instead BUF = Error trying to open /dev/hdb exclusively (Device or resource busy)... retrying in 1 second. BUF = Error trying to open /dev/hdb exclusively (Device or resource busy)... retrying in 1 second. BUF = Error trying to open /dev/hdb exclusively (Device or resource busy)... retrying in 1 second. BUF = Error trying to open /dev/hdb exclusively (Device or resource busy)... retrying in 1 second. BUF = Error trying to open /dev/hdb exclusively (Device or resource busy)... giving up. */ if (buf [ 0 ] != '\n') g_print("BUF = %s", buf); if (NULL != (strstr (buf, "Device or resource busy"))) { if (NbrError++ > 3) { PRINT("ERREUR TROUVEE 3 FOIS:\n\tDevice or resource busy"); BoolRet = FALSE; conv_stop_conversion (); } } } while (FALSE == conv.bool_stop && size != 0); conv.code_fork_conv = -1; close(fd); return (BoolRet); } // MPG321 // void conv_with_mpg321_ARGS (gchar **args) { gint fd; gint pos = 0; gint size = -1; gchar buf [ CONV_MAX_CARS + 10 ]; gchar type [ 20 ]; gint Code, TT_Sector = -1; fd = conv_call_exec (args, &conv.code_fork_conv, STDERR_FILENO); do { pos = -1; do { pos++; if (pos >= CONV_MAX_CARS) { PRINT_FUNC_LF(); g_print ("pos(%d) >= CONV_MAX_CARS(%d)\n", pos, CONV_MAX_CARS); pos --; } size = read(fd, &buf[pos], 1); } while ((buf[pos] != '\b') && (buf[pos] != '\r') && (buf[pos] != '\n') && (size > 0)); pos ++; buf[ pos ] = '\0'; // SI LA FONCTION EST NON NULLE if (NULL != conv.Func_request_stop) { // SI DEMANDE DE STOP EST VALIDE if (TRUE == (conv.bool_stop = (*conv.Func_request_stop)())) { // ARRET DES CONVERTISSEURS / EXTRACTEURS conv_stop_conversion (); } } /* Frame# 792 [12190], Time: 00:20.68 [05:18.45] sscanf(buf, "##: %d [%d]%s @ %d", &code, type, §or); */ Code = -1; if (TT_Sector == -1) { sscanf(buf, "%s %d [%d]", type, &Code, &TT_Sector); } else { sscanf(buf, "%s %d", type, &Code); if (Code > -1 && Code <= TT_Sector) { conv.conversion_percent = (double)Code / TT_Sector; if (conv.conversion_percent >= CONV_MAX_VALUE_PERCENT) conv.conversion_percent = 1.000000; conv.total_percent = (conv.encode_completed + (double)Code / TT_Sector) / conv.total_convert; conv.bool_percent_conv = TRUE; } } } while (FALSE == conv.bool_stop && size != 0); close(fd); conv.code_fork_conv = -1; conv.conversion_percent = 0.0; } // SHORTEN // void conv_with_shorten_ARGS (gchar **args) { gint fd; gint size; gint pos = 0; gchar buf [ CONV_MAX_CARS + 10 ]; /* PRINT_FUNC_LF(); */ fd = conv_call_exec (args, &conv.code_fork_conv, STDERR_FILENO); do { pos = -1; do { pos++; if (pos >= CONV_MAX_CARS) { PRINT_FUNC_LF(); g_print ("pos(%d) >= CONV_MAX_CARS(%d)\n", pos, CONV_MAX_CARS); pos --; } size = read(fd, &buf[pos], 1); } while ((buf[pos] != '\b') && (buf[pos] != '\r') && (buf[pos] != '\n') && (size > 0)); pos ++; buf[ pos ] = '\0'; // SI LA FONCTION EST NON NULLE if (NULL != conv.Func_request_stop) { // SI DEMANDE DE STOP EST VALIDE if (TRUE == (conv.bool_stop = (*conv.Func_request_stop)())) { // ARRET DES CONVERTISSEURS / EXTRACTEURS conv_stop_conversion (); } } conv.conversion_percent = 1.0; conv.total_percent = 1.0; conv.bool_percent_conv = TRUE; } while (FALSE == conv.bool_stop && size != 0); close(fd); conv.code_fork_conv = -1; conv.conversion_percent = 0.0; } // FAAD // void conv_with_faad_ARGS (gchar **args) { gint fd; gint size; gint pos = 0; gchar buf [ CONV_MAX_CARS + 10 ]; fd = conv_call_exec (args, &conv.code_fork_conv, STDERR_FILENO); /* 39% decoding 05.m4a. 52% decoding 05.m4a. 60% decoding 05.m4a. 67% decoding 05.m4a. 77% decoding 05.m4a. 84% decoding 05.m4a. */ do { pos = -1; do { pos++; if (pos >= CONV_MAX_CARS) { PRINT_FUNC_LF(); g_print ("pos(%d) >= CONV_MAX_CARS(%d)\n", pos, CONV_MAX_CARS); pos --; } size = read(fd, &buf[pos], 1); if (strstr(buf,"Audio: no sound")) { conv_stop_conversion (); break; } } while (!conv.bool_stop && (buf[pos] != '\b') && (buf[pos] != '\r') && (buf[pos] != '\n') && (size > 0)); if (buf[pos] != '\n') { pos ++; buf[pos++] = '\n'; buf[pos] = '\0'; } // SI LA FONCTION EST NON NULLE if (NULL != conv.Func_request_stop) { // SI DEMANDE DE STOP EST VALIDE if (TRUE == (conv.bool_stop = (*conv.Func_request_stop)())) { // ARRET DES CONVERTISSEURS / EXTRACTEURS conv_stop_conversion (); } } } while (FALSE == conv.bool_stop && (size > 0)); close(fd); conv.code_fork_conv = -1; conv.conversion_percent = 0.0; } // MPPDEC // void conv_with_mppdec_ARGS (gchar **args) { gint fd; gint size; gint pos = 0; gchar buf [ CONV_MAX_CARS + 10 ]; gint percent; gchar *ptr = NULL; fd = conv_call_exec (args, &conv.code_fork_conv, STDERR_FILENO); do { pos = -1; do { pos++; if (pos >= CONV_MAX_CARS) { PRINT_FUNC_LF(); g_print ("pos(%d) >= CONV_MAX_CARS(%d)\n", pos, CONV_MAX_CARS); pos --; } size = read(fd, &buf[pos], 1); } while ((buf[pos] != '\b') && (buf[pos] != '\r') && (buf[pos] != '\n') && (size > 0)); pos ++; buf[ pos ] = '\0'; // SI LA FONCTION EST NON NULLE if (NULL != conv.Func_request_stop) { // SI DEMANDE DE STOP EST VALIDE if (TRUE == (conv.bool_stop = (*conv.Func_request_stop)())) { // ARRET DES CONVERTISSEURS / EXTRACTEURS conv_stop_conversion (); } } /* 0:00.02/ 3:51.29 decoded ( 0.0%) 1:40.64/ 3:51.29 decoded (43.5%) */ /*sscanf(buf, "%d", &percent);*/ if ((ptr = strstr( buf, "decoded ("))) { /*g_print ("-->%s\n", ptr);*/ ptr += 9; /*g_print ("-->%s\n", ptr);*/ sscanf(ptr, "%d", &percent); /*g_print ("---->%d\n", percent);*/ } else { continue; } /* pos = sscanf(buf, "%d:%d.%d/\t%d:%d:.%d decoded (%d", &dummy,&dummy,&dummy,&dummy,&dummy,&dummy, &percent); g_print (">pos = %d\n", pos); if (pos != 7) { continue; } g_print (">pos = %d\n", pos); g_print (">percent = %d\n", percent); */ conv.conversion_percent = (double)((percent * 0.1) / 10); if (conv.conversion_percent >= CONV_MAX_VALUE_PERCENT) conv.conversion_percent = 1.000000; conv.total_percent = ((double)conv.rip_completed + (double)conv.encode_completed + (double)conv.extract_percent + (double)conv.conversion_percent) / ((double)conv.total_rip + (double)conv.total_convert); conv.bool_percent_conv = TRUE; } while (FALSE == conv.bool_stop && size != 0); close(fd); conv.code_fork_conv = -1; conv.conversion_percent = 0.0; } // WVUNPACK_WAVPACK_TO_WAV // void conv_with_wvunpack_ARGS (gchar **args) { gint fd; gint size; gint pos = 0; gchar buf [ CONV_MAX_CARS + 10 ]; gchar *ptr = NULL; gint percent; fd = conv_call_exec (args, &conv.code_fork_conv, STDERR_FILENO); do { pos = -1; do { pos++; if (pos >= CONV_MAX_CARS) { PRINT_FUNC_LF(); g_print ("pos(%d) >= CONV_MAX_CARS(%d)\n", pos, CONV_MAX_CARS); pos --; } size = read(fd, &buf[pos], 1); } while ((buf[pos] != '\b') && (buf[pos] != '\r') && (buf[pos] != '\n') && (size > 0)); buf[pos] = '\0'; // SI LA FONCTION EST NON NULLE if (NULL != conv.Func_request_stop) { // SI DEMANDE DE STOP EST VALIDE if (TRUE == (conv.bool_stop = (*conv.Func_request_stop)())) { // ARRET DES CONVERTISSEURS / EXTRACTEURS conv_stop_conversion (); } } /* fish@debian:~/Musique/aaa$ wvunpack -y ./1.wv WVUNPACK Hybrid Lossless Audio Decompressor Linux Version 4.32 2006-04-05 Copyright (c) 1998 - 2005 Conifer Software. All Rights Reserved. restoring ./1.wav, 49% done... 61% done... 82% done... restored ./1.wav in 3.21 secs (lossless, 20.89%) */ if ((ptr = strstr (&buf[0], "done"))) { ptr -= 5; while (*ptr == ' ') ptr ++; if (sscanf(ptr, "%d", &percent) == 1) { if (percent == 0) continue; conv.conversion_percent = (double)((percent * 0.1) / 10); if (conv.conversion_percent >= CONV_MAX_VALUE_PERCENT) conv.conversion_percent = 1.000000; conv.total_percent = ((double)conv.rip_completed + (double)conv.encode_completed + (double)conv.extract_percent + (double)conv.conversion_percent) / ((double)conv.total_rip + (double)conv.total_convert); conv.bool_percent_conv = TRUE; } } /* fish@debian:~/Musique/aaa/new$ wvunpack -y -m ./20.wv WVUNPACK Hybrid Lossless Audio Decompressor Linux Version 4.32 2006-04-05 Copyright (c) 1998 - 2005 Conifer Software. All Rights Reserved. restoring ./20.wav, 34% done... original md5: 2b74aed5a5d62d1c3b0e6b96d5147cc9 unpacked md5: 2b74aed5a5d62d1c3b0e6b96d5147cc9 restored ./20.wav in 17.23 secs (lossless, 26.45%) else if ((ptr = strstr (&buf[0], "original md5:"))) { } else if ((ptr = strstr (&buf[0], "unpacked md5:"))) { } else if ((ptr = strstr (&buf[0], "restored"))) { } */ } while (FALSE == conv.bool_stop && size != 0); close(fd); conv.code_fork_conv = -1; conv.conversion_percent = 0.0; } // // SPLIT void conv_with_split_ARGS (gchar **args) { gint pos = 0; gint size = 0; gchar buf[CONV_MAX_CARS + 10]; gint fd; conv.bool_percent_conv = TRUE; fd = conv_call_exec (args, &conv.code_fork_conv, STDERR_FILENO); do { size = -1; pos = -1; do { pos++; if (pos >= CONV_MAX_CARS) { PRINT_FUNC_LF(); g_print ("pos(%d) >= CONV_MAX_CARS(%d)\n", pos, CONV_MAX_CARS); pos --; } size = read(fd, &buf[pos], 1); conv.bool_percent_conv = TRUE; } while (buf[pos] != '\b' && buf[pos] != '\r' && buf[pos] != '\n' && size > 0); pos ++; buf[ pos ] = '\0'; // SI LA FONCTION EST NON NULLE if (NULL != conv.Func_request_stop) { // SI DEMANDE DE STOP EST VALIDE if (TRUE == (conv.bool_stop = (*conv.Func_request_stop)())) { // ARRET DES CONVERTISSEURS / EXTRACTEURS conv_stop_conversion (); } } } while (FALSE == conv.bool_stop && size != 0); conv.code_fork_conv = -1; close(fd); } // CDDBTOOL // void conv_with_cddb_tool_ARGS (gchar **args) { gint pos = 0; gint size = 0; gchar buf[CONV_MAX_CARS + 10]; gint fd; conv.bool_percent_conv = TRUE; fd = conv_call_exec (args, &conv.code_fork_conv, STDOUT_FILENO); do { pos = -1; do { pos++; if (pos >= CONV_MAX_CARS) { PRINT_FUNC_LF(); g_print ("pos(%d) >= CONV_MAX_CARS(%d)\n", pos, CONV_MAX_CARS); pos --; } size = read(fd, &buf[pos], 1); } while ((buf[pos] != '\b') && (buf[pos] != '\r') && (buf[pos] != '\n') && (size > 0)); buf[pos ++ ] = '\n'; buf[pos] = '\0'; // SI LA FONCTION EST NON NULLE if (NULL != conv.Func_request_stop) { // SI DEMANDE DE STOP EST VALIDE if (TRUE == (conv.bool_stop = (*conv.Func_request_stop)())) { // ARRET DES CONVERTISSEURS / EXTRACTEURS conv_stop_conversion (); } } } while (FALSE == conv.bool_stop && size != 0); conv.code_fork_conv = -1; close(fd); } // WAVSPLIT // void conv_with_wavsplit_ARGS (gchar **args) { gint pos = 0; gint size = 0; gchar buf[CONV_MAX_CARS + 10]; gint fd; conv.bool_percent_conv = TRUE; fd = conv_call_exec (args, &conv.code_fork_conv, STDOUT_FILENO); do { pos = -1; do { pos++; if (pos >= CONV_MAX_CARS) { PRINT_FUNC_LF(); g_print ("pos(%d) >= CONV_MAX_CARS(%d)\n", pos, CONV_MAX_CARS); pos --; } size = read(fd, &buf[pos], 1); } while ((buf[pos] != '\b') && (buf[pos] != '\r') && (buf[pos] != '\n') && (size > 0)); buf[pos ++ ] = '\n'; buf[pos] = '\0'; // SI LA FONCTION EST NON NULLE if (NULL != conv.Func_request_stop) { // SI DEMANDE DE STOP EST VALIDE if (TRUE == (conv.bool_stop = (*conv.Func_request_stop)())) { // ARRET DES CONVERTISSEURS / EXTRACTEURS conv_stop_conversion (); } } } while (FALSE == conv.bool_stop && size != 0); conv.code_fork_conv = -1; close(fd); } // A52DEC // void conv_with_a52dec_ARGS (gchar **args) { gint pos = 0; gint size = 0; gchar buf[CONV_MAX_CARS + 10]; gint fd; FILE *fp = NULL; gchar *FileSave = g_strdup (args[ 8 ]); g_free (args[ 7 ]); args[ 7 ] = NULL; g_free (args[ 8 ]); args[ 8 ] = NULL; conv.bool_percent_conv = TRUE; fd = conv_call_exec (args, &conv.code_fork_conv, STDOUT_FILENO); fp = fopen (FileSave, "w"); do { pos = 0; do { /* pos++; if (pos >= CONV_MAX_CARS) { PRINT_FUNC_LF(); g_print ("pos(%d) >= CONV_MAX_CARS(%d)\n", pos, CONV_MAX_CARS); pos --; } */ size = read(fd, &buf [ pos ], 1); fprintf (fp, "%c", (short)buf [ 0 ]); } while ((buf[pos] != '\b') && (buf[pos] != '\r') && (buf[pos] != '\n') && (size > 0)); buf[pos ++ ] = '\n'; buf[pos] = '\0'; // SI LA FONCTION EST NON NULLE if (NULL != conv.Func_request_stop) { // SI DEMANDE DE STOP EST VALIDE if (TRUE == (conv.bool_stop = (*conv.Func_request_stop)())) { // ARRET DES CONVERTISSEURS / EXTRACTEURS conv_stop_conversion (); } } } while (FALSE == conv.bool_stop && size != 0); fclose (fp); g_free (FileSave); FileSave = NULL; conv.code_fork_conv = -1; close(fd); } // CALL CONV // gboolean conv_to_convert( gchar **p_TabArgs, gboolean WithParameter, TYPE_CONV type_conv, gchar *info ) { gint pos = 0; gboolean RetBool = TRUE; // PRINT_FUNC_LF(); if (NORMALISE_CALCUL == type_conv || NORMALISE_APPLIQUE == type_conv || NORMALISE_EXEC == type_conv || NORMALISE_GET_LEVEL == type_conv) { conv.BoolIsNormalise = TRUE; } else if (REPLAYGAIN == type_conv) { conv.BoolIsReplaygain = TRUE; } else if (MPLAYER_AUDIO_TO_WAV == type_conv) { conv.BoolIsExtract = TRUE; } else { conv.BoolIsConvert = TRUE; } // INFORMATION if( TRUE == OptionsCommandLine.BoolVerboseMode ) { g_print ("!-----------------------------------------------------------!\n"); if (WithParameter == TRUE) g_print ("! --With Expert Parameters--\n"); else g_print ("! --Without Expert Parameters--\n"); g_print ("! %s\n", info); g_print ("!-----------------------------------------------------------!\n"); g_print ("! "); for (pos = 0; p_TabArgs[ pos ] != NULL; pos ++) { g_print ("%s ", p_TabArgs[ pos ]); } g_print ("\n!-----------------------------------------------------------!\n"); for (pos = 0; p_TabArgs[ pos ] != NULL; pos ++) { g_print ("p_TabArgs[ %02d ] = %s\n", pos, p_TabArgs[ pos ]); } g_print ("\n"); } switch (type_conv) { case NONE_CONV : break; case FLAC_FLAC_TO_WAV : case FLAC_WAV_TO_FLAC : RetBool = conv_with_flac_ARGS( p_TabArgs ); break; case LAME_WAV_TO_MP3 : case LAME_FLAC_TO_MP3 : conv_with_lame_ARGS( p_TabArgs ); break; case OGGENC_WAV_TO_OGG : case OGGENC_FLAC_TO_OGG : conv_with_oggenc_ARGS( p_TabArgs ); break; case OGG123_OGG_TO_WAV : conv_with_ogg123_ARGS( p_TabArgs ); break; case MPG321_MP3_TO_WAV : conv_with_mpg321_ARGS( p_TabArgs ); break; case SOX_WAV_TO_WAV : conv_with_sox_ARGS( p_TabArgs ); break; case SHORTEN_SHN_TO_WAV : conv_with_shorten_ARGS( p_TabArgs ); break; case FAAD_M4A_TO_WAV : conv_with_faad_ARGS( p_TabArgs ); break; case FAAC_WAV_TO_M4A : conv_with_faac_ARGS( p_TabArgs ); break; case MPLAYER_WMA_TO_WAV : case MPLAYER_RM_TO_WAV : case MPLAYER_DTS_TO_WAV : case MPLAYER_AIFF_TO_WAV : case MPLAYER_WAV_TO_WAV : case MPLAYER_AUDIO_TO_WAV : case MPLAYER_M4A_TO_WAV : case MPLAYER_OGG_TO_WAV : case MPLAYER_MP3_TO_WAV : case MPLAYER_MPC_TO_WAV : RetBool = conv_with_mplayer_ARGS( p_TabArgs, type_conv ); break; case COPY_FILE : break; case NORMALISE_CALCUL : case NORMALISE_APPLIQUE : case NORMALISE_EXEC : conv_with_normalise_ARGS( p_TabArgs ); break; case NORMALISE_GET_LEVEL: conv_with_normalise_get_PEAK_RMS_GROUP_ARGS( p_TabArgs ); break; case MPPDEC_MPC_TO_WAV : conv_with_mppdec_ARGS( p_TabArgs ); break; case MPPENC_WAV_TO_MPC : conv_with_mppenc_ARGS( p_TabArgs ); break; case MAC_APE_TO_WAV : case MAC_WAV_TO_APE : conv_with_mac_ARGS( p_TabArgs ); break; case WAVPACK_WAV_TO_WAVPACK : conv_with_wavpack_ARGS( p_TabArgs ); break; case WVUNPACK_WAVPACK_TO_WAV : conv_with_wvunpack_ARGS( p_TabArgs ); break; case CDPARANOIA_CD_TO_WAV : case CDPARANOIA_CD_TO_WAV_EXPERT : case CDPARANOIA_CD_TO_WAV_EXPERT_SEGMENT : case CDDA2WAV_CD_TO_WAV : break; case REPLAYGAIN : conv_with_replaygain_ARGS( p_TabArgs ); break; case LSDVD : conv_with_lsdvd_ARGS( p_TabArgs ); break; case SPLIT : conv_with_split_ARGS( p_TabArgs ); break; case CDDB_TOOL : conv_with_cddb_tool_ARGS( p_TabArgs ); break; case ICEDAX : RetBool = conv_with_icedax_tool_ARGS( p_TabArgs ); break; case AACPLUSENC_WAV_TO_AAC : conv_with_aacplusenc_ARGS( p_TabArgs ); break; case WAVSPLIT_EXTRACT : conv_with_wavsplit_ARGS( p_TabArgs ); break; case A52DEC_AC3_TO_WAV : conv_with_a52dec_ARGS( p_TabArgs ); break; } conv_inc_encode_completed (); conv.BoolIsConvert = FALSE; conv.BoolIsNormalise = FALSE; conv.BoolIsReplaygain = FALSE; if (MPLAYER_AUDIO_TO_WAV == type_conv) conv.BoolIsExtract = FALSE; return (RetBool); } // // void conv_with_cdparanoia_ARGS (gchar **args) { gint pos = 0; gint fd; gchar buf [ CONV_MAX_CARS + 10 ]; gint size = 1; gint start; gint end; gint code; gchar type[50]; gint sector; /* PRINT_FUNC_LF(); */ conv.bool_percent_extract = FALSE; fd = conv_extract_call_exec (args, &conv.code_fork_extract, STDERR_FILENO); do { pos = -1; do { pos++; if (pos >= CONV_MAX_CARS) { PRINT_FUNC_LF(); g_print ("pos(%d) >= CONV_MAX_CARS(%d)\n", pos, CONV_MAX_CARS); pos --; } size = read(fd, &buf[pos], 1); } while ((buf[pos] != '\b') && (buf[pos] != '\r') && (buf[pos] != '\n') && (size > 0)); pos ++; buf[ pos ] = '\0'; // SI LA FONCTION EST NON NULLE if (NULL != conv.Func_request_stop) { // SI DEMANDE DE STOP EST VALIDE if (TRUE == (conv.bool_stop = (*conv.Func_request_stop)())) { // ARRET DES CONVERTISSEURS / EXTRACTEURS conv_stop_conversion (); } } if ((buf[0] == 'R') && (buf[1] == 'i')) { sscanf(buf, "Ripping from sector %d", &start); } else if (buf[0] == '\t') { sscanf(buf, "\t to sector %d", &end); } else if (buf[0] == '#') { sscanf(buf, "##: %d %s @ %d", &code, type, §or); sector /= 1176; if (strncmp("[wrote]", type, 7) == 0) { conv.extract_percent = (double)(sector-start) / (end-start); if (conv.extract_percent >= CONV_MAX_VALUE_PERCENT) conv.extract_percent = 1.; conv.total_percent = ((double)conv.rip_completed + (double)conv.encode_completed + (double)conv.extract_percent + (double)conv.conversion_percent) / ((double)conv.total_rip + (double)conv.total_convert); conv.bool_percent_extract = TRUE; } } } while (FALSE == conv.bool_stop && 0 != size); close(fd); conv.code_fork_extract = -1; conv.extract_percent = 0.0; } // // void conv_with_cdparanoia_mode_expert_ARGS (gchar **args) { gint pos = 0; gint fd; gchar buf [ CONV_MAX_CARS + 10 ]; gint size = 1; /* gint start; gint end; gint code; gchar type[50]; gint sector; */ /* PRINT_FUNC_LF(); */ conv.bool_percent_extract = FALSE; fd = conv_extract_call_exec (args, &conv.code_fork_extract, STDERR_FILENO); do { pos = -1; do { pos++; if (pos >= CONV_MAX_CARS) { PRINT_FUNC_LF(); g_print ("pos(%d) >= CONV_MAX_CARS(%d)\n", pos, CONV_MAX_CARS); pos --; } size = read(fd, &buf[pos], 1); } while ((buf[pos] != '\b') && (buf[pos] != '\r') && (buf[pos] != '\n') && (size > 0)); pos ++; buf[ pos ] = '\0'; // SI LA FONCTION EST NON NULLE if (NULL != conv.Func_request_stop) { // SI DEMANDE DE STOP EST VALIDE if (TRUE == (conv.bool_stop = (*conv.Func_request_stop)())) { // ARRET DES CONVERTISSEURS / EXTRACTEURS conv_stop_conversion (); } } /* if ((buf[0] == 'R') && (buf[1] == 'i')) { sscanf(buf, "Ripping from sector %d", &start); } else if (buf[0] == '\t') { sscanf(buf, "\t to sector %d", &end); } else if (buf[0] == '#') { sscanf(buf, "##: %d %s @ %d", &code, type, §or); sector /= 1176; if (strncmp("[wrote]", type, 7) == 0) { conv.extract_percent = (double)(sector-start) / (end-start); if (conv.extract_percent >= CONV_MAX_VALUE_PERCENT) conv.extract_percent = 1.000000; conv.total_percent = (conv.rip_completed + conv.encode_completed + conv.extract_percent + conv.conversion_percent) / (conv.total_rip + conv.total_convert); conv.bool_percent_extract = TRUE; } } */ } while (FALSE == conv.bool_stop && size != 0); close(fd); conv.code_fork_extract = -1; conv.extract_percent = 0.0; } // // void conv_with_cdda2wav_ARGS (gchar **args) { gint pos = 0; gint fd; gchar buf [ CONV_MAX_CARS + 10 ]; gchar *ptr = NULL; gint size = 1; gint percent; conv.bool_percent_extract = FALSE; fd = conv_extract_call_exec (args, &conv.code_fork_extract, STDERR_FILENO); do { /* 93% 96% 99% 100% track 7 recorded successfully */ pos = -1; do { pos++; if (pos >= CONV_MAX_CARS) { PRINT_FUNC_LF(); g_print ("pos(%d) >= CONV_MAX_CARS(%d)\n", pos, CONV_MAX_CARS); pos --; } size = read(fd, &buf[pos], 1); } while (((buf[pos] != '\b') && (buf[pos] != '\r') && (buf[pos] != '\n')) && (size > 0)); if (buf[ pos ] != '\n') { pos ++; buf[ pos ] = '\0'; } pos ++; buf[ pos ] = '\0'; // SI LA FONCTION EST NON NULLE if (NULL != conv.Func_request_stop) { // SI DEMANDE DE STOP EST VALIDE if (TRUE == (conv.bool_stop = (*conv.Func_request_stop)())) { // ARRET DES CONVERTISSEURS / EXTRACTEURS conv_stop_conversion (); } } if ((ptr = strchr (buf, '%')) == NULL) continue; ptr --; if (ptr > buf && (*ptr >= '0' && *ptr <= '9')) ptr --; if (ptr > buf && (*ptr >= '0' && *ptr <= '9')) ptr --; if (ptr > buf && (*ptr >= '0' && *ptr <= '9')) ptr --; if (*ptr == ' ') ptr ++; percent = atol (ptr); conv.extract_percent = (double)((percent * 0.1) / 10); if (conv.extract_percent >= CONV_MAX_VALUE_PERCENT) conv.extract_percent = 1.; conv.total_percent = ((double)conv.rip_completed + (double)conv.encode_completed + (double)conv.extract_percent + (double)conv.conversion_percent) / ((double)conv.total_rip + (double)conv.total_convert); conv.bool_percent_extract = TRUE; } while (FALSE == conv.bool_stop && size != 0); close(fd); conv.code_fork_extract = -1; conv.extract_percent = 0.0; } // // gboolean conv_exec_extract (gboolean WithParameter, TYPE_CONV type_conv, gchar *info) { gint pos = 0; gboolean RetBool = TRUE; // PRINT_FUNC_LF(); conv.BoolIsExtract = TRUE; /* Infos */ if( TRUE == OptionsCommandLine.BoolVerboseMode ) { g_print ("!-----------------------------------------------------------!\n"); if (WithParameter == TRUE) g_print ("! --With Expert Parameters--\n"); else g_print ("! --Without Expert Parameters--\n"); g_print ("! %s\n", info); g_print ("!-----------------------------------------------------------!\n"); g_print ("! "); for (pos = 0; conv.ArgExtract[ pos ] != NULL; pos ++) { g_print ("%s ", conv.ArgExtract[ pos ]); } g_print ("\n!-----------------------------------------------------------!\n"); for (pos = 0; conv.ArgExtract[ pos ] != NULL; pos ++) { g_print ("ArgExtract[ %02d ] = %s\n", pos, conv.ArgExtract[ pos ]); } g_print ("\n"); } if (type_conv == CDPARANOIA_CD_TO_WAV || type_conv == CDPARANOIA_CD_TO_WAV_EXPERT) conv_with_cdparanoia_ARGS (conv.ArgExtract); else if (type_conv == CDPARANOIA_CD_TO_WAV_EXPERT_SEGMENT) conv_with_cdparanoia_mode_expert_ARGS (conv.ArgExtract); else if (type_conv == CDDA2WAV_CD_TO_WAV) conv_with_cdda2wav_ARGS (conv.ArgExtract); conv_inc_rip_completed (); conv.BoolIsExtract = FALSE; return (RetBool); } // // Algo retravaille depuis: // C EN ACTION - 2 ieme Edition - Yves Mettier // gboolean conv_copy_src_to_dest (gchar *filesrc, gchar *filedest) { FILE *fn = NULL; FILE *fe = NULL; gchar buf [ BUFSIZ + 10 ]; // 8192 size_t size = libutils_get_size_file (filesrc); gulong blk; gulong cpt; size_t l_read; if (0 == size) { fprintf (stderr, "La taille de : %s est NULLE !!!\n", filesrc); conv_inc_encode_completed (); return (FALSE); } if (NULL == (fe = fopen (filesrc, "r"))) { fprintf (stderr, "Echec ouverture en lecture de: %s\n", filesrc); conv_inc_encode_completed (); return (FALSE); } if (NULL == (fn = fopen (filedest, "w"))) { fprintf (stderr, "Echec ouverture en ecriture de: %s\n", filedest); fclose (fe); conv_inc_encode_completed (); return (FALSE); } conv.conversion_percent = 0.; blk = size / BUFSIZ; // conv.conversion_percent = 0.; PRINT_FUNC_LF(); if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("\t%s\n\t%s\n", filesrc, filedest); cpt = 0; conv.BoolIsCopy = TRUE; while ( ! feof (fe)) { l_read = fread (buf, sizeof (*buf), BUFSIZ, fe); if (ferror (fe)) { fprintf (stderr, "Erreur de lecture\n"); fclose (fn); fclose (fe); conv.BoolIsCopy = FALSE; conv_inc_encode_completed (); return (FALSE); } fwrite (buf, sizeof (*buf), l_read, fn); if (ferror (fn)) { fprintf (stderr, "Erreur d'ecriture\n"); fclose (fn); fclose (fe); conv.BoolIsCopy = FALSE; conv_inc_encode_completed (); return (FALSE); } fflush( fn ); conv.conversion_percent = (double)cpt / (double)blk; // if (conv.conversion_percent > 1.) conv.conversion_percent = 1.0; // if (conv.conversion_percent < 0.) conv.conversion_percent = 0.0; conv.total_percent = ((double)conv.rip_completed + (double)conv.encode_completed + (double)conv.extract_percent + (double)conv.conversion_percent) / ((double)conv.total_rip + (double)conv.total_convert); conv.bool_percent_conv = TRUE; cpt ++; } fclose (fn); fclose (fe); conv.conversion_percent = 0.; conv_inc_encode_completed (); conv.BoolIsCopy = FALSE; if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("\tOK\n"); return (TRUE); } xcfa-4.3.6/src/normalise.c0000644000175000017500000015333512163051134012320 00000000000000 /* * file : normalise.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #include #include #include #include #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "file.h" #include "prg_init.h" #include "configuser.h" #include "conv.h" #include "tags.h" #include "win_info.h" #include "win_scan.h" #include "notify_send.h" #include "normalise.h" /* *--------------------------------------------------------------------------- * VARIABLES *--------------------------------------------------------------------------- */ typedef struct { gchar *NameFile; gchar *NameFileCopieWav; gchar *NameFileCopieOgg; gchar *NameFileCopieMp3; gchar *NameDestWav; gchar *NameDestOgg; gchar *NameDestMp3; gchar *StrDBFS; TAGS *tags; gboolean BoolWithConvert; ETAT_NORMALISE *EtatNormalise; ETAT_TRASH_FILE *EtatTrash; } INDI_FIX; typedef struct { gboolean bool_etat; gchar *MessUser; /* Individuel */ GList *ListFixWav; GList *ListFixOgg; GList *ListFixMp3; GList *ListPeakWav; GList *ListPeakOgg; GList *ListPeakMp3; GList *ListMixGroupWav; GList *ListMixGroupOgg; GList *ListMixGroupMp3; GList *ListPeakGroupWav; GList *ListPeakGroupOgg; GList *ListPeakGroupMp3; /* Exec */ guint Handler_Timeout; pthread_t nmr_tid; gboolean bool_thread_end; gboolean bool_set_end_of_user; /* Controle duree */ gboolean bool_pass_conv; gint pass_conv; gint NbrElementsInList; gint ElementActif; double total_percent; /**/ gchar *FileOgg; gchar *FileWav; gchar *TmpRep; gint LevelMix; } NORMALISE; NORMALISE normalise; // // /* GList *normalise_remove_glist (GList *p_list) { GList *List = NULL; gchar *Ptr = NULL; List = g_list_first (p_list); while (List) { if (NULL != (Ptr = (gchar *)List->data)) { g_free (Ptr); Ptr = List->data = NULL; } List = g_list_next(List); } g_list_free (p_list); p_list = NULL; return ((GList *)NULL); } */ // // GList *normalise_remove_glist_STRUCT (GList *p_list) { GList *List = NULL; INDI_FIX *IndiFix = NULL; List = g_list_first (p_list); while (List) { if (NULL != (IndiFix = (INDI_FIX *)List->data)) { if (NULL != IndiFix->NameFile) { g_free (IndiFix->NameFile); IndiFix->NameFile = NULL; } if (NULL != IndiFix->NameFileCopieWav) { g_free (IndiFix->NameFileCopieWav); IndiFix->NameFileCopieWav = NULL; } if (NULL != IndiFix->NameFileCopieOgg) { g_free (IndiFix->NameFileCopieOgg); IndiFix->NameFileCopieOgg = NULL; } if (NULL != IndiFix->NameFileCopieMp3) { g_free (IndiFix->NameFileCopieMp3); IndiFix->NameFileCopieMp3 = NULL; } if (NULL != IndiFix->NameDestWav) { g_free (IndiFix->NameDestWav); IndiFix->NameDestWav = NULL; } if (NULL != IndiFix->NameDestOgg) { g_free (IndiFix->NameDestOgg); IndiFix->NameDestOgg = NULL; } if (NULL != IndiFix->NameDestMp3) { g_free (IndiFix->NameDestMp3); IndiFix->NameDestMp3 = NULL; } if (NULL != IndiFix->StrDBFS) { g_free (IndiFix->StrDBFS); IndiFix->StrDBFS = NULL; } IndiFix->tags = NULL; IndiFix->EtatNormalise = NULL; g_free (IndiFix); IndiFix = List->data = NULL; } List = g_list_next(List); } g_list_free (p_list); p_list = NULL; return ((GList *)NULL); } // // /* void normalise_print_DEBUG (GList *p_list) { GList *List = NULL; INDI_FIX *IndiFix = NULL; List = g_list_first (p_list); while (List) { if (NULL != (IndiFix = (INDI_FIX *)List->data)) { g_print ("IndiFix->NameFile = %s\n", IndiFix->NameFile); g_print ("IndiFix->NameFileCopieWav = %s\n", IndiFix->NameFileCopieWav); } List = g_list_next(List); } } */ // // void normalise_copy_wav_to_tmp (GList *p_list) { GList *List = NULL; INDI_FIX *IndiFix = NULL; List = g_list_first (p_list); while (List) { if (NULL != (IndiFix = (INDI_FIX *)List->data)) { conv_copy_src_to_dest (IndiFix->NameFile, IndiFix->NameFileCopieWav); normalise.ElementActif ++; } List = g_list_next(List); } } // // void normalise_set_mess (gchar *p_Mess) { if (FALSE == normalise.bool_etat) { // normalise.bool_etat = TRUE; // normalise.MessUser = g_strdup (p_Mess); } } // // void normalise_FIX_wav (void) { GList *List = NULL; INDI_FIX *IndiFix = NULL; gint pos; gchar **PtrTabArgs = NULL; List = g_list_first (normalise.ListFixWav); while (FALSE == normalise.bool_set_end_of_user && List) { if (NULL != (IndiFix = (INDI_FIX *)List->data)) { // Copie temporaire normalise.ElementActif ++; normalise_set_mess ("Copie"); conv_copy_src_to_dest (IndiFix->NameFile, IndiFix->NameFileCopieWav); // Normalisation du Wav // PtrTabArgs = filelc_AllocTabArgs(); pos = 3; PtrTabArgs [ pos++ ] = g_strdup (prginit_get_name (NMR_normalize)); PtrTabArgs [ pos++ ] = g_strdup ("-a"); PtrTabArgs [ pos++ ] = g_strdup_printf ("%s,0000dB", IndiFix->StrDBFS); PtrTabArgs [ pos++ ] = g_strdup (IndiFix->NameFileCopieWav); PtrTabArgs [ pos++ ] = NULL; normalise_set_mess ("Normalise Wav -> Fix"); conv_to_convert( PtrTabArgs, FALSE, NORMALISE_EXEC, "NORMALISE_EXEC Wav -> Fix"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); normalise.ElementActif ++; /* Restitution */ /* NameDestWav * NameDestOgg NameDestMp3 */ if (FALSE == IndiFix->BoolWithConvert) { normalise_set_mess ("Restitution"); conv_copy_src_to_dest (IndiFix->NameFileCopieWav, IndiFix->NameDestWav); g_unlink (IndiFix->NameFileCopieWav); normalise.ElementActif ++; } /* *IndiFix->EtatNormalise = NORM_SCAN_ACTIF;*/ if (*IndiFix->EtatTrash == FILE_TRASH_OK) *IndiFix->EtatTrash = FILE_TRASH_VERIF_OK; } List = g_list_next(List); } } // // void normalise_FIX_ogg (void) { GList *List = NULL; INDI_FIX *IndiFix = NULL; PARAM_FILELC param_filelc; gint pos; gchar **PtrTabArgs = NULL; List = g_list_first (normalise.ListFixOgg); while (FALSE == normalise.bool_set_end_of_user && List) { if (NULL != (IndiFix = (INDI_FIX *)List->data)) { /* Conversion Ogg vers Wav */ normalise_set_mess ("Conversion Ogg vers Wav"); PtrTabArgs = filelc_AllocTabArgs(); pos = 3; PtrTabArgs [ pos++ ] = g_strdup (prginit_get_name (NMR_normalize)); PtrTabArgs [ pos++ ] = g_strdup ("mplayer"); PtrTabArgs [ pos++ ] = g_strdup ("-nojoystick"); PtrTabArgs [ pos++ ] = g_strdup ("-nolirc"); PtrTabArgs [ pos++ ] = g_strdup ("-ao"); PtrTabArgs [ pos++ ] = g_strdup ("pcm"); PtrTabArgs [ pos++ ] = g_strdup (IndiFix->NameFile); PtrTabArgs [ pos++ ] = g_strdup ("-ao"); PtrTabArgs [ pos++ ] = g_strdup_printf ("pcm:file=%s", IndiFix->NameFileCopieWav); PtrTabArgs [ pos++ ] = NULL; conv_to_convert( PtrTabArgs, FALSE, MPLAYER_OGG_TO_WAV, "MPLAYER_OGG_TO_WAV"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); normalise.ElementActif ++; /* Normalisation du Wav */ normalise_set_mess ("Normalise Wav -> Fix"); PtrTabArgs = filelc_AllocTabArgs(); pos = 3; PtrTabArgs [ pos++ ] = g_strdup (prginit_get_name (NMR_normalize)); PtrTabArgs [ pos++ ] = g_strdup ("-a"); PtrTabArgs [ pos++ ] = g_strdup_printf ("%s,0000dB", IndiFix->StrDBFS); PtrTabArgs [ pos++ ] = g_strdup (IndiFix->NameFileCopieWav); PtrTabArgs [ pos++ ] = NULL; conv_to_convert( PtrTabArgs, FALSE, NORMALISE_EXEC, "NORMALISE_EXEC NORMALISATION du Wav"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); normalise.ElementActif ++; /* Restitution: Conversion Wav vers Ogg */ /* NameDestWav NameDestOgg * NameDestMp3 */ if (IndiFix->BoolWithConvert == FALSE) { normalise_set_mess ("Conversion Wav vers Ogg"); param_filelc.type_conv = OGGENC_WAV_TO_OGG; param_filelc.With_CommandLineUser = FALSE; param_filelc.filesrc = IndiFix->NameFileCopieWav; param_filelc.filedest = IndiFix->NameDestOgg; param_filelc.tags = IndiFix->tags; param_filelc.cdrom = NULL; param_filelc.num_track = NULL; param_filelc.PtrStrBitrate = NULL; PtrTabArgs = filelc_get_command_line (¶m_filelc); conv_to_convert( PtrTabArgs, FALSE, OGGENC_WAV_TO_OGG, "OGGENC_WAV_TO_OGG"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); g_unlink (IndiFix->NameFileCopieWav); normalise.ElementActif ++; } if (*IndiFix->EtatTrash == FILE_TRASH_OK) *IndiFix->EtatTrash = FILE_TRASH_VERIF_OK; } List = g_list_next(List); } } // // void normalise_FIX_mp3 (void) { GList *List = NULL; INDI_FIX *IndiFix = NULL; PARAM_FILELC param_filelc; gint pos; gchar **PtrTabArgs = NULL; List = g_list_first (normalise.ListFixMp3); while (FALSE == normalise.bool_set_end_of_user && List) { if (NULL != (IndiFix = (INDI_FIX *)List->data)) { // CONVERSION MP3 to WAV normalise_set_mess ("Conversion Mp3 vers Wav"); PtrTabArgs = filelc_AllocTabArgs(); pos = 3; PtrTabArgs [ pos++ ] = g_strdup ("mplayer"); PtrTabArgs [ pos++ ] = g_strdup ("-nojoystick"); PtrTabArgs [ pos++ ] = g_strdup ("-nolirc"); PtrTabArgs [ pos++ ] = g_strdup (IndiFix->NameFile); PtrTabArgs [ pos++ ] = g_strdup ("-ao"); PtrTabArgs [ pos++ ] = g_strdup ("pcm"); PtrTabArgs [ pos++ ] = g_strdup ("-ao"); PtrTabArgs [ pos++ ] = g_strdup_printf ("pcm:file=%s",IndiFix->NameFileCopieWav); PtrTabArgs [ pos++ ] = g_strdup ("-af"); PtrTabArgs [ pos++ ] = g_strdup ("channels=2"); PtrTabArgs [ pos++ ] = g_strdup ("-srate"); PtrTabArgs [ pos++ ] = g_strdup ("44100"); PtrTabArgs [ pos++ ] = NULL; conv_to_convert( PtrTabArgs, FALSE, MPLAYER_MP3_TO_WAV, "MPLAYER_MP3_TO_WAV"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); normalise.ElementActif ++; /* Normalisation du Wav */ normalise_set_mess ("Normalise Wav -> Fix"); PtrTabArgs = filelc_AllocTabArgs(); pos = 3; PtrTabArgs [ pos++ ] = g_strdup (prginit_get_name (NMR_normalize)); PtrTabArgs [ pos++ ] = g_strdup ("-a"); PtrTabArgs [ pos++ ] = g_strdup_printf ("%s,0000dB", IndiFix->StrDBFS); PtrTabArgs [ pos++ ] = g_strdup (IndiFix->NameFileCopieWav); PtrTabArgs [ pos++ ] = NULL; conv_to_convert( PtrTabArgs, FALSE, NORMALISE_EXEC, "NORMALISE_EXEC NORMALISATION du Wav"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); normalise.ElementActif ++; /* Restitution: Conversion Wav vers Mp3 */ /* NameDestWav NameDestOgg NameDestMp3 * */ if (IndiFix->BoolWithConvert == FALSE) { normalise_set_mess ("Conversion du Wav vers Mp3"); param_filelc.type_conv = LAME_WAV_TO_MP3; param_filelc.With_CommandLineUser = FALSE; param_filelc.filesrc = IndiFix->NameFileCopieWav; param_filelc.filedest = IndiFix->NameDestMp3; param_filelc.tags = IndiFix->tags; param_filelc.cdrom = NULL; param_filelc.num_track = NULL; param_filelc.PtrStrBitrate = NULL; PtrTabArgs = filelc_get_command_line (¶m_filelc); conv_to_convert( PtrTabArgs, FALSE, LAME_WAV_TO_MP3, "LAME_WAV_TO_MP3"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); g_unlink (IndiFix->NameFileCopieWav); normalise.ElementActif ++; } /* *IndiFix->EtatNormalise = NORM_SCAN_ACTIF; */ if (*IndiFix->EtatTrash == FILE_TRASH_OK) *IndiFix->EtatTrash = FILE_TRASH_VERIF_OK; } List = g_list_next(List); } } // // void normalise_PEAK_wav (void) { GList *List = NULL; INDI_FIX *IndiFix = NULL; gint pos; gchar **PtrTabArgs = NULL; List = g_list_first (normalise.ListPeakWav); while (FALSE == normalise.bool_set_end_of_user && List) { if (NULL != (IndiFix = (INDI_FIX *)List->data)) { /* Copie temporaire */ normalise_set_mess ("Copie"); conv_copy_src_to_dest (IndiFix->NameFile, IndiFix->NameFileCopieWav); normalise.ElementActif ++; /* Normalisation du Wav */ normalise_set_mess ("Normalise Wav -> Peak"); PtrTabArgs = filelc_AllocTabArgs(); pos = 3; PtrTabArgs [ pos++ ] = g_strdup (prginit_get_name (NMR_normalize)); PtrTabArgs [ pos++ ] = g_strdup ("--peak"); PtrTabArgs [ pos++ ] = g_strdup (IndiFix->NameFileCopieWav); PtrTabArgs [ pos++ ] = g_strdup ("--"); PtrTabArgs [ pos++ ] = NULL; if (*IndiFix->EtatTrash == FILE_TRASH_OK) *IndiFix->EtatTrash = FILE_TRASH_VERIF_OK; conv_to_convert( PtrTabArgs, FALSE, NORMALISE_EXEC, "NORMALISE_EXEC Wav -> Peak"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); normalise.ElementActif ++; /* Restitution */ /* NameDestWav * NameDestOgg NameDestMp3 */ if (FALSE == IndiFix->BoolWithConvert) { normalise_set_mess ("Restitution"); conv_copy_src_to_dest (IndiFix->NameFileCopieWav, IndiFix->NameDestWav); g_unlink (IndiFix->NameFileCopieWav); normalise.ElementActif ++; } } List = g_list_next(List); } } // // void normalise_PEAK_ogg (void) { GList *List = NULL; INDI_FIX *IndiFix = NULL; PARAM_FILELC param_filelc; gint pos; gchar **PtrTabArgs = NULL; List = g_list_first (normalise.ListPeakOgg); while (FALSE == normalise.bool_set_end_of_user && List) { if (NULL != (IndiFix = (INDI_FIX *)List->data)) { /* Conversion Ogg vers Wav */ normalise_set_mess ("Conversion Ogg vers Wav"); PtrTabArgs = filelc_AllocTabArgs(); pos = 3; PtrTabArgs [ pos++ ] = g_strdup ("ogg123"); PtrTabArgs [ pos++ ] = g_strdup ("-d"); PtrTabArgs [ pos++ ] = g_strdup ("wav"); PtrTabArgs [ pos++ ] = g_strdup ("-f"); PtrTabArgs [ pos++ ] = g_strdup (IndiFix->NameFileCopieWav); PtrTabArgs [ pos++ ] = g_strdup (IndiFix->NameFile); PtrTabArgs [ pos++ ] = NULL; conv_to_convert( PtrTabArgs, FALSE, OGG123_OGG_TO_WAV, "OGG123_OGG_TO_WAV CONVERSION Ogg vers Wav"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); normalise.ElementActif ++; /* Normalisation du Wav */ normalise_set_mess ("Normalise Wav -> Fix"); PtrTabArgs = filelc_AllocTabArgs(); pos = 3; PtrTabArgs [ pos++ ] = g_strdup (prginit_get_name (NMR_normalize)); PtrTabArgs [ pos++ ] = g_strdup (IndiFix->NameFileCopieWav); PtrTabArgs [ pos++ ] = g_strdup ("--peak"); PtrTabArgs [ pos++ ] = NULL; if (*IndiFix->EtatTrash == FILE_TRASH_OK) *IndiFix->EtatTrash = FILE_TRASH_VERIF_OK; conv_to_convert( PtrTabArgs, FALSE, NORMALISE_EXEC, "NORMALISE_EXEC Wav -> Peak"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); normalise.ElementActif ++; /* Restitution: Conversion Wav vers Ogg */ /* NameDestWav NameDestOgg * NameDestMp3 */ if (FALSE == IndiFix->BoolWithConvert) { normalise_set_mess ("Conversion Wav vers Ogg"); param_filelc.type_conv = OGGENC_WAV_TO_OGG; param_filelc.With_CommandLineUser = FALSE; param_filelc.filesrc = IndiFix->NameFileCopieWav; param_filelc.filedest = IndiFix->NameDestOgg; param_filelc.tags = IndiFix->tags; param_filelc.cdrom = NULL; param_filelc.num_track = NULL; param_filelc.PtrStrBitrate = NULL; PtrTabArgs = filelc_get_command_line (¶m_filelc); conv_to_convert( PtrTabArgs, FALSE, OGGENC_WAV_TO_OGG, "OGGENC_WAV_TO_OGG"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); g_unlink (IndiFix->NameFileCopieWav); normalise.ElementActif ++; } } List = g_list_next(List); } } // // void normalise_PEAK_mp3 (void) { GList *List = NULL; INDI_FIX *IndiFix = NULL; PARAM_FILELC param_filelc; gint pos; gchar **PtrTabArgs = NULL; List = g_list_first (normalise.ListPeakMp3); while (FALSE == normalise.bool_set_end_of_user && List) { if (NULL != (IndiFix = (INDI_FIX *)List->data)) { /* Conversion Mp3 vers Wav */ normalise_set_mess ("Conversion Mp3 vers Wav"); PtrTabArgs = filelc_AllocTabArgs(); pos = 3; PtrTabArgs [ pos++ ] = g_strdup ("mplayer"); PtrTabArgs [ pos++ ] = g_strdup ("-nojoystick"); PtrTabArgs [ pos++ ] = g_strdup ("-nolirc"); PtrTabArgs [ pos++ ] = g_strdup (IndiFix->NameFile); PtrTabArgs [ pos++ ] = g_strdup ("-ao"); PtrTabArgs [ pos++ ] = g_strdup ("pcm"); PtrTabArgs [ pos++ ] = g_strdup ("-ao"); PtrTabArgs [ pos++ ] = g_strdup_printf ("pcm:file=%s",IndiFix->NameFileCopieWav); PtrTabArgs [ pos++ ] = g_strdup ("-af"); PtrTabArgs [ pos++ ] = g_strdup ("channels=2"); PtrTabArgs [ pos++ ] = g_strdup ("-srate"); PtrTabArgs [ pos++ ] = g_strdup ("44100"); PtrTabArgs [ pos++ ] = NULL; conv_to_convert( PtrTabArgs, FALSE, MPLAYER_MP3_TO_WAV, "MPLAYER_MP3_TO_WAV"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); normalise.ElementActif ++; /* Normalisation du Wav */ normalise_set_mess ("Normalise Wav -> Peak"); PtrTabArgs = filelc_AllocTabArgs(); pos = 3; PtrTabArgs [ pos++ ] = g_strdup (prginit_get_name (NMR_normalize)); PtrTabArgs [ pos++ ] = g_strdup ("--peak"); PtrTabArgs [ pos++ ] = g_strdup (IndiFix->NameFileCopieMp3); PtrTabArgs [ pos++ ] = NULL; conv_to_convert( PtrTabArgs, FALSE, NORMALISE_EXEC, "NORMALISE_EXEC Wav -> Peak"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); normalise.ElementActif ++; /* Restitution: Conversion Wav vers Mp3 */ /* NameDestWav NameDestOgg NameDestMp3 * */ if (FALSE == IndiFix->BoolWithConvert) { normalise_set_mess ("Conversion du Wav vers Mp3"); param_filelc.type_conv = LAME_WAV_TO_MP3; param_filelc.With_CommandLineUser = FALSE; param_filelc.filesrc = IndiFix->NameFileCopieWav; param_filelc.filedest = IndiFix->NameDestMp3; param_filelc.tags = IndiFix->tags; param_filelc.cdrom = NULL; param_filelc.num_track = NULL; param_filelc.PtrStrBitrate = NULL; PtrTabArgs = filelc_get_command_line (¶m_filelc); conv_to_convert( PtrTabArgs, FALSE, LAME_WAV_TO_MP3, "LAME_WAV_TO_MP3"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); g_unlink (IndiFix->NameFileCopieWav); normalise.ElementActif ++; } /* *IndiFix->EtatNormalise = NORM_SCAN_ACTIF; */ if (*IndiFix->EtatTrash == FILE_TRASH_OK) *IndiFix->EtatTrash = FILE_TRASH_VERIF_OK; } List = g_list_next(List); } } // // void normalise_MIX_RMS_GROUP_wav_ogg_mp3 (void) { GList *List = NULL; INDI_FIX *IndiFix = NULL; PARAM_FILELC param_filelc; gint pos; gchar **PtrTabArgs = NULL; PRINT_FUNC_LF(); /* COPIE WAV OGG MP3 */ if (FALSE == normalise.bool_set_end_of_user && NULL != normalise.ListMixGroupWav) { normalise_set_mess ("(MIX)RMS/GROUPE (Temp): Copie 'wav' vers dossier temporaire"); conv.bool_percent_conv = TRUE; normalise_copy_wav_to_tmp (normalise.ListMixGroupWav); } /* Conversion Ogg vers Wav */ if (FALSE == normalise.bool_set_end_of_user && NULL != normalise.ListMixGroupOgg) { normalise_set_mess ("(MIX)RMS/GROUPE (Temp): Conversion Ogg vers Wav"); List = g_list_first (normalise.ListMixGroupOgg); while (List) { if ((IndiFix = (INDI_FIX *)List->data)) { PtrTabArgs = filelc_AllocTabArgs(); pos = 3; PtrTabArgs [ pos++ ] = g_strdup ("ogg123"); PtrTabArgs [ pos++ ] = g_strdup ("-d"); PtrTabArgs [ pos++ ] = g_strdup ("wav"); PtrTabArgs [ pos++ ] = g_strdup ("-f"); PtrTabArgs [ pos++ ] = g_strdup (IndiFix->NameFileCopieWav); PtrTabArgs [ pos++ ] = g_strdup (IndiFix->NameFile); PtrTabArgs [ pos++ ] = NULL; conv_to_convert( PtrTabArgs, FALSE, OGG123_OGG_TO_WAV, "OGG123_OGG_TO_WAV CONVERSION Ogg vers Wav"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); normalise.ElementActif ++; } List = g_list_next(List); } } /* Conversion Mp3 vers Wav */ if (FALSE == normalise.bool_set_end_of_user && NULL != normalise.ListMixGroupMp3) { normalise_set_mess ("(MIX)RMS/GROUPE (Temp): Conversion Mp3 vers Wav"); List = g_list_first (normalise.ListMixGroupMp3); while (List) { if ((IndiFix = (INDI_FIX *)List->data)) { PtrTabArgs = filelc_AllocTabArgs(); pos = 3; PtrTabArgs [ pos++ ] = g_strdup ("mplayer"); PtrTabArgs [ pos++ ] = g_strdup ("-nojoystick"); PtrTabArgs [ pos++ ] = g_strdup ("-nolirc"); PtrTabArgs [ pos++ ] = g_strdup (IndiFix->NameFile); PtrTabArgs [ pos++ ] = g_strdup ("-ao"); PtrTabArgs [ pos++ ] = g_strdup ("pcm"); PtrTabArgs [ pos++ ] = g_strdup ("-ao"); PtrTabArgs [ pos++ ] = g_strdup_printf ("pcm:file=%s",IndiFix->NameFileCopieWav); PtrTabArgs [ pos++ ] = g_strdup ("-af"); PtrTabArgs [ pos++ ] = g_strdup ("channels=2"); PtrTabArgs [ pos++ ] = g_strdup ("-srate"); PtrTabArgs [ pos++ ] = g_strdup ("44100"); PtrTabArgs [ pos++ ] = NULL; conv_to_convert( PtrTabArgs, FALSE, MPLAYER_MP3_TO_WAV, "MPLAYER_MP3_TO_WAV"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); normalise.ElementActif ++; } List = g_list_next(List); } } /* NORMALISE WAV */ if (FALSE == normalise.bool_set_end_of_user) { normalise_set_mess ("(MIX)RMS/GROUPE: Normalise Wav"); PtrTabArgs = filelc_AllocTabArgs(); pos = 3; PtrTabArgs [ pos++ ] = g_strdup (prginit_get_name (NMR_normalize)); PtrTabArgs [ pos++ ] = g_strdup ("-a"); PtrTabArgs [ pos++ ] = g_strdup_printf ("%d,0000dB", normalise.LevelMix); PtrTabArgs [ pos++ ] = g_strdup ("--batch"); /* Creation liste WAV */ List = g_list_first (normalise.ListMixGroupWav); while (List) { if (NULL != (IndiFix = (INDI_FIX *)List->data)) { PtrTabArgs [ pos++ ] = g_strdup (IndiFix->NameFileCopieWav); if (*IndiFix->EtatTrash == FILE_TRASH_OK) *IndiFix->EtatTrash = FILE_TRASH_VERIF_OK; } List = g_list_next(List); } /* Creation liste OGG */ List = g_list_first (normalise.ListMixGroupOgg); while (List) { if (NULL != (IndiFix = (INDI_FIX *)List->data)) { PtrTabArgs [ pos++ ] = g_strdup (IndiFix->NameFileCopieWav); if (*IndiFix->EtatTrash == FILE_TRASH_OK) *IndiFix->EtatTrash = FILE_TRASH_VERIF_OK; } List = g_list_next(List); } /* Creation liste MP3 */ List = g_list_first (normalise.ListMixGroupMp3); while (List) { if (NULL != (IndiFix = (INDI_FIX *)List->data)) { PtrTabArgs [ pos++ ] = g_strdup (IndiFix->NameFileCopieWav); if (*IndiFix->EtatTrash == FILE_TRASH_OK) *IndiFix->EtatTrash = FILE_TRASH_VERIF_OK; } List = g_list_next(List); } PtrTabArgs [ pos++ ] = NULL; /* Normalisation */ conv_to_convert( PtrTabArgs, FALSE, NORMALISE_EXEC, "NORMALISE_EXEC Wav -> (MIX)RMS/GROUPE"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); normalise.ElementActif ++; } /* RESTITUE WAV OGG MP3 */ if (FALSE == normalise.bool_set_end_of_user) { /* Restitue liste WAV */ if (FALSE == IndiFix->BoolWithConvert) { normalise_set_mess ("(MIX)RMS/GROUPE (Restitution): Restitution des fichiers 'wav'"); List = g_list_first (normalise.ListMixGroupWav); while (List) { if (NULL != (IndiFix = (INDI_FIX *)List->data)) { conv_copy_src_to_dest (IndiFix->NameFileCopieWav, IndiFix->NameDestWav); g_unlink (IndiFix->NameFileCopieWav); normalise.ElementActif ++; conv.bool_percent_conv = TRUE; } List = g_list_next(List); } } /* Restitue liste OGG */ if (FALSE == IndiFix->BoolWithConvert) { normalise_set_mess ("(MIX)RMS/GROUPE (Restitution): Conversion Wav vers Ogg"); List = g_list_first (normalise.ListMixGroupOgg); while (List) { if (NULL != (IndiFix = (INDI_FIX *)List->data)) { param_filelc.type_conv = OGGENC_WAV_TO_OGG; param_filelc.With_CommandLineUser = FALSE; param_filelc.filesrc = IndiFix->NameFileCopieWav; param_filelc.filedest = IndiFix->NameDestOgg; param_filelc.tags = IndiFix->tags; param_filelc.cdrom = NULL; param_filelc.num_track = NULL; param_filelc.PtrStrBitrate = NULL; PtrTabArgs = filelc_get_command_line (¶m_filelc); conv_to_convert( PtrTabArgs, FALSE, OGGENC_WAV_TO_OGG, "OGGENC_WAV_TO_OGG"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); g_unlink (IndiFix->NameFileCopieWav); normalise.ElementActif ++; } List = g_list_next(List); } } /* Restitue liste MP3 */ if (FALSE == IndiFix->BoolWithConvert) { normalise_set_mess ("(MIX)RMS/GROUPE (Restitution): Conversion Wav vers Mp3"); List = g_list_first (normalise.ListMixGroupMp3); while (List) { if (NULL != (IndiFix = (INDI_FIX *)List->data)) { param_filelc.type_conv = LAME_WAV_TO_MP3; param_filelc.With_CommandLineUser = FALSE; param_filelc.filesrc = IndiFix->NameFileCopieWav; param_filelc.filedest = IndiFix->NameDestMp3; param_filelc.tags = IndiFix->tags; param_filelc.cdrom = NULL; param_filelc.num_track = NULL; param_filelc.PtrStrBitrate = NULL; PtrTabArgs = filelc_get_command_line (¶m_filelc); conv_to_convert( PtrTabArgs,FALSE, LAME_WAV_TO_MP3, "LAME_WAV_TO_MP3"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); g_unlink (IndiFix->NameFileCopieWav); normalise.ElementActif ++; } List = g_list_next(List); } } } } // // void normalise_PEAK_RMS_GROUP_wav_ogg_mp3 (void) { GList *List = NULL; INDI_FIX *IndiFix = NULL; PARAM_FILELC param_filelc; gint pos; gchar **PtrTabArgs = NULL; /* COPIE WAV OGG MP3 */ if (FALSE == normalise.bool_set_end_of_user && NULL != normalise.ListPeakGroupWav) { normalise_set_mess ("PEAK/GROUPE (Temp): Copie 'wav' vers dossier temporaire"); normalise_copy_wav_to_tmp (normalise.ListPeakGroupWav); } /* Conversion Ogg vers Wav */ if (FALSE == normalise.bool_set_end_of_user && NULL != normalise.ListPeakGroupOgg) { normalise_set_mess ("PEAK/GROUPE (Temp): Conversion Ogg vers Wav"); List = g_list_first (normalise.ListPeakGroupOgg); while (List) { if (NULL != (IndiFix = (INDI_FIX *)List->data)) { PtrTabArgs = filelc_AllocTabArgs(); pos = 3; PtrTabArgs [ pos++ ] = g_strdup ("ogg123"); PtrTabArgs [ pos++ ] = g_strdup ("-d"); PtrTabArgs [ pos++ ] = g_strdup ("wav"); PtrTabArgs [ pos++ ] = g_strdup ("-f"); PtrTabArgs [ pos++ ] = g_strdup (IndiFix->NameFileCopieWav); PtrTabArgs [ pos++ ] = g_strdup (IndiFix->NameFile); PtrTabArgs [ pos++ ] = NULL; conv_to_convert( PtrTabArgs, FALSE, OGG123_OGG_TO_WAV, "OGG123_OGG_TO_WAV CONVERSION Ogg vers Wav"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); normalise.ElementActif ++; } List = g_list_next(List); } } /* Conversion Mp3 vers Wav */ if (FALSE == normalise.bool_set_end_of_user && NULL != normalise.ListPeakGroupMp3) { normalise_set_mess ("PEAK/GROUPE (Temp): Conversion Mp3 vers Wav"); List = g_list_first (normalise.ListPeakGroupMp3); while (List) { if (NULL != (IndiFix = (INDI_FIX *)List->data)) { PtrTabArgs = filelc_AllocTabArgs(); pos = 3; PtrTabArgs [ pos++ ] = g_strdup ("mplayer"); PtrTabArgs [ pos++ ] = g_strdup ("-nojoystick"); PtrTabArgs [ pos++ ] = g_strdup ("-nolirc"); PtrTabArgs [ pos++ ] = g_strdup (IndiFix->NameFile); PtrTabArgs [ pos++ ] = g_strdup ("-ao"); PtrTabArgs [ pos++ ] = g_strdup ("pcm"); PtrTabArgs [ pos++ ] = g_strdup ("-ao"); PtrTabArgs [ pos++ ] = g_strdup_printf ("pcm:file=%s",IndiFix->NameFileCopieWav); PtrTabArgs [ pos++ ] = g_strdup ("-af"); PtrTabArgs [ pos++ ] = g_strdup ("channels=2"); PtrTabArgs [ pos++ ] = g_strdup ("-srate"); PtrTabArgs [ pos++ ] = g_strdup ("44100"); PtrTabArgs [ pos++ ] = NULL; conv_to_convert( PtrTabArgs, FALSE, MPLAYER_MP3_TO_WAV, "MPLAYER_MP3_TO_WAV"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); normalise.ElementActif ++; } List = g_list_next(List); } } /* NORMALISE WAV */ if (FALSE == normalise.bool_set_end_of_user) { normalise_set_mess ("PEAK/GROUPE: Chercher la moyenne Peak"); /* CHERCHER LA MOYENNE PEAK */ PtrTabArgs = filelc_AllocTabArgs(); pos = 3; PtrTabArgs [ pos++ ] = g_strdup (prginit_get_name (NMR_normalize)); PtrTabArgs [ pos++ ] = g_strdup ("-n"); /* Creation liste WAV */ List = g_list_first (normalise.ListPeakGroupWav); while (List) { if ((IndiFix = (INDI_FIX *)List->data)) { PtrTabArgs [ pos++ ] = g_strdup (IndiFix->NameFileCopieWav); } List = g_list_next(List); } /* Creation liste OGG */ List = g_list_first (normalise.ListPeakGroupOgg); while (List) { if ((IndiFix = (INDI_FIX *)List->data)) { PtrTabArgs [ pos++ ] = g_strdup (IndiFix->NameFileCopieWav); } List = g_list_next(List); } /* Creation liste MP3 */ List = g_list_first (normalise.ListPeakGroupMp3); while (List) { if ((IndiFix = (INDI_FIX *)List->data)) { PtrTabArgs [ pos++ ] = g_strdup (IndiFix->NameFileCopieWav); } List = g_list_next(List); } PtrTabArgs [ pos++ ] = NULL; /* Chercher la moyenne PEAK */ conv_to_convert( PtrTabArgs, FALSE, NORMALISE_GET_LEVEL, "NORMALISE_GET_LEVEL -> PEAK/GROUP"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); /* APPLIQUER LA MOYENNE PEAK */ normalise_set_mess ("PEAK/GROUPE: Normalise Wav"); PtrTabArgs = filelc_AllocTabArgs(); pos = 3; PtrTabArgs [ pos++ ] = g_strdup (prginit_get_name (NMR_normalize)); PtrTabArgs [ pos++ ] = g_strdup_printf ("--gain=%fdB", conv.value_PEAK_RMS_GROUP_ARGS); /* Creation liste WAV */ List = g_list_first (normalise.ListPeakGroupWav); while (List) { if ((IndiFix = (INDI_FIX *)List->data)) { PtrTabArgs [ pos++ ] = g_strdup (IndiFix->NameFileCopieWav); if (*IndiFix->EtatTrash == FILE_TRASH_OK) *IndiFix->EtatTrash = FILE_TRASH_VERIF_OK; } List = g_list_next(List); } /* Creation liste OGG */ List = g_list_first (normalise.ListPeakGroupOgg); while (List) { if ((IndiFix = (INDI_FIX *)List->data)) { PtrTabArgs [ pos++ ] = g_strdup (IndiFix->NameFileCopieWav); if (*IndiFix->EtatTrash == FILE_TRASH_OK) *IndiFix->EtatTrash = FILE_TRASH_VERIF_OK; } List = g_list_next(List); } /* Creation liste MP3 */ List = g_list_first (normalise.ListPeakGroupMp3); while (List) { if ((IndiFix = (INDI_FIX *)List->data)) { PtrTabArgs [ pos++ ] = g_strdup (IndiFix->NameFileCopieWav); if (*IndiFix->EtatTrash == FILE_TRASH_OK) *IndiFix->EtatTrash = FILE_TRASH_VERIF_OK; } List = g_list_next(List); } PtrTabArgs [ pos++ ] = NULL; /* Normalisation */ conv_to_convert( PtrTabArgs, FALSE, NORMALISE_EXEC, "NORMALISE_EXEC Wav -> PEAK/GROUP"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); normalise.ElementActif ++; } /* RESTITUE WAV OGG MP3 */ if (FALSE == normalise.bool_set_end_of_user) { /* Restitue liste WAV */ if (FALSE == IndiFix->BoolWithConvert) { normalise_set_mess ("PEAK/GROUPE (Restitution): Restitution des fichiers 'wav'"); List = g_list_first (normalise.ListPeakGroupWav); while (List) { if (NULL != (IndiFix = (INDI_FIX *)List->data)) { /* Bug de copie signalee par @Dzef */ if (TRUE == IndiFix->BoolWithConvert) { conv_copy_src_to_dest (IndiFix->NameFileCopieWav, IndiFix->NameDestWav); } g_unlink (IndiFix->NameFileCopieWav); normalise.ElementActif ++; } List = g_list_next(List); } } /* Restitue liste OGG */ if (FALSE == IndiFix->BoolWithConvert) { normalise_set_mess ("PEAK/GROUPE (Restitution): Conversion Wav vers Ogg"); List = g_list_first (normalise.ListPeakGroupOgg); while (List) { if (NULL != (IndiFix = (INDI_FIX *)List->data)) { param_filelc.type_conv = OGGENC_WAV_TO_OGG; param_filelc.With_CommandLineUser = FALSE; param_filelc.filesrc = IndiFix->NameFileCopieWav; param_filelc.filedest = IndiFix->NameDestOgg; param_filelc.tags = IndiFix->tags; param_filelc.cdrom = NULL; param_filelc.num_track = NULL; param_filelc.PtrStrBitrate = NULL; PtrTabArgs = filelc_get_command_line (¶m_filelc); conv_to_convert( PtrTabArgs, FALSE, OGGENC_WAV_TO_OGG, "OGGENC_WAV_TO_OGG"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); g_unlink (IndiFix->NameFileCopieWav); normalise.ElementActif ++; } List = g_list_next(List); } } /* Restitue liste MP3 */ if (FALSE == IndiFix->BoolWithConvert) { normalise_set_mess ("PEAK/GROUPE (Restitution): Conversion Wav vers Mp3"); List = g_list_first (normalise.ListPeakGroupMp3); while (List) { if (NULL != (IndiFix = (INDI_FIX *)List->data)) { param_filelc.type_conv = LAME_WAV_TO_MP3; param_filelc.With_CommandLineUser = FALSE; param_filelc.filesrc = IndiFix->NameFileCopieWav; param_filelc.filedest = IndiFix->NameDestMp3; param_filelc.tags = IndiFix->tags; param_filelc.cdrom = NULL; param_filelc.num_track = NULL; param_filelc.PtrStrBitrate = NULL; PtrTabArgs = filelc_get_command_line (¶m_filelc); conv_to_convert( PtrTabArgs, FALSE, LAME_WAV_TO_MP3, "LAME_WAV_TO_MP3"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); g_unlink (IndiFix->NameFileCopieWav); normalise.ElementActif ++; } List = g_list_next(List); } } } } // // void normalise_action_from_thread (void) { // PRINT_FUNC_LF(); normalise.bool_pass_conv = TRUE; if (NULL != normalise.ListFixWav) normalise_FIX_wav (); if (NULL != normalise.ListFixOgg) normalise_FIX_ogg (); if (NULL != normalise.ListFixMp3) normalise_FIX_mp3 (); if (NULL != normalise.ListPeakWav) normalise_PEAK_wav (); if (NULL != normalise.ListPeakOgg) normalise_PEAK_ogg (); if (NULL != normalise.ListPeakMp3) normalise_PEAK_mp3 (); if (NULL != normalise.ListMixGroupWav || NULL != normalise.ListMixGroupOgg || NULL != normalise.ListMixGroupMp3) normalise_MIX_RMS_GROUP_wav_ogg_mp3 (); if (NULL != normalise.ListPeakGroupWav || NULL != normalise.ListPeakGroupOgg || NULL != normalise.ListPeakGroupMp3) normalise_PEAK_RMS_GROUP_wav_ogg_mp3 (); normalise.bool_pass_conv = FALSE; } // // gboolean normalise_is_individuel (void) { GList *List = NULL; DETAIL *detail = NULL; List = g_list_first (entetefile); while (List) { if (NULL != (detail = (DETAIL *)List->data)) { if (detail->Etat_Normalise == NORM_RMS_FIX) { gint Level = 0, NewLevel = 0; if (detail->type_infosong_file_is == FILE_IS_WAV) { INFO_WAV *info = (INFO_WAV *)detail->info; Level = info->LevelDbfs.level; NewLevel = info->LevelDbfs.NewLevel; } else if (detail->type_infosong_file_is == FILE_IS_OGG) { INFO_OGG *info = (INFO_OGG *)detail->info; Level = info->LevelDbfs.level; NewLevel = info->LevelDbfs.NewLevel; } else if (detail->type_infosong_file_is == FILE_IS_MP3) { INFO_MP3 *info = (INFO_MP3 *)detail->info; Level = info->LevelDbfs.level; NewLevel = info->LevelDbfs.NewLevel; } if (Level != NewLevel) return (TRUE); } else if (detail->Etat_Normalise > NORM_READY_FOR_SELECT) { return (TRUE); } } List = g_list_next(List); } return (FALSE); } // // gboolean normalise_acces (DETAIL *detail) { if (NULL == detail) return (FALSE); if (detail->Etat_Normalise == NORM_RMS_FIX) { gint Level = 0, NewLevel = 0; if (detail->type_infosong_file_is == FILE_IS_WAV) { INFO_WAV *info = (INFO_WAV *)detail->info; Level = info->LevelDbfs.level; NewLevel = info->LevelDbfs.NewLevel; } else if (detail->type_infosong_file_is == FILE_IS_OGG) { INFO_OGG *info = (INFO_OGG *)detail->info; Level = info->LevelDbfs.level; NewLevel = info->LevelDbfs.NewLevel; } else if (detail->type_infosong_file_is == FILE_IS_MP3) { INFO_MP3 *info = (INFO_MP3 *)detail->info; Level = info->LevelDbfs.level; NewLevel = info->LevelDbfs.NewLevel; } if (Level != NewLevel) return (TRUE); } else if (detail->Etat_Normalise > NORM_READY_FOR_SELECT) { return (TRUE); } return (FALSE); } // // void normalise_get_NameFileCopie (INDI_FIX *p_IndiFix, gint pos) { if (NULL == conv.TmpRep) conv.TmpRep = libutils_create_temporary_rep (Config.PathnameTMP, PATH_TMP_XCFA_AUDIOFILE); p_IndiFix->NameFileCopieWav = g_strdup_printf ("%s/%d.wav", conv.TmpRep, pos); p_IndiFix->NameFileCopieOgg = g_strdup_printf ("%s/%d.ogg", conv.TmpRep, pos); p_IndiFix->NameFileCopieMp3 = g_strdup_printf ("%s/%d.mp3", conv.TmpRep, pos); } // // gboolean normalise_with_convert (DETAIL *detail) { if (detail->type_infosong_file_is == FILE_IS_WAV || detail->type_infosong_file_is == FILE_IS_OGG || detail->type_infosong_file_is == FILE_IS_MP3) { if (detail->EtatSelection_Wav > ETAT_ATTENTE_EXIST || detail->EtatSelection_Mp3 > ETAT_ATTENTE_EXIST || detail->EtatSelection_Ogg > ETAT_ATTENTE_EXIST) { if (detail->Etat_Normalise == NORM_RMS_FIX) { gint Level = 0, NewLevel = 0; if (detail->type_infosong_file_is == FILE_IS_WAV) { INFO_WAV *info = (INFO_WAV *)detail->info; Level = info->LevelDbfs.level; NewLevel = info->LevelDbfs.NewLevel; } else if (detail->type_infosong_file_is == FILE_IS_OGG) { INFO_OGG *info = (INFO_OGG *)detail->info; Level = info->LevelDbfs.level; NewLevel = info->LevelDbfs.NewLevel; } else if (detail->type_infosong_file_is == FILE_IS_MP3) { INFO_MP3 *info = (INFO_MP3 *)detail->info; Level = info->LevelDbfs.level; NewLevel = info->LevelDbfs.NewLevel; } if (Level != NewLevel) { return (TRUE); } } else if (detail->Etat_Normalise > NORM_RMS_FIX) { return (TRUE); } } } return (FALSE); } // // void normalise_force_scan (gchar *p_Name) { GList *List = NULL; DETAIL *detail = NULL; List = g_list_first (entetefile); while (List) { if (NULL != (detail = (DETAIL *)List->data)) { if (detail->type_infosong_file_is == FILE_IS_WAV || detail->type_infosong_file_is == FILE_IS_OGG || detail->type_infosong_file_is == FILE_IS_MP3) { if (0 == strcmp (detail->namefile, p_Name)) { if (detail->Etat_Normalise == NORM_RMS_MIX_ALBUM || detail->Etat_Normalise == NORM_RMS_FIX) { detail->Etat_Scan = ETAT_SCAN_NONE; break; } } } } List = g_list_next(List); } } // // void normalise_set_verif (GList *p_List) { GList *List = NULL; INDI_FIX *IndiFix = NULL; List = g_list_first (p_List); while (List) { if (NULL != (IndiFix = (INDI_FIX *)List->data)) { normalise_force_scan (IndiFix->NameFile); normalise_force_scan (IndiFix->NameDestWav); normalise_force_scan (IndiFix->NameDestOgg); normalise_force_scan (IndiFix->NameDestMp3); } List = g_list_next(List); } } // // static void normalise_struct_lists (void *arg) { GList *List = NULL; DETAIL *detail = NULL; INDI_FIX *IndiFix = NULL; // PRINT_FUNC_LF(); normalise.bool_thread_end = FALSE; normalise.bool_set_end_of_user = FALSE; /* Si liste individuel */ if (TRUE == normalise_is_individuel ()) { gboolean bool_mix_wav = FALSE; gboolean bool_mix_ogg = FALSE; gboolean bool_mix_mp3 = FALSE; gboolean bool_peak_wav = FALSE; gboolean bool_peak_ogg = FALSE; gboolean bool_peak_mp3 = FALSE; /* FIX */ normalise.ListFixWav = normalise_remove_glist_STRUCT (normalise.ListFixWav); normalise.ListFixOgg = normalise_remove_glist_STRUCT (normalise.ListFixOgg); normalise.ListFixMp3 = normalise_remove_glist_STRUCT (normalise.ListFixMp3); /* PEAK */ normalise.ListPeakWav = normalise_remove_glist_STRUCT (normalise.ListPeakWav); normalise.ListPeakOgg = normalise_remove_glist_STRUCT (normalise.ListPeakOgg); normalise.ListPeakMp3 = normalise_remove_glist_STRUCT (normalise.ListPeakMp3); /* MIX */ normalise.ListMixGroupWav = normalise_remove_glist_STRUCT (normalise.ListMixGroupWav); normalise.ListMixGroupOgg = normalise_remove_glist_STRUCT (normalise.ListMixGroupOgg); normalise.ListMixGroupMp3 = normalise_remove_glist_STRUCT (normalise.ListMixGroupMp3); /* PEAK-GROUP */ normalise.ListPeakGroupWav = normalise_remove_glist_STRUCT (normalise.ListPeakGroupWav); normalise.ListPeakGroupOgg = normalise_remove_glist_STRUCT (normalise.ListPeakGroupOgg); normalise.ListPeakGroupMp3 = normalise_remove_glist_STRUCT (normalise.ListPeakGroupMp3); List = g_list_first (entetefile); while (List) { if (NULL != (detail = (DETAIL *)List->data)) { /* bool_mix_wav = FALSE; bool_mix_ogg = FALSE; bool_mix_mp3 = FALSE; bool_peak_wav = FALSE; bool_peak_ogg = FALSE; bool_peak_mp3 = FALSE; if (normalise_with_convert (detail) == FALSE) { List = g_list_next(List); continue; } */ /* FILE_IS_WAV */ if (detail->type_infosong_file_is == FILE_IS_WAV && normalise_acces (detail)) { INFO_WAV *info = (INFO_WAV *)detail->info; if (detail->Etat_Normalise == NORM_RMS_FIX || detail->Etat_Normalise == NORM_PEAK || detail->Etat_Normalise == NORM_RMS_MIX_ALBUM || detail->Etat_Normalise == NORM_PEAK_ALBUM) { info->LevelDbfs.level = detail->LevelMix; IndiFix = (INDI_FIX *)g_malloc0 (sizeof (INDI_FIX)); IndiFix->NameFile = g_strdup (detail->namefile); IndiFix->StrDBFS = g_strdup_printf ("%d", info->LevelDbfs.NewLevel); IndiFix->tags = info->tags; IndiFix->EtatNormalise = &detail->Etat_Normalise; IndiFix->EtatTrash = &detail->EtatTrash; normalise_get_NameFileCopie (IndiFix, g_list_position (entetefile, List)); // GList *g_list_nth (GList *list, guint n); if (TRUE == (IndiFix->BoolWithConvert = normalise_with_convert (detail))) { detail->NameFileCopyFromNormalizate = g_strdup (IndiFix->NameFileCopieWav); } IndiFix->NameDestWav = file_get_pathname_dest (detail, "wav"); IndiFix->NameDestOgg = file_get_pathname_dest (detail, "ogg"); IndiFix->NameDestMp3 = file_get_pathname_dest (detail, "mp3"); } if (detail->Etat_Normalise == NORM_RMS_FIX) { normalise.ListFixWav = g_list_append (normalise.ListFixWav, IndiFix); /* actions: 3 */ normalise.NbrElementsInList += 2; if (IndiFix->BoolWithConvert == FALSE) normalise.NbrElementsInList ++; /* detail->Etat_Scan = ETAT_SCAN_DEMANDE;*/ } else if (detail->Etat_Normalise == NORM_PEAK) { normalise.ListPeakWav = g_list_append (normalise.ListPeakWav, IndiFix); /* actions: 3 */ normalise.NbrElementsInList += 2; if (IndiFix->BoolWithConvert == FALSE) normalise.NbrElementsInList ++; } else if (detail->Etat_Normalise == NORM_RMS_MIX_ALBUM) { normalise.ListMixGroupWav = g_list_append (normalise.ListMixGroupWav, IndiFix); /*-*/ normalise.NbrElementsInList ++; if (IndiFix->BoolWithConvert == FALSE) normalise.NbrElementsInList ++; bool_mix_wav = TRUE; normalise.LevelMix = detail->LevelMix; /* detail->Etat_Scan = ETAT_SCAN_DEMANDE;*/ } else if (detail->Etat_Normalise == NORM_PEAK_ALBUM) { normalise.ListPeakGroupWav = g_list_append (normalise.ListPeakGroupWav, IndiFix); /*-*/ normalise.NbrElementsInList ++; if (IndiFix->BoolWithConvert == FALSE) normalise.NbrElementsInList ++; bool_peak_wav = TRUE; } } /* FILE_IS_OGG */ else if (detail->type_infosong_file_is == FILE_IS_OGG && normalise_acces (detail)) { INFO_OGG *info = (INFO_OGG *)detail->info; if (detail->Etat_Normalise == NORM_RMS_FIX || detail->Etat_Normalise == NORM_PEAK || detail->Etat_Normalise == NORM_RMS_MIX_ALBUM || detail->Etat_Normalise == NORM_PEAK_ALBUM) { info->LevelDbfs.level = detail->LevelMix; IndiFix = (INDI_FIX *)g_malloc0 (sizeof (INDI_FIX)); IndiFix->NameFile = g_strdup (detail->namefile); IndiFix->StrDBFS = g_strdup_printf ("%d", info->LevelDbfs.NewLevel); IndiFix->tags = info->tags; IndiFix->EtatNormalise = &detail->Etat_Normalise; IndiFix->EtatTrash = &detail->EtatTrash; normalise_get_NameFileCopie (IndiFix, g_list_position (entetefile, List)); if ((IndiFix->BoolWithConvert = normalise_with_convert (detail)) == TRUE) { detail->NameFileCopyFromNormalizate = g_strdup (IndiFix->NameFileCopieWav); } IndiFix->NameDestWav = file_get_pathname_dest (detail, "wav"); IndiFix->NameDestOgg = file_get_pathname_dest (detail, "ogg"); IndiFix->NameDestMp3 = file_get_pathname_dest (detail, "mp3"); } if (detail->Etat_Normalise == NORM_RMS_FIX) { normalise.ListFixOgg = g_list_append (normalise.ListFixOgg, IndiFix); /*-*/ normalise.NbrElementsInList += 2; if (IndiFix->BoolWithConvert == FALSE) normalise.NbrElementsInList ++; /* detail->Etat_Scan = ETAT_SCAN_DEMANDE;*/ } else if (detail->Etat_Normalise == NORM_PEAK) { normalise.ListPeakOgg = g_list_append (normalise.ListPeakOgg, IndiFix); /*-*/ normalise.NbrElementsInList += 2; if (IndiFix->BoolWithConvert == FALSE) normalise.NbrElementsInList ++; } else if (detail->Etat_Normalise == NORM_RMS_MIX_ALBUM) { normalise.ListMixGroupOgg = g_list_append (normalise.ListMixGroupOgg, IndiFix); normalise.NbrElementsInList ++; if (IndiFix->BoolWithConvert == FALSE) normalise.NbrElementsInList ++; bool_mix_ogg = TRUE; normalise.LevelMix = detail->LevelMix; /* detail->Etat_Scan = ETAT_SCAN_DEMANDE;*/ } else if (detail->Etat_Normalise == NORM_PEAK_ALBUM) { normalise.ListPeakGroupOgg = g_list_append (normalise.ListPeakGroupOgg, IndiFix); /*-*/ normalise.NbrElementsInList ++; if (IndiFix->BoolWithConvert == FALSE) normalise.NbrElementsInList ++; bool_peak_ogg = TRUE; } } /* FILE_IS_MP3 */ else if (detail->type_infosong_file_is == FILE_IS_MP3 && normalise_acces (detail)) { INFO_MP3 *info = (INFO_MP3 *)detail->info; if (detail->Etat_Normalise == NORM_RMS_FIX || detail->Etat_Normalise == NORM_PEAK || detail->Etat_Normalise == NORM_RMS_MIX_ALBUM || detail->Etat_Normalise == NORM_PEAK_ALBUM) { info->LevelDbfs.level = detail->LevelMix; IndiFix = (INDI_FIX *)g_malloc0 (sizeof (INDI_FIX)); IndiFix->NameFile = g_strdup (detail->namefile); IndiFix->StrDBFS = g_strdup_printf ("%d", info->LevelDbfs.NewLevel); IndiFix->tags = info->tags; IndiFix->EtatNormalise = &detail->Etat_Normalise; IndiFix->EtatTrash = &detail->EtatTrash; normalise_get_NameFileCopie (IndiFix, g_list_position (entetefile, List)); if ((IndiFix->BoolWithConvert = normalise_with_convert (detail)) == TRUE) { detail->NameFileCopyFromNormalizate = g_strdup (IndiFix->NameFileCopieWav); } IndiFix->NameDestWav = file_get_pathname_dest (detail, "wav"); IndiFix->NameDestOgg = file_get_pathname_dest (detail, "ogg"); IndiFix->NameDestMp3 = file_get_pathname_dest (detail, "mp3"); } if (detail->Etat_Normalise == NORM_RMS_FIX) { normalise.ListFixMp3 = g_list_append (normalise.ListFixMp3, IndiFix); /*-*/ normalise.NbrElementsInList += 2; if (IndiFix->BoolWithConvert == FALSE) normalise.NbrElementsInList ++; /* detail->Etat_Scan = ETAT_SCAN_DEMANDE;*/ } else if (detail->Etat_Normalise == NORM_PEAK) { normalise.ListPeakMp3 = g_list_append (normalise.ListPeakMp3, IndiFix); /*-*/ normalise.NbrElementsInList += 2; if (IndiFix->BoolWithConvert == FALSE) normalise.NbrElementsInList ++; } else if (detail->Etat_Normalise == NORM_RMS_MIX_ALBUM) { normalise.ListMixGroupMp3 = g_list_append (normalise.ListMixGroupMp3, IndiFix); normalise.NbrElementsInList ++; /*-*/ if (IndiFix->BoolWithConvert == FALSE) normalise.NbrElementsInList ++; bool_mix_mp3 = TRUE; normalise.LevelMix = detail->LevelMix; /* detail->Etat_Scan = ETAT_SCAN_DEMANDE;*/ } else if (detail->Etat_Normalise == NORM_PEAK_ALBUM) { normalise.ListPeakGroupMp3 = g_list_append (normalise.ListPeakGroupMp3, IndiFix); /*-*/ normalise.NbrElementsInList ++; if (IndiFix->BoolWithConvert == FALSE) normalise.NbrElementsInList ++; bool_peak_mp3 = TRUE; } } } List = g_list_next(List); } if (TRUE == bool_mix_wav) normalise.NbrElementsInList ++; if (TRUE == bool_mix_ogg) normalise.NbrElementsInList ++; if (TRUE == bool_mix_mp3) normalise.NbrElementsInList ++; if (TRUE == bool_peak_wav) normalise.NbrElementsInList ++; if (TRUE == bool_peak_ogg) normalise.NbrElementsInList ++; if (TRUE == bool_peak_mp3) normalise.NbrElementsInList ++; /**/ normalise_action_from_thread (); } /* POUR GARDER LA FENETRE OUVERTE */ normalise.bool_thread_end = TRUE; normalise.bool_set_end_of_user = TRUE; pthread_exit(0); } // // static gint normalise_timeout (gpointer data) { if (TRUE == normalise.bool_etat) { if (NULL != normalise.MessUser) { g_print("normalise.MessUser = %s\n",normalise.MessUser); g_free (normalise.MessUser); normalise.MessUser = NULL; } normalise.bool_etat = FALSE; } if (TRUE == conv.BoolIsExtract || TRUE == conv.BoolIsConvert || TRUE == conv.BoolIsCopy || TRUE == conv.BoolIsNormalise || TRUE == conv.BoolIsReplaygain) { gchar Str [ 200 ]; Str [ 0 ] = '\0'; if (TRUE == conv.BoolIsExtract) { strcat (Str, "Extraction "); } if (TRUE == conv.BoolIsConvert) { strcat (Str, "Conversion "); } if (TRUE == conv.BoolIsCopy) { strcat (Str, "Copie "); } if (TRUE == conv.BoolIsNormalise) { strcat (Str, "Normalise "); } if (TRUE == conv.BoolIsReplaygain) { strcat (Str, "Replaygain"); } WindScan_set_label (Str); } if (TRUE == conv.bool_percent_conv || TRUE == normalise.bool_pass_conv) { gchar *Str = NULL; normalise.total_percent = (double)((double)normalise.ElementActif + (double)conv.conversion_percent) / (double)normalise.NbrElementsInList; Str = g_strdup_printf ("%d%%", (int)(normalise.total_percent * 100)); WindScan_set_progress (Str, normalise.total_percent); g_free (Str); Str = NULL; conv.bool_percent_conv = FALSE; return (TRUE); } if (TRUE == normalise.bool_pass_conv) { gchar *str = NULL; gchar *spinner="|/-\\"; gchar foo [ 2 ]; foo [ 0 ] = spinner[normalise.pass_conv++%4]; foo [ 1 ] = '\0'; str = g_strdup_printf ("En cours: %d sur %d %s", normalise.ElementActif +1, normalise.NbrElementsInList, foo ); g_free (str); str = NULL; return (TRUE); } else if (TRUE == normalise.bool_thread_end && TRUE == normalise.bool_set_end_of_user) { /* FIX */ normalise_set_verif (normalise.ListFixWav); normalise_set_verif (normalise.ListFixOgg); normalise_set_verif (normalise.ListFixMp3); normalise.ListFixWav = normalise_remove_glist_STRUCT (normalise.ListFixWav); normalise.ListFixOgg = normalise_remove_glist_STRUCT (normalise.ListFixOgg); normalise.ListFixMp3 = normalise_remove_glist_STRUCT (normalise.ListFixMp3); /* PEAK */ normalise_set_verif (normalise.ListPeakWav); normalise_set_verif (normalise.ListPeakOgg); normalise_set_verif (normalise.ListPeakMp3); normalise.ListPeakWav = normalise_remove_glist_STRUCT (normalise.ListPeakWav); normalise.ListPeakOgg = normalise_remove_glist_STRUCT (normalise.ListPeakOgg); normalise.ListPeakMp3 = normalise_remove_glist_STRUCT (normalise.ListPeakMp3); /* MIX */ normalise_set_verif (normalise.ListMixGroupWav); normalise_set_verif (normalise.ListMixGroupOgg); normalise_set_verif (normalise.ListMixGroupMp3); normalise.ListMixGroupWav = normalise_remove_glist_STRUCT (normalise.ListMixGroupWav); normalise.ListMixGroupOgg = normalise_remove_glist_STRUCT (normalise.ListMixGroupOgg); normalise.ListMixGroupMp3 = normalise_remove_glist_STRUCT (normalise.ListMixGroupMp3); /* PEAK-GROUP */ normalise_set_verif (normalise.ListPeakGroupWav); normalise_set_verif (normalise.ListPeakGroupOgg); normalise_set_verif (normalise.ListPeakGroupMp3); normalise.ListPeakGroupWav = normalise_remove_glist_STRUCT (normalise.ListPeakGroupWav); normalise.ListPeakGroupOgg = normalise_remove_glist_STRUCT (normalise.ListPeakGroupOgg); normalise.ListPeakGroupMp3 = normalise_remove_glist_STRUCT (normalise.ListPeakGroupMp3); gtk_timeout_remove (normalise.Handler_Timeout); file_pixbuf_update_glist (); fileaction_set_end (TYPE_NORMALISE); } return (TRUE); } // // void normalise_action (void) { // PRINT_FUNC_LF(); WindScan_open ("Normalisation", WINDSCAN_PULSE); WindScan_set_label ("Normalisation des fichiers ..."); normalise.bool_thread_end = FALSE; normalise.bool_set_end_of_user = FALSE; normalise.bool_pass_conv = FALSE; normalise.pass_conv = -1; normalise.bool_etat = FALSE; normalise.MessUser = NULL; normalise.NbrElementsInList = 0; normalise.ElementActif = 0; conv_reset_struct (WindScan_close_request); pthread_create (&normalise.nmr_tid, NULL ,(void *)normalise_struct_lists, (void *)NULL); normalise.Handler_Timeout = gtk_timeout_add (100, normalise_timeout, 0); } xcfa-4.3.6/src/options_musepack.c0000644000175000017500000000562612122563465013723 00000000000000 /* * file : options_musepack.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "configuser.h" #include "options.h" static gchar *str_val_preset[] = { "--telephone", "--thumb", "--radio", "--standard", "--xtreme", "--insane", "--braindead" }; gchar *optionsMusepack_get_quality_mppenc (void) { return ( (gchar *)str_val_preset[ gtk_combo_box_get_active (GTK_COMBO_BOX (var_options.Adr_Widget_Mppenc)) ]); } void on_combobox_mppenc_realize (GtkWidget *widget, gpointer user_data) { var_options.Adr_Widget_Mppenc = GTK_COMBO_BOX (widget); libcombo_alloc (GTK_COMBO_BOX (widget)); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), _("telephone: lowest quality : 32 .. 48 kbit/s")); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), _("thumb : low quality/internet : 58 .. 86 kbit/s")); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), _("radio : medium (MP3) quality : 112 .. 152 kbit/s")); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), _("standard : high quality (dflt) : 142 .. 184 kbit/s")); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), _("xtreme : extreme high quality : 168 .. 212 kbit/s")); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), _("insane : extreme high quality : 232 .. 268 kbit/s")); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), _("braindead : extreme high quality : 232 .. 278 kbit/s")); gtk_combo_box_set_active (GTK_COMBO_BOX (widget), Config.QualityMppenc); } void on_combobox_mppenc_changed (GtkComboBox *combobox, gpointer user_data) { if (NULL != var_options.Adr_Widget_Mppenc) { gint ind; if ((ind = gtk_combo_box_get_active (GTK_COMBO_BOX (var_options.Adr_Widget_Mppenc))) >= 0) Config.QualityMppenc = ind; OptionsInternal_set_datas_interne (COLOR_MUSEPACK_QUALITE, var_options.Adr_label_musepack_mpc, MPPENC_WAV_TO_MPC); } } xcfa-4.3.6/src/mplayer.h0000644000175000017500000000524512122563437012012 00000000000000 /* * file : mplayer.h * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifndef mplayer_h #define mplayer_h 1 typedef enum { LIST_MPLAYER_FROM_NONE = 0, LIST_MPLAYER_FROM_DVD, LIST_MPLAYER_FROM_CD } LIST_MPLAYER_FROM; #define MAX_PLAYERS_ARGS 100 typedef struct { gdouble PercentTempsActuel; // Temps actuel gdouble DOUBLE_TempsTotal; // Temps Total gdouble DOUBLE_TempsTotalSection; gboolean BoolIsPause; // TRUE = PAUSE | FALSE = NO PAUSE LIST_MPLAYER_FROM ListPlayFrom; // From dvd, cd, fichier gchar *PlayerArgs[ MAX_PLAYERS_ARGS ];// Tableau de pointeurs pour les parametres gboolean BoolThreadActivate; // TRUE is activate else FALSE pthread_t NmrTid; // Numero de process du thread gboolean BoolTimeoutActivate; // TRUE is activate else FALSE guint HandlerTimeout; // Numero de process du timeout gint SignalNumchildren; // Synchronisation gint Tube [ 2 ]; // Les tickets pid_t CodeFork; // Numero de process pour mplayer gboolean BoolErreurMplayer; // TRUE is erreur else FALSE gint Button; // -1, GDK_BUTTON_PRESS, GDK_BUTTON_RELEASE void (*FuncWinClose) (void); // void (*FuncSetValueTime) (gdouble p_value); void (*FuncIconeStop) (void); // gboolean (*Func_request_stop) (void); // } VAR_MPLAYER; extern VAR_MPLAYER VarMplayer; void mplayer_init (LIST_MPLAYER_FROM p_ListPlayFrom, gdouble p_TempsTotalSection, guint p_TempsTotalSurface, void *p_FuncWinClose, void *p_FuncSetValueTime, void *p_FuncIconeStop, void *p_Func_request_stop); void mplayer_set_list (GList *p_list); void mplayer_fifo_quit (void); void mplayer_remove_fifo (void); void mplayer_fifo_seek_with_hundr (gdouble PercentValue); void mplayer_fifo_seek (gdouble PercentValue); void mplayer_fifo_pause (void); void mplayer_set_value_time (gdouble value); void mplayer_remove_list_args (void); gboolean mplayer_is_used (void); #endif xcfa-4.3.6/src/split_wav.c0000644000175000017500000001216512122563465012344 00000000000000 /* * file : split_wav.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ /* * LA SUPPRESSION DE L'APPLICATION WAVSPLIT QUI N'EST PLUS MAINTENUE PAR SON AUTEUR (tobias@fomalhaut.de) ET * LE CODAGE EN INTERNE DU SPLIT DEPUIS XCFA ONT ETE INSPIRES PAR CE MAIL: * * Hello. * I use XCFA to manipulate my audio files. * I'm running Debian Testing and I have almost all the "external programs" installed. * And I say almost, because there is not wavsplit package in Debian Repository, and compiling it conflicts with some issues. * Anyway, wavsplit is already a more or less obsolete and abandoned program. * Thus, I think it should be better if XCFA would need an alternative program, just like wavbraker, or even sox that it is already suggested by XCFA. * Could you please let me know if there is any plan to substitute wavsplit with some other program as bult-in for spliting wave files? * Thank you. */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "tags.h" #include "configuser.h" #include "split.h" extern VAR_SPLIT VarSplit; // // void SplitWav_extract( void ) { gint Plage; WAVE WaveHeader; gchar *NewName = NULL; FILE *fp = NULL; size_t Ret; size_t RetRead; size_t WriteValue; gchar *buffer; guint SizeBuffer; gdouble Percent; tagswav_print( VarSplit.PathNameFile ); SizeBuffer = BUFSIZ; // BUFSIZ = 8192 buffer = (gchar *)g_malloc0 ((sizeof(gchar) * SizeBuffer) + 10); for (Plage = 0; VarSplit.Selecteur [ Plage ] . Nmr != -1; Plage ++) { if (FALSE == tagswav_read_file( VarSplit.PathNameFile, &WaveHeader )) { tagswav_close_file (&WaveHeader); if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("\nImpossible d'ouvrir le fichier : \"%s\"\n\n", VarSplit.PathNameFile); g_free( buffer ); buffer = NULL; return; } NewName = g_strdup_printf( "%s/%02d.wav", Config.PathDestinationSplit, Plage +1 ); fp = fopen( NewName, "w" ); // ECRITURE ENTETE FICHIER WAV fwrite( &WaveHeader.RIFF.ChunkID, 4, 1, fp ); // RIFF fwrite( &WaveHeader.RIFF.ChunkSize, 4, 1, fp ); // taille du fichier entier en octets (sans compter les 8 octets de ce champ et le champ précédent fwrite( &WaveHeader.RIFF.Format, 4, 1, fp ); // WAVE fwrite( &WaveHeader.FMT.Subchunk1ID, 4, 1, fp ); // 'fmt ' fwrite( &WaveHeader.FMT.Subchunk1Size, 4, 1, fp ); // taille en octet des données à suivre fwrite( &WaveHeader.FMT.AudioFormat, 2, 1, fp ); // format de compression (une valeur autre que 1 indique une compression) fwrite( &WaveHeader.FMT.NumChannels, 2, 1, fp ); // nombre de canaux fwrite( &WaveHeader.FMT.SampleRate, 4, 1, fp ); // fréquence d'échantillonage (nombre d'échantillons par secondes) fwrite( &WaveHeader.FMT.ByteRate, 4, 1, fp ); // nombre d'octects par secondes fwrite( &WaveHeader.FMT.Blockalign, 2, 1, fp ); // nombre d'octects pour coder un échantillon fwrite( &WaveHeader.FMT.BitsPerSample, 2, 1, fp ); // nombre de bits pour coder un échantillon fwrite( &WaveHeader.DATA.Subchunk2ID, 4, 1, fp ); // 'data' fwrite( &WaveHeader.DATA.Subchunk2Size, 4, 1, fp ); // taille des données audio( nombre total d'octets codant les données audio) RetRead = 0; WriteValue = 0; g_print( "NewName = %s\n", NewName ); while(( Ret = fread (buffer, 1, SizeBuffer, WaveHeader.file )) > 0) { RetRead += Ret; Percent = (float)(RetRead / (float)WaveHeader.DATA.Subchunk2Size) * 100.0; if( Percent > VarSplit.Selecteur [ Plage ] . PercentEnd ) break; if( Percent >= VarSplit.Selecteur [ Plage ] . PercentBegin ) { fwrite( buffer, Ret, 1, fp ); WriteValue += Ret; } } fseek( fp, 4L, SEEK_SET ); WriteValue += 44; WriteValue -= 8; fwrite( &WriteValue, 4, 1, fp ); // taille du fichier entier en octets (sans compter les 8 octets de ce champ et le champ précédent fseek( fp, 40L, SEEK_SET ); WriteValue += 8; WriteValue -= 44; fwrite( &WriteValue, 4, 1, fp ); // taille des données audio( nombre total d'octets codant les données audio) fclose (fp ); fp = NULL; tagswav_print( NewName ); g_free( NewName ); NewName = NULL; tagswav_close_file (&WaveHeader); } g_free( buffer ); buffer = NULL; } xcfa-4.3.6/src/configuser.c0000644000175000017500000012065412122563465012503 00000000000000 /* * file : configuser_new.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ /* * New Developpment File: * Fri, 15 Jul 2011 22:45:07 +0200 */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "options.h" #include "cd_audio.h" #include "configuser.h" #include "global.h" typedef struct { gchar **Larrbuf; } CONF; CONF Conf = { NULL }; VAR_CONFIG ConfigSaveToRest; // Pour les restitutions par defaut VAR_CONFIG Config = { FALSE, // BoolConfigOk 1, // gulong UsesOfXcfa; // 0 to G_MAXULONG ( 18446744073709551615 ) 0, // WinPos_X 0, // WinPos_Y 800, // WinWidth 520, // WinHeight 0, // Nice NULL, // PathLoadFileAll NULL, // PathLoadFileWav NULL, // PathLoadFileMp3Ogg NULL, // PathLoadFileTags {0,0,0,0}, // TabIndiceComboDestFile NULL, // PathDestinationFileAll NULL, // PathDestinationFileWav NULL, // PathDestinationFileMp3Ogg NULL, // PathDestinationFileTags NULL, // PathDestinationDVD NULL, // PathChoiceFileDVD NULL, // PathDestinationCD NULL, // PathChoiceFileCD NULL, // PathDestinationSplit NULL, // PathLoadSplit NULL, // PathnameTMP NULL, // PathStockeImagesPochette NULL, // PathDestFilePostScript NULL, // PathLoadImages 0, // NotebookGeneral 0, // NotebookExpanderCd 0, // NotebookFile 0, // NotebookOptions 0, // NotebookAppExterns 0, // ExtractCdWith = EXTRACT_WITH_CDPARANOIA = 0 1, // BitrateLameIndice {0,8,0,0}, // TabBitrateLame {0,0,0,0}, // TabModeLame 15, // BitrateOggenc 1, // ManagedOggenc 1, // DownmixOggenc 5, // CompressionLevelFlac 1, // CompressionLevelApeMac 0, // CompressionWavpack 1, // SoundWavpack 0, // ModeHybrideWavpack 0, // CorrectionFileWavpack 0, // CompressionMaximumWavpack 0, // SignatureMd5Wavpack 0, // ExtraEncodingWavpack 5, // QualityMppenc 0, // ConteneurFacc 0, // AbrVbrFacc 0, // AbrFaccIndice 6, // VbrFaccIndice 7, // ChoiceMonoAacplusenc 4, // ChoiceStereoAacplusenc TRUE, // BoolArtistTag TRUE, // BoolTitleTag TRUE, // BoolAlbumTag TRUE, // BoolNumerateTag TRUE, // BoolGenreTag TRUE, // BoolYearTag TRUE, // BoolCommentTag TRUE, // BoolEtatExpanderCd NULL, // StringExpanderLame Lignes de saisie: options pour les geeks NULL, // StringExpanderOggenc NULL, // StringExpanderFlac NULL, // StringExpanderFaac NULL, // StringExpanderMppenc NULL, // StringExpanderMac NULL, // StringExpanderWavpack 0, // ServeurCddb SERVER_CDDB_DEFAULT = 0 OR SERVER_CDDB_PARAM NULL, // StringNameFile_m3u_xspf NULL, // Templates_title_cdaudio NULL, // Templates_rep_cdaudio NULL, // StringNameNavigateur NULL, // StringParamNameNavigateur NULL, // StringNameLecteurPostScript NULL, // StringNameLecteurAudio NULL, // StringParamNameLecteurAudio NULL, // StringBoolFieldsIsVisible FIELDS DVD,CD,FILES : FALSE or HIDE = 0, TRUE or SHOW = 1 NULL, // StringPosFieldsName POS NAME OF DVD,CD,FILES: 0 = LEFT, 1 = CENTER, 2 = RIGHT 0, // NumSelectComboBoxDvd 0, // NumSelectComboBoxCd NULL, // entry_cddp_server NULL, // entry_proxy_server; NULL, // entry_proxy_port NULL, // NameImg NULL, // PathLoadImg NULL, // PathSaveImg; NULL, // PathPochette FALSE, // gboolean BoolCheckbuttonEndOfConvert NULL, // gchar *PathMusicFileEndOfConvert NULL, // gchar *FileMusicFileEndOfConvert NULL, // gchar *StringCommentCD FALSE // gboolean BoolLogCdparanoiaModeExpert }; // TRUE SI p_dest EST DANS p_src SINON FALSE // gboolean config_new_strcmp (gchar *p_src, gchar *p_dest) { gint len_aiguille = strlen (p_dest); gint len_meule; gint len; gchar *PtrBeginSrc = NULL; gchar *PtrEndSrc = NULL; gchar *PtrSrc = NULL; gchar *PtrDest = p_dest; for (PtrBeginSrc = p_src; *PtrBeginSrc == ' ' || *PtrBeginSrc == '\t'; PtrBeginSrc ++); for (PtrEndSrc = PtrBeginSrc; *PtrEndSrc != ' ' && *PtrEndSrc != '\t'; PtrEndSrc ++); len_meule = PtrEndSrc - PtrBeginSrc; if (len_meule != len_aiguille) return (FALSE); len = 0; for (PtrSrc = PtrBeginSrc; PtrSrc < PtrEndSrc; PtrSrc ++, PtrDest ++) { if (*PtrSrc != *PtrDest) return (FALSE);; len ++; } return (len_meule == len ? TRUE : FALSE); } // // void config_print_data (gchar *p_str) { gint len = strlen( p_str ); g_print( "%s", p_str ); while( len < 33 ) { g_print( " " ); len ++; } g_print( "= " ); } // RETOURNE LE NOM COMPLET DU FICHIER DE CONFIGURATION // /* gchar *OLD_config_get_pathname( void ) { // @Tetsumaki : http://forum.ubuntu-fr.org/viewtopic.php?pid=3890967#p3890967 // return ((gchar *)g_strdup_printf ("%s/%s", getenv ("HOME"), ".config/xcfa_new/xcfa.conf")); return( (gchar *)g_strdup_printf( "%s/%s", getenv( "HOME"), ".config/xcfa/xcfa.conf" )); } gchar *config_get_pathname( void ) { const gchar *Lenv = NULL; gchar *Lpath = NULL; if( NULL != ( Lenv = g_getenv( "XDG_CONFIG_HOME" ))) { Lpath = g_strdup_printf("%s/%s/%s.conf", Lenv, PACKAGE, PACKAGE); } else if( NULL != ( Lenv = g_getenv( "HOME" ))) { Lpath = g_strdup_printf("%s/.config/%s/%s.conf", Lenv, PACKAGE, PACKAGE); } PRINT_FUNC_LF(); if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print( "\t(gchar *)Lpath = %s\n", Lpath ); return( (gchar *)Lpath ); } */ // RETOURNE UNE DEFINITION DU FICHIER DE CONFIGURATION // gchar *config_get_target( gchar *p_buf ) { gchar *Str = NULL; gchar *Ptr = NULL; if( NULL != ( Ptr = strchr( p_buf, '=' ))) { Ptr ++; while( *Ptr && (*Ptr != ' ' && *Ptr != '\t' )) Ptr ++; Ptr ++; Str = g_strdup( Ptr ); if( NULL != ( Ptr = strchr( Str, '\r' ))) *Ptr = '\0'; if( NULL != ( Ptr = strchr( Str, '\n' ))) *Ptr = '\0'; } return( (gchar *)Str ); } // // gboolean config_get_bool( gchar *value ) { gchar *ptr = value; while( *ptr ) { *ptr = toupper( *ptr ); ptr++; } return ( !strncmp( value, "TRUE", strlen( "TRUE" )) ? TRUE : FALSE ); } // LECTURE BOOLEAN // gboolean config_read_value_bool( gchar *p_Search, gboolean *p_ValueBool ) { gchar *Ptr = NULL; gint Cpt; for( Cpt = 0; Conf.Larrbuf[ Cpt ]; Cpt++ ) { // Si commentaire ou ligne vide alors ligne suivante if( *Conf.Larrbuf[ Cpt ] == '#' || *Conf.Larrbuf[ Cpt ] == '\0') continue; if( TRUE == config_new_strcmp( Conf.Larrbuf[ Cpt ], p_Search )) { if( NULL != ( Ptr = config_get_target( Conf.Larrbuf[ Cpt ] ))) { *p_ValueBool = config_get_bool( Ptr ); g_free( Ptr ); Ptr = NULL; if( TRUE == OptionsCommandLine.BoolVerboseMode ) { config_print_data( p_Search ); g_print( "%s\n", *p_ValueBool ? "TRUE" : "FALSE" ); } *Conf.Larrbuf[ Cpt ] = '\0'; return( TRUE ); } } } return( FALSE ); } // LECTURE NUMERIQUE INT // gboolean config_read_value_atoi( gchar *p_Search, gint *p_ValueAtoi, gint p_Min, gint p_Max ) { gchar *Ptr = NULL; gint Cpt; for( Cpt = 0; Conf.Larrbuf[ Cpt ]; Cpt++ ) { // Si commentaire ou ligne vide alors ligne suivante if( *Conf.Larrbuf[ Cpt ] == '#' || *Conf.Larrbuf[ Cpt ] == '\0') continue; if( TRUE == config_new_strcmp( Conf.Larrbuf[ Cpt ], p_Search )) { if( NULL != ( Ptr = config_get_target( Conf.Larrbuf[ Cpt ] ))) { *p_ValueAtoi = atoi( Ptr ); g_free( Ptr ); Ptr = NULL; if( p_Min > -1 && *p_ValueAtoi < p_Min ) *p_ValueAtoi = p_Min; if( p_Max > -1 && *p_ValueAtoi > p_Max ) *p_ValueAtoi = p_Max; if( TRUE == OptionsCommandLine.BoolVerboseMode ) { config_print_data( p_Search ); g_print( "%d\n", *p_ValueAtoi ? *p_ValueAtoi : 0 ); } *Conf.Larrbuf[ Cpt ] = '\0'; return( TRUE ); } } } return( FALSE ); } // LECTURE NUMERIQUE INT // gboolean config_read_value_atol( gchar *p_Search, gulong *p_ValueAtoi, gint p_Min, gint p_Max ) { gchar *Ptr = NULL; gint Cpt; for( Cpt = 0; Conf.Larrbuf[ Cpt ]; Cpt++ ) { // Si commentaire ou ligne vide alors ligne suivante if( *Conf.Larrbuf[ Cpt ] == '#' || *Conf.Larrbuf[ Cpt ] == '\0') continue; if( TRUE == config_new_strcmp( Conf.Larrbuf[ Cpt ], p_Search )) { if( NULL != ( Ptr = config_get_target( Conf.Larrbuf[ Cpt ] ))) { *p_ValueAtoi = atol( Ptr ); g_free( Ptr ); Ptr = NULL; if( p_Min > -1 && *p_ValueAtoi < p_Min ) *p_ValueAtoi = p_Min; if( p_Max > -1 && *p_ValueAtoi > p_Max ) *p_ValueAtoi = p_Max; if( TRUE == OptionsCommandLine.BoolVerboseMode ) { config_print_data( p_Search ); g_print( "%lu / %lu ;-)\n", *p_ValueAtoi ? *p_ValueAtoi : 0, G_MAXULONG ); } *Conf.Larrbuf[ Cpt ] = '\0'; return( TRUE ); } } } return( FALSE ); } // LECTURE PATHNAME // gboolean config_read_value_path( gchar *p_Search, gchar **p_ValuePath, gchar *p_default ) { gchar *Ptr = NULL; gint Cpt; for( Cpt = 0; Conf.Larrbuf[ Cpt ]; Cpt++ ) { // Si commentaire ou ligne vide alors ligne suivante if( *Conf.Larrbuf[ Cpt ] == '#' || *Conf.Larrbuf[ Cpt ] == '\0') continue; if( TRUE == config_new_strcmp( Conf.Larrbuf[ Cpt ], p_Search )) { if( NULL != ( Ptr = config_get_target( Conf.Larrbuf[ Cpt ] ))) { if( TRUE == libutils_test_dir_exist( Ptr )) { *p_ValuePath = Ptr; } else { if( NULL == p_default ) *p_ValuePath = g_strdup( g_getenv( "HOME" )); else *p_ValuePath = g_strdup( p_default ); g_free( Ptr ); Ptr = NULL; } } else { if( NULL == p_default ) *p_ValuePath = g_strdup( g_getenv( "HOME" )); else *p_ValuePath = g_strdup( p_default ); } if( TRUE == OptionsCommandLine.BoolVerboseMode ) { config_print_data( p_Search ); g_print( "%s\n", *p_ValuePath ? *p_ValuePath : "" ); } *Conf.Larrbuf[ Cpt ] = '\0'; return( TRUE ); } } return( FALSE ); } // // gboolean config_read_value_str( gchar *p_Search, gchar **p_ValueStr ) { gchar *Ptr = NULL; gint Cpt; for( Cpt = 0; Conf.Larrbuf[ Cpt ]; Cpt++ ) { // Si commentaire ou ligne vide alors ligne suivante if( *Conf.Larrbuf[ Cpt ] == '#' || *Conf.Larrbuf[ Cpt ] == '\0') continue; if( TRUE == config_new_strcmp( Conf.Larrbuf[ Cpt ], p_Search )) { if( NULL != ( Ptr = config_get_target( Conf.Larrbuf[ Cpt ]))) { *p_ValueStr = g_strdup( Ptr ); g_free( Ptr ); Ptr = NULL; if( TRUE == OptionsCommandLine.BoolVerboseMode ) { config_print_data( p_Search ); g_print( "%s\n", *p_ValueStr ? *p_ValueStr : "" ); } *Conf.Larrbuf[ Cpt ] = '\0'; return( TRUE ); } } } return( FALSE ); } // // CALL: // config_read_value_tab( "HOURS_MONDAY", Config.HoursMonday, 4 ); // gboolean config_read_value_tab( gchar *p_Search, gint p_ValueTab[], gint p_max_tab ) { gchar *Ptr = NULL; gint Cpt; // IF NOT INIT IN TAB: // *(p_ValueTab +0) = 0; // *(p_ValueTab +1) = 0; // *(p_ValueTab +2) = 0; // *(p_ValueTab +3) = 0; for( Cpt = 0; Conf.Larrbuf[ Cpt ]; Cpt++ ) { // Si commentaire ou ligne vide alors ligne suivante if( *Conf.Larrbuf[ Cpt ] == '#' || *Conf.Larrbuf[ Cpt ] == '\0') continue; if( TRUE == config_new_strcmp( Conf.Larrbuf[ Cpt ], p_Search )) { if( TRUE == OptionsCommandLine.BoolVerboseMode ) config_print_data( p_Search ); if( NULL != (Ptr = strchr( Conf.Larrbuf[ Cpt ], '=' ))) { gchar **LarrbufLine = NULL; gint Indice; // POINTEUR SUR LA PREMIERE OCCURANCE Ptr ++; while( *Ptr == ' ' || *Ptr == '\t' ) Ptr ++; // *Ptr IS VALID ? if( *Ptr != '\0' ) { // HOURS_MONDAY = 435 690 720 975 // HOURS_SATURDAY = 0 0 0 0 LarrbufLine = g_strsplit( Ptr, " ", 0 ); // INDICE: 0 .. p_max_tab for( Indice = 0; LarrbufLine[ Indice ] && Indice < p_max_tab; Indice ++ ) { *(p_ValueTab +Indice) = (gint)atoi( LarrbufLine[ Indice ] ); if( TRUE == OptionsCommandLine.BoolVerboseMode ) { g_print ("%04d (%02d:%02d) ", *(p_ValueTab +Indice), *(p_ValueTab +Indice) / 60, *(p_ValueTab +Indice) % 60 ); } } g_strfreev( LarrbufLine ); LarrbufLine = NULL; } } if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print( "\n" ); *Conf.Larrbuf[ Cpt ] = '\0'; return( TRUE ); } } return( FALSE ); } // // void config_close_conf_file( void ) { if( NULL != Conf.Larrbuf ) { g_strfreev( Conf.Larrbuf ); Conf.Larrbuf = NULL; } } // // gboolean config_open_conf_file( gchar *p_PathNameConfig ) { size_t SizeFile; gchar *Buffer = NULL; FILE *fp = NULL; config_close_conf_file(); if(( SizeFile = libutils_get_size_file( p_PathNameConfig )) > 0 ) { if( NULL != ( fp = fopen( p_PathNameConfig, "r" ))) { Buffer = (gchar *)g_malloc0( sizeof(gchar) * ( SizeFile +10 )); SizeFile = fread( Buffer, SizeFile, 1, fp ); fclose( fp ); Conf.Larrbuf = g_strsplit( Buffer, "\n", 0 ); g_free( Buffer ); Buffer = NULL; return( TRUE ); } } return( FALSE ); } // // void config_verif_path (gchar **p_ValuePath, gchar *p_default) { if( NULL == *p_ValuePath ) { if( NULL == p_default ) *p_ValuePath = g_strdup( g_getenv( "HOME" )); else *p_ValuePath = g_strdup( p_default ); } } // // // LECTURE DU FICHIER DE CONFIGURATION // void config_read( void ) { // gchar *PathNameConfig = config_get_pathname (); // HOME /.config/xcfa/xcfa.conf gchar *PathNameConfig = xdg_search_config_xdg(); // HOME /.config/xcfa/xcfa.conf // Pour les restitutions par defaut g_memmove (&ConfigSaveToRest, &Config, sizeof (VAR_CONFIG)); if( TRUE == OptionsCommandLine.BoolVerboseMode ) { g_print ("\n------------------------------------------------------------------------\n" ); g_print ("%s\n", PathNameConfig); g_print ("------------------------------------------------------------------------\n" ); } // IF NOT EXIST CONFIG-FILE if( FALSE == libutils_test_file_exist( PathNameConfig )) { // GET PATHNAME gchar *StrDir = g_strdup( PathNameConfig ); // GET PATH gchar *Ptr = strrchr( StrDir, '/' ); // NOW StrDir IS PATH Ptr ++; *Ptr = '\0'; // CREATION DU DOSSIER g_mkdir_with_parents (StrDir, 0700); // FREE MEM g_free( StrDir ); StrDir = Ptr = NULL; // CREATE CONFIG-FILE config_save (); } if( TRUE == config_open_conf_file( PathNameConfig )) { // READ ATOL // config_read_value_atol( "USES_OF_XCFA", &Config.UsesOfXcfa, 0, -1 ); if( Config.UsesOfXcfa < G_MAXULONG ) Config.UsesOfXcfa ++; else Config.UsesOfXcfa = 0; // READ ATOI // config_read_value_atoi( "WIN_POS_X", &Config.WinPos_X, 0, -1 ); config_read_value_atoi( "WIN_POS_Y", &Config.WinPos_Y, 0, -1 ); config_read_value_atoi( "WIN_WIDTH", &Config.WinWidth, -1, -1 ); config_read_value_atoi( "WIN_HEIGHT", &Config.WinHeight, -1, -1 ); config_read_value_atoi( "NICE", &Config.Nice, 0, 19 ); config_read_value_atoi( "NOTEBOOK_GENERAL", &Config.NotebookGeneral, -1, -1 ); config_read_value_atoi( "NOTEBOOK_EXPANDER_CD", &Config.NotebookExpanderCd, -1, -1 ); config_read_value_atoi( "NOTEBOOK_FILE", &Config.NotebookFile, -1, -1 ); config_read_value_atoi( "NOTEBOOK_OPTIONS", &Config.NotebookOptions, -1, -1 ); config_read_value_atoi( "NOTEBOOK_APP_EXTERNS", &Config.NotebookAppExterns, -1, -1 ); config_read_value_atoi( "EXTRACT_CD_WITH", &Config.ExtractCdWith, EXTRACT_WITH_CDPARANOIA, EXTRACT_WITH_CDDA2WAV ); config_read_value_atoi( "OPTIONS_BITRATE_LAME", &Config.BitrateLameIndice, 0, 3 ); config_read_value_atoi( "OPTIONS_VALUE_ABR_LAME", &Config.TabBitrateLame[0], 0, 13 ); config_read_value_atoi( "OPTIONS_VALUE_CBR_LAME", &Config.TabBitrateLame[1], 0, 14 ); config_read_value_atoi( "OPTIONS_VALUE_VBR_LAME", &Config.TabBitrateLame[2], 0, 14 ); config_read_value_atoi( "OPTIONS_VALUE_VBR_NEW_LAME", &Config.TabBitrateLame[3], 0, 15 ); config_read_value_atoi( "OPTIONS_MODE_ABR_LAME", &Config.TabModeLame[0], 0, 13 ); config_read_value_atoi( "OPTIONS_MODE_CBR_LAME", &Config.TabModeLame[1], 0, 14 ); config_read_value_atoi( "OPTIONS_MODE_VBR_LAME", &Config.TabModeLame[2], 0, 14 ); config_read_value_atoi( "OPTIONS_MODE_VBR_NEW_LAME", &Config.TabModeLame[3], 0, 15 ); config_read_value_atoi( "OPTIONS_BITRATE_OGGENC", &Config.BitrateOggenc, 0, 22 ); config_read_value_atoi( "OPTIONS_MANAGED_OGGENC", &Config.ManagedOggenc, 0, 1 ); config_read_value_atoi( "OPTIONS_DOWNMIX_OGGENC", &Config.DownmixOggenc, 0, 1 ); config_read_value_atoi( "OPTIONS_LEVEL_FLAC", &Config.CompressionLevelFlac, 0, 8 ); config_read_value_atoi( "OPTIONS_LEVEL_APE_MAC", &Config.CompressionLevelApeMac, 0, 4 ); config_read_value_atoi( "OPTIONS_COMPRESSION_WAVPACK", &Config.CompressionWavpack, 0, 3 ); config_read_value_atoi( "OPTIONS_SOUND_WAVPACK", &Config.SoundWavpack, 0, 2 ); config_read_value_atoi( "OPTIONS_MODE_HYBRIDE_WAVPACK", &Config.ModeHybrideWavpack, 0, 4 ); config_read_value_atoi( "OPTIONS_CORRECTION_WAVPACK", &Config.CorrectionFileWavpack, 0, 2 ); config_read_value_atoi( "OPTIONS_COMPRESSION_MAXI_WAVPACK", &Config.CompressionMaximumWavpack, 0, 2 ); config_read_value_atoi( "OPTIONS_SIGNATURE_WAVPACK", &Config.SignatureMd5Wavpack, 0, 2 ); config_read_value_atoi( "OPTIONS_EXTRA_ENCODING_WAVPACK", &Config.ExtraEncodingWavpack, 0, 6 ); config_read_value_atoi( "OPTIONS_QUALITY_MPPENC", &Config.QualityMppenc, 0, 6 ); config_read_value_atoi( "OPTIONS_CONTENEUR_FAAC", &Config.ConteneurFacc, 0, 2 ); config_read_value_atoi( "OPTIONS_ABRVBR_FAAC", &Config.AbrVbrFacc, 0, 2 ); config_read_value_atoi( "OPTIONS_ABR_INDICE_FAAC", &Config.AbrFaccIndice, 0, 5 ); config_read_value_atoi( "OPTIONS_VBR_INDICE_FAAC", &Config.VbrFaccIndice, 0, 13 ); config_read_value_atoi( "OPTIONS_CHOICE_MONO_AACPLUSENC", &Config.ChoiceMonoAacplusenc, 0, 7 ); config_read_value_atoi( "OPTIONS_CHOICE_STEREO_AACPLUSENC", &Config.ChoiceStereoAacplusenc, 0, 4 ); config_read_value_atoi( "IND_COMBO_DEST_FILE_ALL", &Config.TabIndiceComboDestFile[0], 0, 2 ); config_read_value_atoi( "IND_COMBO_DEST_FILE_WAV", &Config.TabIndiceComboDestFile[1], 0, 2 ); config_read_value_atoi( "IND_COMBO_DEST_FILE_MP3OGG", &Config.TabIndiceComboDestFile[2], 0, 2 ); config_read_value_atoi( "IND_COMBO_DEST_FILE_TAGS", &Config.TabIndiceComboDestFile[3], 0, 2 ); config_read_value_atoi( "SERVER_FREE_CDDB", &Config.ServeurCddb, 0, 2 ); config_read_value_atoi( "NUM_SELECT_COMBOBOX_DVD", &Config.NumSelectComboBoxDvd, 0, 10 ); config_read_value_atoi( "NUM_SELECT_COMBOBOX_CD", &Config.NumSelectComboBoxCd, 0, 10 ); // READ BOOL // config_read_value_bool( "TAGS_ARTISTE", &Config.BoolArtistTag ); config_read_value_bool( "TAGS_TITLE", &Config.BoolTitleTag ); config_read_value_bool( "TAGS_ALBUM", &Config.BoolAlbumTag ); config_read_value_bool( "TAGS_NUMERATE", &Config.BoolNumerateTag ); config_read_value_bool( "TAGS_GENRE", &Config.BoolGenreTag ); config_read_value_bool( "TAGS_YEAR", &Config.BoolYearTag ); config_read_value_bool( "TAGS_COMMENT", &Config.BoolCommentTag ); config_read_value_bool( "BOOL_ETAT_EXPANDER_CD", &Config.BoolEtatExpanderCd ); config_read_value_bool( "BOOL_PLAY_MUSIC_END_CONVERT", &Config.BoolCheckbuttonEndOfConvert ); config_read_value_bool( "BOOL_LOG_CDPARANOIA_MODE_EXPERT", &Config.BoolLogCdparanoiaModeExpert); // READ PATH // config_read_value_path( "PATH_DEST_FILE_ALL", &Config.PathDestinationFileAll, NULL ); config_read_value_path( "PATH_DEST_FILE_WAV", &Config.PathDestinationFileWav, NULL ); config_read_value_path( "PATH_DEST_FILE_MP3OGG", &Config.PathDestinationFileMp3Ogg, NULL ); config_read_value_path( "PATH_DEST_FILE_TAGS", &Config.PathDestinationFileTags, NULL ); config_read_value_path( "PATH_DEST_DVD", &Config.PathDestinationDVD, NULL ); config_read_value_path( "PATH_CHOICE_FILE_DVD", &Config.PathChoiceFileDVD, NULL ); config_read_value_path( "PATH_DEST_CD", &Config.PathDestinationCD, NULL ); config_read_value_path( "PATH_CHOICE_FILE_CD", &Config.PathChoiceFileCD, NULL ); config_read_value_path( "PATHNAME_TMP", &Config.PathnameTMP, "/tmp" ); config_read_value_path( "PATHNAME_STOCKE_IMAGES_POCHETTE", &Config.PathStockeImagesPochette, NULL ); config_read_value_path( "PATHNAME_DEST_FILE_POSTSCRIPT", &Config.PathDestFilePostScript, NULL ); config_read_value_path( "PATHNAME_LOAD_IMAGES", &Config.PathLoadImages, NULL ); config_read_value_path( "PATH_LOAD_FILE_ALL", &Config.PathLoadFileAll, NULL ); config_read_value_path( "PATH_LOAD_FILE_WAV", &Config.PathLoadFileWav, NULL ); config_read_value_path( "PATH_LOAD_FILE_MP3OGG", &Config.PathLoadFileMp3Ogg, NULL ); config_read_value_path( "PATH_LOAD_FILE_TAGS", &Config.PathLoadFileTags, NULL ); config_read_value_path( "PATH_DEST_SPLIT", &Config.PathDestinationSplit, NULL ); config_read_value_path( "PATH_LOAD_SPLIT", &Config.PathLoadSplit, NULL ); config_read_value_path( "PATH_LOAD_IMG", &Config.PathLoadImg, NULL ); config_read_value_path( "PATH_SAVE_IMG", &Config.PathSaveImg, NULL ); config_read_value_path( "PATH_MUSIC_END_CONVERT", &Config.PathMusicFileEndOfConvert, NULL ); // READ STRING // config_read_value_str( "STRING_EXPANDER_LAME", &Config.StringExpanderLame ); config_read_value_str( "STRING_EXPANDER_OGGENC", &Config.StringExpanderOggenc ); config_read_value_str( "STRING_EXPANDER_FLAC", &Config.StringExpanderFlac ); config_read_value_str( "STRING_EXPANDER_FAAC", &Config.StringExpanderFaac ); config_read_value_str( "STRING_EXPANDER_MPPENC", &Config.StringExpanderMppenc ); config_read_value_str( "STRING_EXPANDER_MAC", &Config.StringExpanderMac ); config_read_value_str( "STRING_EXPANDER_WAVPACK", &Config.StringExpanderWavpack ); config_read_value_str( "STRING_NAME_FILE_M3U_XSPF", &Config.StringNameFile_m3u_xspf ); config_read_value_str( "TEMPLATE_TITLE_CDAUDIO", &Config.Templates_title_cdaudio ); config_read_value_str( "TEMPLATE_REP_CDAUDIO", &Config.Templates_rep_cdaudio ); config_read_value_str( "STRING_NAME_NAVIGATEUR", &Config.StringNameNavigateur ); config_read_value_str( "STRING_PARAM_NAME_NAVIGATEUR", &Config.StringParamNameNavigateur ); config_read_value_str( "STRING_NAME_LECTEUR_POSTSCRIPT", &Config.StringNameLecteurPostScript ); config_read_value_str( "STRING_NAME_LECTEUR_AUDIO", &Config.StringNameLecteurAudio ); config_read_value_str( "STRING_PARAM_NAME_LECTEUR_AUDIO", &Config.StringParamNameLecteurAudio ); config_read_value_str( "STRING_BOOL_FIELD_IS_VISIBLE", &Config.StringBoolFieldsIsVisible ); config_read_value_str( "STRING_POS_FIELD_IS_NAME", &Config.StringPosFieldsName ); config_read_value_str( "STRING_ENTRY_CDDP_SERVER", &Config.entry_cddp_server ); config_read_value_str( "STRING_ENTRY_PROXY_SERVER", &Config.entry_proxy_server ); config_read_value_str( "STRING_ENTRY_PROXY_PORT", &Config.entry_proxy_port ); config_read_value_str( "NAME_IMG", &Config.NameImg ); config_read_value_str( "FILE_NAME_MUSIC_END_CONVERT", &Config.FileMusicFileEndOfConvert ); config_read_value_str( "STRING_COMMENT_CD", &Config.StringCommentCD ); config_close_conf_file(); config_verif_path( &Config.PathDestinationFileAll, NULL ); config_verif_path( &Config.PathDestinationFileWav, NULL ); config_verif_path( &Config.PathDestinationFileMp3Ogg, NULL ); config_verif_path( &Config.PathDestinationFileTags, NULL ); config_verif_path( &Config.PathDestinationDVD, NULL ); config_verif_path( &Config.PathChoiceFileDVD, NULL ); config_verif_path( &Config.PathDestinationCD, NULL ); config_verif_path( &Config.PathChoiceFileCD, NULL ); config_verif_path( &Config.PathnameTMP, "/tmp" ); config_verif_path( &Config.PathStockeImagesPochette, NULL ); config_verif_path( &Config.PathDestFilePostScript, NULL ); config_verif_path( &Config.PathLoadImages, NULL ); config_verif_path( &Config.PathLoadFileAll, NULL ); config_verif_path( &Config.PathLoadFileWav, NULL ); config_verif_path( &Config.PathLoadFileMp3Ogg, NULL ); config_verif_path( &Config.PathLoadFileTags, NULL ); config_verif_path( &Config.PathDestinationSplit, NULL ); config_verif_path( &Config.PathLoadSplit, NULL ); config_verif_path( &Config.PathLoadImg, NULL ); config_verif_path( &Config.PathSaveImg, NULL ); config_verif_path( &Config.PathMusicFileEndOfConvert, NULL ); } if( NULL != PathNameConfig ) { g_free( PathNameConfig ); PathNameConfig = NULL; } } // SAUVEGARDE DU FICHIER DE CONFIGURATION // void config_save( void ) { // gchar *PathNameConfig = config_get_pathname(); // HOME /.config/xcfa/xcfa.conf gchar *PathNameConfig = xdg_search_config_xdg(); // HOME /.config/xcfa/xcfa.conf FILE *fp; gchar *Ptr = NULL; if( NULL != ( fp = fopen( PathNameConfig, "w" ))) { fprintf( fp, "############################################################################\n" ); fprintf( fp, "## Fichier de configuration pour : %s\n", PACKAGE_STRING); fprintf( fp, "##--------------------------------------------------------------------------\n" ); fprintf( fp, "## File of configuration to : %s\n", PACKAGE_STRING); fprintf( fp, "############################################################################\n" ); fprintf( fp, "\n" ); fprintf( fp, "USES_OF_XCFA = %lu\n",Config.UsesOfXcfa ); fprintf( fp, "WIN_POS_X = %d\n", Config.WinPos_X ); fprintf( fp, "WIN_POS_Y = %d\n", Config.WinPos_Y ); fprintf( fp, "WIN_WIDTH = %d\n", Config.WinWidth ); fprintf( fp, "WIN_HEIGHT = %d\n", Config.WinHeight ); fprintf( fp, "NICE = %d\n", Config.Nice ); fprintf( fp, "IND_COMBO_DEST_FILE_ALL = %d\n", Config.TabIndiceComboDestFile[0] ); fprintf( fp, "IND_COMBO_DEST_FILE_WAV = %d\n", Config.TabIndiceComboDestFile[1] ); fprintf( fp, "IND_COMBO_DEST_FILE_MP3OGG = %d\n", Config.TabIndiceComboDestFile[2] ); fprintf( fp, "IND_COMBO_DEST_FILE_TAGS = %d\n", Config.TabIndiceComboDestFile[3] ); fprintf( fp, "PATH_LOAD_FILE_ALL = %s\n", Config.PathLoadFileAll != NULL ? Config.PathLoadFileAll : "" ); fprintf( fp, "PATH_LOAD_FILE_WAV = %s\n", Config.PathLoadFileWav != NULL ? Config.PathLoadFileWav : "" ); fprintf( fp, "PATH_LOAD_FILE_MP3OGG = %s\n", Config.PathLoadFileMp3Ogg != NULL ? Config.PathLoadFileMp3Ogg : "" ); fprintf( fp, "PATH_LOAD_FILE_TAGS = %s\n", Config.PathLoadFileTags != NULL ? Config.PathLoadFileTags : "" ); fprintf( fp, "PATH_DEST_FILE_ALL = %s\n", Config.PathDestinationFileAll != NULL ? Config.PathDestinationFileAll : "" ); fprintf( fp, "PATH_DEST_FILE_WAV = %s\n", Config.PathDestinationFileWav != NULL ? Config.PathDestinationFileWav : "" ); fprintf( fp, "PATH_DEST_FILE_MP3OGG = %s\n", Config.PathDestinationFileMp3Ogg != NULL ? Config.PathDestinationFileMp3Ogg : "" ); fprintf( fp, "PATH_DEST_FILE_TAGS = %s\n", Config.PathDestinationFileTags != NULL ? Config.PathDestinationFileTags : "" ); fprintf( fp, "PATH_DEST_DVD = %s\n", Config.PathDestinationDVD != NULL ? Config.PathDestinationDVD : "" ); fprintf( fp, "PATH_CHOICE_FILE_DVD = %s\n", Config.PathChoiceFileDVD != NULL ? Config.PathChoiceFileDVD : "" ); fprintf( fp, "PATH_DEST_CD = %s\n", Config.PathDestinationCD != NULL ? Config.PathDestinationCD : "" ); fprintf( fp, "PATH_CHOICE_FILE_CD = %s\n", Config.PathChoiceFileCD != NULL ? Config.PathChoiceFileCD : "" ); fprintf( fp, "PATH_DEST_SPLIT = %s\n", Config.PathDestinationSplit != NULL ? Config.PathDestinationSplit : "" ); fprintf( fp, "PATH_LOAD_SPLIT = %s\n", Config.PathLoadSplit != NULL ? Config.PathLoadSplit : "" ); fprintf( fp, "PATHNAME_TMP = %s\n", Config.PathnameTMP != NULL ? Config.PathnameTMP : "" ); fprintf( fp, "PATHNAME_STOCKE_IMAGES_POCHETTE = %s\n", Config.PathStockeImagesPochette != NULL ? Config.PathStockeImagesPochette : "" ); fprintf( fp, "PATHNAME_DEST_FILE_POSTSCRIPT = %s\n", Config.PathDestFilePostScript != NULL ? Config.PathDestFilePostScript : "" ); fprintf( fp, "PATHNAME_LOAD_IMAGES = %s\n", Config.PathLoadImages != NULL ? Config.PathLoadImages : "" ); fprintf( fp, "NOTEBOOK_GENERAL = %d\n", Config.NotebookGeneral ); fprintf( fp, "NOTEBOOK_EXPANDER_CD = %d\n", Config.NotebookExpanderCd ); fprintf( fp, "NOTEBOOK_FILE = %d\n", Config.NotebookFile ); fprintf( fp, "NOTEBOOK_OPTIONS = %d\n", Config.NotebookOptions ); fprintf( fp, "NOTEBOOK_APP_EXTERNS = %d\n", Config.NotebookAppExterns ); fprintf( fp, "EXTRACT_CD_WITH = %d\n", Config.ExtractCdWith ); fprintf( fp, "OPTIONS_BITRATE_LAME = %d\n", Config.BitrateLameIndice ); fprintf( fp, "OPTIONS_VALUE_ABR_LAME = %d\n", Config.TabBitrateLame[0] ); fprintf( fp, "OPTIONS_VALUE_CBR_LAME = %d\n", Config.TabBitrateLame[1] ); fprintf( fp, "OPTIONS_VALUE_VBR_LAME = %d\n", Config.TabBitrateLame[2] ); fprintf( fp, "OPTIONS_VALUE_VBR_NEW_LAME = %d\n", Config.TabBitrateLame[3] ); fprintf( fp, "OPTIONS_MODE_ABR_LAME = %d\n", Config.TabModeLame[0] ); fprintf( fp, "OPTIONS_MODE_CBR_LAME = %d\n", Config.TabModeLame[1] ); fprintf( fp, "OPTIONS_MODE_VBR_LAME = %d\n", Config.TabModeLame[2] ); fprintf( fp, "OPTIONS_MODE_VBR_NEW_LAME = %d\n", Config.TabModeLame[3] ); fprintf( fp, "OPTIONS_BITRATE_OGGENC = %d\n", Config.BitrateOggenc ); fprintf( fp, "OPTIONS_MANAGED_OGGENC = %d\n", Config.ManagedOggenc ); fprintf( fp, "OPTIONS_DOWNMIX_OGGENC = %d\n", Config.DownmixOggenc ); fprintf( fp, "OPTIONS_LEVEL_FLAC = %d\n", Config.CompressionLevelFlac ); fprintf( fp, "OPTIONS_LEVEL_APE_MAC = %d\n", Config.CompressionLevelApeMac ); fprintf( fp, "OPTIONS_COMPRESSION_WAVPACK = %d\n", Config.CompressionWavpack ); fprintf( fp, "OPTIONS_SOUND_WAVPACK = %d\n", Config.SoundWavpack ); fprintf( fp, "OPTIONS_MODE_HYBRIDE_WAVPACK = %d\n", Config.ModeHybrideWavpack ); fprintf( fp, "OPTIONS_CORRECTION_WAVPACK = %d\n", Config.CorrectionFileWavpack ); fprintf( fp, "OPTIONS_COMPRESSION_MAXI_WAVPACK = %d\n", Config.CompressionMaximumWavpack ); fprintf( fp, "OPTIONS_SIGNATURE_WAVPACK = %d\n", Config.SignatureMd5Wavpack ); fprintf( fp, "OPTIONS_EXTRA_ENCODING_WAVPACK = %d\n", Config.ExtraEncodingWavpack ); fprintf( fp, "OPTIONS_QUALITY_MPPENC = %d\n", Config.QualityMppenc ); fprintf( fp, "OPTIONS_CONTENEUR_FAAC = %d\n", Config.ConteneurFacc ); fprintf( fp, "OPTIONS_ABRVBR_FAAC = %d\n", Config.AbrVbrFacc ); fprintf( fp, "OPTIONS_ABR_INDICE_FAAC = %d\n", Config.AbrFaccIndice ); fprintf( fp, "OPTIONS_VBR_INDICE_FAAC = %d\n", Config.VbrFaccIndice ); fprintf( fp, "OPTIONS_CHOICE_MONO_AACPLUSENC = %d\n", Config.ChoiceMonoAacplusenc ); fprintf( fp, "OPTIONS_CHOICE_STEREO_AACPLUSENC = %d\n", Config.ChoiceStereoAacplusenc ); fprintf( fp, "TAGS_ARTISTE = %s\n", Config.BoolArtistTag == TRUE ? "TRUE" : "FALSE" ); fprintf( fp, "TAGS_TITLE = %s\n", Config.BoolTitleTag == TRUE ? "TRUE" : "FALSE" ); fprintf( fp, "TAGS_ALBUM = %s\n", Config.BoolAlbumTag == TRUE ? "TRUE" : "FALSE" ); fprintf( fp, "TAGS_NUMERATE = %s\n", Config.BoolNumerateTag == TRUE ? "TRUE" : "FALSE" ); fprintf( fp, "TAGS_GENRE = %s\n", Config.BoolGenreTag == TRUE ? "TRUE" : "FALSE" ); fprintf( fp, "TAGS_YEAR = %s\n", Config.BoolYearTag == TRUE ? "TRUE" : "FALSE" ); fprintf( fp, "TAGS_COMMENT = %s\n", Config.BoolCommentTag == TRUE ? "TRUE" : "FALSE" ); fprintf( fp, "BOOL_ETAT_EXPANDER_CD = %s\n", Config.BoolEtatExpanderCd == TRUE ? "TRUE" : "FALSE" ); fprintf( fp, "STRING_EXPANDER_LAME = %s\n", Config.StringExpanderLame ? Config.StringExpanderLame : "" ); fprintf( fp, "STRING_EXPANDER_OGGENC = %s\n", Config.StringExpanderOggenc ? Config.StringExpanderOggenc : "" ); fprintf( fp, "STRING_EXPANDER_FLAC = %s\n", Config.StringExpanderFlac ? Config.StringExpanderFlac : "" ); fprintf( fp, "STRING_EXPANDER_FAAC = %s\n", Config.StringExpanderFaac ? Config.StringExpanderFaac : "" ); fprintf( fp, "STRING_EXPANDER_MPPENC = %s\n", Config.StringExpanderMppenc ? Config.StringExpanderMppenc : "" ); fprintf( fp, "STRING_EXPANDER_MAC = %s\n", Config.StringExpanderMac ? Config.StringExpanderMac : "" ); fprintf( fp, "STRING_EXPANDER_WAVPACK = %s\n", Config.StringExpanderWavpack ? Config.StringExpanderWavpack : "" ); fprintf( fp, "SERVER_FREE_CDDB = %d\n", Config.ServeurCddb ); fprintf( fp, "STRING_ENTRY_CDDP_SERVER = %s\n", Config.entry_cddp_server != NULL ? Config.entry_cddp_server : "freedb.org" ); fprintf( fp, "STRING_ENTRY_PROXY_SERVER = %s\n", Config.entry_proxy_server != NULL ? Config.entry_proxy_server : "10.0.0.1" ); fprintf( fp, "STRING_ENTRY_PROXY_PORT = %s\n", Config.entry_proxy_port != NULL ? Config.entry_proxy_port : "8080" ); fprintf( fp, "STRING_NAME_FILE_M3U_XSPF = %s\n", Config.StringNameFile_m3u_xspf ? Config.StringNameFile_m3u_xspf : "" ); fprintf( fp, "TEMPLATE_TITLE_CDAUDIO = " ); Ptr = Config.Templates_title_cdaudio; if (Ptr == NULL) { fprintf( fp, "%%c %%d" ); } else { while (Ptr && *Ptr) { if (*Ptr == '%') fprintf( fp, "%%" ); else fprintf( fp, "%c", *Ptr ); Ptr++; } } fprintf( fp, "\n" ); fprintf( fp, "TEMPLATE_REP_CDAUDIO = " ); Ptr = Config.Templates_rep_cdaudio; if( NULL == Ptr ) { fprintf( fp, "%%b" ); } else { while( Ptr && *Ptr ) { if( *Ptr == '%') fprintf( fp, "%%" ); else fprintf( fp, "%c", *Ptr ); Ptr++; } } fprintf( fp, "\n" ); fprintf( fp, "STRING_NAME_NAVIGATEUR = %s\n", Config.StringNameNavigateur ? Config.StringNameNavigateur : "" ); fprintf( fp, "STRING_PARAM_NAME_NAVIGATEUR = %s\n", Config.StringParamNameNavigateur ? Config.StringParamNameNavigateur : "" ); fprintf( fp, "STRING_NAME_LECTEUR_POSTSCRIPT = %s\n", Config.StringNameLecteurPostScript ? Config.StringNameLecteurPostScript : "" ); fprintf( fp, "STRING_NAME_LECTEUR_AUDIO = %s\n", Config.StringNameLecteurAudio ? Config.StringNameLecteurAudio : "" ); fprintf( fp, "STRING_PARAM_NAME_LECTEUR_AUDIO = %s\n", Config.StringParamNameLecteurAudio ? Config.StringParamNameLecteurAudio : "" ); fprintf( fp, "STRING_BOOL_FIELD_IS_VISIBLE = %s\n", Config.StringBoolFieldsIsVisible ? Config.StringBoolFieldsIsVisible : "" ); fprintf( fp, "STRING_POS_FIELD_IS_NAME = %s\n", Config.StringPosFieldsName ? Config.StringPosFieldsName : "" ); fprintf( fp, "NUM_SELECT_COMBOBOX_DVD = %d\n", Config.NumSelectComboBoxDvd ); fprintf( fp, "NUM_SELECT_COMBOBOX_CD = %d\n", Config.NumSelectComboBoxCd ); fprintf( fp, "NAME_IMG = %s\n", Config.NameImg != NULL ? Config.NameImg : "" ); fprintf( fp, "PATH_LOAD_IMG = %s\n", Config.PathLoadImg != NULL ? Config.PathLoadImg : "" ); fprintf( fp, "PATH_SAVE_IMG = %s\n", Config.PathSaveImg != NULL ? Config.PathSaveImg : "" ); fprintf( fp, "BOOL_PLAY_MUSIC_END_CONVERT = %s\n", Config.BoolCheckbuttonEndOfConvert == TRUE ? "TRUE" : "FALSE" ); fprintf( fp, "PATH_MUSIC_END_CONVERT = %s\n", Config.PathMusicFileEndOfConvert != NULL ? Config.PathMusicFileEndOfConvert : "" ); fprintf( fp, "FILE_NAME_MUSIC_END_CONVERT = %s\n", Config.FileMusicFileEndOfConvert != NULL ? Config.FileMusicFileEndOfConvert : "" ); fprintf( fp, "STRING_COMMENT_CD = %s\n", Config.StringCommentCD != NULL ? Config.StringCommentCD : "" ); fprintf( fp, "BOOL_LOG_CDPARANOIA_MODE_EXPERT = %s\n", Config.BoolLogCdparanoiaModeExpert == TRUE ? "TRUE" : "FALSE" ); // TODO: RESERVED // g_sprintf( String, "%08lx", ret ); // long atol( const char *nptr ); // La fonction atol() convertit le début de la chaîne pointée par nptr en entier de type long // The atol() function converts the initial portion of the string pointed to by nptr to long fprintf( fp, "\n" ); fclose( fp ); } if( NULL != PathNameConfig ) { g_free( PathNameConfig ); PathNameConfig = NULL; } } // LIBERATION MEMOIRE // void config_remove( void ) { g_free( Config.PathLoadFileAll ); Config.PathLoadFileAll = NULL; g_free( Config.PathLoadFileWav ); Config.PathLoadFileWav = NULL; g_free( Config.PathLoadFileMp3Ogg ); Config.PathLoadFileMp3Ogg = NULL; g_free( Config.PathLoadFileTags ); Config.PathLoadFileTags = NULL; g_free( Config.PathDestinationFileAll ); Config.PathDestinationFileAll = NULL; g_free( Config.PathDestinationFileWav ); Config.PathDestinationFileWav = NULL; g_free( Config.PathDestinationFileMp3Ogg ); Config.PathDestinationFileMp3Ogg = NULL; g_free( Config.PathDestinationFileTags ); Config.PathDestinationFileTags = NULL; g_free( Config.PathDestinationDVD ); Config.PathDestinationDVD = NULL; g_free( Config.PathChoiceFileDVD ); Config.PathChoiceFileDVD = NULL; g_free( Config.PathDestinationCD ); Config.PathDestinationCD = NULL; g_free( Config.PathChoiceFileCD ); Config.PathChoiceFileCD = NULL; g_free( Config.PathDestinationSplit ); Config.PathDestinationSplit = NULL; g_free( Config.PathLoadSplit ); Config.PathLoadSplit = NULL; g_free( Config.PathnameTMP ); Config.PathnameTMP = NULL; g_free( Config.PathStockeImagesPochette ); Config.PathStockeImagesPochette = NULL; g_free( Config.PathDestFilePostScript ); Config.PathDestFilePostScript = NULL; g_free( Config.PathLoadImages ); Config.PathLoadImages = NULL; g_free( Config.StringExpanderLame ); Config.StringExpanderLame = NULL; g_free( Config.StringExpanderOggenc ); Config.StringExpanderOggenc = NULL; g_free( Config.StringExpanderFlac ); Config.StringExpanderFlac = NULL; g_free( Config.StringExpanderFaac ); Config.StringExpanderFaac = NULL; g_free( Config.StringExpanderMppenc ); Config.StringExpanderMppenc = NULL; g_free( Config.StringExpanderMac ); Config.StringExpanderMac = NULL; g_free( Config.StringExpanderWavpack ); Config.StringExpanderWavpack = NULL; g_free( Config.StringNameFile_m3u_xspf ); Config.StringNameFile_m3u_xspf = NULL; g_free( Config.Templates_title_cdaudio ); Config.Templates_title_cdaudio = NULL; g_free( Config.Templates_rep_cdaudio ); Config.Templates_rep_cdaudio = NULL; g_free( Config.StringNameNavigateur ); Config.StringNameNavigateur = NULL; g_free( Config.StringParamNameNavigateur ); Config.StringParamNameNavigateur = NULL; g_free( Config.StringNameLecteurPostScript ); Config.StringNameLecteurPostScript = NULL; g_free( Config.StringNameLecteurAudio ); Config.StringNameLecteurAudio = NULL; g_free( Config.StringParamNameLecteurAudio ); Config.StringParamNameLecteurAudio = NULL; g_free( Config.StringBoolFieldsIsVisible ); Config.StringBoolFieldsIsVisible = NULL; g_free( Config.StringPosFieldsName ); Config.StringPosFieldsName = NULL; g_free( Config.entry_cddp_server ); Config.entry_cddp_server = NULL; g_free( Config.entry_proxy_server ); Config.entry_proxy_server = NULL; g_free( Config.entry_proxy_port ); Config.entry_proxy_port = NULL; g_free( Config.NameImg ); Config.NameImg = NULL; g_free( Config.PathLoadImg ); Config.PathLoadImg = NULL; g_free( Config.PathSaveImg ); Config.PathSaveImg = NULL; g_free( Config.PathMusicFileEndOfConvert ); Config.PathMusicFileEndOfConvert = NULL; g_free( Config.FileMusicFileEndOfConvert ); Config.FileMusicFileEndOfConvert = NULL; g_free( Config.StringCommentCD ); Config.StringCommentCD = NULL; } xcfa-4.3.6/src/process.h0000644000175000017500000000206012122563437012007 00000000000000 /* * file : process.h * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifndef process_h #define process_h 1 #define XCFA_FILE_LOAD "/tmp/xcfa_file_load.txt" void process_goto_timeout (void); void process_set_list_bacon( gchar *p_Name ); #endif xcfa-4.3.6/src/proc.h0000644000175000017500000000206012122563437011274 00000000000000 /* * file : proc.h * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifndef proc_h #define proc_h 1 GList *proc_get_proc_init_cdrominfo (void); GList *proc_remove_glist_cdrominfo (GList *list); void proc_print_glist_cdrominfo (GList *list); #endif xcfa-4.3.6/src/global.h0000644000175000017500000001200212122563437011566 00000000000000 /* * file : global.h * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifndef global_h #define global_h 1 #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include extern GtkBuilder *GtkXcfaProjet; extern GtkWidget *WindMain; extern GtkWidget *AdrLabelStatusbarGlobal; #ifdef ENABLE_NLS #include #define gettext_noop(x) (x) #define _(String) gettext (String) #endif #define GLADE_GET_OBJECT(OBJ) gtk_builder_get_object (GtkXcfaProjet, OBJ) // // --------------------------------------------------------------------------- // NOTEBOOK // --------------------------------------------------------------------------- // // notebook_general #define NOTEBOOK_DVD_AUDIO 0 #define NOTEBOOK_CD_AUDIO 1 // notebook_expander_cd #define NOTEBOOK_CD_AUDIO_TAGS 0 #define NOTEBOOK_CD_AUDIO_TITRE_CD 1 #define NOTEBOOK_CD_AUDIO_CUE 2 #define NOTEBOOK_FICHIERS 2 // notebook_in_file #define NOTEBOOK_FICHIERS_CONVERSION 0 #define NOTEBOOK_FICHIERS_WAV 1 #define NOTEBOOK_FICHIERS_MP3OGG 2 #define NOTEBOOK_FICHIERS_TAGS 3 #define NOTEBOOK_SPLIT 3 #define NOTEBOOK_POCHETTE 4 #define NOTEBOOK_OPTIONS 5 // notebook_options #define NOTEBOOK_OPTIONS_GENERAL 0 #define NOTEBOOK_OPTIONS_CD_AUDIO 1 #define NOTEBOOK_OPTIONS_LAME 2 #define NOTEBOOK_OPTIONS_OGGENC 3 #define NOTEBOOK_OPTIONS_FLAC 4 #define NOTEBOOK_OPTIONS_MAC 5 #define NOTEBOOK_OPTIONS_WAVPACK 6 #define NOTEBOOK_OPTIONS_MUSEPACK 7 #define NOTEBOOK_OPTIONS_FAAC 8 #define NOTEBOOK_OPTIONS_AACPLUSENC 9 #define NOTEBOOK_OPTIONS_EXPORT_TAGS 10 #define NOTEBOOK_PRGEXTERNES 6 // notebook_app_externes #define NOTEBOOK_OPTIONS_PRGEXTERNES 0 #define NOTEBOOK_OPTIONS_EXTRA 1 // // --------------------------------------------------------------------------- // DEBUG // --------------------------------------------------------------------------- // #define PRINT_FUNC_LF() if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("%s :: %s (line = %d)\n", __FILE__, __FUNCTION__, __LINE__) #define PRINTINT(str,num) g_print ("%s = %d\n", str, num) #define PRINTBOOL(str,bool) g_print ("%s = %s\n", str, bool == TRUE ? "TRUE" : "FALSE") #define PRINT(str) if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("%s :: %s(line = %d)\n\t%s\n", __FILE__, __FUNCTION__, __LINE__, str) #define VERBOSE(str) if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print( "%s", str ); // // --------------------------------------------------------------------------- // SUPPORT // --------------------------------------------------------------------------- // #ifndef GLADE_HOOKUP_OBJECT #define GLADE_HOOKUP_OBJECT(component,widget,name) \ g_object_set_data_full (G_OBJECT (component), name, \ gtk_widget_ref (widget), (GDestroyNotify) gtk_widget_unref) #endif #ifndef GLADE_HOOKUP_OBJECT_NO_REF #define GLADE_HOOKUP_OBJECT_NO_REF(component,widget,name) \ g_object_set_data (G_OBJECT (component), name, widget) #endif // // --------------------------------------------------------------------------- // ALSA_PLAY.C // SPLIT_SPECTRE.C // --------------------------------------------------------------------------- // #define BLOCK_SIZE 2352 // /usr/include/gtk-2.0/gdk/gdkkeysyms.h typedef struct { gboolean BoolGDKPress; // gboolean BoolGDK_Control_L_R; // gboolean BoolGDK_Control_A; // guint keyval; // } KEYS; extern KEYS keys; typedef struct { gchar Machine [ 100 ]; gint NbCpu; gint TypeCpu; gboolean BoolCpuIs64Bits; } HOST_CONF; extern HOST_CONF HostConf; // // --------------------------------------------------------------------------- // Dossier temporaire // --------------------------------------------------------------------------- // #define PATH_TMP_XCFA_CD_NORMALISE_PEAK_ALBUM "xcfa_peak_album" #define PATH_TMP_XCFA_WAVSPLIT "xcfa_wavsplit" #define PATH_TMP_XCFA_AUDIOCD "xcfa_cdaudio" #define PATH_TMP_XCFA_AUDIOFILE "xcfa_audiofile" #define PATH_TMP_XCFA_AUDIOFILEWAVCONV "xcfa_audiofilewavconv" #define PATH_TMP_XCFA_AUDIOFILEMP3OGG "xcfa_audiofilemp3ogg" #define PATH_TMP_XCFA_AUDIOFILENORMALYSE "xcfa_audiofilenormalyse" #define PATH_TMP_XCFA_CDDBTEST "xcfa_cddbtest" #define PATH_SAVE_POCHETTE_IMG "XcfaPochette" #define PATH_MANPAGE "XcfaManpage" #endif xcfa-4.3.6/src/file_conv.c0000644000175000017500000035271312164631155012304 00000000000000 /* * file : file_conv.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #include #include #include #include #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "options.h" #include "conv.h" #include "tags.h" #include "configuser.h" #include "prg_init.h" #include "notify_send.h" #include "tags.h" #include "win_scan.h" #include "win_info.h" #include "file.h" typedef struct { gboolean BoolResultMplayerIsOk; gboolean BoolResultSoxIsOk; gboolean bool_thread_conv_one; gboolean bool_thread_conv_two; gboolean bool_thread_conv_three; } VAR_FILE_CONV; VAR_FILE_CONV VarFileConv = { FALSE, FALSE, FALSE, FALSE, FALSE }; pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; pthread_cond_t synchro = PTHREAD_COND_INITIALIZER; // // void fileconv_infos (DETAIL *detail) { if( FALSE == OptionsCommandLine.BoolVerboseMode ) return; g_print ("\nCONVERSION(S) DEPUIS L'ONGLET 'FICHIERS'\n"); if (detail->type_infosong_file_is == FILE_IS_WMA) { g_print ("\tFrom FILE_IS_WMA\n"); } if (detail->type_infosong_file_is == FILE_IS_RM) { g_print ("\tFrom FILE_IS_RM\n"); } if (detail->type_infosong_file_is == FILE_IS_DTS) { g_print ("\tFrom FILE_IS_DTS\n"); } if (detail->type_infosong_file_is == FILE_IS_AIFF) { g_print ("\tFrom FILE_IS_AIFF\n"); } if (detail->type_infosong_file_is == FILE_IS_M4A) { g_print ("\tFrom FILE_IS_M4A\n"); } if (detail->type_infosong_file_is == FILE_IS_VID_M4A) { g_print ("\tFrom FILE_IS_VID_M4A\n"); } if (detail->type_infosong_file_is == FILE_IS_SHN) { g_print ("\tFrom FILE_IS_SHN\n"); } if (detail->type_infosong_file_is == FILE_IS_WAV) { g_print ("\tFrom FILE_IS_WAV\n"); } if (detail->type_infosong_file_is == FILE_IS_FLAC) { g_print ("\tFrom FILE_IS_FLAC\n"); } if (detail->type_infosong_file_is == FILE_IS_MP3) { g_print ("\tFrom FILE_IS_MP3\n"); } if (detail->type_infosong_file_is == FILE_IS_OGG) { g_print ("\tFrom FILE_IS_OGG\n"); } if (detail->type_infosong_file_is == FILE_IS_MPC) { g_print ("\tFrom FILE_IS_MPC\n"); } if (detail->type_infosong_file_is == FILE_IS_APE) { g_print ("\tFrom FILE_IS_APE\n"); } if (detail->type_infosong_file_is == FILE_IS_WAVPACK) { g_print ("\tFrom FILE_IS_WAVPACK\n"); } if (detail->EtatSelection_Wav > ETAT_ATTENTE_EXIST) g_print ("\t\tTo Wav\n"); if (detail->EtatSelection_Mp3 > ETAT_ATTENTE_EXIST) g_print ("\t\tTo Mp3%s\n", detail->EtatSelection_Mp3 >= ETAT_SELECT_EXPERT ? "............WithLineExpert" :""); if (detail->EtatSelection_Ogg > ETAT_ATTENTE_EXIST) g_print ("\t\tTo Ogg%s\n", detail->EtatSelection_Ogg >= ETAT_SELECT_EXPERT ? "............WithLineExpert" :""); if (detail->EtatSelection_Flac > ETAT_ATTENTE_EXIST) g_print ("\t\tTo Flac%s\n", detail->EtatSelection_Flac >= ETAT_SELECT_EXPERT ? "...........WithLineExpert" :""); if (detail->EtatSelection_M4a > ETAT_ATTENTE_EXIST) g_print ("\t\tTo M4a%s\n", detail->EtatSelection_M4a >= ETAT_SELECT_EXPERT ? "............WithLineExpert" :""); if (detail->EtatSelection_Aac > ETAT_ATTENTE_EXIST) g_print ("\t\tTo Aac%s\n", detail->EtatSelection_Aac >= ETAT_SELECT_EXPERT ? "............WithLineExpert" :""); if (detail->EtatSelection_Mpc > ETAT_ATTENTE_EXIST) g_print ("\t\tTo Mpc%s\n", detail->EtatSelection_Mpc >= ETAT_SELECT_EXPERT ? "............WithLineExpert" :""); if (detail->EtatSelection_Ape > ETAT_ATTENTE_EXIST) g_print ("\t\tTo Ape%s\n", detail->EtatSelection_Ape >= ETAT_SELECT_EXPERT ? "............WithLineExpert" :""); if (detail->EtatSelection_WavPack > ETAT_ATTENTE_EXIST) g_print ("\t\tTo WavPack%s\n", detail->EtatSelection_WavPack >= ETAT_SELECT_EXPERT ? "........WithLineExpert" :""); g_print ("\n"); } // // void fileconv_copy_src_to_dest( TYPE_FILE_IS p_TypeFileIs, DETAIL *detail, CONV_FIC *PConv ) { if( TRUE == conv.bool_stop) return; if( p_TypeFileIs == FILE_IS_WAV && detail->EtatSelection_Wav > ETAT_ATTENTE_EXIST && libutils_test_file_exist (PConv->tmp_wav)) { conv_copy_src_to_dest( PConv->tmp_wav, PConv->dest_wav); detail->EtatSelection_Wav = ETAT_ATTENTE_EXIST; conv.Bool_MAJ_select = TRUE; } else if( p_TypeFileIs == FILE_IS_FLAC && detail->EtatSelection_Flac > ETAT_ATTENTE_EXIST && libutils_test_file_exist(PConv->tmp_flac) ) { conv_copy_src_to_dest( PConv->tmp_flac, PConv->dest_flac); detail->EtatSelection_Flac = ETAT_ATTENTE_EXIST; conv.Bool_MAJ_select = TRUE; } else if( p_TypeFileIs == FILE_IS_APE && detail->EtatSelection_Ape > ETAT_ATTENTE_EXIST && libutils_test_file_exist (PConv->tmp_ape)) { conv_copy_src_to_dest( PConv->tmp_ape, PConv->dest_ape); detail->EtatSelection_Ape = ETAT_ATTENTE_EXIST; conv.Bool_MAJ_select = TRUE; } else if( p_TypeFileIs == FILE_IS_WAVPACK && detail->EtatSelection_WavPack > ETAT_ATTENTE_EXIST && libutils_test_file_exist (PConv->tmp_wavpack)) { conv_copy_src_to_dest( PConv->tmp_wavpack, PConv->dest_wavpack); if (*optionsWavpack_get_wavpack_correction_file () != '\0') { conv_copy_src_to_dest( PConv->tmp_wavpack_md5, PConv->dest_wavpack_md5); } detail->EtatSelection_WavPack = ETAT_ATTENTE_EXIST; conv.Bool_MAJ_select = TRUE; } else if( p_TypeFileIs == FILE_IS_OGG && detail->EtatSelection_Ogg > ETAT_ATTENTE_EXIST && libutils_test_file_exist (PConv->tmp_ogg)) { conv_copy_src_to_dest( PConv->tmp_ogg, PConv->dest_ogg); detail->EtatSelection_Ogg = ETAT_ATTENTE_EXIST; conv.Bool_MAJ_select = TRUE; } else if( p_TypeFileIs == FILE_IS_M4A && detail->EtatSelection_M4a > ETAT_ATTENTE_EXIST && libutils_test_file_exist (PConv->tmp_m4a)) { conv_copy_src_to_dest( PConv->tmp_m4a, PConv->dest_m4a); detail->EtatSelection_M4a = ETAT_ATTENTE_EXIST; conv.Bool_MAJ_select = TRUE; } else if( p_TypeFileIs == FILE_IS_AAC && detail->EtatSelection_Aac > ETAT_ATTENTE_EXIST && libutils_test_file_exist (PConv->tmp_aac)) { conv_copy_src_to_dest( PConv->tmp_aac, PConv->dest_aac); detail->EtatSelection_Aac = ETAT_ATTENTE_EXIST; conv.Bool_MAJ_select = TRUE; } else if( p_TypeFileIs == FILE_IS_MPC && detail->EtatSelection_Mpc > ETAT_ATTENTE_EXIST && libutils_test_file_exist (PConv->tmp_mpc)) { conv_copy_src_to_dest( PConv->tmp_mpc, PConv->dest_mpc); detail->EtatSelection_Mpc = ETAT_ATTENTE_EXIST; conv.Bool_MAJ_select = TRUE; } else if( p_TypeFileIs == FILE_IS_MP3 && detail->EtatSelection_Mp3 > ETAT_ATTENTE_EXIST && libutils_test_file_exist (PConv->tmp_mp3)) { conv_copy_src_to_dest( PConv->tmp_mp3, PConv->dest_mp3); detail->EtatSelection_Mp3 = ETAT_ATTENTE_EXIST; conv.Bool_MAJ_select = TRUE; } if( detail->EtatTrash == FILE_TRASH_OK ) detail->EtatTrash = FILE_TRASH_VERIF_OK; } // // PConv->tmp_wav TO PConv->tmp_sox // gboolean fileconv_change_quantification_with_sox( CONV_FIC *PConv, gint p_Hertz, gint p_Channels, gint p_Bits ) { gchar StrHertz[ 10 ]; gchar StrChannels[ 10 ]; gchar StrBits[ 10 ]; gchar **PtrTabArgs = NULL; g_sprintf( &StrHertz[0], "%d", (gint)p_Hertz ); g_sprintf( &StrChannels[0], "%d", (gint)p_Channels ); g_sprintf( &StrBits[0], "%d", (gint)p_Bits ); pthread_mutex_lock( &mutex ); PtrTabArgs = conv_with_sox_get_param( PConv->tmp_wav, PConv->tmp_sox, StrHertz, StrChannels, StrBits ); pthread_mutex_unlock( &mutex ); conv_to_convert( PtrTabArgs, FALSE, SOX_WAV_TO_WAV, "SOX_WAV_TO_WAV"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); return( libutils_test_file_exist( PConv->tmp_sox )); } // // // http://www.bien-programmer.fr/pthreads.htm // // static void fileconv_thread_one (void *arg) { GList *ListGlobal = NULL; DETAIL *detail = NULL; CONV_FIC *PConv = NULL; PARAM_FILELC param_filelc; gint pos; TAGS *InfosTags = NULL; gint Channels; gint Hertz; gint Bits; gint NewBits; VarFileConv.bool_thread_conv_one = TRUE; PRINT("DEBUT THREAD FILECONV ONE"); ListGlobal = g_list_first (entetefile); while (FALSE == conv.bool_stop && ListGlobal) { if (NULL != (detail = (DETAIL *)ListGlobal->data) && NULL != (PConv = (CONV_FIC *)detail->PConv)) { if( TRUE == detail->BoolConvertActivate ) { ListGlobal = g_list_next(ListGlobal); continue; } detail->BoolConvertActivate = TRUE; // ------------------------------------------------------------------------ // // FROM: // FLAC | APE | WAVPACK | OGG | M4A | MPC | MP3 | WMA | SHORTEN | RM | DTS | AIF | AC3 // TO: // WAV // // ------------------------------------------------------------------------ if( FALSE == conv.bool_stop ) { fileconv_infos (detail); conv.Bool_MAJ_select = FALSE; // COPIE DANS LE DOSSIER TEMPORAIRE if( NULL == detail->NameFileCopyFromNormalizate ) { conv_copy_src_to_dest( detail->namefile, PConv->tmp_wav ); } switch( detail->type_infosong_file_is ) { case FILE_IS_NONE : case FILE_IS_VID_M4A : case FILE_IS_WAVPACK_MD5 : case FILE_TO_NORMALISE : case FILE_TO_NORMALISE_COLLECTIF : case FILE_TO_REPLAYGAIN : case FILE_IS_AAC : break; case FILE_IS_WAV : { INFO_WAV *info = (INFO_WAV *)detail->info; InfosTags = info->tags; gchar **PtrTabArgs = NULL; if( TRUE == info->BoolBwf ) { PtrTabArgs = conv_with_sox_float_get_param( PConv->tmp_wav, PConv->tmp_sox ); conv_to_convert( PtrTabArgs, FALSE, SOX_WAV_TO_WAV, "SOX_WAV_TO_WAV"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); conv_copy_src_to_dest( PConv->tmp_sox, PConv->tmp_wav ); } conv.Bool_MAJ_select = TRUE; break; } case FILE_IS_FLAC : { INFO_FLAC *info = (INFO_FLAC *)detail->info; InfosTags = info->tags; gchar **PtrTabArgs = NULL; // COPIE DANS LE DOSSIER TEMPORAIRE conv_copy_src_to_dest( detail->namefile, PConv->tmp_flac); param_filelc.type_conv = FLAC_FLAC_TO_WAV; param_filelc.With_CommandLineUser = detail->EtatSelection_Flac >= ETAT_SELECT_EXPERT; param_filelc.filesrc = PConv->tmp_flac; param_filelc.filedest = PConv->tmp_wav; param_filelc.tags = InfosTags; param_filelc.cdrom = NULL; param_filelc.num_track = NULL; param_filelc.BoolSetBitrate = FALSE; param_filelc.PtrStrBitrate = NULL; pthread_mutex_lock( &mutex ); PtrTabArgs = filelc_get_command_line (¶m_filelc); pthread_mutex_unlock( &mutex ); conv_to_convert( PtrTabArgs, param_filelc.With_CommandLineUser, FLAC_FLAC_TO_WAV, "FLAC_FLAC_TO_WAV"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); conv.Bool_MAJ_select = TRUE; break; } case FILE_IS_APE : { INFO_APE *info = (INFO_APE *)detail->info; InfosTags = info->tags; gchar **PtrTabArgs = NULL; // COPIE DANS LE DOSSIER TEMPORAIRE conv_copy_src_to_dest( detail->namefile, PConv->tmp_ape); param_filelc.type_conv = MAC_APE_TO_WAV; param_filelc.With_CommandLineUser = detail->EtatSelection_Ape >= ETAT_SELECT_EXPERT; param_filelc.filesrc = PConv->tmp_ape; param_filelc.filedest = PConv->tmp_wav; param_filelc.tags = NULL; param_filelc.cdrom = NULL; param_filelc.num_track = NULL; param_filelc.BoolSetBitrate = FALSE; param_filelc.PtrStrBitrate = NULL; pthread_mutex_lock( &mutex ); PtrTabArgs = filelc_get_command_line (¶m_filelc); pthread_mutex_unlock( &mutex ); conv_to_convert( PtrTabArgs, param_filelc.With_CommandLineUser, MAC_APE_TO_WAV, "MAC_APE_TO_WAV"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); conv.Bool_MAJ_select = TRUE; break; } case FILE_IS_WAVPACK : { INFO_WAVPACK *info = (INFO_WAVPACK *)detail->info; InfosTags = info->tags; gchar **PtrTabArgs = NULL; // COPIE DANS LE DOSSIER TEMPORAIRE conv_copy_src_to_dest( detail->namefile, PConv->tmp_wavpack); // COPIE DANS LE DOSSIER TEMPORAIRE conv_copy_src_to_dest( PConv->dest_wavpack_md5, PConv->tmp_wavpack_md5); PtrTabArgs = filelc_AllocTabArgs(); pos = 3; PtrTabArgs[ pos++ ] = g_strdup ("wvunpack"); PtrTabArgs[ pos++ ] = g_strdup ("-y"); if (*optionsWavpack_get_wavpack_signature_md5 () != '\0') { PtrTabArgs[ pos++ ] = g_strdup (optionsWavpack_get_wavpack_signature_md5 ()); } PtrTabArgs [ pos++ ] = g_strdup (PConv->tmp_wavpack); PtrTabArgs [ pos++ ] = g_strdup (PConv->tmp_wav); PtrTabArgs [ pos++ ] = NULL; conv_to_convert( PtrTabArgs, FALSE, WVUNPACK_WAVPACK_TO_WAV, "WVUNPACK_WAVPACK_TO_WAV"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); conv.Bool_MAJ_select = TRUE; break; } case FILE_IS_OGG : case FILE_IS_MP3 : { gchar **PtrTabArgs = NULL; PtrTabArgs = filelc_AllocTabArgs(); if( FILE_IS_OGG == detail->type_infosong_file_is ) { INFO_OGG *info = (INFO_OGG *)detail->info; InfosTags = info->tags; } else if( FILE_IS_MP3 == detail->type_infosong_file_is ) { INFO_MP3 *info = (INFO_MP3 *)detail->info; InfosTags = info->tags; } // COPIE DANS LE DOSSIER TEMPORAIRE if (FALSE == conv.bool_stop && NULL == detail->NameFileCopyFromNormalizate) { if( FILE_IS_OGG == detail->type_infosong_file_is ) { conv_copy_src_to_dest( detail->namefile, PConv->tmp_ogg); } else if( FILE_IS_MP3 == detail->type_infosong_file_is ) { conv_copy_src_to_dest( detail->namefile, PConv->tmp_mp3); } } pos = 3; PtrTabArgs[ pos++ ] = g_strdup ("mplayer"); PtrTabArgs[ pos++ ] = g_strdup ("-nojoystick"); PtrTabArgs[ pos++ ] = g_strdup ("-nolirc"); PtrTabArgs[ pos++ ] = g_strdup ("-ao"); PtrTabArgs[ pos++ ] = g_strdup ("pcm"); if( FILE_IS_OGG == detail->type_infosong_file_is ) { PtrTabArgs[ pos++ ] = g_strdup (PConv->tmp_ogg); } else if( FILE_IS_MP3 == detail->type_infosong_file_is ) { PtrTabArgs[ pos++ ] = g_strdup (PConv->tmp_mp3); } PtrTabArgs[ pos++ ] = g_strdup ("-ao"); PtrTabArgs[ pos++ ] = g_strdup_printf ("pcm:file=%s", PConv->tmp_wav); PtrTabArgs[ pos++ ] = NULL; conv_to_convert( PtrTabArgs, FALSE, MPLAYER_OGG_TO_WAV, "MPLAYER_OGG_TO_WAV"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); conv.Bool_MAJ_select = TRUE; break; } case FILE_IS_MPC : { gchar **PtrTabArgs = NULL; gchar *Ptr = NULL; gint BoolApplyConvMPC = 0; INFO_MPC *info = (INFO_MPC *)detail->info; InfosTags = info->tags; conv_copy_src_to_dest( detail->namefile, PConv->tmp_mpc ); PtrTabArgs = filelc_AllocTabArgs(); pos = 3; PtrTabArgs [ pos++ ] = g_strdup ("mplayer"); PtrTabArgs [ pos++ ] = g_strdup ("-nojoystick"); PtrTabArgs [ pos++ ] = g_strdup ("-nolirc"); PtrTabArgs [ pos++ ] = g_strdup (PConv->tmp_mpc); PtrTabArgs [ pos++ ] = g_strdup ("-ao"); PtrTabArgs [ pos++ ] = g_strdup ("pcm"); PtrTabArgs [ pos++ ] = g_strdup ("-ao"); PtrTabArgs [ pos++ ] = g_strdup_printf ("pcm:file=%s", PConv->tmp_wav); PtrTabArgs [ pos++ ] = g_strdup ("-af"); PtrTabArgs [ pos++ ] = g_strdup ("channels=2"); PtrTabArgs [ pos++ ] = g_strdup ("-srate"); PtrTabArgs [ pos++ ] = g_strdup ("44100"); PtrTabArgs [ pos++ ] = NULL; VarFileConv.BoolResultMplayerIsOk = conv_to_convert( PtrTabArgs, FALSE, MPLAYER_MPC_TO_WAV, "MPLAYER_MPC_TO_WAV"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); if( FALSE == libutils_test_file_exist( PConv->tmp_wav )) { PtrTabArgs = filelc_AllocTabArgs(); pos = 3; Ptr = PtrTabArgs [ pos++ ] = g_strdup( prginit_get_name( NMR_musepack_tools_mppdec )); if( strstr( Ptr, "mpc123" ) != NULL ) BoolApplyConvMPC = 1; if( strstr( Ptr, "mppdec" ) != NULL ) BoolApplyConvMPC = 1; if( strstr( Ptr, "mpcdec" ) != NULL ) BoolApplyConvMPC = 2; // mpc123 | mppdec if( 1 == BoolApplyConvMPC ) { PtrTabArgs [ pos++ ] = g_strdup ("--wav"); } if( HostConf.BoolCpuIs64Bits == TRUE ) { if( 1 == BoolApplyConvMPC ) { PtrTabArgs [ pos++ ] = g_strdup (PConv->tmp_wav); PtrTabArgs [ pos++ ] = g_strdup (PConv->tmp_mpc); } else if( 2 == BoolApplyConvMPC ) { PtrTabArgs [ pos++ ] = g_strdup (PConv->tmp_mpc); PtrTabArgs [ pos++ ] = g_strdup (PConv->tmp_wav); } } else { PtrTabArgs [ pos++ ] = g_strdup (PConv->tmp_mpc); PtrTabArgs [ pos++ ] = g_strdup (PConv->tmp_wav); } PtrTabArgs[ pos++ ] = NULL; conv_to_convert( PtrTabArgs, FALSE, MPPDEC_MPC_TO_WAV, "MPPDEC_MPC_TO_WAV" ); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); conv.Bool_MAJ_select = TRUE; } conv.Bool_MAJ_select = TRUE; break; } case FILE_IS_AC3 : { gchar **PtrTabArgs = NULL; INFO_AC3*info = (INFO_AC3 *)detail->info; InfosTags = info->tags; conv_copy_src_to_dest( detail->namefile, PConv->tmp_ac3 ); // // TODO DEBIAN/ liba52-0.7.4-dev // // a52dec ./audio.ac3 -o wav > audio.wav // PtrTabArgs = filelc_AllocTabArgs(); pos = 3; PtrTabArgs [ pos++ ] = g_strdup ("a52dec"); PtrTabArgs [ pos++ ] = g_strdup (PConv->tmp_ac3); PtrTabArgs [ pos++ ] = g_strdup ("-o"); PtrTabArgs [ pos++ ] = g_strdup ("wav"); PtrTabArgs [ pos++ ] = g_strdup (">"); PtrTabArgs [ pos++ ] = g_strdup (PConv->tmp_wav); PtrTabArgs [ pos++ ] = NULL; conv_to_convert( PtrTabArgs, FALSE, A52DEC_AC3_TO_WAV, "A52DEC_AC3_TO_WAV" ); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); tagswav_file_GetBitrate( PConv->tmp_wav, &Channels, &Hertz, &Bits ); fileconv_change_quantification_with_sox( PConv, Hertz, Channels, Bits ); conv_copy_src_to_dest( PConv->tmp_sox, PConv->tmp_wav ); conv.Bool_MAJ_select = TRUE; break; } case FILE_IS_M4A : { INFO_M4A *info = (INFO_M4A *)detail->info; InfosTags = info->tags; gchar **PtrTabArgs = NULL; // COPIE DANS LE DOSSIER TEMPORAIRE conv_copy_src_to_dest( detail->namefile, PConv->tmp_m4a); // CONVERSION WAV PtrTabArgs = filelc_AllocTabArgs(); pos = 3; PtrTabArgs [ pos++ ] = g_strdup ("mplayer"); PtrTabArgs [ pos++ ] = g_strdup ("-nojoystick"); PtrTabArgs [ pos++ ] = g_strdup ("-nolirc"); if( FILE_IS_VID_M4A == detail->type_infosong_file_is ) { // mplayer -nojoystick -nolirc -novideo -vo null ./WCC_RADIO_EP042.m4a -ao pcm -ao pcm:file=dest_novdeo_1.wav -srate 44100 PtrTabArgs [ pos++ ] = g_strdup ("-novideo"); PtrTabArgs [ pos++ ] = g_strdup ("-vo"); PtrTabArgs [ pos++ ] = g_strdup ("null"); } PtrTabArgs [ pos++ ] = g_strdup ("-ao"); PtrTabArgs [ pos++ ] = g_strdup ("pcm"); PtrTabArgs [ pos++ ] = g_strdup (PConv->tmp_m4a); PtrTabArgs [ pos++ ] = g_strdup ("-ao"); PtrTabArgs [ pos++ ] = g_strdup_printf ("pcm:file=%s", PConv->tmp_wav); if( FILE_IS_VID_M4A == detail->type_infosong_file_is ) { // mplayer -nojoystick -nolirc -novideo -vo null ./WCC_RADIO_EP042.m4a -ao pcm -ao pcm:file=dest_novdeo_1.wav -srate 44100 PtrTabArgs [ pos++ ] = g_strdup ("-srate"); PtrTabArgs [ pos++ ] = g_strdup ("44100"); } PtrTabArgs [ pos++ ] = NULL; VarFileConv.BoolResultMplayerIsOk = conv_to_convert( PtrTabArgs, FALSE, MPLAYER_M4A_TO_WAV, "MPLAYER_M4A_TO_WAV"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); conv.Bool_MAJ_select = TRUE; break; } case FILE_IS_WMA : case FILE_IS_RM : case FILE_IS_DTS : case FILE_IS_AIFF : { gchar **PtrTabArgs = NULL; if( FILE_IS_WMA == detail->type_infosong_file_is ) { INFO_WMA *info = (INFO_WMA *)detail->info; InfosTags = info->tags; conv_copy_src_to_dest( detail->namefile, PConv->tmp_wma ); } else if( FILE_IS_RM == detail->type_infosong_file_is ) { INFO_RM *info = (INFO_RM *)detail->info; InfosTags = info->tags; conv_copy_src_to_dest( detail->namefile, PConv->tmp_rm ); } else if( FILE_IS_DTS == detail->type_infosong_file_is ) { INFO_DTS *info = (INFO_DTS *)detail->info; InfosTags = info->tags; conv_copy_src_to_dest( detail->namefile, PConv->tmp_dts ); } else if( FILE_IS_AIFF == detail->type_infosong_file_is ) { INFO_AIFF *info = (INFO_AIFF *)detail->info; InfosTags = info->tags; conv_copy_src_to_dest( detail->namefile, PConv->tmp_aiff ); } // CONVERSION WAV PtrTabArgs = filelc_AllocTabArgs(); pos = 3; PtrTabArgs [ pos++ ] = g_strdup ("mplayer"); PtrTabArgs [ pos++ ] = g_strdup ("-nojoystick"); PtrTabArgs [ pos++ ] = g_strdup ("-nolirc"); if( FILE_IS_WMA == detail->type_infosong_file_is ) { PtrTabArgs [ pos++ ] = g_strdup (PConv->tmp_wma); } else if( FILE_IS_RM == detail->type_infosong_file_is ) { PtrTabArgs [ pos++ ] = g_strdup (PConv->tmp_rm); } else if( FILE_IS_DTS == detail->type_infosong_file_is ) { PtrTabArgs [ pos++ ] = g_strdup (PConv->tmp_dts); } else if( FILE_IS_AIFF == detail->type_infosong_file_is ) { PtrTabArgs [ pos++ ] = g_strdup (PConv->tmp_aiff ); } PtrTabArgs [ pos++ ] = g_strdup ("-ao"); PtrTabArgs [ pos++ ] = g_strdup ("pcm"); PtrTabArgs [ pos++ ] = g_strdup ("-ao"); PtrTabArgs [ pos++ ] = g_strdup_printf ("pcm:file=%s", PConv->tmp_wav); PtrTabArgs [ pos++ ] = g_strdup ("-af"); PtrTabArgs [ pos++ ] = g_strdup ("channels=2"); PtrTabArgs [ pos++ ] = g_strdup ("-srate"); PtrTabArgs [ pos++ ] = g_strdup ("44100"); PtrTabArgs [ pos++ ] = NULL; VarFileConv.BoolResultMplayerIsOk = conv_to_convert( PtrTabArgs, FALSE, MPLAYER_WMA_TO_WAV, "MPLAYER_WMA_TO_WAV"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); conv.Bool_MAJ_select = TRUE; break; } case FILE_IS_SHN : { INFO_SHN *info = (INFO_SHN *)detail->info; InfosTags = info->tags; gchar **PtrTabArgs = NULL; // COPIE DANS LE DOSSIER TEMPORAIRE conv_copy_src_to_dest( detail->namefile, PConv->tmp_shn); // CONVERSION WAV PtrTabArgs = filelc_AllocTabArgs(); pos = 3; PtrTabArgs [ pos++ ] = g_strdup ("shorten"); PtrTabArgs [ pos++ ] = g_strdup ("-x"); PtrTabArgs [ pos++ ] = g_strdup ("-b"); PtrTabArgs [ pos++ ] = g_strdup ("256"); PtrTabArgs [ pos++ ] = g_strdup ("-c"); PtrTabArgs [ pos++ ] = g_strdup ("2"); PtrTabArgs [ pos++ ] = g_strdup (PConv->tmp_shn); PtrTabArgs [ pos++ ] = g_strdup (PConv->tmp_wav); PtrTabArgs [ pos++ ] = NULL; conv_to_convert( PtrTabArgs, FALSE, SHORTEN_SHN_TO_WAV, "SHORTEN_SHN_TO_WAV"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); conv.Bool_MAJ_select = TRUE; break; } } // swicth if( TRUE == conv.Bool_MAJ_select ) fileconv_copy_src_to_dest( FILE_IS_WAV, detail, PConv ); } tagswav_file_GetBitrate( PConv->tmp_wav, &Channels, &Hertz, &Bits ); NewBits = Bits; // ------------------------------------------------------------------------ // // FROM: // WAV // TO: // FLAC | APE | WAVPACK | OGG | M4A | AAC | MPC | MP3 // // ------------------------------------------------------------------------ if( FALSE == conv.bool_stop && detail->EtatSelection_Flac > ETAT_ATTENTE_EXIST ) { gchar **PtrTabArgs = NULL; // REAJUSTE LA QUANTIFICATION if( Bits == 32 ) { VarFileConv.BoolResultSoxIsOk = fileconv_change_quantification_with_sox( PConv, Hertz, Channels, 24 ); } param_filelc.type_conv = FLAC_WAV_TO_FLAC; param_filelc.With_CommandLineUser = detail->EtatSelection_Flac >= ETAT_SELECT_EXPERT; param_filelc.filesrc = ( Bits == 32 ) ? PConv->tmp_sox : PConv->tmp_wav; param_filelc.filedest = PConv->tmp_flac; param_filelc.tags = NULL; param_filelc.cdrom = NULL; param_filelc.num_track = NULL; param_filelc.PtrStrBitrate = NULL; pthread_mutex_lock( &mutex ); PtrTabArgs = filelc_get_command_line (¶m_filelc); pthread_mutex_unlock( &mutex ); conv_to_convert( PtrTabArgs, param_filelc.With_CommandLineUser, FLAC_WAV_TO_FLAC, "FLAC_WAV_TO_FLAC"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); conv.Bool_MAJ_select = TRUE; fileconv_copy_src_to_dest( FILE_IS_FLAC, detail, PConv ); } if( FALSE == conv.bool_stop && detail->EtatSelection_Ape > ETAT_ATTENTE_EXIST ) { gchar **PtrTabArgs = NULL; // REAJUSTE LA QUANTIFICATION if( Bits >= 24 ) { VarFileConv.BoolResultSoxIsOk = fileconv_change_quantification_with_sox( PConv, Hertz, Channels, 16 ); } param_filelc.type_conv = MAC_WAV_TO_APE; param_filelc.With_CommandLineUser = detail->EtatSelection_Ape >= ETAT_SELECT_EXPERT; param_filelc.filesrc = ( Bits >= 24 ) ? PConv->tmp_sox : PConv->tmp_wav; param_filelc.filedest = PConv->tmp_ape; param_filelc.tags = NULL; param_filelc.cdrom = NULL; param_filelc.num_track = NULL; param_filelc.PtrStrBitrate = NULL; pthread_mutex_lock( &mutex ); PtrTabArgs = filelc_get_command_line (¶m_filelc); pthread_mutex_unlock( &mutex ); conv_to_convert( PtrTabArgs, param_filelc.With_CommandLineUser, MAC_WAV_TO_APE, "MAC_WAV_TO_APE"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); conv.Bool_MAJ_select = TRUE; fileconv_copy_src_to_dest( FILE_IS_APE, detail, PConv ); } if( FALSE == conv.bool_stop && detail->EtatSelection_WavPack > ETAT_ATTENTE_EXIST ) { gchar **PtrTabArgs = NULL; param_filelc.type_conv = WAVPACK_WAV_TO_WAVPACK; param_filelc.With_CommandLineUser = detail->EtatSelection_WavPack >= ETAT_SELECT_EXPERT; param_filelc.filesrc = PConv->tmp_wav; param_filelc.filedest = PConv->tmp_wavpack; param_filelc.tags = InfosTags; param_filelc.cdrom = NULL; param_filelc.num_track = NULL; param_filelc.PtrStrBitrate = NULL; pthread_mutex_lock( &mutex ); PtrTabArgs = filelc_get_command_line (¶m_filelc); pthread_mutex_unlock( &mutex ); conv_to_convert( PtrTabArgs, param_filelc.With_CommandLineUser, WAVPACK_WAV_TO_WAVPACK, "WAVPACK_WAV_TO_WAVPACK"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); conv.Bool_MAJ_select = TRUE; fileconv_copy_src_to_dest( FILE_IS_WAVPACK, detail, PConv ); } if( FALSE == conv.bool_stop && detail->EtatSelection_Ogg > ETAT_ATTENTE_EXIST ) { gchar **PtrTabArgs = NULL; // REAJUSTE LA QUANTIFICATION if (TRUE == PConv->BoolEtatConv [ ETAT_FROM_WAV_TO_OGG ]) { if (Bits > 24) NewBits = 24; else if (Bits > 16 && Bits < 24) NewBits = (Bits - 16) < 3 ? 24 : 16; else if (Bits > 8 && Bits < 16) NewBits = (Bits - 8) < 3 ? 16 : 8; else if (Bits < 8) NewBits = 8; Bits = NewBits; VarFileConv.BoolResultSoxIsOk = fileconv_change_quantification_with_sox( PConv, Hertz, Channels, NewBits ); } if (Bits == 24) { PtrTabArgs = conv_with_sox_float_get_param( (TRUE == PConv->BoolEtatConv [ ETAT_FROM_WAV_TO_OGG ]) ? PConv->tmp_sox : PConv->tmp_wav, PConv->tmp_sox_24 ); conv_to_convert( PtrTabArgs, FALSE, SOX_WAV_TO_WAV, "SOX_WAV_TO_WAV"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); conv_copy_src_to_dest( PConv->tmp_sox_24, PConv->tmp_sox); } param_filelc.type_conv = OGGENC_WAV_TO_OGG; param_filelc.With_CommandLineUser = detail->EtatSelection_Ogg >= ETAT_SELECT_EXPERT; if (TRUE == PConv->BoolEtatConv [ ETAT_FROM_WAV_TO_OGG ] || Bits == 24) { param_filelc.filesrc = PConv->tmp_sox; } else { param_filelc.filesrc = PConv->tmp_wav; } param_filelc.filedest = PConv->tmp_ogg; param_filelc.tags = InfosTags; param_filelc.cdrom = NULL; param_filelc.num_track = NULL; param_filelc.BoolSetBitrate = FALSE; param_filelc.PtrStrBitrate = options_get_params (OGGENC_WAV_TO_OGG); pthread_mutex_lock( &mutex ); PtrTabArgs = filelc_get_command_line (¶m_filelc); pthread_mutex_unlock( &mutex ); conv_to_convert( PtrTabArgs, param_filelc.With_CommandLineUser, OGGENC_WAV_TO_OGG, "OGGENC_WAV_TO_OGG"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); conv.Bool_MAJ_select = TRUE; fileconv_copy_src_to_dest( FILE_IS_OGG, detail, PConv ); } if( FALSE == conv.bool_stop && detail->EtatSelection_M4a > ETAT_ATTENTE_EXIST ) { gchar **PtrTabArgs = NULL; // REAJUSTE LA QUANTIFICATION if (TRUE == PConv->BoolEtatConv [ ETAT_FROM_WAV_TO_M4A ]) { if (Bits > 64) NewBits = 64; else if (Bits > 32 && Bits < 64) NewBits = 32; else if (Bits > 24 && Bits < 32) NewBits = 24; else if (Bits > 16 && Bits < 24) NewBits = (Bits - 16) < 3 ? 24 : 16; else if (Bits > 8 && Bits < 16) NewBits = (Bits - 8) < 3 ? 16 : 8; else if (Bits < 8) NewBits = 8; NewBits = Bits; VarFileConv.BoolResultSoxIsOk = fileconv_change_quantification_with_sox( PConv, Hertz, Channels, NewBits ); } else { conv_copy_src_to_dest( PConv->tmp_wav, PConv->tmp_sox); } if (Bits == 32 || Bits == 24) { PtrTabArgs = conv_with_sox_float_get_param( PConv->tmp_sox, PConv->tmp_sox_24 ); conv_to_convert( PtrTabArgs, FALSE, SOX_WAV_TO_WAV, "SOX_WAV_TO_WAV"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); conv_copy_src_to_dest( PConv->tmp_sox_24, PConv->tmp_sox); } param_filelc.type_conv = FAAC_WAV_TO_M4A; param_filelc.With_CommandLineUser = detail->EtatSelection_M4a >= ETAT_SELECT_EXPERT; param_filelc.filesrc = PConv->tmp_sox; param_filelc.filedest = PConv->tmp_m4a; param_filelc.tags = InfosTags; param_filelc.cdrom = NULL; param_filelc.num_track = NULL; pthread_mutex_lock( &mutex ); PtrTabArgs = filelc_get_command_line (¶m_filelc); pthread_mutex_unlock( &mutex ); conv_to_convert( PtrTabArgs, param_filelc.With_CommandLineUser, FAAC_WAV_TO_M4A, "FAAC_WAV_TO_M4A"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); conv.Bool_MAJ_select = TRUE; fileconv_copy_src_to_dest( FILE_IS_M4A, detail, PConv ); } if( FALSE == conv.bool_stop && detail->EtatSelection_Aac > ETAT_ATTENTE_EXIST ) { gchar **PtrTabArgs = NULL; // REAJUSTE LA QUANTIFICATION if (TRUE == PConv->BoolEtatConv [ ETAT_FROM_WAV_TO_AAC ]) { if (Bits > 64) NewBits = 64; else if (Bits > 32 && Bits < 64) NewBits = 32; else if (Bits > 24 && Bits < 32) NewBits = 24; else if (Bits > 16 && Bits < 24) NewBits = (Bits - 16) < 3 ? 24 : 16; else if (Bits > 8 && Bits < 16) NewBits = (Bits - 8) < 3 ? 16 : 8; else if (Bits < 8) NewBits = 8; NewBits = Bits; VarFileConv.BoolResultSoxIsOk = fileconv_change_quantification_with_sox( PConv, Hertz, Channels, NewBits ); } else { conv_copy_src_to_dest( PConv->tmp_wav, PConv->tmp_sox); } if (Bits == 24) { PtrTabArgs = conv_with_sox_float_get_param( PConv->tmp_sox, PConv->tmp_sox_24 ); conv_to_convert( PtrTabArgs, FALSE, SOX_WAV_TO_WAV, "SOX_WAV_TO_WAV"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); conv_copy_src_to_dest( PConv->tmp_sox_24, PConv->tmp_sox); } if (Hertz < 44100) { PtrTabArgs = filelc_AllocTabArgs(); pos = 3; PtrTabArgs [ pos++ ] = g_strdup ("mplayer"); PtrTabArgs [ pos++ ] = g_strdup ("-nojoystick"); PtrTabArgs [ pos++ ] = g_strdup ("-nolirc"); PtrTabArgs [ pos++ ] = g_strdup (PConv->tmp_sox); PtrTabArgs [ pos++ ] = g_strdup ("-ao"); PtrTabArgs [ pos++ ] = g_strdup ("pcm"); PtrTabArgs [ pos++ ] = g_strdup ("-ao"); PtrTabArgs [ pos++ ] = g_strdup_printf ("pcm:file=%s",PConv->tmp_sox_24); PtrTabArgs [ pos++ ] = g_strdup ("-srate"); PtrTabArgs [ pos++ ] = g_strdup ("44100"); PtrTabArgs [ pos++ ] = NULL; VarFileConv.BoolResultMplayerIsOk = conv_to_convert( PtrTabArgs, FALSE, MPLAYER_WAV_TO_WAV, "MPLAYER_WAV_TO_WAV"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); VarFileConv.BoolResultMplayerIsOk = libutils_test_file_exist( PConv->tmp_sox_24 ); conv_copy_src_to_dest( PConv->tmp_sox_24, PConv->tmp_sox); } param_filelc.type_conv = AACPLUSENC_WAV_TO_AAC; param_filelc.With_CommandLineUser = detail->EtatSelection_Aac >= ETAT_SELECT_EXPERT; param_filelc.filesrc = PConv->tmp_sox; param_filelc.filedest = PConv->tmp_aac; param_filelc.tags = NULL; param_filelc.cdrom = NULL; param_filelc.num_track = NULL; param_filelc.PtrStrBitrate = NULL; pthread_mutex_lock( &mutex ); PtrTabArgs = filelc_get_command_line (¶m_filelc); pthread_mutex_unlock( &mutex ); conv_to_convert( PtrTabArgs, param_filelc.With_CommandLineUser, AACPLUSENC_WAV_TO_AAC, "AACPLUSENC_WAV_TO_AAC"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); conv.Bool_MAJ_select = TRUE; fileconv_copy_src_to_dest( FILE_IS_AAC, detail, PConv ); } if( FALSE == conv.bool_stop && detail->EtatSelection_Mpc > ETAT_ATTENTE_EXIST ) { gchar **PtrTabArgs = NULL; // REAJUSTE LA QUANTIFICATION if( Bits != 64 || Bits != 32 || Bits != 24 || Bits != 16 || Bits != 8 ) { if (Bits > 64) NewBits = 64; else if (Bits > 32 && Bits < 64) NewBits = 32; else if (Bits > 24 && Bits < 32) NewBits = 24; else if (Bits > 16 && Bits < 24) NewBits = (Bits - 16) < 3 ? 24 : 16; else if (Bits > 8 && Bits < 16) NewBits = (Bits - 8) < 3 ? 16 : 8; else if (Bits < 8) NewBits = 8; NewBits = Bits; VarFileConv.BoolResultSoxIsOk = fileconv_change_quantification_with_sox( PConv, Hertz, Channels, NewBits ); } else { conv_copy_src_to_dest( PConv->tmp_wav, PConv->tmp_sox); } // SET WITH FLOAT FORMAT IF Bits == 24 || 32 if (Bits == 32 || Bits == 24) { PtrTabArgs = conv_with_sox_float_get_param( PConv->tmp_sox, PConv->tmp_sox_24 ); conv_to_convert( PtrTabArgs, FALSE, SOX_WAV_TO_WAV, "SOX_WAV_TO_WAV"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); conv_copy_src_to_dest( PConv->tmp_sox_24, PConv->tmp_sox); } if (Hertz < 44100) { PtrTabArgs = filelc_AllocTabArgs(); pos = 3; PtrTabArgs [ pos++ ] = g_strdup ("mplayer"); PtrTabArgs [ pos++ ] = g_strdup ("-nojoystick"); PtrTabArgs [ pos++ ] = g_strdup ("-nolirc"); PtrTabArgs [ pos++ ] = g_strdup (PConv->tmp_sox); PtrTabArgs [ pos++ ] = g_strdup ("-ao"); PtrTabArgs [ pos++ ] = g_strdup ("pcm"); PtrTabArgs [ pos++ ] = g_strdup ("-ao"); PtrTabArgs [ pos++ ] = g_strdup_printf ("pcm:file=%s", PConv->tmp_sox_24); PtrTabArgs [ pos++ ] = g_strdup ("-srate"); PtrTabArgs [ pos++ ] = g_strdup ("44100"); PtrTabArgs [ pos++ ] = NULL; VarFileConv.BoolResultMplayerIsOk = conv_to_convert( PtrTabArgs, FALSE, MPLAYER_WAV_TO_WAV, "MPLAYER_WAV_TO_WAV"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); VarFileConv.BoolResultMplayerIsOk = libutils_test_file_exist( PConv->tmp_sox_24 ); conv_copy_src_to_dest( PConv->tmp_sox_24, PConv->tmp_sox); } param_filelc.type_conv = MPPENC_WAV_TO_MPC; param_filelc.With_CommandLineUser = detail->EtatSelection_Mpc >= ETAT_SELECT_EXPERT; param_filelc.filesrc = PConv->tmp_sox; param_filelc.filedest = PConv->tmp_mpc; param_filelc.tags = InfosTags; param_filelc.cdrom = NULL; param_filelc.num_track = NULL; param_filelc.PtrStrBitrate = NULL; pthread_mutex_lock( &mutex ); PtrTabArgs = filelc_get_command_line (¶m_filelc); pthread_mutex_unlock( &mutex ); conv_to_convert( PtrTabArgs, param_filelc.With_CommandLineUser, MPPENC_WAV_TO_MPC, "MPPENC_WAV_TO_MPC"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); conv.Bool_MAJ_select = TRUE; fileconv_copy_src_to_dest( FILE_IS_MPC, detail, PConv ); } if( FALSE == conv.bool_stop && detail->EtatSelection_Mp3 > ETAT_ATTENTE_EXIST ) { gchar **PtrTabArgs = NULL; // REAJUSTE LA QUANTIFICATION if( Hertz == 48000 || Bits == 32 ) { PtrTabArgs = conv_with_sox_float_get_param( PConv->tmp_wav, PConv->tmp_sox ); conv_to_convert( PtrTabArgs, FALSE, SOX_WAV_TO_WAV, "SOX_WAV_TO_WAV"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); } else { // CORRECTION // http://forum.ubuntu-fr.org/viewtopic.php?pid=3271586#p3271586 // joelab07 if (Bits < 8) NewBits = 8; if (Bits > 16 && Bits < 24) NewBits = (Bits - 16) < 3 ? 16 : 24; if (Bits > 24 && Bits < 32) NewBits = (Bits - 24) < 3 ? 24 : 32; NewBits = Bits; VarFileConv.BoolResultSoxIsOk = fileconv_change_quantification_with_sox( PConv, Hertz, Channels, NewBits ); } param_filelc.type_conv = LAME_WAV_TO_MP3; param_filelc.With_CommandLineUser = detail->EtatSelection_Mp3 >= ETAT_SELECT_EXPERT; param_filelc.filesrc = PConv->tmp_sox; param_filelc.filedest = PConv->tmp_mp3; param_filelc.tags = InfosTags; param_filelc.cdrom = NULL; param_filelc.num_track = NULL; param_filelc.BoolSetBitrate = FALSE; param_filelc.PtrStrBitrate = options_get_params (LAME_WAV_TO_MP3); pthread_mutex_lock( &mutex ); PtrTabArgs = filelc_get_command_line (¶m_filelc); pthread_mutex_unlock( &mutex ); conv_to_convert( PtrTabArgs, param_filelc.With_CommandLineUser, LAME_WAV_TO_MP3, "LAME_WAV_TO_MP3"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); conv.Bool_MAJ_select = TRUE; fileconv_copy_src_to_dest( FILE_IS_MP3, detail, PConv ); } // COPIE DOSSIER TEMPORAIRE VERS DESTINATION // fileconv_copy_src_to_dest( detail, PConv ); g_unlink (PConv->tmp_flac); g_unlink (PConv->tmp_wav); g_unlink (PConv->tmp_sox); g_unlink (PConv->tmp_sox_24); g_unlink (PConv->tmp_mp3); g_unlink (PConv->tmp_ogg); g_unlink (PConv->tmp_m4a); g_unlink (PConv->tmp_aac); g_unlink (PConv->tmp_shn); g_unlink (PConv->tmp_wma); g_unlink (PConv->tmp_rm); g_unlink (PConv->tmp_dts); g_unlink (PConv->tmp_mpc); g_unlink (PConv->tmp_ape); g_unlink (PConv->tmp_wavpack); g_unlink (PConv->tmp_wavpack_md5); g_unlink (PConv->tmp_ac3); } if (TRUE == conv.bool_stop) break; else ListGlobal = g_list_next(ListGlobal); } // close(conv.tube_conv [ 0 ]); VarFileConv.bool_thread_conv_one = FALSE; PRINT("FIN THREAD FILECONV ONE"); pthread_exit(0); } // // static void fileconv_thread_two (void *arg) { GList *ListGlobal = NULL; DETAIL *detail = NULL; CONV_FIC *PConv = NULL; PARAM_FILELC param_filelc; gint pos; TAGS *InfosTags = NULL; gint Channels; gint Hertz; gint Bits; gint NewBits; VarFileConv.bool_thread_conv_two = TRUE; PRINT("DEBUT THREAD FILECONV TWO"); ListGlobal = g_list_first (entetefile); while (FALSE == conv.bool_stop && ListGlobal) { if (NULL != (detail = (DETAIL *)ListGlobal->data) && NULL != (PConv = (CONV_FIC *)detail->PConv)) { if( TRUE == detail->BoolConvertActivate ) { ListGlobal = g_list_next(ListGlobal); continue; } detail->BoolConvertActivate = TRUE; // ------------------------------------------------------------------------ // // FROM: // FLAC | APE | WAVPACK | OGG | M4A | MPC | MP3 | WMA | SHORTEN | RM | DTS | AIF | AC3 // TO: // WAV // // ------------------------------------------------------------------------ if( FALSE == conv.bool_stop ) { fileconv_infos (detail); conv.Bool_MAJ_select = FALSE; // COPIE DANS LE DOSSIER TEMPORAIRE if( NULL == detail->NameFileCopyFromNormalizate ) { conv_copy_src_to_dest( detail->namefile, PConv->tmp_wav ); } switch( detail->type_infosong_file_is ) { case FILE_IS_NONE : case FILE_IS_VID_M4A : case FILE_IS_WAVPACK_MD5 : case FILE_TO_NORMALISE : case FILE_TO_NORMALISE_COLLECTIF : case FILE_TO_REPLAYGAIN : case FILE_IS_AAC : break; case FILE_IS_WAV : { INFO_WAV *info = (INFO_WAV *)detail->info; InfosTags = info->tags; gchar **PtrTabArgs = NULL; if( TRUE == info->BoolBwf ) { PtrTabArgs = conv_with_sox_float_get_param( PConv->tmp_wav, PConv->tmp_sox ); conv_to_convert( PtrTabArgs, FALSE, SOX_WAV_TO_WAV, "SOX_WAV_TO_WAV"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); conv_copy_src_to_dest( PConv->tmp_sox, PConv->tmp_wav ); } conv.Bool_MAJ_select = TRUE; break; } case FILE_IS_FLAC : { INFO_FLAC *info = (INFO_FLAC *)detail->info; InfosTags = info->tags; gchar **PtrTabArgs = NULL; // COPIE DANS LE DOSSIER TEMPORAIRE conv_copy_src_to_dest( detail->namefile, PConv->tmp_flac); param_filelc.type_conv = FLAC_FLAC_TO_WAV; param_filelc.With_CommandLineUser = detail->EtatSelection_Flac >= ETAT_SELECT_EXPERT; param_filelc.filesrc = PConv->tmp_flac; param_filelc.filedest = PConv->tmp_wav; param_filelc.tags = InfosTags; param_filelc.cdrom = NULL; param_filelc.num_track = NULL; param_filelc.BoolSetBitrate = FALSE; param_filelc.PtrStrBitrate = NULL; pthread_mutex_lock( &mutex ); PtrTabArgs = filelc_get_command_line (¶m_filelc); pthread_mutex_unlock( &mutex ); conv_to_convert( PtrTabArgs, param_filelc.With_CommandLineUser, FLAC_FLAC_TO_WAV, "FLAC_FLAC_TO_WAV"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); conv.Bool_MAJ_select = TRUE; break; } case FILE_IS_APE : { INFO_APE *info = (INFO_APE *)detail->info; InfosTags = info->tags; gchar **PtrTabArgs = NULL; // COPIE DANS LE DOSSIER TEMPORAIRE conv_copy_src_to_dest( detail->namefile, PConv->tmp_ape); param_filelc.type_conv = MAC_APE_TO_WAV; param_filelc.With_CommandLineUser = detail->EtatSelection_Ape >= ETAT_SELECT_EXPERT; param_filelc.filesrc = PConv->tmp_ape; param_filelc.filedest = PConv->tmp_wav; param_filelc.tags = NULL; param_filelc.cdrom = NULL; param_filelc.num_track = NULL; param_filelc.BoolSetBitrate = FALSE; param_filelc.PtrStrBitrate = NULL; pthread_mutex_lock( &mutex ); PtrTabArgs = filelc_get_command_line (¶m_filelc); pthread_mutex_unlock( &mutex ); conv_to_convert( PtrTabArgs, param_filelc.With_CommandLineUser, MAC_APE_TO_WAV, "MAC_APE_TO_WAV"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); conv.Bool_MAJ_select = TRUE; break; } case FILE_IS_WAVPACK : { INFO_WAVPACK *info = (INFO_WAVPACK *)detail->info; InfosTags = info->tags; gchar **PtrTabArgs = NULL; // COPIE DANS LE DOSSIER TEMPORAIRE conv_copy_src_to_dest( detail->namefile, PConv->tmp_wavpack); // COPIE DANS LE DOSSIER TEMPORAIRE conv_copy_src_to_dest( PConv->dest_wavpack_md5, PConv->tmp_wavpack_md5); PtrTabArgs = filelc_AllocTabArgs(); pos = 3; PtrTabArgs[ pos++ ] = g_strdup ("wvunpack"); PtrTabArgs[ pos++ ] = g_strdup ("-y"); if (*optionsWavpack_get_wavpack_signature_md5 () != '\0') { PtrTabArgs[ pos++ ] = g_strdup (optionsWavpack_get_wavpack_signature_md5 ()); } PtrTabArgs [ pos++ ] = g_strdup (PConv->tmp_wavpack); PtrTabArgs [ pos++ ] = g_strdup (PConv->tmp_wav); PtrTabArgs [ pos++ ] = NULL; conv_to_convert( PtrTabArgs, FALSE, WVUNPACK_WAVPACK_TO_WAV, "WVUNPACK_WAVPACK_TO_WAV"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); conv.Bool_MAJ_select = TRUE; break; } case FILE_IS_OGG : case FILE_IS_MP3 : { gchar **PtrTabArgs = NULL; PtrTabArgs = filelc_AllocTabArgs(); if( FILE_IS_OGG == detail->type_infosong_file_is ) { INFO_OGG *info = (INFO_OGG *)detail->info; InfosTags = info->tags; } else if( FILE_IS_MP3 == detail->type_infosong_file_is ) { INFO_MP3 *info = (INFO_MP3 *)detail->info; InfosTags = info->tags; } // COPIE DANS LE DOSSIER TEMPORAIRE if (FALSE == conv.bool_stop && NULL == detail->NameFileCopyFromNormalizate) { if( FILE_IS_OGG == detail->type_infosong_file_is ) { conv_copy_src_to_dest( detail->namefile, PConv->tmp_ogg); } else if( FILE_IS_MP3 == detail->type_infosong_file_is ) { conv_copy_src_to_dest( detail->namefile, PConv->tmp_mp3); } } pos = 3; PtrTabArgs[ pos++ ] = g_strdup ("mplayer"); PtrTabArgs[ pos++ ] = g_strdup ("-nojoystick"); PtrTabArgs[ pos++ ] = g_strdup ("-nolirc"); PtrTabArgs[ pos++ ] = g_strdup ("-ao"); PtrTabArgs[ pos++ ] = g_strdup ("pcm"); if( FILE_IS_OGG == detail->type_infosong_file_is ) { PtrTabArgs[ pos++ ] = g_strdup (PConv->tmp_ogg); } else if( FILE_IS_MPC == detail->type_infosong_file_is ) { PtrTabArgs[ pos++ ] = g_strdup (PConv->tmp_mpc); } else if( FILE_IS_MP3 == detail->type_infosong_file_is ) { PtrTabArgs[ pos++ ] = g_strdup (PConv->tmp_mp3); } else if( FILE_IS_AC3 == detail->type_infosong_file_is ) { PtrTabArgs[ pos++ ] = g_strdup (PConv->tmp_ac3); } PtrTabArgs[ pos++ ] = g_strdup ("-ao"); PtrTabArgs[ pos++ ] = g_strdup_printf ("pcm:file=%s", PConv->tmp_wav); PtrTabArgs[ pos++ ] = NULL; conv_to_convert( PtrTabArgs, FALSE, MPLAYER_OGG_TO_WAV, "MPLAYER_OGG_TO_WAV"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); conv.Bool_MAJ_select = TRUE; break; } case FILE_IS_MPC : { gchar **PtrTabArgs = NULL; gchar *Ptr = NULL; gint BoolApplyConvMPC = 0; INFO_MPC *info = (INFO_MPC *)detail->info; InfosTags = info->tags; conv_copy_src_to_dest( detail->namefile, PConv->tmp_mpc ); PtrTabArgs = filelc_AllocTabArgs(); pos = 3; PtrTabArgs [ pos++ ] = g_strdup ("mplayer"); PtrTabArgs [ pos++ ] = g_strdup ("-nojoystick"); PtrTabArgs [ pos++ ] = g_strdup ("-nolirc"); PtrTabArgs [ pos++ ] = g_strdup (PConv->tmp_mpc); PtrTabArgs [ pos++ ] = g_strdup ("-ao"); PtrTabArgs [ pos++ ] = g_strdup ("pcm"); PtrTabArgs [ pos++ ] = g_strdup ("-ao"); PtrTabArgs [ pos++ ] = g_strdup_printf ("pcm:file=%s", PConv->tmp_wav); PtrTabArgs [ pos++ ] = g_strdup ("-af"); PtrTabArgs [ pos++ ] = g_strdup ("channels=2"); PtrTabArgs [ pos++ ] = g_strdup ("-srate"); PtrTabArgs [ pos++ ] = g_strdup ("44100"); PtrTabArgs [ pos++ ] = NULL; VarFileConv.BoolResultMplayerIsOk = conv_to_convert( PtrTabArgs, FALSE, MPLAYER_OGG_TO_WAV, "MPLAYER_OGG_TO_WAV"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); if( FALSE == libutils_test_file_exist( PConv->tmp_wav )) { PtrTabArgs = filelc_AllocTabArgs(); pos = 3; Ptr = PtrTabArgs [ pos++ ] = g_strdup( prginit_get_name( NMR_musepack_tools_mppdec )); if( strstr( Ptr, "mpc123" ) != NULL ) BoolApplyConvMPC = 1; if( strstr( Ptr, "mppdec" ) != NULL ) BoolApplyConvMPC = 1; if( strstr( Ptr, "mpcdec" ) != NULL ) BoolApplyConvMPC = 2; // mpc123 | mppdec if( 1 == BoolApplyConvMPC ) { PtrTabArgs [ pos++ ] = g_strdup ("--wav"); } if( HostConf.BoolCpuIs64Bits == TRUE ) { if( 1 == BoolApplyConvMPC ) { PtrTabArgs [ pos++ ] = g_strdup (PConv->tmp_wav); PtrTabArgs [ pos++ ] = g_strdup (PConv->tmp_mpc); } else if( 2 == BoolApplyConvMPC ) { PtrTabArgs [ pos++ ] = g_strdup (PConv->tmp_mpc); PtrTabArgs [ pos++ ] = g_strdup (PConv->tmp_wav); } } else { PtrTabArgs [ pos++ ] = g_strdup (PConv->tmp_mpc); PtrTabArgs [ pos++ ] = g_strdup (PConv->tmp_wav); } PtrTabArgs[ pos++ ] = NULL; conv_to_convert( PtrTabArgs, FALSE, MPPDEC_MPC_TO_WAV, "MPPDEC_MPC_TO_WAV" ); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); conv.Bool_MAJ_select = TRUE; } conv.Bool_MAJ_select = TRUE; break; } case FILE_IS_AC3 : { gchar **PtrTabArgs = NULL; INFO_AC3*info = (INFO_AC3 *)detail->info; InfosTags = info->tags; conv_copy_src_to_dest( detail->namefile, PConv->tmp_ac3 ); // // TODO DEBIAN/ liba52-0.7.4-dev // // a52dec ./audio.ac3 -o wav > audio.wav // PtrTabArgs = filelc_AllocTabArgs(); pos = 3; PtrTabArgs [ pos++ ] = g_strdup ("a52dec"); PtrTabArgs [ pos++ ] = g_strdup (PConv->tmp_ac3); PtrTabArgs [ pos++ ] = g_strdup ("-o"); PtrTabArgs [ pos++ ] = g_strdup ("wav"); PtrTabArgs [ pos++ ] = g_strdup (">"); PtrTabArgs [ pos++ ] = g_strdup (PConv->tmp_wav); PtrTabArgs [ pos++ ] = NULL; conv_to_convert( PtrTabArgs, FALSE, A52DEC_AC3_TO_WAV, "A52DEC_AC3_TO_WAV" ); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); tagswav_file_GetBitrate( PConv->tmp_wav, &Channels, &Hertz, &Bits ); fileconv_change_quantification_with_sox( PConv, Hertz, Channels, Bits ); conv_copy_src_to_dest( PConv->tmp_sox, PConv->tmp_wav ); conv.Bool_MAJ_select = TRUE; break; } case FILE_IS_M4A : { INFO_M4A *info = (INFO_M4A *)detail->info; InfosTags = info->tags; gchar **PtrTabArgs = NULL; // COPIE DANS LE DOSSIER TEMPORAIRE conv_copy_src_to_dest( detail->namefile, PConv->tmp_m4a); // CONVERSION WAV PtrTabArgs = filelc_AllocTabArgs(); pos = 3; PtrTabArgs [ pos++ ] = g_strdup ("mplayer"); PtrTabArgs [ pos++ ] = g_strdup ("-nojoystick"); PtrTabArgs [ pos++ ] = g_strdup ("-nolirc"); if( FILE_IS_VID_M4A == detail->type_infosong_file_is ) { // mplayer -nojoystick -nolirc -novideo -vo null ./WCC_RADIO_EP042.m4a -ao pcm -ao pcm:file=dest_novdeo_1.wav -srate 44100 PtrTabArgs [ pos++ ] = g_strdup ("-novideo"); PtrTabArgs [ pos++ ] = g_strdup ("-vo"); PtrTabArgs [ pos++ ] = g_strdup ("null"); } PtrTabArgs [ pos++ ] = g_strdup ("-ao"); PtrTabArgs [ pos++ ] = g_strdup ("pcm"); PtrTabArgs [ pos++ ] = g_strdup (PConv->tmp_m4a); PtrTabArgs [ pos++ ] = g_strdup ("-ao"); PtrTabArgs [ pos++ ] = g_strdup_printf ("pcm:file=%s", PConv->tmp_wav); if( FILE_IS_VID_M4A == detail->type_infosong_file_is ) { // mplayer -nojoystick -nolirc -novideo -vo null ./WCC_RADIO_EP042.m4a -ao pcm -ao pcm:file=dest_novdeo_1.wav -srate 44100 PtrTabArgs [ pos++ ] = g_strdup ("-srate"); PtrTabArgs [ pos++ ] = g_strdup ("44100"); } PtrTabArgs [ pos++ ] = NULL; VarFileConv.BoolResultMplayerIsOk = conv_to_convert( PtrTabArgs, FALSE, MPLAYER_M4A_TO_WAV, "MPLAYER_M4A_TO_WAV"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); conv.Bool_MAJ_select = TRUE; break; } case FILE_IS_WMA : case FILE_IS_RM : case FILE_IS_DTS : case FILE_IS_AIFF : { gchar **PtrTabArgs = NULL; if( FILE_IS_WMA == detail->type_infosong_file_is ) { INFO_WMA *info = (INFO_WMA *)detail->info; InfosTags = info->tags; conv_copy_src_to_dest( detail->namefile, PConv->tmp_wma ); } else if( FILE_IS_RM == detail->type_infosong_file_is ) { INFO_RM *info = (INFO_RM *)detail->info; InfosTags = info->tags; conv_copy_src_to_dest( detail->namefile, PConv->tmp_rm ); } else if( FILE_IS_DTS == detail->type_infosong_file_is ) { INFO_DTS *info = (INFO_DTS *)detail->info; InfosTags = info->tags; conv_copy_src_to_dest( detail->namefile, PConv->tmp_dts ); } else if( FILE_IS_AIFF == detail->type_infosong_file_is ) { INFO_AIFF *info = (INFO_AIFF *)detail->info; InfosTags = info->tags; conv_copy_src_to_dest( detail->namefile, PConv->tmp_aiff ); } // CONVERSION WAV PtrTabArgs = filelc_AllocTabArgs(); pos = 3; PtrTabArgs [ pos++ ] = g_strdup ("mplayer"); PtrTabArgs [ pos++ ] = g_strdup ("-nojoystick"); PtrTabArgs [ pos++ ] = g_strdup ("-nolirc"); if( FILE_IS_WMA == detail->type_infosong_file_is ) { PtrTabArgs [ pos++ ] = g_strdup (PConv->tmp_wma); } else if( FILE_IS_RM == detail->type_infosong_file_is ) { PtrTabArgs [ pos++ ] = g_strdup (PConv->tmp_rm); } else if( FILE_IS_DTS == detail->type_infosong_file_is ) { PtrTabArgs [ pos++ ] = g_strdup (PConv->tmp_dts); } else if( FILE_IS_AIFF == detail->type_infosong_file_is ) { PtrTabArgs [ pos++ ] = g_strdup (PConv->tmp_aiff ); } PtrTabArgs [ pos++ ] = g_strdup ("-ao"); PtrTabArgs [ pos++ ] = g_strdup ("pcm"); PtrTabArgs [ pos++ ] = g_strdup ("-ao"); PtrTabArgs [ pos++ ] = g_strdup_printf ("pcm:file=%s", PConv->tmp_wav); PtrTabArgs [ pos++ ] = g_strdup ("-af"); PtrTabArgs [ pos++ ] = g_strdup ("channels=2"); PtrTabArgs [ pos++ ] = g_strdup ("-srate"); PtrTabArgs [ pos++ ] = g_strdup ("44100"); PtrTabArgs [ pos++ ] = NULL; VarFileConv.BoolResultMplayerIsOk = conv_to_convert( PtrTabArgs, FALSE, MPLAYER_WMA_TO_WAV, "MPLAYER_WMA_TO_WAV"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); conv.Bool_MAJ_select = TRUE; break; } case FILE_IS_SHN : { INFO_SHN *info = (INFO_SHN *)detail->info; InfosTags = info->tags; gchar **PtrTabArgs = NULL; // COPIE DANS LE DOSSIER TEMPORAIRE conv_copy_src_to_dest( detail->namefile, PConv->tmp_shn); // CONVERSION WAV PtrTabArgs = filelc_AllocTabArgs(); pos = 3; PtrTabArgs [ pos++ ] = g_strdup ("shorten"); PtrTabArgs [ pos++ ] = g_strdup ("-x"); PtrTabArgs [ pos++ ] = g_strdup ("-b"); PtrTabArgs [ pos++ ] = g_strdup ("256"); PtrTabArgs [ pos++ ] = g_strdup ("-c"); PtrTabArgs [ pos++ ] = g_strdup ("2"); PtrTabArgs [ pos++ ] = g_strdup (PConv->tmp_shn); PtrTabArgs [ pos++ ] = g_strdup (PConv->tmp_wav); PtrTabArgs [ pos++ ] = NULL; conv_to_convert( PtrTabArgs, FALSE, SHORTEN_SHN_TO_WAV, "SHORTEN_SHN_TO_WAV"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); conv.Bool_MAJ_select = TRUE; break; } } // swicth if( TRUE == conv.Bool_MAJ_select ) fileconv_copy_src_to_dest( FILE_IS_WAV, detail, PConv ); } tagswav_file_GetBitrate( PConv->tmp_wav, &Channels, &Hertz, &Bits ); NewBits = Bits; // ------------------------------------------------------------------------ // // FROM: // WAV // TO: // FLAC | APE | WAVPACK | OGG | M4A | AAC | MPC | MP3 // // ------------------------------------------------------------------------ if( FALSE == conv.bool_stop && detail->EtatSelection_Flac > ETAT_ATTENTE_EXIST ) { gchar **PtrTabArgs = NULL; // REAJUSTE LA QUANTIFICATION if( Bits == 32 ) { VarFileConv.BoolResultSoxIsOk = fileconv_change_quantification_with_sox( PConv, Hertz, Channels, 24 ); } param_filelc.type_conv = FLAC_WAV_TO_FLAC; param_filelc.With_CommandLineUser = detail->EtatSelection_Flac >= ETAT_SELECT_EXPERT; param_filelc.filesrc = ( Bits == 32 ) ? PConv->tmp_sox : PConv->tmp_wav; param_filelc.filedest = PConv->tmp_flac; param_filelc.tags = NULL; param_filelc.cdrom = NULL; param_filelc.num_track = NULL; param_filelc.PtrStrBitrate = NULL; pthread_mutex_lock( &mutex ); PtrTabArgs = filelc_get_command_line (¶m_filelc); pthread_mutex_unlock( &mutex ); conv_to_convert( PtrTabArgs, param_filelc.With_CommandLineUser, FLAC_WAV_TO_FLAC, "FLAC_WAV_TO_FLAC"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); conv.Bool_MAJ_select = TRUE; fileconv_copy_src_to_dest( FILE_IS_FLAC, detail, PConv ); } if( FALSE == conv.bool_stop && detail->EtatSelection_Ape > ETAT_ATTENTE_EXIST ) { gchar **PtrTabArgs = NULL; // REAJUSTE LA QUANTIFICATION if( Bits >= 24 ) { VarFileConv.BoolResultSoxIsOk = fileconv_change_quantification_with_sox( PConv, Hertz, Channels, 16 ); } param_filelc.type_conv = MAC_WAV_TO_APE; param_filelc.With_CommandLineUser = detail->EtatSelection_Ape >= ETAT_SELECT_EXPERT; param_filelc.filesrc = ( Bits >= 24 ) ? PConv->tmp_sox : PConv->tmp_wav; param_filelc.filedest = PConv->tmp_ape; param_filelc.tags = NULL; param_filelc.cdrom = NULL; param_filelc.num_track = NULL; param_filelc.PtrStrBitrate = NULL; pthread_mutex_lock( &mutex ); PtrTabArgs = filelc_get_command_line (¶m_filelc); pthread_mutex_unlock( &mutex ); conv_to_convert( PtrTabArgs, param_filelc.With_CommandLineUser, MAC_WAV_TO_APE, "MAC_WAV_TO_APE"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); conv.Bool_MAJ_select = TRUE; fileconv_copy_src_to_dest( FILE_IS_APE, detail, PConv ); } if( FALSE == conv.bool_stop && detail->EtatSelection_WavPack > ETAT_ATTENTE_EXIST ) { gchar **PtrTabArgs = NULL; param_filelc.type_conv = WAVPACK_WAV_TO_WAVPACK; param_filelc.With_CommandLineUser = detail->EtatSelection_WavPack >= ETAT_SELECT_EXPERT; param_filelc.filesrc = PConv->tmp_wav; param_filelc.filedest = PConv->tmp_wavpack; param_filelc.tags = InfosTags; param_filelc.cdrom = NULL; param_filelc.num_track = NULL; param_filelc.PtrStrBitrate = NULL; pthread_mutex_lock( &mutex ); PtrTabArgs = filelc_get_command_line (¶m_filelc); pthread_mutex_unlock( &mutex ); conv_to_convert( PtrTabArgs, param_filelc.With_CommandLineUser, WAVPACK_WAV_TO_WAVPACK, "WAVPACK_WAV_TO_WAVPACK"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); conv.Bool_MAJ_select = TRUE; fileconv_copy_src_to_dest( FILE_IS_WAVPACK, detail, PConv ); } if( FALSE == conv.bool_stop && detail->EtatSelection_Ogg > ETAT_ATTENTE_EXIST ) { gchar **PtrTabArgs = NULL; // REAJUSTE LA QUANTIFICATION if (TRUE == PConv->BoolEtatConv [ ETAT_FROM_WAV_TO_OGG ]) { if (Bits > 24) NewBits = 24; else if (Bits > 16 && Bits < 24) NewBits = (Bits - 16) < 3 ? 24 : 16; else if (Bits > 8 && Bits < 16) NewBits = (Bits - 8) < 3 ? 16 : 8; else if (Bits < 8) NewBits = 8; Bits = NewBits; VarFileConv.BoolResultSoxIsOk = fileconv_change_quantification_with_sox( PConv, Hertz, Channels, NewBits ); } if (Bits == 24) { PtrTabArgs = conv_with_sox_float_get_param( (TRUE == PConv->BoolEtatConv [ ETAT_FROM_WAV_TO_OGG ]) ? PConv->tmp_sox : PConv->tmp_wav, PConv->tmp_sox_24 ); conv_to_convert( PtrTabArgs, FALSE, SOX_WAV_TO_WAV, "SOX_WAV_TO_WAV"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); conv_copy_src_to_dest( PConv->tmp_sox_24, PConv->tmp_sox); } param_filelc.type_conv = OGGENC_WAV_TO_OGG; param_filelc.With_CommandLineUser = detail->EtatSelection_Ogg >= ETAT_SELECT_EXPERT; if (TRUE == PConv->BoolEtatConv [ ETAT_FROM_WAV_TO_OGG ] || Bits == 24) { param_filelc.filesrc = PConv->tmp_sox; } else { param_filelc.filesrc = PConv->tmp_wav; } param_filelc.filedest = PConv->tmp_ogg; param_filelc.tags = InfosTags; param_filelc.cdrom = NULL; param_filelc.num_track = NULL; param_filelc.BoolSetBitrate = FALSE; param_filelc.PtrStrBitrate = options_get_params (OGGENC_WAV_TO_OGG); pthread_mutex_lock( &mutex ); PtrTabArgs = filelc_get_command_line (¶m_filelc); pthread_mutex_unlock( &mutex ); conv_to_convert( PtrTabArgs, param_filelc.With_CommandLineUser, OGGENC_WAV_TO_OGG, "OGGENC_WAV_TO_OGG"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); conv.Bool_MAJ_select = TRUE; fileconv_copy_src_to_dest( FILE_IS_OGG, detail, PConv ); } if( FALSE == conv.bool_stop && detail->EtatSelection_M4a > ETAT_ATTENTE_EXIST ) { gchar **PtrTabArgs = NULL; // REAJUSTE LA QUANTIFICATION if (TRUE == PConv->BoolEtatConv [ ETAT_FROM_WAV_TO_M4A ]) { if (Bits > 64) NewBits = 64; else if (Bits > 32 && Bits < 64) NewBits = 32; else if (Bits > 24 && Bits < 32) NewBits = 24; else if (Bits > 16 && Bits < 24) NewBits = (Bits - 16) < 3 ? 24 : 16; else if (Bits > 8 && Bits < 16) NewBits = (Bits - 8) < 3 ? 16 : 8; else if (Bits < 8) NewBits = 8; NewBits = Bits; VarFileConv.BoolResultSoxIsOk = fileconv_change_quantification_with_sox( PConv, Hertz, Channels, NewBits ); } else { conv_copy_src_to_dest( PConv->tmp_wav, PConv->tmp_sox); } if (Bits == 32 || Bits == 24) { PtrTabArgs = conv_with_sox_float_get_param( PConv->tmp_sox, PConv->tmp_sox_24 ); conv_to_convert( PtrTabArgs, FALSE, SOX_WAV_TO_WAV, "SOX_WAV_TO_WAV"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); conv_copy_src_to_dest( PConv->tmp_sox_24, PConv->tmp_sox); } param_filelc.type_conv = FAAC_WAV_TO_M4A; param_filelc.With_CommandLineUser = detail->EtatSelection_M4a >= ETAT_SELECT_EXPERT; param_filelc.filesrc = PConv->tmp_sox; param_filelc.filedest = PConv->tmp_m4a; param_filelc.tags = InfosTags; param_filelc.cdrom = NULL; param_filelc.num_track = NULL; pthread_mutex_lock( &mutex ); PtrTabArgs = filelc_get_command_line (¶m_filelc); pthread_mutex_unlock( &mutex ); conv_to_convert( PtrTabArgs, param_filelc.With_CommandLineUser, FAAC_WAV_TO_M4A, "FAAC_WAV_TO_M4A"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); conv.Bool_MAJ_select = TRUE; fileconv_copy_src_to_dest( FILE_IS_M4A, detail, PConv ); } if( FALSE == conv.bool_stop && detail->EtatSelection_Aac > ETAT_ATTENTE_EXIST ) { gchar **PtrTabArgs = NULL; // REAJUSTE LA QUANTIFICATION if (TRUE == PConv->BoolEtatConv [ ETAT_FROM_WAV_TO_AAC ]) { if (Bits > 64) NewBits = 64; else if (Bits > 32 && Bits < 64) NewBits = 32; else if (Bits > 24 && Bits < 32) NewBits = 24; else if (Bits > 16 && Bits < 24) NewBits = (Bits - 16) < 3 ? 24 : 16; else if (Bits > 8 && Bits < 16) NewBits = (Bits - 8) < 3 ? 16 : 8; else if (Bits < 8) NewBits = 8; NewBits = Bits; VarFileConv.BoolResultSoxIsOk = fileconv_change_quantification_with_sox( PConv, Hertz, Channels, NewBits ); } else { conv_copy_src_to_dest( PConv->tmp_wav, PConv->tmp_sox); } if (Bits == 24) { PtrTabArgs = conv_with_sox_float_get_param( PConv->tmp_sox, PConv->tmp_sox_24 ); conv_to_convert( PtrTabArgs, FALSE, SOX_WAV_TO_WAV, "SOX_WAV_TO_WAV"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); conv_copy_src_to_dest( PConv->tmp_sox_24, PConv->tmp_sox); } if (Hertz < 44100) { PtrTabArgs = filelc_AllocTabArgs(); pos = 3; PtrTabArgs [ pos++ ] = g_strdup ("mplayer"); PtrTabArgs [ pos++ ] = g_strdup ("-nojoystick"); PtrTabArgs [ pos++ ] = g_strdup ("-nolirc"); PtrTabArgs [ pos++ ] = g_strdup (PConv->tmp_sox); PtrTabArgs [ pos++ ] = g_strdup ("-ao"); PtrTabArgs [ pos++ ] = g_strdup ("pcm"); PtrTabArgs [ pos++ ] = g_strdup ("-ao"); PtrTabArgs [ pos++ ] = g_strdup_printf ("pcm:file=%s",PConv->tmp_sox_24); PtrTabArgs [ pos++ ] = g_strdup ("-srate"); PtrTabArgs [ pos++ ] = g_strdup ("44100"); PtrTabArgs [ pos++ ] = NULL; VarFileConv.BoolResultMplayerIsOk = conv_to_convert( PtrTabArgs, FALSE, MPLAYER_WAV_TO_WAV, "MPLAYER_WAV_TO_WAV"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); VarFileConv.BoolResultMplayerIsOk = libutils_test_file_exist( PConv->tmp_sox_24 ); conv_copy_src_to_dest( PConv->tmp_sox_24, PConv->tmp_sox); } param_filelc.type_conv = AACPLUSENC_WAV_TO_AAC; param_filelc.With_CommandLineUser = detail->EtatSelection_Aac >= ETAT_SELECT_EXPERT; param_filelc.filesrc = PConv->tmp_sox; param_filelc.filedest = PConv->tmp_aac; param_filelc.tags = NULL; param_filelc.cdrom = NULL; param_filelc.num_track = NULL; param_filelc.PtrStrBitrate = NULL; pthread_mutex_lock( &mutex ); PtrTabArgs = filelc_get_command_line (¶m_filelc); pthread_mutex_unlock( &mutex ); conv_to_convert( PtrTabArgs, param_filelc.With_CommandLineUser, AACPLUSENC_WAV_TO_AAC, "AACPLUSENC_WAV_TO_AAC"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); conv.Bool_MAJ_select = TRUE; fileconv_copy_src_to_dest( FILE_IS_AAC, detail, PConv ); } if( FALSE == conv.bool_stop && detail->EtatSelection_Mpc > ETAT_ATTENTE_EXIST ) { gchar **PtrTabArgs = NULL; // REAJUSTE LA QUANTIFICATION if( Bits != 64 || Bits != 32 || Bits != 24 || Bits != 16 || Bits != 8 ) { if (Bits > 64) NewBits = 64; else if (Bits > 32 && Bits < 64) NewBits = 32; else if (Bits > 24 && Bits < 32) NewBits = 24; else if (Bits > 16 && Bits < 24) NewBits = (Bits - 16) < 3 ? 24 : 16; else if (Bits > 8 && Bits < 16) NewBits = (Bits - 8) < 3 ? 16 : 8; else if (Bits < 8) NewBits = 8; NewBits = Bits; VarFileConv.BoolResultSoxIsOk = fileconv_change_quantification_with_sox( PConv, Hertz, Channels, NewBits ); } else { conv_copy_src_to_dest( PConv->tmp_wav, PConv->tmp_sox); } // SET WITH FLOAT FORMAT IF Bits == 24 || 32 if (Bits == 32 || Bits == 24) { PtrTabArgs = conv_with_sox_float_get_param( PConv->tmp_sox, PConv->tmp_sox_24 ); conv_to_convert( PtrTabArgs, FALSE, SOX_WAV_TO_WAV, "SOX_WAV_TO_WAV"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); conv_copy_src_to_dest( PConv->tmp_sox_24, PConv->tmp_sox); } if (Hertz < 44100) { PtrTabArgs = filelc_AllocTabArgs(); pos = 3; PtrTabArgs [ pos++ ] = g_strdup ("mplayer"); PtrTabArgs [ pos++ ] = g_strdup ("-nojoystick"); PtrTabArgs [ pos++ ] = g_strdup ("-nolirc"); PtrTabArgs [ pos++ ] = g_strdup (PConv->tmp_sox); PtrTabArgs [ pos++ ] = g_strdup ("-ao"); PtrTabArgs [ pos++ ] = g_strdup ("pcm"); PtrTabArgs [ pos++ ] = g_strdup ("-ao"); PtrTabArgs [ pos++ ] = g_strdup_printf ("pcm:file=%s", PConv->tmp_sox_24); PtrTabArgs [ pos++ ] = g_strdup ("-srate"); PtrTabArgs [ pos++ ] = g_strdup ("44100"); PtrTabArgs [ pos++ ] = NULL; VarFileConv.BoolResultMplayerIsOk = conv_to_convert( PtrTabArgs, FALSE, MPLAYER_WAV_TO_WAV, "MPLAYER_WAV_TO_WAV"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); VarFileConv.BoolResultMplayerIsOk = libutils_test_file_exist( PConv->tmp_sox_24 ); conv_copy_src_to_dest( PConv->tmp_sox_24, PConv->tmp_sox); } param_filelc.type_conv = MPPENC_WAV_TO_MPC; param_filelc.With_CommandLineUser = detail->EtatSelection_Mpc >= ETAT_SELECT_EXPERT; param_filelc.filesrc = PConv->tmp_sox; param_filelc.filedest = PConv->tmp_mpc; param_filelc.tags = InfosTags; param_filelc.cdrom = NULL; param_filelc.num_track = NULL; param_filelc.PtrStrBitrate = NULL; pthread_mutex_lock( &mutex ); PtrTabArgs = filelc_get_command_line (¶m_filelc); pthread_mutex_unlock( &mutex ); conv_to_convert( PtrTabArgs, param_filelc.With_CommandLineUser, MPPENC_WAV_TO_MPC, "MPPENC_WAV_TO_MPC"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); conv.Bool_MAJ_select = TRUE; fileconv_copy_src_to_dest( FILE_IS_MPC, detail, PConv ); } if( FALSE == conv.bool_stop && detail->EtatSelection_Mp3 > ETAT_ATTENTE_EXIST ) { gchar **PtrTabArgs = NULL; // REAJUSTE LA QUANTIFICATION if( Hertz == 48000 || Bits == 32 ) { PtrTabArgs = conv_with_sox_float_get_param( PConv->tmp_wav, PConv->tmp_sox ); conv_to_convert( PtrTabArgs, FALSE, SOX_WAV_TO_WAV, "SOX_WAV_TO_WAV"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); } else { // CORRECTION // http://forum.ubuntu-fr.org/viewtopic.php?pid=3271586#p3271586 // joelab07 if (Bits < 8) NewBits = 8; if (Bits > 16 && Bits < 24) NewBits = (Bits - 16) < 3 ? 16 : 24; if (Bits > 24 && Bits < 32) NewBits = (Bits - 24) < 3 ? 24 : 32; NewBits = Bits; VarFileConv.BoolResultSoxIsOk = fileconv_change_quantification_with_sox( PConv, Hertz, Channels, NewBits ); } param_filelc.type_conv = LAME_WAV_TO_MP3; param_filelc.With_CommandLineUser = detail->EtatSelection_Mp3 >= ETAT_SELECT_EXPERT; param_filelc.filesrc = PConv->tmp_sox; param_filelc.filedest = PConv->tmp_mp3; param_filelc.tags = InfosTags; param_filelc.cdrom = NULL; param_filelc.num_track = NULL; param_filelc.BoolSetBitrate = FALSE; param_filelc.PtrStrBitrate = options_get_params (LAME_WAV_TO_MP3); pthread_mutex_lock( &mutex ); PtrTabArgs = filelc_get_command_line (¶m_filelc); pthread_mutex_unlock( &mutex ); conv_to_convert( PtrTabArgs, param_filelc.With_CommandLineUser, LAME_WAV_TO_MP3, "LAME_WAV_TO_MP3"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); conv.Bool_MAJ_select = TRUE; fileconv_copy_src_to_dest( FILE_IS_MP3, detail, PConv ); } // COPIE DOSSIER TEMPORAIRE VERS DESTINATION // fileconv_copy_src_to_dest( detail, PConv ); g_unlink (PConv->tmp_flac); g_unlink (PConv->tmp_wav); g_unlink (PConv->tmp_sox); g_unlink (PConv->tmp_sox_24); g_unlink (PConv->tmp_mp3); g_unlink (PConv->tmp_ogg); g_unlink (PConv->tmp_m4a); g_unlink (PConv->tmp_aac); g_unlink (PConv->tmp_shn); g_unlink (PConv->tmp_wma); g_unlink (PConv->tmp_rm); g_unlink (PConv->tmp_dts); g_unlink (PConv->tmp_mpc); g_unlink (PConv->tmp_ape); g_unlink (PConv->tmp_wavpack); g_unlink (PConv->tmp_wavpack_md5); g_unlink (PConv->tmp_ac3); } if (TRUE == conv.bool_stop) break; else ListGlobal = g_list_next(ListGlobal); } // close(conv.tube_conv [ 0 ]); VarFileConv.bool_thread_conv_two = FALSE; PRINT("FIN THREAD FILECONV TWO"); pthread_exit(0); } // // static void fileconv_thread_three (void *arg) { GList *ListGlobal = NULL; DETAIL *detail = NULL; CONV_FIC *PConv = NULL; PARAM_FILELC param_filelc; gint pos; TAGS *InfosTags = NULL; gint Channels; gint Hertz; gint Bits; gint NewBits; VarFileConv.bool_thread_conv_three = TRUE; PRINT("DEBUT THREAD FILECONV THREE"); ListGlobal = g_list_first (entetefile); while (FALSE == conv.bool_stop && ListGlobal) { if (NULL != (detail = (DETAIL *)ListGlobal->data) && NULL != (PConv = (CONV_FIC *)detail->PConv)) { if( TRUE == detail->BoolConvertActivate ) { ListGlobal = g_list_next(ListGlobal); continue; } detail->BoolConvertActivate = TRUE; // ------------------------------------------------------------------------ // // FROM: // FLAC | APE | WAVPACK | OGG | M4A | MPC | MP3 | WMA | SHORTEN | RM | DTS | AIF | AC3 // TO: // WAV // // ------------------------------------------------------------------------ if( FALSE == conv.bool_stop ) { fileconv_infos (detail); conv.Bool_MAJ_select = FALSE; // COPIE DANS LE DOSSIER TEMPORAIRE if( NULL == detail->NameFileCopyFromNormalizate ) { conv_copy_src_to_dest( detail->namefile, PConv->tmp_wav ); } switch( detail->type_infosong_file_is ) { case FILE_IS_NONE : case FILE_IS_VID_M4A : case FILE_IS_WAVPACK_MD5 : case FILE_TO_NORMALISE : case FILE_TO_NORMALISE_COLLECTIF : case FILE_TO_REPLAYGAIN : case FILE_IS_AAC : break; case FILE_IS_WAV : { INFO_WAV *info = (INFO_WAV *)detail->info; InfosTags = info->tags; gchar **PtrTabArgs = NULL; if( TRUE == info->BoolBwf ) { PtrTabArgs = conv_with_sox_float_get_param( PConv->tmp_wav, PConv->tmp_sox ); conv_to_convert( PtrTabArgs, FALSE, SOX_WAV_TO_WAV, "SOX_WAV_TO_WAV"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); conv_copy_src_to_dest( PConv->tmp_sox, PConv->tmp_wav ); } conv.Bool_MAJ_select = TRUE; break; } case FILE_IS_FLAC : { INFO_FLAC *info = (INFO_FLAC *)detail->info; InfosTags = info->tags; gchar **PtrTabArgs = NULL; // COPIE DANS LE DOSSIER TEMPORAIRE conv_copy_src_to_dest( detail->namefile, PConv->tmp_flac); param_filelc.type_conv = FLAC_FLAC_TO_WAV; param_filelc.With_CommandLineUser = detail->EtatSelection_Flac >= ETAT_SELECT_EXPERT; param_filelc.filesrc = PConv->tmp_flac; param_filelc.filedest = PConv->tmp_wav; param_filelc.tags = InfosTags; param_filelc.cdrom = NULL; param_filelc.num_track = NULL; param_filelc.BoolSetBitrate = FALSE; param_filelc.PtrStrBitrate = NULL; pthread_mutex_lock( &mutex ); PtrTabArgs = filelc_get_command_line (¶m_filelc); pthread_mutex_unlock( &mutex ); conv_to_convert( PtrTabArgs, param_filelc.With_CommandLineUser, FLAC_FLAC_TO_WAV, "FLAC_FLAC_TO_WAV"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); conv.Bool_MAJ_select = TRUE; break; } case FILE_IS_APE : { INFO_APE *info = (INFO_APE *)detail->info; InfosTags = info->tags; gchar **PtrTabArgs = NULL; // COPIE DANS LE DOSSIER TEMPORAIRE conv_copy_src_to_dest( detail->namefile, PConv->tmp_ape); param_filelc.type_conv = MAC_APE_TO_WAV; param_filelc.With_CommandLineUser = detail->EtatSelection_Ape >= ETAT_SELECT_EXPERT; param_filelc.filesrc = PConv->tmp_ape; param_filelc.filedest = PConv->tmp_wav; param_filelc.tags = NULL; param_filelc.cdrom = NULL; param_filelc.num_track = NULL; param_filelc.BoolSetBitrate = FALSE; param_filelc.PtrStrBitrate = NULL; pthread_mutex_lock( &mutex ); PtrTabArgs = filelc_get_command_line (¶m_filelc); pthread_mutex_unlock( &mutex ); conv_to_convert( PtrTabArgs, param_filelc.With_CommandLineUser, MAC_APE_TO_WAV, "MAC_APE_TO_WAV"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); conv.Bool_MAJ_select = TRUE; break; } case FILE_IS_WAVPACK : { INFO_WAVPACK *info = (INFO_WAVPACK *)detail->info; InfosTags = info->tags; gchar **PtrTabArgs = NULL; // COPIE DANS LE DOSSIER TEMPORAIRE conv_copy_src_to_dest( detail->namefile, PConv->tmp_wavpack); // COPIE DANS LE DOSSIER TEMPORAIRE conv_copy_src_to_dest( PConv->dest_wavpack_md5, PConv->tmp_wavpack_md5); PtrTabArgs = filelc_AllocTabArgs(); pos = 3; PtrTabArgs[ pos++ ] = g_strdup ("wvunpack"); PtrTabArgs[ pos++ ] = g_strdup ("-y"); if (*optionsWavpack_get_wavpack_signature_md5 () != '\0') { PtrTabArgs[ pos++ ] = g_strdup (optionsWavpack_get_wavpack_signature_md5 ()); } PtrTabArgs [ pos++ ] = g_strdup (PConv->tmp_wavpack); PtrTabArgs [ pos++ ] = g_strdup (PConv->tmp_wav); PtrTabArgs [ pos++ ] = NULL; conv_to_convert( PtrTabArgs, FALSE, WVUNPACK_WAVPACK_TO_WAV, "WVUNPACK_WAVPACK_TO_WAV"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); conv.Bool_MAJ_select = TRUE; break; } case FILE_IS_OGG : case FILE_IS_MP3 : { gchar **PtrTabArgs = NULL; PtrTabArgs = filelc_AllocTabArgs(); if( FILE_IS_OGG == detail->type_infosong_file_is ) { INFO_OGG *info = (INFO_OGG *)detail->info; InfosTags = info->tags; } else if( FILE_IS_MP3 == detail->type_infosong_file_is ) { INFO_MP3 *info = (INFO_MP3 *)detail->info; InfosTags = info->tags; } // COPIE DANS LE DOSSIER TEMPORAIRE if (FALSE == conv.bool_stop && NULL == detail->NameFileCopyFromNormalizate) { if( FILE_IS_OGG == detail->type_infosong_file_is ) { conv_copy_src_to_dest( detail->namefile, PConv->tmp_ogg); } else if( FILE_IS_MP3 == detail->type_infosong_file_is ) { conv_copy_src_to_dest( detail->namefile, PConv->tmp_mp3); } } pos = 3; PtrTabArgs[ pos++ ] = g_strdup ("mplayer"); PtrTabArgs[ pos++ ] = g_strdup ("-nojoystick"); PtrTabArgs[ pos++ ] = g_strdup ("-nolirc"); PtrTabArgs[ pos++ ] = g_strdup ("-ao"); PtrTabArgs[ pos++ ] = g_strdup ("pcm"); if( FILE_IS_OGG == detail->type_infosong_file_is ) { PtrTabArgs[ pos++ ] = g_strdup (PConv->tmp_ogg); } else if( FILE_IS_MPC == detail->type_infosong_file_is ) { PtrTabArgs[ pos++ ] = g_strdup (PConv->tmp_mpc); } else if( FILE_IS_MP3 == detail->type_infosong_file_is ) { PtrTabArgs[ pos++ ] = g_strdup (PConv->tmp_mp3); } else if( FILE_IS_AC3 == detail->type_infosong_file_is ) { PtrTabArgs[ pos++ ] = g_strdup (PConv->tmp_ac3); } PtrTabArgs[ pos++ ] = g_strdup ("-ao"); PtrTabArgs[ pos++ ] = g_strdup_printf ("pcm:file=%s", PConv->tmp_wav); PtrTabArgs[ pos++ ] = NULL; conv_to_convert( PtrTabArgs, FALSE, MPLAYER_OGG_TO_WAV, "MPLAYER_OGG_TO_WAV"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); conv.Bool_MAJ_select = TRUE; break; } case FILE_IS_MPC : { gchar **PtrTabArgs = NULL; gchar *Ptr = NULL; gint BoolApplyConvMPC = 0; INFO_MPC *info = (INFO_MPC *)detail->info; InfosTags = info->tags; conv_copy_src_to_dest( detail->namefile, PConv->tmp_mpc ); PtrTabArgs = filelc_AllocTabArgs(); pos = 3; PtrTabArgs [ pos++ ] = g_strdup ("mplayer"); PtrTabArgs [ pos++ ] = g_strdup ("-nojoystick"); PtrTabArgs [ pos++ ] = g_strdup ("-nolirc"); PtrTabArgs [ pos++ ] = g_strdup (PConv->tmp_mpc); PtrTabArgs [ pos++ ] = g_strdup ("-ao"); PtrTabArgs [ pos++ ] = g_strdup ("pcm"); PtrTabArgs [ pos++ ] = g_strdup ("-ao"); PtrTabArgs [ pos++ ] = g_strdup_printf ("pcm:file=%s", PConv->tmp_wav); PtrTabArgs [ pos++ ] = g_strdup ("-af"); PtrTabArgs [ pos++ ] = g_strdup ("channels=2"); PtrTabArgs [ pos++ ] = g_strdup ("-srate"); PtrTabArgs [ pos++ ] = g_strdup ("44100"); PtrTabArgs [ pos++ ] = NULL; VarFileConv.BoolResultMplayerIsOk = conv_to_convert( PtrTabArgs, FALSE, MPLAYER_OGG_TO_WAV, "MPLAYER_OGG_TO_WAV"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); if( FALSE == libutils_test_file_exist( PConv->tmp_wav )) { PtrTabArgs = filelc_AllocTabArgs(); pos = 3; Ptr = PtrTabArgs [ pos++ ] = g_strdup( prginit_get_name( NMR_musepack_tools_mppdec )); if( strstr( Ptr, "mpc123" ) != NULL ) BoolApplyConvMPC = 1; if( strstr( Ptr, "mppdec" ) != NULL ) BoolApplyConvMPC = 1; if( strstr( Ptr, "mpcdec" ) != NULL ) BoolApplyConvMPC = 2; // mpc123 | mppdec if( 1 == BoolApplyConvMPC ) { PtrTabArgs [ pos++ ] = g_strdup ("--wav"); } if( HostConf.BoolCpuIs64Bits == TRUE ) { if( 1 == BoolApplyConvMPC ) { PtrTabArgs [ pos++ ] = g_strdup (PConv->tmp_wav); PtrTabArgs [ pos++ ] = g_strdup (PConv->tmp_mpc); } else if( 2 == BoolApplyConvMPC ) { PtrTabArgs [ pos++ ] = g_strdup (PConv->tmp_mpc); PtrTabArgs [ pos++ ] = g_strdup (PConv->tmp_wav); } } else { PtrTabArgs [ pos++ ] = g_strdup (PConv->tmp_mpc); PtrTabArgs [ pos++ ] = g_strdup (PConv->tmp_wav); } PtrTabArgs[ pos++ ] = NULL; conv_to_convert( PtrTabArgs, FALSE, MPPDEC_MPC_TO_WAV, "MPPDEC_MPC_TO_WAV" ); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); conv.Bool_MAJ_select = TRUE; } conv.Bool_MAJ_select = TRUE; break; } case FILE_IS_AC3 : { gchar **PtrTabArgs = NULL; INFO_AC3*info = (INFO_AC3 *)detail->info; InfosTags = info->tags; conv_copy_src_to_dest( detail->namefile, PConv->tmp_ac3 ); // // TODO DEBIAN/ liba52-0.7.4-dev // // a52dec ./audio.ac3 -o wav > audio.wav // PtrTabArgs = filelc_AllocTabArgs(); pos = 3; PtrTabArgs [ pos++ ] = g_strdup ("a52dec"); PtrTabArgs [ pos++ ] = g_strdup (PConv->tmp_ac3); PtrTabArgs [ pos++ ] = g_strdup ("-o"); PtrTabArgs [ pos++ ] = g_strdup ("wav"); PtrTabArgs [ pos++ ] = g_strdup (">"); PtrTabArgs [ pos++ ] = g_strdup (PConv->tmp_wav); PtrTabArgs [ pos++ ] = NULL; conv_to_convert( PtrTabArgs, FALSE, A52DEC_AC3_TO_WAV, "A52DEC_AC3_TO_WAV" ); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); tagswav_file_GetBitrate( PConv->tmp_wav, &Channels, &Hertz, &Bits ); fileconv_change_quantification_with_sox( PConv, Hertz, Channels, Bits ); conv_copy_src_to_dest( PConv->tmp_sox, PConv->tmp_wav ); conv.Bool_MAJ_select = TRUE; break; } case FILE_IS_M4A : { INFO_M4A *info = (INFO_M4A *)detail->info; InfosTags = info->tags; gchar **PtrTabArgs = NULL; // COPIE DANS LE DOSSIER TEMPORAIRE conv_copy_src_to_dest( detail->namefile, PConv->tmp_m4a); // CONVERSION WAV PtrTabArgs = filelc_AllocTabArgs(); pos = 3; PtrTabArgs [ pos++ ] = g_strdup ("mplayer"); PtrTabArgs [ pos++ ] = g_strdup ("-nojoystick"); PtrTabArgs [ pos++ ] = g_strdup ("-nolirc"); if( FILE_IS_VID_M4A == detail->type_infosong_file_is ) { // mplayer -nojoystick -nolirc -novideo -vo null ./WCC_RADIO_EP042.m4a -ao pcm -ao pcm:file=dest_novdeo_1.wav -srate 44100 PtrTabArgs [ pos++ ] = g_strdup ("-novideo"); PtrTabArgs [ pos++ ] = g_strdup ("-vo"); PtrTabArgs [ pos++ ] = g_strdup ("null"); } PtrTabArgs [ pos++ ] = g_strdup ("-ao"); PtrTabArgs [ pos++ ] = g_strdup ("pcm"); PtrTabArgs [ pos++ ] = g_strdup (PConv->tmp_m4a); PtrTabArgs [ pos++ ] = g_strdup ("-ao"); PtrTabArgs [ pos++ ] = g_strdup_printf ("pcm:file=%s", PConv->tmp_wav); if( FILE_IS_VID_M4A == detail->type_infosong_file_is ) { // mplayer -nojoystick -nolirc -novideo -vo null ./WCC_RADIO_EP042.m4a -ao pcm -ao pcm:file=dest_novdeo_1.wav -srate 44100 PtrTabArgs [ pos++ ] = g_strdup ("-srate"); PtrTabArgs [ pos++ ] = g_strdup ("44100"); } PtrTabArgs [ pos++ ] = NULL; VarFileConv.BoolResultMplayerIsOk = conv_to_convert( PtrTabArgs, FALSE, MPLAYER_M4A_TO_WAV, "MPLAYER_M4A_TO_WAV"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); conv.Bool_MAJ_select = TRUE; break; } case FILE_IS_WMA : case FILE_IS_RM : case FILE_IS_DTS : case FILE_IS_AIFF : { gchar **PtrTabArgs = NULL; if( FILE_IS_WMA == detail->type_infosong_file_is ) { INFO_WMA *info = (INFO_WMA *)detail->info; InfosTags = info->tags; conv_copy_src_to_dest( detail->namefile, PConv->tmp_wma ); } else if( FILE_IS_RM == detail->type_infosong_file_is ) { INFO_RM *info = (INFO_RM *)detail->info; InfosTags = info->tags; conv_copy_src_to_dest( detail->namefile, PConv->tmp_rm ); } else if( FILE_IS_DTS == detail->type_infosong_file_is ) { INFO_DTS *info = (INFO_DTS *)detail->info; InfosTags = info->tags; conv_copy_src_to_dest( detail->namefile, PConv->tmp_dts ); } else if( FILE_IS_AIFF == detail->type_infosong_file_is ) { INFO_AIFF *info = (INFO_AIFF *)detail->info; InfosTags = info->tags; conv_copy_src_to_dest( detail->namefile, PConv->tmp_aiff ); } // CONVERSION WAV PtrTabArgs = filelc_AllocTabArgs(); pos = 3; PtrTabArgs [ pos++ ] = g_strdup ("mplayer"); PtrTabArgs [ pos++ ] = g_strdup ("-nojoystick"); PtrTabArgs [ pos++ ] = g_strdup ("-nolirc"); if( FILE_IS_WMA == detail->type_infosong_file_is ) { PtrTabArgs [ pos++ ] = g_strdup (PConv->tmp_wma); } else if( FILE_IS_RM == detail->type_infosong_file_is ) { PtrTabArgs [ pos++ ] = g_strdup (PConv->tmp_rm); } else if( FILE_IS_DTS == detail->type_infosong_file_is ) { PtrTabArgs [ pos++ ] = g_strdup (PConv->tmp_dts); } else if( FILE_IS_AIFF == detail->type_infosong_file_is ) { PtrTabArgs [ pos++ ] = g_strdup (PConv->tmp_aiff ); } PtrTabArgs [ pos++ ] = g_strdup ("-ao"); PtrTabArgs [ pos++ ] = g_strdup ("pcm"); PtrTabArgs [ pos++ ] = g_strdup ("-ao"); PtrTabArgs [ pos++ ] = g_strdup_printf ("pcm:file=%s", PConv->tmp_wav); PtrTabArgs [ pos++ ] = g_strdup ("-af"); PtrTabArgs [ pos++ ] = g_strdup ("channels=2"); PtrTabArgs [ pos++ ] = g_strdup ("-srate"); PtrTabArgs [ pos++ ] = g_strdup ("44100"); PtrTabArgs [ pos++ ] = NULL; VarFileConv.BoolResultMplayerIsOk = conv_to_convert( PtrTabArgs, FALSE, MPLAYER_WMA_TO_WAV, "MPLAYER_WMA_TO_WAV"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); conv.Bool_MAJ_select = TRUE; break; } case FILE_IS_SHN : { INFO_SHN *info = (INFO_SHN *)detail->info; InfosTags = info->tags; gchar **PtrTabArgs = NULL; // COPIE DANS LE DOSSIER TEMPORAIRE conv_copy_src_to_dest( detail->namefile, PConv->tmp_shn); // CONVERSION WAV PtrTabArgs = filelc_AllocTabArgs(); pos = 3; PtrTabArgs [ pos++ ] = g_strdup ("shorten"); PtrTabArgs [ pos++ ] = g_strdup ("-x"); PtrTabArgs [ pos++ ] = g_strdup ("-b"); PtrTabArgs [ pos++ ] = g_strdup ("256"); PtrTabArgs [ pos++ ] = g_strdup ("-c"); PtrTabArgs [ pos++ ] = g_strdup ("2"); PtrTabArgs [ pos++ ] = g_strdup (PConv->tmp_shn); PtrTabArgs [ pos++ ] = g_strdup (PConv->tmp_wav); PtrTabArgs [ pos++ ] = NULL; conv_to_convert( PtrTabArgs, FALSE, SHORTEN_SHN_TO_WAV, "SHORTEN_SHN_TO_WAV"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); conv.Bool_MAJ_select = TRUE; break; } } // swicth if( TRUE == conv.Bool_MAJ_select ) fileconv_copy_src_to_dest( FILE_IS_WAV, detail, PConv ); } tagswav_file_GetBitrate( PConv->tmp_wav, &Channels, &Hertz, &Bits ); NewBits = Bits; // ------------------------------------------------------------------------ // // FROM: // WAV // TO: // FLAC | APE | WAVPACK | OGG | M4A | AAC | MPC | MP3 // // ------------------------------------------------------------------------ if( FALSE == conv.bool_stop && detail->EtatSelection_Flac > ETAT_ATTENTE_EXIST ) { gchar **PtrTabArgs = NULL; // REAJUSTE LA QUANTIFICATION if( Bits == 32 ) { VarFileConv.BoolResultSoxIsOk = fileconv_change_quantification_with_sox( PConv, Hertz, Channels, 24 ); } param_filelc.type_conv = FLAC_WAV_TO_FLAC; param_filelc.With_CommandLineUser = detail->EtatSelection_Flac >= ETAT_SELECT_EXPERT; param_filelc.filesrc = ( Bits == 32 ) ? PConv->tmp_sox : PConv->tmp_wav; param_filelc.filedest = PConv->tmp_flac; param_filelc.tags = NULL; param_filelc.cdrom = NULL; param_filelc.num_track = NULL; param_filelc.PtrStrBitrate = NULL; pthread_mutex_lock( &mutex ); PtrTabArgs = filelc_get_command_line (¶m_filelc); pthread_mutex_unlock( &mutex ); conv_to_convert( PtrTabArgs, param_filelc.With_CommandLineUser, FLAC_WAV_TO_FLAC, "FLAC_WAV_TO_FLAC"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); conv.Bool_MAJ_select = TRUE; fileconv_copy_src_to_dest( FILE_IS_FLAC, detail, PConv ); } if( FALSE == conv.bool_stop && detail->EtatSelection_Ape > ETAT_ATTENTE_EXIST ) { gchar **PtrTabArgs = NULL; // REAJUSTE LA QUANTIFICATION if( Bits >= 24 ) { VarFileConv.BoolResultSoxIsOk = fileconv_change_quantification_with_sox( PConv, Hertz, Channels, 16 ); } param_filelc.type_conv = MAC_WAV_TO_APE; param_filelc.With_CommandLineUser = detail->EtatSelection_Ape >= ETAT_SELECT_EXPERT; param_filelc.filesrc = ( Bits >= 24 ) ? PConv->tmp_sox : PConv->tmp_wav; param_filelc.filedest = PConv->tmp_ape; param_filelc.tags = NULL; param_filelc.cdrom = NULL; param_filelc.num_track = NULL; param_filelc.PtrStrBitrate = NULL; pthread_mutex_lock( &mutex ); PtrTabArgs = filelc_get_command_line (¶m_filelc); pthread_mutex_unlock( &mutex ); conv_to_convert( PtrTabArgs, param_filelc.With_CommandLineUser, MAC_WAV_TO_APE, "MAC_WAV_TO_APE"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); conv.Bool_MAJ_select = TRUE; fileconv_copy_src_to_dest( FILE_IS_APE, detail, PConv ); } if( FALSE == conv.bool_stop && detail->EtatSelection_WavPack > ETAT_ATTENTE_EXIST ) { gchar **PtrTabArgs = NULL; param_filelc.type_conv = WAVPACK_WAV_TO_WAVPACK; param_filelc.With_CommandLineUser = detail->EtatSelection_WavPack >= ETAT_SELECT_EXPERT; param_filelc.filesrc = PConv->tmp_wav; param_filelc.filedest = PConv->tmp_wavpack; param_filelc.tags = InfosTags; param_filelc.cdrom = NULL; param_filelc.num_track = NULL; param_filelc.PtrStrBitrate = NULL; pthread_mutex_lock( &mutex ); PtrTabArgs = filelc_get_command_line (¶m_filelc); pthread_mutex_unlock( &mutex ); conv_to_convert( PtrTabArgs, param_filelc.With_CommandLineUser, WAVPACK_WAV_TO_WAVPACK, "WAVPACK_WAV_TO_WAVPACK"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); conv.Bool_MAJ_select = TRUE; fileconv_copy_src_to_dest( FILE_IS_WAVPACK, detail, PConv ); } if( FALSE == conv.bool_stop && detail->EtatSelection_Ogg > ETAT_ATTENTE_EXIST ) { gchar **PtrTabArgs = NULL; // REAJUSTE LA QUANTIFICATION if (TRUE == PConv->BoolEtatConv [ ETAT_FROM_WAV_TO_OGG ]) { if (Bits > 24) NewBits = 24; else if (Bits > 16 && Bits < 24) NewBits = (Bits - 16) < 3 ? 24 : 16; else if (Bits > 8 && Bits < 16) NewBits = (Bits - 8) < 3 ? 16 : 8; else if (Bits < 8) NewBits = 8; Bits = NewBits; VarFileConv.BoolResultSoxIsOk = fileconv_change_quantification_with_sox( PConv, Hertz, Channels, NewBits ); } if (Bits == 24) { PtrTabArgs = conv_with_sox_float_get_param( (TRUE == PConv->BoolEtatConv [ ETAT_FROM_WAV_TO_OGG ]) ? PConv->tmp_sox : PConv->tmp_wav, PConv->tmp_sox_24 ); conv_to_convert( PtrTabArgs, FALSE, SOX_WAV_TO_WAV, "SOX_WAV_TO_WAV"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); conv_copy_src_to_dest( PConv->tmp_sox_24, PConv->tmp_sox); } param_filelc.type_conv = OGGENC_WAV_TO_OGG; param_filelc.With_CommandLineUser = detail->EtatSelection_Ogg >= ETAT_SELECT_EXPERT; if (TRUE == PConv->BoolEtatConv [ ETAT_FROM_WAV_TO_OGG ] || Bits == 24) { param_filelc.filesrc = PConv->tmp_sox; } else { param_filelc.filesrc = PConv->tmp_wav; } param_filelc.filedest = PConv->tmp_ogg; param_filelc.tags = InfosTags; param_filelc.cdrom = NULL; param_filelc.num_track = NULL; param_filelc.BoolSetBitrate = FALSE; param_filelc.PtrStrBitrate = options_get_params (OGGENC_WAV_TO_OGG); pthread_mutex_lock( &mutex ); PtrTabArgs = filelc_get_command_line (¶m_filelc); pthread_mutex_unlock( &mutex ); conv_to_convert( PtrTabArgs, param_filelc.With_CommandLineUser, OGGENC_WAV_TO_OGG, "OGGENC_WAV_TO_OGG"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); conv.Bool_MAJ_select = TRUE; fileconv_copy_src_to_dest( FILE_IS_OGG, detail, PConv ); } if( FALSE == conv.bool_stop && detail->EtatSelection_M4a > ETAT_ATTENTE_EXIST ) { gchar **PtrTabArgs = NULL; // REAJUSTE LA QUANTIFICATION if (TRUE == PConv->BoolEtatConv [ ETAT_FROM_WAV_TO_M4A ]) { if (Bits > 64) NewBits = 64; else if (Bits > 32 && Bits < 64) NewBits = 32; else if (Bits > 24 && Bits < 32) NewBits = 24; else if (Bits > 16 && Bits < 24) NewBits = (Bits - 16) < 3 ? 24 : 16; else if (Bits > 8 && Bits < 16) NewBits = (Bits - 8) < 3 ? 16 : 8; else if (Bits < 8) NewBits = 8; NewBits = Bits; VarFileConv.BoolResultSoxIsOk = fileconv_change_quantification_with_sox( PConv, Hertz, Channels, NewBits ); } else { conv_copy_src_to_dest( PConv->tmp_wav, PConv->tmp_sox); } if (Bits == 32 || Bits == 24) { PtrTabArgs = conv_with_sox_float_get_param( PConv->tmp_sox, PConv->tmp_sox_24 ); conv_to_convert( PtrTabArgs, FALSE, SOX_WAV_TO_WAV, "SOX_WAV_TO_WAV"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); conv_copy_src_to_dest( PConv->tmp_sox_24, PConv->tmp_sox); } param_filelc.type_conv = FAAC_WAV_TO_M4A; param_filelc.With_CommandLineUser = detail->EtatSelection_M4a >= ETAT_SELECT_EXPERT; param_filelc.filesrc = PConv->tmp_sox; param_filelc.filedest = PConv->tmp_m4a; param_filelc.tags = InfosTags; param_filelc.cdrom = NULL; param_filelc.num_track = NULL; pthread_mutex_lock( &mutex ); PtrTabArgs = filelc_get_command_line (¶m_filelc); pthread_mutex_unlock( &mutex ); conv_to_convert( PtrTabArgs, param_filelc.With_CommandLineUser, FAAC_WAV_TO_M4A, "FAAC_WAV_TO_M4A"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); conv.Bool_MAJ_select = TRUE; fileconv_copy_src_to_dest( FILE_IS_M4A, detail, PConv ); } if( FALSE == conv.bool_stop && detail->EtatSelection_Aac > ETAT_ATTENTE_EXIST ) { gchar **PtrTabArgs = NULL; // REAJUSTE LA QUANTIFICATION if (TRUE == PConv->BoolEtatConv [ ETAT_FROM_WAV_TO_AAC ]) { if (Bits > 64) NewBits = 64; else if (Bits > 32 && Bits < 64) NewBits = 32; else if (Bits > 24 && Bits < 32) NewBits = 24; else if (Bits > 16 && Bits < 24) NewBits = (Bits - 16) < 3 ? 24 : 16; else if (Bits > 8 && Bits < 16) NewBits = (Bits - 8) < 3 ? 16 : 8; else if (Bits < 8) NewBits = 8; NewBits = Bits; VarFileConv.BoolResultSoxIsOk = fileconv_change_quantification_with_sox( PConv, Hertz, Channels, NewBits ); } else { conv_copy_src_to_dest( PConv->tmp_wav, PConv->tmp_sox); } if (Bits == 24) { PtrTabArgs = conv_with_sox_float_get_param( PConv->tmp_sox, PConv->tmp_sox_24 ); conv_to_convert( PtrTabArgs, FALSE, SOX_WAV_TO_WAV, "SOX_WAV_TO_WAV"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); conv_copy_src_to_dest( PConv->tmp_sox_24, PConv->tmp_sox); } if (Hertz < 44100) { PtrTabArgs = filelc_AllocTabArgs(); pos = 3; PtrTabArgs [ pos++ ] = g_strdup ("mplayer"); PtrTabArgs [ pos++ ] = g_strdup ("-nojoystick"); PtrTabArgs [ pos++ ] = g_strdup ("-nolirc"); PtrTabArgs [ pos++ ] = g_strdup (PConv->tmp_sox); PtrTabArgs [ pos++ ] = g_strdup ("-ao"); PtrTabArgs [ pos++ ] = g_strdup ("pcm"); PtrTabArgs [ pos++ ] = g_strdup ("-ao"); PtrTabArgs [ pos++ ] = g_strdup_printf ("pcm:file=%s",PConv->tmp_sox_24); PtrTabArgs [ pos++ ] = g_strdup ("-srate"); PtrTabArgs [ pos++ ] = g_strdup ("44100"); PtrTabArgs [ pos++ ] = NULL; VarFileConv.BoolResultMplayerIsOk = conv_to_convert( PtrTabArgs, FALSE, MPLAYER_WAV_TO_WAV, "MPLAYER_WAV_TO_WAV"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); VarFileConv.BoolResultMplayerIsOk = libutils_test_file_exist( PConv->tmp_sox_24 ); conv_copy_src_to_dest( PConv->tmp_sox_24, PConv->tmp_sox); } param_filelc.type_conv = AACPLUSENC_WAV_TO_AAC; param_filelc.With_CommandLineUser = detail->EtatSelection_Aac >= ETAT_SELECT_EXPERT; param_filelc.filesrc = PConv->tmp_sox; param_filelc.filedest = PConv->tmp_aac; param_filelc.tags = NULL; param_filelc.cdrom = NULL; param_filelc.num_track = NULL; param_filelc.PtrStrBitrate = NULL; pthread_mutex_lock( &mutex ); PtrTabArgs = filelc_get_command_line (¶m_filelc); pthread_mutex_unlock( &mutex ); conv_to_convert( PtrTabArgs, param_filelc.With_CommandLineUser, AACPLUSENC_WAV_TO_AAC, "AACPLUSENC_WAV_TO_AAC"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); conv.Bool_MAJ_select = TRUE; fileconv_copy_src_to_dest( FILE_IS_AAC, detail, PConv ); } if( FALSE == conv.bool_stop && detail->EtatSelection_Mpc > ETAT_ATTENTE_EXIST ) { gchar **PtrTabArgs = NULL; // REAJUSTE LA QUANTIFICATION if( Bits != 64 || Bits != 32 || Bits != 24 || Bits != 16 || Bits != 8 ) { if (Bits > 64) NewBits = 64; else if (Bits > 32 && Bits < 64) NewBits = 32; else if (Bits > 24 && Bits < 32) NewBits = 24; else if (Bits > 16 && Bits < 24) NewBits = (Bits - 16) < 3 ? 24 : 16; else if (Bits > 8 && Bits < 16) NewBits = (Bits - 8) < 3 ? 16 : 8; else if (Bits < 8) NewBits = 8; NewBits = Bits; VarFileConv.BoolResultSoxIsOk = fileconv_change_quantification_with_sox( PConv, Hertz, Channels, NewBits ); } else { conv_copy_src_to_dest( PConv->tmp_wav, PConv->tmp_sox); } // SET WITH FLOAT FORMAT IF Bits == 24 || 32 if (Bits == 32 || Bits == 24) { PtrTabArgs = conv_with_sox_float_get_param( PConv->tmp_sox, PConv->tmp_sox_24 ); conv_to_convert( PtrTabArgs, FALSE, SOX_WAV_TO_WAV, "SOX_WAV_TO_WAV"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); conv_copy_src_to_dest( PConv->tmp_sox_24, PConv->tmp_sox); } if (Hertz < 44100) { PtrTabArgs = filelc_AllocTabArgs(); pos = 3; PtrTabArgs [ pos++ ] = g_strdup ("mplayer"); PtrTabArgs [ pos++ ] = g_strdup ("-nojoystick"); PtrTabArgs [ pos++ ] = g_strdup ("-nolirc"); PtrTabArgs [ pos++ ] = g_strdup (PConv->tmp_sox); PtrTabArgs [ pos++ ] = g_strdup ("-ao"); PtrTabArgs [ pos++ ] = g_strdup ("pcm"); PtrTabArgs [ pos++ ] = g_strdup ("-ao"); PtrTabArgs [ pos++ ] = g_strdup_printf ("pcm:file=%s", PConv->tmp_sox_24); PtrTabArgs [ pos++ ] = g_strdup ("-srate"); PtrTabArgs [ pos++ ] = g_strdup ("44100"); PtrTabArgs [ pos++ ] = NULL; VarFileConv.BoolResultMplayerIsOk = conv_to_convert( PtrTabArgs, FALSE, MPLAYER_WAV_TO_WAV, "MPLAYER_WAV_TO_WAV"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); VarFileConv.BoolResultMplayerIsOk = libutils_test_file_exist( PConv->tmp_sox_24 ); conv_copy_src_to_dest( PConv->tmp_sox_24, PConv->tmp_sox); } param_filelc.type_conv = MPPENC_WAV_TO_MPC; param_filelc.With_CommandLineUser = detail->EtatSelection_Mpc >= ETAT_SELECT_EXPERT; param_filelc.filesrc = PConv->tmp_sox; param_filelc.filedest = PConv->tmp_mpc; param_filelc.tags = InfosTags; param_filelc.cdrom = NULL; param_filelc.num_track = NULL; param_filelc.PtrStrBitrate = NULL; pthread_mutex_lock( &mutex ); PtrTabArgs = filelc_get_command_line (¶m_filelc); pthread_mutex_unlock( &mutex ); conv_to_convert( PtrTabArgs, param_filelc.With_CommandLineUser, MPPENC_WAV_TO_MPC, "MPPENC_WAV_TO_MPC"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); conv.Bool_MAJ_select = TRUE; fileconv_copy_src_to_dest( FILE_IS_MPC, detail, PConv ); } if( FALSE == conv.bool_stop && detail->EtatSelection_Mp3 > ETAT_ATTENTE_EXIST ) { gchar **PtrTabArgs = NULL; // REAJUSTE LA QUANTIFICATION if( Hertz == 48000 || Bits == 32 ) { PtrTabArgs = conv_with_sox_float_get_param( PConv->tmp_wav, PConv->tmp_sox ); conv_to_convert( PtrTabArgs, FALSE, SOX_WAV_TO_WAV, "SOX_WAV_TO_WAV"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); } else { // CORRECTION // http://forum.ubuntu-fr.org/viewtopic.php?pid=3271586#p3271586 // joelab07 if (Bits < 8) NewBits = 8; if (Bits > 16 && Bits < 24) NewBits = (Bits - 16) < 3 ? 16 : 24; if (Bits > 24 && Bits < 32) NewBits = (Bits - 24) < 3 ? 24 : 32; NewBits = Bits; VarFileConv.BoolResultSoxIsOk = fileconv_change_quantification_with_sox( PConv, Hertz, Channels, NewBits ); } param_filelc.type_conv = LAME_WAV_TO_MP3; param_filelc.With_CommandLineUser = detail->EtatSelection_Mp3 >= ETAT_SELECT_EXPERT; param_filelc.filesrc = PConv->tmp_sox; param_filelc.filedest = PConv->tmp_mp3; param_filelc.tags = InfosTags; param_filelc.cdrom = NULL; param_filelc.num_track = NULL; param_filelc.BoolSetBitrate = FALSE; param_filelc.PtrStrBitrate = options_get_params (LAME_WAV_TO_MP3); pthread_mutex_lock( &mutex ); PtrTabArgs = filelc_get_command_line (¶m_filelc); pthread_mutex_unlock( &mutex ); conv_to_convert( PtrTabArgs, param_filelc.With_CommandLineUser, LAME_WAV_TO_MP3, "LAME_WAV_TO_MP3"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); conv.Bool_MAJ_select = TRUE; fileconv_copy_src_to_dest( FILE_IS_MP3, detail, PConv ); } // COPIE DOSSIER TEMPORAIRE VERS DESTINATION // fileconv_copy_src_to_dest( detail, PConv ); g_unlink (PConv->tmp_flac); g_unlink (PConv->tmp_wav); g_unlink (PConv->tmp_sox); g_unlink (PConv->tmp_sox_24); g_unlink (PConv->tmp_mp3); g_unlink (PConv->tmp_ogg); g_unlink (PConv->tmp_m4a); g_unlink (PConv->tmp_aac); g_unlink (PConv->tmp_shn); g_unlink (PConv->tmp_wma); g_unlink (PConv->tmp_rm); g_unlink (PConv->tmp_dts); g_unlink (PConv->tmp_mpc); g_unlink (PConv->tmp_ape); g_unlink (PConv->tmp_wavpack); g_unlink (PConv->tmp_wavpack_md5); g_unlink (PConv->tmp_ac3); } if (TRUE == conv.bool_stop) break; else ListGlobal = g_list_next(ListGlobal); } // close(conv.tube_conv [ 0 ]); VarFileConv.bool_thread_conv_three = FALSE; PRINT("FIN THREAD FILECONV THREE"); pthread_exit(0); } // // static gint fileconv_timeout (gpointer data) { if (TRUE == conv.BoolIsa52dec) { WindScan_set_pulse (); } if (TRUE == conv.BoolIsa52dec || TRUE == conv.BoolIsExtract || TRUE == conv.BoolIsConvert || TRUE == conv.BoolIsCopy || TRUE == conv.BoolIsNormalise || TRUE == conv.BoolIsReplaygain) { gchar Str [ 200 ]; Str [ 0 ] = '\0'; if (TRUE == conv.BoolIsExtract) { strcat (Str, "Extraction "); } if (TRUE == conv.BoolIsConvert) { strcat (Str, "Conversion "); } if (TRUE == conv.BoolIsCopy) { strcat (Str, "Copie "); } if (TRUE == conv.BoolIsNormalise) { strcat (Str, "Normalise "); } if (TRUE == conv.BoolIsReplaygain) { strcat (Str, "Replaygain"); } WindScan_set_label (Str); } if (TRUE == conv.bool_percent_conv) { gchar *Str = NULL; // DEBUG if( conv.total_percent > 1.0 ) conv.total_percent = 1.0; Str = g_strdup_printf ("%d%%", (int)(conv.total_percent * 100)); WindScan_set_progress (Str, conv.total_percent); g_free (Str); Str = NULL; conv.bool_percent_conv = FALSE; } if (TRUE == conv.Bool_MAJ_select) { conv.Bool_MAJ_select = FALSE; file_pixbuf_update_glist (); } else if( FALSE == VarFileConv.bool_thread_conv_one && FALSE == VarFileConv.bool_thread_conv_two && FALSE == VarFileConv.bool_thread_conv_three ) { DETAIL *detail = NULL; CONV_FIC *PConv = NULL; GList *list = NULL; pthread_mutex_destroy( &mutex ); // SUPPRESSION DE LA STRUCTURE DE CONVERSIONS list = g_list_first (entetefile); while (list) { if (NULL != (detail = (DETAIL *)list->data)) { if (NULL != (PConv = (CONV_FIC *)detail->PConv)) { g_free (detail->NameFileCopyFromNormalizate); detail->NameFileCopyFromNormalizate = NULL; g_free (PConv->dest_flac); PConv->dest_flac = NULL; g_free (PConv->dest_wav); PConv->dest_wav = NULL; g_free (PConv->dest_mp3); PConv->dest_mp3 = NULL; g_free (PConv->dest_ogg); PConv->dest_ogg = NULL; g_free (PConv->dest_m4a); PConv->dest_m4a = NULL; g_free (PConv->dest_aac); PConv->dest_aac = NULL; g_free (PConv->dest_mpc); PConv->dest_mpc = NULL; g_free (PConv->dest_ape); PConv->dest_ape = NULL; g_free (PConv->dest_wavpack); PConv->dest_wavpack = NULL; g_free (PConv->dest_wavpack_md5); PConv->dest_wavpack_md5 = NULL; g_free (PConv->tmp_flac); PConv->tmp_flac = NULL; g_free (PConv->tmp_wav); PConv->tmp_wav = NULL; g_free (PConv->tmp_mp3); PConv->tmp_mp3 = NULL; g_free (PConv->tmp_ogg); PConv->tmp_ogg = NULL; g_free (PConv->tmp_m4a); PConv->tmp_m4a = NULL; g_free (PConv->tmp_aac); PConv->tmp_aac = NULL; g_free (PConv->tmp_shn); PConv->tmp_shn = NULL; g_free (PConv->tmp_wma); PConv->tmp_wma = NULL; g_free (PConv->tmp_rm); PConv->tmp_rm = NULL; g_free (PConv->tmp_dts); PConv->tmp_dts = NULL; g_free (PConv->tmp_mpc); PConv->tmp_mpc = NULL; g_free (PConv->tmp_ape); PConv->tmp_ape = NULL; g_free (PConv->tmp_wavpack); PConv->tmp_wavpack = NULL; g_free (PConv->tmp_wavpack_md5); PConv->tmp_wavpack_md5 = NULL; g_free (PConv->tmp_sox); PConv->tmp_sox = NULL; g_free (PConv->tmp_sox_24); PConv->tmp_sox_24 = NULL; g_free (PConv->tmp_ac3); PConv->tmp_ac3 = NULL; g_free (PConv); PConv = detail->PConv = NULL; } } list = g_list_next(list); } // DELETTE TEMPORAY REP if (NULL != conv.TmpRep) { conv.TmpRep = libutils_remove_temporary_rep (conv.TmpRep); } // EST FERMEE DEPUIS: fileaction_ ... // WindScan_close (); PRINT("FIN TIMEOUT FILECONV"); gtk_timeout_remove (conv.handler_timeout_conv); file_pixbuf_update_glist (); fileaction_set_end (TYPE_CONVERSION); if( FALSE == VarFileConv.BoolResultMplayerIsOk ) { wininfo_create ( WindMain, _("Erreur depuis MPLAYER !"), _("Vous pouvez activer XCFA en ligne de commande avec: "), "\n", _("$ xcfa -verbose"), "\n", _("pour consulter le type d'erreur renvoye par mplayer."), ""); VarFileConv.BoolResultMplayerIsOk = FALSE; } else if( FALSE == VarFileConv.BoolResultSoxIsOk ) { wininfo_create ( WindMain, _("Erreur depuis SOX !"), _("Vous pouvez activer XCFA en ligne de commande avec: "), "\n", _("$ xcfa -verbose"), "\n", _("pour consulter le type d'erreur renvoye par sox."), ""); VarFileConv.BoolResultSoxIsOk = FALSE; } } return (TRUE); } // // void fileconv_get_total_convert (void) { GList *ListGlobal = NULL; DETAIL *detail = NULL; CONV_FIC *PConv = NULL; gint Channels; gint Hertz; gint Bits; ListGlobal = g_list_first (entetefile); while (ListGlobal) { if (NULL != (detail = (DETAIL *)ListGlobal->data) && NULL != (PConv = (CONV_FIC *)detail->PConv)) { // ------------------------------------------------------------------------ // // FROM: // FLAC | APE | WAVPACK | OGG | M4A | MPC | MP3 | WMA | SHORTEN | RM | DTS | AIF | AC3 // TO: // WAV // // ------------------------------------------------------------------------ if (NULL == detail->NameFileCopyFromNormalizate) { conv.total_convert ++; } switch( detail->type_infosong_file_is ) { case FILE_IS_NONE : case FILE_IS_VID_M4A : case FILE_IS_WAVPACK_MD5 : case FILE_TO_NORMALISE : case FILE_TO_NORMALISE_COLLECTIF : case FILE_TO_REPLAYGAIN : case FILE_IS_AAC : break; case FILE_IS_WAV : { INFO_WAV *info = (INFO_WAV *)detail->info; if( TRUE == info->BoolBwf ) { conv.total_convert ++; conv.total_convert ++; } break; } case FILE_IS_FLAC : { conv.total_convert ++; conv.total_convert ++; break; } case FILE_IS_APE : { conv.total_convert ++; conv.total_convert ++; break; } case FILE_IS_WAVPACK : { conv.total_convert ++; conv.total_convert ++; conv.total_convert ++; break; } case FILE_IS_OGG : case FILE_IS_MPC : case FILE_IS_MP3 : case FILE_IS_AC3 : { if (FALSE == conv.bool_stop && NULL == detail->NameFileCopyFromNormalizate) { conv.total_convert ++; } conv.total_convert ++; break; } case FILE_IS_M4A : { conv.total_convert ++; conv.total_convert ++; break; } case FILE_IS_WMA : case FILE_IS_RM : case FILE_IS_DTS : case FILE_IS_AIFF : { conv.total_convert ++; conv.total_convert ++; break; } case FILE_IS_SHN : { conv.total_convert ++; conv.total_convert ++; break; } conv.total_convert ++; } // swicth // ------------------------------------------------------------------------ // // FROM: // WAV // TO: // FLAC | APE | WAVPACK | OGG | M4A | AAC | MPC | MP3 // // ------------------------------------------------------------------------ if( detail->type_infosong_file_is == FILE_IS_WAV ) { tagswav_file_GetBitrate( detail->namefile, &Channels, &Hertz, &Bits ); } else { Channels = 2; Hertz = 44100; Bits = 32; } if( detail->EtatSelection_Flac > ETAT_ATTENTE_EXIST ) { if( Bits == 32 ) { conv.total_convert ++; } conv.total_convert ++; conv.total_convert ++; } if( detail->EtatSelection_Ape > ETAT_ATTENTE_EXIST ) { if( Bits >= 24 ) { conv.total_convert ++; } conv.total_convert ++; conv.total_convert ++; } if( detail->EtatSelection_WavPack > ETAT_ATTENTE_EXIST ) { conv.total_convert ++; conv.total_convert ++; } if( detail->EtatSelection_Ogg > ETAT_ATTENTE_EXIST ) { if (TRUE == PConv->BoolEtatConv [ ETAT_FROM_WAV_TO_OGG ]) { conv.total_convert ++; } if (Bits == 24) { conv.total_convert ++; conv.total_convert ++; } conv.total_convert ++; conv.total_convert ++; } if( detail->EtatSelection_M4a > ETAT_ATTENTE_EXIST ) { conv.total_convert ++; if (Bits == 32 || Bits == 24) { conv.total_convert ++; conv.total_convert ++; } conv.total_convert ++; conv.total_convert ++; } if( detail->EtatSelection_Aac > ETAT_ATTENTE_EXIST ) { conv.total_convert ++; if (Bits == 24) { conv.total_convert ++; conv.total_convert ++; } if (Hertz < 44100) { conv.total_convert ++; conv.total_convert ++; } conv.total_convert ++; conv.total_convert ++; } if( detail->EtatSelection_Mpc > ETAT_ATTENTE_EXIST ) { conv.total_convert ++; if (Bits == 32 || Bits == 24) { conv.total_convert ++; conv.total_convert ++; } if (Hertz < 44100) { conv.total_convert ++; conv.total_convert ++; } conv.total_convert ++; conv.total_convert ++; } if( detail->EtatSelection_Mp3 > ETAT_ATTENTE_EXIST ) { conv.total_convert ++; conv.total_convert ++; conv.total_convert ++; } } ListGlobal = g_list_next(ListGlobal); } } // PREPARE LA LISTE POUR LES CONVERSIONS // void fileconv_set_flags_before_conversion_file (void) { GList *list = NULL; DETAIL *detail = NULL; CONV_FIC *PConv = NULL; gint CptEtat; gint NUm = 1; VarFileConv.BoolResultMplayerIsOk = TRUE; VarFileConv.BoolResultSoxIsOk = TRUE; list = g_list_first (entetefile); while (list) { if (NULL != (detail = (DETAIL *)list->data)) { // SI AUCUNE CONVERSION DANS CETTE LIGNE, CONTINUE if (detail->EtatSelection_Wav <= ETAT_ATTENTE_EXIST && detail->EtatSelection_Flac <= ETAT_ATTENTE_EXIST && detail->EtatSelection_Ape <= ETAT_ATTENTE_EXIST && detail->EtatSelection_WavPack <= ETAT_ATTENTE_EXIST && detail->EtatSelection_Ogg <= ETAT_ATTENTE_EXIST && detail->EtatSelection_M4a <= ETAT_ATTENTE_EXIST && detail->EtatSelection_Aac <= ETAT_ATTENTE_EXIST && detail->EtatSelection_Mpc <= ETAT_ATTENTE_EXIST && detail->EtatSelection_Mp3 <= ETAT_ATTENTE_EXIST) { list = g_list_next(list); continue; } // CREATION STRUCTURE detail->PConv = (CONV_FIC *)g_malloc0 (sizeof (CONV_FIC)); PConv = detail->PConv; // detail->BoolConvertActivate = FALSE; // INIT DOSSIER TEMPORAIRE if (NULL == conv.TmpRep) { conv.TmpRep = libutils_create_temporary_rep (Config.PathnameTMP, PATH_TMP_XCFA_AUDIOFILE); } // INIT ETAT for (CptEtat = 0; CptEtat < ETAT_BOOL_TOTAL; CptEtat ++) { PConv->BoolEtatConv [ CptEtat ] = FALSE; } // PREPARATION DES PATHNAMES DE DESTINATION PConv->dest_flac = file_get_pathname_dest (detail, "flac"); PConv->dest_wav = file_get_pathname_dest (detail, "wav"); PConv->dest_mp3 = file_get_pathname_dest (detail, "mp3"); PConv->dest_ogg = file_get_pathname_dest (detail, "ogg"); PConv->dest_m4a = file_get_pathname_dest (detail, "m4a"); PConv->dest_aac = file_get_pathname_dest (detail, "aac"); PConv->dest_mpc = file_get_pathname_dest (detail, "mpc"); PConv->dest_ape = file_get_pathname_dest (detail, "ape"); PConv->dest_wavpack = file_get_pathname_dest (detail, "wv"); PConv->dest_wavpack_md5 = file_get_pathname_dest (detail, "wvc"); // PREPARATION DES PATHNAMES TEMPORAIRES PConv->tmp_flac = g_strdup_printf ("%s/tmp_%d.flac", conv.TmpRep, NUm ); if (NULL != detail->NameFileCopyFromNormalizate) PConv->tmp_wav = g_strdup (detail->NameFileCopyFromNormalizate); else PConv->tmp_wav = g_strdup_printf ("%s/tmp_%d.wav", conv.TmpRep, NUm ); PConv->tmp_sox = g_strdup_printf ("%s/tmp_sox_%d.wav", conv.TmpRep, NUm ); PConv->tmp_sox_24 = g_strdup_printf ("%s/tmp_sox_24_%d.wav", conv.TmpRep, NUm ); PConv->tmp_mp3 = g_strdup_printf ("%s/tmp_%d.mp3", conv.TmpRep, NUm ); PConv->tmp_ogg = g_strdup_printf ("%s/tmp_%d.ogg", conv.TmpRep, NUm ); PConv->tmp_m4a = g_strdup_printf ("%s/tmp_%d.m4a", conv.TmpRep, NUm ); PConv->tmp_aac = g_strdup_printf ("%s/tmp_%d.aac", conv.TmpRep, NUm ); PConv->tmp_shn = g_strdup_printf ("%s/tmp_%d.shn", conv.TmpRep, NUm ); PConv->tmp_wma = g_strdup_printf ("%s/tmp_%d.wma", conv.TmpRep, NUm ); PConv->tmp_rm = g_strdup_printf ("%s/tmp_%d.rm", conv.TmpRep, NUm ); PConv->tmp_dts = g_strdup_printf ("%s/tmp_%d.dts", conv.TmpRep, NUm ); PConv->tmp_aiff = g_strdup_printf ("%s/tmp_%d.aiff", conv.TmpRep, NUm ); PConv->tmp_mpc = g_strdup_printf ("%s/tmp_%d.mpc", conv.TmpRep, NUm ); PConv->tmp_ape = g_strdup_printf ("%s/tmp_%d.ape", conv.TmpRep, NUm ); PConv->tmp_wavpack = g_strdup_printf ("%s/tmp_%d.wv", conv.TmpRep, NUm ); PConv->tmp_wavpack_md5 = g_strdup_printf ("%s/tmp_%d.wvc", conv.TmpRep, NUm ); PConv->tmp_ac3 = g_strdup_printf ("%s/tmp_%d.ac3", conv.TmpRep, NUm ); NUm ++; if( detail->type_infosong_file_is == FILE_IS_WAV ) { gint Channels; gint Hertz; gint Bits; tagswav_file_GetBitrate( detail->namefile, &Channels, &Hertz, &Bits ); PConv->BoolEtatConv [ ETAT_FROM_WAV_TO_OGG ] = detail->EtatSelection_Ogg > ETAT_ATTENTE_EXIST && (Bits != 24 && Bits != 16 && Bits != 8); PConv->BoolEtatConv [ ETAT_FROM_WAV_TO_M4A ] = detail->EtatSelection_M4a > ETAT_ATTENTE_EXIST && (Bits != 64 && Bits != 32 && Bits != 24 && Bits != 16 && Bits != 8); PConv->BoolEtatConv [ ETAT_FROM_WAV_TO_AAC ] = detail->EtatSelection_Aac > ETAT_ATTENTE_EXIST && (Bits != 64 && Bits != 32 && Bits != 24 && Bits != 16 && Bits != 8); } } list = g_list_next(list); } fileconv_get_total_convert(); /* g_print("\n"); g_print("conv.total_convert = %d\n", conv.total_convert); g_print("conv.total_percent = %f\n", conv.total_percent); g_print("conv.rip_completed = %d\n", conv.rip_completed); g_print("conv.encode_completed = %d\n", conv.encode_completed); g_print("conv.extract_percent = %f\n", conv.extract_percent); g_print("conv.conversion_percent = %f\n", conv.conversion_percent); g_print("conv.total_rip = %d\n", conv.total_rip); g_print("\n"); */ } // // void fileconv_action (void) { pthread_t nmr_tid; WindScan_open ("Conversions files", WINDSCAN_PULSE); WindScan_set_label ("Conversions files ..."); // VarFileConv.path_temp = g_mkdtemp( VarFileConv.tmp ); conv_reset_struct (WindScan_close_request); fileconv_set_flags_before_conversion_file (); VarFileConv.bool_thread_conv_one = TRUE; VarFileConv.bool_thread_conv_two = FALSE; VarFileConv.bool_thread_conv_three = FALSE; pthread_mutex_init( &mutex , NULL ) ; VarFileConv.bool_thread_conv_one = TRUE; pthread_create (&nmr_tid, NULL ,(void *)fileconv_thread_one, (void *)NULL); if( HostConf.NbCpu > 1 ) { VarFileConv.bool_thread_conv_two = TRUE; pthread_create (&nmr_tid, NULL ,(void *)fileconv_thread_two, (void *)NULL); } if( HostConf.NbCpu > 2 ) { VarFileConv.bool_thread_conv_three = TRUE; pthread_create (&nmr_tid, NULL ,(void *)fileconv_thread_three, (void *)NULL); } // VarFileConv.bool_thread_conv_two = FALSE; // VarFileConv.bool_thread_conv_three = FALSE; PRINT("DEBUT TIMEOUT FILECONV"); conv.handler_timeout_conv = gtk_timeout_add( 100, fileconv_timeout, 0 ); } xcfa-4.3.6/src/file_action.c0000644000175000017500000001352312122563465012607 00000000000000 /* * file : file_action.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ /* Salut Claude Le ReplayGain s'applique toujours en dernier, une fois toutes les conversions effectuées. Sauf bien sûr pour nettoyer mais en principe quand on nettoie les « tags » ReplayGain c'est la seule opération que l'on fait sur le/les fichier(s). Maxime xcfaudio a écrit : > Bonjour à tous, > > L'intégration du ReplayGain est en bonne voie ;) > > ? Juste une question d'ordre technique ? > > L'ordre de prise en compte par rapport à une sélection (globale) doit > bien être: > 1 - Clear ReplayGain > 2 - Normalisation Individuelle > 3 - Normalisation Collective > 4 - Conversions > 5 - ReplayGain > > Xavier, Maxime, Patrick ... ??? > */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "file.h" #include "replaygain.h" #include "win_scan.h" #include "normalise.h" #include "notify_send.h" /* *--------------------------------------------------------------------------- * VARIABLES *--------------------------------------------------------------------------- */ typedef struct { gboolean dedans; guint handler_timeout; gboolean bool_ReplaygainClear; gboolean bool_normalize; gboolean bool_conversion; gboolean bool_ReplaygainApply; gboolean bool_trash; gint NbrFileRemove; } FILE_ACTION; FILE_ACTION FileAction; // // void fileaction_set_end (FILEACTION_TYPE FileActionType) { FileAction.dedans = FALSE; switch (FileActionType) { case TYPE_REPLAYGAINCLEAR : FileAction.bool_ReplaygainClear = FALSE; break; case TYPE_NORMALISE : FileAction.bool_normalize = FALSE; break; case TYPE_CONVERSION : FileAction.bool_conversion = FALSE; break; case TYPE_REPLAYGAINAPPLY : FileAction.bool_ReplaygainApply = FALSE; break; case TYPE_TRASH : FileAction.bool_trash = FALSE; break; } } // // static gint fileaction_timeout (gpointer data) { if (FileAction.dedans == TRUE) return (TRUE); if (TRUE == conv.bool_stop) { FileAction.bool_ReplaygainClear = FALSE; FileAction.bool_normalize = FALSE; FileAction.bool_conversion = FALSE; FileAction.bool_ReplaygainApply = FALSE; FileAction.bool_trash = FALSE; } if (FileAction.bool_ReplaygainClear == TRUE) { FileAction.dedans = TRUE; replaygain_action (_CLEAR_REPLAYGAIN_); // FileAction.bool_ReplaygainClear = FALSE; return (TRUE); } if (FileAction.bool_normalize == TRUE) { FileAction.dedans = TRUE; normalise_action (); // FileAction.bool_normalize = FALSE; return (TRUE); } if (FileAction.bool_conversion == TRUE) { FileAction.dedans = TRUE; fileconv_action (); // FileAction.bool_conversion = FALSE; return (TRUE); } if (FileAction.bool_ReplaygainApply == TRUE) { FileAction.dedans = TRUE; replaygain_action (_APPLY_REPLAYGAIN_); // FileAction.bool_ReplaygainApply = FALSE; return (TRUE); } if (FileAction.bool_trash == TRUE) { FileAction.dedans = TRUE; filetrash_action (); // FileAction.bool_trash = FALSE; return (TRUE); } if (FALSE == FileAction.bool_ReplaygainClear && FALSE == FileAction.bool_normalize && FALSE == FileAction.bool_conversion && FALSE == FileAction.bool_ReplaygainApply && FALSE == FileAction.bool_trash) { WindScan_close (); gtk_timeout_remove (FileAction.handler_timeout); if (FALSE == conv.bool_stop) { NotifySend_msg (_("XCFA: Traitement fichiers"), _("Ok"), conv.bool_stop); } else { NotifySend_msg (_("XCFA: Traitement fichiers"), _("Arret par l'utilisateur"), conv.bool_stop); } } return (TRUE); } // // gboolean fileaction_get_bool_Replaygain_Is_Clear (void) { GList *list = NULL; DETAIL *detail = NULL; list = g_list_first (entetefile); while (list) { if (NULL != (detail = (DETAIL *)list->data)) { if (detail->type_infosong_file_is == FILE_IS_OGG || detail->type_infosong_file_is == FILE_IS_MP3 || detail->type_infosong_file_is == FILE_IS_FLAC || detail->type_infosong_file_is == FILE_IS_WAVPACK) { if (detail->Etat_ReplayGain == RPG_EFFACER) return (TRUE); } } list = g_list_next (list); } return (FALSE); } // // void fileaction_choice (void) { FileAction.dedans = FALSE; FileAction.NbrFileRemove = 0; conv.bool_stop = FALSE; // PRINT_FUNC_LF(); // VERIFICATION DE LA PRESENCE DES FICHIERS SUR LA MEMOIRE DE MASSE file_verify_before_conversion (); FileAction.bool_ReplaygainClear = fileaction_get_bool_Replaygain_Is_Clear (); FileAction.bool_normalize = normalise_is_individuel (); FileAction.bool_conversion = file_get_bool_is_conversion (); FileAction.bool_ReplaygainApply = file_get_bool_ReplaygainApply (); FileAction.bool_trash = filetrash_ok (); FileAction.handler_timeout = gtk_timeout_add (150, fileaction_timeout, 0); } xcfa-4.3.6/src/alsa_play.h0000644000175000017500000000232212122563437012277 00000000000000 /* * file : alsa_play.h * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifndef play_alsa_h #define play_alsa_h 1 void AlsaPlay_song (gchar *NameFile, gdouble PBegin, gdouble PEnd, void *p_FuncSetValueTime, void *p_FuncIconeStop); void AlsaPlay_fseek (gdouble p_NewPosInPercent); void AlsaPlay_stop (void); void AlsaPlay_Pause (void); void AlsaPlay_remove (void); gboolean AlsaPlay_is_play (void); #endif xcfa-4.3.6/src/split_cue.c0000644000175000017500000003341512122563465012324 00000000000000 /* * file : split_cue.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "tags.h" #include "conv.h" #include "configuser.h" #include "win_scan.h" #include "win_info.h" #include "prg_init.h" #include "split.h" extern VAR_SPLIT VarSplit; // // // // float SplitCue_get_time_in_sec (gchar *p_str) { gchar *Ptr = NULL; guint Min, Sec, Hundr; float SecondesTempsActuel = 0; // MINUTES if ((Ptr = strchr (p_str, ':')) != NULL) { while (*Ptr != ' ') Ptr --; if (*Ptr == ' ') Ptr ++; Min = atoi (Ptr); // SECONDES if ((Ptr = strchr (p_str, ':')) != NULL) { Ptr ++; Sec = atoi (Ptr); // CENTIEMES if ((Ptr = strrchr (p_str, ':')) != NULL) { Ptr ++; Hundr = atoi (Ptr); // Temps Total en secondes SecondesTempsActuel = ((float)Min * 60.0) + (float)Sec + ((float)Hundr / 100.0); } } } return (SecondesTempsActuel); } // // TEST LA COHERENCE DU FICHIER CUE // LECTURE DES INFOS DU FICHIER // RETOURNE LE NOM DU FICHIER DE MUSIQUE ASSOCIE // gchar *SplitCue_read_cue_file (gchar *p_pathname) { FILE *fp; #define MAX_CARS_SPLIT_CUE_FILE 255 gchar buf [ MAX_CARS_SPLIT_CUE_FILE + 4 ]; gchar *PathNameSong = NULL; gchar *StrNameSong = NULL; gchar *Ptr = NULL; gchar *Path = NULL; gint IndicePoints = -1; gint FileTimeSec; gboolean BoolResultOk; // // TEST LA COHERENCE DU FICHIER CUE // if (NULL == (fp = fopen (p_pathname, "r"))) { wininfo_create ( WindMain, _("Erreur de lecture !"), ""); return (NULL); } // PERFORMER "Rita Mitsouko / Rita Mitsouko" // TITLE "Rita Mitsouko / Rita Mitsouko" // FILE "XCFA_CUE.wav" WAVE // // PERFORMER "José de Divina" // TITLE "Ibiza World Tour @ Space" // FILE "Ibiza1.mp3" WAVE // // REM GENRE Jazz // REM DATE 1966 // REM DISCID 120F4902 // REM COMMENT "ExactAudioCopy v0.95b4" // PERFORMER "John Coltrane" // TITLE "Live in Japan (CD1)" // FILE "un.flac" WAVE // REM Cue file written by K3b 1.0.5 // PERFORMER "Rita Mitsouko" // TITLE "Rita Mitsouko" // FILE "01 - Restez Avec Moi.wav" WAVE while (fgets (buf, MAX_CARS_SPLIT_CUE_FILE, fp) != NULL) { // Si debut de ligne ok if (NULL != (Ptr = strstr (buf, "FILE \""))) { // StrNameSong contiendra le nom du fichier delimite par les signes " Ptr = strchr (buf, '"'); Ptr ++; StrNameSong = g_strdup (Ptr); if ((Ptr = strrchr (StrNameSong, '"')) == NULL) { fclose (fp); g_free (StrNameSong); StrNameSong = NULL; return (NULL); } *Ptr = '\0'; // Path contiendra le chemin Path = g_strdup (p_pathname); if ((Ptr = strrchr (Path, '/')) != NULL) { *Ptr = '\0'; } // PathNameSong contiendra: chemin + nom du fichier musical PathNameSong = g_strdup_printf ("%s/%s", Path, StrNameSong); g_free (Path); Path = NULL; g_free (StrNameSong); StrNameSong = NULL; break; } } fclose (fp); // LES TESTS if (NULL == PathNameSong) { wininfo_create ( WindMain, _("Erreur"), _("Aucun fichier de musique associe au cue-file !"), ""); return (NULL); } if (FALSE == FileIs_g_str_has_suffix (PathNameSong, ".WAV")) { if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("====\n%s\n----\n%s\t%s\n\t\tFILE NOT IN: .wav\n====\n", p_pathname, buf, PathNameSong); wininfo_create ( WindMain, _("Erreur"), _("Pas de fichier WAV dans le cue-file !"), ""); g_free (PathNameSong); PathNameSong = NULL; return (NULL); } if (FALSE == libutils_test_file_exist (PathNameSong)) { PRINT("AUCUN FICHIER DE MUSIQUE ASSOCIE DANS LE DOSSIER"); wininfo_create ( WindMain, _("Erreur"), _("Aucun fichier de musique associe dans le dossier"), "\n", _("du cue-file"), ""); return (NULL); } // // LECTURE DES INFOS DU FICHIER // FileTimeSec = tagswav_get_time_sec (PathNameSong); if( NULL != ( fp = fopen( p_pathname, "r" )) ) { while (fgets (buf, MAX_CARS_SPLIT_CUE_FILE, fp) != NULL) { if (strstr (buf, "TRACK ")) { // g_print("TRACK ->%s", buf); } // DEBUT else if (strstr (buf, "INDEX 01")) { IndicePoints ++; VarSplit.Selecteur [ IndicePoints ] . Nmr = IndicePoints; VarSplit.Selecteur [ IndicePoints ] . BeginPaint = SplitCue_get_time_in_sec (buf); VarSplit.Selecteur [ IndicePoints ] . PercentBegin = ((gdouble)VarSplit.Selecteur [ IndicePoints ] . BeginPaint / (gdouble)FileTimeSec) * 100.0; } // FIN else if (strstr (buf, "INDEX 00")) { // SOLVED Sun, 03 Feb 2013 22:17:05 +0100 if( -1 == IndicePoints ) IndicePoints = 0; VarSplit.Selecteur [ IndicePoints ] . Nmr = IndicePoints; VarSplit.Selecteur [ IndicePoints ] . EndPaint = SplitCue_get_time_in_sec (buf); VarSplit.Selecteur [ IndicePoints ] . PercentEnd = ((gdouble)VarSplit.Selecteur [ IndicePoints ] . EndPaint / (gdouble)FileTimeSec) * 100.0; } else if (strstr (buf, "TITLE ")) { // g_print("TITLE ->%s", buf); } } fclose (fp); } // AJUSTER LE DEBUT VarSplit.Selecteur [ 0 ] . BeginPaint = 1; // AJUSTER LA FIN VarSplit.Selecteur [ IndicePoints ] . PercentEnd = 99.99; VarSplit.Selecteur [ IndicePoints ] . EndPaint = FileTimeSec; // TESTER LA COHERENCE DES DATAS BoolResultOk = TRUE; if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("\n"); for (IndicePoints = 0; VarSplit.Selecteur [ IndicePoints ] . Nmr != -1; IndicePoints ++) { if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("[ %2d ] TIME = %05d BEGIN = %5d END = %5d PERCENTBEGIN = %f PERCENTEND = %f\n", VarSplit.Selecteur [ IndicePoints ] . Nmr, FileTimeSec, (gint)VarSplit.Selecteur [ IndicePoints ] . BeginPaint, (gint)VarSplit.Selecteur [ IndicePoints ] . EndPaint, VarSplit.Selecteur [ IndicePoints ] . PercentBegin, VarSplit.Selecteur [ IndicePoints ] . PercentEnd ); if ((gint)VarSplit.Selecteur [ IndicePoints ] . BeginPaint > (gint)VarSplit.Selecteur [ IndicePoints ] . EndPaint) { BoolResultOk = FALSE; if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("\t--- ERREUR [ 1 ] DE DATAS DANS LE FICHIER CUE !!! ---\n"); } if (VarSplit.Selecteur [ IndicePoints +1 ] . Nmr != -1) { if ((gint)VarSplit.Selecteur [ IndicePoints ] . EndPaint > (gint)VarSplit.Selecteur [ IndicePoints +1 ] . BeginPaint) { BoolResultOk = FALSE; if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("\t--- [ 2 ] ERREUR DE DATAS DANS LE FICHIER CUE !!! ---\n"); } } } if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("\n"); // ERREUR DE DATAS DANS LE FICHIER CUE !!! if (FALSE == BoolResultOk) { if (NULL != PathNameSong) { g_free (PathNameSong); PathNameSong = NULL; wininfo_create ( WindMain, _("Erreur de donnees dans le fichier CUE"), _("La solution est d'importer le fichier de"), "\n", _("musique qui sera reconnu et pre-decoupe"), "\n", _("dans le module Split."), "\n\n", _("Il ne restera qu'a ajuster les plages pour"), "\n", _("generer un nouveau cue-file ou des decoupes"), "\n", _("correspondant aux plages."), ""); } } // // RETOURNE LE NOM DU FICHIER DE MUSIQUE ASSOCIE // return ((gchar *)PathNameSong); } // // // void on_button_gen_cue_split_clicked (GtkButton *button, gpointer user_data) { gint IndicePoints; gdouble Percent; // gint H; gint M, S, C; gint hundr; gint sec; gdouble dsec; gdouble TimeSongSec; gchar *Ptr = NULL; gchar *PathNameFileCue = NULL; gchar *NameFileWav = NULL; gchar *PathFileCue = NULL; gchar *NameFileCue = NULL; gint NumFileCue; FILE *fp; PRINT_FUNC_LF(); TimeSongSec = VarSplit.Tags->SecTime; for (IndicePoints = 0; VarSplit.Selecteur [ IndicePoints ] . Nmr != -1; IndicePoints ++) { Percent = VarSplit.Selecteur [ IndicePoints ] . PercentBegin; sec = (gint) (((gdouble)TimeSongSec * (gdouble)Percent) / 100.0); dsec = ((gdouble)TimeSongSec *(gdouble)Percent) / 100.0; hundr = ((gdouble)dsec - (gdouble)sec) * 100.0; // H = (sec / 60) / 60; M = (sec / 60) % 60; S = sec % 60; C = hundr; if( TRUE == OptionsCommandLine.BoolVerboseMode ) { g_print ("[ %02d ] ", IndicePoints); g_print ("%02d:%02d:%02d ", M, S, C); } Percent = VarSplit.Selecteur [ IndicePoints ] . PercentEnd; sec = (gint) (((gdouble)TimeSongSec * (gdouble)Percent) / 100.0); dsec = ((gdouble)TimeSongSec *(gdouble)Percent) / 100.0; hundr = ((gdouble)dsec - (gdouble)sec) * 100.0; // H = (sec / 60) / 60; M = (sec / 60) % 60; S = sec % 60; C = hundr; if( TRUE == OptionsCommandLine.BoolVerboseMode ) { g_print ("%02d:%02d:%02d", M, S, C); g_print ("\n"); } } if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("\n"); // NOM DU CUE /*PathNameFileCue = g_strdup (VarSplit.PathNameFile); Ptr = strrchr (PathNameFileCue, '.'); Ptr ++; *Ptr ++ = 'c'; *Ptr ++ = 'u'; *Ptr ++ = 'e'; *Ptr ++ = '\0';*/ Ptr = strrchr (VarSplit.PathNameFileReal, '/'); PathNameFileCue = g_strdup_printf ("%s%s", Config.PathDestinationSplit, Ptr); Ptr = strrchr (PathNameFileCue, '.'); Ptr ++; *Ptr ++ = 'c'; *Ptr ++ = 'u'; *Ptr ++ = 'e'; *Ptr ++ = '\0'; // NOM DU WAV Ptr = strrchr (VarSplit.PathNameFile, '/'); Ptr ++; NameFileWav = g_strdup (Ptr); // DEBUG if( TRUE == OptionsCommandLine.BoolVerboseMode ) { g_print ("PathNameFileCue = %s\n", PathNameFileCue); g_print ("NameFileWav = %s\n", NameFileWav); } // CHANGER LE NOM DU FICHIER CUE SI IL EXIST if (TRUE == libutils_test_file_exist (PathNameFileCue)) { PRINT("PathNameFileCue EXIST"); // PATH CUE FILE PathFileCue = g_strdup (PathNameFileCue); Ptr = strrchr (PathFileCue, '/'); Ptr ++; *Ptr = '\0'; // NAME CUE FILE Ptr = strrchr (PathNameFileCue, '/'); Ptr ++; NameFileCue = g_strdup (Ptr); NumFileCue = 1; while (TRUE == libutils_test_file_exist (PathNameFileCue)) { g_free (PathNameFileCue); PathNameFileCue = NULL; PathNameFileCue = g_strdup_printf ("%s%02d_%s", PathFileCue, NumFileCue, NameFileCue); NumFileCue ++; } g_free (PathFileCue); PathFileCue = NULL; g_free (NameFileCue); NameFileCue = NULL; if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("NOUVEAU PathNameFileCue = %s\n", PathNameFileCue); } fp = fopen (PathNameFileCue, "w"); // PRODUCTION DU FICHIER CUE if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("\n"); fprintf (fp, "REM Cue file written by Xcfa\n\n"); fprintf (fp, "PERFORMER \"%s\"\n", "CHANTEUR"); fprintf (fp, "TITLE \"%s\"\n", "TITRE DISQUE"); fprintf (fp, "FILE \"%s\" WAVE\n", NameFileWav); // DUREE TOTALE EXPRIMEE EN SECONDES TimeSongSec = VarSplit.Tags->SecTime; for (IndicePoints = 0; VarSplit.Selecteur [ IndicePoints ] . Nmr != -1; IndicePoints ++) { fprintf (fp, " TRACK %02d AUDIO\n", IndicePoints +1); fprintf (fp, " PERFORMER \"\"\n"); fprintf (fp, " TITLE \"Track_%02d\"\n", IndicePoints +1); if (IndicePoints > 0) { // INDEX DE FIN Percent = VarSplit.Selecteur [ IndicePoints -1 ] . PercentEnd; sec = (gint) (((gdouble)TimeSongSec * (gdouble)Percent) / 100.0); dsec = ((gdouble)TimeSongSec *(gdouble)Percent) / 100.0; hundr = ((gdouble)dsec - (gdouble)sec) * 100.0; // H = (sec / 60) / 60; M = (sec / 60) % 60; S = sec % 60; C = hundr; fprintf (fp, " INDEX 00 %02d:%02d:%02d\n", M, S, C); } // INDEX DE DEBUT Percent = VarSplit.Selecteur [ IndicePoints ] . PercentBegin; sec = (gint) (((gdouble)TimeSongSec * (gdouble)Percent) / 100.0); dsec = ((gdouble)TimeSongSec *(gdouble)Percent) / 100.0; hundr = ((gdouble)dsec - (gdouble)sec) * 100.0; // H = (sec / 60) / 60; M = (sec / 60) % 60; S = sec % 60; C = hundr; fprintf (fp, " INDEX 01 %02d:%02d:%02d\n", M, S, C); } fprintf (fp, "\n"); fclose (fp); g_free (PathNameFileCue); PathNameFileCue = NULL; g_free (NameFileWav); NameFileWav = NULL; } // // // void SplitCue_thread (void) { SplitWav_extract(); PRINT("FIN THREAD SPLIT EXTRACT"); conv.bool_thread_conv = FALSE; pthread_exit(0); } // // // static gint SplitCue_timeout (gpointer data) { if (TRUE == conv.bool_thread_conv) { } else { PRINT("FIN TIMEOUT SPLIT EXTRACT"); gtk_timeout_remove (conv.handler_timeout_conv); WindScan_close (); } return (TRUE); } // // // void on_button_action_split_clicked (GtkButton *button, gpointer user_data) { pthread_t nmr_tid; PRINT_FUNC_LF(); WindScan_open ("Split file", WINDSCAN_PULSE); WindScan_set_label ("Split file ..."); conv_reset_struct (WindScan_close_request); conv.bool_thread_conv = TRUE; PRINT("DEBUT THREAD SPLIT EXTRACT"); pthread_create (&nmr_tid, NULL ,(void *)SplitCue_thread, (void *)NULL); PRINT("DEBUT TIMEOUT SPLIT EXTRACT"); conv.handler_timeout_conv = gtk_timeout_add (300, SplitCue_timeout, 0); } xcfa-4.3.6/src/parse.h0000644000175000017500000000232212122563437011444 00000000000000/* * file : parse.h * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifndef parse_h #define parse_h 1 typedef enum { PARSE_TYPE_STOCKAGE_CD = 0, PARSE_TYPE_TITLE_CD } PARSE_TYPE; void Parse_entry( PARSE_TYPE p_ParseType ); void Parse_remove( PARSE_TYPE p_ParseType, gboolean b_see ); void Parse_print_cd( PARSE_TYPE p_ParseType ); gchar *Parse_get_line( PARSE_TYPE p_ParseType, gint p_Num_cell ); #endif xcfa-4.3.6/src/get_info.h0000644000175000017500000000355112122563437012131 00000000000000 /* * file : get_info.h * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifndef get_info_h #define get_info_h 1 #include "file.h" typedef struct { guint SecTime; gchar *time; gchar *size; } SHNTAG; SHNTAG *GetInfo_shntool (gchar *file); SHNTAG *GetInfo_free_shntool (SHNTAG *ShnTag); GString *GetInfo_file (gchar *file); GString *GetInfo_checkmp3 (gchar *file); GString *GetInfo_cdparanoia( gchar *p_device ); GString *GetInfo_faad (gchar *file); GString *GetInfo_ogginfo (gchar *file); GString *GetInfo_mediainfo (gchar *file); GString *GetInfo_which (gchar *file); GString *GetInfo_cdplay (gchar *file); GString *GetInfo_metaflac (gchar *file); gchar *GetInfo_cpu (void); void GetInfo_cpu_print (void); gchar *GetInfo_cpu_str (void); gboolean GetInfo_wget (void); void GetInfo_eject (gchar *StrDevice); TYPE_FILE_IS GetInfo_file_is (gchar *PathName); glong GetInfo_level_df (void); gboolean GetInfo_level_bool_percent (void); gint GetInfo_level_get_from (TYPE_FILE_IS TypeFileIs, gchar *file); gchar *GetInfo_cd_discid( gchar *p_device ); #endif xcfa-4.3.6/src/cd_audio.c0000644000175000017500000031275412122563465012112 00000000000000 /* * file : cd_audio.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "cd_audio_extract.h" #include "fileselect.h" #include "prg_init.h" #include "configuser.h" #include "scan.h" #include "options.h" #include "parse.h" #include "win_reader.h" #include "mplayer.h" #include "popup.h" #include "win_info.h" #include "cd_curl.h" #include "cd_audio.h" #include "statusbar.h" /* *--------------------------------------------------------------------------- * VARIABLES *--------------------------------------------------------------------------- */ enum { NUM_TREE_CDAUDIO_PLAY = 0, NUM_TREE_CDAUDIO_WAV, NUM_TREE_CDAUDIO_FLAC, NUM_TREE_CDAUDIO_APE, NUM_TREE_CDAUDIO_WAVP, NUM_TREE_CDAUDIO_OGG, NUM_TREE_CDAUDIO_M4A, NUM_TREE_CDAUDIO_AAC, NUM_TREE_CDAUDIO_MPC, NUM_TREE_CDAUDIO_MP3, NUM_TREE_CDAUDIO_NUM, NUM_TREE_CDAUDIO_TIME, NUM_TREE_CDAUDIO_NORMALISE, NUM_TREE_CDAUDIO_NOM, NUM_TREE_CDAUDIO_ALL_COLUMN }; enum { COLUMN_CDAUDIO_PLAY = 0, COLUMN_CDAUDIO_WAV, COLUMN_CDAUDIO_FLAC, COLUMN_CDAUDIO_APE, COLUMN_CDAUDIO_WAVPACK, COLUMN_CDAUDIO_OGG, COLUMN_CDAUDIO_M4A, COLUMN_CDAUDIO_AAC, COLUMN_CDAUDIO_MPC, COLUMN_CDAUDIO_MP3, COLUMN_CDAUDIO_TRACK_NUM, COLUMN_CDAUDIO_TRACK_TIME, COLUMN_CDAUDIO_FILE_NORMALIZE, COLUMN_CDAUDIO_TRACK_NAME, COLUMN_CDAUDIO_COLOR, CD_NUM_COLUMNS }; typedef struct { GdkPixbuf *PlayTrack; GdkPixbuf *Flac; GdkPixbuf *Wav; GdkPixbuf *Mp3; GdkPixbuf *Ogg; GdkPixbuf *M4a; GdkPixbuf *Aac; GdkPixbuf *Mpc; GdkPixbuf *Ape; GdkPixbuf *WavPack; gchar *Track_Num; gchar *Track_Time; GdkPixbuf *ColumnCDNormalize; gchar *Track_Name; } ARTICLES_CD; GArray *Articles_cd = NULL; /* */ VAR_CD var_cd; /* */ ENTETE_CD EnteteCD; /* */ gboolean BoolPathCaractersStrip = FALSE; // // void cdaudio_put_label_titre (gchar *Messag) { gchar *Str = NULL; Str = g_strdup_printf ("%s", Messag); gtk_label_set_markup (GTK_LABEL (var_cd.Adr_Label_Titre), Str); g_free (Str); Str = NULL; } // // void cdaudio_put_label_duree (gchar *Messag) { gchar *Str = NULL; Str = g_strdup_printf ("%s", Messag); gtk_label_set_markup (GTK_LABEL (var_cd.Adr_Label_Duree), Str); g_free (Str); Str = NULL; } // // gboolean cdaudio_bool_from_to (TYPE_FILE_IS p_to, gboolean is_mess) { if (p_to == FILE_IS_FLAC) { return (PrgInit.bool_flac); } else if (p_to == FILE_IS_WAV) { if (Config.ExtractCdWith == EXTRACT_WITH_CDDA2WAV) { return (PrgInit.bool_cdda2wav); } else { return (PrgInit.bool_cdparanoia); } } else if (p_to == FILE_IS_MP3) { return (PrgInit.bool_lame); } else if (p_to == FILE_IS_OGG) { return (PrgInit.bool_oggenc); } else if (p_to == FILE_IS_M4A) { return (PrgInit.bool_faac); } else if (p_to == FILE_IS_AAC) { return (PrgInit.bool_aacplusenc); } else if (p_to == FILE_IS_MPC) { return (PrgInit.bool_mppenc); } else if (p_to == FILE_IS_APE) { return (PrgInit.bool_ape); } else if (p_to == FILE_IS_WAVPACK) { return (PrgInit.bool_wavpack); } else if (p_to == FILE_TO_NORMALISE) { return (PrgInit.bool_normalize); } return (FALSE); } // // gboolean cdaudio_file_exist (CD_AUDIO *Audio, TYPE_FILE_IS TypeFileIs) { gchar *PathDest = NULL; gchar *PathNameDest = NULL; gboolean BoolExist = FALSE; if (NULL != Audio) { PathDest = cdaudio_get_result_destination (); if (TypeFileIs == FILE_IS_FLAC) PathNameDest = g_strdup_printf ("%s/%s.flac", PathDest, Audio->NameSong); else if (TypeFileIs == FILE_IS_WAV) PathNameDest = g_strdup_printf ("%s/%s.wav", PathDest, Audio->NameSong); else if (TypeFileIs == FILE_IS_MP3) PathNameDest = g_strdup_printf ("%s/%s.mp3", PathDest, Audio->NameSong); else if (TypeFileIs == FILE_IS_OGG) PathNameDest = g_strdup_printf ("%s/%s.ogg", PathDest, Audio->NameSong); else if (TypeFileIs == FILE_IS_M4A) PathNameDest = g_strdup_printf ("%s/%s.m4a", PathDest, Audio->NameSong); else if (TypeFileIs == FILE_IS_AAC) PathNameDest = g_strdup_printf ("%s/%s.aac", PathDest, Audio->NameSong); else if (TypeFileIs == FILE_IS_MPC) PathNameDest = g_strdup_printf ("%s/%s.mpc", PathDest, Audio->NameSong); else if (TypeFileIs == FILE_IS_APE) PathNameDest = g_strdup_printf ("%s/%s.ape", PathDest, Audio->NameSong); else if (TypeFileIs == FILE_IS_WAVPACK) PathNameDest = g_strdup_printf ("%s/%s.wv", PathDest, Audio->NameSong); if (NULL != PathNameDest) { // g_print("\tPathNameDest = %s\n",PathNameDest); BoolExist = libutils_test_file_exist (PathNameDest); } g_free (PathNameDest); PathNameDest = NULL; g_free (PathDest); PathDest = NULL; } return (BoolExist); } // // ETAT_SELECTION_CD cdaudio_get_next_flag (TYPE_FILE_IS type_file_is, gboolean p_flag_next, gint p_NumTrack) { GList *List = NULL; CD_AUDIO *Audio = NULL; ETAT_SELECTION_CD etat = CD_ETAT_ATTENTE; gboolean BoolOpExpert = FALSE; gboolean BoolFileExist = FALSE; if (FALSE == cdaudio_bool_from_to (type_file_is, TRUE)) return (CD_ETAT_PRG_ABSENT); if (NULL != (List = g_list_nth (EnteteCD.GList_Audio_cd, p_NumTrack))) { if (NULL != (Audio = (CD_AUDIO *)List->data)) { if (type_file_is == FILE_IS_FLAC) { etat = Audio->EtatSelection_Flac; BoolOpExpert = options_get_entry_is_valid (FLAC_WAV_TO_FLAC); } else if (type_file_is == FILE_IS_WAV) { etat = Audio->EtatSelection_Wav; BoolOpExpert = options_get_entry_is_valid (CDPARANOIA_CD_TO_WAV); } else if (type_file_is == FILE_IS_MP3) { etat = Audio->EtatSelection_Mp3; BoolOpExpert = options_get_entry_is_valid (LAME_WAV_TO_MP3); } else if (type_file_is == FILE_IS_OGG) { etat = Audio->EtatSelection_Ogg; BoolOpExpert = options_get_entry_is_valid (OGGENC_WAV_TO_OGG); } else if (type_file_is == FILE_IS_M4A) { etat = Audio->EtatSelection_M4a; BoolOpExpert = options_get_entry_is_valid (FAAC_WAV_TO_M4A); } else if (type_file_is == FILE_IS_AAC) { etat = Audio->EtatSelection_Aac; BoolOpExpert = options_get_entry_is_valid (AACPLUSENC_WAV_TO_AAC); } else if (type_file_is == FILE_IS_MPC) { etat = Audio->EtatSelection_Mpc; BoolOpExpert = options_get_entry_is_valid (MPPENC_WAV_TO_MPC); } else if (type_file_is == FILE_IS_APE) { etat = Audio->EtatSelection_Ape; BoolOpExpert = options_get_entry_is_valid (MAC_WAV_TO_APE); } else if (type_file_is == FILE_IS_WAVPACK) { etat = Audio->EtatSelection_WavPack; BoolOpExpert = options_get_entry_is_valid (WAVPACK_WAV_TO_WAVPACK); } BoolFileExist = cdaudio_file_exist (Audio, type_file_is); switch (etat) { case CD_ETAT_NONE : return (BoolFileExist ? CD_ETAT_ATTENTE_EXIST : ETAT_ATTENTE); case CD_ETAT_PRG_ABSENT : return (CD_ETAT_PRG_ABSENT); case CD_ETAT_ATTENTE : if (TRUE == p_flag_next) { if (TRUE == BoolFileExist) { return (CD_ETAT_SELECT_EXIST); } return (CD_ETAT_SELECT); } if (TRUE == BoolFileExist) return (CD_ETAT_ATTENTE_EXIST); return (CD_ETAT_ATTENTE); case CD_ETAT_ATTENTE_EXIST : if (TRUE == p_flag_next) { if (TRUE == BoolFileExist) { return (CD_ETAT_SELECT_EXIST); } return (CD_ETAT_SELECT); } if (TRUE == BoolFileExist) return (CD_ETAT_ATTENTE_EXIST); return (CD_ETAT_ATTENTE); case CD_ETAT_SELECT : if (TRUE == p_flag_next) { if (TRUE == BoolFileExist) { if (type_file_is != FILE_IS_WAV && BoolOpExpert == TRUE) return (CD_ETAT_SELECT_EXPERT_EXIST); return (CD_ETAT_ATTENTE_EXIST); } if (type_file_is != FILE_IS_WAV && BoolOpExpert == TRUE) return (CD_ETAT_SELECT_EXPERT); return (CD_ETAT_ATTENTE); } if (TRUE == BoolFileExist) return (ETAT_SELECT_EXIST); return (CD_ETAT_SELECT); case CD_ETAT_SELECT_EXIST : if (TRUE == p_flag_next) { if (TRUE == BoolFileExist) { if (BoolOpExpert == TRUE) return (CD_ETAT_SELECT_EXPERT_EXIST); return (ETAT_ATTENTE_EXIST); } if (BoolOpExpert == TRUE) return (CD_ETAT_ATTENTE_EXIST); return (CD_ETAT_ATTENTE); } if (FALSE == BoolFileExist) return (CD_ETAT_SELECT); return (CD_ETAT_SELECT_EXIST); case CD_ETAT_SELECT_EXPERT : if (TRUE == p_flag_next) { if (TRUE == BoolFileExist) { return (CD_ETAT_ATTENTE_EXIST); } return (CD_ETAT_ATTENTE); } if (TRUE == BoolFileExist) return (CD_ETAT_SELECT_EXPERT_EXIST); return (CD_ETAT_SELECT_EXPERT); case CD_ETAT_SELECT_EXPERT_EXIST : if (TRUE == p_flag_next) { if (TRUE == BoolFileExist) { return (CD_ETAT_ATTENTE_EXIST); } return (CD_ETAT_ATTENTE); } if (FALSE == BoolFileExist) return (CD_ETAT_SELECT_EXPERT); return (CD_ETAT_SELECT_EXPERT_EXIST); } } } return (CD_ETAT_ATTENTE); } // // GdkPixbuf *cdaudio_get_pixbuf_file (CD_AUDIO *Audio, TYPE_FILE_IS p_type_file_is) { ETAT_SELECTION_CD etat = CD_ETAT_ATTENTE; gint NumTrack = Audio->Num_Track -1; if (cdaudio_bool_from_to (p_type_file_is, TRUE) == FALSE) return (var_cd.Pixbuf_NotInstall); if (p_type_file_is == FILE_IS_FLAC) etat = Audio->EtatSelection_Flac = cdaudio_get_next_flag (p_type_file_is, FALSE, NumTrack); else if (p_type_file_is == FILE_IS_WAV) etat = Audio->EtatSelection_Wav = cdaudio_get_next_flag (p_type_file_is, FALSE, NumTrack); else if (p_type_file_is == FILE_IS_OGG) etat = Audio->EtatSelection_Ogg = cdaudio_get_next_flag (p_type_file_is, FALSE, NumTrack); else if (p_type_file_is == FILE_IS_MP3) etat = Audio->EtatSelection_Mp3 = cdaudio_get_next_flag (p_type_file_is, FALSE, NumTrack); else if (p_type_file_is == FILE_IS_M4A) etat = Audio->EtatSelection_M4a = cdaudio_get_next_flag (p_type_file_is, FALSE, NumTrack); else if (p_type_file_is == FILE_IS_AAC) etat = Audio->EtatSelection_Aac = cdaudio_get_next_flag (p_type_file_is, FALSE, NumTrack); else if (p_type_file_is == FILE_IS_MPC) etat = Audio->EtatSelection_Mpc = cdaudio_get_next_flag (p_type_file_is, FALSE, NumTrack); else if (p_type_file_is == FILE_IS_APE) etat = Audio->EtatSelection_Ape = cdaudio_get_next_flag (p_type_file_is, FALSE, NumTrack); else if (p_type_file_is == FILE_IS_WAVPACK) etat = Audio->EtatSelection_WavPack = cdaudio_get_next_flag (p_type_file_is, FALSE, NumTrack); else if (p_type_file_is == FILE_TO_NORMALISE) { if (Audio->EtatNormalise == TRUE) { return (var_cd.Pixbuf_Selected); } else { return (var_cd.Pixbuf_Coche); } } switch (etat) { case CD_ETAT_NONE : return (NULL); case CD_ETAT_PRG_ABSENT : return (var_cd.Pixbuf_NotInstall); case CD_ETAT_ATTENTE : return (var_cd.Pixbuf_Coche); case CD_ETAT_ATTENTE_EXIST : return (var_cd.Pixbuf_Coche_exist); case CD_ETAT_SELECT : return (var_cd.Pixbuf_Selected); case CD_ETAT_SELECT_EXIST : return (var_cd.Pixbuf_Selected_exist); case CD_ETAT_SELECT_EXPERT : return (var_cd.Pixbuf_Selected_expert); case CD_ETAT_SELECT_EXPERT_EXIST : return (var_cd.Pixbuf_Selected_expert_exist); } return (NULL); } /* Modification complete de l'etat des flags 'Audio->Bool_Extract_xxx' du GList 'EnteteCD.GList_Audio_cd' * Modification complete de la representation graphique (a l'ecran) de l'etat d'apres le GList * -- * entree : * TYPE_FILE_IS type : Structure * gboolean Is_Select : Etat de 'var_cd.Pixbuf_Coche' inversee * retour : - */ void cdaudio_change_all_flags_extract_verticaly (TYPE_FILE_IS type_file_is) { CD_AUDIO *Audio = NULL; GdkPixbuf *Pixbuf = NULL; GList *List = NULL; gboolean valid; GtkTreeIter iter; gint NumTrack = 0; valid = gtk_tree_model_get_iter_first (var_cd.Adr_Tree_Model, &iter); while (valid) { List = g_list_nth (EnteteCD.GList_Audio_cd, NumTrack); if ((Audio = (CD_AUDIO *)List->data)) { if (type_file_is == FILE_IS_FLAC) { Audio->EtatSelection_Flac = cdaudio_get_next_flag (FILE_IS_FLAC, TRUE, NumTrack); Pixbuf = cdaudio_get_pixbuf_file (Audio, FILE_IS_FLAC); gtk_list_store_set (var_cd.Adr_List_Store, &iter, COLUMN_CDAUDIO_FLAC, Pixbuf, -1); } else if (type_file_is == FILE_IS_WAV) { Audio->EtatSelection_Wav = cdaudio_get_next_flag (FILE_IS_WAV, TRUE, NumTrack); Pixbuf = cdaudio_get_pixbuf_file (Audio, FILE_IS_WAV); gtk_list_store_set (var_cd.Adr_List_Store, &iter, COLUMN_CDAUDIO_WAV, Pixbuf, -1); } else if (type_file_is == FILE_IS_MP3) { Audio->EtatSelection_Mp3 = cdaudio_get_next_flag (FILE_IS_MP3, TRUE, NumTrack); Pixbuf = cdaudio_get_pixbuf_file (Audio, FILE_IS_MP3); gtk_list_store_set (var_cd.Adr_List_Store, &iter, COLUMN_CDAUDIO_MP3, Pixbuf, -1); } else if (type_file_is == FILE_IS_OGG) { Audio->EtatSelection_Ogg = cdaudio_get_next_flag (FILE_IS_OGG, TRUE, NumTrack); Pixbuf = cdaudio_get_pixbuf_file (Audio, FILE_IS_OGG); gtk_list_store_set (var_cd.Adr_List_Store, &iter, COLUMN_CDAUDIO_OGG, Pixbuf, -1); } else if (type_file_is == FILE_IS_M4A) { Audio->EtatSelection_M4a = cdaudio_get_next_flag (FILE_IS_M4A, TRUE, NumTrack); Pixbuf = cdaudio_get_pixbuf_file (Audio, FILE_IS_M4A); gtk_list_store_set (var_cd.Adr_List_Store, &iter, COLUMN_CDAUDIO_M4A, Pixbuf, -1); } else if (type_file_is == FILE_IS_AAC) { Audio->EtatSelection_Aac = cdaudio_get_next_flag (FILE_IS_AAC, TRUE, NumTrack); Pixbuf = cdaudio_get_pixbuf_file (Audio, FILE_IS_AAC); gtk_list_store_set (var_cd.Adr_List_Store, &iter, COLUMN_CDAUDIO_AAC, Pixbuf, -1); } else if (type_file_is == FILE_IS_MPC) { Audio->EtatSelection_Mpc = cdaudio_get_next_flag (FILE_IS_MPC, TRUE, NumTrack); Pixbuf = cdaudio_get_pixbuf_file (Audio, FILE_IS_MPC); gtk_list_store_set (var_cd.Adr_List_Store, &iter, COLUMN_CDAUDIO_MPC, Pixbuf, -1); } else if (type_file_is == FILE_IS_APE) { Audio->EtatSelection_Ape = cdaudio_get_next_flag (FILE_IS_APE, TRUE, NumTrack); Pixbuf = cdaudio_get_pixbuf_file (Audio, FILE_IS_APE); gtk_list_store_set (var_cd.Adr_List_Store, &iter, COLUMN_CDAUDIO_APE, Pixbuf, -1); } else if (type_file_is == FILE_IS_WAVPACK) { Audio->EtatSelection_WavPack = cdaudio_get_next_flag (FILE_IS_WAVPACK, TRUE, NumTrack); Pixbuf = cdaudio_get_pixbuf_file (Audio, FILE_IS_WAVPACK); gtk_list_store_set (var_cd.Adr_List_Store, &iter, COLUMN_CDAUDIO_WAVPACK, Pixbuf, -1); } else if (type_file_is == FILE_TO_NORMALISE) { Audio->EtatNormalise = (Audio->EtatNormalise == TRUE) ? FALSE : TRUE; Pixbuf = cdaudio_get_pixbuf_file (Audio, FILE_TO_NORMALISE); gtk_list_store_set (var_cd.Adr_List_Store, &iter, COLUMN_CDAUDIO_FILE_NORMALIZE, Pixbuf, -1); } NumTrack ++; } valid = gtk_tree_model_iter_next (var_cd.Adr_Tree_Model, &iter); } } // // void cdaudio_set_etat_music_pixbuf (CD_AUDIO *p_audio, ETAT_PLAY_CD EtatPlay) { GtkTreeIter iter; gboolean valid; GList *List; CD_AUDIO *Audio = NULL; gint Track = 0; if (EtatPlay == CD_ETAT_PLAY) { valid = gtk_tree_model_get_iter_first (var_cd.Adr_Tree_Model, &iter); while (valid) { List = g_list_nth (EnteteCD.GList_Audio_cd, Track); if ((Audio = List->data)) { if (p_audio == Audio) { Audio->EtatPlay = CD_ETAT_PLAY; gtk_list_store_set (var_cd.Adr_List_Store, &iter, COLUMN_CDAUDIO_PLAY, var_cd.Pixbuf_CdPlay, -1); } } Track ++; valid = gtk_tree_model_iter_next (var_cd.Adr_Tree_Model, &iter); } } } // // void cdaudio_set_icone_stop (void) { GtkTreeIter iter; gboolean valid; GList *List; CD_AUDIO *Audio = NULL; gint Track = 0; // Tous les flags et widget sur FILE_ETAT_PLAY_ATTENTE valid = gtk_tree_model_get_iter_first (var_cd.Adr_Tree_Model, &iter); while (valid) { List = g_list_nth (EnteteCD.GList_Audio_cd, Track); if ((Audio = List->data)) { Audio->EtatPlay = CD_ETAT_PLAY_ATTENTE; gtk_list_store_set (var_cd.Adr_List_Store, &iter, COLUMN_CDAUDIO_PLAY, var_cd.Pixbuf_CdStop, -1); } Track ++; valid = gtk_tree_model_iter_next (var_cd.Adr_Tree_Model, &iter); } WinReader_close (); } /* Gestion de la selection ou de la deselection des demandes de conversions des fichiers vers un * autre format. Cette demande peut etre unique ou globale : * - unique : click gauche * - globale : touche Controle appuyee + click gauche * -- * entree : * GtkWidget *treeview : * GdkEventButton *event : * gpointer data : * retour : - * FALSE : */ gboolean cdaudio_event_click_mouse (GtkWidget *treeview, GdkEventButton *event, gpointer data) { GtkTreePath *path; GtkTreeViewColumn *column; GtkTreeViewColumn *ColumnDum; gint i; GtkTreeIter iter; GtkTreeModel *model = (GtkTreeModel *)data; gchar *Str = NULL; gint NumTrack = -1; GdkPixbuf *Pixbuf = NULL; gint Pos_X, Pos_Y; gboolean bool_key_Control = (keys.keyval == GDK_Control_L || keys.keyval == GDK_Control_R); gboolean bool_key_Shift = (keys.keyval == GDK_Shift_L || keys.keyval == GDK_Shift_R); gboolean bool_key_Release = (bool_key_Control == FALSE && bool_key_Shift == FALSE); gboolean bool_click_droit = (event->button == 3); gboolean bool_click_gauche = (event->button == 1); CD_AUDIO *Audio = NULL; GList *List = NULL; gboolean BoolSelectColPlay = FALSE; gboolean BoolSelectColWav = FALSE; gboolean BoolSelectColFlac = FALSE; gboolean BoolSelectColApe = FALSE; gboolean BoolSelectColWavP = FALSE; gboolean BoolSelectColOgg = FALSE; gboolean BoolSelectColM4a = FALSE; gboolean BoolSelectColAac = FALSE; gboolean BoolSelectColMpc = FALSE; gboolean BoolSelectColMp3 = FALSE; gboolean BoolSelectColTime = FALSE; gboolean BoolSelectColNormalise = FALSE; gboolean BoolSelectColNom = FALSE; /* Single clicks only */ if (event->type != GDK_BUTTON_PRESS) return (FALSE); /* Si pas de selection a cet endroit retour */ if (!gtk_tree_view_get_path_at_pos (GTK_TREE_VIEW(treeview), (gint)event->x, (gint)event->y, &path, &column, &Pos_X, &Pos_Y)) return (FALSE); /* enum { NUM_TREE_CDAUDIO_PLAY NUM_TREE_CDAUDIO_WAV NUM_TREE_CDAUDIO_FLAC NUM_TREE_CDAUDIO_APE NUM_TREE_CDAUDIO_WAVP NUM_TREE_CDAUDIO_OGG NUM_TREE_CDAUDIO_M4A NUM_TREE_CDAUDIO_AAC NUM_TREE_CDAUDIO_MPC NUM_TREE_CDAUDIO_MP3 NUM_TREE_CDAUDIO_NUM NUM_TREE_CDAUDIO_TIME NUM_TREE_CDAUDIO_NORMALISE NUM_TREE_CDAUDIO_NOM NUM_TREE_CDAUDIO_ALL_COLUMN }; */ /* IDEE POUR REMPLACER LES COMPARAISON PAR NOMS. EXEMPLES: * PLAY = 0 * TRASH = 1 * TYPE = 2 * etc ... * NOTA: * CET ALGO PERMET DE RENOMMER AISEMENT LES ENTETES DE COLONNES DANS TOUTES LES LANGUES: FR, EN, DE, ... */ for (i = 0; i < NUM_TREE_CDAUDIO_ALL_COLUMN; i ++) { ColumnDum = gtk_tree_view_get_column (GTK_TREE_VIEW(treeview), i); if (ColumnDum == column) { /* g_print ("\tNUM IS: %d\n", i); */ switch ( i ) { case NUM_TREE_CDAUDIO_PLAY : BoolSelectColPlay = TRUE; break; case NUM_TREE_CDAUDIO_WAV : BoolSelectColWav = TRUE; break; case NUM_TREE_CDAUDIO_FLAC : BoolSelectColFlac = TRUE; break; case NUM_TREE_CDAUDIO_APE : BoolSelectColApe = TRUE; break; case NUM_TREE_CDAUDIO_WAVP : BoolSelectColWavP = TRUE; break; case NUM_TREE_CDAUDIO_OGG : BoolSelectColOgg = TRUE; break; case NUM_TREE_CDAUDIO_M4A : BoolSelectColM4a = TRUE; break; case NUM_TREE_CDAUDIO_AAC : BoolSelectColAac = TRUE; break; case NUM_TREE_CDAUDIO_MPC : BoolSelectColMpc = TRUE; break; case NUM_TREE_CDAUDIO_MP3 : BoolSelectColMp3 = TRUE; break; case NUM_TREE_CDAUDIO_NUM : break; case NUM_TREE_CDAUDIO_TIME : BoolSelectColTime = TRUE; break; case NUM_TREE_CDAUDIO_NORMALISE : BoolSelectColNormalise = TRUE; break; case NUM_TREE_CDAUDIO_NOM : BoolSelectColNom = TRUE; break; default: return (FALSE); } /* La colonne est trouvee ... sortie de la boucle */ break; } } /* BoolSelectColPlay = strcmp(column->title, "Play") == 0 ? TRUE : FALSE; BoolSelectColWav = strcmp(column->title, "Wav") == 0 ? TRUE : FALSE; BoolSelectColFlac = strcmp(column->title, "Flac") == 0 ? TRUE : FALSE; BoolSelectColApe = strcmp(column->title, "Ape") == 0 ? TRUE : FALSE; BoolSelectColWavP = strcmp(column->title, "WavP") == 0 ? TRUE : FALSE; BoolSelectColOgg = strcmp(column->title, "Ogg") == 0 ? TRUE : FALSE; BoolSelectColM4a = strcmp(column->title, "M4a") == 0 ? TRUE : FALSE; BoolSelectColAac = strcmp(column->title, "Aac") == 0 ? TRUE : FALSE; BoolSelectColMpc = strcmp(column->title, "Mpc") == 0 ? TRUE : FALSE; BoolSelectColMp3 = strcmp(column->title, "Mp3") == 0 ? TRUE : FALSE; BoolSelectColTime = strcmp(column->title, "Time") == 0 ? TRUE : FALSE; BoolSelectColNormalise = strcmp(column->title, "Normalise") == 0 ? TRUE : FALSE; BoolSelectColNom = strcmp(column->title, "Nom") == 0 ? TRUE : FALSE; */ /* position du curseur a l'instant du click */ if (!BoolSelectColNormalise) { if (Pos_X < 18 || Pos_X > 30) return (FALSE); if (Pos_Y < 6 || Pos_Y > 18) return (FALSE); } if (BoolSelectColPlay) { BoolSelectColPlay &= (PrgInit.bool_mplayer && bool_click_gauche); } else if ((Config.ExtractCdWith == EXTRACT_WITH_CDPARANOIA_EXPERT || Config.ExtractCdWith == EXTRACT_WITH_CDPARANOIA) && PrgInit.bool_cdparanoia == FALSE) { // utils_set_prg_not_found ("CDPARANOIA", PrgInit.bool_cdparanoia); } else if (Config.ExtractCdWith == EXTRACT_WITH_CDDA2WAV && PrgInit.bool_cdda2wav == FALSE) { // utils_set_prg_not_found ("CDDA2WAV", PrgInit.bool_cdda2wav); } else if (BoolSelectColFlac) { BoolSelectColFlac &= PrgInit.bool_flac; } else if (BoolSelectColWav) { if (Config.ExtractCdWith == EXTRACT_WITH_CDDA2WAV) { BoolSelectColWav &= PrgInit.bool_cdda2wav; } else { BoolSelectColWav &= PrgInit.bool_cdparanoia; } } else if (BoolSelectColMp3) { BoolSelectColMp3 &= PrgInit.bool_lame; } else if (BoolSelectColOgg) { BoolSelectColOgg &= PrgInit.bool_oggenc; } else if (BoolSelectColM4a) { BoolSelectColM4a &= PrgInit.bool_faac; } else if (BoolSelectColAac) { BoolSelectColAac &= PrgInit.bool_aacplusenc; } else if (BoolSelectColMpc) { BoolSelectColMpc &= PrgInit.bool_mppenc; } else if (BoolSelectColApe) { BoolSelectColApe &= PrgInit.bool_ape; } else if (BoolSelectColWavP) { BoolSelectColWavP &= PrgInit.bool_wavpack; } if (bool_key_Shift && bool_click_gauche) { if (BoolSelectColWav || BoolSelectColFlac || BoolSelectColMp3 || BoolSelectColOgg || BoolSelectColM4a || BoolSelectColAac || BoolSelectColMpc || BoolSelectColApe || BoolSelectColWavP) { BoolSelectColWav &= PrgInit.bool_cdparanoia; BoolSelectColFlac &= PrgInit.bool_flac; BoolSelectColMp3 &= PrgInit.bool_lame; BoolSelectColOgg &= PrgInit.bool_oggenc; BoolSelectColM4a &= PrgInit.bool_faac; BoolSelectColAac &= PrgInit.bool_aacplusenc; BoolSelectColMpc &= PrgInit.bool_mppenc; BoolSelectColApe &= PrgInit.bool_ape; BoolSelectColWavP &= PrgInit.bool_wavpack; } } // utils_put_error_statusbar (FALSE); gtk_tree_model_get_iter (model, &iter, path); gtk_tree_model_get (var_cd.Adr_Tree_Model, &iter, COLUMN_CDAUDIO_TRACK_NUM, &Str, -1); NumTrack = (gint)g_strtod (Str, NULL); NumTrack --; if ((List = g_list_nth (EnteteCD.GList_Audio_cd, NumTrack)) == NULL) return (FALSE); Audio = (CD_AUDIO *)List->data; if (!Audio) return (FALSE); if (bool_click_droit) { if (BoolSelectColNormalise) { /* PopUp menu normalise CD */ popup_normalise_cd (); return (FALSE); } else if (!BoolSelectColNormalise) { /* PopUp menu CD */ if (bool_click_droit && (BoolSelectColWav || BoolSelectColFlac || BoolSelectColApe || BoolSelectColWavP || BoolSelectColOgg || BoolSelectColM4a || BoolSelectColAac || BoolSelectColMpc || BoolSelectColMp3)) { TYPE_FILE_IS TypeFileIs = FILE_IS_NONE; if (BoolSelectColWav) TypeFileIs = FILE_IS_WAV; else if (BoolSelectColFlac) TypeFileIs = FILE_IS_FLAC; else if (BoolSelectColApe) TypeFileIs = FILE_IS_APE; else if (BoolSelectColWavP) TypeFileIs = FILE_IS_WAVPACK; else if (BoolSelectColOgg) TypeFileIs = FILE_IS_OGG; else if (BoolSelectColM4a) TypeFileIs = FILE_IS_M4A; else if (BoolSelectColAac) TypeFileIs = FILE_IS_AAC; else if (BoolSelectColMpc) TypeFileIs = FILE_IS_MPC; else if (BoolSelectColMp3) TypeFileIs = FILE_IS_MP3; popup_cd (Audio, TypeFileIs); return (FALSE); } } } /* Un simle click change l etat de normalisaion */ else if (BoolSelectColNormalise) { if (PrgInit.bool_normalize == FALSE) { // utils_set_prg_not_found (prginit_get_name (NMR_normalize), PrgInit.bool_normalize); } Audio->EtatNormalise = (Audio->EtatNormalise == TRUE) ? FALSE : TRUE; Pixbuf = cdaudio_get_pixbuf_file (Audio, FILE_TO_NORMALISE); gtk_list_store_set (var_cd.Adr_List_Store, &iter, COLUMN_CDAUDIO_FILE_NORMALIZE, Pixbuf, -1); cdaudio_set_flag_buttons (); } /* traitements */ else if (BoolSelectColPlay) { if (TRUE == mplayer_is_used ()) { wininfo_create ( WindMain, _("MPLAYER deja en action"), _("MPLAYER est deja utilise !!"), ""); } else { gchar *piste = NULL; gtk_tree_model_get (var_cd.Adr_Tree_Model, &iter, COLUMN_CDAUDIO_TRACK_NUM, &piste, -1); if (piste[0] == '0') { piste [0] = piste [1]; piste [1] = '\0'; } if (Audio->EtatPlay == CD_ETAT_PLAY_ATTENTE) { GList *list = NULL; gchar *StrTitle = NULL; StrTitle = g_strdup_printf("CD Read - Track %s", piste); // APPEL DE mplayer_init AVANT WinReader_open () mplayer_init (LIST_MPLAYER_FROM_CD, 0.0, 0, WinReader_close, WinReader_set_value, cdaudio_set_icone_stop, WinReader_is_close); WinReader_open (StrTitle); g_free (StrTitle); StrTitle = NULL; WinReader_set_pause (); list = g_list_append (list, g_strdup_printf ("cdda://%s", piste)); list = g_list_append (list, g_strdup ("-cdrom-device")); list = g_list_append (list, g_strdup_printf ("%s", EnteteCD.NameCD_Device)); mplayer_set_list (list); list = libutils_remove_glist (list); // AFFICHE L ICONE DE PLAY cdaudio_set_etat_music_pixbuf (Audio, CD_ETAT_PLAY); } } } else if (BoolSelectColWavP || BoolSelectColApe || BoolSelectColMpc || BoolSelectColFlac || BoolSelectColWav || BoolSelectColMp3 || BoolSelectColOgg || BoolSelectColM4a || BoolSelectColAac) { if (bool_key_Release && bool_click_gauche) { if (BoolSelectColFlac) { Audio->EtatSelection_Flac = cdaudio_get_next_flag (FILE_IS_FLAC, TRUE, NumTrack); Pixbuf = cdaudio_get_pixbuf_file (Audio, FILE_IS_FLAC); gtk_list_store_set (var_cd.Adr_List_Store, &iter, COLUMN_CDAUDIO_FLAC, Pixbuf, -1); } else if (BoolSelectColWav) { Audio->EtatSelection_Wav = cdaudio_get_next_flag (FILE_IS_WAV, TRUE, NumTrack); Pixbuf = cdaudio_get_pixbuf_file (Audio, FILE_IS_WAV); gtk_list_store_set (var_cd.Adr_List_Store, &iter, COLUMN_CDAUDIO_WAV, Pixbuf, -1); } else if (BoolSelectColMp3) { Audio->EtatSelection_Mp3 = cdaudio_get_next_flag (FILE_IS_MP3, TRUE, NumTrack); Pixbuf = cdaudio_get_pixbuf_file (Audio, FILE_IS_MP3); gtk_list_store_set (var_cd.Adr_List_Store, &iter, COLUMN_CDAUDIO_MP3, Pixbuf, -1); } else if (BoolSelectColOgg) { Audio->EtatSelection_Ogg = cdaudio_get_next_flag (FILE_IS_OGG, TRUE, NumTrack); Pixbuf = cdaudio_get_pixbuf_file (Audio, FILE_IS_OGG); gtk_list_store_set (var_cd.Adr_List_Store, &iter, COLUMN_CDAUDIO_OGG, Pixbuf, -1); } else if (BoolSelectColM4a) { Audio->EtatSelection_M4a = cdaudio_get_next_flag (FILE_IS_M4A, TRUE, NumTrack); Pixbuf = cdaudio_get_pixbuf_file (Audio, FILE_IS_M4A); gtk_list_store_set (var_cd.Adr_List_Store, &iter, COLUMN_CDAUDIO_M4A, Pixbuf, -1); } else if (BoolSelectColAac) { Audio->EtatSelection_Aac = cdaudio_get_next_flag (FILE_IS_AAC, TRUE, NumTrack); Pixbuf = cdaudio_get_pixbuf_file (Audio, FILE_IS_AAC); gtk_list_store_set (var_cd.Adr_List_Store, &iter, COLUMN_CDAUDIO_AAC, Pixbuf, -1); } else if (BoolSelectColMpc) { Audio->EtatSelection_Mpc = cdaudio_get_next_flag (FILE_IS_MPC, TRUE, NumTrack); Pixbuf = cdaudio_get_pixbuf_file (Audio, FILE_IS_MPC); gtk_list_store_set (var_cd.Adr_List_Store, &iter, COLUMN_CDAUDIO_MPC, Pixbuf, -1); } else if (BoolSelectColApe) { Audio->EtatSelection_Ape = cdaudio_get_next_flag (FILE_IS_APE, TRUE, NumTrack); Pixbuf = cdaudio_get_pixbuf_file (Audio, FILE_IS_APE); gtk_list_store_set (var_cd.Adr_List_Store, &iter, COLUMN_CDAUDIO_APE, Pixbuf, -1); } else if (BoolSelectColWavP) { Audio->EtatSelection_WavPack = cdaudio_get_next_flag (FILE_IS_WAVPACK, TRUE, NumTrack); Pixbuf = cdaudio_get_pixbuf_file (Audio, FILE_IS_WAVPACK); gtk_list_store_set (var_cd.Adr_List_Store, &iter, COLUMN_CDAUDIO_WAVPACK, Pixbuf, -1); } cdaudio_set_flag_buttons (); gtk_tree_selection_select_iter (var_cd.Adr_Line_Selected, &iter); } else if (bool_key_Control && bool_click_gauche) { TYPE_FILE_IS TypeFileIs = FILE_IS_NONE; if (BoolSelectColFlac) TypeFileIs = FILE_IS_FLAC; else if (BoolSelectColWav) TypeFileIs = FILE_IS_WAV; else if (BoolSelectColMp3) TypeFileIs = FILE_IS_MP3; else if (BoolSelectColOgg) TypeFileIs = FILE_IS_OGG; else if (BoolSelectColM4a) TypeFileIs = FILE_IS_M4A; else if (BoolSelectColAac) TypeFileIs = FILE_IS_AAC; else if (BoolSelectColMpc) TypeFileIs = FILE_IS_MPC; else if (BoolSelectColApe) TypeFileIs = FILE_IS_APE; else if (BoolSelectColWavP) TypeFileIs = FILE_IS_WAVPACK; else TypeFileIs = FILE_IS_NONE; if (TypeFileIs != FILE_IS_NONE) { cdaudio_change_all_flags_extract_verticaly (TypeFileIs); cdaudio_set_flag_buttons (); gtk_tree_model_get_iter_first (var_cd.Adr_Tree_Model, &iter); gtk_tree_selection_select_iter (var_cd.Adr_Line_Selected, &iter); } } else if (bool_key_Shift && bool_click_gauche) { Audio->EtatSelection_Flac = cdaudio_get_next_flag (FILE_IS_FLAC, TRUE, NumTrack); Pixbuf = cdaudio_get_pixbuf_file (Audio, FILE_IS_FLAC); gtk_list_store_set (var_cd.Adr_List_Store, &iter, COLUMN_CDAUDIO_FLAC, Pixbuf, -1); Audio->EtatSelection_Wav = cdaudio_get_next_flag (FILE_IS_WAV, TRUE, NumTrack); Pixbuf = cdaudio_get_pixbuf_file (Audio, FILE_IS_WAV); gtk_list_store_set (var_cd.Adr_List_Store, &iter, COLUMN_CDAUDIO_WAV, Pixbuf, -1); Audio->EtatSelection_Mp3 = cdaudio_get_next_flag (FILE_IS_MP3, TRUE, NumTrack); Pixbuf = cdaudio_get_pixbuf_file (Audio, FILE_IS_MP3); gtk_list_store_set (var_cd.Adr_List_Store, &iter, COLUMN_CDAUDIO_MP3, Pixbuf, -1); Audio->EtatSelection_Ogg = cdaudio_get_next_flag (FILE_IS_OGG, TRUE, NumTrack); Pixbuf = cdaudio_get_pixbuf_file (Audio, FILE_IS_OGG); gtk_list_store_set (var_cd.Adr_List_Store, &iter, COLUMN_CDAUDIO_OGG, Pixbuf, -1); Audio->EtatSelection_M4a = cdaudio_get_next_flag (FILE_IS_M4A, TRUE, NumTrack); Pixbuf = cdaudio_get_pixbuf_file (Audio, FILE_IS_M4A); gtk_list_store_set (var_cd.Adr_List_Store, &iter, COLUMN_CDAUDIO_M4A, Pixbuf, -1); Audio->EtatSelection_Aac = cdaudio_get_next_flag (FILE_IS_AAC, TRUE, NumTrack); Pixbuf = cdaudio_get_pixbuf_file (Audio, FILE_IS_AAC); gtk_list_store_set (var_cd.Adr_List_Store, &iter, COLUMN_CDAUDIO_AAC, Pixbuf, -1); Audio->EtatSelection_Mpc = cdaudio_get_next_flag (FILE_IS_MPC, TRUE, NumTrack); Pixbuf = cdaudio_get_pixbuf_file (Audio, FILE_IS_MPC); gtk_list_store_set (var_cd.Adr_List_Store, &iter, COLUMN_CDAUDIO_MPC, Pixbuf, -1); Audio->EtatSelection_Ape = cdaudio_get_next_flag (FILE_IS_APE, TRUE, NumTrack); Pixbuf = cdaudio_get_pixbuf_file (Audio, FILE_IS_APE); gtk_list_store_set (var_cd.Adr_List_Store, &iter, COLUMN_CDAUDIO_APE, Pixbuf, -1); Audio->EtatSelection_WavPack = cdaudio_get_next_flag (FILE_IS_WAVPACK, TRUE, NumTrack); Pixbuf = cdaudio_get_pixbuf_file (Audio, FILE_IS_WAVPACK); gtk_list_store_set (var_cd.Adr_List_Store, &iter, COLUMN_CDAUDIO_WAVPACK, Pixbuf, -1); cdaudio_set_flag_buttons (); gtk_tree_model_get_iter_first (var_cd.Adr_Tree_Model, &iter); gtk_tree_selection_select_iter (var_cd.Adr_Line_Selected, &iter); } } return (FALSE); } /* Edition du contenu d'un champs. La modification sera repercutee dans le Glist 'EnteteCD.GList_Audio_cd' * -- * entree : * GtkCellRendererText *cell : * const gchar *path_string : * const gchar *new_text : * gpointer data : * retour : - */ /* static void cdaudio_cell_edited_cd (GtkCellRendererText *cell, const gchar *path_string, const gchar *new_text, gpointer data) { GtkTreeModel *model = (GtkTreeModel *)data; GtkTreePath *path = gtk_tree_path_new_from_string (path_string); GtkTreeIter iter; gint column = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (cell), "column")); gtk_tree_model_get_iter (model, &iter, path); if (column == COLUMN_CDAUDIO_TRACK_NAME) { gint Num_cell; gchar *old_text; GList *List = NULL; AUDIO *Audio = NULL; gtk_tree_model_get (model, &iter, COLUMN_CDAUDIO_TRACK_NAME, &old_text, -1); g_free (old_text); old_text = NULL; Num_cell = gtk_tree_path_get_indices (path)[0]; g_free (g_array_index (Articles_cd, ARTICLES_CD, Num_cell).Track_Name); g_array_index (Articles_cd, ARTICLES_CD, Num_cell).Track_Name = NULL; g_array_index (Articles_cd, ARTICLES_CD, Num_cell).Track_Name = g_strdup (new_text); List = g_list_nth (EnteteCD.GList_Audio_cd, Num_cell); Audio = List->data; if (Audio) { if (Audio->NameSong) { g_free (Audio->NameSong); Audio->NameSong = NULL; } Audio->NameSong = g_strdup (new_text); } gtk_list_store_set (GTK_LIST_STORE (model), &iter, COLUMN_CDAUDIO_TRACK_NAME, g_array_index (Articles_cd, ARTICLES_CD, Num_cell).Track_Name, -1); } } */ // // CD_AUDIO *cdaudio_get_line_selected (void) { GtkTreeModel *model = NULL; GList *List = NULL; GtkTreePath *path; CD_AUDIO *Audio = NULL; gint NumStruct; GList *GList_cd = NULL; if (!var_cd.Adr_TreeView) return (NULL); if (!var_cd.Adr_Line_Selected) return (NULL); if (!EnteteCD.GList_Audio_cd) return (NULL); model = gtk_tree_view_get_model (GTK_TREE_VIEW(var_cd.Adr_TreeView)); List = gtk_tree_selection_get_selected_rows (var_cd.Adr_Line_Selected, &model); /* Bug resolu d'apres une description de @plikplok * plikplok@hotmail.com :-> David */ if (List == NULL) { if ((List = g_list_nth (EnteteCD.GList_Audio_cd, 0))) { if ((Audio = (CD_AUDIO *)List->data)) { return ((CD_AUDIO *)Audio); } } } List = g_list_first (List); while (List) { path = List->data; if (path) { /* prend le numero de la structure */ NumStruct = gtk_tree_path_get_indices (path)[0]; GList_cd = g_list_nth (EnteteCD.GList_Audio_cd, NumStruct); Audio = GList_cd->data; return ((CD_AUDIO *)Audio); } List = g_list_next (List); } return ((CD_AUDIO *)NULL); } // // CD_AUDIO *cdaudio_get_line_selected_for_extract (void) { GList *List = NULL; CD_AUDIO *Audio = NULL; List = g_list_first (EnteteCD.GList_Audio_cd); while (List) { if ((Audio = (CD_AUDIO *)List->data) != NULL) { if (Audio->EtatSelection_Mp3 >= CD_ETAT_SELECT) return ((CD_AUDIO *)Audio); if (Audio->EtatSelection_Ogg >= CD_ETAT_SELECT) return ((CD_AUDIO *)Audio); if (Audio->EtatSelection_Wav >= CD_ETAT_SELECT) return ((CD_AUDIO *)Audio); if (Audio->EtatSelection_Flac >= CD_ETAT_SELECT) return ((CD_AUDIO *)Audio); if (Audio->EtatSelection_M4a >= CD_ETAT_SELECT) return ((CD_AUDIO *)Audio); if (Audio->EtatSelection_Aac >= CD_ETAT_SELECT) return ((CD_AUDIO *)Audio); if (Audio->EtatSelection_Mpc >= CD_ETAT_SELECT) return ((CD_AUDIO *)Audio); if (Audio->EtatSelection_Ape >= CD_ETAT_SELECT) return ((CD_AUDIO *)Audio); if (Audio->EtatSelection_WavPack >= CD_ETAT_SELECT) return ((CD_AUDIO *)Audio); } List = g_list_next(List); } return ((CD_AUDIO *)cdaudio_get_line_selected ()); } /* Enregistrement de la nouvelle ligne en selection dans la variable 'var_cd.Adr_Line_Selected' * -- * entree : * GtkTreeSelection *selection : * gpointer data : * retour : - */ void cdaudio_changed_selection_row (GtkTreeSelection *selection, gpointer data) { var_cd.Adr_Line_Selected = selection; // PRINT_FUNC_LF(); cdexpander_set_sensitive_notebook (); cdexpander_set_entry_tag_titre_album (); cdexpander_set_entry_tag_nom_artiste (); cdexpander_set_spinbutton_tag_annee (); cdexpander_set_entry_tag_titre_chanson (); cdexpander_set_new_genre (); cdexpander_set_entry_tag_commentaire (); cdexpander_set_spinbutton_tag_piste (); cdexpander_set_entry_tag_titre_fichier_m3u (); } // // gboolean cdaudio_key_press_event (GtkWidget *widget, GdkEventKey *event, gpointer user_data) { return (TRUE); } // // void cdaudio_set_help( CD_AUDIO *Audio, TYPE_FILE_IS p_type_file_is ) { ETAT_SELECTION_CD etat = CD_ETAT_ATTENTE; gint NumTrack = Audio->Num_Track -1; if (p_type_file_is == FILE_IS_FLAC) etat = Audio->EtatSelection_Flac = cdaudio_get_next_flag (p_type_file_is, FALSE, NumTrack); else if (p_type_file_is == FILE_IS_WAV) etat = Audio->EtatSelection_Wav = cdaudio_get_next_flag (p_type_file_is, FALSE, NumTrack); else if (p_type_file_is == FILE_IS_OGG) etat = Audio->EtatSelection_Ogg = cdaudio_get_next_flag (p_type_file_is, FALSE, NumTrack); else if (p_type_file_is == FILE_IS_MP3) etat = Audio->EtatSelection_Mp3 = cdaudio_get_next_flag (p_type_file_is, FALSE, NumTrack); else if (p_type_file_is == FILE_IS_M4A) etat = Audio->EtatSelection_M4a = cdaudio_get_next_flag (p_type_file_is, FALSE, NumTrack); else if (p_type_file_is == FILE_IS_AAC) etat = Audio->EtatSelection_Aac = cdaudio_get_next_flag (p_type_file_is, FALSE, NumTrack); else if (p_type_file_is == FILE_IS_MPC) etat = Audio->EtatSelection_Mpc = cdaudio_get_next_flag (p_type_file_is, FALSE, NumTrack); else if (p_type_file_is == FILE_IS_APE) etat = Audio->EtatSelection_Ape = cdaudio_get_next_flag (p_type_file_is, FALSE, NumTrack); else if (p_type_file_is == FILE_IS_WAVPACK) etat = Audio->EtatSelection_WavPack = cdaudio_get_next_flag (p_type_file_is, FALSE, NumTrack); // switch (p_EtatSelectionCd) { switch ( etat ) { case CD_ETAT_NONE : StatusBar_set_mess( NOTEBOOK_CD_AUDIO, _STATUSBAR_SIMPLE_, _("(Click Droit = Menu) / En attente de selection.")); break; case CD_ETAT_PRG_ABSENT : StatusBar_set_mess( NOTEBOOK_CD_AUDIO, _STATUSBAR_SIMPLE_, _("Le programme externe d'extraction est absent.")); break; case CD_ETAT_ATTENTE : StatusBar_set_mess( NOTEBOOK_CD_AUDIO, _STATUSBAR_SIMPLE_, _("(Click Droit = Menu) / En attente de selection.")); break; case CD_ETAT_ATTENTE_EXIST : StatusBar_set_mess( NOTEBOOK_CD_AUDIO, _STATUSBAR_SIMPLE_, _("(Click Droit = Menu) / En attente de selection. Le fichier existe.")); break; case CD_ETAT_SELECT : StatusBar_set_mess( NOTEBOOK_CD_AUDIO, _STATUSBAR_SIMPLE_, _("(Click Droit = Menu) / En selection.")); break; case CD_ETAT_SELECT_EXPERT : StatusBar_set_mess( NOTEBOOK_CD_AUDIO, _STATUSBAR_SIMPLE_, _("(Click Droit = Menu) / Selection avec options expert.")); break; case CD_ETAT_SELECT_EXIST : StatusBar_set_mess( NOTEBOOK_CD_AUDIO, _STATUSBAR_SIMPLE_, _("(Click Droit = Menu) / En selection. Le fichier existe.")); break; case CD_ETAT_SELECT_EXPERT_EXIST : StatusBar_set_mess( NOTEBOOK_CD_AUDIO, _STATUSBAR_SIMPLE_, _("(Click Droit = Menu) / Selection avec options expert. Le fichier existe.")); break; } } // // void cdaudio_set_normalise (gboolean p_EtatNormalise) { if (FALSE == p_EtatNormalise) { StatusBar_set_mess( NOTEBOOK_CD_AUDIO, _STATUSBAR_SIMPLE_, _("(Click Droit = Menu) / Possibilite d'ajustement INDIVIDUEL ou COLLECTIF maximal du volume")); } else { switch (gtk_combo_box_get_active (GTK_COMBO_BOX (var_cd.Adr_combobox_normalise_cd))) { case 0 : // case CD_NORM_PEAK : StatusBar_set_mess( NOTEBOOK_CD_AUDIO, _STATUSBAR_SIMPLE_, _("(Click Droit = Menu) / Ajustement INDIVIDUEL maximal du volume")); break; case 1 : // case CD_NORM_PEAK_WAITING : StatusBar_set_mess( NOTEBOOK_CD_AUDIO, _STATUSBAR_SIMPLE_, _("(Click Droit = Menu) / Ajustement COLLECTIF maximal du volume")); break; } } } // // gboolean cdaudio_event (GtkWidget *treeview, GdkEvent *event, gpointer user_data) { gint x, y; GdkModifierType state; GtkTreePath *path; GtkTreeViewColumn *column; GtkTreeIter iter; GtkTreeModel *model = (GtkTreeModel *)user_data; gint Pos_X = 0, Pos_Y = 0; gint NumTrack; gchar *StrNumTrack; CD_AUDIO *Audio = NULL; GList *GListCD = NULL; GtkTreeViewColumn *ColumnDum; gint i; gboolean BoolSelectColPlay = FALSE; gboolean BoolSelectColWav = FALSE; gboolean BoolSelectColFlac = FALSE; gboolean BoolSelectColApe = FALSE; gboolean BoolSelectColWavP = FALSE; gboolean BoolSelectColOgg = FALSE; gboolean BoolSelectColM4a = FALSE; gboolean BoolSelectColAac = FALSE; gboolean BoolSelectColMpc = FALSE; gboolean BoolSelectColMp3 = FALSE; gboolean BoolSelectColTime = FALSE; gboolean BoolSelectColNormalise = FALSE; gboolean BoolSelectColNom = FALSE; if (keys.keyval == GDK_KEY_PRESS) { return (FALSE); } /* Si pas de selection a cet endroit retour */ gdk_window_get_pointer (((GdkEventButton*)event)->window, &x, &y, &state); if (!gtk_tree_view_get_path_at_pos (GTK_TREE_VIEW(treeview), x, y, &path, &column, &Pos_X, &Pos_Y)) { // StatusBar_set_mess( NOTEBOOK_CD_AUDIO, _STATUSBAR_SIMPLE_, "" ); return (FALSE); } /* Recuperation de la structure */ gtk_tree_model_get_iter (model, &iter, path); gtk_tree_model_get (var_cd.Adr_Tree_Model, &iter, COLUMN_CDAUDIO_TRACK_NUM, &StrNumTrack, -1); NumTrack = atoi (StrNumTrack); GListCD = g_list_nth (EnteteCD.GList_Audio_cd, NumTrack-1); if (NULL == (Audio = GListCD->data)) return (FALSE); // SORTIE SI LE WIDGET SOUS LE CURSEUR NE CORRESPOND PAS AU TREEVIEW if (gtk_get_event_widget (event) != var_cd.Adr_TreeView) { // StatusBar_set_mess( NOTEBOOK_CD_AUDIO, _STATUSBAR_SIMPLE_, "" ); return (FALSE); } /* IDEE POUR REMPLACER LES COMPARAISON PAR NOMS. EXEMPLES: * PLAY = 0 * TRASH = 1 * TYPE = 2 * etc ... * NOTA: * CET ALGO PERMET DE RENOMMER AISEMENT LES ENTETES DE COLONNES DANS TOUTES LES LANGUES: FR, EN, DE, ... */ for (i = 0; i < NUM_TREE_CDAUDIO_ALL_COLUMN; i ++) { ColumnDum = gtk_tree_view_get_column (GTK_TREE_VIEW(treeview), i); if (ColumnDum == column) { /* g_print ("\tNUM IS: %d\n", i); */ switch ( i ) { case NUM_TREE_CDAUDIO_PLAY : BoolSelectColPlay = TRUE; break; case NUM_TREE_CDAUDIO_WAV : BoolSelectColWav = TRUE; break; case NUM_TREE_CDAUDIO_FLAC : BoolSelectColFlac = TRUE; break; case NUM_TREE_CDAUDIO_APE : BoolSelectColApe = TRUE; break; case NUM_TREE_CDAUDIO_WAVP : BoolSelectColWavP = TRUE; break; case NUM_TREE_CDAUDIO_OGG : BoolSelectColOgg = TRUE; break; case NUM_TREE_CDAUDIO_M4A : BoolSelectColM4a = TRUE; break; case NUM_TREE_CDAUDIO_AAC : BoolSelectColAac = TRUE; break; case NUM_TREE_CDAUDIO_MPC : BoolSelectColMpc = TRUE; break; case NUM_TREE_CDAUDIO_MP3 : BoolSelectColMp3 = TRUE; break; case NUM_TREE_CDAUDIO_NUM : break; case NUM_TREE_CDAUDIO_TIME : BoolSelectColTime = TRUE; break; case NUM_TREE_CDAUDIO_NORMALISE : BoolSelectColNormalise = TRUE; break; case NUM_TREE_CDAUDIO_NOM : BoolSelectColNom = TRUE; break; default: return (FALSE); } /* La colonne est trouvee ... sortie de la boucle */ break; } } if (BoolSelectColNormalise == TRUE) { cdaudio_set_normalise (Audio->EtatNormalise); } else if (BoolSelectColNom == TRUE) { gchar *path = NULL; gchar *pathdest = NULL; pathdest = cdaudio_get_result_destination (); path = g_strdup_printf ("%s%s", pathdest, Audio->NameSong); g_free (pathdest); pathdest = NULL; StatusBar_set_mess( NOTEBOOK_CD_AUDIO, _STATUSBAR_SIMPLE_, path ); g_free (path); path = NULL; } else if (BoolSelectColPlay == TRUE || BoolSelectColFlac == TRUE || BoolSelectColWav == TRUE || BoolSelectColMp3 == TRUE || BoolSelectColOgg == TRUE || BoolSelectColM4a == TRUE || BoolSelectColAac == TRUE || BoolSelectColMpc == TRUE || BoolSelectColApe == TRUE || BoolSelectColWavP == TRUE) { /* position du curseur a l'instant du click */ if (Pos_X < 18 || Pos_X > 30 || Pos_Y < 8 || Pos_Y > 20) { return (FALSE); } if (BoolSelectColPlay == TRUE) { StatusBar_set_mess( NOTEBOOK_CD_AUDIO, _STATUSBAR_SIMPLE_, " " ); } else if (BoolSelectColFlac == TRUE) { cdaudio_set_help (Audio, FILE_IS_FLAC ); } else if (BoolSelectColWav == TRUE) { cdaudio_set_help (Audio, FILE_IS_WAV ); } else if (BoolSelectColMp3 == TRUE) { cdaudio_set_help (Audio, FILE_IS_MP3 ); } else if (BoolSelectColOgg == TRUE) { cdaudio_set_help (Audio, FILE_IS_OGG ); } else if (BoolSelectColM4a == TRUE) { cdaudio_set_help (Audio, FILE_IS_M4A ); } else if (BoolSelectColAac == TRUE) { cdaudio_set_help (Audio, FILE_IS_AAC ); } else if (BoolSelectColMpc == TRUE) { cdaudio_set_help (Audio, FILE_IS_MPC ); } else if (BoolSelectColApe == TRUE) { cdaudio_set_help (Audio, FILE_IS_APE ); } else if (BoolSelectColWavP == TRUE) { cdaudio_set_help (Audio, FILE_IS_WAVPACK ); } } else { StatusBar_set_mess( NOTEBOOK_CD_AUDIO, _STATUSBAR_SIMPLE_, " " ); } StatusBar_puts(); return (FALSE); } // // void cdaudio_selected_column (GtkTreeViewColumn *treeviewcolumn, gpointer user_data) { gint NumColonne = GPOINTER_TO_INT(user_data); TYPE_FILE_IS TypeFileIs = FILE_IS_NONE; // PRINT_FUNC_LF(); switch (NumColonne) { case 0 : TypeFileIs = FILE_IS_WAV; break; case 1 : TypeFileIs = FILE_IS_FLAC; break; case 2 : TypeFileIs = FILE_IS_APE; break; case 3 : TypeFileIs = FILE_IS_WAVPACK; break; case 4 : TypeFileIs = FILE_IS_OGG; break; case 5 : TypeFileIs = FILE_IS_M4A; break; case 6 : TypeFileIs = FILE_IS_AAC; break; case 7 : TypeFileIs = FILE_IS_MPC; break; case 8 : TypeFileIs = FILE_IS_MP3; break; case 9 : TypeFileIs = FILE_TO_NORMALISE;break; } cdaudio_change_all_flags_extract_verticaly (TypeFileIs); cdaudio_set_flag_buttons (); } /* Creation des champs du 'treeview' * -- * entree : * GtkTreeView *treeview : * retour : - */ static void cdaudio_add_columns_scrolledwindow_cd (GtkTreeView *treeview) { GtkTreeModel *model = gtk_tree_view_get_model (treeview); GtkCellRenderer *renderer; GtkTreeViewColumn *column; // SIGNAL : 'event' g_signal_connect(G_OBJECT(treeview), "event", (GCallback) cdaudio_event, model); // SIGNAL 'key-press-event' g_signal_connect(G_OBJECT(treeview), "key-press-event", (GCallback) cdaudio_key_press_event, model); // SIGNAL 'button-press-event' g_signal_connect(G_OBJECT(treeview), "button-press-event", (GCallback) cdaudio_event_click_mouse, model); // Ligne actuellement selectionnee var_cd.Adr_Line_Selected = gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)); g_signal_connect(G_OBJECT(var_cd.Adr_Line_Selected), "changed", G_CALLBACK(cdaudio_changed_selection_row), "1"); /* model);*/ // COLUMN_CDAUDIO_PLAY renderer = gtk_cell_renderer_pixbuf_new (); g_object_set (renderer, "xalign", 0.5, NULL); var_cd.Adr_Column_Play = column = gtk_tree_view_column_new_with_attributes ( _("Play"), renderer, "pixbuf", COLUMN_CDAUDIO_PLAY, NULL); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column), GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 50); gtk_tree_view_column_set_alignment (GTK_TREE_VIEW_COLUMN (column), 0.5); gtk_tree_view_append_column (treeview, column); /* @Patachon, @Shankarius, @Dzef Je plaide aussi pour la réunion logique des formats lossless puis des autres. Je propose : lossless | perte | destruction forte <================> <============================> <=========> Wav | Flac | Ape | WPack | Ogg | M4a | Mpc | Mp3 Je conviens qu'il n'est pas facile de classer, car certains formats sont capables d'être utilisés en lossless ou en moindre qualité. Ce n'est donc pas vraiment linéaire. Mais c'est une piste... Wav Flac Ape WPack Ogg M4a Mpc Mp3 */ // COLUMN_CDAUDIO_WAV renderer = gtk_cell_renderer_pixbuf_new (); g_object_set (renderer, "xalign", 0.5, NULL); var_cd.Adr_Column_Wav = column = gtk_tree_view_column_new_with_attributes ( _("Wav"), renderer, "pixbuf", COLUMN_CDAUDIO_WAV, /*"text", COLUMN_CDAUDIO_WAV,*/ NULL); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column), GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 50); gtk_tree_view_column_set_alignment (GTK_TREE_VIEW_COLUMN (column), 0.5); gtk_tree_view_append_column (treeview, column); gtk_tree_view_column_set_clickable (GTK_TREE_VIEW_COLUMN (column), TRUE); g_signal_connect (G_OBJECT(GTK_TREE_VIEW_COLUMN (column)), "clicked", G_CALLBACK (cdaudio_selected_column), GINT_TO_POINTER(0)); // COLUMN_CDAUDIO_FLAC renderer = gtk_cell_renderer_pixbuf_new (); g_object_set (renderer, "xalign", 0.5, NULL); var_cd.Adr_Column_Flac = column = gtk_tree_view_column_new_with_attributes ( _("Flac"), renderer, "pixbuf", COLUMN_CDAUDIO_FLAC, NULL); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column), GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 50); gtk_tree_view_column_set_alignment (GTK_TREE_VIEW_COLUMN (column), 0.5); gtk_tree_view_append_column (treeview, column); gtk_tree_view_column_set_clickable (GTK_TREE_VIEW_COLUMN (column), TRUE); g_signal_connect (G_OBJECT(GTK_TREE_VIEW_COLUMN (column)), "clicked", G_CALLBACK (cdaudio_selected_column), GINT_TO_POINTER(1)); // COLUMN_CDAUDIO_APE renderer = gtk_cell_renderer_pixbuf_new (); g_object_set (renderer, "xalign", 0.5, NULL); var_cd.Adr_Column_Ape = column = gtk_tree_view_column_new_with_attributes ( _("Ape"), renderer, "pixbuf", COLUMN_CDAUDIO_APE, NULL); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column), GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 50); gtk_tree_view_column_set_alignment (GTK_TREE_VIEW_COLUMN (column), 0.5); gtk_tree_view_append_column (treeview, column); gtk_tree_view_column_set_clickable (GTK_TREE_VIEW_COLUMN (column), TRUE); g_signal_connect (G_OBJECT(GTK_TREE_VIEW_COLUMN (column)), "clicked", G_CALLBACK (cdaudio_selected_column), GINT_TO_POINTER(2)); // COLUMN_CDAUDIO_WAVPACK renderer = gtk_cell_renderer_pixbuf_new (); g_object_set (renderer, "xalign", 0.5, NULL); var_cd.Adr_Column_Wavpack = column = gtk_tree_view_column_new_with_attributes ( _("WavP"), renderer, "pixbuf", COLUMN_CDAUDIO_WAVPACK, NULL); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column), GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 50); gtk_tree_view_column_set_alignment (GTK_TREE_VIEW_COLUMN (column), 0.5); gtk_tree_view_append_column (treeview, column); gtk_tree_view_column_set_clickable (GTK_TREE_VIEW_COLUMN (column), TRUE); g_signal_connect (G_OBJECT(GTK_TREE_VIEW_COLUMN (column)), "clicked", G_CALLBACK (cdaudio_selected_column), GINT_TO_POINTER(3)); // COLUMN_CDAUDIO_OGG renderer = gtk_cell_renderer_pixbuf_new (); g_object_set (renderer, "xalign", 0.5, NULL); var_cd.Adr_Column_Ogg = column = gtk_tree_view_column_new_with_attributes ( _("Ogg"), renderer, "pixbuf", COLUMN_CDAUDIO_OGG, /*"text", COLUMN_CDAUDIO_OGG,*/ NULL); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column), GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 50); gtk_tree_view_column_set_alignment (GTK_TREE_VIEW_COLUMN (column), 0.5); gtk_tree_view_append_column (treeview, column); gtk_tree_view_column_set_clickable (GTK_TREE_VIEW_COLUMN (column), TRUE); g_signal_connect (G_OBJECT(GTK_TREE_VIEW_COLUMN (column)), "clicked", G_CALLBACK (cdaudio_selected_column), GINT_TO_POINTER(4)); // COLUMN_CDAUDIO_M4A renderer = gtk_cell_renderer_pixbuf_new (); g_object_set (renderer, "xalign", 0.5, NULL); var_cd.Adr_Column_M4a = column = gtk_tree_view_column_new_with_attributes ( _("M4a"), renderer, "pixbuf", COLUMN_CDAUDIO_M4A, /*"text", COLUMN_CDAUDIO_OGG,*/ NULL); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column), GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 50); gtk_tree_view_column_set_alignment (GTK_TREE_VIEW_COLUMN (column), 0.5); gtk_tree_view_append_column (treeview, column); gtk_tree_view_column_set_clickable (GTK_TREE_VIEW_COLUMN (column), TRUE); g_signal_connect (G_OBJECT(GTK_TREE_VIEW_COLUMN (column)), "clicked", G_CALLBACK (cdaudio_selected_column), GINT_TO_POINTER(5)); // COLUMN_CDAUDIO_AAC renderer = gtk_cell_renderer_pixbuf_new (); g_object_set (renderer, "xalign", 0.5, NULL); var_cd.Adr_Column_Aac = column = gtk_tree_view_column_new_with_attributes ( _("Aac"), renderer, "pixbuf", COLUMN_CDAUDIO_AAC, NULL); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column), GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 50); gtk_tree_view_column_set_alignment (GTK_TREE_VIEW_COLUMN (column), 0.5); gtk_tree_view_append_column (treeview, column); gtk_tree_view_column_set_clickable (GTK_TREE_VIEW_COLUMN (column), TRUE); g_signal_connect (G_OBJECT(GTK_TREE_VIEW_COLUMN (column)), "clicked", G_CALLBACK (cdaudio_selected_column), GINT_TO_POINTER(6)); // COLUMN_CDAUDIO_MPC renderer = gtk_cell_renderer_pixbuf_new (); g_object_set (renderer, "xalign", 0.5, NULL); var_cd.Adr_Column_Mpc = column = gtk_tree_view_column_new_with_attributes ( _("Mpc"), renderer, "pixbuf", COLUMN_CDAUDIO_MPC, NULL); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column), GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 50); gtk_tree_view_column_set_alignment (GTK_TREE_VIEW_COLUMN (column), 0.5); gtk_tree_view_append_column (treeview, column); gtk_tree_view_column_set_clickable (GTK_TREE_VIEW_COLUMN (column), TRUE); g_signal_connect (G_OBJECT(GTK_TREE_VIEW_COLUMN (column)), "clicked", G_CALLBACK (cdaudio_selected_column), GINT_TO_POINTER(7)); // COLUMN_CDAUDIO_MP3 renderer = gtk_cell_renderer_pixbuf_new (); g_object_set (renderer, "xalign", 0.5, NULL); var_cd.Adr_Column_Mp3 = column = gtk_tree_view_column_new_with_attributes ( _("Mp3"), renderer, "pixbuf", COLUMN_CDAUDIO_MP3, /*"text", COLUMN_CDAUDIO_MP3,*/ NULL); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column), GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 50); gtk_tree_view_column_set_alignment (GTK_TREE_VIEW_COLUMN (column), 0.5); gtk_tree_view_append_column (treeview, column); gtk_tree_view_column_set_clickable (GTK_TREE_VIEW_COLUMN (column), TRUE); g_signal_connect (G_OBJECT(GTK_TREE_VIEW_COLUMN (column)), "clicked", G_CALLBACK (cdaudio_selected_column), GINT_TO_POINTER(8)); // COLUMN_CDAUDIO_TRACK_NUM renderer = gtk_cell_renderer_text_new (); g_object_set (renderer, "xalign", 0.5, NULL); var_cd.Adr_Column_Num = column = gtk_tree_view_column_new_with_attributes ( _("Num"), renderer, "text", COLUMN_CDAUDIO_TRACK_NUM, NULL); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column), GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 50); gtk_tree_view_column_set_alignment (GTK_TREE_VIEW_COLUMN (column), 0.5); gtk_tree_view_append_column (treeview, column); // COLUMN_CDAUDIO_TRACK_TIME renderer = gtk_cell_renderer_text_new (); g_object_set (renderer, "xalign", 0.5, NULL); var_cd.Adr_Column_Time = column = gtk_tree_view_column_new_with_attributes ( _("Time"), renderer, "text", COLUMN_CDAUDIO_TRACK_TIME, NULL); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column), GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 50); gtk_tree_view_column_set_alignment (GTK_TREE_VIEW_COLUMN (column), 0.5); gtk_tree_view_append_column (treeview, column); // COLUMN_CDAUDIO_FILE_NORMALIZE renderer = gtk_cell_renderer_pixbuf_new (); g_object_set (renderer, "xalign", 0.5, NULL); var_cd.Adr_Column_Normalise = column = gtk_tree_view_column_new_with_attributes ( _("Normalise"), renderer, "pixbuf", COLUMN_CDAUDIO_FILE_NORMALIZE, NULL); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column), GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 100); gtk_tree_view_column_set_alignment (GTK_TREE_VIEW_COLUMN (column), 0.5); gtk_tree_view_append_column (treeview, column); gtk_tree_view_column_set_clickable (GTK_TREE_VIEW_COLUMN (column), TRUE); g_signal_connect (G_OBJECT(GTK_TREE_VIEW_COLUMN (column)), "clicked", G_CALLBACK (cdaudio_selected_column), GINT_TO_POINTER(9)); // COLUMN_CDAUDIO_TRACK_NAME var_cd.Renderer = renderer = gtk_cell_renderer_text_new (); /* g_signal_connect (renderer, "edited", G_CALLBACK (cdaudio_cell_edited_cd), model); */ g_object_set (renderer, "xalign", 0.5, NULL); g_object_set_data (G_OBJECT (renderer), "column", (gint *)COLUMN_CDAUDIO_TRACK_NAME); var_cd.Adr_Column_Nom = column = gtk_tree_view_column_new_with_attributes ( _("Nom"), renderer, "markup", COLUMN_CDAUDIO_TRACK_NAME, "background-gdk", COLUMN_CDAUDIO_COLOR, /* "editable", CF_COLUMN_EDITABLE */ NULL); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column), GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 50); gtk_tree_view_column_set_alignment (GTK_TREE_VIEW_COLUMN (column), 0.5); gtk_tree_view_append_column (treeview, column); } /* Creation du context * -- * entree : * GtkWidget *widget : * retour : - */ void on_scrolledwindow_cd_realize (GtkWidget *widget, gpointer user_data) { GtkListStore *store; GtkTreeModel *model; GtkWidget *treeview; var_cd.Adr_scroll = widget; var_cd.Pixbuf_Coche = libutils_init_pixbufs ("coche.png"); var_cd.Pixbuf_Coche_exist = libutils_init_pixbufs ("coche_exist.png"); var_cd.Pixbuf_Selected = libutils_init_pixbufs ("selected.png"); var_cd.Pixbuf_Selected_exist = libutils_init_pixbufs ("selected_exist.png"); var_cd.Pixbuf_Selected_expert = libutils_init_pixbufs ("selected_expert.png"); var_cd.Pixbuf_Selected_expert_exist = libutils_init_pixbufs ("selected_expert_exist.png"); var_cd.Pixbuf_CdPlay = libutils_init_pixbufs ("sol.png"); var_cd.Pixbuf_CdStop = libutils_init_pixbufs ("no_play.png"); var_cd.Pixbuf_Normalize = libutils_init_pixbufs ("norm_rpg_wait.png"); var_cd.Pixbuf_Normalize_Coche = libutils_init_pixbufs ("normalize2.png"); var_cd.Pixbuf_NotInstall = libutils_init_pixbufs ("not_install.png"); Articles_cd = g_array_sized_new (FALSE, FALSE, sizeof (ARTICLES_CD), 1); var_cd.Adr_List_Store = store = gtk_list_store_new ( CD_NUM_COLUMNS, // TOTAL NUMBER GDK_TYPE_PIXBUF, // COLUMN_CDAUDIO_PLAY GDK_TYPE_PIXBUF, // COLUMN_CDAUDIO_FLAC GDK_TYPE_PIXBUF, // COLUMN_CDAUDIO_WAV GDK_TYPE_PIXBUF, // COLUMN_CDAUDIO_MP3 GDK_TYPE_PIXBUF, // COLUMN_CDAUDIO_OGG GDK_TYPE_PIXBUF, // COLUMN_CDAUDIO_M4A GDK_TYPE_PIXBUF, // COLUMN_CDAUDIO_AAC GDK_TYPE_PIXBUF, // COLUMN_CDAUDIO_MPC GDK_TYPE_PIXBUF, // COLUMN_CDAUDIO_APE GDK_TYPE_PIXBUF, // COLUMN_CDAUDIO_WAVPACK G_TYPE_STRING, // COLUMN_CDAUDIO_TRACK_NUM G_TYPE_STRING, // COLUMN_CDAUDIO_TRACK_TIME GDK_TYPE_PIXBUF, // COLUMN_CDAUDIO_FILE_NORMALIZE G_TYPE_STRING, // COLUMN_CDAUDIO_TRACK_NAME GDK_TYPE_COLOR // COLUMN_CDAUDIO_COLOR ); var_cd.Adr_Tree_Model = model = GTK_TREE_MODEL (store); /* creation de tree view */ var_cd.Adr_TreeView = treeview = gtk_tree_view_new_with_model (model); gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (treeview), TRUE); g_object_unref (model); gtk_container_add (GTK_CONTAINER (widget), treeview); cdaudio_add_columns_scrolledwindow_cd (GTK_TREE_VIEW (treeview)); gtk_widget_show_all (widget); } // // gboolean bool_entree_cd_verif_car = TRUE; // // void cdaudio_set_titre_chanson (void) { gint Num_cell = 0; gboolean valid; GtkTreeIter iter; GList *List = NULL; // gchar *ptr_template = NULL; gchar *ptr = NULL; CD_AUDIO *Audio = NULL; gchar *StrLine = NULL; if (var_cd.Adr_entry_new_titre_cdaudio == NULL) return; if (EnteteCD.GList_Audio_cd == NULL) return; if (bool_entree_cd_verif_car == FALSE) return; // ptr_template = (gchar *)gtk_entry_get_text (GTK_ENTRY (var_cd.Adr_entry_new_titre_cdaudio)); // var_cd.Bool_create_file_m3u = FALSE; valid = gtk_tree_model_get_iter_first (var_cd.Adr_Tree_Model, &iter); while (valid) { List = g_list_nth (EnteteCD.GList_Audio_cd, Num_cell); if ((Audio = (CD_AUDIO *)List->data)) { // POINTEUR SUR LIGNE PARSEE StrLine = Parse_get_line (PARSE_TYPE_TITLE_CD, Num_cell); // free 'Track_Name' g_free (g_array_index (Articles_cd, ARTICLES_CD, Num_cell).Track_Name); g_array_index (Articles_cd, ARTICLES_CD, Num_cell).Track_Name = NULL; // SUPPRESSION DES ESPACES DE DEBUT ptr = StrLine; while (*ptr == ' ') ptr ++; strcpy (StrLine, ptr); // SUPPRESSION DES ESPACES DE FIN ptr = StrLine; while (*ptr) ptr ++; ptr --; while (*ptr == ' ') ptr --; ptr ++; *ptr = '\0'; if (0 == strlen (StrLine)) { g_free (StrLine); StrLine = NULL; StrLine = g_strdup (Audio->NameSong); } g_array_index (Articles_cd, ARTICLES_CD, Num_cell).Track_Name = g_strdup (StrLine); if (Audio->NameSong) { g_free (Audio->NameSong); Audio->NameSong = NULL; } Audio->NameSong = g_strdup (StrLine); // -- // Thu, 14 Jul 2011 13:04:19 +0200 // Son nom : LeDub // Bonjour, // Je viens de trouver un bug étrange dans la version Xcfa 4.1.0-1 d'une Debian testing. Mettre, dans la partie "Gestion des tags...", // un "&" dans le titre d'une piste fait que, dans la sélection des pistes à compresser le titre devienne celui de la piste précédente. // Si la deuxième piste doit contenir un "&" alors cette piste sera affichée à l'identique de la première piste, si c'est la première piste // alors l'affichage est celui de la dernière piste du disque. // Voilà j'espère avoir été clair. // Je reste à votre entière disposition pour de plus amples détails. // Bonne continuation. // LeDub // g_free (StrLine); StrLine = NULL; StrLine = utf8_eperluette_name( Audio->NameSong ); // AFFICHAGE gtk_list_store_set (GTK_LIST_STORE (var_cd.Adr_Tree_Model), &iter, COLUMN_CDAUDIO_TRACK_NAME, // g_array_index (Articles_cd, ARTICLES_CD, Num_cell).Track_Name, StrLine, COLUMN_CDAUDIO_COLOR, &YellowColor, -1); g_free (StrLine); StrLine = NULL; } // suivant valid = gtk_tree_model_iter_next (var_cd.Adr_Tree_Model, &iter); Num_cell ++; } // MISE A JOUR NOM DOSSIER STOCKAGE CD OptionsCd_set_entry_and_label(); } // // gchar *cdaudio_get_titre_chanson (CD_AUDIO *Audio, gint Num_cell) { gchar *StrLine = NULL; if (EnteteCD.GList_Audio_cd == NULL) return ((gchar *)NULL); if (var_cd.Adr_entry_new_titre_cdaudio == NULL) return ((gchar *)NULL); var_cd.Bool_create_file_m3u = FALSE; StrLine = Parse_get_line (PARSE_TYPE_TITLE_CD, Num_cell); if (Audio->NameSong != NULL) { g_free (Audio->NameSong); Audio->NameSong = NULL; } Audio->NameSong = g_strdup (StrLine); return ((gchar* )Audio->NameSong); } /* Deallocation complete des lignes du context * -- * entree : - * retour : - */ void cdaudio_deallocate_glist_context (void) { gint Num_cell; gboolean valid; GtkTreeIter iter; Num_cell = 0; valid = gtk_tree_model_get_iter_first (var_cd.Adr_Tree_Model, &iter); while (valid) { g_free (g_array_index (Articles_cd, ARTICLES_CD, Num_cell).Track_Num); g_array_index (Articles_cd, ARTICLES_CD, Num_cell).Track_Num = NULL; g_free (g_array_index (Articles_cd, ARTICLES_CD, Num_cell).Track_Time); g_array_index (Articles_cd, ARTICLES_CD, Num_cell).Track_Time = NULL; g_free (g_array_index (Articles_cd, ARTICLES_CD, Num_cell).Track_Name); g_array_index (Articles_cd, ARTICLES_CD, Num_cell).Track_Name = NULL; valid = gtk_tree_model_iter_next (var_cd.Adr_Tree_Model, &iter); Num_cell ++; } } // // GdkPixbuf *cdaudio_get_pixbuf_play (CD_AUDIO *Audio) { GdkPixbuf *PixBuf = NULL; if (PrgInit.bool_mplayer == FALSE) { PixBuf = var_cd.Pixbuf_NotInstall; } else { if (Audio->EtatPlay == CD_ETAT_PLAY) PixBuf = var_cd.Pixbuf_CdPlay; if (Audio->EtatPlay == CD_ETAT_PLAY_ATTENTE) PixBuf = var_cd.Pixbuf_CdStop; } return ((GdkPixbuf *)PixBuf); } /* Reaffichage complet du context depuis les datas du GList 'EnteteCD.GList_Audio_cd' * -- * entree : - * retour : - */ void cdaudio_affiche_glist_audio (void) { GList *List = NULL; CD_AUDIO *Audio = NULL; GtkAdjustment *Adj = NULL; GtkTreeIter iter; ARTICLES_CD Foo; gint NumTrack; cdaudio_deallocate_glist_context (); gtk_list_store_clear (var_cd.Adr_List_Store); /* Mise a jour du scroll vertical */ Adj = gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (var_cd.Adr_scroll)); /* g_print ("Adj->value %f\n", Adj->value); g_print ("Adj->lower %f\n", Adj->lower); g_print ("Adj->upper %f\n", Adj->upper); g_print ("Adj->step_increment %f\n", Adj->step_increment); g_print ("Adj->page_increment %f\n", Adj->page_increment); g_print ("Adj->page_size %f\n", Adj->page_size); */ gtk_adjustment_set_value (Adj, 0.0); gtk_scrolled_window_set_vadjustment (GTK_SCROLLED_WINDOW (var_cd.Adr_scroll), Adj); List = g_list_first (EnteteCD.GList_Audio_cd); while (List) { if ((Audio = (CD_AUDIO *)List->data) != NULL) { NumTrack = (gint)g_strtod (Audio->Str_Track, NULL); NumTrack --; if (Audio->EtatPlay == CD_ETAT_PLAY) Foo.PlayTrack = var_cd.Pixbuf_CdPlay; else if (Audio->EtatPlay == CD_ETAT_PLAY_ATTENTE) Foo.PlayTrack = var_cd.Pixbuf_CdStop; Foo.PlayTrack = cdaudio_get_pixbuf_play (Audio); Foo.Track_Name = g_strdup ((gchar *)cdaudio_get_titre_chanson (Audio, NumTrack)); Foo.Flac = cdaudio_get_pixbuf_file (Audio, FILE_IS_FLAC); Foo.Wav = cdaudio_get_pixbuf_file (Audio, FILE_IS_WAV); Foo.Mp3 = cdaudio_get_pixbuf_file (Audio, FILE_IS_MP3); Foo.Ogg = cdaudio_get_pixbuf_file (Audio, FILE_IS_OGG); Foo.M4a = cdaudio_get_pixbuf_file (Audio, FILE_IS_M4A); Foo.Aac = cdaudio_get_pixbuf_file (Audio, FILE_IS_AAC); Foo.Mpc = cdaudio_get_pixbuf_file (Audio, FILE_IS_MPC); Foo.Ape = cdaudio_get_pixbuf_file (Audio, FILE_IS_APE); Foo.WavPack = cdaudio_get_pixbuf_file (Audio, FILE_IS_WAVPACK); Foo.Track_Num = g_strdup (Audio->Str_Track); Foo.Track_Time = g_strdup (Audio->Duree); Foo.ColumnCDNormalize = cdaudio_get_pixbuf_file (Audio, FILE_TO_NORMALISE); g_array_append_vals (Articles_cd, &Foo, 1); gtk_list_store_append (var_cd.Adr_List_Store, &iter); gtk_list_store_set ( var_cd.Adr_List_Store, &iter, COLUMN_CDAUDIO_PLAY, Foo.PlayTrack, COLUMN_CDAUDIO_FLAC, Foo.Flac, COLUMN_CDAUDIO_WAV, Foo.Wav, COLUMN_CDAUDIO_MP3, Foo.Mp3, COLUMN_CDAUDIO_OGG, Foo.Ogg, COLUMN_CDAUDIO_M4A, Foo.M4a, COLUMN_CDAUDIO_AAC, Foo.Aac, COLUMN_CDAUDIO_MPC, Foo.Mpc, COLUMN_CDAUDIO_APE, Foo.Ape, COLUMN_CDAUDIO_WAVPACK, Foo.WavPack, COLUMN_CDAUDIO_TRACK_NUM, Foo.Track_Num, COLUMN_CDAUDIO_TRACK_TIME, Foo.Track_Time, COLUMN_CDAUDIO_FILE_NORMALIZE, Foo.ColumnCDNormalize, COLUMN_CDAUDIO_TRACK_NAME, Foo.Track_Name, COLUMN_CDAUDIO_COLOR, &YellowColor, -1); } List = g_list_next(List); } cdaudio_set_titre_chanson (); /* select line number one */ if (EnteteCD.GList_Audio_cd) { gtk_tree_model_get_iter_first (var_cd.Adr_Tree_Model, &iter); gtk_tree_selection_select_iter (var_cd.Adr_Line_Selected, &iter); } } // // void cdaudio_update_glist (void) { CD_AUDIO *Audio = NULL; GdkPixbuf *Pixbuf = NULL; GList *List = NULL; gboolean valid; GtkTreeIter iter; gint NumTrack = 0; if (!var_cd.Adr_Tree_Model) return; valid = gtk_tree_model_get_iter_first (var_cd.Adr_Tree_Model, &iter); while (valid) { List = g_list_nth (EnteteCD.GList_Audio_cd, NumTrack); if (List && (Audio = (CD_AUDIO *)List->data)) { Pixbuf = cdaudio_get_pixbuf_file (Audio, FILE_IS_WAV); gtk_list_store_set (var_cd.Adr_List_Store, &iter, COLUMN_CDAUDIO_WAV, Pixbuf, -1); Pixbuf = cdaudio_get_pixbuf_file (Audio, FILE_IS_FLAC); gtk_list_store_set (var_cd.Adr_List_Store, &iter, COLUMN_CDAUDIO_FLAC, Pixbuf, -1); Pixbuf = cdaudio_get_pixbuf_file (Audio, FILE_IS_APE); gtk_list_store_set (var_cd.Adr_List_Store, &iter, COLUMN_CDAUDIO_APE, Pixbuf, -1); Pixbuf = cdaudio_get_pixbuf_file (Audio, FILE_IS_WAVPACK); gtk_list_store_set (var_cd.Adr_List_Store, &iter, COLUMN_CDAUDIO_WAVPACK, Pixbuf, -1); Pixbuf = cdaudio_get_pixbuf_file (Audio, FILE_IS_OGG); gtk_list_store_set (var_cd.Adr_List_Store, &iter, COLUMN_CDAUDIO_OGG, Pixbuf, -1); Pixbuf = cdaudio_get_pixbuf_file (Audio, FILE_IS_M4A); gtk_list_store_set (var_cd.Adr_List_Store, &iter, COLUMN_CDAUDIO_M4A, Pixbuf, -1); Pixbuf = cdaudio_get_pixbuf_file (Audio, FILE_IS_AAC); gtk_list_store_set (var_cd.Adr_List_Store, &iter, COLUMN_CDAUDIO_AAC, Pixbuf, -1); Pixbuf = cdaudio_get_pixbuf_file (Audio, FILE_IS_MPC); gtk_list_store_set (var_cd.Adr_List_Store, &iter, COLUMN_CDAUDIO_MPC, Pixbuf, -1); Pixbuf = cdaudio_get_pixbuf_file (Audio, FILE_IS_MP3); gtk_list_store_set (var_cd.Adr_List_Store, &iter, COLUMN_CDAUDIO_MP3, Pixbuf, -1); Pixbuf = cdaudio_get_pixbuf_file (Audio, FILE_TO_NORMALISE); gtk_list_store_set (var_cd.Adr_List_Store, &iter, COLUMN_CDAUDIO_FILE_NORMALIZE, Pixbuf, -1); NumTrack ++; } valid = gtk_tree_model_iter_next (var_cd.Adr_Tree_Model, &iter); } } /* Deallocation complete du GList 'EnteteCD.GList_Audio_cd' * -- * entree : - * retour : - */ void cdaudio_deallocate_glist (void) { CD_AUDIO *Audio = NULL; GList *List = NULL; gint NbList = 0; // Deallocate ENTETE if (NULL != EnteteCD.TitleCD) { g_free (EnteteCD.TitleCD); EnteteCD.TitleCD = NULL; } if (NULL != EnteteCD.StrDureeCd) { g_free (EnteteCD.StrDureeCd); EnteteCD.StrDureeCd = NULL; } if (NULL != EnteteCD.StrGenre) { g_free (EnteteCD.StrGenre); EnteteCD.StrGenre = NULL; } if (NULL != EnteteCD.StrYear) { g_free (EnteteCD.StrYear); EnteteCD.StrYear = NULL; } if (NULL != EnteteCD.Message) { g_free (EnteteCD.Message); EnteteCD.Message = NULL; } // Deallocate ALLs struct Audio in GList_Audio_cd List = g_list_first (EnteteCD.GList_Audio_cd); while (List) { if (NULL != (Audio = (CD_AUDIO *)List->data)) { g_free (Audio->Str_Track); Audio->Str_Track = NULL; g_free (Audio->NameSong); Audio->NameSong = NULL; g_free (Audio->Duree); Audio->Duree = NULL; g_free (Audio->PathName_Dest_Wav); Audio->PathName_Dest_Wav = NULL; g_free (Audio->PathName_Dest_Mp3); Audio->PathName_Dest_Mp3 = NULL; g_free (Audio->PathName_Dest_Ogg); Audio->PathName_Dest_Ogg = NULL; Audio->tags = (TAGS *)tags_remove (Audio->tags); g_free (Audio); Audio = NULL; List->data = NULL; NbList ++; } List = g_list_next(List); } // Deallocate GList_Audio_cd g_list_free (EnteteCD.GList_Audio_cd); EnteteCD.GList_Audio_cd = NULL; if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("\tRemove: %d\n", NbList); } /* Cette fonction retourne l'etat 'TRUE' si au moins une demande d'extraction est activee * -- * entree : - * retour : * FALSE : Aucune demande d'extraction * TRUE : Au moins une demande d'extraction est activee */ gboolean cdaudio_get_bool_all_extract (void) { GList *List = NULL; CD_AUDIO *Audio = NULL; List = g_list_first (EnteteCD.GList_Audio_cd); while (List) { if ((Audio = (CD_AUDIO *)List->data) != NULL) { if (Audio->EtatSelection_Flac > CD_ETAT_ATTENTE_EXIST || Audio->EtatSelection_Wav > CD_ETAT_ATTENTE_EXIST || Audio->EtatSelection_Mp3 > CD_ETAT_ATTENTE_EXIST || Audio->EtatSelection_Ogg > CD_ETAT_ATTENTE_EXIST || Audio->EtatSelection_M4a > CD_ETAT_ATTENTE_EXIST || Audio->EtatSelection_Aac > CD_ETAT_ATTENTE_EXIST || Audio->EtatSelection_Mpc > CD_ETAT_ATTENTE_EXIST || Audio->EtatSelection_Ape > CD_ETAT_ATTENTE_EXIST || Audio->EtatSelection_WavPack > CD_ETAT_ATTENTE_EXIST) return (TRUE); } List = g_list_next (List); } return (FALSE); } // // gboolean cdaudio_get_bool_wav_extract (void) { GList *List = NULL; CD_AUDIO *Audio = NULL; List = g_list_first (EnteteCD.GList_Audio_cd); while (List) { if ((Audio = (CD_AUDIO *)List->data) != NULL) { if (Audio->EtatSelection_Wav > CD_ETAT_ATTENTE_EXIST) return (TRUE); } List = g_list_next (List); } return (FALSE); } // // gboolean cdaudio_get_bool_mp3_extract (void) { GList *List = NULL; CD_AUDIO *Audio = NULL; List = g_list_first (EnteteCD.GList_Audio_cd); while (List) { if ((Audio = (CD_AUDIO *)List->data) != NULL) { if (Audio->EtatSelection_Mp3 > CD_ETAT_ATTENTE_EXIST) return (TRUE); } List = g_list_next (List); } return (FALSE); } // // gboolean cdaudio_get_etat_normalise (void) { GList *List = NULL; CD_AUDIO *Audio = NULL; List = g_list_first (EnteteCD.GList_Audio_cd); while (List) { if ((Audio = (CD_AUDIO *)List->data) != NULL) { if (Audio->EtatNormalise == TRUE) return (TRUE); } List = g_list_next (List); } return (FALSE); } // // gboolean cdaudio_get_bool_is_wav_extract_to_cue (void) { GList *List = NULL; CD_AUDIO *Audio = NULL; gint NbrSelectedWav = 0; gboolean BoolSelectedOthers = FALSE; List = g_list_first (EnteteCD.GList_Audio_cd); while (List) { if ((Audio = (CD_AUDIO *)List->data) != NULL) { if (Audio->EtatSelection_Wav > CD_ETAT_ATTENTE_EXIST) NbrSelectedWav ++; if (Audio->EtatSelection_Flac > CD_ETAT_ATTENTE_EXIST || Audio->EtatSelection_Mp3 > CD_ETAT_ATTENTE_EXIST || Audio->EtatSelection_Ogg > CD_ETAT_ATTENTE_EXIST || Audio->EtatSelection_M4a > CD_ETAT_ATTENTE_EXIST || Audio->EtatSelection_Aac > CD_ETAT_ATTENTE_EXIST || Audio->EtatSelection_Mpc > CD_ETAT_ATTENTE_EXIST || Audio->EtatSelection_Ape > CD_ETAT_ATTENTE_EXIST || Audio->EtatSelection_WavPack > CD_ETAT_ATTENTE_EXIST) BoolSelectedOthers = TRUE; } List = g_list_next (List); } if (BoolSelectedOthers == TRUE) return (FALSE); return (NbrSelectedWav > 1 ? TRUE : FALSE); } /* Rendre utilisable ou non les boutons du notebook CD AUDIO * -- * entree : - * retour : - */ void cdaudio_set_flag_buttons (void) { gboolean BoolButtonsAudio [ 3 ] = {FALSE, FALSE, FALSE}; // raffraichir BoolButtonsAudio [ 0 ] = scan_get_text_combo_cd (_CD_) != NULL ? TRUE : FALSE; // extraction BoolButtonsAudio [ 1 ] = cdaudio_get_bool_all_extract (); // action gtk_widget_set_sensitive (GTK_WIDGET (GLADE_GET_OBJECT("button_rafraichir_cd")), BoolButtonsAudio [ 0 ]); gtk_widget_set_sensitive (GTK_WIDGET (GLADE_GET_OBJECT("button_applique_change")), BoolButtonsAudio [ 1 ]); // Numerate begin file BoolButtonsAudio [ 2 ] = EnteteCD.GList_Audio_cd ? TRUE : FALSE; gtk_widget_set_sensitive (GTK_WIDGET (GTK_COMBO_BOX (var_cd.Adr_combobox_normalise_cd)), cdaudio_get_etat_normalise ()); gtk_widget_set_sensitive (GTK_WIDGET (GLADE_GET_OBJECT("vbox_options_cue")), cdaudio_get_bool_is_wav_extract_to_cue ()); gtk_widget_set_sensitive( GTK_WIDGET(GLADE_GET_OBJECT("table_tags_expanderCD")), NULL != EnteteCD.GList_Audio_cd ? TRUE : FALSE ); gtk_widget_set_sensitive( GTK_WIDGET(GLADE_GET_OBJECT("vbox_titres_expanderCD")), NULL != EnteteCD.GList_Audio_cd ? TRUE : FALSE ); gtk_widget_set_sensitive( GTK_WIDGET(GLADE_GET_OBJECT("button_cue_creation_from_cd")), NULL != EnteteCD.GList_Audio_cd ? TRUE : FALSE ); StatusBar_puts(); } // Recuperation d'un pointeur de texte sur le contenu du bouton 'destination' qui est // le chemin de destination des extractions / conversions de pistes musicales // -- // entree : - // retour : // gchar * : pointeur de texte // gchar *cdaudio_get_result_destination (void) { gchar *NameDir = NULL; gchar *StrTemplate = NULL; CD_AUDIO *Audio = NULL; if ((Audio = cdaudio_get_line_selected ())) { StrTemplate = Parse_get_line( PARSE_TYPE_STOCKAGE_CD, Audio->Num_Track -1 ); if( *StrTemplate == '\0' ) NameDir = g_strdup_printf( "%s/%s", Config.PathDestinationCD, StrTemplate ); else NameDir = g_strdup_printf( "%s/%s/", Config.PathDestinationCD, StrTemplate ); g_free (StrTemplate); StrTemplate = NULL; } else { NameDir = g_strdup_printf ("%s", (gchar *)Config.PathDestinationCD); } return (NameDir); } // // void on_combobox_peripherique_cd_realize (GtkWidget *widget, gpointer user_data) { GList *List = NULL; MEDIA *Media = NULL; gint Cpt = 0; // libcombo_alloc (GTK_COMBO_BOX (widget)); List = g_list_first (scan_get_glist ()); while (List) { if ((Media = (MEDIA *)List->data)) { gtk_combo_box_append_text (GTK_COMBO_BOX (widget), (gchar *)Media->Full_Name); Cpt ++; } List = g_list_next(List); } if (Config.NumSelectComboBoxCd < 0) Config.NumSelectComboBoxCd = 0; if (Cpt > 0) Cpt --; if (Config.NumSelectComboBoxCd > Cpt) Config.NumSelectComboBoxCd = Cpt; gtk_combo_box_set_active (GTK_COMBO_BOX (widget), Config.NumSelectComboBoxCd); var_cd.Adr_Combo_Box = GTK_COMBO_BOX (widget); } // // void on_combobox_peripherique_cd_changed (GtkComboBox *combobox, gpointer user_data) { if (NULL != var_cd.Adr_Combo_Box) { Config.NumSelectComboBoxCd = gtk_combo_box_get_active (GTK_COMBO_BOX (var_cd.Adr_Combo_Box)); cd_audio_bool_access_discid( FALSE ); CdCurl_set_call( -1, NULL, NULL ); cdaudiotoc_reffresh_list_cd (); } } // // void on_label_titre_cd_realize (GtkWidget *widget, gpointer user_data) { var_cd.Adr_Label_Titre = widget; cdaudio_put_label_titre (""); } // // void on_label_duree_cd_realize (GtkWidget *widget, gpointer user_data) { var_cd.Adr_Label_Duree = widget; cdaudio_put_label_duree (""); } // // void on_label_StrDureeCd_realize (GtkWidget *widget, gpointer user_data) { var_cd.Adr_Label_Duree = widget; cdaudio_put_label_duree (""); } // // void on_button_applique_change_realize (GtkWidget *widget, gpointer user_data) { var_cd.Adr_button_applique_change = widget; } // // void on_button_applique_change_clicked (GtkButton *button, gpointer user_data) { if (EnteteCD.GList_Audio_cd != NULL) { /* La normalisation des fichiers se fait a la fin des * extractions et conversion des fichiers */ if (cdaudio_get_bool_all_extract ()) { cdaudioextract_extraction_cd_to_file_action (); } } } // // void on_cdaudio_combobox_serveur_cd_realize (GtkWidget *widget, gpointer user_data) { // libcombo_alloc (GTK_COMBO_BOX (widget)); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "Auto: freedb"); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "Param CDDB"); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "Param PROXY"); var_cd.Adr_combobox_serveur = GTK_COMBO_BOX (widget); gtk_combo_box_set_active (GTK_COMBO_BOX (widget), Config.ServeurCddb); } // // cddbp-server=servername // sets the server to be contacted for title lookups // définit le serveur à contacter pour les recherches titre // legt die Portnummer für den Titel Lookups verwendet werden // imposta il numero di porta da utilizzare per le ricerche titolo // // cddbp-port=portnumber // sets the port number to be used for title lookups // définit le nombre de port à utiliser pour les recherches titre // legt die Portnummer für den Titel Lookups verwendet werden // imposta il numero di porta da utilizzare per le ricerche titolo // void on_button_init_cddp_clicked (GtkButton *button, gpointer user_data) { if( SERVER_CDDB_PARAM == Config.ServeurCddb ) { if (NULL != Config.entry_cddp_server) { g_free (Config.entry_cddp_server); Config.entry_cddp_server = NULL; } Config.entry_cddp_server = g_strdup ("freedb.org"); gtk_entry_set_text (GTK_ENTRY(GTK_WIDGET(GLADE_GET_OBJECT("entry_cddb_server"))), Config.entry_cddp_server); } else if( SERVER_PROXY_PARAM == Config.ServeurCddb ) { if (NULL != Config.entry_proxy_server) { g_free (Config.entry_proxy_server); Config.entry_proxy_server = NULL; } if (NULL != Config.entry_proxy_port) { g_free (Config.entry_proxy_port); Config.entry_proxy_port = NULL; } Config.entry_proxy_server = g_strdup ("10.0.0.1"); gtk_entry_set_text (GTK_ENTRY(GTK_WIDGET(GLADE_GET_OBJECT("entry_cddb_server"))), Config.entry_proxy_server); Config.entry_proxy_port = g_strdup ("8080"); gtk_entry_set_text (GTK_ENTRY(GTK_WIDGET(GLADE_GET_OBJECT("entry_cddb_port"))), Config.entry_proxy_port); } } // // void on_combobox_serveur_cd_changed (GtkComboBox *combobox, gpointer user_data) { if (NULL != var_cd.Adr_combobox_serveur) { Config.ServeurCddb = gtk_combo_box_get_active (var_cd.Adr_combobox_serveur); if( SERVER_CDDB_PARAM == Config.ServeurCddb ) { // label101 gtk_label_set_markup (GTK_LABEL(GTK_WIDGET (GLADE_GET_OBJECT("label101"))), _(" Parametrage CDDB: [ Nom du serveur ]")); gtk_widget_show (GTK_WIDGET (GLADE_GET_OBJECT("alignment_cddb_server"))); gtk_widget_hide (GTK_WIDGET (GLADE_GET_OBJECT("alignment_cddb_port"))); gtk_widget_show (GTK_WIDGET (GLADE_GET_OBJECT("button_init_cddb"))); gtk_entry_set_text (GTK_ENTRY(GTK_WIDGET(GLADE_GET_OBJECT("entry_cddb_server"))), Config.entry_cddp_server); } else if( SERVER_PROXY_PARAM == Config.ServeurCddb ) { // label101 gtk_label_set_markup (GTK_LABEL(GTK_WIDGET (GLADE_GET_OBJECT("label101"))), _(" Parametrage PROXY: [ serveur ] [ port ]")); gtk_widget_show (GTK_WIDGET (GLADE_GET_OBJECT("alignment_cddb_server"))); gtk_widget_show (GTK_WIDGET (GLADE_GET_OBJECT("alignment_cddb_port"))); gtk_widget_show (GTK_WIDGET (GLADE_GET_OBJECT("button_init_cddb"))); gtk_entry_set_text (GTK_ENTRY(GTK_WIDGET(GLADE_GET_OBJECT("entry_cddb_server"))), Config.entry_proxy_server); gtk_entry_set_text (GTK_ENTRY(GTK_WIDGET(GLADE_GET_OBJECT("entry_cddb_port"))), Config.entry_proxy_port); } else { // label101 gtk_label_set_markup (GTK_LABEL(GTK_WIDGET (GLADE_GET_OBJECT("label101"))), _(" Serveur ")); gtk_widget_hide (GTK_WIDGET (GLADE_GET_OBJECT("alignment_cddb_server"))); gtk_widget_hide (GTK_WIDGET (GLADE_GET_OBJECT("alignment_cddb_port"))); gtk_widget_hide (GTK_WIDGET (GLADE_GET_OBJECT("button_init_cddb"))); } } } // // void on_entry_cddp_server_realize (GtkWidget *widget, gpointer user_data) { if (NULL == Config.entry_cddp_server) { Config.entry_cddp_server = g_strdup ("freedb.org"); } if (NULL == Config.entry_proxy_server) { Config.entry_proxy_server = g_strdup ("10.0.0.1"); } if (NULL == Config.entry_proxy_port) { Config.entry_proxy_port = g_strdup ("8080"); } if( SERVER_CDDB_PARAM == Config.ServeurCddb ) { gtk_entry_set_text (GTK_ENTRY(GTK_WIDGET(GLADE_GET_OBJECT("entry_cddb_server"))), Config.entry_cddp_server); } else if( SERVER_PROXY_PARAM == Config.ServeurCddb ) { gtk_entry_set_text (GTK_ENTRY(GTK_WIDGET(GLADE_GET_OBJECT("entry_cddb_server"))), Config.entry_proxy_server); gtk_entry_set_text (GTK_ENTRY(GTK_WIDGET(GLADE_GET_OBJECT("entry_cddb_port"))), Config.entry_proxy_port); } on_combobox_serveur_cd_changed (NULL, NULL); } // // void on_entry_cddp_server_changed( GtkEditable *editable, gpointer user_data ) { gchar *PtrServeur = (gchar *)gtk_entry_get_text (GTK_ENTRY(GTK_WIDGET(GLADE_GET_OBJECT("entry_cddb_server")))); if( SERVER_CDDB_PARAM == Config.ServeurCddb ) { if( NULL != Config.entry_cddp_server ) { g_free( Config.entry_cddp_server ); Config.entry_cddp_server = NULL; } if( *PtrServeur == '\0' ) { Config.entry_cddp_server = g_strdup ("freedb.org"); } else { Config.entry_cddp_server = g_strdup ( PtrServeur ); } } else if( SERVER_PROXY_PARAM == Config.ServeurCddb ) { if( NULL != Config.entry_proxy_server ) { g_free( Config.entry_proxy_server ); Config.entry_proxy_server = NULL; } if( *PtrServeur == '\0' ) { Config.entry_proxy_server = g_strdup (""); } else { Config.entry_proxy_server = g_strdup ( PtrServeur ); } } } void on_entry_cddb_port_changed( GtkEditable *editable, gpointer user_data ) { gchar *PtrPort = (gchar *)gtk_entry_get_text (GTK_ENTRY(GTK_WIDGET(GLADE_GET_OBJECT("entry_cddb_port")))); if( NULL != Config.entry_proxy_port ) { g_free( Config.entry_proxy_port ); Config.entry_proxy_port = NULL; } if( *PtrPort == '\0' ) { Config.entry_proxy_port = g_strdup (""); } else { Config.entry_proxy_port = g_strdup ( PtrPort ); } } // // void on_combobox_normalise_cd_realize (GtkWidget *widget, gpointer user_data) { libcombo_alloc (GTK_COMBO_BOX (widget)); var_cd.Adr_combobox_normalise_cd = GTK_COMBO_BOX (widget); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "Peak/Album"); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "Peak"); gtk_combo_box_set_active (GTK_COMBO_BOX (widget), 0); } // // void on_combobox_normalise_cd_changed (GtkComboBox *combobox, gpointer user_data) { if (NULL == var_cd.Adr_combobox_normalise_cd) return; } // // SOLVED // Debian Bug report logs - #673640 // xcfa: XCFA crashes when the CD is ejected // http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=673640 // void on_button_eject_cd_realize( GtkWidget *widget, gpointer user_data ) { // g_print( "on_button_eject_cd_realize\n" ); // g_print( "\tscan_get_glist() = %p\n", scan_get_glist () ); gtk_widget_set_sensitive( widget, scan_get_glist() == NULL ? FALSE : TRUE ); } void on_button_eject_cd_clicked (GtkButton *button, gpointer user_data) { cdaudiotoc_button_eject_cd_clicked (); } // // void on_button_destination_cd_realize (GtkWidget *widget, gpointer user_data) { var_cd.Adr_Button_Destination = GTK_BUTTON (widget); gtk_button_set_use_underline (GTK_BUTTON (var_cd.Adr_Button_Destination), FALSE); gtk_button_set_label (GTK_BUTTON (var_cd.Adr_Button_Destination), Config.PathDestinationCD); } // // void cdaudio_apply_result_destination (gchar *path) { if (TRUE == libutils_test_write (path)) { g_free (Config.PathDestinationCD); Config.PathDestinationCD = NULL; Config.PathDestinationCD = g_strdup (path); gtk_button_set_label (GTK_BUTTON (var_cd.Adr_Button_Destination), Config.PathDestinationCD); cdaudio_update_glist (); OptionsCd_set_entry_and_label(); } } // // void on_button_destination_cd_clicked (GtkButton *button, gpointer user_data) { fileselect_create (_PATH_CHOICE_DESTINATION_, Config.PathDestinationCD, cdaudio_apply_result_destination); } // // void on_button_rafraichir_cd_realize (GtkWidget *widget, gpointer user_data) { var_cd.Adr_Button_Raffraichir = widget; } // REMET LA LISTE A JOUR // void on_button_rafraichir_cd_clicked (GtkButton *button, gpointer user_data) { cd_audio_bool_access_discid( FALSE ); CdCurl_set_call( -1, NULL, NULL ); cdaudiotoc_reffresh_list_cd (); } // // void cdaudio_from_popup_select_verticaly (gboolean BoolSelect, gboolean BoolSelectExpert, TYPE_FILE_IS TypeFileIs) { CD_AUDIO *Audio = NULL; GdkPixbuf *Pixbuf = NULL; GList *List = NULL; gboolean valid; GtkTreeIter iter; gint NumTrack = 0; valid = gtk_tree_model_get_iter_first (var_cd.Adr_Tree_Model, &iter); while (valid) { List = g_list_nth (EnteteCD.GList_Audio_cd, NumTrack); if (NULL != (Audio = (CD_AUDIO *)List->data)) { if (TypeFileIs == FILE_IS_FLAC) { if (BoolSelect && BoolSelectExpert) Audio->EtatSelection_Flac = CD_ETAT_SELECT; else Audio->EtatSelection_Flac = CD_ETAT_ATTENTE; if (TRUE == BoolSelect) Audio->EtatSelection_Flac = cdaudio_get_next_flag (FILE_IS_FLAC, TRUE, NumTrack); Pixbuf = cdaudio_get_pixbuf_file (Audio, FILE_IS_FLAC); gtk_list_store_set (var_cd.Adr_List_Store, &iter, COLUMN_CDAUDIO_FLAC, Pixbuf, -1); } else if (TypeFileIs == FILE_IS_WAV) { if (BoolSelect && BoolSelectExpert) Audio->EtatSelection_Wav = CD_ETAT_SELECT; else Audio->EtatSelection_Wav = CD_ETAT_ATTENTE; if (TRUE == BoolSelect) Audio->EtatSelection_Wav = cdaudio_get_next_flag (FILE_IS_WAV, TRUE, NumTrack); Pixbuf = cdaudio_get_pixbuf_file (Audio, FILE_IS_WAV); gtk_list_store_set (var_cd.Adr_List_Store, &iter, COLUMN_CDAUDIO_WAV, Pixbuf, -1); } else if (TypeFileIs == FILE_IS_MP3) { if (BoolSelect && BoolSelectExpert) Audio->EtatSelection_Mp3 = CD_ETAT_SELECT; else Audio->EtatSelection_Mp3 = CD_ETAT_ATTENTE; if (TRUE == BoolSelect) Audio->EtatSelection_Mp3 = cdaudio_get_next_flag (FILE_IS_MP3, TRUE, NumTrack); Pixbuf = cdaudio_get_pixbuf_file (Audio, FILE_IS_MP3); gtk_list_store_set (var_cd.Adr_List_Store, &iter, COLUMN_CDAUDIO_MP3, Pixbuf, -1); } else if (TypeFileIs == FILE_IS_OGG) { if (BoolSelect && BoolSelectExpert) Audio->EtatSelection_Ogg = CD_ETAT_SELECT; else Audio->EtatSelection_Ogg = CD_ETAT_ATTENTE; if (TRUE == BoolSelect) Audio->EtatSelection_Ogg = cdaudio_get_next_flag (FILE_IS_OGG, TRUE, NumTrack); Pixbuf = cdaudio_get_pixbuf_file (Audio, FILE_IS_OGG); gtk_list_store_set (var_cd.Adr_List_Store, &iter, COLUMN_CDAUDIO_OGG, Pixbuf, -1); } else if (TypeFileIs == FILE_IS_M4A) { if (BoolSelect && BoolSelectExpert) Audio->EtatSelection_M4a = CD_ETAT_SELECT; else Audio->EtatSelection_M4a = CD_ETAT_ATTENTE; if (TRUE == BoolSelect) Audio->EtatSelection_M4a = cdaudio_get_next_flag (FILE_IS_M4A, TRUE, NumTrack); Pixbuf = cdaudio_get_pixbuf_file (Audio, FILE_IS_M4A); gtk_list_store_set (var_cd.Adr_List_Store, &iter, COLUMN_CDAUDIO_M4A, Pixbuf, -1); } else if (TypeFileIs == FILE_IS_AAC) { if (BoolSelect && BoolSelectExpert) Audio->EtatSelection_Aac = CD_ETAT_SELECT; else Audio->EtatSelection_Aac = CD_ETAT_ATTENTE; if (TRUE == BoolSelect) Audio->EtatSelection_Aac = cdaudio_get_next_flag (FILE_IS_AAC, TRUE, NumTrack); Pixbuf = cdaudio_get_pixbuf_file (Audio, FILE_IS_AAC); gtk_list_store_set (var_cd.Adr_List_Store, &iter, COLUMN_CDAUDIO_AAC, Pixbuf, -1); } else if (TypeFileIs == FILE_IS_MPC) { if (BoolSelect && BoolSelectExpert) Audio->EtatSelection_Mpc = CD_ETAT_SELECT; else Audio->EtatSelection_Mpc = CD_ETAT_ATTENTE; if (TRUE == BoolSelect) Audio->EtatSelection_Mpc = cdaudio_get_next_flag (FILE_IS_MPC, TRUE, NumTrack); Pixbuf = cdaudio_get_pixbuf_file (Audio, FILE_IS_MPC); gtk_list_store_set (var_cd.Adr_List_Store, &iter, COLUMN_CDAUDIO_MPC, Pixbuf, -1); } else if (TypeFileIs == FILE_IS_APE) { if (BoolSelect && BoolSelectExpert) Audio->EtatSelection_Ape = CD_ETAT_SELECT; else Audio->EtatSelection_Ape = CD_ETAT_ATTENTE; if (TRUE == BoolSelect) Audio->EtatSelection_Ape = cdaudio_get_next_flag (FILE_IS_APE, TRUE, NumTrack); Pixbuf = cdaudio_get_pixbuf_file (Audio, FILE_IS_APE); gtk_list_store_set (var_cd.Adr_List_Store, &iter, COLUMN_CDAUDIO_APE, Pixbuf, -1); } else if (TypeFileIs == FILE_IS_WAVPACK) { if (BoolSelect && BoolSelectExpert) Audio->EtatSelection_WavPack = CD_ETAT_SELECT; else Audio->EtatSelection_WavPack = CD_ETAT_ATTENTE; if (TRUE == BoolSelect) Audio->EtatSelection_WavPack = cdaudio_get_next_flag (FILE_IS_WAVPACK, TRUE, NumTrack); Pixbuf = cdaudio_get_pixbuf_file (Audio, FILE_IS_WAVPACK); gtk_list_store_set (var_cd.Adr_List_Store, &iter, COLUMN_CDAUDIO_WAVPACK, Pixbuf, -1); } NumTrack ++; } valid = gtk_tree_model_iter_next (var_cd.Adr_Tree_Model, &iter); } cdaudio_set_flag_buttons (); } // // void cdaudio_from_popup_select_horizontaly (CD_AUDIO *p_Audio, gboolean BoolSelect, gboolean BoolSelectExpert) { CD_AUDIO *Audio = NULL; GdkPixbuf *Pixbuf = NULL; GList *List = NULL; gboolean valid; GtkTreeIter iter; gint NumTrack = 0; valid = gtk_tree_model_get_iter_first (var_cd.Adr_Tree_Model, &iter); while (valid) { List = g_list_nth (EnteteCD.GList_Audio_cd, NumTrack); if (NULL != (Audio = (CD_AUDIO *)List->data)) { if (Audio == p_Audio) break; NumTrack ++; } valid = gtk_tree_model_iter_next (var_cd.Adr_Tree_Model, &iter); } if (TRUE == BoolSelect && TRUE == BoolSelectExpert) { Audio->EtatSelection_Flac = Audio->EtatSelection_Wav = Audio->EtatSelection_Mp3 = Audio->EtatSelection_Ogg = Audio->EtatSelection_M4a = Audio->EtatSelection_Aac = Audio->EtatSelection_Mpc = Audio->EtatSelection_Ape = Audio->EtatSelection_WavPack = CD_ETAT_SELECT; } else { Audio->EtatSelection_Flac = Audio->EtatSelection_Wav = Audio->EtatSelection_Mp3 = Audio->EtatSelection_Ogg = Audio->EtatSelection_M4a = Audio->EtatSelection_Aac = Audio->EtatSelection_Mpc = Audio->EtatSelection_Ape = Audio->EtatSelection_WavPack = CD_ETAT_ATTENTE; } if (TRUE == BoolSelect) { Audio->EtatSelection_Flac = cdaudio_get_next_flag (FILE_IS_FLAC, TRUE, NumTrack); Audio->EtatSelection_Wav = cdaudio_get_next_flag (FILE_IS_WAV, TRUE, NumTrack); Audio->EtatSelection_Mp3 = cdaudio_get_next_flag (FILE_IS_MP3, TRUE, NumTrack); Audio->EtatSelection_Ogg = cdaudio_get_next_flag (FILE_IS_OGG, TRUE, NumTrack); Audio->EtatSelection_M4a = cdaudio_get_next_flag (FILE_IS_M4A, TRUE, NumTrack); Audio->EtatSelection_Aac = cdaudio_get_next_flag (FILE_IS_AAC, TRUE, NumTrack); Audio->EtatSelection_Mpc = cdaudio_get_next_flag (FILE_IS_MPC, TRUE, NumTrack); Audio->EtatSelection_Ape = cdaudio_get_next_flag (FILE_IS_APE, TRUE, NumTrack); Audio->EtatSelection_WavPack = cdaudio_get_next_flag (FILE_IS_WAVPACK, TRUE, NumTrack); } Pixbuf = cdaudio_get_pixbuf_file (Audio, FILE_IS_FLAC); gtk_list_store_set (var_cd.Adr_List_Store, &iter, COLUMN_CDAUDIO_FLAC, Pixbuf, -1); Pixbuf = cdaudio_get_pixbuf_file (Audio, FILE_IS_WAV); gtk_list_store_set (var_cd.Adr_List_Store, &iter, COLUMN_CDAUDIO_WAV, Pixbuf, -1); Pixbuf = cdaudio_get_pixbuf_file (Audio, FILE_IS_MP3); gtk_list_store_set (var_cd.Adr_List_Store, &iter, COLUMN_CDAUDIO_MP3, Pixbuf, -1); Pixbuf = cdaudio_get_pixbuf_file (Audio, FILE_IS_OGG); gtk_list_store_set (var_cd.Adr_List_Store, &iter, COLUMN_CDAUDIO_OGG, Pixbuf, -1); Pixbuf = cdaudio_get_pixbuf_file (Audio, FILE_IS_M4A); gtk_list_store_set (var_cd.Adr_List_Store, &iter, COLUMN_CDAUDIO_M4A, Pixbuf, -1); Pixbuf = cdaudio_get_pixbuf_file (Audio, FILE_IS_AAC); gtk_list_store_set (var_cd.Adr_List_Store, &iter, COLUMN_CDAUDIO_AAC, Pixbuf, -1); Pixbuf = cdaudio_get_pixbuf_file (Audio, FILE_IS_MPC); gtk_list_store_set (var_cd.Adr_List_Store, &iter, COLUMN_CDAUDIO_MPC, Pixbuf, -1); Pixbuf = cdaudio_get_pixbuf_file (Audio, FILE_IS_APE); gtk_list_store_set (var_cd.Adr_List_Store, &iter, COLUMN_CDAUDIO_APE, Pixbuf, -1); Pixbuf = cdaudio_get_pixbuf_file (Audio, FILE_IS_WAVPACK); gtk_list_store_set (var_cd.Adr_List_Store, &iter, COLUMN_CDAUDIO_WAVPACK, Pixbuf, -1); cdaudio_set_flag_buttons (); } // // void cdaudio_from_popup_clear (void) { CD_AUDIO *Audio = NULL; GdkPixbuf *Pixbuf = NULL; GList *List = NULL; gboolean valid; GtkTreeIter iter; gint NumTrack = 0; // PRINT_FUNC_LF(); valid = gtk_tree_model_get_iter_first (var_cd.Adr_Tree_Model, &iter); while (valid) { List = g_list_nth (EnteteCD.GList_Audio_cd, NumTrack); if ((Audio = (CD_AUDIO *)List->data)) { Audio->EtatSelection_Flac = Audio->EtatSelection_Wav = Audio->EtatSelection_Mp3 = Audio->EtatSelection_Ogg = Audio->EtatSelection_M4a = Audio->EtatSelection_Aac = Audio->EtatSelection_Mpc = Audio->EtatSelection_Ape = Audio->EtatSelection_WavPack = CD_ETAT_ATTENTE; Pixbuf = cdaudio_get_pixbuf_file (Audio, FILE_IS_FLAC); gtk_list_store_set (var_cd.Adr_List_Store, &iter, COLUMN_CDAUDIO_FLAC, Pixbuf, -1); Pixbuf = cdaudio_get_pixbuf_file (Audio, FILE_IS_WAV); gtk_list_store_set (var_cd.Adr_List_Store, &iter, COLUMN_CDAUDIO_WAV, Pixbuf, -1); Pixbuf = cdaudio_get_pixbuf_file (Audio, FILE_IS_MP3); gtk_list_store_set (var_cd.Adr_List_Store, &iter, COLUMN_CDAUDIO_MP3, Pixbuf, -1); Pixbuf = cdaudio_get_pixbuf_file (Audio, FILE_IS_OGG); gtk_list_store_set (var_cd.Adr_List_Store, &iter, COLUMN_CDAUDIO_OGG, Pixbuf, -1); Pixbuf = cdaudio_get_pixbuf_file (Audio, FILE_IS_M4A); gtk_list_store_set (var_cd.Adr_List_Store, &iter, COLUMN_CDAUDIO_M4A, Pixbuf, -1); Pixbuf = cdaudio_get_pixbuf_file (Audio, FILE_IS_AAC); gtk_list_store_set (var_cd.Adr_List_Store, &iter, COLUMN_CDAUDIO_AAC, Pixbuf, -1); Pixbuf = cdaudio_get_pixbuf_file (Audio, FILE_IS_MPC); gtk_list_store_set (var_cd.Adr_List_Store, &iter, COLUMN_CDAUDIO_MPC, Pixbuf, -1); Pixbuf = cdaudio_get_pixbuf_file (Audio, FILE_IS_APE); gtk_list_store_set (var_cd.Adr_List_Store, &iter, COLUMN_CDAUDIO_APE, Pixbuf, -1); Pixbuf = cdaudio_get_pixbuf_file (Audio, FILE_IS_WAVPACK); gtk_list_store_set (var_cd.Adr_List_Store, &iter, COLUMN_CDAUDIO_WAVPACK, Pixbuf, -1); NumTrack ++; } valid = gtk_tree_model_iter_next (var_cd.Adr_Tree_Model, &iter); } cdaudio_set_flag_buttons (); } // // void cdaudio_from_popup_change_normalise (gboolean BoolSelect) { CD_AUDIO *Audio = NULL; GList *List = NULL; gboolean valid; GtkTreeIter iter; gint NumTrack = 0; GdkPixbuf *Pixbuf = NULL; valid = gtk_tree_model_get_iter_first (var_cd.Adr_Tree_Model, &iter); while (valid) { List = g_list_nth (EnteteCD.GList_Audio_cd, NumTrack); if ((Audio = (CD_AUDIO *)List->data)) { Audio->EtatNormalise = BoolSelect; Pixbuf = cdaudio_get_pixbuf_file (Audio, FILE_TO_NORMALISE); gtk_list_store_set (var_cd.Adr_List_Store, &iter, COLUMN_CDAUDIO_FILE_NORMALIZE, Pixbuf, -1); } NumTrack ++; valid = gtk_tree_model_iter_next (var_cd.Adr_Tree_Model, &iter); } cdaudio_set_flag_buttons (); } // // void cdaudio_from_popup (TYPE_SET_FROM_POPUP_CD TypeSetFromPopup, CD_AUDIO *Audio, TYPE_FILE_IS TypeFileIs) { switch (TypeSetFromPopup) { // SELECTION ou DESELECTION POUR LES CONVERSIONS CD case CD_CONV_DESELECT_ALL : // Deselection globale cdaudio_from_popup_clear (); break; case CD_CONV_DESELECT_V : // Deselection verticale cdaudio_from_popup_select_verticaly (FALSE, FALSE, TypeFileIs); break; case CD_CONV_DESELECT_H : // Deselection horizontale cdaudio_from_popup_select_horizontaly (Audio, FALSE, FALSE); break; case CD_CONV_SELECT_V : // Selection verticale cdaudio_from_popup_select_verticaly (TRUE, FALSE, TypeFileIs); break; case CD_CONV_SELECT_EXPERT_V : // Selection Expert verticale cdaudio_from_popup_select_verticaly (TRUE, TRUE, TypeFileIs); break; case CD_CONV_SELECT_H : // Selection horizontale cdaudio_from_popup_select_horizontaly (Audio, TRUE, FALSE); break; case CD_CONV_SELECT_EXPERT_H : // Selection Expert horizontale cdaudio_from_popup_select_horizontaly (Audio, TRUE, TRUE); break; // SELECTION ou DESELECTION POUR LA NORMALISATION case CD_REPLAYGAIN_SELECT_V : // Deselection verticale cdaudio_from_popup_change_normalise (FALSE); break; case CD_REPLAYGAIN_DESELECT_V : // Selection verticale cdaudio_from_popup_change_normalise (TRUE); break; } } // // // // gboolean BoolAccess = TRUE; // // void cd_audio_bool_access_discid( gboolean p_bool_access ) { BoolAccess = p_bool_access; } // // void on_combobox_discid_changed( GtkComboBox *combobox, gpointer user_data ) { if( NULL != var_cd.Adr_combobox_discid_cd ) { if( TRUE == BoolAccess ) { cd_audio_bool_access_discid( FALSE ); CdCurl_set_call( gtk_combo_box_get_active(GTK_COMBO_BOX (var_cd.Adr_combobox_discid_cd)), NULL, NULL ); cdaudiotoc_reffresh_list_cd (); } } } // // void on_combobox_discid_realize( GtkWidget *widget, gpointer user_data ) { gtk_combo_box_set_active( GTK_COMBO_BOX(widget), 0 ); var_cd.Adr_combobox_discid_cd = GTK_COMBO_BOX (widget); } xcfa-4.3.6/src/poche.h0000644000175000017500000001507712122563437011443 00000000000000 /* * file : poche.h * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifndef poche_h #define poche_h 1 #include #include #include typedef enum { _TYPE_IMAGE_ = 0, _TYPE_TEXT_, _TYPE_TEXT_TITLE_ } TYPE_IMAGE; typedef struct { TYPE_IMAGE TypeImage; // IMAGE | TEXT // _TYPE_TEXT_ // _TYPE_TEXT_TITLE_ gchar *Texte; // gchar *FontName; // gint SizeFontName; // gboolean BoolFontBold; // TRUE = BOLD, FALSE = NORMAL gboolean BoolFontItalic; // TRUE = ITALIC, FALSE = NORMAL gint PosCombobox; // -1 OR 0 .. 3 // _TYPE_IMAGE_ GdkPixbuf *Pixbuf; // Adresse du PixBuf en traitement GdkPixbuf *PixbufOriginal; // Adresse du PixBuf original // VALUES gdouble x0; // Pos X gdouble y0; // Pos Y gint image_width; // Width gint image_height; // Height gdouble XPointer; // Position x de la souris lors du clic gdouble YPointer; // Position y de la souris lors du clic gboolean BoolIsSelected; // TRUE = selected with mouse cursor gboolean BoolStructRemove; // TRUE = STRUCT IS REMOVE | FALSE = ACTIVE gboolean BoolFlipVertical; // TRUE = Force flip Vertical gboolean BoolFlipHorizontal; // TRUE = Force flip Horizontal } IMAGE; typedef enum { IMG_HAUT_GAUCHE = 0, // IMG_HAUT, // IMG_HAUT_DROIT, // IMG_DROIT, // IMG_BAS_DROIT, // IMG_BAS, // IMG_BAS_GAUCHE, // IMG_GAUCHE, // IMG_MOVE, // IMG_SIZE, // For size tab HANDLE_MOVE [] IMG_NONE // NO IMAGE SELECTED } IMG_CORNER; typedef struct { GdkRectangle zone[ IMG_SIZE ]; // Les IMG_SIZE coordonnees de saisie de l'image // EX: // zone [ IMG_HAUT ] . x // zone [ IMG_HAUT ] . y // zone [ IMG_HAUT ] . width // zone [ IMG_HAUT ] . height } HANDLE_MOVE; typedef struct { // UNE STRUCTURE PAR FICHIER IMAGE gchar *name_img; // Nom du fichier image original gchar *name_png; // Nom du fichier PNG GtkWidget *togglebutton; // Adresse du bouton GtkWidget *image; // Adresse de l'image gboolean BoolStructRemove; // TRUE = STRUCT IS REMOVE | FALSE = ACTIVE } GLIST_POCHETTE; typedef struct { gboolean BoolAccessChanged; // COMBOBOX changed is TRUE GtkComboBox *AdrComboBoxChoice; // GtkWidget *AdrEntrySearchImgWeb; // Adresse saisie image web GtkWidget *AdrEntryNameFileSave; // Adresse saisie nom fichier image GtkWidget *AdrEntryTitleCD; // Adresse saisie titre du CD gchar *TitleCD; // gchar *Buffer_none; // gchar *Buffer_title; // gchar *Buffer_title_time; // gchar *Buffer_artist_title_time; // GtkWidget *AdrDrawingarea; // Adresse de la surface gboolean BoolScaleAdjust; // TRUE = ajustement de l'echelle avec la surface de la fentre cairo_surface_t *image; // Adresse de l'image gdouble scale; // Pourcentage de surface de l'image gdouble x0; // Pos X gdouble y0; // Pos Y gint image_width; // Width gint image_height; // Height GList *ListImage; // Pointeur de structure IMAGE pour AdrDrawingarea gboolean BoolEventButtonPress; // TRUE == BOUTON SOURIS PRESSED IMAGE *GetImage; // Adresse de l'image en selection IMG_CORNER ImgCorner; // See IMG_CORNER GtkWidget *Adr_viewport_image_preview; // Adresse viewport GtkWidget *Adr_table; // Adresse table contenu dans le viewport GList *glist; // Contient les structures GLIST_POCHETTE GtkWidget *AdrTextview; // Adresse textview gboolean BoolSaveToFile; // TRUE si sauvegarde vers fichier HANDLE_MOVE HandleMove; // Les coordonnees de saisie de l'image } VIEW; extern VIEW view; // Taille image lors d'une importation #define SIZE_IMAGE_VIEWPORT 80 #define SIZE_IMAGE_ADD 80 // La definition SCALE_MIN correspond au pourcentage de representation le plus petit de l'image de fond // SCALE_MIN doit etre adaptee suivant la taille la plus petite de la fenetre #define SCALE_MIN 0.55 // Taille minimum d'une image lors d'un redimensionnement #define MIN_SIZE_IMAGE 20 // Definition d'un millimetre // Formule employee en PostScript #define MM(x)(((gdouble)x * 72.0) / 25.4 ) // // POCHE.C // IMAGE *poche_add_to_glist( gchar *PathNameFile, gdouble x, gdouble y, gboolean p_BoolScale, TYPE_IMAGE p_TypeImage ); IMAGE *poche_get_struct_selected_is_txt( void ); void poche_set_selected_flag_image( IMAGE *p_Image ); void poche_set_selected_first_image( IMAGE *p_Image ); void poche_set_selected_up_image( IMAGE *p_Image ); void poche_set_selected_down_image( IMAGE *p_Image ); void poche_set_selected_last_image( IMAGE *p_Image ); void poche_add_img_file_to_Drawingarea( GSList *p_list ); void poche_remove_ListImage( void ); void poche_remove_image( void ); void poche_remove_view (void); void poche_set_texte_title( gchar *p_str ); void poche_set_size_request( void ); void poche_set_flag_buttons (void ); gboolean pochetxt_get_is_bold( void ); gboolean pochetxt_get_is_italic( void ); void poche_print_zoom_changed( gdouble p_zoom_scale ); // // POCHE_DIR.C // void pochedir_add_img_file( GSList *p_list ); void pochedir_remove_GlistPochette( void ); void pochedir_table_add_images( void ); void pochedir_make_glist (gchar *filename); void pochedir_destroy_image( GLIST_POCHETTE *gl ); void pochedir_set_ctrl( gboolean p_Bool ); // // POCHE_DRAW.C // void pochedraw_paint( cairo_surface_t *cs ); void pochedraw_get_handle_move( IMAGE *p_Image, gboolean p_BoolTestCursor ); // // POCHE_TXT.C // void pochetxt_set_text_to_textview( IMAGE *p_Image ); gchar *pochetxt_get_ptr_entry_img_web( void ); gchar *pochetxt_get_ptr_entry_name_file_to_save( void ); void pochetxt_set_text_from_cd( gchar *p_buffer, gint p_PosCombobox ); void pochetxt_set_combobox_choice( gint p_activate ); // // POCHE_WEB.C // void pocheweb_get (void); #endif xcfa-4.3.6/src/parse.c0000644000175000017500000005423012122563465011445 00000000000000/* * file : parse.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . * * ================================================================================== * vendredi 22 janvier 2010 * Fri, 22 Jan 2010 * ================================================================================== * * Un patch pour la fonction %u avec pour caractere unique avait ete code par * jerome AT jolimont POINT fr : Jerome Lafrechoux * J'ai recode cette fonction, trop restrictive, en ameliorant la fonction tel que: * %u(SOURCE=DESTINATION) * SOURCE * peut etre un ou une suite de caracteres * DESTINATION * est un caractere unique pour remplacer la SOURCE * * Par exemple: * %u(éêè=e) * Les caracteres SOURCE [ éêè ] seront remplaces par DESTINATION [ e ] * La fonction %u() peut figurer plusieurs fois en entree: * %u(àâã=a)%u(éêè=e)%u( =_) * etc, ... * * ================================================================================== */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "cd_audio.h" #include "parse.h" /* %a - artiste %b - titre de l'album %c - numero de la piste %d - titre de la chanson %e - annee %g - genre ptr_template = (gchar *)gtk_entry_get_text (GTK_ENTRY (var_cd.Adr_entry_stockage_cdaudio)); %a - artiste %b - titre de l'album %c - numero de la piste %d - titre de la chanson %e - annee %g - genre %f - creation d'un fichier *.m3u et *.xspf %u - remplacement des caracteres speciaux ptr_template = (gchar *)gtk_entry_get_text (GTK_ENTRY (var_cd.Adr_entry_new_titre_cdaudio)); */ typedef enum { CD_TAG_ARTIST = 0, // CD_TAG_ALBUM, // CD_TAG_INT_NUMBER, // CD_TAG_TITLE, // CD_TAG_YEAR, // CD_TAG_GENRE, // CD_TAG_FILE_M3U_XSPF, // BoolCreateFileM CD_TAG_CAR_REPLACE, // StringReplace CD_TAG_TETSUMAKI_LOWER, // TOUTES LES LETTRES EN MINUSCULE SAUF LA PREMIERE ANSI QUE LES CARACTERES PRECEDES PAR '%' CD_TAG_WITHOUT_ACCENT, // Suppression des accents dans les noms de fichier CD_TAG_DEFAULT // StringDefault } CD_TYPE_TAG; typedef struct { CD_TYPE_TAG CdTypeTag; // CD_TYPE_TAG gboolean BoolCreateFileM3uXspf; // CD_TAG_FILE_M3U_XSPF gchar *StringReplaceOld; // CD_TAG_CAR_REPLACE gchar *StringReplaceNew; // CD_TAG_CAR_REPLACE gchar *StringDefault; // CD_TAG_DEFAULT } PARSE; typedef struct { GList *ListParseStockCd; // Liste PARSE de Preference->CD->Dossier de stockage GList *ListParseTitleCd; // Liste PARSE de CD->Arrangement des titres du CD } VAR_PARSE; VAR_PARSE VarParse = { NULL, NULL }; /* // // DEBUGING PARSE // void Parse_debug (PARSE_TYPE p_ParseType) { GList *list = NULL; PARSE *Parse = NULL; gchar *Str[] = {"DD_TAG_ARTIST", "CD_TAG_ALBUM", "CD_TAG_INT_NUMBER", "CD_TAG_TITLE", "CD_TAG_YEAR", "CD_TAG_GENRE", "CD_TAG_FILE_M3U_XSPF", "CD_TAG_CAR_REPLACE", "CD_TAG_DEFAULT" }; if( p_ParseType == PARSE_TYPE_STOCKAGE_CD ) { list = g_list_first (VarParse.ListParseStockCd); } else if( p_ParseType == PARSE_TYPE_TITLE_CD ) { list = g_list_first (VarParse.ListParseTitleCd); } while( list ) { if( (Parse = (PARSE *)list->data) != NULL ) { g_print ("Str [ Parse->CdTypeTag ] = %s\n", Str [ Parse->CdTypeTag ]); if( p_ParseType == PARSE_TYPE_TITLE_CD ) { if( Parse->CdTypeTag == CD_TAG_CAR_REPLACE ) { g_print("Parse->StringReplaceOld = %s ", Parse->StringReplaceOld); g_print("Parse->StringReplaceNe = %s\n", Parse->StringReplaceNew); } } } list = g_list_next (list); } } // // DEBUGING PARSE // void Parse_debug_print_cd (PARSE_TYPE p_ParseType) { gint Num_cell = 0; gchar *Str = NULL; for (Num_cell = 0; Num_cell < EnteteCD.TotalTracks; Num_cell ++ ) { Str = Parse_get_line (p_ParseType, Num_cell); g_print ("Num_cell = %02d Str = %s\n", Num_cell, Str); g_free (Str); Str = NULL; } } */ // // SUPRESSION DES STRUCTURES ET DES GLIST // void Parse_remove( PARSE_TYPE p_ParseType, gboolean b_see ) { GList *list = NULL; PARSE *Parse = NULL; if( p_ParseType == PARSE_TYPE_STOCKAGE_CD ) { list = g_list_first (VarParse.ListParseStockCd); } else if( p_ParseType == PARSE_TYPE_TITLE_CD ) { list = g_list_first (VarParse.ListParseTitleCd); } while( list ) { if( (Parse = (PARSE *)list->data) != NULL ) { switch (Parse->CdTypeTag ) { case CD_TAG_INT_NUMBER : case CD_TAG_TITLE : case CD_TAG_YEAR : case CD_TAG_GENRE : case CD_TAG_FILE_M3U_XSPF : case CD_TAG_TETSUMAKI_LOWER : case CD_TAG_WITHOUT_ACCENT : break; case CD_TAG_CAR_REPLACE : if( NULL != Parse->StringReplaceOld ) { g_free (Parse->StringReplaceOld); Parse->StringReplaceOld = NULL; } if( NULL != Parse->StringReplaceNew ) { g_free (Parse->StringReplaceNew); Parse->StringReplaceNew = NULL; } break; case CD_TAG_DEFAULT : case CD_TAG_ARTIST : case CD_TAG_ALBUM : if( NULL != Parse->StringDefault ) { g_free (Parse->StringDefault); Parse->StringDefault = NULL; } break; } g_free (Parse); Parse = NULL; list->data = NULL; } list = g_list_next (list); } if( p_ParseType == PARSE_TYPE_STOCKAGE_CD ) { g_list_free (VarParse.ListParseStockCd); VarParse.ListParseStockCd = NULL; } else if( p_ParseType == PARSE_TYPE_TITLE_CD ) { g_list_free (VarParse.ListParseTitleCd); VarParse.ListParseTitleCd = NULL; } if( TRUE == b_see && TRUE == OptionsCommandLine.BoolVerboseMode ) g_print( "\tRemove struct PARSE: ok\n" ); } // // ALLOCATION ET STOCKAGE DE TOUS LES TYPES SAUF: CD_TAG_CAR_REPLACE // void Parse_allocate (PARSE_TYPE p_ParseType, CD_TYPE_TAG p_CdTypeTag, gchar *p_Str) { PARSE *New = NULL; New = (PARSE *)g_malloc0 (sizeof(PARSE)); New->CdTypeTag = p_CdTypeTag; if( p_ParseType == PARSE_TYPE_TITLE_CD ) { if( p_CdTypeTag == CD_TAG_FILE_M3U_XSPF ) { New->BoolCreateFileM3uXspf = TRUE; } } if( p_CdTypeTag == CD_TAG_DEFAULT && p_Str != NULL ) { New->StringDefault = g_strdup_printf ("%s", p_Str); } if( p_CdTypeTag == CD_TAG_ARTIST && p_Str != NULL ) { New->StringDefault = g_strdup_printf ("%s", p_Str); } if( p_CdTypeTag == CD_TAG_ALBUM && p_Str != NULL ) { New->StringDefault = g_strdup_printf ("%s", p_Str); } // REFERENCE LE POINTEUR DE STRUCTURE DANS LE GLIST if( p_ParseType == PARSE_TYPE_STOCKAGE_CD ) { VarParse.ListParseStockCd = g_list_append (VarParse.ListParseStockCd, New); } else if( p_ParseType == PARSE_TYPE_TITLE_CD ) { VarParse.ListParseTitleCd = g_list_append (VarParse.ListParseTitleCd, New); } } // // ALLOCATION ET STOCKAGE DU TYPE: CD_TAG_CAR_REPLACE // void Parse_allocate_function (PARSE_TYPE p_ParseType, CD_TYPE_TAG p_CdTypeTag, gchar *p_Str) { gchar *Ptr = p_Str; gchar *PtrEnd = p_Str; gchar *PtrEqual = NULL; PARSE *New = NULL; gchar Str [ 10 ]; // LE CARACTERE DE REMPLACEMENT while( PtrEnd && *PtrEnd) PtrEnd ++; PtrEnd --; if( *PtrEnd == ')' ) { *PtrEnd = '\0'; PtrEnd --; } while( PtrEnd && *PtrEnd && *PtrEnd != '=') PtrEnd --; PtrEnd ++; Ptr = p_Str; for (PtrEqual = PtrEnd; *PtrEqual != '='; PtrEqual --); // LE CARACTERE A REMPLACER while( Ptr < PtrEqual ) { if( Ptr == PtrEqual) break; if( *Ptr < 0 ) { Str [ 0 ] = *Ptr; Str [ 1 ] = *(Ptr +1); Str [ 2 ] = '\0'; } else { Str [ 0 ] = *Ptr; Str [ 1 ] = '\0'; } // NOUVELLE STRUCTURE New = (PARSE *)g_malloc0 (sizeof(PARSE)); New->CdTypeTag = p_CdTypeTag; // New->StringReplaceOld = g_strdup_printf ("%s", Str); New->StringReplaceNew = g_strdup_printf ("%s", PtrEnd); // STOCKE LA STRUCTURE DANS LA LISTE if( p_ParseType == PARSE_TYPE_STOCKAGE_CD ) { VarParse.ListParseStockCd = g_list_append (VarParse.ListParseStockCd, New); } else if( p_ParseType == PARSE_TYPE_TITLE_CD ) { VarParse.ListParseTitleCd = g_list_append (VarParse.ListParseTitleCd, New); } if( *Ptr < 0) Ptr += 2; else Ptr ++; } } // // SUPPRESSION ET PARSE COMPLET // void Parse_entry (PARSE_TYPE p_ParseType) { gchar *PtrTemplate = NULL; gchar *BeginPtrTemplate = NULL; gchar *NewPtrTemplate = NULL; gchar Str [ 10 ]; gboolean BoolTagOk = FALSE; gboolean BoolSet = FALSE; // PRINT_FUNC_LF(); // QUELLE LIGNE ANALYSER ? if( p_ParseType == PARSE_TYPE_STOCKAGE_CD ) { PtrTemplate = (gchar *)gtk_entry_get_text (GTK_ENTRY (var_cd.Adr_entry_stockage_cdaudio)); } else if( p_ParseType == PARSE_TYPE_TITLE_CD ) { PtrTemplate = (gchar *)gtk_entry_get_text (GTK_ENTRY (var_cd.Adr_entry_new_titre_cdaudio)); } else { PRINT("ERREUR PARAMETRE"); return; } BeginPtrTemplate = PtrTemplate; NewPtrTemplate = g_strdup( PtrTemplate ); // REMOVE LISTE Parse_remove (p_ParseType, FALSE); // PARSE while( PtrTemplate && *PtrTemplate != '\0' ) { if( *PtrTemplate == '%' ) { if( *(PtrTemplate +1) == 'a' ) { // CD_TAG_CAR_REPLACE gchar *Ptr = (PtrTemplate +2); gchar *PtrBegin = NULL; gchar *PtrEnd = NULL; gchar *String = NULL; // LA PARENTEZE OUVRE LA FONCTION if( *Ptr >= 0 && *Ptr == '=' ) { Ptr ++; if( *Ptr == '"' ) { Ptr ++; PtrEnd = PtrBegin = Ptr; while( *Ptr ) { if( *Ptr == '"' ) { PtrEnd = Ptr; break; } Ptr ++; } // SI CHANE VIDE OU FIN DE FONCTION if( *PtrEnd != '"') break; if( *PtrBegin == '"')break; // PREPARE LA CHAINE POUR ANALYSE String = g_strnfill ((PtrEnd - PtrBegin) *2, '\0'); strncpy(String, PtrBegin, PtrEnd - PtrBegin); Parse_allocate (p_ParseType, CD_TAG_ARTIST, String); g_free (String); String = NULL; PtrTemplate = (PtrEnd +1); } else { PtrTemplate += 2; } } else { Parse_allocate (p_ParseType, CD_TAG_ARTIST, NULL); PtrTemplate += 2; BoolTagOk = TRUE; } } else if( *(PtrTemplate +1) == 'b' ) { // CD_TAG_CAR_REPLACE gchar *Ptr = (PtrTemplate +2); gchar *PtrBegin = NULL; gchar *PtrEnd = NULL; gchar *String = NULL; // LA PARENTEZE OUVRE LA FONCTION if( *Ptr >= 0 && *Ptr == '=' ) { Ptr ++; if( *Ptr == '"' ) { Ptr ++; PtrEnd = PtrBegin = Ptr; while( *Ptr ) { if( *Ptr == '"' ) { PtrEnd = Ptr; break; } Ptr ++; } // SI CHANE VIDE OU FIN DE FONCTION if( *PtrEnd != '"') break; if( *PtrBegin == '"')break; // PREPARE LA CHAINE POUR ANALYSE String = g_strnfill ((PtrEnd - PtrBegin) *2, '\0'); strncpy(String, PtrBegin, PtrEnd - PtrBegin); Parse_allocate (p_ParseType, CD_TAG_ALBUM, String); g_free (String); String = NULL; PtrTemplate = (PtrEnd +1); } else { PtrTemplate += 2; } } else { Parse_allocate (p_ParseType, CD_TAG_ALBUM, NULL); PtrTemplate += 2; BoolTagOk = TRUE; } } else if( *(PtrTemplate +1) == 'c' ) { Parse_allocate (p_ParseType, CD_TAG_INT_NUMBER, NULL); PtrTemplate += 2; BoolTagOk = TRUE; } else if( *(PtrTemplate +1) == 'd' ) { Parse_allocate (p_ParseType, CD_TAG_TITLE, NULL); PtrTemplate += 2; BoolTagOk = TRUE; } else if( *(PtrTemplate +1) == 'e' ) { Parse_allocate (p_ParseType, CD_TAG_YEAR, NULL); PtrTemplate += 2; } else if( *(PtrTemplate +1) == 'f' ) { Parse_allocate (p_ParseType, CD_TAG_FILE_M3U_XSPF, NULL); PtrTemplate += 2; } else if( *(PtrTemplate +1) == 'g' ) { Parse_allocate (p_ParseType, CD_TAG_GENRE, NULL); PtrTemplate += 2; BoolTagOk = TRUE; } else if( *(PtrTemplate +1) == 'u' ) { // CD_TAG_CAR_REPLACE gchar *Ptr = (PtrTemplate +2); gchar *PtrBegin = NULL; gchar *PtrEnd = NULL; gchar *String = NULL; // LA PARENTEZE OUVRE LA FONCTION if( *Ptr >= 0 && *Ptr == '(' ) { PtrEnd = PtrBegin = Ptr; Ptr ++; if( *Ptr < 0) Ptr ++; // PASSER LE CARACTERE APRES LA PARENTEZE if( *Ptr) Ptr ++; // SI PAS FIN DE CHAINE while( *Ptr && *(Ptr +1) != '\0' && *(Ptr +2) != '\0' ) { // SI FIN DE FONCTION TROUVEE if( *(Ptr +1) < 0 ) { if( *Ptr == '=' && *(Ptr +3) == ')' ) { PtrEnd = Ptr +3; break; } } else { if( *Ptr == '=' && *(Ptr +2) == ')' ) { PtrEnd = Ptr +2; break; } } Ptr ++; } // SI FIN DE FONCTION ABSENTE ALORS QUIT L'ANALIZE DE FIN DE CHAINE if( *PtrEnd != ')') break; // PREPARE LA CHAINE POUR ANALYSE String = g_strnfill ((PtrEnd - PtrBegin) *2, '\0'); strncpy(String, PtrBegin +1, PtrEnd - PtrBegin); // g_print("String = %s\n", String); Parse_allocate_function (p_ParseType, CD_TAG_CAR_REPLACE, String); g_free (String); String = NULL; PtrTemplate = (PtrEnd +1); } else break; } // Tetsumaki UPPER // else if( *(PtrTemplate +1) == 'T' && *(PtrTemplate +2) == 'u' ) { // PtrTemplate += 3; // g_print("Tetsumaki UPPER : %%Tu\n"); // } // Tetsumaki LOWER else if( *(PtrTemplate +1) == 'T' && *(PtrTemplate +2) == 'l' ) { PtrTemplate += 3; Parse_allocate (p_ParseType, CD_TAG_TETSUMAKI_LOWER, NULL); } // CD_TAG_WITHOUT_ACCENT // else if( *( PtrTemplate +1 ) == 'n' && *( PtrTemplate +2 ) == 'a' ) { Parse_allocate (p_ParseType, CD_TAG_WITHOUT_ACCENT, NULL); PtrTemplate += 3; BoolTagOk = TRUE; } else { Str [ 0 ] = *PtrTemplate; Str [ 1 ] = '\0'; Parse_allocate (p_ParseType, CD_TAG_DEFAULT, Str); PtrTemplate ++; } } else { if( *PtrTemplate < 0 ) { Str [ 0 ] = *PtrTemplate; Str [ 1 ] = *(PtrTemplate +1); Str [ 2 ] = '\0'; PtrTemplate += 2; } else { Str [ 0 ] = *PtrTemplate; Str [ 1 ] = '\0'; PtrTemplate ++; } Parse_allocate (p_ParseType, CD_TAG_DEFAULT, Str); if( *Str == '/' ) { gchar *Ptr = PtrTemplate; while( Ptr > BeginPtrTemplate && *Ptr != '/' ) Ptr --; /* if( p_ParseType == PARSE_TYPE_STOCKAGE_CD ) { if( Ptr > BeginPtrTemplate ) { if( *(Ptr -1) == '/' ) { g_print( "DOUBLON PARSE_TYPE_STOCKAGE_CD\n" ); BoolSet = TRUE; *( NewPtrTemplate + (gint)(Ptr - BeginPtrTemplate) ) = '_'; } } } else */ if( p_ParseType == PARSE_TYPE_TITLE_CD ) { *( NewPtrTemplate + (gint)(Ptr - BeginPtrTemplate) ) = '_'; BoolSet = TRUE; } } } } if( BoolTagOk == FALSE ) { // SI LISTE VIDE -> CREATION D'UN MINIMUM AVEC LE TITRE // // Fwd: Bug#673641: xcfa: Wrong file directory // http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=673641 // SOLVED // Parse_allocate (p_ParseType, CD_TAG_TITLE, NULL); } if( TRUE == BoolSet ) { if( p_ParseType == PARSE_TYPE_STOCKAGE_CD ) { gtk_entry_set_text( GTK_ENTRY(var_cd.Adr_entry_stockage_cdaudio), NewPtrTemplate ); } else if( p_ParseType == PARSE_TYPE_TITLE_CD ) { gtk_entry_set_text( GTK_ENTRY(var_cd.Adr_entry_new_titre_cdaudio), NewPtrTemplate ); } } // Parse_debug (p_ParseType); } // // RECUPERATION DU PARSE DE LA LIGNE: p_Num_cell(0 .. n-1) // gchar *Parse_get_line (PARSE_TYPE p_ParseType, gint p_Num_cell) { CD_AUDIO *Audio = NULL; GList *ListCD = NULL; GList *ListParse = NULL; PARSE *Parse = NULL; GString *gstr = NULL; GString *gstrNew = NULL; gchar *Ptr = NULL; gchar *Str = NULL; ListCD = g_list_nth (EnteteCD.GList_Audio_cd, p_Num_cell); if( NULL != (Audio = (CD_AUDIO *)ListCD->data) ) { gstr = g_string_new (NULL); if( NULL == Audio->tags ) { g_string_append_printf (gstr, "Track_%02d", p_Num_cell +1); Str = g_strdup (gstr->str); g_string_free (gstr, TRUE); gstr = NULL; return (Str); } // QUELLE LIGNE ANALISER ? if( p_ParseType == PARSE_TYPE_STOCKAGE_CD ) { ListParse = g_list_first (VarParse.ListParseStockCd); } else if( p_ParseType == PARSE_TYPE_TITLE_CD ) { ListParse = g_list_first (VarParse.ListParseTitleCd); } // LISTE PARSE while( ListParse ) { if( NULL != (Parse = (PARSE *)ListParse->data) ) { switch (Parse->CdTypeTag ) { case CD_TAG_ARTIST : // g_print("CD_TAG_ARTIST\n"); // g_print("%s\n", Audio->tags->Artist); if( NULL != Parse->StringDefault ) { g_string_append_printf (gstr, "%s", Parse->StringDefault); } else { g_string_append_printf (gstr, "%s", Audio->tags->Artist); } break; case CD_TAG_ALBUM : // g_print("CD_TAG_ALBUM\n"); // g_print("%s\n", Audio->tags->Album); if( NULL != Parse->StringDefault ) { g_string_append_printf (gstr, "%s", Parse->StringDefault); } else { g_string_append_printf (gstr, "%s", Audio->tags->Album); } break; case CD_TAG_INT_NUMBER : // g_print("CD_TAG_INT_NUMBER\n"); // g_print("%02d\n", Audio->tags->IntNumber); g_string_append_printf (gstr, "%02d", Audio->tags->IntNumber); break; case CD_TAG_TITLE : // g_print("CD_TAG_TITLE\n"); // g_print("'%s'\n", Audio->tags->Title); g_string_append_printf (gstr, "%s", Audio->tags->Title); break; case CD_TAG_YEAR : // g_print("CD_TAG_YEAR\n"); // g_print("%s\n", Audio->tags->Year); g_string_append_printf (gstr, "%s", Audio->tags->Year); break; case CD_TAG_GENRE : // g_print("CD_TAG_GENRE\n"); // g_print("%s\n", Audio->tags->Genre); g_string_append_printf (gstr, "%s", Audio->tags->Genre); break; case CD_TAG_FILE_M3U_XSPF : // g_print("CD_TAG_FILE_M3U_XSPF\n"); // g_print("BoolCreateFileM3uXspf = %s\n", Parse->BoolCreateFileM3uXspf ? "TRUE" : "FALSE"); var_cd.Bool_create_file_m3u = FALSE; var_cd.Bool_create_file_m3u = Parse->BoolCreateFileM3uXspf; break; case CD_TAG_CAR_REPLACE : // LES REMPLACEMENT DE CARACTERES SE FONT A LA FIN ... // g_print("CD_TAG_REPLACE\n"); // g_print("%s ==> %s\n", Parse->StringReplaceOld, Parse->StringReplaceNew); break; case CD_TAG_TETSUMAKI_LOWER : case CD_TAG_WITHOUT_ACCENT : break; case CD_TAG_DEFAULT : // g_print("CD_TAG_DEFAULT\n"); // g_print("%s\n", Parse->StringDefault); g_string_append_printf (gstr, "%s", Parse->StringDefault); break; } } // STRUCTURE SUIVANTE ListParse = g_list_next (ListParse); } // QUELLE LIGNE ANALISER ? if( p_ParseType == PARSE_TYPE_STOCKAGE_CD ) { ListParse = g_list_first (VarParse.ListParseStockCd); } else if( p_ParseType == PARSE_TYPE_TITLE_CD ) { ListParse = g_list_first (VarParse.ListParseTitleCd); } // LISTE PARSE: REMPLACEMENT DE CARACTERES while( ListParse ) { if( NULL != (Parse = (PARSE *)ListParse->data) ) { if( CD_TAG_CAR_REPLACE == Parse->CdTypeTag ) { gstrNew = g_string_new (NULL); Ptr = gstr->str; while( *Ptr ) { // SI LES CARACTERES A COMPARER SONT DU MEME TYPE if( *Parse->StringReplaceOld < 0 && *(Parse->StringReplaceOld +1) < 0 ) { if( *Ptr < 0 && *(Ptr +1) < 0 ) { // REMPLACEMENT POSSIBLE ? if( *Parse->StringReplaceOld == *Ptr && *(Parse->StringReplaceOld +1) == *(Ptr +1) ) { g_string_append_printf (gstrNew, "%s", Parse->StringReplaceNew); Ptr += 2; continue; } } // SI LES CARACTERES A COMPARER SONT DU MEME TYPE } else if( *Parse->StringReplaceOld > 0 ) { if( *Ptr > 0 ) { // REMPLACEMENT POSSIBLE ? if( *Parse->StringReplaceOld == *Ptr ) { g_string_append_printf (gstrNew, "%s", Parse->StringReplaceNew); Ptr ++; continue; } } } g_string_append_printf (gstrNew, "%c", *Ptr); Ptr ++; } g_string_free (gstr, TRUE); gstr = NULL; gstr = g_string_new (NULL); g_string_append_printf (gstr, "%s", gstrNew->str); g_string_free (gstrNew, TRUE); gstrNew = NULL; } // DEMANDE DE @Tetsumaki // http://forum.ubuntu-fr.org/viewtopic.php?pid=3973950#p3973950 // TOUTES LES LETTRES EN MINUSCULE SAUF LA PREMIERE ANSI QUE LES CARACTERES PRECEDES PAR '%' else if( CD_TAG_TETSUMAKI_LOWER == Parse->CdTypeTag ) { gboolean BoolAlphaOk = FALSE; Ptr = gstr->str; while( *Ptr ) { if( '%' == *Ptr ) { strcpy (Ptr, Ptr + 1); } else { *Ptr = g_ascii_tolower (*Ptr); if( FALSE == BoolAlphaOk ) { if( TRUE == g_ascii_isalpha (*Ptr) ) { *Ptr = g_ascii_toupper (*Ptr); BoolAlphaOk = TRUE; } } } Ptr ++; } } // CD_TAG_WITHOUT_ACCENT // // A la demande de @mdos, fonction permettant de supprimer // tous les accents depuis un nom pour un futur fichier // else if( CD_TAG_WITHOUT_ACCENT == Parse->CdTypeTag ) { gchar *New = NULL; Ptr = gstr->str; while( *Ptr ) { if( *Ptr < 0 ) { // g_print ("OLD = %s\n", gstr->str); New = utf8_removediacritics( gstr->str, -1 ); // g_print ("NEW = %s\n", New ); g_string_free (gstr, TRUE); gstr = g_string_new (NULL); // g_string_append_printf( gstr, New ); g_string_append( gstr, New ); g_free( New ); New = NULL; break; } Ptr ++; } } } // STRUCTURE SUIVANTE ListParse = g_list_next (ListParse); } // ERRADICATION DE SLASH // DEUX CARACTERES SLASH ( // ) NE PEUVENT ETRE COTE A COTE Ptr = gstr->str; while( *Ptr ) { if( '/' == *Ptr && '/' == *(Ptr +1) ) { *Ptr = '_'; } Ptr ++; } } Str = g_strdup (gstr->str); g_string_free (gstr, TRUE); gstr = NULL; return (Str); } xcfa-4.3.6/src/fileselect.h0000644000175000017500000000303412122563437012452 00000000000000 /* * file : fileselect.h * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifndef fileselect_h #define fileselect_h 1 typedef enum { _PATH_CHOICE_DESTINATION_ = 0, _PATH_LOAD_SPLIT_FILE_, _PATH_LOAD_FILE_MUSIC_, _PATH_LOAD_ONE_FILE_, _PATH_LOAD_FILE_ALL_, _PATH_LOAD_FILE_WAV_, _PATH_LOAD_FILE_MP3OGG_, _PATH_LOAD_FILE_TAGS_, _PATH_IMPORT_IMAGES_, _PATH_STOCKE_IMAGES_POCHETTE_, _PATH_DEST_FILE_POSTSCRIPT_, _NB_PATH_ /* Do Not Use This Var, It's reserved */ } TYPE_FILESELECTION; void fileselect_create (TYPE_FILESELECTION Choice, gchar *Path, void *Func_Extern); void fileselect_clear_glist (void); GList *fileselect_set_glist_from_str (gchar *p_str); GList *fileselect_get_glist (void); #endif xcfa-4.3.6/src/tags_wavpack.c0000644000175000017500000000740612122563465013010 00000000000000 /* * file : tags_wavpack.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #include #include #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "tags.h" #include #include "get_info.h" /* *--------------------------------------------------------------------------- * VARIABLES *--------------------------------------------------------------------------- */ /* typedef struct { char ckID [4]; "wvpk" uint32_t ckSize; size of entire block (minus 8, of course) uint16_t version; 0x402 to 0x410 are currently valid for decode uchar track_no; track number (0 if not used, like now) uchar index_no; track sub-index (0 if not used, like now) uint32_t total_samples; total samples for entire file, but this is only valid if block_index == 0 and a value of -1 indicates unknown length uint32_t block_index; index of first sample in block relative to beginning of file (normally this would start at 0 for the first block) uint32_t block_samples; number of samples in this block (0 = no audio) uint32_t flags; various flags for id and decoding uint32_t crc; crc for actual decoded data } WavpackHeader; */ /* typedef struct { gchar id [ 3 ]; gchar title [ 30 ]; gchar interprete [ 30 ]; gchar album [ 30 ]; gchar annee [ 4 ]; gchar comment [ 30 ]; gchar genre [ 1 ]; } TAGS_WAVPACK; */ /* *--------------------------------------------------------------------------- * GET HEADER *--------------------------------------------------------------------------- */ INFO_WAVPACK *tagswavpack_remove_info (INFO_WAVPACK *info) { if (info) { if (NULL != info->time) { g_free (info->time); info->time = NULL; } if (NULL != info->size) { g_free (info->size); info->size = NULL; } info->tags = (TAGS *)tags_remove (info->tags); g_free (info); info = NULL; } return ((INFO_WAVPACK *)NULL); } INFO_WAVPACK *tagswavpack_get_info (DETAIL *detail) { INFO_WAVPACK *ptrinfo = NULL; SHNTAG *ShnTag = GetInfo_shntool (detail->namefile); gint m; gint s; gint sec; ptrinfo = (INFO_WAVPACK *)g_malloc0 (sizeof (INFO_WAVPACK)); if (ptrinfo == NULL) return (NULL); ptrinfo->tags = (TAGS *)tags_alloc (FALSE); ptrinfo->size = g_strdup (ShnTag->size); ptrinfo->SecTime = sec = ShnTag->SecTime; s = sec % 60; sec /= 60; m = sec % 60; sec /= 60; if (sec > 0) ptrinfo->time = g_strdup_printf ("%02d:%02d:%02d", sec, m, s); else ptrinfo->time = g_strdup_printf ("%02d:%02d", m, s); ShnTag = GetInfo_free_shntool (ShnTag); return (ptrinfo); } xcfa-4.3.6/src/cd_cue.c0000644000175000017500000004167612122563465011567 00000000000000 /* * file : cd_cue.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "cd_audio.h" #include "get_info.h" #include "scan.h" #include "configuser.h" #include "parse.h" #include "cd_cue.h" typedef struct { guint handler_timeout; } VAR_CDCUE; VAR_CDCUE cdcue; BASE_IOCTL BaseIoctl = { 0, NULL, NULL, NULL, NULL, NULL }; // // gboolean cdcue_is_alloc (void) { return ((BaseIoctl.Cue == NULL) ? FALSE : TRUE); } // // gint cdcue_get_total_tracks (gchar *buffer) { gchar **Larrbuf = NULL; gint i; gint piste; gchar *ptr; Larrbuf = g_strsplit(buffer, "\n", 0); for (i=0; Larrbuf[i]; i++) { if (strstr (Larrbuf[i], "TOTAL")) { i --; break; } } ptr = Larrbuf[i]; while (*ptr == ' ') ptr ++; piste = atoi (ptr); g_strfreev(Larrbuf); return (piste); } // // void cdcue_remove_base_ioctl (void) { BaseIoctl.TotalTracks = 0; if (BaseIoctl.Datas != NULL) { g_free (BaseIoctl.Datas); BaseIoctl.Datas = NULL; } // g_free (BaseIoctl.PathNameDestFileCue); BaseIoctl.PathNameDestFileCue = NULL; if( NULL != BaseIoctl.Performer ) { g_free (BaseIoctl.Performer); BaseIoctl.Performer = NULL; } if( NULL != BaseIoctl.Title ) { g_free (BaseIoctl.Title); BaseIoctl.Title = NULL; } if( NULL != BaseIoctl.File ) { g_free (BaseIoctl.File); BaseIoctl.File = NULL; } if (BaseIoctl.Cue != NULL) { gint i; for (i = 0; i < BaseIoctl.TotalTracks; i++) { if( NULL != BaseIoctl.Cue [ i ].Performer ) { g_free (BaseIoctl.Cue [ i ].Performer); BaseIoctl.Cue [ i ].Performer = NULL; } if( NULL != BaseIoctl.Cue [ i ].Title ) { g_free (BaseIoctl.Cue [ i ].Title); BaseIoctl.Cue [ i ].Title = NULL; } if( NULL != BaseIoctl.Cue [ i ].Partiel_Title ) { g_free (BaseIoctl.Cue [ i ].Partiel_Title); BaseIoctl.Cue [ i ].Partiel_Title = NULL; } } g_free (BaseIoctl.Cue); BaseIoctl.Cue = NULL; } } // // void cdcue_alloc_base_ioctl (gint p_taille) { gint index; cdcue_remove_base_ioctl (); BaseIoctl.TotalTracks = p_taille; BaseIoctl.Datas = (BASE_IOCTL_DATAS *)g_malloc0 (sizeof(BASE_IOCTL_DATAS) * (p_taille +4)); BaseIoctl.Cue = (CDCUE *)g_malloc0 (sizeof(CDCUE) * (p_taille +4)); // Aucune extraction for (index = 0; index < p_taille; index ++) BaseIoctl.Cue [ index ].BoolExtract = FALSE; } // // void cdcue_set_BoolExtract (gint p_index, gboolean p_flag) { BaseIoctl.Cue [ p_index ].BoolExtract = p_flag; } // // void cdcue_print_base_ioctl (void) { gint base; // gint TempDiv; // gint TempMod; if( FALSE == OptionsCommandLine.BoolVerboseMode ) return; // 1. length 12923 [02:52:23] begin 32 [00:00:32] cdparanoia [.begin<44 ? 0 : begin][.(length + begin) -1] -d /dev/hdb -O 0 "1.wav" // 2. length 14175 [03:09:00] begin 12955 [02:52:55] cdparanoia [.begin][.length -1] -d /dev/hdb -O 0 "2.wav" // 3. length 14627 [03:15:02] begin 27130 [06:01:55] cdparanoia [.begin][.length -1] -d /dev/hdb -O 0 "3.wav" // 20. length 15848 [03:31:23] begin 303192 [67:22:42] cdparanoia [.303192]-[.15847] -d /dev/sr0 -O 0 "20.wav" g_print(" ------------------ B A S E ---------------------------- ---------------- E X T R A C T I O N -----------------\n" ); for (base = 0; base < BaseIoctl.TotalTracks; base++) { // TempDiv = BaseIoctl.Datas[ base ].length / 75; // TempMod = BaseIoctl.Datas[ base ].length % 75; g_print(" %2d. ", base +1); g_print("length %7d [%02d:%02d:%02d] ", BaseIoctl.Datas[ base ].length, BaseIoctl.Datas[ base ].length_min, BaseIoctl.Datas[ base ].length_sec, BaseIoctl.Datas[ base ].length_cent); // TempDiv = BaseIoctl.Datas[ base ].begin / 75; // TempMod = BaseIoctl.Datas[ base ].begin % 75; g_print("begin %7d [%02d:%02d:%02d]", BaseIoctl.Datas[ base ].begin, BaseIoctl.Datas[ base ].begin_min, BaseIoctl.Datas[ base ].begin_sec, BaseIoctl.Datas[ base ].begin_cent); g_print("\tcdparanoia [.%d]-[.%d] -d %s -O 0 \"%d.wav\"", BaseIoctl.Datas[ base ].begin < 44 ? 0 : BaseIoctl.Datas[ base ].begin, base == 0 ? (BaseIoctl.Datas[ base ].length + BaseIoctl.Datas[ base ].begin) -1 : BaseIoctl.Datas[ base ].length -1, EnteteCD.NameCD_Device, base +1 ); if (BaseIoctl.Cue [ base ].BoolExtract == TRUE) g_print(" -> Extract"); g_print("\n"); } // TempDiv = BaseIoctl.Datas[ BaseIoctl.TotalTracks ].begin / 75; // TempMod = BaseIoctl.Datas[ BaseIoctl.TotalTracks ].begin % 75; g_print("TOTAL %7d [%02d:%02d:%02d] ", BaseIoctl.Datas[ BaseIoctl.TotalTracks ].begin, BaseIoctl.Datas[ BaseIoctl.TotalTracks ].begin_min, BaseIoctl.Datas[ BaseIoctl.TotalTracks ].begin_sec, BaseIoctl.Datas[ BaseIoctl.TotalTracks ].begin_cent); g_print("\n\n"); } // // void cdcue_make_cue (void) { gint piste; if (BaseIoctl.Cue == NULL) return; for (piste = 0; piste < BaseIoctl.TotalTracks; piste ++) { BaseIoctl.Cue [ piste ].BeginTime.total = BaseIoctl.Datas[ piste ].begin / 75; BaseIoctl.Cue [ piste ].BeginTime.min = BaseIoctl.Datas[ piste ].begin_min; BaseIoctl.Cue [ piste ].BeginTime.sec = BaseIoctl.Datas[ piste ].begin_sec; BaseIoctl.Cue [ piste ].BeginTime.cent = BaseIoctl.Datas[ piste ].begin_cent; if (BaseIoctl.Cue [ piste ].Title == NULL) { BaseIoctl.Cue [ piste ].Title = g_strdup_printf ("Track_%02d", piste + 1); } } for (piste = 0; piste < BaseIoctl.TotalTracks; piste ++) { if (piste > 0) { BaseIoctl.Cue [ piste ].EndTime.total = BaseIoctl.Cue [ piste ].BeginTime.total - 3; BaseIoctl.Cue [ piste ].EndTime.sec = BaseIoctl.Cue [ piste ].EndTime.total % 60; BaseIoctl.Cue [ piste ].EndTime.total -= BaseIoctl.Cue [ piste ].EndTime.sec; BaseIoctl.Cue [ piste ].EndTime.min = BaseIoctl.Cue [ piste ].EndTime.total / 60; BaseIoctl.Cue [ piste ].EndTime.cent = BaseIoctl.Cue [ piste ].BeginTime.cent; } } } // // void cdcue_write_cue_ok (void) { gint piste; gchar *PathName = NULL; FILE *fp; gchar *StrLine = NULL; PathName = g_strdup_printf ("%s/%s.cue", (gchar *)Config.PathDestinationCD, BaseIoctl.Performer); PRINT("Production du fichier:"); g_print("\t%s\n", PathName ); fp = fopen (PathName, "w"); fprintf (fp, "REM Cue file written by Xcfa\n\n"); fprintf (fp, "PERFORMER \"%s\"\n", BaseIoctl.Performer); fprintf (fp, "TITLE \"%s\"\n", BaseIoctl.Title); fprintf (fp, "FILE \"%s\" WAVE\n", BaseIoctl.File); for (piste = 0; piste < BaseIoctl.TotalTracks; piste ++) { fprintf (fp, " TRACK %02d AUDIO\n", piste +1); fprintf (fp, " PERFORMER \"%s\"\n", BaseIoctl.Cue [ piste ].Performer); // PARSING DU TITRE DE LA PISTE // fprintf (fp, " TITLE \"%s\"\n", BaseIoctl.Cue [ piste ].Title); StrLine = Parse_get_line( PARSE_TYPE_TITLE_CD, piste ); fprintf (fp, " TITLE \"%s\"\n", StrLine); g_free( StrLine ); StrLine = NULL; if (piste > 0) fprintf (fp, " INDEX 00 %02d:%02d:%02d\n", BaseIoctl.Cue [ piste ].EndTime.min, BaseIoctl.Cue [ piste ].EndTime.sec, BaseIoctl.Cue [ piste ].EndTime.cent); fprintf (fp, " INDEX 01 %02d:%02d:%02d\n", BaseIoctl.Cue [ piste ].BeginTime.min, BaseIoctl.Cue [ piste ].BeginTime.sec, BaseIoctl.Cue [ piste ].BeginTime.cent); // g_print (" PERFORMER \"%s\"\n", BaseIoctl.Cue [ piste ].Performer); // g_print (" TITLE \"%s\"\n", BaseIoctl.Cue [ piste ].Title); // if (piste > 0) // g_print (" INDEX 00 %02d:%02d:%02d\n", BaseIoctl.Cue [ piste ].FMin, BaseIoctl.Cue [ piste ].FSec, BaseIoctl.Cue [ piste ].FCent); // g_print (" INDEX 01 %02d:%02d:%02d\n", BaseIoctl.Cue [ piste ].DMin, BaseIoctl.Cue [ piste ].DSec, BaseIoctl.Cue [ piste ].DCent); } fprintf (fp, "\n"); fclose (fp); g_free (PathName); PathName = NULL; // FIN de creation CUE-FILE var_cd.TypeCreateCue = TYPE_CUE_NONE; } // // ADD == 0 : no change // ADD == 1 : + 3 secondes // ADD == 2 : - 3 secondes // void cdcue_calcul_start (gint piste, gint Add) { gint TempDiv = 0; gint TempMod = 0; if (Add == 0) { TempDiv = BaseIoctl.Cue [ piste ].CuePartiel.Start / 75; TempMod = BaseIoctl.Cue [ piste ].CuePartiel.Start % 75; } else if (Add == 1) { TempDiv = (BaseIoctl.Cue [ piste ].CuePartiel.Start +32) / 75; TempMod = (BaseIoctl.Cue [ piste ].CuePartiel.Start +32) % 75; } else if (Add == 2) { TempDiv = (BaseIoctl.Cue [ piste ].CuePartiel.Start -32) / 75; TempMod = (BaseIoctl.Cue [ piste ].CuePartiel.Start -32) % 75; } BaseIoctl.Cue [ piste ].CuePartiel.StartMin = TempDiv / 60; BaseIoctl.Cue [ piste ].CuePartiel.StartSec = TempDiv % 60; BaseIoctl.Cue [ piste ].CuePartiel.StartCent = TempMod; } /* REM Cue file written by Xcfa PERFORMER "James Brown" TITLE "Sex Machine - The Very Best Of James Brown" FILE "aurelie.wav" WAVE TRACK 01 AUDIO PERFORMER "James Brown" TITLE "Please" INDEX 01 00:00:32 DEBUT Please TRACK 02 AUDIO PERFORMER "James Brown" TITLE "Think" INDEX 00 02:44:00 FIN Please INDEX 01 02:45:00 DEBUT Think TRACK 03 AUDIO PERFORMER "James Brown" TITLE "Nigth" INDEX 00 05:00:00 FIN Think INDEX 01 05:00:32 DEBUT Nigth */ // // void cdcue_write_cue_ok_partiel (void) { gint piste; gint track; gint old_piste = 0; gchar *Ptr = NULL; FILE *fp; gchar *PathName = NULL; gchar *StrLine = NULL; // Initialisation for (piste = 0; piste < BaseIoctl.TotalTracks; piste ++) { BaseIoctl.Cue [ piste ].CuePartiel.Start = 0; BaseIoctl.Cue [ piste ].CuePartiel.StartMin = 0; BaseIoctl.Cue [ piste ].CuePartiel.StartSec = 0; BaseIoctl.Cue [ piste ].CuePartiel.StartCent = 0; BaseIoctl.Cue [ piste ].CuePartiel.Len = 0; } // init Len for (piste = 0; piste < BaseIoctl.TotalTracks; piste ++) { BaseIoctl.Cue [ piste ].CuePartiel.Len = BaseIoctl.Datas[ piste ].length; } // Init Start ZERO BaseIoctl.Cue [ 0 ].CuePartiel.Start = BaseIoctl.Datas[ 0 ].begin; // Init Start ZERO old_piste = 0; for (piste = 0; piste < BaseIoctl.TotalTracks; piste ++) { if (BaseIoctl.Cue [ piste ].BoolExtract == TRUE) { BaseIoctl.Cue [ piste ].CuePartiel.Start = BaseIoctl.Cue [ old_piste ].CuePartiel.Start + BaseIoctl.Cue [ piste ].CuePartiel.Len; cdcue_calcul_start (piste, 0); old_piste = piste; } } for (piste = 0; piste < BaseIoctl.TotalTracks; piste ++) { g_print ("%2d LEN [ %7d ] START [ %7d ] %02d:%02d:%02d %s %s\n", piste, BaseIoctl.Cue [ piste ].CuePartiel.Len, BaseIoctl.Cue [ piste ].CuePartiel.Start, BaseIoctl.Cue [ piste ].CuePartiel.StartMin, BaseIoctl.Cue [ piste ].CuePartiel.StartSec, BaseIoctl.Cue [ piste ].CuePartiel.StartCent, BaseIoctl.Cue [ piste ].BoolExtract == TRUE ? "EXTRACT" : " ", BaseIoctl.Cue [ piste ].Title ); } Ptr = (gchar *)gtk_entry_get_text (GTK_ENTRY (var_cd.Adr_entry_name_file_cue)); PathName = g_strdup_printf ("%s/%s.cue", (gchar *)Config.PathDestinationCD, Ptr); fp = fopen (BaseIoctl.PathNameDestFileCue, "w"); g_print("\n"); fprintf (fp, "REM Cue file written by Xcfa\n\n"); fprintf (fp, "PERFORMER \"%s\"\n", BaseIoctl.Performer); fprintf (fp, "TITLE \"%s\"\n", BaseIoctl.Title); switch (gtk_combo_box_get_active ( GTK_COMBO_BOX ( GTK_WIDGET (GLADE_GET_OBJECT("combobox_choice_file_cue"))))) { case 0 : fprintf (fp, "FILE \"%s.wav\" WAVE\n", Ptr); break; case 1 : fprintf (fp, "FILE \"%s.flac\" WAVE\n", Ptr); break; case 2 : fprintf (fp, "FILE \"%s.ogg\" WAVE\n", Ptr); break; case 3 : fprintf (fp, "FILE \"%s.mpc\" WAVE\n", Ptr); break; } old_piste = 0; for (track = 0, piste = 0; piste < BaseIoctl.TotalTracks; piste ++) { if (BaseIoctl.Cue [ piste ].BoolExtract == FALSE) continue; fprintf (fp, " TRACK %02d AUDIO\n", track +1); fprintf (fp, " PERFORMER \"%s\"\n", BaseIoctl.Cue [ piste ].Performer); // fprintf (fp, " TITLE \"%s\"\n", BaseIoctl.Cue [ piste ].Title); StrLine = Parse_get_line( PARSE_TYPE_TITLE_CD, track ); fprintf (fp, " TITLE \"%s\"\n", StrLine ); g_free( StrLine ); StrLine = NULL; if (track == 0) { fprintf (fp, " INDEX 01 00:00:00\n"); track ++; old_piste = piste; continue; } if (track > 0) { cdcue_calcul_start (old_piste, 2); fprintf (fp, " INDEX 00 %02d:%02d:%02d\n", BaseIoctl.Cue [ old_piste ].CuePartiel.StartMin, BaseIoctl.Cue [ old_piste ].CuePartiel.StartSec, BaseIoctl.Cue [ old_piste ].CuePartiel.StartCent); cdcue_calcul_start (old_piste, 1); } fprintf (fp, " INDEX 01 %02d:%02d:%02d\n", BaseIoctl.Cue [ old_piste ].CuePartiel.StartMin, BaseIoctl.Cue [ old_piste ].CuePartiel.StartSec, BaseIoctl.Cue [ old_piste ].CuePartiel.StartCent); track ++; old_piste = piste; } fclose (fp); g_free (PathName); PathName = NULL; // FIN de creation CUE-FILE var_cd.TypeCreateCue = TYPE_CUE_NONE; } // // void cdcue_write_cue (void) { // gchar *PathName = NULL; // gchar *Str = NULL; // ggchar *Ptr = NULL; if (BaseIoctl.Cue == NULL) return; switch (var_cd.TypeCreateCue) { case TYPE_CUE_NONE : break; case TYPE_CUE_FILE : if (gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON (GLADE_GET_OBJECT("checkbutton_creation_fichier_cue"))) == TRUE) { /* if (libutils_test_file_exist (BaseIoctl.PathNameDestFileCue) == TRUE) { Str = g_strdup_printf (_("\nLe fichier existe:\n%s \nVoulez vous le remplacer ? \n"), BaseIoctl.PathNameDestFileCue); windchoice_open ( _("Le fichier existe"), Str, TRUE, cdcue_write_cue_ok_partiel ); break; } */ cdcue_write_cue_ok_partiel (); } break; case TYPE_CUE_CD : /* PathName = g_strdup_printf ("%s/%s.cue", (gchar *)Config.PathDestinationCD, BaseIoctl.Performer); if (libutils_test_file_exist (PathName) == TRUE) { Str = g_strdup_printf (_("\nLe fichier existe:\n%s \nVoulez vous le remplacer ? \n"), PathName); windchoice_open ( _("Le fichier existe"), Str, TRUE, cdcue_write_cue_ok ); break; } */ cdcue_write_cue_ok (); break; } // FIN de creation CUE-FILE var_cd.TypeCreateCue = TYPE_CUE_NONE; /* if (PathName != NULL) { g_free (PathName); PathName = NULL; } if (Str != NULL) { g_free (Str); Str = NULL; } Ptr = NULL; */ } // // static gint cdcue_timeout (gpointer data) { if (var_cd.bool_timeout_read_toc_cd == FALSE) { // Creation de fichier CUE cdcue_write_cue (); // FIN timeout gtk_timeout_remove (cdcue.handler_timeout); } return (TRUE); } // Demande de creation CUE totale // void on_button_cue_creation_from_cd_clicked (GtkButton *button, gpointer user_data) { if (cdcue_is_alloc () == TRUE) { // DEBUT de creation de fichier CUE var_cd.TypeCreateCue = TYPE_CUE_CD; cdcue_write_cue (); } else { // DEBUT de creation de fichier CUE var_cd.TypeCreateCue = TYPE_CUE_CD; // Pré-initialisations indispensable var_cd.bool_thread_read_toc_cd = TRUE; var_cd.bool_timeout_read_toc_cd = TRUE; // Le timer de fin cdcue.handler_timeout = gtk_timeout_add (100, cdcue_timeout, 0); // Et action cdaudiotoc_reffresh_list_cd (); } } // // void on_entry_name_fichier_unique_cue_realize (GtkWidget *widget, gpointer user_data) { var_cd.Adr_entry_name_file_cue = widget; } // // void on_entry_name_fichier_unique_cue_changed (GtkEditable *editable, gpointer user_data) { gchar *ptr_template = NULL; gchar *str = NULL; gchar *ptr = NULL; if (var_cd.Adr_entry_name_file_cue == NULL) return; ptr_template = (gchar *)gtk_entry_get_text (GTK_ENTRY (var_cd.Adr_entry_name_file_cue)); // Suppression du caracteres '/' interdit si il existe str = g_strdup (ptr_template); if (strchr (str, '/')) { while ((ptr = strchr (str, '/'))) { strcpy (ptr, ptr+1); } gtk_entry_set_text (GTK_ENTRY (var_cd.Adr_entry_name_file_cue), str); // utils_puts_statusbar_global (_("Le caractere / est interdit !!!")); } g_free (str); str = NULL; } // // void on_checkbutton_creation_fichier_cue_clicked (GtkButton *button, gpointer user_data) { if (gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON (button)) == TRUE) gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON (GLADE_GET_OBJECT("checkbutton_creation_fichier_unique_cue")), TRUE); } xcfa-4.3.6/src/split_selector.c0000644000175000017500000006103712122563465013371 00000000000000 /* * file : split_selector.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "alsa_play.h" #include "split.h" #include "statusbar.h" extern VAR_SPLIT VarSplit; void DEBUG_PRINT_SplitSelector (void) { if( TRUE == OptionsCommandLine.BoolVerboseMode ) { gint IndiceSrc; g_print ("\n"); for (IndiceSrc = 0; IndiceSrc < MAX_SELECTEURS_SPLIT; IndiceSrc ++) { if (-1 != VarSplit.Selecteur [ IndiceSrc ] . Nmr) { g_print ("[ %2d ] Begin = %6d End = %6d\t", IndiceSrc, (gint)VarSplit.Selecteur [ IndiceSrc ] . BeginPaint, (gint)VarSplit.Selecteur [ IndiceSrc ] . EndPaint ); g_print ("PercentBegin = %2.6f PercentEnd = %2.6f\n", VarSplit.Selecteur [ IndiceSrc ] . PercentBegin, VarSplit.Selecteur [ IndiceSrc ] . PercentEnd ); } } } } // // void SplitSelector_init (void) { gint Cpt; // PRINT_FUNC_LF(); VarSplit.BoolPlay = FALSE; VarSplit.SelecteurActif = 0; VarSplit.NbrSelecteurs = 0; VarSplit.PercentActivePlay = 0.0; VarSplit.BoolBlankWithCue = FALSE; for (Cpt = 0; Cpt < MAX_SELECTEURS_SPLIT; Cpt ++) { VarSplit.Selecteur [ Cpt ] . Nmr = -1; VarSplit.Selecteur [ Cpt ] . BeginPaint = -1; VarSplit.Selecteur [ Cpt ] . EndPaint = -1; VarSplit.Selecteur [ Cpt ] . PercentBegin = VarSplit.Selecteur [ Cpt ] . PercentEnd = 0.0; } } // SELECTEUR: IL N EN RESTERA QU UN ;-) // void on_button_del_cut_split_clicked (GtkButton *button, gpointer user_data) { if (VarSplit.NbrSelecteurs > 1) { PRINT_FUNC_LF(); DEBUG_PRINT_SplitSelector (); // INIT STRUCTURES: Selecteur ET Points 50 db SplitSelector_init (); VarSplit.SelecteurActif = 0; VarSplit.NbrSelecteurs = 1; VarSplit.Selecteur [ 0 ] . Nmr = 0; VarSplit.Selecteur [ 0 ] . BeginPaint = 0; VarSplit.Selecteur [ 0 ] . EndPaint = (SplitSpectre_get_with() -1 ); VarSplit.Selecteur [ 0 ] . PercentBegin = VarSplit.Selecteur [ 0 ] . PercentEnd = 0.0; VarSplit.Selecteur [ 0 ] . PercentBegin = ((gdouble)VarSplit.Selecteur [ 0 ] . BeginPaint / (gdouble)SplitSpectre_get_with() ) * 100.0; VarSplit.Selecteur [ 0 ] . PercentEnd = ((gdouble)VarSplit.Selecteur [ 0 ] . EndPaint / (gdouble)SplitSpectre_get_with() ) * 100.0; gtk_widget_queue_draw (VarSplit.AdrWidgetSpectre); gtk_widget_queue_draw( VarSplit.AdrWidgetSpectreTop ); DEBUG_PRINT_SplitSelector (); split_set_flag_buttons (); } } // DESTRUCTION DU SELCTEUR ACTIF // void SplitSelector_cut (void) { if (0 == VarSplit.NbrSelecteurs) { PRINT("\tAUCUN SELECTEUR !!!"); } else if (VarSplit.NbrSelecteurs == 1) { PRINT("\tLE SELECTEUR RESTANT EST OBLIGATOIRE : Il n'en restera qu'un ;-)"); } else if (VarSplit.NbrSelecteurs > 1) { if (TRUE == AlsaPlay_is_play ()) { StatusBar_set_mess( NOTEBOOK_SPLIT, _STATUSBAR_WARN_, _("Suppression pendant la lecture impossible") ); } else { gint Zone = 0; // PRINT_FUNC_LF(); // g_print("\tSUPPRESSION DU SELECTEUR ACTIF: %d\n", VarSplit.SelecteurActif); // // g_memmove (dest, src, len) // // DEPLACER LES BUFFERS VERS L AVANT EN COMMENCANT PAR LA FIN for (Zone = VarSplit.SelecteurActif +1; Zone < VarSplit.NbrSelecteurs; Zone ++) { g_memmove(&VarSplit.Selecteur [ Zone -1 ], &VarSplit.Selecteur [ Zone ], sizeof(SELECTEUR)); } VarSplit.NbrSelecteurs --; if (VarSplit.SelecteurActif >= VarSplit.NbrSelecteurs -1 && VarSplit.SelecteurActif > 0) VarSplit.SelecteurActif --; VarSplit.Selecteur [ VarSplit.NbrSelecteurs ] . Nmr = -1; VarSplit.Selecteur [ VarSplit.NbrSelecteurs ] . BeginPaint = -1; VarSplit.Selecteur [ VarSplit.NbrSelecteurs ] . EndPaint = -1; VarSplit.Selecteur [ VarSplit.NbrSelecteurs ] . PercentBegin = VarSplit.Selecteur [ VarSplit.NbrSelecteurs ] . PercentEnd = 0.0; gtk_widget_queue_draw( VarSplit.AdrWidgetSpectre ); gtk_widget_queue_draw( VarSplit.AdrWidgetSpectreTop ); } } } // // gint SplitSelector_get_diff_sec (gdouble p_PercentBegin, gdouble p_PercentEnd) { gint Len = -1; gdouble TimeSongSec; gint sec_begin; gint sec_end; // ACQUISITION DUREE TOTALE DU FICHIER EN SECONDES TimeSongSec = VarSplit.Tags->SecTime; sec_begin = (gint) (((gdouble)TimeSongSec * (gdouble)p_PercentBegin) / 100.0); sec_end = (gint) (((gdouble)TimeSongSec * (gdouble)p_PercentEnd) / 100.0); // Len = (sec_end % 60) - (sec_begin % 60); Len = (sec_end ) - (sec_begin ); return (Len); } // // gint SplitSelector_get_PosSelecteurActif (gint p_CursorX) { gint PosSelecteurActif = -1; for (PosSelecteurActif = 0; PosSelecteurActif < VarSplit.NbrSelecteurs ; PosSelecteurActif ++) { if (p_CursorX > SplitSelector_get_pos_begin (PosSelecteurActif) && p_CursorX < SplitSelector_get_pos_end (PosSelecteurActif)) { return (PosSelecteurActif); } } return (-1); } // DOUBLE CLICK : GENERATION D UN NOUVEL INDEX // // @Dzef: TODO // - Pour ajouter manuellement un marqueur de début, j'ajoute, par défaut, au même endroit celui de sortie de la plage précédente. // - En mode lecture un double clic sur le bandeau des index place un sélecteur à la position de la tête de lecture ? // - En mode pause un double clic sur le bandeau des index place un sélecteur à l'endroit où on a cliqué ? // - La règle étant que 2 plages ne doivent pas pouvoir se chevaucher. // void SplitSelector_add (gint p_CursorX) { gint IndiceDest = 0; gint IndiceSrc = 0; gint CursorX = p_CursorX; gint Cpt; gdouble PercentCursorX; gint Len; // PRINT_FUNC_LF(); DEBUG_PRINT_SplitSelector (); // // CAS 1 : CursorX < BEGIN_MIN // if (CursorX < SplitSelector_get_pos_begin (0)) { PRINT("CAS 1 : CursorX < BEGIN_MIN"); // // -- // PercentCursorX = ((gdouble)CursorX / (gdouble)SplitSpectre_get_with() ) * 100.0; Len = SplitSelector_get_diff_sec (0.0, PercentCursorX); if (Len < 5) { StatusBar_set_mess( NOTEBOOK_SPLIT, _STATUSBAR_WARN_, _("Temps inferieur a 5 secondes entre marqueur et curseur !") ); return; } Len = SplitSelector_get_diff_sec (PercentCursorX, VarSplit.Selecteur [ 0 ] . PercentBegin); if (Len < 5) { StatusBar_set_mess( NOTEBOOK_SPLIT, _STATUSBAR_WARN_, _("Temps inferieur a 5 secondes entre marqueur et curseur !") ); return; } // // g_memmove (dest, src, len) // // DEPLACER LES BUFFERS VERS L AVANT EN COMMENCANT PAR LA FIN if (VarSplit.NbrSelecteurs < MAX_SELECTEURS_SPLIT) { for (IndiceDest = VarSplit.NbrSelecteurs; IndiceDest > 0; IndiceDest --) { IndiceSrc = IndiceDest -1; if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("\tg_memmove(%d, %d, %d);\n", IndiceDest, IndiceSrc, (gint)sizeof(SELECTEUR)); g_memmove(&VarSplit.Selecteur [ IndiceDest ], &VarSplit.Selecteur [ IndiceSrc ], sizeof(SELECTEUR)); } } // VALIDER LA NOUVELLE SELECTION ACTIVE VarSplit.SelecteurActif = 0; if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("VarSplit.SelecteurActif = %d\n",VarSplit.SelecteurActif); // AJOUTER UN SELECTEUR VarSplit.NbrSelecteurs ++; if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("VarSplit.NbrSelecteurs = %d\n",VarSplit.NbrSelecteurs); // REINDEXER LA NUMEROTATION for (IndiceSrc = 0; IndiceSrc < VarSplit.NbrSelecteurs; IndiceSrc ++) { VarSplit.Selecteur [ IndiceSrc ] . Nmr = IndiceSrc; if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("VarSplit.Selecteur [ %d ] . Nmr = %d\n",IndiceSrc, VarSplit.Selecteur [ IndiceSrc ] . Nmr); } if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("VarSplit.Selecteur [ %d ] . Nmr = %d\n",IndiceSrc, VarSplit.Selecteur [ IndiceSrc ] . Nmr); VarSplit.Selecteur [ VarSplit.SelecteurActif ] . BeginPaint = CursorX; VarSplit.Selecteur [ VarSplit.SelecteurActif ] . PercentBegin = ((gdouble)CursorX / (gdouble)SplitSpectre_get_with() ) * 100.0; VarSplit.Selecteur [ VarSplit.SelecteurActif ] . EndPaint = VarSplit.Selecteur [ VarSplit.SelecteurActif +1 ] . BeginPaint; VarSplit.Selecteur [ VarSplit.SelecteurActif ] . PercentEnd = VarSplit.Selecteur [ VarSplit.SelecteurActif +1 ] . PercentBegin; } // // CAS 2 : CursorX > END_MAX // else if (CursorX > SplitSelector_get_pos_end (VarSplit.NbrSelecteurs -1)) { PRINT("CAS 2 : CursorX > END_MAX"); // // -- // PercentCursorX = ((gdouble)CursorX / (gdouble)SplitSpectre_get_with() ) * 100.0; Len = SplitSelector_get_diff_sec (VarSplit.Selecteur [ 0 ] . PercentEnd, PercentCursorX); if (Len < 5) { StatusBar_set_mess( NOTEBOOK_SPLIT, _STATUSBAR_WARN_, _("Temps inferieur a 5 secondes entre marqueur et curseur !") ); return; } Len = SplitSelector_get_diff_sec (PercentCursorX, 100.0); if (Len < 5) { StatusBar_set_mess( NOTEBOOK_SPLIT, _STATUSBAR_WARN_, _("Temps inferieur a 5 secondes entre marqueur et curseur !") ); return; } // // g_memmove (dest, src, len) // // DEPLACER LES BUFFERS VERS L AVANT EN COMMENCANT PAR LA FIN if (VarSplit.NbrSelecteurs < MAX_SELECTEURS_SPLIT) { for (IndiceDest = VarSplit.NbrSelecteurs; IndiceDest > VarSplit.NbrSelecteurs -1; IndiceDest --) { IndiceSrc = IndiceDest -1; if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("\tg_memmove(%d, %d, %d);\n", IndiceDest, IndiceSrc, (gint)sizeof(SELECTEUR)); g_memmove(&VarSplit.Selecteur [ IndiceDest ], &VarSplit.Selecteur [ IndiceSrc ], sizeof(SELECTEUR)); } } // VALIDER LA NOUVELLE SELECTION ACTIVE VarSplit.SelecteurActif = VarSplit.NbrSelecteurs; if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("VarSplit.SelecteurActif = %d\n",VarSplit.SelecteurActif); // AJOUTER UN SELECTEUR VarSplit.NbrSelecteurs ++; if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("VarSplit.NbrSelecteurs = %d\n",VarSplit.NbrSelecteurs); // REINDEXER LA NUMEROTATION for (IndiceSrc = 0; IndiceSrc < VarSplit.NbrSelecteurs; IndiceSrc ++) { VarSplit.Selecteur [ IndiceSrc ] . Nmr = IndiceSrc; if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("VarSplit.Selecteur [ %d ] . Nmr = %d\n",IndiceSrc, VarSplit.Selecteur [ IndiceSrc ] . Nmr); } if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("VarSplit.Selecteur [ %d ] . Nmr = %d\n",IndiceSrc, VarSplit.Selecteur [ IndiceSrc ] . Nmr); VarSplit.Selecteur [ VarSplit.SelecteurActif ] . BeginPaint = CursorX; VarSplit.Selecteur [ VarSplit.SelecteurActif ] . PercentBegin = ((gdouble)CursorX / (gdouble)SplitSpectre_get_with() ) * 100.0; VarSplit.Selecteur [ VarSplit.SelecteurActif ] . EndPaint = VARSPLIT_SPECTRE_W ; VarSplit.Selecteur [ VarSplit.SelecteurActif ] . PercentEnd = ((gdouble)VARSPLIT_SPECTRE_W / (gdouble)SplitSpectre_get_with() ) * 100.0; } else { for (Cpt = 0; Cpt <= VarSplit.NbrSelecteurs; Cpt ++) { // // CAS 3 : CursorX IN BEGIN .. END // if (CursorX > SplitSelector_get_pos_begin (Cpt) && CursorX < SplitSelector_get_pos_end (Cpt)) { PRINT("CAS 3 : CursorX IN BEGIN .. END"); // // -- // PercentCursorX = ((gdouble)CursorX / (gdouble)SplitSpectre_get_with() ) * 100.0; Len = SplitSelector_get_diff_sec (VarSplit.Selecteur [ Cpt ] . PercentBegin, PercentCursorX); if (Len < 5) { PRINT("1- if (Len < 5) {"); StatusBar_set_mess( NOTEBOOK_SPLIT, _STATUSBAR_WARN_, _("Temps inferieur a 5 secondes entre marqueur et curseur !") ); return; } Len = SplitSelector_get_diff_sec (PercentCursorX, VarSplit.Selecteur [ Cpt ] . PercentEnd); if (Len < 5) { PRINT("2- if (Len < 5) {"); StatusBar_set_mess( NOTEBOOK_SPLIT, _STATUSBAR_WARN_, _("Temps inferieur a 5 secondes entre marqueur et curseur !") ); return; } // // g_memmove (dest, src, len) // // DEPLACER LES BUFFERS VERS L AVANT if (VarSplit.NbrSelecteurs < MAX_SELECTEURS_SPLIT) { for (IndiceDest = VarSplit.NbrSelecteurs; IndiceDest > Cpt; IndiceDest --) { IndiceSrc = IndiceDest -1; if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("\tg_memmove(%d, %d, %d);\n", IndiceDest, IndiceSrc, (gint)sizeof(SELECTEUR)); g_memmove(&VarSplit.Selecteur [ IndiceDest ], &VarSplit.Selecteur [ IndiceSrc ], sizeof(SELECTEUR)); } } // VALIDER LA NOUVELLE SELECTION ACTIVE VarSplit.SelecteurActif = Cpt +1; if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("VarSplit.SelecteurActif = %d\n",VarSplit.SelecteurActif); // AJOUTER UN SELECTEUR VarSplit.NbrSelecteurs ++; if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("VarSplit.NbrSelecteurs = %d\n",VarSplit.NbrSelecteurs); // REINDEXER LA NUMEROTATION for (IndiceSrc = 0; IndiceSrc < VarSplit.NbrSelecteurs; IndiceSrc ++) { VarSplit.Selecteur [ IndiceSrc ] . Nmr = IndiceSrc; if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("VarSplit.Selecteur [ %d ] . Nmr = %d\n",IndiceSrc, VarSplit.Selecteur [ IndiceSrc ] . Nmr); } if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("VarSplit.Selecteur [ %d ] . Nmr = %d\n",IndiceSrc, VarSplit.Selecteur [ IndiceSrc ] . Nmr); /* RESLOLU @Dzef VarSplit.Selecteur [ VarSplit.SelecteurActif ] . BeginPaint = CursorX; VarSplit.Selecteur [ VarSplit.SelecteurActif ] . PercentBegin = ((gdouble)CursorX / (gdouble)SplitSpectre_get_with() ) * 100.0; if (CursorX + 50 < VarSplit.SpectreW) CursorX += 50; else CursorX = VarSplit.SpectreW; VarSplit.Selecteur [ VarSplit.SelecteurActif ] . EndPaint = CursorX; VarSplit.Selecteur [ VarSplit.SelecteurActif ] . PercentEnd = ((gdouble)CursorX / (gdouble)SplitSpectre_get_with() ) * 100.0; */ // end 0 = end -1 VarSplit.Selecteur [ VarSplit.SelecteurActif ] . EndPaint = VarSplit.Selecteur [ VarSplit.SelecteurActif -1 ] . EndPaint; VarSplit.Selecteur [ VarSplit.SelecteurActif ] . PercentEnd = VarSplit.Selecteur [ VarSplit.SelecteurActif -1 ] . PercentEnd; // end -1 = cursorX VarSplit.Selecteur [ VarSplit.SelecteurActif -1 ] . EndPaint = CursorX; VarSplit.Selecteur [ VarSplit.SelecteurActif -1 ] . PercentEnd = ((gdouble)CursorX / (gdouble)SplitSpectre_get_with() ) * 100.0; // Begin = cursorX VarSplit.Selecteur [ VarSplit.SelecteurActif ] . BeginPaint = CursorX; VarSplit.Selecteur [ VarSplit.SelecteurActif ] . PercentBegin = ((gdouble)CursorX / (gdouble)SplitSpectre_get_with() ) * 100.0; break; } // // CAS 4 : CursorX IN END .. BEGIN // else if (CursorX > SplitSelector_get_pos_end (Cpt) && CursorX < SplitSelector_get_pos_begin (Cpt +1)) { PRINT("CAS 4 : CursorX IN END .. BEGIN"); // // -- // PercentCursorX = ((gdouble)CursorX / (gdouble)SplitSpectre_get_with() ) * 100.0; Len = SplitSelector_get_diff_sec (VarSplit.Selecteur [ Cpt ] . PercentEnd, PercentCursorX); if (Len < 5) { StatusBar_set_mess( NOTEBOOK_SPLIT, _STATUSBAR_WARN_, _("Temps inferieur a 5 secondes entre marqueur et curseur !") ); return; } Len = SplitSelector_get_diff_sec (PercentCursorX, VarSplit.Selecteur [ Cpt +1 ] . PercentBegin); if (Len < 5) { StatusBar_set_mess( NOTEBOOK_SPLIT, _STATUSBAR_WARN_, _("Temps inferieur a 5 secondes entre marqueur et curseur !") ); return; } // // g_memmove (dest, src, len) // // DEPLACER LES BUFFERS VERS L AVANT if (VarSplit.NbrSelecteurs < MAX_SELECTEURS_SPLIT) { for (IndiceDest = VarSplit.NbrSelecteurs; IndiceDest > Cpt; IndiceDest --) { IndiceSrc = IndiceDest -1; if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("\tg_memmove(%d, %d, %d);\n", IndiceDest, IndiceSrc, (gint)sizeof(SELECTEUR)); g_memmove(&VarSplit.Selecteur [ IndiceDest ], &VarSplit.Selecteur [ IndiceSrc ], sizeof(SELECTEUR)); } } // VALIDER LA NOUVELLE SELECTION ACTIVE VarSplit.SelecteurActif = Cpt +1; if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("VarSplit.SelecteurActif = %d\n",VarSplit.SelecteurActif); // AJOUTER UN SELECTEUR VarSplit.NbrSelecteurs ++; if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("VarSplit.NbrSelecteurs = %d\n",VarSplit.NbrSelecteurs); // REINDEXER LA NUMEROTATION for (IndiceSrc = 0; IndiceSrc < VarSplit.NbrSelecteurs; IndiceSrc ++) { VarSplit.Selecteur [ IndiceSrc ] . Nmr = IndiceSrc; if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("VarSplit.Selecteur [ %d ] . Nmr = %d\n",IndiceSrc, VarSplit.Selecteur [ IndiceSrc ] . Nmr); } if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("VarSplit.Selecteur [ %d ] . Nmr = %d\n",IndiceSrc, VarSplit.Selecteur [ IndiceSrc ] . Nmr); VarSplit.Selecteur [ VarSplit.SelecteurActif ] . BeginPaint = CursorX; VarSplit.Selecteur [ VarSplit.SelecteurActif ] . PercentBegin = ((gdouble)CursorX / (gdouble)SplitSpectre_get_with() ) * 100.0; VarSplit.Selecteur [ VarSplit.SelecteurActif ] . EndPaint = VarSplit.Selecteur [ VarSplit.SelecteurActif +1 ] . BeginPaint; VarSplit.Selecteur [ VarSplit.SelecteurActif ] . PercentEnd = VarSplit.Selecteur [ VarSplit.SelecteurActif +1 ] . PercentBegin; break; } } } // gtk_widget_queue_draw (VarSplit.AdrWidgetSpectre); } // // TRANSFORME 4 SECONDES EN PIXELS ET RETOUR // gint SplitSelector_get_4_secondes_to_int (void) { gint Cpt; gint sec; // gdouble dsec; gdouble TimeSongSec; gdouble Percent = 0.0; gint H, M, S; // gint hundr, C; gint Len = -1; if (NULL == VarSplit.Tags || VarSplit.NbrSelecteurs <= 0) { return (-1); } // PRINT_FUNC_LF(); // ACQUISITION DUREE TOTALE DU FICHIER EN SECONDES TimeSongSec = VarSplit.Tags->SecTime; for (Cpt = 0; ; Cpt ++) { sec = (gint) (((gdouble)TimeSongSec * (gdouble)Percent) / 100.0); // dsec = ((gdouble)TimeSongSec *(gdouble)Percent) / 100.0; // hundr = ((gdouble)dsec - (gdouble)sec) * 100.0; H = (sec / 60) / 60; M = (sec / 60) % 60; S = sec % 60; // C = hundr; if (H == 0 && M == 0 && S == 5) { Len = (gint)(((gdouble)SplitSpectre_get_with() * Percent) / 100.0); break; } if (Cpt > 100000 && S == 0) break; Percent += 0.001; } return (Len); } // // TRANSFORME 4 SECONDES EN PIXELS ET RETOUR // gdouble SplitSelector_get_percent_for_x_secondes (gint p_secondes) { gint Cpt; gint sec; // gdouble dsec; gdouble TimeSongSec; gdouble Percent = 0.0; gint H, M, S; // gint hundr, C; if (NULL == VarSplit.Tags || VarSplit.NbrSelecteurs <= 0) { return (-1); } // PRINT_FUNC_LF(); // ACQUISITION DUREE TOTALE DU FICHIER EN SECONDES TimeSongSec = VarSplit.Tags->SecTime; for (Cpt = 0; ; Cpt ++) { sec = (gint) (((gdouble)TimeSongSec * (gdouble)Percent) / 100.0); // dsec = ((gdouble)TimeSongSec *(gdouble)Percent) / 100.0; // hundr = ((gdouble)dsec - (gdouble)sec) * 100.0; H = (sec / 60) / 60; M = (sec / 60) % 60; S = sec % 60; // C = hundr; if (H == 0 && M == 0 && S == p_secondes) { return (Percent); } if (Cpt > 100000 && S == 0) break; Percent += 0.001; } return (Percent); } // // void SplitSelector_get_pos (void) { gint Cpt; for (Cpt = 0; Cpt < MAX_SELECTEURS_SPLIT; Cpt ++) { VarSplit.Selecteur [ Cpt ] . BeginPaint = (gint)(((gdouble)SplitSpectre_get_with() * VarSplit.Selecteur [ Cpt ] . PercentBegin) / 100.0); VarSplit.Selecteur [ Cpt ] . EndPaint = (gint)(((gdouble)SplitSpectre_get_with() * VarSplit.Selecteur [ Cpt ] . PercentEnd) / 100.0); } } // // TODO : 4 SECONDES EST LA DUREE MINIMUM POUR UNE PLAGE // void SplitSelector_set_pos_begin (gint p_begin) { gint TimeForSec = SplitSelector_get_4_secondes_to_int (); gint With = SplitSpectre_get_with(); // PRINT_FUNC_LF(); if (-1 == TimeForSec) return; if (p_begin < 0) p_begin = 0; if (p_begin > With) p_begin = With; if (p_begin + TimeForSec >= With) return; if (VarSplit.SelecteurActif > 0) { // VERS LE PRECEDENT if (p_begin < VarSplit.Selecteur [ VarSplit.SelecteurActif -1 ] . BeginPaint + TimeForSec) { p_begin = VarSplit.Selecteur [ VarSplit.SelecteurActif -1 ] . BeginPaint + TimeForSec; VarSplit.Selecteur [ VarSplit.SelecteurActif -1 ] . PercentEnd = ((gdouble)p_begin / (gdouble)With ) * 100.0; } if (p_begin < VarSplit.Selecteur [ VarSplit.SelecteurActif -1 ] . EndPaint) { VarSplit.Selecteur [ VarSplit.SelecteurActif -1 ] . PercentEnd = ((gdouble)p_begin / (gdouble)With ) * 100.0; } } // VERS LE SUIVANT if (VarSplit.SelecteurActif < VarSplit.NbrSelecteurs -1 && p_begin > VarSplit.Selecteur [ VarSplit.SelecteurActif +1 ] . BeginPaint - TimeForSec) { p_begin = VarSplit.Selecteur [ VarSplit.SelecteurActif +1 ] . BeginPaint - TimeForSec; } if (p_begin > VarSplit.Selecteur [ VarSplit.SelecteurActif ] . EndPaint - TimeForSec) { VarSplit.Selecteur [ VarSplit.SelecteurActif ] . EndPaint = p_begin + TimeForSec; VarSplit.Selecteur [ VarSplit.SelecteurActif ] . PercentEnd = ((gdouble)(p_begin + TimeForSec) / (gdouble)With ) * 100.0; } VarSplit.Selecteur [ VarSplit.SelecteurActif ] . PercentBegin = ((gdouble)p_begin / (gdouble)With ) * 100.0; SplitSelector_get_pos (); } // // TODO : 4 SECONDES EST LA DUREE MINIMUM POUR UNE PLAGE // void SplitSelector_set_pos_end (gint p_end) { gint TimeForSec = SplitSelector_get_4_secondes_to_int(); gint With = SplitSpectre_get_with(); // PRINT_FUNC_LF(); if (-1 == TimeForSec) return; if (p_end < 0) p_end = 0; if( p_end > With ) p_end = With - 2; // LE SELECTEUR DE FIN DOIT BUTTER SUR LE SELECTEUR SUIVANT if (VarSplit.NbrSelecteurs -1 > VarSplit.SelecteurActif) { if (p_end > VarSplit.Selecteur [ VarSplit.SelecteurActif +1 ] . BeginPaint) { p_end = VarSplit.Selecteur [ VarSplit.SelecteurActif +1 ] . BeginPaint; } } // BUTTEE SUR SELECTEUR DE DEBUT // CHEVAUCHEMENT D INDEX INTERDIT ! PREVOIR ESPACE DE 4 SECONDES if (p_end < VarSplit.Selecteur [ VarSplit.SelecteurActif ] . BeginPaint + TimeForSec) p_end = VarSplit.Selecteur [ VarSplit.SelecteurActif ] . BeginPaint + TimeForSec; VarSplit.Selecteur [ VarSplit.SelecteurActif ] . EndPaint = p_end; VarSplit.Selecteur [ VarSplit.SelecteurActif ] . PercentEnd = ((gdouble)VarSplit.Selecteur [ VarSplit.SelecteurActif ] . EndPaint / (gdouble)With ) * 100.0; } // // gint SplitSelector_get_pos_begin (gint p_Sel) { SplitSelector_get_pos (); return( VarSplit.Selecteur [ p_Sel ] . BeginPaint ); } // // gint SplitSelector_get_pos_end (gint p_Sel) { SplitSelector_get_pos (); return (VarSplit.Selecteur [ p_Sel ] . EndPaint); } // // gdouble SplitSelector_get_percent_begin (gint p_Sel) { SplitSelector_get_pos (); return (VarSplit.Selecteur [ p_Sel ] . PercentBegin); } // // gdouble SplitSelector_get_percent_end (gint p_Sel) { SplitSelector_get_pos (); return (VarSplit.Selecteur [ p_Sel ] . PercentEnd); } // // gint SplitSelector_get_pos_play (void) { return ((gint)(((gdouble)SplitSpectre_get_with() * VarSplit.PercentActivePlay) / 100.0)); } // // gboolean SplitSelector_cursor_in_box_play (gint p_cursor_x, gint p_cursor_y) { if (VarSplit.PercentActivePlay >= 0.0) { gint SelPlay = SplitSelector_get_pos_play (); if (p_cursor_x > SelPlay -6 && p_cursor_x < SelPlay +7) if (p_cursor_y > VARSPLIT_SPECTRE_Y + VARSPLIT_SPECTRE_H -12 && p_cursor_y < VARSPLIT_SPECTRE_Y + VARSPLIT_SPECTRE_H) return (TRUE); } return (FALSE); } // // gboolean SplitSelector_cursor_in_line_play (gint p_cursor_x, gint p_cursor_y) { if (VarSplit.PercentActivePlay >= 0.0) { gint SelPlay = SplitSelector_get_pos_play (); if (p_cursor_x == SelPlay || p_cursor_x +1 == SelPlay || p_cursor_x -1 == SelPlay) { if (p_cursor_y > VARSPLIT_SPECTRE_Y && p_cursor_y < VARSPLIT_SPECTRE_Y + VARSPLIT_SPECTRE_H) return (TRUE); } } return (FALSE); } // // void SplitSelector_set_pos_play (gint p_play) { gint With = SplitSpectre_get_with(); if( p_play < 0 ) p_play = 0; if( p_play > With ) p_play = With; VarSplit.PercentActivePlay = ((gdouble)p_play / (gdouble)With ) * 100.0; } xcfa-4.3.6/src/file_wav.c0000644000175000017500000007573612122677054012145 00000000000000 /* * file : file_wav.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #include #include #include #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "configuser.h" #include "dragNdrop.h" #include "fileselect.h" #include "file.h" #include "popup.h" #include "statusbar.h" VAR_FILE_WAV var_file_wav; enum { COLUMN_FILEWAV_HERTZ = 0, COLUMN_FILEWAV_NEW_HERTZ, COLUMN_FILEWAV_VOIE, COLUMN_FILEWAV_NEW_VOIE, COLUMN_FILEWAV_BITS, COLUMN_FILEWAV_NEW_BITS, COLUMN_FILEWAV_NAME, COLUMN_FILEWAV_COLOR, COLUMN_FILEWAV_POINTER_STRUCT, COLUMN_FILE_NUM }; enum { NUM_TREE_FILEWAV_Frequence = 0, NUM_TREE_FILEWAV_FREQUENCE, NUM_TREE_FILEWAV_Piste, NUM_TREE_FILEWAV_PISTE, NUM_TREE_FILEWAV_Quantification, NUM_TREE_FILEWAV_QUANTIFICATION, NUM_TREE_FILEWAV_Nom, NUM_TREE_FILEWAV_ALL_COLUMN }; // // gboolean FileWav_get_line_is_selected (void) { GtkTreeModel *model = NULL; GList *list = NULL; if (var_file_wav.Adr_TreeView == NULL) return (FALSE); if (var_file_wav.Adr_Line_Selected == NULL) return (FALSE); model = gtk_tree_view_get_model (GTK_TREE_VIEW(var_file_wav.Adr_TreeView)); list = gtk_tree_selection_get_selected_rows (var_file_wav.Adr_Line_Selected, &model); return (list ? TRUE : FALSE); } // // gboolean FileWav_get_bool_conversion (void) { GList *List = NULL; INFO_WAV *info = NULL; DETAIL *detail = NULL; List = g_list_first (entetefile); while (List) { if (NULL != (detail = (DETAIL *)List->data)) { if (FILE_IS_WAV == detail->type_infosong_file_is) { if (NULL != (info = (INFO_WAV *)detail->info) && TRUE == info->BoolConv) return (TRUE); } } List = g_list_next (List); } return (FALSE); } // CHANGEMENT DES PARAMETRES: freq, voie, bits SI PARAM <> NULL // void FileWav_set_flag_buttons (void) { gboolean BoolButtonsAudio [ 3 ]; // LECTURE BoolButtonsAudio [ 0 ] = BoolButtonsAudio [ 1 ] = FileWav_get_line_is_selected (); BoolButtonsAudio [ 2 ] = FileWav_get_bool_conversion (); gtk_widget_set_sensitive (GTK_WIDGET (GLADE_GET_OBJECT("button_del_file")), BoolButtonsAudio [ 0 ]); // gtk_widget_set_sensitive (GTK_WIDGET (GLADE_GET_OBJECT("spinbutton_frequence_wav")), BoolButtonsAudio [ 1 ]); // gtk_widget_set_sensitive (GTK_WIDGET (GLADE_GET_OBJECT("combobox_voie_wav")), BoolButtonsAudio [ 1 ]); // gtk_widget_set_sensitive (GTK_WIDGET (GLADE_GET_OBJECT("combobox_bit_wav")), BoolButtonsAudio [ 1 ]); gtk_widget_set_sensitive (GTK_WIDGET (GLADE_GET_OBJECT("button_apply_wav")), BoolButtonsAudio [ 2 ]); } // CHANGEMENT DES PARAMETRES: freq, voie, bits SI PARAM <> NULL // void FileWav_change_parameters (void) { GtkTreeIter iter; DETAIL *detail = NULL; INFO_WAV *info = NULL; gchar *NewHertz = NULL; gchar *NewVoie = NULL; gchar *NewBits = NULL; gboolean valid; valid = gtk_tree_model_get_iter_first (var_file_wav.Adr_Tree_Model, &iter); while (valid) { gtk_tree_model_get (var_file_wav.Adr_Tree_Model, &iter, COLUMN_FILEWAV_POINTER_STRUCT, &detail, -1); if (NULL != detail) { if (FILE_IS_WAV == detail->type_infosong_file_is) { info = (INFO_WAV *)detail->info; // Et mettre le contenu a jour gtk_list_store_set (var_file_wav.Adr_List_Store, &iter, COLUMN_FILEWAV_HERTZ, info->hertz, -1); gtk_list_store_set (var_file_wav.Adr_List_Store, &iter, COLUMN_FILEWAV_VOIE, info->voie, -1); gtk_list_store_set (var_file_wav.Adr_List_Store, &iter, COLUMN_FILEWAV_BITS, info->bits, -1); // Et mettre le contenu a jour NewHertz = g_strdup_printf ("%s", info->NewHertz); NewVoie = g_strdup_printf ("%s", info->NewVoie); NewBits = g_strdup_printf ("%s", info->NewBits); gtk_list_store_set (var_file_wav.Adr_List_Store, &iter, COLUMN_FILEWAV_NEW_HERTZ, NewHertz, -1); gtk_list_store_set (var_file_wav.Adr_List_Store, &iter, COLUMN_FILEWAV_NEW_VOIE, NewVoie, -1); gtk_list_store_set (var_file_wav.Adr_List_Store, &iter, COLUMN_FILEWAV_NEW_BITS, NewBits, -1); g_free (NewHertz); NewHertz = NULL; g_free (NewVoie); NewVoie = NULL; g_free (NewBits); NewBits = NULL; } valid = gtk_tree_model_iter_next (var_file_wav.Adr_Tree_Model, &iter); } } } // MARQUER LES LIGNES POUR LA DESTRUCTION // gboolean FileWav_del_file_clicked (void) { GtkTreeIter iter; GtkTreeModel *model = NULL; GList *BeginList = NULL; GList *list = NULL; GtkTreePath *path; DETAIL *detail = NULL; gboolean BoolPrint = FALSE; // RECUP. LIGNES EN SELECTION POUR DESTRUCTION model = gtk_tree_view_get_model (GTK_TREE_VIEW(var_file_wav.Adr_TreeView)); if ((BeginList = gtk_tree_selection_get_selected_rows (var_file_wav.Adr_Line_Selected, &model))) { BoolPrint = TRUE; list = g_list_first (BeginList); while (list) { if ((path = list->data)) { gtk_tree_model_get_iter (model, &iter, path); gtk_tree_model_get (var_file_wav.Adr_Tree_Model, &iter, COLUMN_FILEWAV_POINTER_STRUCT, &detail, -1); // MARQUER LA LIGNE DU GLIST A DETRUIRE AVANT LE REAFFICHAGE if (NULL != detail) detail->BoolRemove = TRUE; } list = g_list_next (list); } // gtk_tree_selection_unselect_all (var_file_wav.Adr_Line_Selected); } return (BoolPrint); } // // void FileWav_affiche_glist (void) { DETAIL *detail = NULL; GList *List = NULL; GtkTreeIter iter; GtkAdjustment *Adj = NULL; gdouble AdjValue; gint Line = 0; // LIGNE EN COURS INFO_WAV *info = NULL; gchar *NewHertz = NULL; gchar *NewVoie = NULL; gchar *NewBits = NULL; gchar *NameDest = NULL; gint NumLineSelected = -1; gboolean BoolNumLineSelected = FALSE; // RECUP SELECTION // NumLineSelected = libutils_get_first_line_is_selected( var_file_wav.Adr_Line_Selected, var_file_wav.Adr_Tree_Model ); gtk_tree_selection_unselect_all (var_file_wav.Adr_Line_Selected); // DELETE TREEVIEW // gtk_list_store_clear (GTK_LIST_STORE (var_file_wav.Adr_List_Store)); // COORDONNEES POUR UN REAJUSTEMENT VISUEL DE LA PAGE // Adj = gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (var_file_wav.Adr_scroll)); AdjValue = gtk_adjustment_get_value (Adj); // AFFICHAGE DE LA LISTE // Line = 0; List = g_list_first (entetefile); while (List) { if (NULL != ((detail = (DETAIL *)List->data)) && FALSE == detail->BoolRemove) { if (FILE_IS_WAV != detail->type_infosong_file_is) { List = g_list_next (List); continue; } if (NULL == (info = (INFO_WAV *)detail->info)) { List = g_list_next (List); continue; } NewHertz = g_strdup_printf ("%s", info->NewHertz); NewVoie = g_strdup_printf ("%s", info->NewVoie); NewBits = g_strdup_printf ("%s", info->NewBits); NameDest = libutils_get_name_without_ext_with_amp (detail->namefile); gtk_list_store_append (var_file_wav.Adr_List_Store, &iter); gtk_list_store_set (var_file_wav.Adr_List_Store, &iter, COLUMN_FILEWAV_HERTZ, info->hertz, COLUMN_FILEWAV_NEW_HERTZ, NewHertz, COLUMN_FILEWAV_VOIE, info->voie, COLUMN_FILEWAV_NEW_VOIE, NewVoie, COLUMN_FILEWAV_BITS, info->bits, COLUMN_FILEWAV_NEW_BITS, NewBits, COLUMN_FILEWAV_NAME, NameDest, COLUMN_FILEWAV_COLOR, &YellowColor, COLUMN_FILEWAV_POINTER_STRUCT, detail, -1); g_free (NameDest); NameDest = NULL; g_free (NewHertz); NewHertz = NULL; g_free (NewVoie); NewVoie = NULL; g_free (NewBits); NewBits = NULL; // AFFICHE LES EVENTUELLES LIGNES EN SELECTION // if( NumLineSelected == Line ) { gtk_tree_selection_select_iter (var_file_wav.Adr_Line_Selected, &iter); BoolNumLineSelected = TRUE; } Line ++; } List = g_list_next (List); } // SUPPRESSON TABLEAU DES EVENTUELLES LIGNES EN SELECTION // if( NumLineSelected == -1 ) { if (gtk_tree_model_get_iter_first (var_file_wav.Adr_Tree_Model, &iter)) { gtk_tree_selection_select_iter (var_file_wav.Adr_Line_Selected, &iter); BoolNumLineSelected = TRUE; } } if( NumLineSelected > 0 && NULL != entetefile && BoolNumLineSelected == FALSE ) { gtk_tree_selection_select_iter (var_file_wav.Adr_Line_Selected, &iter); } // REAJUSTEMENT DE LA LISTE // gtk_adjustment_set_value (Adj, AdjValue); gtk_scrolled_window_set_vadjustment (GTK_SCROLLED_WINDOW (var_file_wav.Adr_scroll), Adj); FileWav_set_flag_buttons (); } // CHANGEMENT DES PARAMETRES: freq, voie, ou bits SI <> DE NULL // void FileWav_set_change_parameters_is_selected (gchar *freq, gchar *voie, gchar *bits) { GtkTreeIter iter; GtkTreeModel *model = NULL; GtkTreePath *path; DETAIL *detail = NULL; GList *list = NULL; gchar *Str = NULL; INFO_WAV *info = NULL; model = gtk_tree_view_get_model (GTK_TREE_VIEW(var_file_wav.Adr_TreeView)); list = gtk_tree_selection_get_selected_rows (var_file_wav.Adr_Line_Selected, &model); list = g_list_first (list); while (list) { if (NULL != (path = list->data)) { /* prend le numero de la structure */ gtk_tree_model_get_iter (model, &iter, path); gtk_tree_model_get (var_file_wav.Adr_Tree_Model, &iter, COLUMN_FILEWAV_POINTER_STRUCT, &detail, -1); if (NULL == detail) { list = g_list_next (list); continue; } if (NULL == (info = (INFO_WAV *)detail->info)) { list = g_list_next (list); continue; } /* Et mettre le contenu a jour */ if (NULL != freq) { if (info->NewHertz) { g_free (info->NewHertz); info->NewHertz = NULL; } // VALEURS PAR DEFAUT if (0 == strcmp (freq, "-1")) { info->NewHertz = g_strdup (info->hertz); } else { info->NewHertz = g_strdup (freq); } if (strcmp (info->hertz, info->NewHertz) == 0) Str = g_strdup_printf ("%s", info->NewHertz); else Str = g_strdup_printf ("%s", info->NewHertz); gtk_list_store_set (var_file_wav.Adr_List_Store, &iter, COLUMN_FILEWAV_NEW_HERTZ, Str, -1); g_free (Str); Str = NULL; } if (NULL != voie) { if (info->NewVoie) { g_free (info->NewVoie); info->NewVoie = NULL; } // VALEURS PAR DEFAUT if (0 == strcmp (voie, "-1")) { info->NewVoie = g_strdup (info->voie); } else { info->NewVoie = g_strdup (voie); } if (0 == strcmp (info->voie, info->NewVoie)) Str = g_strdup_printf ("%s", info->NewVoie); else Str = g_strdup_printf ("%s", info->NewVoie); gtk_list_store_set (var_file_wav.Adr_List_Store, &iter, COLUMN_FILEWAV_NEW_VOIE, Str, -1); g_free (Str); Str = NULL; } if (NULL != bits) { if (info->NewBits) { g_free (info->NewBits); info->NewBits = NULL; } // VALEURS PAR DEFAUT if (0 == strcmp (bits, "-1")) { info->NewBits = g_strdup (info->bits); } else { info->NewBits = g_strdup (bits); } if (strcmp (info->bits, info->NewBits) == 0) Str = g_strdup_printf ("%s", info->NewBits); else Str = g_strdup_printf ("%s", info->NewBits); gtk_list_store_set (var_file_wav.Adr_List_Store, &iter, COLUMN_FILEWAV_NEW_BITS, Str, -1); g_free (Str); Str = NULL; } info->BoolConv = FALSE; if ( atoi (info->hertz) != atoi (info->NewHertz) || atoi (info->voie) != atoi (info->NewVoie) || atoi (info->bits) != atoi (info->NewBits)) { info->BoolConv = TRUE; } } list = g_list_next (list); } FileWav_set_flag_buttons (); } // // void FileWav_changed_selection_row (GtkTreeSelection *selection, gpointer data) { var_file_wav.Adr_Line_Selected = selection; FileWav_set_flag_buttons (); } // AFFICHAGE DU NOM COMPLET DU FICHIER SI SURVOL PAR LE CURSEUR SOURIS DU CHAMPS 'Nom' // gboolean FileWav_event (GtkWidget *treeview, GdkEvent *event, gpointer user_data) { gint x, y; GdkModifierType state; GtkTreePath *path; GtkTreeViewColumn *column; GtkTreeViewColumn *ColumnDum; GtkTreeIter iter; GtkTreeModel *model = (GtkTreeModel *)user_data; DETAIL *detail = NULL; gint Pos_X = 0, Pos_Y = 0; gint i; gboolean BoolSelectColNom = FALSE; gboolean BoolSelectColFREQUENCE = FALSE; gboolean BoolSelectColPISTE = FALSE; gboolean BoolSelectColQUANTIFICATION = FALSE; // SI PAS DANS LE TREEVIEW gdk_window_get_pointer (((GdkEventButton*)event)->window, &x, &y, &state); if (FALSE == gtk_tree_view_get_path_at_pos (GTK_TREE_VIEW(treeview), x, y, &path, &column, &Pos_X, &Pos_Y)) { StatusBar_set_mess( NOTEBOOK_FICHIERS, _STATUSBAR_SIMPLE_, " "); StatusBar_puts( ); return (FALSE); } // RECUPERATION DE LA STRUCTURE POINTEE PAR LE CURSEUR SOURIS gtk_tree_model_get_iter (model, &iter, path); gtk_tree_model_get (var_file_wav.Adr_Tree_Model, &iter, COLUMN_FILEWAV_POINTER_STRUCT, &detail, -1); if (NULL == detail) { return (FALSE); } // DANS TOUS LES CAS, EFFACE LA BARRE DE TACHE StatusBar_set_mess( NOTEBOOK_FICHIERS, _STATUSBAR_SIMPLE_, ""); /* IDEE POUR REMPLACER LES COMPARAISON PAR NOMS. EXEMPLES: * PLAY = 0 * TRASH = 1 * TYPE = 2 * etc ... * NOTA: * CET ALGO PERMET DE RENOMMER AISEMENT LES ENTETES DE COLONNES DANS TOUTES LES LANGUES: FR, EN, DE, ... */ for (i = 0; i < NUM_TREE_FILEWAV_ALL_COLUMN; i ++) { ColumnDum = gtk_tree_view_get_column (GTK_TREE_VIEW(treeview), i); if (ColumnDum == column) { switch ( i ) { case NUM_TREE_FILEWAV_FREQUENCE : BoolSelectColFREQUENCE = TRUE; break; case NUM_TREE_FILEWAV_PISTE : BoolSelectColPISTE = TRUE; break; case NUM_TREE_FILEWAV_QUANTIFICATION : BoolSelectColQUANTIFICATION = TRUE; break; case NUM_TREE_FILEWAV_Nom : BoolSelectColNom = TRUE; break; // default: return (FALSE); default: break; } /* La colonne est trouvee ... sortie de la boucle */ break; } } if (TRUE == BoolSelectColFREQUENCE) { StatusBar_set_mess( NOTEBOOK_FICHIERS, _STATUSBAR_SIMPLE_, _("(Click Droit = Menu) / Choix de la frequence")); } else if (TRUE == BoolSelectColPISTE) { StatusBar_set_mess( NOTEBOOK_FICHIERS, _STATUSBAR_SIMPLE_, _("(Click Droit = Menu) / Choix du nombre de pistes (voies)")); } else if (TRUE == BoolSelectColQUANTIFICATION) { StatusBar_set_mess( NOTEBOOK_FICHIERS, _STATUSBAR_SIMPLE_, _("(Click Droit = Menu) / Choix du codage en nombre de bits")); } else if (TRUE == BoolSelectColNom) { StatusBar_set_mess( NOTEBOOK_FICHIERS, _STATUSBAR_SIMPLE_, detail->namefile); } else { StatusBar_set_mess( NOTEBOOK_FICHIERS, _STATUSBAR_SIMPLE_, " "); } StatusBar_puts( ); return (FALSE); } // // static void FileWav_drag_data_received (GtkWidget *widget, GdkDragContext *drag_context, gint x, gint y, GtkSelectionData *data, guint info, guint time) { /* Une copie ne peut aller vers elle meme !!! */ if (gtk_drag_get_source_widget(drag_context) != widget) { dragndrop_list_drag_data (widget, (gchar *)data->data); } } // // static void FileWav_drag_data_drop (GtkWidget *widget, GdkDragContext *dc, GtkSelectionData *selection_data, guint info, guint t, gpointer data) { GtkTreeIter iter; GtkTreeModel *model = NULL; GList *begin_list = NULL; GList *list = NULL; GtkTreePath *path; DETAIL *detail = NULL; gchar *text = NULL; model = gtk_tree_view_get_model (GTK_TREE_VIEW(widget)); begin_list = gtk_tree_selection_get_selected_rows (var_file_wav.Adr_Line_Selected, &model); list = g_list_first (begin_list); while (list) { if ((path = list->data)) { gtk_tree_model_get_iter (model, &iter, path); gtk_tree_model_get (var_file_wav.Adr_Tree_Model, &iter, COLUMN_FILEWAV_POINTER_STRUCT, &detail, -1); // DEBUG DRAG AND DROP // [ Tue, 03 May 2011 17:39:08 +0200 ] // XCFA-4.1.0 // ----------------------------------------------------------- // OLD CODE: // text = g_strdup( detail->namefile ); // NEW_CODE: text = g_strdup_printf( "file://%s", detail->namefile ); gdk_drag_status (dc, GDK_ACTION_COPY, t); gtk_selection_data_set( selection_data, // GDK_SELECTION_TYPE_STRING, selection_data->target, 8, (guchar *)text, strlen( text ) ); g_free (text); text = NULL; } list = g_list_next (list); } } // // gboolean FileWav_key_press_event (GtkWidget *widget, GdkEventKey *event, gpointer user_data) { if( TRUE == keys.BoolGDK_Control_A ) { // CONTROL_A gtk_tree_selection_unselect_all (var_file_wav.Adr_Line_Selected); gtk_tree_selection_select_all (var_file_wav.Adr_Line_Selected); } if (keys.keyval == GDK_Delete) { GtkTreeIter iter; if (gtk_tree_model_get_iter_first (var_file_wav.Adr_Tree_Model, &iter)) { on_file_button_del_file_clicked (NULL, NULL); return (FALSE); } } return (TRUE); } // // gboolean FileWav_event_click_mouse (GtkWidget *treeview, GdkEventButton *event, gpointer data) { gboolean BoolSelectColFREQUENCE = FALSE; gboolean BoolSelectColPISTE = FALSE; gboolean BoolSelectColQUANTIFICATION = FALSE; GtkTreePath *path; GtkTreeViewColumn *column; GtkTreeViewColumn *ColumnDum; gint i; GtkTreeIter iter; GtkTreeModel *model = (GtkTreeModel *)data; // GdkPixbuf *Pixbuf = NULL; DETAIL *detail = NULL; gint Pos_X = 0, Pos_Y = 0; // gboolean bool_key_Control = (keys.keyval == GDK_Control_L || keys.keyval == GDK_Control_R); // gboolean bool_key_Shift = (keys.keyval == GDK_Shift_L || keys.keyval == GDK_Shift_R); // gboolean bool_key_Release = (bool_key_Control == FALSE && bool_key_Shift == FALSE); // gboolean bool_click_gauche = (event->button == 1); gboolean bool_click_droit = (event->button == 3); /* Single clicks only */ if (event->type != GDK_BUTTON_PRESS) return (FALSE); /* Si pas de selection a cet endroit retour */ if (!gtk_tree_view_get_path_at_pos (GTK_TREE_VIEW(treeview), (gint)event->x, (gint)event->y, &path, &column, &Pos_X, &Pos_Y)) return (FALSE); // RECCPERATION DE LA STRUCTURE gtk_tree_model_get_iter (model, &iter, path); gtk_tree_model_get (var_file_wav.Adr_Tree_Model, &iter, COLUMN_FILEWAV_POINTER_STRUCT, &detail, -1); if (NULL == detail) return (FALSE); /* IDEE POUR REMPLACER LES COMPARAISON PAR NOMS. EXEMPLES: * PLAY = 0 * TRASH = 1 * TYPE = 2 * etc ... * NOTA: * CET ALGO PERMET DE RENOMMER AISEMENT LES ENTETES DE COLONNES DANS TOUTES LES LANGUES: FR, EN, DE, ... */ for (i = 0; i < NUM_TREE_FILEWAV_ALL_COLUMN; i ++) { ColumnDum = gtk_tree_view_get_column (GTK_TREE_VIEW(treeview), i); if (ColumnDum == column) { /* g_print ("\tNUM IS: %d\n", i); */ switch ( i ) { case NUM_TREE_FILEWAV_FREQUENCE : BoolSelectColFREQUENCE = TRUE; break; case NUM_TREE_FILEWAV_PISTE : BoolSelectColPISTE = TRUE; break; case NUM_TREE_FILEWAV_QUANTIFICATION : BoolSelectColQUANTIFICATION = TRUE; break; default: return (FALSE); } /* La colonne est trouvee ... sortie de la boucle */ break; } } if (bool_click_droit && BoolSelectColFREQUENCE) { popup_file_wav_frequence (detail); // AUTORISE LE POPUP SUR UNE SELECTION MULTIPLE var_file_wav.Adr_Line_Selected = gtk_tree_view_get_selection( GTK_TREE_VIEW(treeview) ); gtk_tree_selection_select_path( var_file_wav.Adr_Line_Selected, path ); return TRUE; } else if (bool_click_droit && BoolSelectColPISTE) { popup_file_wav_piste (detail); // AUTORISE LE POPUP SUR UNE SELECTION MULTIPLE var_file_wav.Adr_Line_Selected = gtk_tree_view_get_selection( GTK_TREE_VIEW(treeview) ); gtk_tree_selection_select_path( var_file_wav.Adr_Line_Selected, path ); return TRUE; } else if (bool_click_droit && BoolSelectColQUANTIFICATION) { popup_file_wav_quantification (detail); // AUTORISE LE POPUP SUR UNE SELECTION MULTIPLE var_file_wav.Adr_Line_Selected = gtk_tree_view_get_selection( GTK_TREE_VIEW(treeview) ); gtk_tree_selection_select_path( var_file_wav.Adr_Line_Selected, path ); return TRUE; } return (FALSE); } // // static void FileWav_add_columns_scrolledwindow (GtkTreeView *treeview) { GtkTreeModel *model = gtk_tree_view_get_model (treeview); GtkCellRenderer *renderer; GtkTreeViewColumn *column; // SIGNAL : 'event' g_signal_connect(G_OBJECT(treeview), "event", (GCallback) FileWav_event, model); // SIGNAL : 'Gestion click click' g_signal_connect(G_OBJECT(treeview), "button-press-event", (GCallback) FileWav_event_click_mouse, model); // SIGNAL : Ligne actuellement selectionnee 'changed' var_file_wav.Adr_Line_Selected = gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)); g_signal_connect(G_OBJECT(var_file_wav.Adr_Line_Selected), "changed", G_CALLBACK(FileWav_changed_selection_row), "1"); // SIGNAL 'key-press-event' g_signal_connect(G_OBJECT(treeview), "key-press-event", (GCallback) FileWav_key_press_event, model); // Drag and drop support // SIGNAL : 'drag-data-received' gtk_drag_dest_set (GTK_WIDGET (treeview), GTK_DEST_DEFAULT_MOTION | GTK_DEST_DEFAULT_DROP, drag_types, n_drag_types, GDK_ACTION_COPY| GDK_ACTION_MOVE ); g_signal_connect(G_OBJECT(treeview), "drag-data-received", G_CALLBACK(FileWav_drag_data_received), NULL); gtk_drag_source_set( GTK_WIDGET(treeview), GDK_BUTTON1_MASK | GDK_BUTTON2_MASK | GTK_DEST_DEFAULT_MOTION | GTK_DEST_DEFAULT_DROP, drag_types, n_drag_types, GDK_ACTION_MOVE | GDK_ACTION_COPY | GDK_ACTION_DEFAULT ); g_signal_connect(G_OBJECT(treeview), "drag-data-get", G_CALLBACK(FileWav_drag_data_drop), treeview); // COLUMN_FILEWAV_HERTZ renderer = gtk_cell_renderer_text_new (); g_object_set (renderer, "xalign", 0.5, NULL); var_file_wav.Adr_ColumnFileWavHertz = column = gtk_tree_view_column_new_with_attributes (_("Frequence"), renderer, "text", COLUMN_FILEWAV_HERTZ, NULL); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column), GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 100); gtk_tree_view_column_set_alignment (GTK_TREE_VIEW_COLUMN (column), 0.5); /* TRIS */ gtk_tree_view_column_set_sort_column_id (column, COLUMN_FILEWAV_HERTZ); gtk_tree_view_append_column (treeview, column); // COLUMN_FILEWAV_NEW_HERTZ renderer = gtk_cell_renderer_text_new (); g_object_set (renderer, "xalign", 0.5, NULL); var_file_wav.Adr_ColumnFileWavNewHertz = column = gtk_tree_view_column_new_with_attributes (_("FREQUENCE"), renderer, "markup", COLUMN_FILEWAV_NEW_HERTZ, NULL); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column), GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 90); gtk_tree_view_column_set_alignment (GTK_TREE_VIEW_COLUMN (column), 0.5); gtk_tree_view_append_column (treeview, column); // COLUMN_FILEWAV_VOIE renderer = gtk_cell_renderer_text_new (); g_object_set (renderer, "xalign", 0.5, NULL); var_file_wav.Adr_ColumnFileWavVoie = column = gtk_tree_view_column_new_with_attributes (_("Piste"), renderer, "text", COLUMN_FILEWAV_VOIE, NULL); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column), GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 100); gtk_tree_view_column_set_alignment (GTK_TREE_VIEW_COLUMN (column), 0.5); /* TRIS */ gtk_tree_view_column_set_sort_column_id (column, COLUMN_FILEWAV_VOIE); gtk_tree_view_append_column (treeview, column); // COLUMN_FILEWAV_NEW_VOIE renderer = gtk_cell_renderer_text_new (); g_object_set (renderer, "xalign", 0.5, NULL); var_file_wav.Adr_ColumnFileWavNewVoie = column = gtk_tree_view_column_new_with_attributes (_("PISTE"), renderer, "markup", COLUMN_FILEWAV_NEW_VOIE, NULL); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column), GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 100); gtk_tree_view_column_set_alignment (GTK_TREE_VIEW_COLUMN (column), 0.5); gtk_tree_view_append_column (treeview, column); // COLUMN_FILEWAV_BITS renderer = gtk_cell_renderer_text_new (); g_object_set (renderer, "xalign", 0.5, NULL); var_file_wav.Adr_ColumnFileWavBits = column = gtk_tree_view_column_new_with_attributes (_("Quantification"), renderer, "text", COLUMN_FILEWAV_BITS, NULL); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column), GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 120); gtk_tree_view_column_set_alignment (GTK_TREE_VIEW_COLUMN (column), 0.5); /* TRIS */ gtk_tree_view_column_set_sort_column_id (column, COLUMN_FILEWAV_BITS); gtk_tree_view_append_column (treeview, column); // COLUMN_FILEWAV_NEW_BITS renderer = gtk_cell_renderer_text_new (); g_object_set (renderer, "xalign", 0.5, NULL); var_file_wav.Adr_ColumnFileWavNewBits = column = gtk_tree_view_column_new_with_attributes (_("QUANTIFICATION"), renderer, "markup", COLUMN_FILEWAV_NEW_BITS, NULL); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column), GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 115); gtk_tree_view_column_set_alignment (GTK_TREE_VIEW_COLUMN (column), 0.5); gtk_tree_view_append_column (treeview, column); // COLUMN_FILEWAV_NAME var_file_wav.Renderer = renderer = gtk_cell_renderer_text_new (); g_object_set (renderer, "xalign", 0.5, NULL); var_file_wav.Adr_ColumnFileWavName = column = gtk_tree_view_column_new_with_attributes (_("Nom"), renderer, "markup", COLUMN_FILEWAV_NAME, "background-gdk", COLUMN_FILEWAV_COLOR, NULL); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column), GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 50); gtk_tree_view_column_set_alignment (GTK_TREE_VIEW_COLUMN (column), 0.5); gtk_tree_view_append_column (treeview, column); } // // void on_scrolledwindow_file_wav_realize (GtkWidget *widget, gpointer user_data) { GtkListStore *store; GtkTreeModel *model; GtkWidget *treeview; var_file_wav.Adr_scroll = widget; var_file_wav.Pixbuf_NotInstall = libutils_init_pixbufs ("not_install.png"); var_file_wav.Adr_List_Store = store = gtk_list_store_new ( COLUMN_FILE_NUM, /* TOTAL NUMBER */ G_TYPE_STRING, /* COLUMN_FILEWAV_HERTZ */ G_TYPE_STRING, /* COLUMN_FILEWAV_NEW_HERTZ */ G_TYPE_STRING, /* COLUMN_FILEWAV_VOIE */ G_TYPE_STRING, /* COLUMN_FILEWAV_NEW_VOIE */ G_TYPE_STRING, /* COLUMN_FILEWAV_BITS */ G_TYPE_STRING, /* COLUMN_FILEWAV_NEW_BITS */ G_TYPE_STRING, /* COLUMN_FILEWAV_NAME */ GDK_TYPE_COLOR, /* COLUMN_FILEWAV_COLOR */ G_TYPE_POINTER /* COLUMN_FILEWAV_POINTER_STRUCT */ ); var_file_wav.Adr_Tree_Model = model = GTK_TREE_MODEL (store); var_file_wav.Adr_TreeView = treeview = gtk_tree_view_new_with_model (model); gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (treeview), TRUE); gtk_tree_selection_set_mode (gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview)), GTK_SELECTION_MULTIPLE); // GTK_SELECTION_BROWSE MULTIPLE g_object_unref (model); gtk_container_add (GTK_CONTAINER (widget), treeview); FileWav_add_columns_scrolledwindow (GTK_TREE_VIEW (treeview)); gtk_widget_show_all (widget); } // // void FileWav_from_popup_set_data (gchar *StrFreq, gchar *StrVoie, gchar *StrBits) { // TRAITEMENT DE LA CELLULE POINTEE PAR LA STRUCTURE DETAIL // VALEUR PAR DEFAUT SUR LA CELLULE POINTEE PAR LA STRUCTURE DETAIL // EX: -1, NULL, NULL // ASSIGNEMENT DU POINTEUR NON NULL SUR LA CELLULE POINTEE PAR LA STRUCTURE DETAIL // EX: 44100, NULL, NULL // FileWav_set_change_parameters_is_selected (StrFreq, StrVoie, StrBits); } // // void FileWav_from_popup (TYPE_SET_FROM_POPUP_FILE TypeSetFromPopup, DETAIL *detail, gint freq, gint voie, gint bits) { gchar *StrFreq = NULL; gchar *StrVoie = NULL; gchar *StrBits = NULL; if (freq >= -1) StrFreq = g_strdup_printf ("%d", freq); if (voie >= -1) StrVoie = g_strdup_printf ("%d", voie); if (bits >= -1) StrBits = g_strdup_printf ("%d", bits); switch (TypeSetFromPopup) { // SELECTION ou DESELECTION POUR LES ICONES DE CONVERSIONS case FILE_CONV_DESELECT_ALL : // Deselection globale case FILE_CONV_DESELECT_V : // Deselection verticale case FILE_CONV_DESELECT_H : // Deselection horizontale case FILE_CONV_SELECT_V : // Selection verticale case FILE_CONV_SELECT_EXPERT_V : // Selection Expert verticale case FILE_CONV_SELECT_H : // Selection horizontale case FILE_CONV_SELECT_EXPERT_H : // Selection Expert horizontale // SELECTION ou DESELECTION POUR LES ICONES DE REPLAYGAIN case FILE_REPLAYGAIN_DESELECT_V : // Deselection verticale case FILE_REPLAYGAIN_SELECT_PISTE : // Selection PISTE case FILE_REPLAYGAIN_SELECT_ALBUM : // Selection ALBUM case FILE_REPLAYGAIN_SELECT_NETTOYER : // Selection NETTOYER // SELECTION ou DESELECTION POUR TRASH case FILE_TRASH_DESELECT_V : // Deselection verticale case FILE_TRASH_SELECT_V : // Selection verticale break; // SELECTION ou DESELECTION POUR FREQUENCES VOIE BITS case FILEWAV_FREQUENCY_CELL_HERTZ : // Frequence Cellule ou valeur d origine FileWav_from_popup_set_data (StrFreq, StrVoie, StrBits); break; case FILEWAV_TRACK_CELL : // Voie Cellule ou valeur d origine FileWav_from_popup_set_data (StrFreq, StrVoie, StrBits); break; case FILEWAV_QUANTIFICATION_CELL : // Bits Cellule ou valeur d origine FileWav_from_popup_set_data (StrFreq, StrVoie, StrBits); break; } if (NULL != StrFreq) { g_free (StrFreq); StrFreq = NULL; } if (NULL != StrVoie) { g_free (StrVoie); StrVoie = NULL; } if (NULL != StrBits) { g_free (StrBits); StrBits = NULL; } } xcfa-4.3.6/src/web.c0000644000175000017500000002704212122563465011111 00000000000000 /* * file : web.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #include #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "win_info.h" #include "extra.h" #include "configuser.h" #include "web.h" #include "cd_curl.h" typedef struct { gchar *Navigateur; gchar *NameNavi; gchar *TemporaryRep; } VAR_WEB ; VAR_WEB VarWeb = { NULL, NULL, NULL }; // // void web_remove (void) { if (VarWeb.Navigateur != NULL) { g_free (VarWeb.Navigateur); VarWeb.Navigateur = NULL; } if (VarWeb.NameNavi != NULL) { g_free (VarWeb.NameNavi); VarWeb.NameNavi = NULL; } } // Appelle un navigateur pour aller sur le site d'XCFA et cela en thread // void web_call_navigator (void) { pid_t pid; if ((pid = fork ()) == 0) { /* // kfmclient newTab http://www.xcfa.tuxfamily.org & if (strcmp (VarWeb.Navigateur, "konqueror") == 0) { execlp ("kfmclient", "kfmclient", "newTab", VarWeb.NameNavi, NULL); } else if (strcmp (VarWeb.Navigateur, "opera") == 0) { execlp (VarWeb.Navigateur, VarWeb.Navigateur, VarWeb.NameNavi, NULL); } else if (strcmp (VarWeb.Navigateur, "midori") == 0) { execlp (VarWeb.Navigateur, VarWeb.Navigateur, VarWeb.NameNavi, NULL); } else if( (strcmp (VarWeb.Navigateur, "firefox") == 0) || (strcmp (VarWeb.Navigateur, "iceweasel") == 0) ) { // -new-window URL // Open URL in a new window in an already running Firefox process. // -new-tab URL Open URL in a new tab in an already running Firefox process. // EXEMPLE: // firefox -new-window -new-tab http:/www.google.fr execlp (VarWeb.Navigateur, VarWeb.Navigateur, "-new-window", "-new-tab", VarWeb.NameNavi, NULL); } else { gchar Str [ 200 ]; Str [ 0 ] = '\0'; if( NULL != Config.StringParamNameNavigateur && *Config.StringParamNameNavigateur != '\0' ) { strncpy( Str, Config.StringParamNameNavigateur, 180 ); } execlp (VarWeb.Navigateur, VarWeb.Navigateur, VarWeb.NameNavi, Str, NULL); } */ gchar Str [ 200 ]; Str [ 0 ] = '\0'; if( NULL != Config.StringParamNameNavigateur && *Config.StringParamNameNavigateur != '\0' ) { strncpy( Str, Config.StringParamNameNavigateur, 180 ); } execlp (VarWeb.Navigateur, VarWeb.Navigateur, VarWeb.NameNavi, Str, NULL); _exit (0); } } // // static void web_thread (void *arg) { web_call_navigator (); pthread_exit(0); } // Fonction commune d'appel a un navigateur pour aller sur le site d'XCFA // void web_goto_url (gchar *str_web) { pthread_t nmr_tid; // PRINT_FUNC_LF(); if (FALSE == extra_get_navigateur_is_ok ()) { gtk_notebook_set_current_page (GTK_NOTEBOOK (GLADE_GET_OBJECT("notebook_general")), NOTEBOOK_PRGEXTERNES); gtk_notebook_set_current_page (GTK_NOTEBOOK (GLADE_GET_OBJECT("notebook_app_externes")), NOTEBOOK_OPTIONS_EXTRA); wininfo_create ( WindMain, _("PAS de navigateur present"), _("L'acces au web est impossible car aucun navigateur"), "\n", _("n'est present dans votre configuration."), "\n\n", _("Veuillez installez un navigateur."), ""); return; } if (CdCurl_test_access_web () == FALSE) { wininfo_create ( WindMain, _("La liaison internet est absente"), _("Vous devez ouvrir l'acces internet"), ""); return; } web_remove (); VarWeb.Navigateur = g_strdup (extra_get_name_navigateur ()); VarWeb.NameNavi = g_strdup (str_web); pthread_create (&nmr_tid, NULL ,(void *)web_thread, (void *)NULL); sleep(5); } // // void web_make_file (gchar *StrMakeManFile) { pid_t pid; // PRINT_FUNC_LF(); pid = fork (); if (pid == 0) { system (StrMakeManFile); _exit (0); } } // // void web_goto_manpage (gchar *NameManPage) { pthread_t nmr_tid; gchar *LineCommand = NULL; gchar *PathNameMan = NULL; gchar *PathNameHtml = NULL; FILE *fp_man = NULL; FILE *fp_html = NULL; gchar buf [ 4 ]; // PRINT_FUNC_LF(); if (FALSE == extra_get_navigateur_is_ok ()) { gtk_notebook_set_current_page (GTK_NOTEBOOK (GLADE_GET_OBJECT("notebook_general")), NOTEBOOK_PRGEXTERNES); gtk_notebook_set_current_page (GTK_NOTEBOOK (GLADE_GET_OBJECT("notebook_app_externes")), NOTEBOOK_OPTIONS_EXTRA); wininfo_create ( WindMain, _("PAS de navigateur present"), "\n", _(" L'acces au web est impossible car aucun navigateur"), " \n", _(" n'est present dans votre configuration."), "\n\n", _(" Veuillez installez un navigateur."), "\n", ""); return; } if (libutils_find_file (NameManPage) == FALSE) { g_print("The application is missing, you must install [ %s ]\n", NameManPage); wininfo_create ( WindMain, _("L'application est absente."), _("Veuillez installer : "), "", NameManPage, "", "\n", ""); return; } // INIT DOSSIER TEMPORAIRE if (NULL == VarWeb.TemporaryRep) { VarWeb.TemporaryRep = libutils_create_temporary_rep (Config.PathnameTMP, PATH_MANPAGE); } // INIT var web_remove (); VarWeb.Navigateur = g_strdup (extra_get_name_navigateur ()); VarWeb.NameNavi = g_strdup_printf ("%s/%s.html", VarWeb.TemporaryRep, NameManPage); // IF VarWeb.NameNavi NOT EXIST if (FALSE == libutils_test_file_exist (VarWeb.NameNavi)) { LineCommand = g_strdup_printf ("man %s > %s/%s.txt", NameManPage, VarWeb.TemporaryRep, NameManPage); g_print("LineCommand = %s\n", LineCommand); web_make_file (LineCommand); g_free (LineCommand); LineCommand = NULL; sleep(20); PathNameMan = g_strdup_printf ("%s/%s.txt", VarWeb.TemporaryRep, NameManPage); g_print("PathNameMan = %s\n", PathNameMan); PathNameHtml = g_strdup_printf ("%s/%s.html", VarWeb.TemporaryRep, NameManPage); fp_man = fopen (PathNameMan, "r"); fp_html = fopen (PathNameHtml, "w"); g_fprintf (fp_html, "\n"); g_fprintf (fp_html, "\n"); g_fprintf (fp_html, " %s\n", NameManPage); g_fprintf (fp_html, "\n"); g_fprintf (fp_html, "\n"); g_fprintf (fp_html, "
\n");
		
		while (fread (&buf, 1, 1, fp_man)) {
			if ((gint)*buf >= 0) {
				if (*buf == '<') {
					g_fprintf (fp_html, "<");
					// g_print("<");
				}
				else if (*buf == '>') {
					g_fprintf (fp_html, ">");
					// g_print(">");
				}
				else {
					buf [ 1 ] = '\0';
					g_fprintf (fp_html, "%s", buf);
					// g_print("%s", buf);
				}
			}
		}
		fclose (fp_man);
		g_fprintf (fp_html, "
\n"); g_fprintf (fp_html, "\n"); g_fprintf (fp_html, "\n\n"); fclose (fp_html); g_free (PathNameMan); PathNameMan = NULL; g_free (PathNameHtml); PathNameHtml = NULL; } pthread_create (&nmr_tid, NULL ,(void *)web_thread, (void *)NULL); } // // void web_remove_temporary_rep (void) { web_remove (); // DELETTE TEMPORAY REP if (NULL != VarWeb.TemporaryRep) { VarWeb.TemporaryRep = libutils_remove_temporary_rep (VarWeb.TemporaryRep); } } // // void on_button_WebInformations_clicked (GtkButton *button, gpointer user_data) { if (GTK_BUTTON (button) == GTK_BUTTON (GTK_WIDGET (GLADE_GET_OBJECT("button_WebCdparanoia_homepage")))) { web_goto_url ("http://www.xiph.org/paranoia/"); } else if (GTK_BUTTON (button) == GTK_BUTTON (GTK_WIDGET (GLADE_GET_OBJECT("button_WebCdparanoia_manpage")))) { web_goto_manpage ("cdparanoia"); } else if (GTK_BUTTON (button) == GTK_BUTTON (GTK_WIDGET (GLADE_GET_OBJECT("button_WebLame_homepage")))) { web_goto_url ("http://lame.sourceforge.net/index.php"); } else if (GTK_BUTTON (button) == GTK_BUTTON (GTK_WIDGET (GLADE_GET_OBJECT("button_WebLame_wikimp3")))) { web_goto_url ("http://fr.wikipedia.org/wiki/Mp3"); } else if (GTK_BUTTON (button) == GTK_BUTTON (GTK_WIDGET (GLADE_GET_OBJECT("button_WebLame_wikilame")))) { web_goto_url ("http://fr.wikipedia.org/wiki/LAME"); } else if (GTK_BUTTON (button) == GTK_BUTTON (GTK_WIDGET (GLADE_GET_OBJECT("button_WebLame_manpage")))) { web_goto_manpage ("lame"); } else if (GTK_BUTTON (button) == GTK_BUTTON (GTK_WIDGET (GLADE_GET_OBJECT("button_WebOggenc_wiki")))) { web_goto_url ("http://fr.wikipedia.org/wiki/Ogg_Vorbis"); } else if (GTK_BUTTON (button) == GTK_BUTTON (GTK_WIDGET (GLADE_GET_OBJECT("button_WebOggenc_manpage")))) { web_goto_manpage ("oggenc"); } else if (GTK_BUTTON (button) == GTK_BUTTON (GTK_WIDGET (GLADE_GET_OBJECT("button_WebFlac_homepage")))) { web_goto_url ("http://flac.sourceforge.net/"); } else if (GTK_BUTTON (button) == GTK_BUTTON (GTK_WIDGET (GLADE_GET_OBJECT("button_WebFlac_framasoft")))) { web_goto_url ("http://www.framasoft.net/article1510.html"); } else if (GTK_BUTTON (button) == GTK_BUTTON (GTK_WIDGET (GLADE_GET_OBJECT("button_WebFlac_manpage")))) { web_goto_manpage ("flac"); } else if (GTK_BUTTON (button) == GTK_BUTTON (GTK_WIDGET (GLADE_GET_OBJECT("button_WebMac_wiki")))) { web_goto_url ("http://en.wikipedia.org/wiki/Monkey's_audio"); } else if (GTK_BUTTON (button) == GTK_BUTTON (GTK_WIDGET (GLADE_GET_OBJECT("button_WavPack_wiki")))) { web_goto_url ("http://fr.wikipedia.org/wiki/WavPack"); } else if (GTK_BUTTON (button) == GTK_BUTTON (GTK_WIDGET (GLADE_GET_OBJECT("button_WavPack_manpage")))) { web_goto_manpage ("wavpack"); } else if (GTK_BUTTON (button) == GTK_BUTTON (GTK_WIDGET (GLADE_GET_OBJECT("button_WebMusepack_homepage")))) { web_goto_url ("http://www.musepack.net/"); } else if (GTK_BUTTON (button) == GTK_BUTTON (GTK_WIDGET (GLADE_GET_OBJECT("button_WebMusepack_framasoft")))) { web_goto_url ("http://www.framasoft.net/article2094.html"); } else if (GTK_BUTTON (button) == GTK_BUTTON (GTK_WIDGET (GLADE_GET_OBJECT("button_faac_homepage")))) { web_goto_url ("http://www.audiocoding.com/faac.html"); } else if (GTK_BUTTON (button) == GTK_BUTTON (GTK_WIDGET (GLADE_GET_OBJECT("button_faac_web_info")))) { web_goto_url ("http://freshmeat.net/projects/faac/"); } else if (GTK_BUTTON (button) == GTK_BUTTON (GTK_WIDGET (GLADE_GET_OBJECT("button_aacplusenc_homepage")))) { web_goto_url ("http://teknoraver.net/software/mp4tools/"); } else if (GTK_BUTTON (button) == GTK_BUTTON (GTK_WIDGET (GLADE_GET_OBJECT("button_faac_manpage")))) { web_goto_manpage ("faac"); } else if (GTK_BUTTON (button) == GTK_BUTTON (GTK_WIDGET (GLADE_GET_OBJECT("button_aacplusenc_web_info")))) { web_goto_url ("http://en.wikipedia.org/wiki/Aacplus"); } else if (GTK_BUTTON (button) == GTK_BUTTON (GTK_WIDGET (GLADE_GET_OBJECT("button_aacplusenc_manpage")))) { web_goto_manpage ("aacplusenc"); } } // // void on_button_see_xcfa_install_clicked (GtkButton *button, gpointer user_data) { web_goto_url ("http://www.xcfa.tuxfamily.org/index.php?static2/xcfa"); sleep(5); web_goto_url ("http://download.tuxfamily.org/xcfaudio/PlusPlus/"); } xcfa-4.3.6/src/cd_audio_extract.c0000644000175000017500000022135112163100750013621 00000000000000 /* * file : cd_audio_extract.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ /* * Extraction avec cdparanoia en mode expert. * XCFA essayes de reprendre quelques fonctionnalités interessantes de 'rubyripper' [ http://code.google.com/p/rubyripper/ ] * Deux extractions de la même piste sont faites puis comparées. * Les segments non valides seront relus jusqu'à quatre fois si nécessaire puis validés si possible. * -------------------------------------------------------------------- VERIF FICHIER cdparanoia mode expert -------------------------------------------------------------------- 44 = wav container overhead 2352 = size for a audiocd sector as used in cdparanoia 44 + 2352 = 2396 filesize = 44 bytes wav overhead + ( 2352 bytes per sector * len sector) */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #include #include #include #include #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "options.h" #include "scan.h" #include "cd_audio.h" #include "conv.h" #include "file.h" #include "configuser.h" #include "cd_normalise.h" #include "prg_init.h" #include "file.h" #include "win_info.h" #include "cd_cue.h" #include "notify_send.h" #include "win_scan.h" #include "win_vte.h" #include "cd_audio_extract.h" /* *--------------------------------------------------------------------------- * DEFINITION EXTERNE *--------------------------------------------------------------------------- */ extern char *get_current_dir_name (void); /* *--------------------------------------------------------------------------- * DEFINITION *--------------------------------------------------------------------------- */ typedef struct { gboolean BoolFormatUnique; gchar *NameFileFormatUnique; GList *ListFileFormatUnique; gint NbrFileUnique; gint PassFileUnique; gint ChoiceFileCue; gchar *PathName_SrcWavSox; gchar *PathName_DestFlacSox; gchar *PathName_DestOggSox; gchar *PathName_DestMpcSox; gboolean BoolListIsPeakAlbum; gint ComboNumActive; gint NbrList; gchar *PtrDirActuel; gchar *PathDestinationModeExpert; } VAR_CDEXTRACT; VAR_CDEXTRACT VarCdExtract; /* *--------------------------------------------------------------------------- * THREAD EXTRACTION *--------------------------------------------------------------------------- */ GList *cdaudioextract_remove_glist (GList *New) { GList *list = g_list_first (New); gchar *ptr = NULL; while (list) { if (NULL != (ptr = (gchar*)list->data)) { g_free (ptr); ptr = NULL; list->data = NULL; } list = g_list_next(list); } g_list_free (New); New = NULL; return ((GList *)NULL); } // // void cdaudioextract_remove_list (void) { GList *List = NULL; CD_AUDIO *Audio = NULL; gint Num; gint Pos; // PRINT_FUNC_LF(); List = g_list_first (EnteteCD.GList_Audio_cd); while (List) { if (NULL != (Audio = List->data)) { if (NULL != Audio->ListConv) { for (Num = NUM_WAV; Num < NUM_TOTAL; Num ++) { for (Pos = 0; NULL != Audio->ListConv[ Num ].Arg [ Pos ]; Pos ++) { g_free (Audio->ListConv[ Num ].Arg [ Pos ]); Audio->ListConv[ Num ].Arg [ Pos ] = NULL; } } g_free (Audio->ListConv); Audio->ListConv = NULL; } } List = g_list_next(List); } } // SAUVEGARDE DES POINTEURS // void cdaudioextract_save_arg_from_conv( gchar **p_PtrTabArgs, CD_AUDIO *Audio, gint p_Num) { gint Pos; for (Pos = 0; NULL != p_PtrTabArgs [ Pos ]; Pos ++) { Audio->ListConv[ p_Num ].Arg [ Pos ] = p_PtrTabArgs [ Pos ]; p_PtrTabArgs [ Pos ] = NULL; } Audio->ListConv[ p_Num ].Arg [ Pos ] = NULL; } // // void cdaudioextract_save_arg_from_extract( CD_AUDIO *Audio, gint p_Num) { gint Pos; for (Pos = 0; NULL != conv.ArgExtract [ Pos ]; Pos ++) { Audio->ListConv[ p_Num ].Arg [ Pos ] = conv.ArgExtract [ Pos ]; conv.ArgExtract [ Pos ] = NULL; } Audio->ListConv[ p_Num ].Arg [ Pos ] = NULL; } // RESTITUTION DES POINTEURS // void cdaudioextract_restitue_arg_to_conv( gchar **p_PtrTabArgs, CD_AUDIO *Audio, gint p_Num ) { gint Pos; for (Pos = 0; NULL != Audio->ListConv[ p_Num ].Arg [ Pos ]; Pos ++) { p_PtrTabArgs [ Pos ] = Audio->ListConv[ p_Num ].Arg [ Pos ]; Audio->ListConv[ p_Num ].Arg [ Pos ] = NULL; } p_PtrTabArgs [ Pos ] = NULL; } // // void cdaudioextract_restitue_arg_to_extract (CD_AUDIO *Audio, gint p_Num) { gint Pos; for (Pos = 0; NULL != Audio->ListConv[ p_Num ].Arg [ Pos ]; Pos ++) { conv.ArgExtract [ Pos ] = Audio->ListConv[ p_Num ].Arg [ Pos ]; Audio->ListConv[ p_Num ].Arg [ Pos ] = NULL; } conv.ArgExtract [ Pos ] = NULL; } // // void cdaudioextract_create_list_is_Convert (void) { GList *List = NULL; CD_AUDIO *Audio = NULL; PARAM_FILELC param_filelc; gchar **PtrTabArgs = NULL; List = g_list_first (EnteteCD.GList_Audio_cd); while (List) { if (NULL != (Audio = List->data)) { if (Audio->Etat_Sox == ETAT_CONV_CD_WAITING) { if (NULL != VarCdExtract.NameFileFormatUnique) { gchar *Ptr = NULL; if (NULL == VarCdExtract.PathName_SrcWavSox) { VarCdExtract.PathName_SrcWavSox = g_strdup (VarCdExtract.NameFileFormatUnique); } if (NULL == VarCdExtract.PathName_DestFlacSox) { VarCdExtract.PathName_DestFlacSox = g_strdup_printf ("%s ", VarCdExtract.NameFileFormatUnique); Ptr = strrchr (VarCdExtract.PathName_DestFlacSox, '.'); Ptr ++; *Ptr ++ = 'f'; *Ptr ++ = 'l'; *Ptr ++ = 'a'; *Ptr ++ = 'c'; *Ptr = '\0'; } if (NULL == VarCdExtract.PathName_DestOggSox) { VarCdExtract.PathName_DestOggSox = g_strdup (VarCdExtract.NameFileFormatUnique); Ptr = strrchr (VarCdExtract.PathName_DestOggSox, '.'); Ptr ++; *Ptr ++ = 'o'; *Ptr ++ = 'g'; *Ptr ++ = 'g'; *Ptr = '\0'; } if (NULL == VarCdExtract.PathName_DestMpcSox) { VarCdExtract.PathName_DestMpcSox = g_strdup (VarCdExtract.NameFileFormatUnique); Ptr = strrchr (VarCdExtract.PathName_DestMpcSox, '.'); Ptr ++; *Ptr ++ = 'm'; *Ptr ++ = 'p'; *Ptr ++ = 'c'; *Ptr = '\0'; } } } if (Audio->Etat_Sox == ETAT_CONV_CD_WAITING || Audio->Etat_Flac == ETAT_CONV_CD_WAITING) { param_filelc.type_conv = FLAC_WAV_TO_FLAC; param_filelc.With_CommandLineUser = Audio->EtatSelection_Flac >= CD_ETAT_SELECT_EXPERT; if (FALSE == VarCdExtract.BoolFormatUnique) { param_filelc.filesrc = Audio->PathName_Dest_Wav; param_filelc.filedest = Audio->PathName_Dest_Flac; } else { param_filelc.filesrc = VarCdExtract.PathName_SrcWavSox; param_filelc.filedest = VarCdExtract.PathName_DestFlacSox; } param_filelc.tags = Audio->tags; param_filelc.cdrom = NULL; param_filelc.num_track = NULL; param_filelc.BoolSetBitrate = FALSE; param_filelc.PtrStrBitrate = NULL; Audio->ListConv[ NUM_FLAC ].WithCommandLineUser = param_filelc.With_CommandLineUser; PtrTabArgs = filelc_get_command_line (¶m_filelc); cdaudioextract_save_arg_from_conv( PtrTabArgs, Audio, NUM_FLAC ); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); } if (Audio->Etat_Ape == ETAT_CONV_CD_WAITING) { param_filelc.type_conv = MAC_WAV_TO_APE; param_filelc.With_CommandLineUser = Audio->EtatSelection_Ape >= CD_ETAT_SELECT_EXPERT; param_filelc.filesrc = Audio->PathName_Dest_Wav; param_filelc.filedest = Audio->PathName_Dest_Ape; param_filelc.tags = Audio->tags; param_filelc.cdrom = NULL; param_filelc.num_track = NULL; param_filelc.BoolSetBitrate = FALSE; param_filelc.PtrStrBitrate = NULL; Audio->ListConv[ NUM_APE ].WithCommandLineUser = param_filelc.With_CommandLineUser; PtrTabArgs = filelc_get_command_line (¶m_filelc); cdaudioextract_save_arg_from_conv (PtrTabArgs, Audio, NUM_APE); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); } if (Audio->Etat_WavPack == ETAT_CONV_CD_WAITING) { param_filelc.type_conv = WAVPACK_WAV_TO_WAVPACK; param_filelc.With_CommandLineUser = Audio->EtatSelection_WavPack >= CD_ETAT_SELECT_EXPERT; param_filelc.filesrc = Audio->PathName_Dest_Wav; param_filelc.filedest = Audio->PathName_Dest_WavPack; param_filelc.tags = Audio->tags; param_filelc.cdrom = NULL; param_filelc.num_track = NULL; param_filelc.BoolSetBitrate = FALSE; param_filelc.PtrStrBitrate = NULL; Audio->ListConv[ NUM_WAVPACK ].WithCommandLineUser = param_filelc.With_CommandLineUser; PtrTabArgs = filelc_get_command_line (¶m_filelc); cdaudioextract_save_arg_from_conv (PtrTabArgs, Audio, NUM_WAVPACK); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); } if (Audio->Etat_Sox == ETAT_CONV_CD_WAITING || Audio->Etat_Ogg == ETAT_CONV_CD_WAITING) { param_filelc.type_conv = OGGENC_WAV_TO_OGG; param_filelc.With_CommandLineUser = Audio->EtatSelection_Ogg >= CD_ETAT_SELECT_EXPERT; if (FALSE == VarCdExtract.BoolFormatUnique) { param_filelc.filesrc = Audio->PathName_Dest_Wav; param_filelc.filedest = Audio->PathName_Dest_Ogg; } else { param_filelc.filesrc = VarCdExtract.PathName_SrcWavSox; param_filelc.filedest = VarCdExtract.PathName_DestOggSox; } param_filelc.tags = Audio->tags; param_filelc.cdrom = NULL; param_filelc.num_track = NULL; param_filelc.BoolSetBitrate = FALSE; param_filelc.PtrStrBitrate = NULL; param_filelc.PtrStrBitrate = options_get_params (OGGENC_WAV_TO_OGG); Audio->ListConv[ NUM_OGG ].WithCommandLineUser = param_filelc.With_CommandLineUser; PtrTabArgs = filelc_get_command_line (¶m_filelc); cdaudioextract_save_arg_from_conv (PtrTabArgs, Audio, NUM_OGG); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); } if (Audio->Etat_m4a == ETAT_CONV_CD_WAITING) { param_filelc.type_conv = FAAC_WAV_TO_M4A; param_filelc.With_CommandLineUser = Audio->EtatSelection_M4a >= CD_ETAT_SELECT_EXPERT; param_filelc.filesrc = Audio->PathName_Dest_Wav; param_filelc.filedest = Audio->PathName_Dest_M4a; param_filelc.tags = Audio->tags; param_filelc.cdrom = NULL; param_filelc.num_track = NULL; param_filelc.BoolSetBitrate = FALSE; param_filelc.PtrStrBitrate = NULL; Audio->ListConv[ NUM_M4A ].WithCommandLineUser = param_filelc.With_CommandLineUser; PtrTabArgs = filelc_get_command_line (¶m_filelc); cdaudioextract_save_arg_from_conv (PtrTabArgs, Audio, NUM_M4A); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); } if (Audio->Etat_Aac == ETAT_CONV_CD_WAITING) { param_filelc.type_conv = AACPLUSENC_WAV_TO_AAC; param_filelc.With_CommandLineUser = Audio->EtatSelection_Aac >= CD_ETAT_SELECT_EXPERT; param_filelc.filesrc = Audio->PathName_Dest_Wav; param_filelc.filedest = Audio->PathName_Dest_Aac; param_filelc.tags = Audio->tags; param_filelc.cdrom = NULL; param_filelc.num_track = NULL; param_filelc.BoolSetBitrate = FALSE; param_filelc.PtrStrBitrate = NULL; param_filelc.PtrStrBitrate = options_get_params (AACPLUSENC_WAV_TO_AAC); Audio->ListConv[ NUM_AAC ].WithCommandLineUser = param_filelc.With_CommandLineUser; PtrTabArgs = filelc_get_command_line (¶m_filelc); cdaudioextract_save_arg_from_conv (PtrTabArgs, Audio, NUM_AAC); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); } if (Audio->Etat_Sox == ETAT_CONV_CD_WAITING || Audio->Etat_Mpc == ETAT_CONV_CD_WAITING) { param_filelc.type_conv = MPPENC_WAV_TO_MPC; param_filelc.With_CommandLineUser = Audio->EtatSelection_Mpc >= CD_ETAT_SELECT_EXPERT; if (FALSE == VarCdExtract.BoolFormatUnique) { param_filelc.filesrc = Audio->PathName_Dest_Wav; param_filelc.filedest = Audio->PathName_Dest_Mpc; } else { param_filelc.filesrc = VarCdExtract.PathName_SrcWavSox; param_filelc.filedest = VarCdExtract.PathName_DestMpcSox; } param_filelc.tags = Audio->tags; param_filelc.cdrom = NULL; param_filelc.num_track = NULL; param_filelc.BoolSetBitrate = FALSE; param_filelc.PtrStrBitrate = NULL; Audio->ListConv[ NUM_MPC ].WithCommandLineUser = param_filelc.With_CommandLineUser; PtrTabArgs = filelc_get_command_line (¶m_filelc); cdaudioextract_save_arg_from_conv (PtrTabArgs, Audio, NUM_MPC); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); } if (Audio->Etat_Mp3 == ETAT_CONV_CD_WAITING) { param_filelc.type_conv = LAME_WAV_TO_MP3; param_filelc.With_CommandLineUser = Audio->EtatSelection_Mp3 >= CD_ETAT_SELECT_EXPERT; param_filelc.filesrc = Audio->PathName_Dest_Wav; param_filelc.filedest = Audio->PathName_Dest_Mp3; param_filelc.tags = Audio->tags; param_filelc.cdrom = NULL; param_filelc.num_track = NULL; param_filelc.BoolSetBitrate = FALSE; param_filelc.PtrStrBitrate = NULL; param_filelc.PtrStrBitrate = options_get_params (LAME_WAV_TO_MP3); Audio->ListConv[ NUM_MP3 ].WithCommandLineUser = param_filelc.With_CommandLineUser; PtrTabArgs = filelc_get_command_line (¶m_filelc); cdaudioextract_save_arg_from_conv (PtrTabArgs, Audio, NUM_MP3); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); } } List = g_list_next(List); } } // // size_t cdaudioextract_get_size (gint NumTrack) { return ( NumTrack == 0 ? (BaseIoctl.Datas[ NumTrack ].length + BaseIoctl.Datas[ NumTrack ].begin) -1 : BaseIoctl.Datas[ NumTrack ].length -1 ); } // // gboolean cdaudioextract_create_list_is_Extract (void) { GList *List = NULL; CD_AUDIO *Audio = NULL; PARAM_FILELC param_filelc; gboolean BoolIsPeakAlbum = FALSE; VarCdExtract.NbrFileUnique = 0; List = g_list_first (EnteteCD.GList_Audio_cd); while (List) { if (NULL != (Audio = List->data)) { if (Audio->Etat_Wav == ETAT_CONV_CD_WAITING) { Audio->ListConv = (LIST_CONV *)g_malloc0 (sizeof(LIST_CONV) * (NUM_TOTAL + 2)); if (TRUE == VarCdExtract.BoolFormatUnique) { Audio->Bool_Delette_Wav = TRUE; VarCdExtract.NbrFileUnique ++; VarCdExtract.ListFileFormatUnique = g_list_append (VarCdExtract.ListFileFormatUnique, g_strdup (Audio->PathName_Dest_Wav)); } /* 1. length 12923 [02:52:23] begin 32 [00:00:32] cdparanoia [.0]-[.12954] -d /dev/hdb -O 0 "1.wav" 2. length 14175 [03:09:00] begin 12955 [02:52:55] cdparanoia [.12955]-[.14174] -d /dev/hdb -O 0 "2.wav" 3. length 14627 [03:15:02] begin 27130 [06:01:55] cdparanoia [.27130]-[.14626] -d /dev/hdb -O 0 "3.wav" 4. length 14823 [03:17:48] begin 41757 [09:16:57] cdparanoia [.41757]-[.14822] -d /dev/hdb -O 0 "4.wav" 5. length 13282 [02:57:07] begin 56580 [12:34:30] cdparanoia [.56580]-[.13281] -d /dev/hdb -O 0 "5.wav" 6. length 14290 [03:10:40] begin 69862 [15:31:37] cdparanoia [.69862]-[.14289] -d /dev/hdb -O 0 "6.wav" 7. length 13048 [02:53:73] begin 84152 [18:42:02] cdparanoia [.84152]-[.13047] -d /dev/hdb -O 0 "7.wav" 8. length 13170 [02:55:45] begin 97200 [21:36:00] cdparanoia [.97200]-[.13169] -d /dev/hdb -O 0 "8.wav" 9. length 13707 [03:02:57] begin 110370 [24:31:45] cdparanoia [.110370]-[.13706] -d /dev/hdb -O 0 "9.wav" 10. length 12458 [02:46:08] begin 124077 [27:34:27] cdparanoia [.124077]-[.12457] -d /dev/hdb -O 0 "10.wav" 11. length 14235 [03:09:60] begin 136535 [30:20:35] cdparanoia [.136535]-[.14234] -d /dev/hdb -O 0 "11.wav" 12. length 14857 [03:18:07] begin 150770 [33:30:20] cdparanoia [.150770]-[.14856] -d /dev/hdb -O 0 "12.wav" 13. length 14723 [03:16:23] begin 165627 [36:48:27] cdparanoia [.165627]-[.14722] -d /dev/hdb -O 0 "13.wav" 14. length 14657 [03:15:32] begin 180350 [40:04:50] cdparanoia [.180350]-[.14656] -d /dev/hdb -O 0 "14.wav" 15. length 13133 [02:55:08] begin 195007 [43:20:07] cdparanoia [.195007]-[.13132] -d /dev/hdb -O 0 "15.wav" 16. length 13520 [03:00:20] begin 208140 [46:15:15] cdparanoia [.208140]-[.13519] -d /dev/hdb -O 0 "16.wav" 17. length 13185 [02:55:60] begin 221660 [49:15:35] cdparanoia [.221660]-[.13184] -d /dev/hdb -O 0 "17.wav" 18. length 11895 [02:38:45] begin 234845 [52:11:20] cdparanoia [.234845]-[.11894] -d /dev/hdb -O 0 "18.wav" 19. length 11282 [02:30:32] begin 246740 [54:49:65] cdparanoia [.246740]-[.11281] -d /dev/hdb -O 0 "19.wav" 20. length 10973 [02:26:23] begin 258022 [57:20:22] cdparanoia [.258022]-[.10972] -d /dev/hdb -O 0 "20.wav" 21. length 13007 [02:53:32] begin 268995 [59:46:45] cdparanoia [.268995]-[.13006] -d /dev/hdb -O 0 "21.wav" 22. length 16310 [03:37:35] begin 282002 [62:40:02] cdparanoia [.282002]-[.16309] -d /dev/hdb -O 0 "22.wav" 23. length 12188 [02:42:38] begin 298312 [66:17:37] cdparanoia [.298312]-[.12187] -d /dev/hdb -O 0 "23.wav" 24. length 13470 [02:59:45] begin 310500 [69:00:00] cdparanoia [.310500]-[.13469] -d /dev/hdb -O 0 "24.wav" TOTAL 323938 [71:59:13] */ switch (Config.ExtractCdWith) { case EXTRACT_WITH_CDPARANOIA : case EXTRACT_WITH_CDPARANOIA_MODE_2 : // // SUITE MAIL DE: Levis Florian: // TEST EXTRACTION AVEC CDPARANOIA EN MODE EXPERT UNE SEULE PASSE ... // if( EXTRACT_WITH_CDPARANOIA == Config.ExtractCdWith ) param_filelc.type_conv = CDPARANOIA_CD_TO_WAV; else param_filelc.type_conv = CDPARANOIA_CD_TO_WAV_EXPERT; param_filelc.With_CommandLineUser = FALSE; param_filelc.filesrc = Audio->PathName_Dest_Wav; // param_filelc.filedest = Audio->PathName_Dest_Wav; param_filelc.filedest = Audio->PathName_Dest_Tmp; param_filelc.tags = NULL; param_filelc.cdrom = EnteteCD.NameCD_Device; param_filelc.num_track = Audio->Str_Track; Audio->ListConv[ NUM_WAV ].Size = cdaudioextract_get_size (Audio->Num_Track -1); Audio->ListConv[ NUM_WAV ].WithCommandLineUser = param_filelc.With_CommandLineUser; filelc_get_command_line_extract (¶m_filelc); cdaudioextract_save_arg_from_extract (Audio, NUM_WAV); break; case EXTRACT_WITH_CDPARANOIA_EXPERT : /* NUM_WAV_EXPERT_1 */ param_filelc.type_conv = CDPARANOIA_CD_TO_WAV_EXPERT; param_filelc.With_CommandLineUser = FALSE; param_filelc.filesrc = Audio->PathName_Dest_Wav; param_filelc.filedest = Audio->ExtractExpert.Name1; param_filelc.tags = NULL; param_filelc.cdrom = EnteteCD.NameCD_Device; param_filelc.num_track = Audio->Str_Track; Audio->ListConv[ NUM_WAV_EXPERT_1 ].Size = cdaudioextract_get_size (Audio->Num_Track -1); Audio->ListConv[ NUM_WAV_EXPERT_1 ].WithCommandLineUser = param_filelc.With_CommandLineUser; filelc_get_command_line_extract (¶m_filelc); cdaudioextract_save_arg_from_extract (Audio, NUM_WAV_EXPERT_1); /* NUM_WAV_EXPERT_2 */ param_filelc.type_conv = CDPARANOIA_CD_TO_WAV_EXPERT; param_filelc.With_CommandLineUser = FALSE; param_filelc.filesrc = Audio->PathName_Dest_Wav; param_filelc.filedest = Audio->ExtractExpert.Name2; param_filelc.tags = NULL; param_filelc.cdrom = EnteteCD.NameCD_Device; param_filelc.num_track = Audio->Str_Track; Audio->ListConv[ NUM_WAV_EXPERT_2 ].Size = cdaudioextract_get_size (Audio->Num_Track -1); Audio->ListConv[ NUM_WAV_EXPERT_2 ].WithCommandLineUser = param_filelc.With_CommandLineUser; filelc_get_command_line_extract (¶m_filelc); cdaudioextract_save_arg_from_extract (Audio, NUM_WAV_EXPERT_2); break; case EXTRACT_WITH_CDDA2WAV : param_filelc.type_conv = CDDA2WAV_CD_TO_WAV; param_filelc.With_CommandLineUser = Audio->EtatSelection_Wav >= CD_ETAT_SELECT_EXPERT; param_filelc.filesrc = NULL; param_filelc.filedest = NULL; param_filelc.tags = NULL; param_filelc.cdrom = EnteteCD.NameCD_Device; param_filelc.num_track = Audio->Str_Track; Audio->ListConv[ NUM_WAV ].Size = cdaudioextract_get_size (Audio->Num_Track -1); Audio->ListConv[ NUM_WAV ].WithCommandLineUser = param_filelc.With_CommandLineUser; filelc_get_command_line_extract (¶m_filelc); cdaudioextract_save_arg_from_extract (Audio, NUM_WAV); conv.total_convert ++; break; } if (TRUE == Audio->EtatNormalise) { switch (VarCdExtract.ComboNumActive) { case 0 : PRINT("...ADD TO LIST PEAK/ALBUM"); CdNormalise_set_list_PeakGroup (Audio); conv.total_convert ++; conv.total_convert ++; conv.total_convert ++; conv.total_convert ++; Audio->EtatPeak = CD_NORM_PEAK; BoolIsPeakAlbum = TRUE; break; case 1 : Audio->EtatPeak = CD_NORM_PEAK; conv.total_convert ++; conv.total_convert ++; conv.total_convert ++; break; } } } else { Audio->EtatPeak = CD_NORM_PEAK_NONE; } } List = g_list_next(List); } return (BoolIsPeakAlbum); } // // gchar *cdaudioextract_new_name (gchar *Name, gchar *New) { gchar *NewName = g_strdup (Name); gchar *Ptr = NULL; if (NULL != (Ptr = strrchr (NewName, '/'))) { Ptr ++; strcpy (Ptr, New); } return ((gchar *)NewName); } // // void cdaudioextract_set_list_to_vte (gchar *p_text) { conv.ListPutTextview = g_list_append (conv.ListPutTextview, g_strdup (p_text)); conv.BoolPutTextview = TRUE; // g_print("\n****\n%s****\n", p_text); } // // void cdaudioextract_copy_src_to_dest (gchar *FileExtract_1, gchar *FileExtract_2, gchar *PathNameDest, size_t LenFile) { FILE *fp1 = NULL; FILE *fp2 = NULL; FILE *fp3 = NULL; FILE *fpElem = NULL; gchar *Ptr1 = NULL; gchar *Ptr2 = NULL; gchar Buf1 [ 2500 ]; gchar Buf2 [ 2500 ]; gint Elem; gint Cpt; gint TotalElem = LenFile; gboolean BoolDiff = FALSE; gchar *Name1 = NULL; gchar *Name2 = NULL; gchar *Str = NULL; gint NbrPass; // Ouverture en lecture des 2 fichiers fp1 = fopen (FileExtract_1, "r"); fp2 = fopen (FileExtract_2, "r"); // Ouverture de la destination fp3 = fopen (PathNameDest, "w"); // Lecture des entetes fread (Buf1, 1, 44, fp1); fread (Buf2, 1, 44, fp2); // Ecriture de l entete du fichier de destination fwrite (Buf1, sizeof(gchar), 44, fp3); // Analyse de tous les segments for (Elem = 0; Elem <= TotalElem && !conv.bool_stop; Elem++) { // Nettoyer les tampons memset (Buf1, '\0', 2498); memset (Buf2, '\0', 2498); // Lectures des segments fread (Buf1, 1, 2352, fp1); fread (Buf2, 1, 2352, fp2); /* ------------------------------------------------------------- * DEBUG - DEBUG - DEBUG - DEBUG - DEBUG - DEBUG - DEBUG - DEBUG * ------------------------------------------------------------- * if (Elem == 0 || Elem == 10 || Elem == 15 || Elem == 21) { g_print("-----------------------------------------------------------\n"); g_print(" ELEM = %d --> TEST\n", Elem); g_print("-----------------------------------------------------------\n"); Buf1 [ 100 ] = '\0'; Buf2 [ 100 ] = ' '; } */ NbrPass = 1; while (TRUE) { // Compare les segments BoolDiff = FALSE; for (Ptr1 = Buf1, Ptr2 = Buf2, Cpt = 0; Cpt < 2352; Cpt ++, Ptr1 ++, Ptr2 ++) { if (*Ptr1 != *Ptr2) { if (NbrPass <= 4) { // Si le contenu des segments est different Str = g_strdup_printf (_("[Erreur du segment numero: %d]\n%d) Lecture PASS 1/2\n"), Elem, NbrPass); cdaudioextract_set_list_to_vte (Str); g_free (Str); Str = NULL; BoolDiff = TRUE; } else { // NbrPass > 4 Str = g_strdup_printf (_("--> Deja %d fois 2 lectures du segment %d!\n Abandon :/\n"), NbrPass, Elem); cdaudioextract_set_list_to_vte (Str); g_free (Str); Str = NULL; } break; } } if (FALSE == BoolDiff) break; // Extraction du segment invalide pour les tampons: Buf1 et Buf2 // ------------------------------------------------------------- // // Extraction segment 'Elem' PASS 1/2 Name1 = cdaudioextract_new_name (FileExtract_1, "1.wav"); filelc_get_command_line_extract_elem (Elem, EnteteCD.NameCD_Device, Name1); conv_exec_extract (FALSE, CDPARANOIA_CD_TO_WAV_EXPERT_SEGMENT, "CDPARANOIA_CD_TO_WAV_EXPERT_SEGMENT"); // Extraction segment 'Elem' PASS 2/2 Str = g_strdup_printf (_("%d) Lecture PASS 2/2\n"), NbrPass); cdaudioextract_set_list_to_vte (Str); g_free (Str); Str = NULL; Name2 = cdaudioextract_new_name (FileExtract_2, "2.wav"); filelc_get_command_line_extract_elem (Elem, EnteteCD.NameCD_Device, Name2); conv_exec_extract (FALSE, CDPARANOIA_CD_TO_WAV_EXPERT_SEGMENT, "CDPARANOIA_CD_TO_WAV_EXPERT_SEGMENT"); // Lecture segment 'Elem' pour Buf1 fpElem = fopen (Name1, "r"); fread (Buf1, 1, 44, fpElem); memset (Buf1, '\0', 2498); fread (Buf1, 1, 2352, fpElem); fclose (fpElem); g_free (Name1); Name1 = NULL; // Lecture segment 'Elem' pour Buf2 fpElem = fopen (Name2, "r"); fread (Buf2, 1, 44, fpElem); memset (Buf2, '\0', 2498); fread (Buf2, 1, 2352, fpElem); fclose (fpElem); g_free (Name2); Name2 = NULL; NbrPass ++; } // Sauvergarde du segment valide dans le fichier de destination fwrite (Buf1, sizeof(gchar), 2352, fp3); } fclose (fp1); fclose (fp2); fclose (fp3); } // // static void cdaudioextract_thread_extraction_from_cd (void *arg) { GList *ListOne = NULL; CD_AUDIO *Audio = NULL; gint pos; conv.bool_thread_extract = TRUE; PRINT("DEBUT THREAD EXTRACTION"); ListOne = g_list_first (EnteteCD.GList_Audio_cd); while (FALSE == conv.bool_stop && NULL != ListOne) { if (NULL != (Audio = (CD_AUDIO *)ListOne->data)) { if (FALSE == conv.bool_stop && Audio->Etat_Wav == ETAT_CONV_CD_WAITING) { if( TRUE == OptionsCommandLine.BoolVerboseMode ) { g_print ("\n"); g_print ("SOURCE CD<%s>\n", Audio->Str_Track); g_print ("DEST WAV<%s>\n", Audio->PathName_Dest_Wav); } switch (Config.ExtractCdWith) { case EXTRACT_WITH_CDPARANOIA : case EXTRACT_WITH_CDPARANOIA_MODE_2 : if (FALSE == conv.bool_stop) { cdaudioextract_restitue_arg_to_extract (Audio, NUM_WAV); conv_exec_extract (Audio->ListConv[ NUM_WAV ].WithCommandLineUser, CDPARANOIA_CD_TO_WAV, "CDPARANOIA_CD_TO_WAV"); conv_copy_src_to_dest( Audio->PathName_Dest_Tmp, Audio->PathName_Dest_Wav ); g_unlink( Audio->PathName_Dest_Tmp ); } break; case EXTRACT_WITH_CDPARANOIA_EXPERT : if (FALSE == conv.bool_stop) { gchar *Str = NULL; Str = g_strdup_printf (_("\n[Piste: %d]\n"), Audio->Num_Track); cdaudioextract_set_list_to_vte (Str); g_free (Str); Str = NULL; Str = g_strdup (_("Extraction mode expert PASS 1/2\n")); cdaudioextract_set_list_to_vte (Str); g_free (Str); Str = NULL; cdaudioextract_restitue_arg_to_extract (Audio, NUM_WAV_EXPERT_1); conv_exec_extract (Audio->ListConv[ NUM_WAV_EXPERT_1 ].WithCommandLineUser, CDPARANOIA_CD_TO_WAV_EXPERT, "CDPARANOIA_CD_TO_WAV_EXPERT"); } if (FALSE == conv.bool_stop) { cdaudioextract_set_list_to_vte (_("Extraction mode expert PASS 2/2\n")); cdaudioextract_restitue_arg_to_extract (Audio, NUM_WAV_EXPERT_2); conv_exec_extract (Audio->ListConv[ NUM_WAV_EXPERT_2 ].WithCommandLineUser, CDPARANOIA_CD_TO_WAV_EXPERT, "CDPARANOIA_CD_TO_WAV_EXPERT"); } if (FALSE == conv.bool_stop) { cdaudioextract_set_list_to_vte (_("Controle du contenu des fichiers extraits\n")); cdaudioextract_copy_src_to_dest ( Audio->ExtractExpert.Name1, Audio->ExtractExpert.Name2, Audio->PathName_Dest_Wav, Audio->ListConv[ NUM_WAV_EXPERT_1 ].Size ); } conv.ListPutTextview = filelc_remove_glist (conv.ListPutTextview); break; case EXTRACT_WITH_CDDA2WAV : if (FALSE == conv.bool_stop) { cdaudioextract_restitue_arg_to_extract (Audio, NUM_WAV); conv_exec_extract (Audio->ListConv[ NUM_WAV ].WithCommandLineUser, CDDA2WAV_CD_TO_WAV, "CDDA2WAV_CD_TO_WAV"); if (FALSE == conv.bool_stop) { gchar *StrOldName = NULL; /* in: PATH_TMP_XCFA_AUDIOCD audio.inf audio.wav */ StrOldName = g_strdup_printf ("%s/audio.wav", conv.TmpRep); conv_copy_src_to_dest (StrOldName, Audio->PathName_Dest_Wav); g_free (StrOldName); StrOldName = NULL; } } break; } if (FALSE == conv.bool_stop && TRUE == Audio->EtatNormalise) { switch (VarCdExtract.ComboNumActive) { case 0 : Audio->EtatPeak = CD_NORM_PEAK_WAITING; PRINT("ADD PEAK/ALBUM"); CdNormalise_add_PeakGroup (); break; case 1 : Audio->EtatPeak = CD_NORM_PEAK_WAITING; break; } } Audio->EtatSelection_Wav = CD_ETAT_ATTENTE; if (TRUE == conv.bool_stop) Audio->Bool_Delette_Wav = TRUE; // conv_inc_rip_completed (); Audio->Etat_Wav = ETAT_CONV_CD_CONV_OK; conv.Bool_MAJ_select = TRUE; } } if (TRUE == conv.bool_stop) { Audio->Bool_Delette_Wav = TRUE; break; } ListOne = g_list_next(ListOne); } /*close(conv.tube_extract [ 0 ]);*/ // g_free (VarCdExtract.PtrDirActuel); // VarCdExtract.PtrDirActuel = NULL; /* OPERATION DE PEAK/ALBUM * Amplification maximale du volume pour un groupe de fichiers en respectant les ecarts de niveau entre chacun d'eux. */ if (FALSE == conv.bool_stop && TRUE == VarCdExtract.BoolListIsPeakAlbum) { PRINT("DEBUT NORMALISATION PEAK/ALBUM"); if (FALSE == conv.bool_stop && CdNormalise_get_is_list_PeakGroup () == TRUE && CdNormalise_list_PeakGroup_is_ready () == TRUE) { GList *List2 = NULL; VAR_CD_NORMALISE_ELEMENT *VarCDNormaliseElement = NULL; gchar **PtrTabArgs = NULL; // COPIE DES FICHIERS DESTINAION -> TEMPORAIRE List2 = g_list_first (CdNormalise_get_list_PeakGroup ()); while (List2) { if (NULL != (VarCDNormaliseElement = (VAR_CD_NORMALISE_ELEMENT *)List2->data)) { conv_copy_src_to_dest (VarCDNormaliseElement->PathNameDest, VarCDNormaliseElement->PathNameSrc); } List2 = g_list_next(List2); } // -- CHERCHER LA MOYENNE PEAK PtrTabArgs = filelc_AllocTabArgs(); pos = 3; PtrTabArgs [ pos++ ] = g_strdup (prginit_get_name (NMR_normalize)); PtrTabArgs [ pos++ ] = g_strdup ("-n"); // -- AJOUTER LA LISTE DES FICHIERS List2 = g_list_first (CdNormalise_get_list_PeakGroup ()); while (List2) { if (NULL != (VarCDNormaliseElement = (VAR_CD_NORMALISE_ELEMENT *)List2->data)) { PtrTabArgs [ pos++ ] = g_strdup_printf ("%s", VarCDNormaliseElement->PathNameSrc); } List2 = g_list_next(List2); } PtrTabArgs [ pos++ ] = NULL; conv.bool_percent_extract = conv.bool_percent_conv = TRUE; conv_to_convert (PtrTabArgs, FALSE, NORMALISE_GET_LEVEL, "NORMALISE_GET_LEVEL -> PEAK/GROUP"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); // -- APPLIQUER LA MOYENNE PEAK if (FALSE == conv.bool_stop) { PtrTabArgs = filelc_AllocTabArgs(); pos = 3; PtrTabArgs [ pos++ ] = g_strdup (prginit_get_name (NMR_normalize)); PtrTabArgs [ pos++ ] = g_strdup_printf ("--gain=%fdB", conv.value_PEAK_RMS_GROUP_ARGS); // -- AJOUTER LA LISTE DES FICHIERS List2 = g_list_first (CdNormalise_get_list_PeakGroup ()); while (List2) { if (NULL != (VarCDNormaliseElement = (VAR_CD_NORMALISE_ELEMENT *)List2->data)) { PtrTabArgs [ pos++ ] = g_strdup_printf ("%s", VarCDNormaliseElement->PathNameSrc); } List2 = g_list_next(List2); } PtrTabArgs [ pos++ ] = g_strdup ("--"); PtrTabArgs [ pos++ ] = NULL; // -- NORMALISATION conv.bool_percent_extract = conv.bool_percent_conv = TRUE; conv_to_convert (PtrTabArgs, FALSE, NORMALISE_EXEC, "NORMALISE_EXEC Wav -> PEAK/GROUP"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); CdNormalise_set_normalise_ok (); // BESOIN DE TEMPS ! // g_usleep (1000000); // usleep (1000000); sleep (3); // COPIE DES FICHIERS TEMPORAIRE -> DESTINATION List2 = g_list_first (CdNormalise_get_list_PeakGroup ()); while (List2) { if (NULL != (VarCDNormaliseElement = (VAR_CD_NORMALISE_ELEMENT *)List2->data)) { conv_copy_src_to_dest (VarCDNormaliseElement->PathNameSrc, VarCDNormaliseElement->PathNameDest); } List2 = g_list_next(List2); } } conv.Bool_MAJ_select = TRUE; } PRINT("FIN NORMALISATION PEAK/ALBUM"); } PRINT("FIN THREAD EXTRACTION"); conv.bool_thread_extract = FALSE; pthread_exit(0); } /* *--------------------------------------------------------------------------- * THREAD CONVERSION *--------------------------------------------------------------------------- */ static void cdaudioextract_thread_conversion_from_cd (void *arg) { GList *ListOne = NULL; CD_AUDIO *Audio = NULL; gint pos; gchar **PtrTabArgs = NULL; conv.bool_thread_conv = TRUE; PRINT("DEBUT THREAD CONVERSIONS"); ListOne = g_list_first (EnteteCD.GList_Audio_cd); while( FALSE == conv.bool_stop && NULL != ListOne ) { sleep( 0 ); if( TRUE == conv.bool_stop ) { conv.bool_stop = TRUE; Audio->Bool_Delette_Mp3 = TRUE; Audio->Bool_Delette_Ogg = TRUE; break; } if (NULL == (Audio = (CD_AUDIO *)ListOne->data)) { ListOne = g_list_next(ListOne); continue; } if (TRUE == Audio->EtatNormalise && VarCdExtract.ComboNumActive == 1) { /* PEAK * Le volume sera ajuste au maximum pour cet element */ if (FALSE == conv.bool_stop && Audio && Audio->EtatPeak == CD_NORM_PEAK_WAITING && CdNormalise_get_is_list_PeakGroup () == FALSE && Audio->Etat_Wav == ETAT_CONV_CD_CONV_OK) { gchar *Name = NULL; gchar *Ptr = NULL; gchar **PtrTabArgs = NULL; // Creation de la list PtrTabArgs = filelc_AllocTabArgs(); pos = 3; PtrTabArgs [ pos++ ] = g_strdup (prginit_get_name (NMR_normalize)); PtrTabArgs [ pos++ ] = g_strdup ("--peak"); Name = g_strdup_printf ("%s0123456789", Audio->PathName_Dest_Wav); Ptr = strrchr (Name, '/'); Ptr ++; strcpy (Ptr, "01.wav"); conv_copy_src_to_dest (Audio->PathName_Dest_Wav, Name); PtrTabArgs [ pos++ ] = g_strdup_printf ("%s", Name); PtrTabArgs [ pos++ ] = g_strdup ("--"); PtrTabArgs [ pos++ ] = NULL; // NORMALISATION PEAK conv_to_convert (PtrTabArgs, FALSE, NORMALISE_EXEC, "NORMALISE_EXEC Wav -> Peak"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); conv_copy_src_to_dest (Name, Audio->PathName_Dest_Wav); g_unlink (Name); g_free (Name); Name = NULL; Audio->EtatPeak = CD_NORM_PEAK_NONE; Audio->EtatNormalise = FALSE; conv.Bool_MAJ_select = TRUE; } } if (FALSE == conv.bool_stop && Audio && Audio->Etat_Sox == ETAT_CONV_CD_WAITING && Audio->Etat_Wav == ETAT_CONV_CD_CONV_OK && Audio->EtatPeak == CD_NORM_PEAK_NONE) { VarCdExtract.PassFileUnique ++; if (VarCdExtract.PassFileUnique >= VarCdExtract.NbrFileUnique) { GList *list = NULL; gchar **PtrTabArgs = NULL; // conv_product_name_for_label (Audio->PathName_Dest_Wav); switch (VarCdExtract.ChoiceFileCue) { case 0 : break; case 1 : Audio->Etat_Flac = ETAT_CONV_CD_WAITING; break; case 2 : Audio->Etat_Ogg = ETAT_CONV_CD_WAITING; break; case 3 : Audio->Etat_Mpc = ETAT_CONV_CD_WAITING; break; } PtrTabArgs = filelc_AllocTabArgs(); pos = 3; PtrTabArgs [ pos++ ] = g_strdup ("sox"); list = g_list_first (VarCdExtract.ListFileFormatUnique); while (list) { if (NULL != (gchar *)list->data) { PtrTabArgs [ pos++ ] = g_strdup ((gchar *)list->data); } list = g_list_next (list); } PtrTabArgs [ pos++ ] = g_strdup ("-t"); PtrTabArgs [ pos++ ] = g_strdup (".wav"); PtrTabArgs [ pos++ ] = g_strdup ("-S"); PtrTabArgs [ pos++ ] = g_strdup ("-r"); PtrTabArgs [ pos++ ] = g_strdup ("44100"); PtrTabArgs [ pos++ ] = g_strdup ("-c"); PtrTabArgs [ pos++ ] = g_strdup ("2"); PtrTabArgs [ pos++ ] = g_strdup ("-o"); PtrTabArgs [ pos++ ] = g_strdup (VarCdExtract.NameFileFormatUnique); PtrTabArgs [ pos++ ] = NULL; conv_to_convert (PtrTabArgs, FALSE, SOX_WAV_TO_WAV, "SOX_WAV_TO_WAV"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); PRINT("DEBUG FOR @DZEF"); if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print("\t%s = %s\n\n", VarCdExtract.NameFileFormatUnique, libutils_test_file_exist (VarCdExtract.NameFileFormatUnique) ? "EXIST" : "NOT FOUND"); conv.Bool_MAJ_select = TRUE; } Audio->Etat_Sox = ETAT_CONV_CD_CONV_OK; } if (FALSE == conv.bool_stop && Audio && Audio->Etat_Flac == ETAT_CONV_CD_WAITING && Audio->Etat_Wav == ETAT_CONV_CD_CONV_OK && Audio->EtatPeak == CD_NORM_PEAK_NONE) { if( TRUE == OptionsCommandLine.BoolVerboseMode ) { g_print ("\n"); g_print ("SOURCE WAV <%s>\n", Audio->PathName_Dest_Wav); g_print ("DEST FLAC<%s>\n", Audio->PathName_Dest_Flac); } PtrTabArgs = filelc_AllocTabArgs(); g_free( PtrTabArgs[ 0 ] ); g_free( PtrTabArgs[ 1 ] ); g_free( PtrTabArgs[ 2 ] ); cdaudioextract_restitue_arg_to_conv( PtrTabArgs, Audio, NUM_FLAC ); conv_to_convert (PtrTabArgs, Audio->ListConv[ NUM_FLAC ].WithCommandLineUser, FLAC_WAV_TO_FLAC, "FLAC_WAV_TO_FLAC"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); Audio->EtatSelection_Flac = CD_ETAT_ATTENTE; if (TRUE == conv.bool_stop) Audio->Bool_Delette_Flac = TRUE; Audio->Etat_Flac = ETAT_CONV_CD_CONV_OK; conv.Bool_MAJ_select = TRUE; } else if (FALSE == conv.bool_stop && Audio && Audio->Etat_Ape == ETAT_CONV_CD_WAITING && Audio->Etat_Wav == ETAT_CONV_CD_CONV_OK && Audio->EtatPeak == CD_NORM_PEAK_NONE) { if( TRUE == OptionsCommandLine.BoolVerboseMode ) { g_print ("\n"); g_print ("SOURCE WAV <%s>\n", Audio->PathName_Dest_Wav); g_print ("DEST APE <%s>\n", Audio->PathName_Dest_Ape); } PtrTabArgs = filelc_AllocTabArgs(); g_free( PtrTabArgs[ 0 ] ); g_free( PtrTabArgs[ 1 ] ); g_free( PtrTabArgs[ 2 ] ); cdaudioextract_restitue_arg_to_conv (PtrTabArgs, Audio, NUM_APE); conv_to_convert (PtrTabArgs, Audio->ListConv[ NUM_APE ].WithCommandLineUser, MAC_WAV_TO_APE, "MAC_WAV_TO_APE"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); Audio->EtatSelection_Ape = CD_ETAT_ATTENTE; if (TRUE == conv.bool_stop) Audio->Bool_Delette_Ape = TRUE; Audio->Etat_Ape = ETAT_CONV_CD_CONV_OK; conv.Bool_MAJ_select = TRUE; } else if (FALSE == conv.bool_stop && Audio && Audio->Etat_WavPack == ETAT_CONV_CD_WAITING && Audio->Etat_Wav == ETAT_CONV_CD_CONV_OK && Audio->EtatPeak == CD_NORM_PEAK_NONE) { gchar *path = NULL; gchar *ptr = NULL; if( TRUE == OptionsCommandLine.BoolVerboseMode ) { g_print ("\n"); g_print ("SOURCE WAV <%s>\n", Audio->PathName_Dest_Wav); g_print ("DEST WAVPACK <%s>\n", Audio->PathName_Dest_WavPack); } Audio->EtatBoolWavpack = TRUE; PtrTabArgs = filelc_AllocTabArgs(); g_free( PtrTabArgs[ 0 ] ); g_free( PtrTabArgs[ 1 ] ); g_free( PtrTabArgs[ 2 ] ); cdaudioextract_restitue_arg_to_conv (PtrTabArgs, Audio, NUM_WAVPACK); conv_to_convert (PtrTabArgs, Audio->ListConv[ NUM_WAVPACK ].WithCommandLineUser, WAVPACK_WAV_TO_WAVPACK, "WAVPACK_WAV_TO_WAVPACK"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); Audio->EtatSelection_WavPack = CD_ETAT_ATTENTE; if (*optionsWavpack_get_wavpack_signature_md5 () != '\0') { // conv.bool_set_log_wavpack = TRUE; } path = g_strdup (Audio->PathName_Dest_Wav); ptr = strrchr (path, '.'); ptr ++; *ptr ++ = 'w'; *ptr ++ = 'v'; *ptr = '\0'; if (strcmp (path, Audio->PathName_Dest_WavPack) != 0) conv_copy_src_to_dest (path, Audio->PathName_Dest_WavPack); g_free (path); path = NULL; if (TRUE == conv.bool_stop) Audio->Bool_Delette_WavPack = TRUE; Audio->Etat_WavPack = ETAT_CONV_CD_CONV_OK; conv.Bool_MAJ_select = TRUE; } else if (FALSE == conv.bool_stop && Audio && Audio->Etat_Ogg == ETAT_CONV_CD_WAITING && Audio->Etat_Wav == ETAT_CONV_CD_CONV_OK && Audio->EtatPeak == CD_NORM_PEAK_NONE) { if( TRUE == OptionsCommandLine.BoolVerboseMode ) { g_print ("\n"); g_print ("SOURCE WAV <%s>\n", Audio->PathName_Dest_Wav); g_print ("DEST OGG <%s>\n", Audio->PathName_Dest_Ogg); } PtrTabArgs = filelc_AllocTabArgs(); g_free( PtrTabArgs[ 0 ] ); g_free( PtrTabArgs[ 1 ] ); g_free( PtrTabArgs[ 2 ] ); cdaudioextract_restitue_arg_to_conv (PtrTabArgs, Audio, NUM_OGG); conv_to_convert( PtrTabArgs, Audio->ListConv[ NUM_OGG ].WithCommandLineUser, OGGENC_WAV_TO_OGG, "OGGENC_WAV_TO_OGG"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); Audio->EtatSelection_Ogg = CD_ETAT_ATTENTE; if (TRUE == conv.bool_stop) Audio->Bool_Delette_Ogg = TRUE; Audio->Etat_Ogg = ETAT_CONV_CD_CONV_OK; conv.Bool_MAJ_select = TRUE; } else if (FALSE == conv.bool_stop && Audio && Audio->Etat_m4a == ETAT_CONV_CD_WAITING && Audio->Etat_Wav == ETAT_CONV_CD_CONV_OK && Audio->EtatPeak == CD_NORM_PEAK_NONE) { if( TRUE == OptionsCommandLine.BoolVerboseMode ) { g_print ("\n"); g_print ("SOURCE WAV <%s>\n", Audio->PathName_Dest_Wav); g_print ("DEST M4A <%s>\n", Audio->PathName_Dest_M4a); } PtrTabArgs = filelc_AllocTabArgs(); g_free( PtrTabArgs[ 0 ] ); g_free( PtrTabArgs[ 1 ] ); g_free( PtrTabArgs[ 2 ] ); cdaudioextract_restitue_arg_to_conv (PtrTabArgs, Audio, NUM_M4A); conv_to_convert( PtrTabArgs, Audio->ListConv[ NUM_M4A ].WithCommandLineUser, FAAC_WAV_TO_M4A, "FAAC_WAV_TO_M4A"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); Audio->EtatSelection_M4a = CD_ETAT_ATTENTE; if (TRUE == conv.bool_stop) Audio->Bool_Delette_M4a = TRUE; Audio->Etat_m4a = ETAT_CONV_CD_CONV_OK; conv.Bool_MAJ_select = TRUE; } else if (FALSE == conv.bool_stop && Audio && Audio->Etat_Aac == ETAT_CONV_CD_WAITING && Audio->Etat_Wav == ETAT_CONV_CD_CONV_OK && Audio->EtatPeak == CD_NORM_PEAK_NONE) { if( TRUE == OptionsCommandLine.BoolVerboseMode ) { g_print ("\n"); g_print ("SOURCE WAV <%s>\n", Audio->PathName_Dest_Wav); g_print ("DEST AAC <%s>\n", Audio->PathName_Dest_Aac); } PtrTabArgs = filelc_AllocTabArgs(); g_free( PtrTabArgs[ 0 ] ); g_free( PtrTabArgs[ 1 ] ); g_free( PtrTabArgs[ 2 ] ); cdaudioextract_restitue_arg_to_conv (PtrTabArgs, Audio, NUM_AAC); conv_to_convert( PtrTabArgs, Audio->ListConv[ NUM_AAC ].WithCommandLineUser, AACPLUSENC_WAV_TO_AAC, "AACPLUSENC_WAV_TO_AAC"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); Audio->EtatSelection_Aac = CD_ETAT_ATTENTE; if (TRUE == conv.bool_stop) Audio->Bool_Delette_Aac = TRUE; Audio->Etat_Aac = ETAT_CONV_CD_CONV_OK; conv.Bool_MAJ_select = TRUE; conv.bool_percent_conv = TRUE; } else if (FALSE == conv.bool_stop && Audio && Audio->Etat_Mpc == ETAT_CONV_CD_WAITING && Audio->Etat_Wav == ETAT_CONV_CD_CONV_OK && Audio->EtatPeak == CD_NORM_PEAK_NONE) { if( TRUE == OptionsCommandLine.BoolVerboseMode ) { g_print ("\n"); g_print ("SOURCE WAV <%s>\n", Audio->PathName_Dest_Wav); g_print ("DEST MPC <%s>\n", Audio->PathName_Dest_Mpc); } PtrTabArgs = filelc_AllocTabArgs(); g_free( PtrTabArgs[ 0 ] ); g_free( PtrTabArgs[ 1 ] ); g_free( PtrTabArgs[ 2 ] ); cdaudioextract_restitue_arg_to_conv (PtrTabArgs, Audio, NUM_MPC); conv_to_convert( PtrTabArgs, Audio->ListConv[ NUM_MPC ].WithCommandLineUser, MPPENC_WAV_TO_MPC, "MPPENC_WAV_TO_MPC"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); Audio->EtatSelection_Mpc = CD_ETAT_ATTENTE; if (TRUE == conv.bool_stop) Audio->Bool_Delette_Mpc = TRUE; Audio->Etat_Mpc = ETAT_CONV_CD_CONV_OK; conv.Bool_MAJ_select = TRUE; } else if (FALSE == conv.bool_stop && Audio && Audio->Etat_Mp3 == ETAT_CONV_CD_WAITING && Audio->Etat_Wav == ETAT_CONV_CD_CONV_OK && Audio->EtatPeak == CD_NORM_PEAK_NONE) { if( TRUE == OptionsCommandLine.BoolVerboseMode ) { g_print ("\n"); g_print ("SOURCE WAV <%s>\n", Audio->PathName_Dest_Wav); g_print ("DEST MP3 <%s>\n", Audio->PathName_Dest_Mp3); } PtrTabArgs = filelc_AllocTabArgs(); g_free( PtrTabArgs[ 0 ] ); g_free( PtrTabArgs[ 1 ] ); g_free( PtrTabArgs[ 2 ] ); cdaudioextract_restitue_arg_to_conv (PtrTabArgs, Audio, NUM_MP3); conv_to_convert( PtrTabArgs, Audio->ListConv[ NUM_MP3 ].WithCommandLineUser, LAME_WAV_TO_MP3, "LAME_WAV_TO_MP3"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); Audio->EtatSelection_Mp3 = CD_ETAT_ATTENTE; if (TRUE == conv.bool_stop) Audio->Bool_Delette_Mp3 = TRUE; Audio->Etat_Mp3 = ETAT_CONV_CD_CONV_OK; conv.Bool_MAJ_select = TRUE; } if (TRUE == conv.bool_stop) { Audio->Bool_Delette_Mp3 = TRUE; Audio->Bool_Delette_Ogg = TRUE; break; } if (Audio && Audio->Etat_Wav != ETAT_CONV_CD_WAITING && Audio->Etat_Flac != ETAT_CONV_CD_WAITING && Audio->Etat_Mp3 != ETAT_CONV_CD_WAITING && Audio->Etat_Ogg != ETAT_CONV_CD_WAITING && Audio->Etat_m4a != ETAT_CONV_CD_WAITING && Audio->Etat_Aac != ETAT_CONV_CD_WAITING && Audio->Etat_Mpc != ETAT_CONV_CD_WAITING && Audio->Etat_Ape != ETAT_CONV_CD_WAITING && Audio->Etat_WavPack != ETAT_CONV_CD_WAITING && Audio->Etat_Sox != ETAT_CONV_CD_WAITING && Audio->EtatPeak == CD_NORM_PEAK_NONE) { ListOne = g_list_next(ListOne); } if (TRUE == conv.bool_stop) { Audio->Bool_Delette_Mp3 = TRUE; Audio->Bool_Delette_Ogg = TRUE; break; } } PRINT("FIN THREAD CONVERSIONS"); // close(conv.tube_conv [ 0 ]); conv.bool_thread_conv = FALSE; pthread_exit(0); } // // static gint cdaudioextract_timeout (gpointer data) { if (TRUE == conv.BoolPutTextview && TRUE == WinVte_is_ok()) { GList *List = NULL; gchar *Ptr = NULL; FILE *fp = NULL; if (NULL != (List = g_list_first (conv.ListPutTextview))) { if( TRUE == OptionsCd_get_save_log_mode_expert()) { gchar *StrModeExpert = NULL; StrModeExpert = g_strdup_printf( "%s/LogExpertMode.txt", VarCdExtract.PathDestinationModeExpert ); fp = fopen( StrModeExpert, "a" ); g_free( StrModeExpert ); StrModeExpert = NULL; } while (List) { if (NULL != (Ptr = (gchar *)List->data)) { WinVte_window_write_va( Ptr, NULL ); // SAVE LOG FROM CDPARANOIA MODE EXPERT if( TRUE == OptionsCd_get_save_log_mode_expert()) { fprintf( fp, "%s", Ptr ); } g_free (Ptr); Ptr = NULL; List->data = NULL; } List = g_list_next(List); } if( TRUE == OptionsCd_get_save_log_mode_expert()) fclose( fp ); conv.BoolPutTextview = FALSE; } } if (TRUE == conv.Bool_MAJ_select) { conv.Bool_MAJ_select = FALSE; cdaudio_update_glist (); return TRUE; } if (TRUE == conv.BoolIsExtract || TRUE == conv.BoolIsConvert || TRUE == conv.BoolIsCopy || TRUE == conv.BoolIsNormalise || TRUE == conv.BoolIsReplaygain) { gchar Str [ 200 ]; Str [ 0 ] = '\0'; if (TRUE == conv.BoolIsExtract) { strcat (Str, "Extraction "); } if (TRUE == conv.BoolIsConvert) { strcat (Str, "Conversion "); } if (TRUE == conv.BoolIsCopy) { strcat (Str, "Copie "); } if (TRUE == conv.BoolIsNormalise) { strcat (Str, "Normalise "); } if (TRUE == conv.BoolIsReplaygain) { strcat (Str, "Replaygain"); } WindScan_set_label (Str); } if (FALSE == conv.bool_thread_conv && FALSE == conv.bool_thread_extract && conv.total_percent < 1.0) { conv.total_percent = 1.0; conv.bool_percent_extract = TRUE; } if (TRUE == conv.bool_percent_extract || TRUE == conv.bool_percent_conv) { gchar *Str = NULL; // DEBUG if( conv.total_percent > 1.0 ) conv.total_percent = 1.0; Str = g_strdup_printf ("%d%%", (int)(conv.total_percent * 100)); WindScan_set_progress (Str, conv.total_percent); g_free (Str); Str = NULL; if (conv.bool_percent_extract) conv.bool_percent_extract = FALSE; if (conv.bool_percent_conv) conv.bool_percent_conv = FALSE; if (FALSE == conv.bool_thread_conv && FALSE == conv.bool_thread_extract) return (TRUE); } if (FALSE == conv.bool_thread_conv && FALSE == conv.bool_thread_extract) { CD_AUDIO *Audio = NULL; GList *List = NULL; FILE *fp = NULL; gtk_timeout_remove (conv.handler_timeout_conv); // Creation du fichier *.m3u if (TRUE == var_cd.Bool_create_file_m3u) { if (NULL != (fp = fopen (var_cd.Pathname_m3u, "w"))) { List = g_list_first (EnteteCD.GList_Audio_cd); while (List) { if (NULL != (Audio = (CD_AUDIO *)List->data)) { if (Audio->Etat_Flac == ETAT_CONV_CD_CONV_OK || Audio->Etat_Wav == ETAT_CONV_CD_CONV_OK || Audio->Etat_Mp3 == ETAT_CONV_CD_CONV_OK || Audio->Etat_Ogg == ETAT_CONV_CD_CONV_OK || Audio->Etat_m4a == ETAT_CONV_CD_CONV_OK || Audio->Etat_Aac == ETAT_CONV_CD_CONV_OK || Audio->Etat_Mpc == ETAT_CONV_CD_CONV_OK || Audio->Etat_Ape == ETAT_CONV_CD_CONV_OK || Audio->Etat_WavPack == ETAT_CONV_CD_CONV_OK) { if (Audio->Etat_Flac == ETAT_CONV_CD_CONV_OK) fprintf (fp, "%s\n", Audio->PathName_Dest_Flac); if (Audio->Etat_Wav == ETAT_CONV_CD_CONV_OK && Audio->BoolM3uForWav == TRUE) fprintf (fp, "%s\n", Audio->PathName_Dest_Wav); if (Audio->Etat_Mp3 == ETAT_CONV_CD_CONV_OK) fprintf (fp, "%s\n", Audio->PathName_Dest_Mp3); if (Audio->Etat_Ogg == ETAT_CONV_CD_CONV_OK) fprintf (fp, "%s\n", Audio->PathName_Dest_Ogg); if (Audio->Etat_m4a == ETAT_CONV_CD_CONV_OK) fprintf (fp, "%s\n", Audio->PathName_Dest_M4a); if (Audio->Etat_Aac == ETAT_CONV_CD_CONV_OK) fprintf (fp, "%s\n", Audio->PathName_Dest_Aac); if (Audio->Etat_Mpc == ETAT_CONV_CD_CONV_OK) fprintf (fp, "%s\n", Audio->PathName_Dest_Mpc); if (Audio->Etat_Ape == ETAT_CONV_CD_CONV_OK) fprintf (fp, "%s\n", Audio->PathName_Dest_Ape); if (Audio->Etat_WavPack == ETAT_CONV_CD_CONV_OK) fprintf (fp, "%s\n", Audio->PathName_Dest_WavPack); } } List = g_list_next(List); } fclose (fp); } g_free (var_cd.Pathname_m3u); var_cd.Pathname_m3u = NULL; if (NULL != (fp = fopen (var_cd.Pathname_xspf, "w"))) { fprintf (fp, "\n"); fprintf (fp, "\n"); fprintf (fp, " \n"); List = g_list_first (EnteteCD.GList_Audio_cd); while (List) { if (NULL != (Audio = (CD_AUDIO *)List->data)) { if (Audio->Etat_Flac == ETAT_CONV_CD_CONV_OK || Audio->Etat_Wav == ETAT_CONV_CD_CONV_OK || Audio->Etat_Mp3 == ETAT_CONV_CD_CONV_OK || Audio->Etat_Ogg == ETAT_CONV_CD_CONV_OK || Audio->Etat_m4a == ETAT_CONV_CD_CONV_OK || Audio->Etat_Aac == ETAT_CONV_CD_CONV_OK || Audio->Etat_Mpc == ETAT_CONV_CD_CONV_OK || Audio->Etat_Ape == ETAT_CONV_CD_CONV_OK || Audio->Etat_WavPack == ETAT_CONV_CD_CONV_OK) { if (Audio->Etat_Flac == ETAT_CONV_CD_CONV_OK) fprintf (fp, " %s\n", Audio->PathName_Dest_Flac); if (Audio->Etat_Wav == ETAT_CONV_CD_CONV_OK && Audio->BoolM3uForWav == TRUE) fprintf (fp, " %s\n", Audio->PathName_Dest_Wav); if (Audio->Etat_Mp3 == ETAT_CONV_CD_CONV_OK) fprintf (fp, " %s\n", Audio->PathName_Dest_Mp3); if (Audio->Etat_Ogg == ETAT_CONV_CD_CONV_OK) fprintf (fp, " %s\n", Audio->PathName_Dest_Ogg); if (Audio->Etat_m4a == ETAT_CONV_CD_CONV_OK) fprintf (fp, " %s\n", Audio->PathName_Dest_M4a); if (Audio->Etat_Aac == ETAT_CONV_CD_CONV_OK) fprintf (fp, " %s\n", Audio->PathName_Dest_Aac); if (Audio->Etat_Mpc == ETAT_CONV_CD_CONV_OK) fprintf (fp, " %s\n", Audio->PathName_Dest_Mpc); if (Audio->Etat_Ape == ETAT_CONV_CD_CONV_OK) fprintf (fp, " %s\n", Audio->PathName_Dest_Ape); if (Audio->Etat_WavPack == ETAT_CONV_CD_CONV_OK) fprintf (fp, " %s\n", Audio->PathName_Dest_WavPack); } } List = g_list_next(List); } fprintf (fp, " \n"); fprintf (fp, "\n"); fclose (fp); } g_free (var_cd.Pathname_xspf); var_cd.Pathname_xspf = NULL; } // Delete alloc name files of extraction/conversion List = g_list_first (EnteteCD.GList_Audio_cd); while (List) { if (NULL != (Audio = (CD_AUDIO *)List->data)) { if (TRUE == Audio->EtatBoolWavpack) { // WinError_add_to_dsk_ (Audio->PathName_Dest_WavPack); } if (Audio->PathName_Dest_Flac) { if (Audio->Bool_Delette_Flac) { if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("g_unlink (%s)\n", Audio->PathName_Dest_Flac); g_unlink (Audio->PathName_Dest_Flac); } g_free (Audio->PathName_Dest_Flac); Audio->PathName_Dest_Flac = NULL; } if (Audio->PathName_Dest_Wav) { if (Audio->Bool_Delette_Wav) { if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("g_unlink (%s)\n", Audio->PathName_Dest_Wav); g_unlink (Audio->PathName_Dest_Wav); } g_free (Audio->PathName_Dest_Wav); Audio->PathName_Dest_Wav = NULL; } if (Audio->PathName_Dest_Mp3) { if (Audio->Bool_Delette_Mp3) { if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("g_unlink (%s)\n", Audio->PathName_Dest_Mp3); g_unlink (Audio->PathName_Dest_Mp3); } g_free (Audio->PathName_Dest_Mp3); Audio->PathName_Dest_Mp3 = NULL; } if (Audio->PathName_Dest_Ogg) { if (Audio->Bool_Delette_Ogg) { if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("g_unlink (%s)\n", Audio->PathName_Dest_Ogg); g_unlink (Audio->PathName_Dest_Ogg); } g_free (Audio->PathName_Dest_Ogg); Audio->PathName_Dest_Ogg = NULL; } if (Audio->PathName_Dest_M4a) { if (Audio->Bool_Delette_M4a) { if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("g_unlink (%s)\n", Audio->PathName_Dest_M4a); g_unlink (Audio->PathName_Dest_M4a); } g_free (Audio->PathName_Dest_M4a); Audio->PathName_Dest_M4a = NULL; } if (Audio->PathName_Dest_Aac) { if (Audio->Bool_Delette_Aac) { if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("g_unlink (%s)\n", Audio->PathName_Dest_Aac); g_unlink (Audio->PathName_Dest_Aac); } g_free (Audio->PathName_Dest_Aac); Audio->PathName_Dest_Aac = NULL; } if (Audio->PathName_Dest_Mpc) { if (Audio->Bool_Delette_Mpc) { if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("g_unlink (%s)\n", Audio->PathName_Dest_Mpc); g_unlink (Audio->PathName_Dest_Mpc); } g_free (Audio->PathName_Dest_Mpc); Audio->PathName_Dest_Mpc = NULL; } if (Audio->PathName_Dest_Ape) { if (Audio->Bool_Delette_Ape) { if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("g_unlink (%s)\n", Audio->PathName_Dest_Ape); g_unlink (Audio->PathName_Dest_Ape); } g_free (Audio->PathName_Dest_Ape); Audio->PathName_Dest_Ape = NULL; } if (Audio->PathName_Dest_WavPack) { if (Audio->Bool_Delette_WavPack) { if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("g_unlink (%s)\n", Audio->PathName_Dest_WavPack); g_unlink (Audio->PathName_Dest_WavPack); } g_free (Audio->PathName_Dest_WavPack); Audio->PathName_Dest_WavPack = NULL; } if( Audio->PathName_Dest_Tmp ) { g_free( Audio->PathName_Dest_Tmp ); Audio->PathName_Dest_Tmp = NULL; } if (Audio->ExtractExpert.Name1) { g_free (Audio->ExtractExpert.Name1); Audio->ExtractExpert.Name1 = NULL; } if (Audio->ExtractExpert.Name2) { g_free (Audio->ExtractExpert.Name2); Audio->ExtractExpert.Name2 = NULL; } } List = g_list_next(List); } if (VarCdExtract.ChoiceFileCue > 0) { if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("g_unlink (%s)\n", VarCdExtract.PathName_SrcWavSox); g_unlink (VarCdExtract.PathName_SrcWavSox); } g_free (VarCdExtract.PathName_SrcWavSox); VarCdExtract.PathName_SrcWavSox = NULL; g_free (VarCdExtract.PathName_DestFlacSox); VarCdExtract.PathName_DestFlacSox = NULL; g_free (VarCdExtract.PathName_DestOggSox); VarCdExtract.PathName_DestOggSox = NULL; g_free (VarCdExtract.PathName_DestMpcSox); VarCdExtract.PathName_DestMpcSox = NULL; CdNormalise_set_list_collectif_remove (); // Delete tmp rep if (conv.TmpRep) conv.TmpRep = libutils_remove_temporary_rep (conv.TmpRep); cdaudio_update_glist (); cdaudio_set_flag_buttons (); g_chdir (VarCdExtract.PtrDirActuel); g_free (VarCdExtract.PtrDirActuel); VarCdExtract.PtrDirActuel = NULL; PRINT("FIN TIMEOUT"); cdcue_print_base_ioctl (); var_cd.TypeCreateCue = TYPE_CUE_FILE; cdcue_write_cue (); cdaudioextract_remove_list (); WindScan_close (); if (FALSE == conv.bool_stop) { NotifySend_msg (_("XCFA: Extraction CD"), _("Ok"), conv.bool_stop); } else { NotifySend_msg (_("XCFA: Extraction CD"), _("Arret par l'utilisateur"), conv.bool_stop); } } return (TRUE); } /* *--------------------------------------------------------------------------- * INIT DATAS *--------------------------------------------------------------------------- */ ETAT_CONV_CD cdaudioextract_get_etat_sox (void) { gchar *Ptr = NULL; Ptr = (gchar *)gtk_entry_get_text (GTK_ENTRY (var_cd.Adr_entry_name_file_cue)); if (TRUE == cdaudio_get_bool_is_wav_extract_to_cue () && TRUE == gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON (GLADE_GET_OBJECT("checkbutton_creation_fichier_unique_cue"))) && *Ptr != '\0') { return (ETAT_CONV_CD_WAITING); } return (ETAT_CONV_CD_NONE); } // // void cdaudioextract_set_flags_before_extraction (void) { GList *List = NULL; CD_AUDIO *Audio = NULL; gchar *PathDest = NULL; gint IndexExtraction; gchar *Ptr = NULL; // PRINT_FUNC_LF(); EnteteCD.NameCD_Device = scan_get_text_combo_cd (_CD_); if (cdaudioextract_get_etat_sox () == ETAT_CONV_CD_WAITING) { VarCdExtract.BoolFormatUnique = TRUE; VarCdExtract.ChoiceFileCue = gtk_combo_box_get_active ( GTK_COMBO_BOX ( GTK_WIDGET (GLADE_GET_OBJECT("combobox_choice_file_cue")))); // Pour SOX // Si conversion vers FLAC | OGG | MPC if (VarCdExtract.ChoiceFileCue > 0) conv.total_convert ++; } IndexExtraction = 0; List = g_list_first (EnteteCD.GList_Audio_cd); while (List) { if (NULL != (Audio = (CD_AUDIO *)List->data)) { cdcue_set_BoolExtract (IndexExtraction, FALSE); Audio->BoolM3uForWav = FALSE; // INIT ETAT Audio->EtatBoolWavpack = FALSE; /* MAJ des flags */ Audio->Etat_Mp3 = Audio->EtatSelection_Mp3 >= CD_ETAT_SELECT ? ETAT_CONV_CD_WAITING : ETAT_CONV_CD_NONE; Audio->Etat_Ogg = Audio->EtatSelection_Ogg >= CD_ETAT_SELECT ? ETAT_CONV_CD_WAITING : ETAT_CONV_CD_NONE; Audio->Etat_Wav = Audio->EtatSelection_Wav >= CD_ETAT_SELECT ? ETAT_CONV_CD_WAITING : ETAT_CONV_CD_NONE; Audio->Etat_Flac = Audio->EtatSelection_Flac >= CD_ETAT_SELECT ? ETAT_CONV_CD_WAITING : ETAT_CONV_CD_NONE; Audio->Etat_m4a = Audio->EtatSelection_M4a >= CD_ETAT_SELECT ? ETAT_CONV_CD_WAITING : ETAT_CONV_CD_NONE; Audio->Etat_Aac = Audio->EtatSelection_Aac >= CD_ETAT_SELECT ? ETAT_CONV_CD_WAITING : ETAT_CONV_CD_NONE; Audio->Etat_Mpc = Audio->EtatSelection_Mpc >= CD_ETAT_SELECT ? ETAT_CONV_CD_WAITING : ETAT_CONV_CD_NONE; Audio->Etat_Ape = Audio->EtatSelection_Ape >= CD_ETAT_SELECT ? ETAT_CONV_CD_WAITING : ETAT_CONV_CD_NONE; Audio->Etat_WavPack = Audio->EtatSelection_WavPack >= CD_ETAT_SELECT ? ETAT_CONV_CD_WAITING : ETAT_CONV_CD_NONE; Audio->Etat_Sox = ETAT_CONV_CD_NONE; if (Audio->Etat_Wav == ETAT_CONV_CD_WAITING) Audio->Etat_Sox = cdaudioextract_get_etat_sox (); if (Audio->Etat_Sox == ETAT_CONV_CD_WAITING) conv.total_convert ++; if (Audio->Etat_Mp3 == ETAT_CONV_CD_WAITING) Audio->Etat_Wav = ETAT_CONV_CD_WAITING; if (Audio->Etat_Ogg == ETAT_CONV_CD_WAITING) Audio->Etat_Wav = ETAT_CONV_CD_WAITING; if (Audio->Etat_Flac == ETAT_CONV_CD_WAITING) Audio->Etat_Wav = ETAT_CONV_CD_WAITING; if (Audio->Etat_m4a == ETAT_CONV_CD_WAITING) Audio->Etat_Wav = ETAT_CONV_CD_WAITING; if (Audio->Etat_Aac == ETAT_CONV_CD_WAITING) Audio->Etat_Wav = ETAT_CONV_CD_WAITING; if (Audio->Etat_Mpc == ETAT_CONV_CD_WAITING) Audio->Etat_Wav = ETAT_CONV_CD_WAITING; if (Audio->Etat_Ape == ETAT_CONV_CD_WAITING) Audio->Etat_Wav = ETAT_CONV_CD_WAITING; if (Audio->Etat_WavPack == ETAT_CONV_CD_WAITING) Audio->Etat_Wav = ETAT_CONV_CD_WAITING; if (Audio->Etat_Sox == ETAT_CONV_CD_WAITING) Audio->Etat_Wav = ETAT_CONV_CD_WAITING; /* calcul total ripping tracks */ if (Audio->EtatSelection_Flac >= CD_ETAT_SELECT || Audio->EtatSelection_Wav >= CD_ETAT_SELECT || Audio->EtatSelection_Mp3 >= CD_ETAT_SELECT || Audio->EtatSelection_Ogg >= CD_ETAT_SELECT || Audio->EtatSelection_M4a >= CD_ETAT_SELECT || Audio->EtatSelection_Aac >= CD_ETAT_SELECT || Audio->EtatSelection_Mpc >= CD_ETAT_SELECT || Audio->EtatSelection_Ape >= CD_ETAT_SELECT || Audio->EtatSelection_WavPack >= CD_ETAT_SELECT ) { if (Config.ExtractCdWith == EXTRACT_WITH_CDPARANOIA_EXPERT) { conv.total_rip ++; // PASS 2 } if( Config.ExtractCdWith == EXTRACT_WITH_CDPARANOIA || Config.ExtractCdWith == EXTRACT_WITH_CDPARANOIA_MODE_2 ) { conv.total_rip ++; // NORMAL PASS } conv.total_rip ++; // NORMAL PASS cdcue_set_BoolExtract (IndexExtraction, TRUE); } /* calcul total convert file */ if (Audio->EtatSelection_Mp3 >= CD_ETAT_SELECT) conv.total_convert ++; if (Audio->EtatSelection_Ogg >= CD_ETAT_SELECT) conv.total_convert ++; if (Audio->EtatSelection_Flac >= CD_ETAT_SELECT) conv.total_convert ++; if (Audio->EtatSelection_M4a >= CD_ETAT_SELECT) conv.total_convert ++; if (Audio->EtatSelection_Aac >= CD_ETAT_SELECT) conv.total_convert ++; if (Audio->EtatSelection_Mpc >= CD_ETAT_SELECT) conv.total_convert ++; if (Audio->EtatSelection_Ape >= CD_ETAT_SELECT) conv.total_convert ++; if (Audio->EtatSelection_WavPack >= CD_ETAT_SELECT) conv.total_convert ++; // if (TRUE == Audio->EtatNormalise) conv.total_convert += 2; /* init var to FALSE and NULL */ Audio->Bool_Delette_Flac = FALSE; Audio->Bool_Delette_Wav = FALSE; Audio->Bool_Delette_Mp3 = FALSE; Audio->Bool_Delette_Ogg = FALSE; Audio->Bool_Delette_M4a = FALSE; Audio->Bool_Delette_Aac = FALSE; Audio->Bool_Delette_Mpc = FALSE; Audio->Bool_Delette_Ape = FALSE; Audio->Bool_Delette_WavPack = FALSE; Audio->PathName_Dest_Flac = NULL; Audio->PathName_Dest_Wav = NULL; Audio->PathName_Dest_Mp3 = NULL; Audio->PathName_Dest_Ogg = NULL; Audio->PathName_Dest_M4a = NULL; Audio->PathName_Dest_Aac = NULL; Audio->PathName_Dest_Mpc = NULL; Audio->PathName_Dest_Ape = NULL; Audio->PathName_Dest_WavPack = NULL; // Create REP DEST if (NULL == PathDest) { PathDest = cdaudio_get_result_destination (); g_mkdir_with_parents (PathDest, 0700); if( NULL != VarCdExtract.PathDestinationModeExpert ) { g_free( VarCdExtract.PathDestinationModeExpert ); VarCdExtract.PathDestinationModeExpert = NULL; } VarCdExtract.PathDestinationModeExpert = g_strdup( PathDest ); } // Create tmp rep if( NULL == conv.TmpRep ) conv.TmpRep = libutils_create_temporary_rep (Config.PathnameTMP, PATH_TMP_XCFA_AUDIOCD); if( NULL == Audio->PathName_Dest_Tmp ) Audio->PathName_Dest_Tmp = g_strdup_printf( "%s/TempAudioExtract_%02d.wav", conv.TmpRep, IndexExtraction +1 ); if (Audio->Etat_Wav == ETAT_CONV_CD_WAITING) { switch (Config.ExtractCdWith) { case EXTRACT_WITH_CDPARANOIA : case EXTRACT_WITH_CDPARANOIA_MODE_2 : if (Audio->EtatSelection_Wav <= CD_ETAT_ATTENTE_EXIST) { Audio->PathName_Dest_Wav = g_strdup_printf ("%s/%s.wav", conv.TmpRep, Audio->NameSong); } else { Audio->BoolM3uForWav = TRUE; if (Audio->tags->Album && *Audio->tags->Album) { Audio->PathName_Dest_Wav = g_strdup_printf ("%s/%s.wav", PathDest, Audio->NameSong); } else { Audio->PathName_Dest_Wav = g_strdup_printf ("%s/%s.wav", PathDest, Audio->NameSong); } } break; case EXTRACT_WITH_CDPARANOIA_EXPERT : if (Audio->EtatSelection_Wav <= CD_ETAT_ATTENTE_EXIST) { Audio->PathName_Dest_Wav = g_strdup_printf ("%s/%s.wav", conv.TmpRep, Audio->NameSong); } else { Audio->BoolM3uForWav = TRUE; if (Audio->tags->Album && *Audio->tags->Album) { Audio->PathName_Dest_Wav = g_strdup_printf ("%s/%s.wav", PathDest, Audio->NameSong); } else { Audio->PathName_Dest_Wav = g_strdup_printf ("%s/%s.wav", PathDest, Audio->NameSong); } } Audio->ExtractExpert.Name1 = g_strdup_printf ("%s/TrackExpert_1.wav", conv.TmpRep); Audio->ExtractExpert.Name2 = g_strdup_printf ("%s/TrackExpert_2.wav", conv.TmpRep); break; case EXTRACT_WITH_CDDA2WAV : if (Audio->EtatSelection_Wav <= CD_ETAT_ATTENTE_EXIST) { Audio->PathName_Dest_Wav = g_strdup_printf ("%s/%s.wav", conv.TmpRep, Audio->NameSong); } else { Audio->PathName_Dest_Wav = g_strdup_printf ("%s/%s.wav", PathDest, Audio->NameSong); Audio->BoolM3uForWav = TRUE; } break; } } if (TRUE == VarCdExtract.BoolFormatUnique && NULL == VarCdExtract.NameFileFormatUnique) { Ptr = (gchar *)gtk_entry_get_text (GTK_ENTRY (var_cd.Adr_entry_name_file_cue)); VarCdExtract.NameFileFormatUnique = g_strdup_printf ("%s/%s.wav", PathDest, Ptr); } g_free (BaseIoctl.PathNameDestFileCue); BaseIoctl.PathNameDestFileCue = NULL; Ptr = (gchar *)gtk_entry_get_text (GTK_ENTRY (var_cd.Adr_entry_name_file_cue)); BaseIoctl.PathNameDestFileCue = g_strdup_printf ("%s/%s.cue", PathDest, Ptr); Audio->PathName_Dest_Ogg = g_strdup_printf ("%s/%s.ogg", PathDest, Audio->NameSong); Audio->PathName_Dest_Mp3 = g_strdup_printf ("%s/%s.mp3", PathDest, Audio->NameSong); Audio->PathName_Dest_Flac = g_strdup_printf ("%s/%s.flac", PathDest, Audio->NameSong); Audio->PathName_Dest_M4a = g_strdup_printf ("%s/%s.m4a", PathDest, Audio->NameSong); Audio->PathName_Dest_Aac = g_strdup_printf ("%s/%s.aac", PathDest, Audio->NameSong); Audio->PathName_Dest_Mpc = g_strdup_printf ("%s/%s.mpc", PathDest, Audio->NameSong); Audio->PathName_Dest_Ape = g_strdup_printf ("%s/%s.ape", PathDest, Audio->NameSong); Audio->PathName_Dest_WavPack = g_strdup_printf ("%s/%s.wv", PathDest, Audio->NameSong); if (TRUE == var_cd.Bool_create_file_m3u && NULL == var_cd.Pathname_m3u && NULL != PathDest) { if (*Config.StringNameFile_m3u_xspf == '\0') { var_cd.Pathname_m3u = g_strdup_printf ("%s/FileM3u.m3u", PathDest); } else { var_cd.Pathname_m3u = g_strdup_printf ("%s/%s.m3u", PathDest, Config.StringNameFile_m3u_xspf); } } if (TRUE == var_cd.Bool_create_file_m3u && NULL == var_cd.Pathname_xspf && NULL != PathDest) { if (*Config.StringNameFile_m3u_xspf == '\0') { var_cd.Pathname_xspf = g_strdup_printf ("%s/FileXspf.xspf", PathDest); } else { var_cd.Pathname_xspf = g_strdup_printf ("%s/%s.xspf", PathDest, Config.StringNameFile_m3u_xspf); } } } IndexExtraction ++; List = g_list_next(List); } g_free (PathDest); PathDest = NULL; } /* *--------------------------------------------------------------------------- * FUNC FOR EXTRACTIONS / CONVERSIONS *--------------------------------------------------------------------------- */ void cdaudioextract_extraction_cd_to_file_action (void) { pthread_t nmr_tid; // PRINT_FUNC_LF(); if (TRUE == cdaudio_get_bool_is_wav_extract_to_cue () && TRUE == gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON (GLADE_GET_OBJECT("checkbutton_creation_fichier_unique_cue")))) { gchar *Ptr = NULL; Ptr = (gchar *)gtk_entry_get_text (GTK_ENTRY (var_cd.Adr_entry_name_file_cue)); if (*Ptr == '\0') { wininfo_create ( WindMain, _("Nom de fichier unique absent"), _("Veuillez saisir un nom pour le fichier unique"), ""); return; } } if (gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON (var_options.Adr_radiobutton_extract_with_cdparanoia)) == TRUE) Config.ExtractCdWith = EXTRACT_WITH_CDPARANOIA; else if (gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON (var_options.Adr_radiobutton_cdparanoia_mode_2)) == TRUE) Config.ExtractCdWith = EXTRACT_WITH_CDPARANOIA_MODE_2; else if (gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON (var_options.Adr_radiobutton_cdparanoia_mode_expert)) == TRUE) Config.ExtractCdWith = EXTRACT_WITH_CDPARANOIA_EXPERT; else if (gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON (var_options.Adr_radiobutton_extract_with_cdda2wav)) == TRUE) Config.ExtractCdWith = EXTRACT_WITH_CDDA2WAV; if( conv.bool_thread_conv == TRUE || conv.bool_thread_extract == TRUE ) { PRINT("conv.bool_thread_conv == TRUE || conv.bool_thread_extract == TRUE -> RETURN" ); return; } conv_reset_struct (WindScan_close_request); VarCdExtract.BoolFormatUnique = FALSE; if (VarCdExtract.NameFileFormatUnique != NULL) g_free (VarCdExtract.NameFileFormatUnique); VarCdExtract.NameFileFormatUnique = NULL; g_free (BaseIoctl.PathNameDestFileCue); BaseIoctl.PathNameDestFileCue = NULL; cdaudioextract_set_flags_before_extraction (); WindScan_open ("Extract / Convert from CD", WINDSCAN_PULSE); WindScan_set_label ("Extract from CD ..."); WindScan_set_pulse (); if (EXTRACT_WITH_CDPARANOIA_EXPERT == Config.ExtractCdWith) { WindScan_show_expander (); // cwhile (gtk_events_pending()) gtk_main_iteration(); WinVte_reset(); } conv.bool_thread_conv = TRUE; VarCdExtract.NbrFileUnique = 0; VarCdExtract.PassFileUnique = 0; VarCdExtract.ListFileFormatUnique = NULL; VarCdExtract.NbrList = 50; VarCdExtract.ComboNumActive = gtk_combo_box_get_active (GTK_COMBO_BOX (var_cd.Adr_combobox_normalise_cd)); VarCdExtract.BoolListIsPeakAlbum = cdaudioextract_create_list_is_Extract (); cdaudioextract_create_list_is_Convert (); VarCdExtract.PtrDirActuel = g_get_current_dir (); g_chdir (conv.TmpRep); conv.bool_thread_conv = TRUE; pthread_create (&nmr_tid, NULL ,(void *)cdaudioextract_thread_conversion_from_cd, (void *)NULL); conv.bool_thread_extract = TRUE; pthread_create (&nmr_tid, NULL ,(void *)cdaudioextract_thread_extraction_from_cd, (void *)NULL); PRINT("DEBUT TIMEOUT"); conv.handler_timeout_conv = gtk_timeout_add (50, cdaudioextract_timeout, 0); } xcfa-4.3.6/src/file.h0000644000175000017500000005650312164050420011250 00000000000000 /* * file : file.h * project : xcfa * with : Gtk-2 * * copyright :( C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifndef file_h #define file_h 1 typedef struct { gboolean bool_tag_cd; // TRUE is CD-AUDIO else is FILE gboolean bool_save; // TRUE -> save gchar *Album; // %b gchar *Artist; // %a gchar *Title; // %d gchar *Number; // %c gint IntNumber; // gchar *Genre; // %g gint IntGenre; // gchar *Year; // %e gint IntYear; // gchar *Comment; // gchar *Description; // } TAGS; // // --------------------------------------------------------------------------- // I N F O _ // --------------------------------------------------------------------------- // typedef struct { gint level; // Niveau en dBFS gint NewLevel; // Nouveau niveau en dBFS } LEVEL_DBFS; typedef struct { gchar *time; // Temps d'ecoute guint SecTime; // Temps d'ecoute en secondes gchar *hertz; // TAGS *tags; // Tags } INFO_M4A; typedef struct { gchar *time; // Temps d'ecoute guint SecTime; // Temps d'ecoute en secondes gchar *hertz; // TAGS *tags; // Tags } INFO_AAC; typedef struct { gboolean BoolBwf; // 'fmt ', 'bext', 'qlty', 'levl', 'link','axml' gchar *time; // Temps d'ecoute guint SecTime; // Temps d'ecoute en secondes gchar *hertz; // Taux d'échantillonnage en hertz( qualité du son) gchar *voie; // 1, 2, 4, 6 gchar *bits; // 8, 16, ,24, 32 ou 64 gchar *NewHertz; // Nouvelle valeur gchar *NewVoie; // Nouvelle valeur gchar *NewBits; // Nouvelle valeur gboolean BoolConv; // TRUE si nouvelles valeurs differenetes de anciennes valeurs TAGS *tags; // Tags LEVEL_DBFS LevelDbfs; // } INFO_WAV; typedef enum { // type: bitrate: NONE_MPEG = -1, MPEG_1 = 0, // MPV_1 [ 32 40 48 56 64 80 96 112 128 160 192 224 256 320 ] MPEG_2, // MPV_2 [ 8 16 24 32 40 48 56 64 80 96 112 128 144 160 ] MPEG_25 // MPV_25 [ 8 16 24 32 40 48 56 64 80 96 112 128 144 160 ] } MPEG_IS; typedef struct { gchar *bitrate; // gchar *time; // Temps d'ecoute guint SecTime; // Temps d'ecoute en secondes MPEG_IS mpeg_is; // gchar *size; // TAGS *tags; // Tags LEVEL_DBFS LevelDbfs; // } INFO_MP3; typedef struct { gchar *Channels; // gchar *Rate; // gchar *Nominal_bitrate; // gchar *time; // Temps d'ecoute guint SecTime; // Temps d'ecoute en secondes gchar *size; // TAGS *tags; // Tags LEVEL_DBFS LevelDbfs; // Datas du dBFS } INFO_OGG; typedef struct { gchar *time; // Temps d'ecoute guint SecTime; // Temps d'ecoute en secondes TAGS *tags; // Tags } INFO_FLAC; typedef struct { TAGS *tags; // Tags } INFO_WMA; typedef struct { TAGS *tags; // Tags } INFO_RM; typedef struct { TAGS *tags; // Tags } INFO_DTS; typedef struct { TAGS *tags; // Tags } INFO_AIFF; typedef struct { gchar *namefile; // Nom complet du fichier TAGS *tags; // Tags } INFO_MPC; typedef struct { TAGS *tags; // Tags gchar *time; // Temps d'ecoute guint SecTime; // Temps d'ecoute en secondes gchar *size; // } INFO_SHN; typedef struct { TAGS *tags; // Tags gchar *time; // Temps d'ecoute guint SecTime; // Temps d'ecoute en secondes gchar *size; // } INFO_APE; typedef struct { TAGS *tags; // Tags gchar *time; // Temps d'ecoute guint SecTime; // Temps d'ecoute en secondes gchar *size; // } INFO_WAVPACK; typedef struct { TAGS *tags; // Tags } INFO_AC3; /* M P 3 TYPE: ABR DEBIT: 32 40 48 56 64 80 96 112 128 160 192 224 320 MODE: Defaut / Stereo / Join Stereo / Forced Join Stereo / Duo Channels / Mono TYPE: CBR DEBIT: 32 40 48 56 64 80 96 112 128 160 192 224 320 MODE: Defaut / Stereo / Join Stereo / Forced Join Stereo / Duo Channels / Mono TYPE: VBR DEBIT: preset medium / preset standard / preset extreme / preset fast standard / preset fast extreme / V0 V1 V2 V3 V4 V5 V6 V7 V8 V9 MODE: Defaut / Stereo / Join Stereo / Forced Join Stereo / Duo Channels / Mono TYPE: VBR-NEW DEBIT: NONE / preset medium / preset standard / preset extreme / preset fast standard / preset fast extreme / V0 V1 V2 V3 V4 V5 V6 V7 V8 V9 MODE: Defaut / Stereo / Join Stereo / Forced Join Stereo / Duo Channels / Mono O G G DEBIT: 45 kbit/s / 64 kbit/s / 80 kbit/s / 96 kbit/s / 112 kbit/s / 128 kbit/s / 160 kbit/s / 192 kbit/s / 224 kbit/s / 256 kbit/s / 320 kbit/s / Qualite -1 -Moins bonne qualite / Qualite 0 / Qualite 1 / Qualite 2 / Qualite 3 -Defaut / Qualite 4 / Qualite 5 / Qualite 6 / Qualite 7 / Qualite 8 / Qualite 9 / Qualite 10 -Meilleure qualite MANAGED: Oui / Non DOWNMIX: Mono force / Stereo */ typedef struct { gboolean Bool_Conv; // TRUE si conversion gchar *destwav; // Temporaire: Pathname gchar *destsox; // Temporaire: Pathname gchar *destmp3; // Temporaire: Pathname gchar *destogg; // Temporaire: Pathname gchar *destfile; // Destination du fichier apres rectification gchar *Bitrate; // Le bitrate actuel } CONV_FIC_MP3OGG; // // --------------------------------------------------------------------------- // F I C W A V // --------------------------------------------------------------------------- // typedef struct { gchar *Path; // Path du fichier source gchar *TmpSrc; // $TMP/original gchar *TmpDest; // $TMP/modifie gchar *TmpMplayer; // $TMP/ gchar *NameDest; // Copie vers la destination } CONV_FIC_WAV; // // --------------------------------------------------------------------------- // F I C // --------------------------------------------------------------------------- // typedef enum { FILE_IS_NONE = 0, FILE_IS_FLAC, FILE_IS_WAV, // FILE_IS_BFW, // BROADCAST WAVE FORMAT FILE_IS_MP3, FILE_IS_OGG, /* Les fichiers au format AAC, portant l'extension .mp4( pour MPEG-4), .m4a( pour MPEG-4 Audio) .m4p( pour MPEG-4 Protégé), sont globalement plus petits que les fichiers au format MP3. */ FILE_IS_M4A, FILE_IS_VID_M4A, FILE_IS_AAC, FILE_IS_SHN, FILE_IS_WMA, FILE_IS_RM, FILE_IS_DTS, FILE_IS_AIFF, FILE_IS_MPC, FILE_IS_APE, FILE_IS_WAVPACK, FILE_IS_WAVPACK_MD5, FILE_IS_AC3, FILE_TO_NORMALISE, FILE_TO_NORMALISE_COLLECTIF, FILE_TO_REPLAYGAIN } TYPE_FILE_IS; typedef enum { FILE_NONE = 0, FILE_WAITING, FILE_CONV_OK } ETAT_CONV_FILE; typedef enum { FILE_ATTENTE = 0, FILE_SELECTED, FILE_SELECTED_LC } ETAT_CONVFILE; typedef enum { VERIF_FILE_NONE = 0, VERIF_FILE_BAD, VERIF_FILE_OK } VERIF_FILE; typedef enum { ETAT_SCAN_NONE = 0, ETAT_SCAN_DEMANDE, ETAT_SCAN_OK } ETAT_SCAN; /* Intitulé Correspond à Valeurs Fichiers PEAK/ALBUM Choix PEAK Choix (scan)RMS/ALBUM Mix -6 à -22 Tous ou aucun (scan)RMS Fix -6 à -24 Tous ou aucun PEAK/ALBUM Amplification maximale du volume pour un groupe de fichiers en respectant les écarts de niveau entre chacun d'eux. PEAK Amplification maximale du volume pour chaque de fichier RMS/ALBUM Ajustement du volume moyen pour un groupe de fichiers en respectant les écarts de niveau moyen entre chacun d'eux RMS Ajustement du volume moyen de chaque de fichier */ typedef enum { NORM_NONE = 0, NORM_READY_FOR_SELECT, // Pret a la selection wav,mp3, ogg NORM_PEAK_ALBUM, // NORM_PEAK_ALBUM NORM_PEAK, // NORM_PEAK NORM_RMS_MIX_ALBUM, //( scan) NORM_RMS_MIX_ALBUM NORM_RMS_FIX //( scan) NORM_RMS_FIX } ETAT_NORMALISE; typedef enum { RPG_NONE = 0, // Attente de selection RPG_ATTENTE, // Attente de selection RPG_PISTE, // Mode PISTE RPG_ALBUM, // Mode ALBUM RPG_EFFACER // Mode EFFACER } ETAT_REPLAYGAIN; typedef enum { ETAT_PRG_NONE = 0, ETAT_PRG_ABSENT, ETAT_ATTENTE, ETAT_ATTENTE_EXIST, ETAT_SELECT, ETAT_SELECT_EXIST, ETAT_SELECT_EXPERT, ETAT_SELECT_EXPERT_EXIST } ETAT_SELECTION; typedef enum { FILE_ETAT_PLAY_NONE = 0, FILE_ETAT_PLAY_PRG_ABSENT, FILE_ETAT_PLAY_ATTENTE, FILE_ETAT_PLAY } ETAT_PLAY_FILE; typedef enum { FILE_TRASH_NONE = 0, FILE_TRASH_OK, FILE_TRASH_VERIF_OK } ETAT_TRASH_FILE; enum { ETAT_FROM_WAV_TO_FLAC = 0, ETAT_FROM_WAV_TO_APE, ETAT_BOOL_WAVPACK, ETAT_FROM_WAV_TO_OGG, ETAT_FROM_WAV_TO_M4A, ETAT_FROM_WAV_TO_AAC, ETAT_FROM_WAV_TO_MPC, ETAT_FROM_WAV_TO_MP3, ETAT_BOOL_TOTAL }; typedef struct { ETAT_PLAY_FILE EtatPlay; // gchar *name_dest; // Nom du fichier de destination sans le path ni l'extension gchar *dest_flac; // gchar *dest_wav; // gchar *dest_mp3; // gchar *dest_ogg; // gchar *dest_m4a; // gchar *dest_aac; // gchar *dest_mpc; // gchar *dest_ape; // gchar *dest_wavpack; // gchar *dest_wavpack_md5; // gchar *tmp_flac; // gchar *tmp_wav; // gchar *tmp_sox; // wav to wav gchar *tmp_sox_24; // wav to wav gchar *tmp_mp3; // gchar *tmp_ogg; // gchar *tmp_m4a; // gchar *tmp_aac; // gchar *tmp_shn; // gchar *tmp_wma; // gchar *tmp_rm; // gchar *tmp_dts; // gchar *tmp_aiff; // gchar *tmp_mpc; // gchar *tmp_ape; // gchar *tmp_wavpack; // gchar *tmp_wavpack_md5; // gchar *tmp_ac3; // gboolean BoolEtatConv [ ETAT_BOOL_TOTAL ]; // ETAT_CONV_FILE Etat_Flac; // ETAT_CONV_FILE Etat_Wav; // ETAT_CONV_FILE Etat_Mp3; // ETAT_CONV_FILE Etat_Ogg; // ETAT_CONV_FILE Etat_m4a; // ETAT_CONV_FILE Etat_aac; // ETAT_CONV_FILE Etat_Mpc; // ETAT_CONV_FILE Etat_Ape; // ETAT_CONV_FILE Etat_wavpack; // gboolean BoolNewString; // } CONV_FIC; typedef enum { STRUCT_NO_REMOVE = 0, // STRUCT_ALL_REMOVE, // Remove in treeview ALL FILE STRUCT_WAV_REMOVE_WAV, // Remove in treeview WAV STRUCT_MP3OGG_REMOVE, // Remove in treeview MP3OGG STRUCT_SPLIT_REMOVE // Remove in treeview SPLIT } TYPE_REMOVE_STRUCT; // // --------------------------------------------------------------------------- // F I C // --------------------------------------------------------------------------- // typedef struct { gchar *namefile; // Nom complet du fichier gchar *NameFileCopyFromNormalizate; // gchar *NameDest; // Nom de la destination TYPE_FILE_IS type_infosong_file_is; // Type du fichier void *info; // En fonction du type de fichier pointeur sur INFO_xxx ETAT_TRASH_FILE EtatTrash; // Etat pour la poubelle ETAT_SELECTION EtatSelection_Wav; // Etat de la selection WAV ETAT_SELECTION EtatSelection_Flac; // Etat de la selection FLAC ETAT_SELECTION EtatSelection_Ape; // Etat de la selection APE ETAT_SELECTION EtatSelection_WavPack; // Etat de la selection WAVPACK ETAT_SELECTION EtatSelection_Ogg; // Etat de la selection OGG ETAT_SELECTION EtatSelection_M4a; // Etat de la selection M4A ETAT_SELECTION EtatSelection_Aac; // Etat de la selection AAC ETAT_SELECTION EtatSelection_Mpc; // Etat de la selection MPC ETAT_SELECTION EtatSelection_Mp3; // Etat de la selection MP3 ETAT_NORMALISE Etat_Normalise; // Etat de la selection de normalisation ETAT_SCAN Etat_Scan; // Etat de la selection du scan gint LevelMix; // Niveau du MIX ETAT_REPLAYGAIN Etat_ReplayGain; // Etat de la selection du gain CONV_FIC *PConv; // Pointeur pour conversion de tous les fichiers CONV_FIC_WAV *PConvWav; // Pointeur pour conversion WAV TO WAV CONV_FIC_MP3OGG *PConvMp3Ogg; // Pointeur pour modification bitrate mp3 et ogg TYPE_REMOVE_STRUCT BoolRemove; // TRUE si suppression de la liste sinon FALSE // MP3: DEBIT MODE gint Mp3_Debit; // gint Mp3_Mode; // // OGG: DEBIT MANAGED DOWNMIX gint Ogg_Debit; // gint Ogg_Managed; // gint Ogg_Downmix; // gboolean BoolChanged; // gboolean BoolConvertActivate; // } DETAIL; extern GList *entetefile; // pointeur sur DETAIL // // --------------------------------------------------------------------------- // FILE.C // --------------------------------------------------------------------------- // typedef struct { GtkComboBox *AdrComboboxNormalise; // Adresse GtkSpinButton *AdrSpinbuttonNormalise; // Adresse GtkWidget *Adr_Label_Number; // Adresse GtkWidget *Adr_scroll; // Adresse GtkListStore *Adr_List_Store; // Adresse GtkTreeModel *Adr_Tree_Model; // Adresse GtkTreeSelection *Adr_Line_Selected; // Adresse GtkWidget *Adr_TreeView; // Adresse GtkComboBox *Adr_combobox_DestFile; // Adresse GtkComboBox *Adr_combobox_select_type; // Adresse GtkComboBox *Adr_combobox_normalise; // Adresse GdkPixbuf *Pixbuf_Trash; // trash.png GdkPixbuf *Pixbuf_NoTrash; // coche.png GdkPixbuf *Pixbuf_FilePlay; // play.png GdkPixbuf *Pixbuf_FileStop; // sol.png GdkPixbuf *Pixbuf_Coche; // coche.png GdkPixbuf *Pixbuf_Coche_exist; // coche_exist.png GdkPixbuf *Pixbuf_Selected; // selected.png GdkPixbuf *Pixbuf_Selected_exist; // selected_exist.png GdkPixbuf *Pixbuf_Selected_expert; // selected_expert.png GdkPixbuf *Pixbuf_Selected_expert_exist; // selected_expert_exist.png GdkPixbuf *Pixbuf_Normalize_Coche; // normalize2.png GdkPixbuf *Pixbuf_NotInstall; // not_install.png GtkCellRenderer *Renderer; GtkTreeViewColumn *Adr_ColumnFilePlay; GtkTreeViewColumn *Adr_ColumnFileTrash; GtkTreeViewColumn *Adr_ColumnFileType; GtkTreeViewColumn *Adr_ColumnFileFlac; GtkTreeViewColumn *Adr_ColumnFileWav; GtkTreeViewColumn *Adr_ColumnFileMp3; GtkTreeViewColumn *Adr_ColumnFileOgg; GtkTreeViewColumn *Adr_ColumnFileM4a; GtkTreeViewColumn *Adr_ColumnFileAac; GtkTreeViewColumn *Adr_ColumnFileMpc; GtkTreeViewColumn *Adr_ColumnFileApe; GtkTreeViewColumn *Adr_ColumnFileWavPack; GtkTreeViewColumn *Adr_ColumnFileTime; GtkTreeViewColumn *Adr_ColumnFileNormalize; GtkTreeViewColumn *Adr_ColumnFileReplayGain; GtkTreeViewColumn *Adr_ColumnFileName; gint PageNum; GdkPixbuf *Pixbuf_rpg_piste; // rpg_piste.png GdkPixbuf *Pixbuf_rpg_album; // rpg_album.png GdkPixbuf *Pixbuf_rpg_effacer; // rpg_effacer.png GdkPixbuf *Pixbuf_rpg_wait; // rpg_wait.png GdkPixbuf *Pixbuf_norm_fix; // norm_fix.png GdkPixbuf *Pixbuf_norm_mix; // norm_mix.png GdkPixbuf *Pixbuf_norm_peak; // norm_peak.png GdkPixbuf *Pixbuf_norm_wait; // norm_wait.png } VAR_FILE; extern VAR_FILE var_file; typedef struct { GtkWidget *Adr_scroll; // Adresse GtkListStore *Adr_List_Store; // Adresse GtkTreeModel *Adr_Tree_Model; // Adresse GtkTreeSelection *Adr_Line_Selected; // Adresse GtkWidget *Adr_TreeView; // Adresse GtkWidget *Adr_Entry_Dest; // Adresse GdkPixbuf *Pixbuf_NotInstall; // not_install.png GtkCellRenderer *Renderer; GtkTreeViewColumn *Adr_ColumnFileWavHertz; GtkTreeViewColumn *Adr_ColumnFileWavVoie; GtkTreeViewColumn *Adr_ColumnFileWavBits; GtkTreeViewColumn *Adr_ColumnFileWavNewHertz; GtkTreeViewColumn *Adr_ColumnFileWavNewVoie; GtkTreeViewColumn *Adr_ColumnFileWavNewBits; GtkTreeViewColumn *Adr_ColumnFileWavName; } VAR_FILE_WAV; extern VAR_FILE_WAV var_file_wav; typedef struct { GtkWidget *Adr_scroll; // Adresse GtkListStore *Adr_List_Store; // Adresse GtkTreeModel *Adr_Tree_Model; // Adresse GtkTreeSelection *Adr_Line_Selected; // Adresse GtkWidget *Adr_TreeView; // Adresse GtkWidget *Adr_Entry_Dest; // Adresse GtkWidget *Adr_Button_Dest; // Adresse GtkComboBox *Adr_combobox_DestFile; // Adresse GdkPixbuf *Pixbuf_NotInstall; // not_install.png GtkCellRenderer *Renderer; GtkTreeViewColumn *Adr_ColumnFileMp3OggType; GtkTreeViewColumn *Adr_ColumnFileMp3OggBitrate; GtkTreeViewColumn *Adr_ColumnFileMp3OggNewBitrate; GtkTreeViewColumn *Adr_ColumnFileMp3OggSize; GtkTreeViewColumn *Adr_ColumnFileMp3OggTime; GtkTreeViewColumn *Adr_ColumnFileMp3OggName; } VAR_FILE_MP3OGG; extern VAR_FILE_MP3OGG var_file_mp3ogg; typedef struct { GtkWidget *Adr_scroll; // Adresse GtkListStore *Adr_List_Store; // Adresse GtkTreeModel *Adr_Tree_Model; // Adresse GtkTreeSelection *Adr_Line_Selected; // Adresse GtkWidget *Adr_TreeView; // Adresse GtkWidget *Adr_entry_tag_album; GtkWidget *Adr_entry_tag_title; GtkWidget *Adr_entry_tag_artist; GtkWidget *Adr_entry_tag_comment; GtkWidget *Adr_spinbutton_tag_year; GtkWidget *Adr_spinbutton_tag_track; GtkComboBox *Adr_combobox_tag_genre; GtkWidget *Adr_label_tag_change; GtkWidget *Adr_table_tag; GtkCellRenderer *Renderer; GtkTreeViewColumn *Adr_ColumnFileTagsType; GtkTreeViewColumn *Adr_ColumnFileTagsTime; GtkTreeViewColumn *Adr_ColumnFileTagsName; } VAR_FILE_TAGS; extern VAR_FILE_TAGS var_file_tags; typedef enum { // SELECTION ou DESELECTION POUR LES CONVERSIONS FILE_CONV_DESELECT_ALL = 0, FILE_CONV_DESELECT_V, FILE_CONV_DESELECT_H, FILE_CONV_SELECT_V, FILE_CONV_SELECT_EXPERT_V, FILE_CONV_SELECT_H, FILE_CONV_SELECT_EXPERT_H, // SELECTION ou DESELECTION POUR LE REPLAYGAIN FILE_REPLAYGAIN_DESELECT_V, FILE_REPLAYGAIN_SELECT_PISTE, FILE_REPLAYGAIN_SELECT_ALBUM, FILE_REPLAYGAIN_SELECT_NETTOYER, // SELECTION ou DESELECTION POUR TRASH FILE_TRASH_DESELECT_V, FILE_TRASH_SELECT_V, // SELECTION ou DESELECTION POUR TRASH FILEWAV_FREQUENCY_CELL_HERTZ, FILEWAV_TRACK_CELL, FILEWAV_QUANTIFICATION_CELL } TYPE_SET_FROM_POPUP_FILE; // // --------------------------------------------------------------------------- // FILE.C // --------------------------------------------------------------------------- // gchar *file_get_time( DETAIL *detail ); void file_scrolledwindow_file_realize( GtkWidget *widget ); void file_set_flag_buttons( void ); void file_button_del_file_clicked( void ); void file_pixbuf_update_glist( void ); void file_affiche_glist( void ); gboolean file_get_bool_ReplaygainApply( void ); gboolean file_get_bool_ReplaygainClear_file( void ); gboolean file_get_bool_normalize_file( void ); gboolean file_get_bool_is_conversion( void ); gint file_get_scan( void ); void file_verify_before_conversion( void ); gchar *file_get_pathname_dest( DETAIL *detail, gchar *NewExt ); gchar *file_get_size( DETAIL *detail ); void on_file_button_del_file_clicked( GtkButton *button, gpointer user_data ); void file_from_popup( TYPE_SET_FROM_POPUP_FILE TypeSetFromPopup, DETAIL *detail, TYPE_FILE_IS TypeFileIs ); // // --------------------------------------------------------------------------- // FILE_SCAN_DB.C // --------------------------------------------------------------------------- // void FileScanDB_action( gboolean BoolAllScan ); // // --------------------------------------------------------------------------- // FILE_ANALYZE.C // --------------------------------------------------------------------------- // #include "fileselect.h" void fileanalyze_remove_entetefile_detail( void ); void fileanalyze_remove_entetefile( void ); void fileanalyze_add_file_to_treeview( TYPE_FILESELECTION p_TypeFileselection, GSList *p_list ); gboolean fileanalyze_exist( DETAIL *detail, gchar *NewExt ); // // --------------------------------------------------------------------------- // FILE_CONV.C // --------------------------------------------------------------------------- // void fileconv_action( void ); // // --------------------------------------------------------------------------- // FILE_MP3OGG.C // --------------------------------------------------------------------------- // void FileMp3Ogg_set_flag_buttons( void ); void FileMp3Ogg_affiche_glist( void ); gboolean FileMp3Ogg_del_file_clicked( void ); void FileMp3Ogg_change_parameters( void ); // void FileMp3Ogg_update_newbitrate( TYPE_FILE_IS p_TypeFileIs ); void FileMp3Ogg_update_newbitrate( TYPE_FILE_IS p_TypeFileIs, gint p_debit, gint p_mode_managed, gint p_downmix ); // // --------------------------------------------------------------------------- // FILE_MP3OGG_CONV.C // --------------------------------------------------------------------------- // void filemp3oggconv_apply_regul_mp3ogg_by_conv( void ); // // --------------------------------------------------------------------------- // FILE_WAV.C // --------------------------------------------------------------------------- // void FileWav_affiche_glist( void ); void FileWav_change_parameters( void ); void FileWav_set_flag_buttons( void ); void FileWav_from_popup( TYPE_SET_FROM_POPUP_FILE TypeSetFromPopup, DETAIL *detail, gint freq, gint voie, gint bits ); // // --------------------------------------------------------------------------- // FILE_TAGS.C // --------------------------------------------------------------------------- // void FileTags_affiche_glist( void ); gboolean FileWav_del_file_clicked( void ); gboolean FileTags_del_file_clicked( void ); void FileTags_appliquer_clicked( void ); void FileTags_set_flag_buttons( void ); // // --------------------------------------------------------------------------- // FILE_WAV_CONV.C // --------------------------------------------------------------------------- // void filewavconv_apply( void ); // // --------------------------------------------------------------------------- // FILE_ACTION.C // --------------------------------------------------------------------------- // typedef enum { TYPE_REPLAYGAINCLEAR = 0, TYPE_NORMALISE, TYPE_CONVERSION, TYPE_REPLAYGAINAPPLY, TYPE_TRASH } FILEACTION_TYPE; void fileaction_choice( void ); void fileaction_set_end( FILEACTION_TYPE FileActionType ); // // --------------------------------------------------------------------------- // FILE_LC.C // --------------------------------------------------------------------------- // #include "conv.h" typedef struct { TYPE_CONV type_conv; gboolean With_CommandLineUser; gchar *filesrc; gchar *filedest; TAGS *tags; gchar *cdrom; gchar *num_track; gboolean BoolSetBitrate; gchar *PtrStrBitrate; } PARAM_FILELC; // // Allocate Tab Args // gchar **filelc_AllocTabArgs( void ); gchar **filelc_RevoveTab( gchar **p_PtrTabArgs ); // gint filelc_get_command_line_remove( void ); // gint filelc_get_command_line_nice( void ); gchar **filelc_get_command_line( PARAM_FILELC *param_filelc ); void filelc_get_command_line_extract( PARAM_FILELC *param_filelc ); GList *filelc_remove_glist( GList *New ); void filelc_get_command_line_extract_elem( gint Elem, gchar *Dev, gchar *Dest ); // // --------------------------------------------------------------------------- // FILE_TRASH.C // --------------------------------------------------------------------------- // void filetrash_action( void ); gboolean filetrash_ok( void ); gboolean filetrash_move_to_trash( gchar *Name ); gchar *filetrash_get_trash( void ); void filetrash_test_trash_is_ok( void ); #endif xcfa-4.3.6/src/statusbar.c0000644000175000017500000001306712122563465012346 00000000000000 /* * file : statusbar.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "configuser.h" #include "statusbar.h" typedef struct { guint handler_timeout_conv; gboolean bool_timer_activate; gint NoteBook_which; STATUS_BAR_MESS StatusMess; struct timeval start; struct timeval stop; } VAR_STATUSBAR; VAR_STATUSBAR VarStatusBar = { 0, // handler_timeout_conv FALSE, // bool_timer_activate 0, // NoteBook_which 0 // StatusMess }; // // static gint StatusBar_timeout( gpointer data ) { gettimeofday( &VarStatusBar.stop, NULL ); if( VarStatusBar.stop.tv_sec - VarStatusBar.start.tv_sec > 3 ) { gtk_timeout_remove( VarStatusBar.handler_timeout_conv ); if( _STATUSBAR_ERR_ == VarStatusBar.StatusMess ) { g_free( StatusBar [ VarStatusBar.NoteBook_which ] . MessError ); StatusBar [ VarStatusBar.NoteBook_which ] . MessError = NULL; } else if( _STATUSBAR_WARN_ == VarStatusBar.StatusMess ) { g_free( StatusBar [ VarStatusBar.NoteBook_which ] . MessWarn ); StatusBar [ VarStatusBar.NoteBook_which ] . MessWarn = NULL; } StatusBar_puts(); VarStatusBar.bool_timer_activate = FALSE; } return (TRUE); } // // void StatusBar_timer( gint p_which, STATUS_BAR_MESS p_StatusMess ) { if( FALSE == VarStatusBar.bool_timer_activate ) { VarStatusBar.NoteBook_which = p_which; VarStatusBar.StatusMess = p_StatusMess; VarStatusBar.bool_timer_activate = TRUE; gettimeofday( &VarStatusBar.start, NULL ); VarStatusBar.handler_timeout_conv = gtk_timeout_add( 2, StatusBar_timeout, 0 ); } } // // void StatusBar_remove( void ) { gint i; for( i = NOTEBOOK_DVD_AUDIO; i <= NOTEBOOK_PRGEXTERNES; i ++ ) { if( NULL != StatusBar [ i ] . Mess ) { g_free( StatusBar [ i ] . Mess ); StatusBar [ i ] . Mess = NULL; } if( NULL != StatusBar [ i ] . MessWarn ) { g_free( StatusBar [ i ] . MessWarn ); StatusBar [ i ] . MessWarn = NULL; } if( NULL != StatusBar [ i ] . MessError ) { g_free( StatusBar [ i ] . MessError ); StatusBar [ i ] . MessError = NULL; } } } // // void StatusBar_set_mess( gint p_which, // NOTEBOOK_DVD_AUDIO .. NOTEBOOK_PRGEXTERNES STATUS_BAR_MESS p_StatusMess, // _STATUSBAR_SIMPLE_ || _STATUSBAR_WARN_ || _STATUSBAR_ERR_ gchar *p_mess // Message ) { gchar *Ptr = NULL; // FREE MEMORY STRING switch( p_StatusMess ) { case _STATUSBAR_SIMPLE_ : Ptr = StatusBar [ p_which ] . Mess; break; case _STATUSBAR_WARN_ : Ptr = StatusBar [ p_which ] . MessWarn; break; case _STATUSBAR_ERR_ : Ptr = StatusBar [ p_which ] . MessError; break; default : return; } if( NULL != Ptr ) { g_free( Ptr ); Ptr = NULL; } // SET STRING switch( p_StatusMess ) { case _STATUSBAR_SIMPLE_ : StatusBar [ p_which ] . Mess = g_strdup( p_mess ); break; case _STATUSBAR_WARN_ : StatusBar [ p_which ] . MessWarn = g_strdup( p_mess ); break; case _STATUSBAR_ERR_ : StatusBar [ p_which ] . MessError = g_strdup( p_mess ); break; } } // // gchar *StatusBar_get_mess( gint p_which ) { gchar *Str = NULL; // _STATUSBAR_ERR_ : RED COLOR if( NULL != StatusBar [ p_which ] . MessError ) { Str = g_strdup_printf( "%s", StatusBar [ p_which ] . MessError ); return( Str ); } // _STATUSBAR_WARN_ : RED COLOR else if( NULL != StatusBar [ p_which ] . MessWarn ) { Str = g_strdup_printf( "%s", StatusBar [ p_which ] . MessWarn ); StatusBar_timer( p_which, _STATUSBAR_WARN_ ); return( Str ); } // _STATUSBAR_SIMPLE_ : BLACK COLOR else if( NULL != StatusBar [ p_which ] . Mess ) { Str = g_strdup_printf( "%s", StatusBar [ p_which ] . Mess ); return( Str ); } return( g_strdup( " " )); } // // void StatusBar_puts( void ) { static gboolean Bool_puts_statusbar_global = FALSE; if( NULL != AdrLabelStatusbarGlobal && FALSE == Bool_puts_statusbar_global ) { gchar *NewName = NULL; // NO ACESS IN PROC Bool_puts_statusbar_global = TRUE; if( NULL != StatusBar_get_mess( Config.NotebookGeneral )) NewName = utf8_eperluette_name( StatusBar_get_mess( Config.NotebookGeneral )); else NewName = g_strdup( " " ); // TODO : @Tetsumaki http://forum.ubuntu-fr.org/viewtopic.php?pid=3889380#p3889380 // TODO : bug avec: while (gtk_events_pending()) gtk_main_iteration(); gtk_label_set_justify (GTK_LABEL (AdrLabelStatusbarGlobal), GTK_JUSTIFY_CENTER); gtk_label_set_use_markup (GTK_LABEL (AdrLabelStatusbarGlobal), TRUE); gtk_label_set_markup (GTK_LABEL (AdrLabelStatusbarGlobal), NewName); g_free (NewName); NewName = NULL; // ACESS IN PROC IS OK Bool_puts_statusbar_global = FALSE; } } xcfa-4.3.6/src/cd_curl.c0000644000175000017500000012347412122563465011755 00000000000000 /* * file : cd_curl.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #include #include #include #include #include #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "cd_audio.h" #include "get_info.h" #include "cd_cue.h" #include "configuser.h" #include "poche.h" #include "cd_curl.h" /* -> ABANDON DES LIBRAIRIES CDDB et CDIO -> AU PROFIT DE: -- Utilisation de: $ cd-discid 6f11b918 24 150 20835 32512 47955 62530 74420 89332 100575 113692 126522 133245 145330 159460 170647 186450 199462 219450 233727 247745 262270 276072 288807 310705 325995 4539 pour la valeur DiscId ( par exemple 6f11b918 ) et la chaine complete a passer en parametre pour CURL: ! http://freedb.org/~cddb/cddb.cgi?cmd=cddb+query+6f11b918+24+150+20835+32512+47955+62530+74420+89332+100575+113692+126522+133245+145330+159460+170647+186450+199462+219450+233727+247745+262270+276072+288807+310705+325995+4539&hello=private+free.the.cddb+xcfa+4.0.4~beta7&proto=6 -- recuperation ( si disponibles ! ) des datas 210 pour le menu pop-up qui permettra un choix des autres bases: Result = 210 Found exact matches, list follows (until terminating `.') jazz 6f11b918 Frank Sinatra / My Way - The Best Of Frank Sinatra Disc 1 misc 6f11b918 Frank Sinatra / My Way - The Best Of Frank Sinatra (CD 1) rock 6f11b918 Frank Sinatra / My Way The Best Of Frank Sinatra blues 6f11b918 Frank Sinatra / My Way The Best Of Frank Sinatra classical 6f11b918 Frank Sinatra / My Way The Best Of Frank Sinatra . -- recup du complement d'informations de la base avec: ! http://freedb.org/~cddb/cddb.cgi?cmd=cddb+read+jazz+6f11b918&hello=private+free.the.cddb+xcfa+4.0.4~beta7&proto=6 -- Utilisation de: CDPARANOIA pour le module cd_cue.c cdparanoia III release 10.2 (September 11, 2008) Table of contents (audio tracks only): track length begin copy pre ch =========================================================== 1. 20685 [04:35.60] 0 [00:00.00] no no 2 2. 11677 [02:35.52] 20685 [04:35.60] no no 2 3. 15443 [03:25.68] 32362 [07:11.37] no no 2 4. 14575 [03:14.25] 47805 [10:37.30] no no 2 5. 11890 [02:38.40] 62380 [13:51.55] no no 2 6. 14912 [03:18.62] 74270 [16:30.20] no no 2 7. 11243 [02:29.68] 89182 [19:49.07] no no 2 8. 13117 [02:54.67] 100425 [22:19.00] no no 2 9. 12830 [02:51.05] 113542 [25:13.67] no no 2 10. 6723 [01:29.48] 126372 [28:04.72] no no 2 11. 12085 [02:41.10] 133095 [29:34.45] no no 2 12. 14130 [03:08.30] 145180 [32:15.55] no no 2 13. 11187 [02:29.12] 159310 [35:24.10] no no 2 14. 15803 [03:30.53] 170497 [37:53.22] no no 2 15. 13012 [02:53.37] 186300 [41:24.00] no no 2 16. 19988 [04:26.38] 199312 [44:17.37] no no 2 17. 14277 [03:10.27] 219300 [48:44.00] no no 2 18. 14018 [03:06.68] 233577 [51:54.27] no no 2 19. 14525 [03:13.50] 247595 [55:01.20] no no 2 20. 13802 [03:04.02] 262120 [58:14.70] no no 2 21. 12735 [02:49.60] 275922 [61:18.72] no no 2 22. 21898 [04:51.73] 288657 [64:08.57] no no 2 23. 15290 [03:23.65] 310555 [69:00.55] no no 2 24. 14482 [03:13.07] 325845 [72:24.45] no no 2 TOTAL 340327 [75:37.52] (audio only) ------------------ B A S E ---------------------------- ---------------- E X T R A C T I O N ----------------- 1. length 20685 [04:35:60] begin 0 [00:00:00] cdparanoia [.0]-[.20684] -d /dev/sr1 -O 0 "1.wav" 2. length 11677 [02:35:52] begin 20685 [04:35:60] cdparanoia [.20685]-[.11676] -d /dev/sr1 -O 0 "2.wav" 3. length 15443 [03:25:68] begin 32362 [07:11:37] cdparanoia [.32362]-[.15442] -d /dev/sr1 -O 0 "3.wav" 4. length 14575 [03:14:25] begin 47805 [10:37:30] cdparanoia [.47805]-[.14574] -d /dev/sr1 -O 0 "4.wav" 5. length 11890 [02:38:40] begin 62380 [13:51:55] cdparanoia [.62380]-[.11889] -d /dev/sr1 -O 0 "5.wav" 6. length 14912 [03:18:62] begin 74270 [16:30:20] cdparanoia [.74270]-[.14911] -d /dev/sr1 -O 0 "6.wav" 7. length 11243 [02:29:68] begin 89182 [19:49:07] cdparanoia [.89182]-[.11242] -d /dev/sr1 -O 0 "7.wav" 8. length 13117 [02:54:67] begin 100425 [22:19:00] cdparanoia [.100425]-[.13116] -d /dev/sr1 -O 0 "8.wav" 9. length 12830 [02:51:05] begin 113542 [25:13:67] cdparanoia [.113542]-[.12829] -d /dev/sr1 -O 0 "9.wav" 10. length 6723 [01:29:48] begin 126372 [28:04:72] cdparanoia [.126372]-[.6722] -d /dev/sr1 -O 0 "10.wav" 11. length 12085 [02:41:10] begin 133095 [29:34:45] cdparanoia [.133095]-[.12084] -d /dev/sr1 -O 0 "11.wav" 12. length 14130 [03:08:30] begin 145180 [32:15:55] cdparanoia [.145180]-[.14129] -d /dev/sr1 -O 0 "12.wav" 13. length 11187 [02:29:12] begin 159310 [35:24:10] cdparanoia [.159310]-[.11186] -d /dev/sr1 -O 0 "13.wav" 14. length 15803 [03:30:53] begin 170497 [37:53:22] cdparanoia [.170497]-[.15802] -d /dev/sr1 -O 0 "14.wav" 15. length 13012 [02:53:37] begin 186300 [41:24:00] cdparanoia [.186300]-[.13011] -d /dev/sr1 -O 0 "15.wav" 16. length 19988 [04:26:38] begin 199312 [44:17:37] cdparanoia [.199312]-[.19987] -d /dev/sr1 -O 0 "16.wav" 17. length 14277 [03:10:27] begin 219300 [48:44:00] cdparanoia [.219300]-[.14276] -d /dev/sr1 -O 0 "17.wav" 18. length 14018 [03:06:68] begin 233577 [51:54:27] cdparanoia [.233577]-[.14017] -d /dev/sr1 -O 0 "18.wav" 19. length 14525 [03:13:50] begin 247595 [55:01:20] cdparanoia [.247595]-[.14524] -d /dev/sr1 -O 0 "19.wav" 20. length 13802 [03:04:02] begin 262120 [58:14:70] cdparanoia [.262120]-[.13801] -d /dev/sr1 -O 0 "20.wav" 21. length 12735 [02:49:60] begin 275922 [61:18:72] cdparanoia [.275922]-[.12734] -d /dev/sr1 -O 0 "21.wav" 22. length 21898 [04:51:73] begin 288657 [64:08:57] cdparanoia [.288657]-[.21897] -d /dev/sr1 -O 0 "22.wav" 23. length 15290 [03:23:65] begin 310555 [69:00:55] cdparanoia [.310555]-[.15289] -d /dev/sr1 -O 0 "23.wav" 24. length 14482 [03:13:07] begin 325845 [72:24:45] cdparanoia [.325845]-[.14481] -d /dev/sr1 -O 0 "24.wav" TOTAL 340327 [75:37:52] */ typedef struct { gchar *NameGenre; // jazz || rock || ... gint NumCdDiscId; // NUM gchar *StrCdDiscId; // STR } VAR_LIST_POPUP; typedef struct { gchar *Title; // Titre d'une piste gchar StrTime[ 10 ]; // Temps ( duree ) d'une piste mm:ss gint NumSector; // Numero du secteur corespondant a la piste } LIST_SECTOR; typedef struct { gchar *StrDiscID; // STR GString *GStrCdDiscID; // STRING gint LenDisc; // EN SECONDES gint TotalTracks; // TOTAL TRACKS GList *ListDiscId; // VAR_LIST_POPUP LIST_SECTOR *ListSector; // CDPARANOIA gint NumForceFromPopUp; // Pour le reaffichage du popup gchar *CallStrDiscID; // gchar *CallStrGenre; // } VAR_SECTOR; VAR_SECTOR VarSector; typedef enum { // DO_CURL_QUERY CdCurl_discdb_do_query( void ) DO_CURL_QUERY_FALSE = 0, // NO QUERY DO_CURL_QUERY_TRUE, // QUERY IS OK DO_CURL_QUERY_REPEAT // 211 Found inexact matches } DO_CURL_QUERY; // // void CdCurl_init_entete_cd (void) { if( NULL != EnteteCD.TitleCD ) { g_free( EnteteCD.TitleCD ); EnteteCD.TitleCD = NULL; } if( NULL != EnteteCD.Title ) { g_free( EnteteCD.Title ); EnteteCD.Title = NULL; } if( NULL != EnteteCD.Artiste ) { g_free( EnteteCD.Artiste ); EnteteCD.Artiste = NULL; } if( NULL != EnteteCD.StrDureeCd ) { g_free( EnteteCD.StrDureeCd ); EnteteCD.StrDureeCd = NULL; } if( NULL != EnteteCD.StrGenre ) { g_free( EnteteCD.StrGenre ); EnteteCD.StrGenre = NULL; } if( NULL != EnteteCD.StrYear ) { g_free( EnteteCD.StrYear ); EnteteCD.StrYear = NULL; } cdaudio_deallocate_glist(); if( NULL != EnteteCD.Message ) { g_free( EnteteCD.Message ); EnteteCD.Message = NULL; } } // // void CdCurl_remove( void ) { if( NULL != VarSector.StrDiscID ) { g_free( VarSector.StrDiscID ); VarSector.StrDiscID = NULL; } if( NULL != VarSector.GStrCdDiscID ) { g_string_free( VarSector.GStrCdDiscID, TRUE ); VarSector.GStrCdDiscID = NULL; } // REMOVE PART THREE if( NULL != VarSector.ListSector ) { gint Track; for( Track = 0; Track < VarSector.TotalTracks; Track ++ ) { if( NULL != VarSector.ListSector[ Track ].Title ) { g_free( VarSector.ListSector[ Track ].Title ); VarSector.ListSector[ Track ].Title = NULL; } } g_free( VarSector.ListSector ); VarSector.ListSector = NULL; } } // // void CdCurl_remove_struct( void ) { if( NULL != VarSector.ListDiscId ) { GList *List = NULL; VAR_LIST_POPUP *PtrVarList = NULL; List = g_list_first( VarSector.ListDiscId ); while ( List ) { if( NULL != ( PtrVarList = (VAR_LIST_POPUP *)List->data )) { if( NULL != PtrVarList->NameGenre ) { g_free( PtrVarList->NameGenre ); PtrVarList->NameGenre = NULL; } if( NULL != PtrVarList->StrCdDiscId ) { g_free( PtrVarList->StrCdDiscId ); PtrVarList->StrCdDiscId = NULL; } g_free( PtrVarList ); PtrVarList = List->data = NULL; } List = g_list_next( List ); } g_list_free( VarSector.ListDiscId ); VarSector.ListDiscId = NULL; } } // // void CdCurl_remove_struct_all( void ) { CdCurl_remove(); CdCurl_remove_struct(); if( NULL != VarSector.CallStrDiscID ) { g_free( VarSector.CallStrDiscID ); VarSector.CallStrDiscID = NULL; } if( NULL != VarSector.CallStrGenre ) { g_free( VarSector.CallStrGenre ); VarSector.CallStrGenre = NULL; } } // // gboolean CdCurl_test_access_web (void) { if (libutils_find_file ("wget") == FALSE) { g_print ("WGET absent !\n"); return (FALSE); } return (GetInfo_wget ()); } // // gchar *CdCurl_get_title_cd( void ) { return( view.TitleCD ); } // // void CdCurl_set_list_discid( void ) { if( NULL != VarSector.ListDiscId ) { GList *List = NULL; VAR_LIST_POPUP *PtrVarList = NULL; gint NbrOptions = 0; libcombo_remove_options( GTK_COMBO_BOX(var_cd.Adr_combobox_discid_cd)); gtk_combo_box_set_active( GTK_COMBO_BOX(var_cd.Adr_combobox_discid_cd), 0 ); List = g_list_first( VarSector.ListDiscId ); while ( List ) { if( NULL != ( PtrVarList = (VAR_LIST_POPUP *)List->data )) { gtk_combo_box_append_text( GTK_COMBO_BOX(var_cd.Adr_combobox_discid_cd), PtrVarList->NameGenre ); NbrOptions ++; } List = g_list_next( List ); } gtk_combo_box_set_active( GTK_COMBO_BOX(var_cd.Adr_combobox_discid_cd), VarSector.NumForceFromPopUp > -1 ? VarSector.NumForceFromPopUp : 0 ); // gtk_widget_show( GTK_WIDGET (GLADE_GET_OBJECT("frame_discid"))); if( NbrOptions > 1 ) gtk_widget_show( GTK_WIDGET (GLADE_GET_OBJECT("frame_discid"))); else gtk_widget_hide( GTK_WIDGET (GLADE_GET_OBJECT("frame_discid"))); if( TRUE == OptionsCommandLine.BoolVerboseMode ) { g_print( "CdCurl_set_list_discid()\n" ); g_print( "\tNbrOptions = %d [ %s ]\n", NbrOptions, NbrOptions > 1 ? "gtk_widget_show" : "gtk_widget_hide" ); } return; } gtk_widget_hide( GTK_WIDGET (GLADE_GET_OBJECT("frame_discid"))); } // // void CdCurl_set_call( gint p_num_from_popup, gchar *p_CallStrDiscID, gchar *p_CallStrGenre ) { VarSector.NumForceFromPopUp = p_num_from_popup; // CLEAR if( NULL != VarSector.CallStrDiscID ) { g_free( VarSector.CallStrDiscID ); VarSector.CallStrDiscID = NULL; } if( NULL != VarSector.CallStrGenre ) { g_free( VarSector.CallStrGenre ); VarSector.CallStrGenre = NULL; } // SET if( p_num_from_popup > -1 ) { GList *List = NULL; VAR_LIST_POPUP *PtrVarList = NULL; if( NULL != ( List = g_list_nth( VarSector.ListDiscId, p_num_from_popup ))) { if( NULL != ( PtrVarList = (VAR_LIST_POPUP *)List->data )) { if( NULL != PtrVarList->StrCdDiscId ) { VarSector.CallStrDiscID = g_strdup( PtrVarList->StrCdDiscId ); // DEBUG: TO SEE OTHER DsicId // VarSector.CallStrDiscID = g_strdup( "c60a1a0f" ); VarSector.CallStrGenre = g_strdup( PtrVarList->NameGenre ); } } } } if( NULL != p_CallStrDiscID && NULL != p_CallStrGenre ) { VarSector.CallStrDiscID = g_strdup( p_CallStrDiscID ); VarSector.CallStrGenre = g_strdup( p_CallStrGenre ); } } // // gchar *CdCurl_get_str_genre( void ) { if( NULL == VarSector.CallStrGenre ) { GList *List = NULL; VAR_LIST_POPUP *PtrVarList = NULL; List = g_list_first( VarSector.ListDiscId ); while ( List ) { if( NULL != ( PtrVarList = (VAR_LIST_POPUP *)List->data )) { if( NULL != PtrVarList->StrCdDiscId ) { VarSector.CallStrGenre = g_strdup( PtrVarList->NameGenre ); break; } } List = g_list_next( List ); } } return( VarSector.CallStrGenre ); } // // gchar *CdCurl_get_str_discid( void ) { if( NULL == VarSector.CallStrDiscID ) { GList *List = NULL; VAR_LIST_POPUP *PtrVarList = NULL; List = g_list_first( VarSector.ListDiscId ); while ( List ) { if( NULL != ( PtrVarList = (VAR_LIST_POPUP *)List->data )) { if( NULL != PtrVarList->StrCdDiscId ) { VarSector.CallStrDiscID = g_strdup( PtrVarList->StrCdDiscId ); break; } } List = g_list_next( List ); } } if( NULL == VarSector.CallStrDiscID ) { VarSector.CallStrDiscID = g_strdup( VarSector.StrDiscID ); } return( VarSector.CallStrDiscID ); } // // void CdCurl_print_glist( void ) { if( TRUE == OptionsCommandLine.BoolVerboseMode ) { GList *List = NULL; VAR_LIST_POPUP *PtrVarList = NULL; PRINT_FUNC_LF(); List = g_list_first( VarSector.ListDiscId ); while( List ) { if( NULL != ( PtrVarList = (VAR_LIST_POPUP *)List->data )) { g_print( "%10x", PtrVarList->NumCdDiscId ); g_print( "\t%s", PtrVarList->StrCdDiscId ); g_print( "\t%s\n", PtrVarList->NameGenre ); } List = g_list_next( List ); } } } // // VAR_LIST_POPUP *CdCurl_alloc_list( gchar *p_str_discid, gchar *p_name_genre ) { VAR_LIST_POPUP *PtrVarList = NULL; GList *List = NULL; gint NumDiscID = strtoul( p_str_discid, NULL, 16 ); // CHERCHE SI DOUBLON AVEC LE DISC_ID List = g_list_first( VarSector.ListDiscId ); while( List ) { if( NULL != ( PtrVarList = (VAR_LIST_POPUP *)List->data )) { if( NumDiscID == PtrVarList->NumCdDiscId ) { // return( (VAR_LIST_POPUP *)NULL ); } } List = g_list_next( List ); } // ALLOCATION PtrVarList = (VAR_LIST_POPUP *)g_malloc0( sizeof( VAR_LIST_POPUP )); PtrVarList->NameGenre = g_strdup( p_name_genre ); PtrVarList->NumCdDiscId = NumDiscID; PtrVarList->StrCdDiscId = g_strdup( p_str_discid ); VarSector.ListDiscId = g_list_append (VarSector.ListDiscId, PtrVarList ); return( (VAR_LIST_POPUP *)PtrVarList ); } // // GString *CdCurl_make_line_request_for_query( gchar *p_StrDiscID, gchar *p_GStrCdDiscID ) { GString *Gstr = g_string_new( NULL ); g_string_append_printf( Gstr, // http://freedb.org/~cddb/cddb.cgi?cmd=cddb+query+6f11b918+24+150+20835+32512+47955+62530+74420+89332+100575+113692+126522+133245+145330+159460+170647+186450+199462+219450+233727+247745+262270+276072+288807+310705+325995+4539&hello=private+free.the.cddb+xcfa+4.0.4~beta7&proto=6 "http://freedb.org/~cddb/cddb.cgi?cmd=cddb+query+%s+%s&hello=private+free.the.cddb+%s+%s&proto=6", p_StrDiscID, p_GStrCdDiscID, PACKAGE, VERSION ); return( Gstr ); } // // GString *CdCurl_make_line_request_for_read( gchar *p_MusicType, gchar *p_StrDiscID ) { GString *Gstr = g_string_new( NULL ); g_string_append_printf( Gstr, // "http://freedb.org/~cddb/cddb.cgi?cmd=cddb+read+jazz+6f11b918&hello=private+free.the.cddb+xcfa+4.0.4~beta7&proto=6", "http://freedb.org/~cddb/cddb.cgi?cmd=cddb+read+%s+%s&hello=private+free.the.cddb+%s+%s&proto=6", p_MusicType, p_StrDiscID, PACKAGE, VERSION ); return( Gstr ); } // // CALL WITH: // CdCurl_make_line_request_for_query(...) // OR // CdCurl_make_line_request_for_read(...) // gchar *CdCurl_disc_db_make_request( gchar *p_Cmd ) { gchar *DatasBuffer = NULL; CURL *curl_handle = NULL; struct curl_slist *headers = NULL; FILE *outfile = NULL; gint success = 1; glong response = -1; glong filesize; gchar user_agent[ 300 ]; curl_global_init( CURL_GLOBAL_ALL ); curl_handle = curl_easy_init(); curl_easy_setopt( curl_handle, CURLOPT_TIMEOUT, 4 ); if( NULL != curl_handle ) { if( SERVER_PROXY_PARAM == Config.ServeurCddb ) { gchar *StrNamePort = g_strdup_printf( "%s:%s", Config.entry_proxy_server, Config.entry_proxy_port ); curl_easy_setopt( curl_handle, CURLOPT_PROXY, StrNamePort ); g_free( StrNamePort ); StrNamePort = NULL; if( TRUE == OptionsCommandLine.BoolVerboseMode ) { g_print( "\n" ); g_print( "!-------------------------------------------------\n" ); g_print( "! AT THE REQUEST OF @Gounlaf:\n"); g_print( "! Gestion du proxy\n" ); g_print( "! Management PROXY\n" ); g_print( "!-------------------------------------------------\n" ); g_print( "!\tConfig.entry_proxy_server = %s\n", Config.entry_proxy_server ); g_print( "!\tConfig.entry_proxy_port = %s\n", Config.entry_proxy_port ); g_print( "!-------------------------------------------------\n\n" ); } } curl_easy_setopt( curl_handle, CURLOPT_URL, p_Cmd ); strcpy( user_agent, PACKAGE_STRING ); headers = curl_slist_append( headers, user_agent ); curl_easy_setopt( curl_handle, CURLOPT_HTTPHEADER, headers ); outfile = tmpfile(); if( outfile ) { curl_easy_setopt( curl_handle, CURLOPT_FILE, outfile ); curl_easy_setopt( curl_handle, CURLOPT_NOSIGNAL, 1 ); success = curl_easy_perform( curl_handle ); curl_easy_getinfo( curl_handle, CURLINFO_RESPONSE_CODE, &response ); if( 0 == success ) { filesize = ftell( outfile ); rewind( outfile ); DatasBuffer = (gchar *)g_malloc0( filesize +10 ); fread( DatasBuffer, filesize, 1, outfile ); DatasBuffer[ filesize +0 ] = '\0'; DatasBuffer[ filesize +1 ] = '\0'; DatasBuffer[ filesize +2 ] = '\0'; } fclose( outfile ); } curl_slist_free_all( headers ); headers = NULL; curl_easy_cleanup( curl_handle ); } curl_global_cleanup(); if( NULL != DatasBuffer && NULL != strstr( DatasBuffer, "500 Internal Server Error" )) { g_free( DatasBuffer ); DatasBuffer = NULL; PRINT("DatasBuffer -> 500 Internal Server Error" ); } return( DatasBuffer ); } // // DO_CURL_QUERY_FALSE = 0, // NO QUERY // DO_CURL_QUERY_TRUE, // QUERY IS OK // DO_CURL_QUERY_REPEAT // 211 Found inexact matches // DO_CURL_QUERY CdCurl_discdb_do_query( void ) { GString *Gstr = CdCurl_make_line_request_for_query( VarSector.StrDiscID, VarSector.GStrCdDiscID->str ); gchar *DatasBuffer = CdCurl_disc_db_make_request( Gstr->str ); gchar **Larrbuf = NULL; gint Cpt; gint CodeRetData; gboolean BoolCodeRet = DO_CURL_QUERY_TRUE; if( TRUE == OptionsCommandLine.BoolVerboseMode ) { g_print( "\n" ); g_print( "GSTR_QUERY = %s\n", Gstr->str ); } g_string_free( Gstr, TRUE ); Gstr = NULL; CdCurl_remove_struct(); if( NULL == DatasBuffer ) { return( DO_CURL_QUERY_FALSE ); } Larrbuf = g_strsplit( DatasBuffer, "\n", 0 ); if( TRUE == OptionsCommandLine.BoolVerboseMode ) { g_print( "\nQUERY\n" ); for( Cpt = 0; Larrbuf[ Cpt ]; Cpt ++ ) { g_print( "%s\n", Larrbuf[ Cpt ] ); } g_print( "\n" ); } // TEST DU CODE DE RETOUR // ---------------------- CodeRetData = atoi( DatasBuffer ); if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print( "CodeRetData = %d\n", CodeRetData ); switch( CodeRetData ) { case 200 : // 200 blues dc0c720f Various / L'âme du blues (CD1) // g_print( "strtok( Larrbuf[ 0 ], \" \" ) = %s\n", strtok( Larrbuf[ 0 ], " " )); strtok( Larrbuf[ 0 ], " " ); CdCurl_alloc_list( strtok( NULL, " " ), strtok( NULL, " " )); BoolCodeRet = DO_CURL_QUERY_TRUE; break; case 202 : // 202 No match found BoolCodeRet = DO_CURL_QUERY_FALSE; break; case 210 : // 210 Found exact matches, list follows (until terminating `.') // jazz 6f11b918 Frank Sinatra / My Way - The Best Of Frank Sinatra Disc 1 // misc 6f11b918 Frank Sinatra / My Way - The Best Of Frank Sinatra (CD 1) // rock 6f11b918 Frank Sinatra / My Way The Best Of Frank Sinatra // blues 6f11b918 Frank Sinatra / My Way The Best Of Frank Sinatra // classical 6f11b918 Frank Sinatra / My Way The Best Of Frank Sinatra // . for( Cpt = 1; Larrbuf[ Cpt ]; Cpt ++ ) { if( '.' == *Larrbuf[ Cpt ] ) break; CdCurl_alloc_list( strtok( NULL, " " ), strtok( Larrbuf[ Cpt ], " " )); } BoolCodeRet = DO_CURL_QUERY_TRUE; break; case 211 : // 211 Found inexact matches, list follows (until terminating `.') // classical 3710de15 Enrico Caruso / The Legendary Enrico Caruso 21 Favorite Arias CdCurl_set_call( -1, strtok( NULL, " " ), strtok( Larrbuf[ 1 ], " " )); g_free( VarSector.StrDiscID ); VarSector.StrDiscID = NULL; VarSector.StrDiscID = g_strdup( VarSector.CallStrDiscID ); BoolCodeRet = DO_CURL_QUERY_REPEAT; break; default : BoolCodeRet = DO_CURL_QUERY_FALSE; break; } g_strfreev( Larrbuf ); g_free( DatasBuffer ); DatasBuffer = NULL; CdCurl_print_glist(); return( BoolCodeRet ); } // // void CdCurl_set_datas_buffer( GString *gstr_buffer_title, GString *gstr_buffer_title_time, GString *gstr_buffer_artist_title_time ) { view.Buffer_none = g_strdup( " " ); view.Buffer_title = g_strdup( gstr_buffer_title->str ); g_string_free( gstr_buffer_title, TRUE ); view.Buffer_title_time = g_strdup( gstr_buffer_title_time->str ); g_string_free( gstr_buffer_title_time, TRUE ); view.Buffer_artist_title_time = g_strdup( gstr_buffer_artist_title_time->str ); g_string_free( gstr_buffer_artist_title_time, TRUE ); } // // gint CdCurl_get_numtrack_next( gchar *StrTitle ) { if( ! strncasecmp( StrTitle, "TTITLE", 6 )) { StrTitle += 6; return( atoi( StrTitle )); } return( -1 ); } // // void CdCurl_discdb_do_read( DO_CURL_QUERY p_DoCurlQuery ) { GString *Gstr = NULL; CD_AUDIO *Audio = NULL; gchar *DatasBuffer = NULL; gchar **Larrbuf = NULL; gint Cpt; gint Track = 0; GString *gstr_buffer_title = g_string_new (NULL); GString *gstr_buffer_title_time = g_string_new (NULL); GString *gstr_buffer_artist_title_time = g_string_new (NULL); gchar *PtrNameTrack = NULL; EnteteCD.StrDureeCd = g_strdup_printf( "%02d:%02d", BaseIoctl.Datas[ BaseIoctl.TotalTracks ].begin_min, BaseIoctl.Datas[ BaseIoctl.TotalTracks ].begin_sec ); EnteteCD.TotalTracks = VarSector.TotalTracks; if( DO_CURL_QUERY_TRUE == p_DoCurlQuery ) { Gstr = CdCurl_make_line_request_for_read( CdCurl_get_str_genre(), CdCurl_get_str_discid() ); DatasBuffer = CdCurl_disc_db_make_request( Gstr->str ); if( TRUE == OptionsCommandLine.BoolVerboseMode ) { g_print( "\n" ); g_print( "GSTR_READ = %s\n", Gstr->str ); } g_string_free( Gstr, TRUE ); Gstr = NULL; } if( NULL == DatasBuffer ) { EnteteCD.Message = g_strdup( _("La liaison internet est absente") ); // MINIMUM D'INFORMATION ET RETOUR // SET Track for( Track = 0; Track < VarSector.TotalTracks; Track ++ ) { Audio = ( CD_AUDIO * )g_malloc0( sizeof( CD_AUDIO )); Audio->EtatPlay = CD_ETAT_PLAY_ATTENTE; Audio->Bool_Delette_Flac = FALSE; Audio->Bool_Delette_Wav = FALSE; Audio->Bool_Delette_Mp3 = FALSE; Audio->Bool_Delette_Ogg = FALSE; Audio->Bool_Delette_M4a = FALSE; Audio->Bool_Delette_Mpc = FALSE; Audio->Bool_Delette_Ape = FALSE; Audio->Bool_Delette_WavPack = FALSE; Audio->EtatSelection_Flac = CD_ETAT_ATTENTE; Audio->EtatSelection_Wav = CD_ETAT_ATTENTE; Audio->EtatSelection_Mp3 = CD_ETAT_ATTENTE; Audio->EtatSelection_Ogg = CD_ETAT_ATTENTE; Audio->EtatSelection_M4a = CD_ETAT_ATTENTE; Audio->EtatSelection_Mpc = CD_ETAT_ATTENTE; Audio->EtatSelection_Ape = CD_ETAT_ATTENTE; Audio->EtatSelection_WavPack = CD_ETAT_ATTENTE; Audio->Etat_Flac = ETAT_CONV_CD_NONE; Audio->Etat_Wav = ETAT_CONV_CD_NONE; Audio->Etat_Mp3 = ETAT_CONV_CD_NONE; Audio->Etat_Ogg = ETAT_CONV_CD_NONE; Audio->Etat_m4a = ETAT_CONV_CD_NONE; Audio->Etat_Mpc = ETAT_CONV_CD_NONE; Audio->Etat_Ape = ETAT_CONV_CD_NONE; Audio->Etat_WavPack = ETAT_CONV_CD_NONE; Audio->EtatNormalise = CD_NORM_PEAK_NONE; Audio->PathName_Dest_Flac = NULL; Audio->PathName_Dest_Wav = NULL; Audio->PathName_Dest_Mp3 = NULL; Audio->PathName_Dest_Ogg = NULL; Audio->PathName_Dest_M4a = NULL; Audio->PathName_Dest_Mpc = NULL; Audio->PathName_Dest_Ape = NULL; Audio->PathName_Dest_WavPack = NULL; Audio->Num_Track = Track + 1; Audio->Str_Track = g_strdup_printf ( "%02d", Track + 1 ); Audio->Duree = g_strdup( VarSector.ListSector[ Track ].StrTime ); Audio->NameSong = g_strdup_printf ("Track_%02d", Track + 1); VarSector.ListSector[ Track ].Title = g_strdup( Audio->NameSong ); Audio->tags = ( TAGS * )tags_alloc( TRUE ); Audio->tags->Album = g_strdup ("Album"); Audio->tags->Artist = g_strdup ("Artist"); Audio->tags->Title = g_strdup_printf ("Track_%02d", Track +1); Audio->tags->Number = g_strdup_printf ("%d", Track +1); Audio->tags->IntNumber = Track +1; Audio->tags->Genre = g_strdup ("A Cappella"); Audio->tags->IntGenre = 123; Audio->tags->Year = g_strdup ("1962"); Audio->tags->IntYear = 1962; // Audio->tags->Comment = g_strdup ("By Xcfa"); // Audio->tags->Description = g_strdup ("By Xcfa"); Audio->tags->Comment = g_strdup( Config.StringCommentCD ); Audio->tags->Description = g_strdup( Config.StringCommentCD ); EnteteCD.GList_Audio_cd = g_list_append( EnteteCD.GList_Audio_cd, (CD_AUDIO *)Audio ); // TITRE g_string_append_printf( gstr_buffer_title, "%s\n", Audio->NameSong ); // TITRE - TEMPS g_string_append_printf( gstr_buffer_title_time, "%s ][ ", Audio->NameSong ); g_string_append_printf( gstr_buffer_title_time, "%s\n", Audio->Duree ); // ARTISTE - TITRE - TEMPS g_string_append_printf( gstr_buffer_artist_title_time, "%s - ", Audio->tags->Artist ); g_string_append_printf( gstr_buffer_artist_title_time, "%s ][ ", Audio->NameSong ); g_string_append_printf( gstr_buffer_artist_title_time, "%s\n", Audio->Duree ); view.TitleCD = g_strdup( "Track" ); } CdCurl_set_datas_buffer( gstr_buffer_title, gstr_buffer_title_time, gstr_buffer_artist_title_time ); return; } Larrbuf = g_strsplit( DatasBuffer, "\n", 0 ); if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print( "\nREAD\n" ); // SUPPRESSION DES CARACTERES INDELICATS for( Cpt = 0; Larrbuf[ Cpt ]; Cpt ++ ) { if( ! strncasecmp( Larrbuf[ Cpt ], "TTITLE", 6 )) { // // BUG FIND BY @TICROB: SOLVED // DEL CAR '/' IN STRING // for( PtrNameTrack = Larrbuf[ Cpt ]; *PtrNameTrack; PtrNameTrack ++ ) { if( *PtrNameTrack == '/' ) *PtrNameTrack = '-'; if( *PtrNameTrack == '\n' ) *PtrNameTrack = '\0'; if( *PtrNameTrack == '\r' ) *PtrNameTrack = '\0'; } } } for( Cpt = 0; Larrbuf[ Cpt ]; Cpt ++ ) { if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print( "%02d %s\n", Cpt, Larrbuf[ Cpt ] ); if( ! strncasecmp( Larrbuf[ Cpt ], "DTITLE", 6 )) { gchar *Ptr = NULL; // DTITLE=Frank Sinatra / My Way - The Best Of Frank Sinatra Disc 1 if( NULL != ( Ptr = strrchr( Larrbuf[ Cpt ], '/' ))) { EnteteCD.TitleCD = libutils_dup_chomp( Larrbuf[ Cpt ] +7 ); Ptr = strrchr( EnteteCD.TitleCD, '/' ); *Ptr = '-'; EnteteCD.Artiste = libutils_dup_chomp( Larrbuf[ Cpt ] +7 ); Ptr = strrchr( EnteteCD.Artiste, '/' ); Ptr --; *Ptr = '\0'; } else { EnteteCD.TitleCD = libutils_dup_chomp( Larrbuf[ Cpt ] +7 ); EnteteCD.Artiste = libutils_dup_chomp( Larrbuf[ Cpt ] +7 ); } } else if( ! strncasecmp( Larrbuf[ Cpt ], "DYEAR", 5 )) { EnteteCD.NumYear = atoi( Larrbuf[ Cpt ] +6 ); EnteteCD.StrYear = libutils_dup_chomp( Larrbuf[ Cpt ] +6 ); } else if( ! strncasecmp( Larrbuf[ Cpt ], "DGENRE", 6 )) { // // EnteteCD.StrGenre = libutils_dup_chomp( Larrbuf[ Cpt ] +7 ); // EnteteCD.NumGenre = tags_get_genre_by_value( EnteteCD.StrGenre ); // // DGENRE n'indiqque pas obligatoirement le meme type que le retour de QUERY !!! // EnteteCD.StrGenre = g_strdup( VarSector.CallStrGenre ); EnteteCD.NumGenre = tags_get_genre_by_value(VarSector.CallStrGenre ); } else if( ! strncasecmp( Larrbuf[ Cpt ], "TTITLE", 6 ) && Track < VarSector.TotalTracks ) { gint NumTrack; GString *gstr = g_string_new (NULL); // TTITLE0=My Way // TTITLE1=Strangers In The Night // TTITLE2=Theme From New York New York // TTITLE3=I Get A Kick Out Of You // // UNE LIGNE PEUT ETRE SCINDEE SUR PLUSIEURS LIGNES: // ------------------------------------------------- // TTITLE3=Paul Buckmaster / Spider Research / Introduccion (We Did It) / The Prop // TTITLE3=osition // TTITLE8=Paul Buckmaster / Introduccion (Escape To Nowhere) / Scanner Room / Cap // TTITLE8=ture And Sedation // STOCKER LE PREMIER TITRE PtrNameTrack = strchr( Larrbuf[ Cpt ], '=' ); PtrNameTrack ++; g_string_append_printf( gstr, "%s", PtrNameTrack ); // NUMERO DU TTITLE 'xx' NumTrack = CdCurl_get_numtrack_next( Larrbuf[ Cpt ] ); // NOUVEL ALGO: BUG TICROB SOLVED while( NumTrack == CdCurl_get_numtrack_next( Larrbuf[ Cpt +1 ] )) { if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print( "%02d %s\n", Cpt, Larrbuf[ Cpt +1 ] ); PtrNameTrack = strchr( Larrbuf[ Cpt +1 ], '=' ); PtrNameTrack ++; g_string_append_printf( gstr, "%s", PtrNameTrack ); Cpt ++; } PtrNameTrack = gstr->str; Audio = ( CD_AUDIO * )g_malloc0( sizeof( CD_AUDIO )); Audio->EtatPlay = CD_ETAT_PLAY_ATTENTE; Audio->Bool_Delette_Flac = FALSE; Audio->Bool_Delette_Wav = FALSE; Audio->Bool_Delette_Mp3 = FALSE; Audio->Bool_Delette_Ogg = FALSE; Audio->Bool_Delette_M4a = FALSE; Audio->Bool_Delette_Mpc = FALSE; Audio->Bool_Delette_Ape = FALSE; Audio->Bool_Delette_WavPack = FALSE; Audio->EtatSelection_Flac = CD_ETAT_ATTENTE; Audio->EtatSelection_Wav = CD_ETAT_ATTENTE; Audio->EtatSelection_Mp3 = CD_ETAT_ATTENTE; Audio->EtatSelection_Ogg = CD_ETAT_ATTENTE; Audio->EtatSelection_M4a = CD_ETAT_ATTENTE; Audio->EtatSelection_Mpc = CD_ETAT_ATTENTE; Audio->EtatSelection_Ape = CD_ETAT_ATTENTE; Audio->EtatSelection_WavPack = CD_ETAT_ATTENTE; Audio->Etat_Flac = ETAT_CONV_CD_NONE; Audio->Etat_Wav = ETAT_CONV_CD_NONE; Audio->Etat_Mp3 = ETAT_CONV_CD_NONE; Audio->Etat_Ogg = ETAT_CONV_CD_NONE; Audio->Etat_m4a = ETAT_CONV_CD_NONE; Audio->Etat_Mpc = ETAT_CONV_CD_NONE; Audio->Etat_Ape = ETAT_CONV_CD_NONE; Audio->Etat_WavPack = ETAT_CONV_CD_NONE; Audio->EtatNormalise = CD_NORM_PEAK_NONE; Audio->PathName_Dest_Flac = NULL; Audio->PathName_Dest_Wav = NULL; Audio->PathName_Dest_Mp3 = NULL; Audio->PathName_Dest_Ogg = NULL; Audio->PathName_Dest_M4a = NULL; Audio->PathName_Dest_Mpc = NULL; Audio->PathName_Dest_Ape = NULL; Audio->PathName_Dest_WavPack = NULL; Audio->Num_Track = Track + 1; Audio->Str_Track = g_strdup_printf ( "%02d", Track + 1 ); Audio->Duree = g_strdup( VarSector.ListSector[ Track ].StrTime ); Audio->NameSong = libutils_dup_chomp( PtrNameTrack ); VarSector.ListSector[ Track ].Title = g_strdup( Audio->NameSong ); Audio->tags = ( TAGS * )tags_alloc( TRUE ); // JEROME JOLIMONT // // Une fois la recherche effectuée, il y a dans le champ "Album", la chaîne de // caractères correspondant à la concaténation des chaînes "Artist", " - " et // "Album". Ca ne me paraît pas normal. C'est voulu ? // // SOLVED: // Audio->tags->Album = g_strdup( EnteteCD.TitleCD ); // if( NULL != ( PtrNameTrack = strchr( EnteteCD.TitleCD, '-' ))) { PtrNameTrack ++; while( ' ' == *PtrNameTrack ) PtrNameTrack++; Audio->tags->Album = g_strdup( PtrNameTrack ); } else { Audio->tags->Album = g_strdup( EnteteCD.TitleCD ); } Audio->tags->Artist = g_strdup( EnteteCD.Artiste ); Audio->tags->Title = g_strdup( Audio->NameSong ); Audio->tags->Year = g_strdup( EnteteCD.StrYear ); Audio->tags->IntYear = EnteteCD.NumYear; Audio->tags->IntGenre = EnteteCD.NumGenre; Audio->tags->Genre = g_strdup( EnteteCD.StrGenre ); Audio->tags->Number = g_strdup_printf ("%d", Track +1); Audio->tags->IntNumber = Track +1; // Audio->tags->Comment = g_strdup ("By Xcfa"); // Audio->tags->Description = g_strdup( "By Xcfa" ); Audio->tags->Comment = g_strdup( Config.StringCommentCD ); Audio->tags->Description = g_strdup( Config.StringCommentCD ); EnteteCD.GList_Audio_cd = g_list_append( EnteteCD.GList_Audio_cd, (CD_AUDIO *)Audio ); // TITRE g_string_append_printf( gstr_buffer_title, "%s\n", Audio->NameSong ); // TITRE - TEMPS g_string_append_printf( gstr_buffer_title_time, "%s ][ ", Audio->NameSong ); g_string_append_printf( gstr_buffer_title_time, "%s\n", Audio->Duree ); // ARTISTE - TITRE - TEMPS g_string_append_printf( gstr_buffer_artist_title_time, "%s - ", EnteteCD.Artiste ); g_string_append_printf( gstr_buffer_artist_title_time, "%s ][ ", Audio->NameSong ); g_string_append_printf( gstr_buffer_artist_title_time, "%s\n", Audio->Duree ); view.TitleCD = g_strdup_printf( "%s", EnteteCD.TitleCD ); Track ++; g_string_free (gstr, TRUE); gstr = NULL; } } CdCurl_set_datas_buffer( gstr_buffer_title, gstr_buffer_title_time, gstr_buffer_artist_title_time ); if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print( "\n" ); g_strfreev( Larrbuf ); g_free( DatasBuffer ); DatasBuffer = NULL; } // // gint CdCurl_cdparanoia_get_total_tracks( gchar *buffer ) { gchar **Larrbuf = NULL; gint Track; gint TotalTracks = -1; gchar *ptr; Larrbuf = g_strsplit( buffer, "\n", 0 ); for( Track = 0; Larrbuf[ Track ]; Track++ ) { if( strstr (Larrbuf[ Track ], "TOTAL" )) { Track --; break; } } if( NULL != ( ptr = Larrbuf[ Track ] )) { while( *ptr == ' ' ) ptr ++; TotalTracks = atoi( ptr ); } g_strfreev( Larrbuf ); return( TotalTracks ); } // // void CdCurl_cdparanoia_get_sectors ( gchar *buffer ) { gchar **Larrbuf = NULL; gint piste; gchar *ptr = NULL; gint Track = 0; if( NULL == VarSector.ListSector ) { VarSector.ListSector = (LIST_SECTOR *)g_malloc0( sizeof(LIST_SECTOR) * ( VarSector.TotalTracks + 4 )); } Larrbuf = g_strsplit( buffer, "\n", 0 ); // GET SECTOR for( piste = 0; Larrbuf[ piste ]; piste ++ ) { if( strstr( Larrbuf[ piste ], "TOTAL" )) { ptr = Larrbuf[ piste ]; while( *ptr && *ptr != ' ' ) ptr ++; while( *ptr && *ptr == ' ' ) ptr ++; if( *ptr ) { VarSector.ListSector[ Track ].NumSector = atoi( ptr ); } break; } if( NULL != ( ptr = strchr( Larrbuf[ piste ], ']' ))) { ptr ++; while( *ptr && *ptr == ' ' ) ptr ++; if( *ptr ) VarSector.ListSector[ Track ].NumSector = atoi( ptr ); Track ++; } } // GET TIME Track = 0; for( piste = 0; Larrbuf[ piste ]; piste ++ ) { if( NULL != ( ptr = strchr( Larrbuf[ piste ], '[' ))) { // 1. 20685 [04:35.60] 0 [00:00.00] no no 2 // 2. 11677 [02:35.52] 20685 [04:35.60] no no 2 ptr ++; strncpy( VarSector.ListSector[ Track ].StrTime, ptr, 5 ); Track ++; } } g_strfreev( Larrbuf ); } // // void CdCurl_set_datas_for_cdcue( void ) { gint Track; gint TempDiv; gint TempMod; cdcue_alloc_base_ioctl( VarSector.TotalTracks ); for( Track = 0; Track < VarSector.TotalTracks; Track++ ) { BaseIoctl.Datas[ Track ].length = -1; BaseIoctl.Datas[ Track ].begin = -1; } for( Track = 0; Track < VarSector.TotalTracks; Track++ ) { BaseIoctl.Datas[ Track ].length = VarSector.ListSector[ Track +1 ].NumSector - VarSector.ListSector[ Track ].NumSector; TempDiv = BaseIoctl.Datas[ Track ].length / 75; TempMod = BaseIoctl.Datas[ Track ].length % 75; BaseIoctl.Datas[ Track ].length_min = TempDiv / 60; BaseIoctl.Datas[ Track ].length_sec = TempDiv % 60; BaseIoctl.Datas[ Track ].length_cent = TempMod; } BaseIoctl.Datas[ 0 ].begin = VarSector.ListSector[ 0 ].NumSector % 75; for( Track = 0; Track < VarSector.TotalTracks; Track++ ) { BaseIoctl.Datas[ Track +1 ].begin = BaseIoctl.Datas[ Track ].length + BaseIoctl.Datas[ Track ].begin; TempDiv = BaseIoctl.Datas[ Track ].begin / 75; TempMod = BaseIoctl.Datas[ Track ].begin % 75; BaseIoctl.Datas[ Track ].begin_min = TempDiv / 60; BaseIoctl.Datas[ Track ].begin_sec = TempDiv % 60; BaseIoctl.Datas[ Track ].begin_cent = TempMod; } BaseIoctl.Datas[ VarSector.TotalTracks ].begin = BaseIoctl.Datas[ Track ].length + BaseIoctl.Datas[ Track ].begin; BaseIoctl.Datas[ VarSector.TotalTracks ].begin -= BaseIoctl.Datas[ 0 ].begin; TempDiv = BaseIoctl.Datas[ VarSector.TotalTracks ].begin / 75; TempMod = BaseIoctl.Datas[ VarSector.TotalTracks ].begin % 75; BaseIoctl.Datas[ VarSector.TotalTracks ].begin_min = TempDiv / 60; BaseIoctl.Datas[ VarSector.TotalTracks ].begin_sec = TempDiv % 60; BaseIoctl.Datas[ VarSector.TotalTracks ].begin_cent = TempMod; cdcue_make_cue(); /* -- void CdCurl_set_datas_for_cdcue_two( void ) BaseIoctl.Performer = g_strdup( EnteteCD . TitleCD ); BaseIoctl.Title = g_strdup( EnteteCD . TitleCD ); BaseIoctl.File = g_strdup_printf ("%s.wav", EnteteCD . TitleCD); g_print( "BaseIoctl.Performer = %s\n", BaseIoctl.Performer ); g_print( "BaseIoctl.Title = %s\n", BaseIoctl.Title ); g_print( "BaseIoctl.File = %s\n", BaseIoctl.File ); for( Track = 0; Track < VarSector.TotalTracks; Track++ ) { BaseIoctl.Cue [ Track ].Performer = g_strdup( EnteteCD . TitleCD ); BaseIoctl.Cue [ Track ].Title = g_strdup( VarSector.ListSector[ Track ].Title ); } cdcue_print_base_ioctl(); */ } // // void CdCurl_set_datas_for_cdcue_two( void ) { gint Track; gchar *PtrNameTrack = NULL; PRINT(""); BaseIoctl.Performer = g_strdup( EnteteCD . TitleCD ); BaseIoctl.Title = g_strdup( EnteteCD . TitleCD ); BaseIoctl.File = g_strdup_printf ("%s.wav", EnteteCD . TitleCD); for( Track = 0; Track < VarSector.TotalTracks; Track++ ) { // // BUG FIND BY @TICROB: SOLVED // TEST ALLOC OF: // BaseIoctl.Cue [ Track ].Performer // BaseIoctl.Cue [ Track ].Title // if( NULL != BaseIoctl.Cue [ Track ].Performer ) { g_free( BaseIoctl.Cue [ Track ].Performer ); BaseIoctl.Cue [ Track ].Performer = NULL; } if( NULL != BaseIoctl.Cue [ Track ].Title ) { g_free( BaseIoctl.Cue [ Track ].Title ); BaseIoctl.Cue [ Track ].Title = NULL; } BaseIoctl.Cue [ Track ].Performer = g_strdup( EnteteCD . TitleCD ); BaseIoctl.Cue [ Track ].Title = g_strdup( VarSector.ListSector[ Track ].Title ); while( NULL != ( PtrNameTrack = strchr( BaseIoctl.Cue [ Track ].Title, '/' ))) { *PtrNameTrack = '-'; } } cdcue_print_base_ioctl(); } // // gboolean CdCurl_get_info_cd( void ) { gchar *StrCdDiscId = NULL; gchar **Larrbuf = NULL; gint Cpt; gchar *Ptr = NULL; GString *gstr = NULL; gboolean BoolRet = FALSE; CdCurl_init_entete_cd(); CdCurl_remove(); poche_remove_view(); StrCdDiscId = GetInfo_cd_discid( EnteteCD.NameCD_Device ); if( NULL == StrCdDiscId ) { CdCurl_remove_struct(); BoolRet = FALSE; EnteteCD.Message = g_strdup( _("Couldn't find CD") ); } else if( NULL != StrCdDiscId ) { BoolRet = TRUE; Larrbuf = g_strsplit( StrCdDiscId, " ", 0 ); g_free( StrCdDiscId ); StrCdDiscId = NULL; VarSector.StrDiscID = g_strdup( Larrbuf[ 0 ] ); VarSector.GStrCdDiscID = g_string_new( NULL ); for( Cpt = 1; Larrbuf[ Cpt ]; Cpt ++ ) { g_string_append_printf( VarSector.GStrCdDiscID, "%s", Larrbuf[ Cpt ] ); if( NULL != Larrbuf[ Cpt +1 ] ) g_string_append_printf( VarSector.GStrCdDiscID, "+" ); } VarSector.LenDisc = atoi( Larrbuf[ Cpt -1 ] ); g_strfreev( Larrbuf ); if( NULL != ( Ptr = strchr( VarSector.GStrCdDiscID->str, '\n' ))) *Ptr = '\0'; if( TRUE == OptionsCommandLine.BoolVerboseMode ) { g_print( "StrDiscID = %s\n", VarSector.StrDiscID ); g_print( "GStrCdDiscID = %s\n", VarSector.GStrCdDiscID->str ); g_print( "LenDisc = %d: ", VarSector.LenDisc ); g_print( "\n" ); } // GET REAL TRACKS AND GET REAL SECTORS FROM CDPARANOIA gstr = GetInfo_cdparanoia (EnteteCD.NameCD_Device); if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print("gstr->str=\n%s", gstr->str); if( ( VarSector.TotalTracks = CdCurl_cdparanoia_get_total_tracks( gstr->str ) ) > -1 ) { CdCurl_cdparanoia_get_sectors( gstr->str ); } g_string_free (gstr, TRUE); gstr = NULL; if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print( "total_tracks with cdparanoia = %d\n", VarSector.TotalTracks ); if( VarSector.TotalTracks > -1 ) { // SET DATAS FOR CD_CUE CdCurl_set_datas_for_cdcue(); switch( CdCurl_discdb_do_query() ) { case DO_CURL_QUERY_FALSE : CdCurl_discdb_do_read( DO_CURL_QUERY_FALSE ); break; case DO_CURL_QUERY_TRUE : CdCurl_discdb_do_read( DO_CURL_QUERY_TRUE ); break; case DO_CURL_QUERY_REPEAT : if( DO_CURL_QUERY_TRUE == CdCurl_discdb_do_query()) { CdCurl_discdb_do_read( DO_CURL_QUERY_TRUE ); } break; } // SET DATAS FOR CD_CUE CdCurl_set_datas_for_cdcue_two(); } else { CdCurl_remove_struct(); BoolRet = FALSE; EnteteCD.Message = g_strdup( _("No Audio CD") ); } if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print( "\n" ); } return( BoolRet ); } xcfa-4.3.6/src/mplayer.c0000644000175000017500000003752712122563465012016 00000000000000 /* * file : mplayer.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #include #include #include #include #include #include #include // PROCESSUS NON-BLOQUANT #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "configuser.h" #include "mplayer.h" /* *--------------------------------------------------------------------------- * DEFINE and STRUCT and VAR *--------------------------------------------------------------------------- */ #define XCFA_TMP_FIFO "/tmp/XcfaCmdToMplayer" VAR_MPLAYER VarMplayer; /* *--------------------------------------------------------------------------- * EXTERNAL REF *--------------------------------------------------------------------------- */ extern int kill(pid_t pid, int sig); // SIGNAL ET EXECUTE EXTERNAL // void mplayer_sigchld (gint signum) { gint status; wait(&status); VarMplayer.SignalNumchildren --; if (VarMplayer.SignalNumchildren > 0) { /* re-install the signal handler */ signal (SIGCHLD, mplayer_sigchld); } } // // int mplayer_call_exec (gchar **args, pid_t *p, gint p_output) { gchar **ptr = (gchar **)args; VarMplayer.SignalNumchildren = 0; if (pipe (VarMplayer.Tube) != 0) { fprintf (stderr, "error: pipe\n"); exit (1); } if ((*p = fork()) == 0) { dup2 (VarMplayer.Tube [ 1 ], p_output); close (VarMplayer.Tube [ 1 ]); execvp ((gchar *)*(ptr+0), ptr); fprintf (stderr, "error: exec"); exit (2); } VarMplayer.SignalNumchildren ++; signal (SIGCHLD, mplayer_sigchld); close (VarMplayer.Tube [ 1 ]); return (VarMplayer.Tube [ 0 ]); } // FIFO CREATE and REMOVE // void mplayer_remove_list_args (void) { gint PosArg = 0; for( PosArg = 0; PosArg < MAX_PLAYERS_ARGS; PosArg ++ ) { if( NULL != VarMplayer.PlayerArgs[ PosArg ] ) { g_free (VarMplayer.PlayerArgs[ PosArg ]); } VarMplayer.PlayerArgs[ PosArg ] = NULL; } } // // /* man -k mkfifo mkfifo (1) - Créer des tubes nommés (FIFO) mkfifo (3) - Créer un fichier spécial FIFO mkfifoat (3) - Créer une FIFO (un tube nommé) relatif à un descripteur de fichier d'un répertoire NOM mkfifo - Créer un fichier spécial FIFO SYNOPSIS #include #include int mkfifo(const char *pathname, mode_t mode); DESCRIPTION La fonction mkfifo() crée un fichier spécial FIFO (tube nommé) à l’emplacement pathname. mode indique les permissions d’accès. Ces permissions sont modifiées par la valeur d’umask du processus : les permissions d’accès effectivement adoptées sont (mode & ~umask). L’ouverture d’un FIFO en lecture est généralement bloquante, jusqu’à ce qu’un autre processus ouvre le même FIFO en écriture, et inversement. */ void mplayer_create_fifo (void) { if (0 == mkfifo(XCFA_TMP_FIFO, 0644)) { gint status; gint descripteur; descripteur = open (XCFA_TMP_FIFO, O_RDWR); // LE FICHIER EST OUVERT EN MODE « NON-BLOQUANT » status = fcntl(descripteur, F_GETFL); status = fcntl(descripteur, F_SETFL, status | O_NONBLOCK); close (descripteur); } } // // void mplayer_remove_fifo (void) { if (FALSE == libutils_access_mode (XCFA_TMP_FIFO)) return; g_unlink (XCFA_TMP_FIFO); } // FIFO COMMAND // void mplayer_set_fifo (gchar *str) { if (VarMplayer.BoolErreurMplayer == TRUE) return; if (VarMplayer.BoolThreadActivate == FALSE) return; if (TRUE == libutils_access_mode (XCFA_TMP_FIFO)) { FILE *fp = NULL; if ((fp = fopen (XCFA_TMP_FIFO, "w")) != NULL) { fprintf (fp, "%s\n", str); fclose (fp); } } } // // void mplayer_fifo_quit (void) { mplayer_set_fifo ("quit"); // VarMplayer.TypeButtonPush = PUSH_BUTTON_MPLAYER_STOP; // g_usleep (500000); VarMplayer.BoolIsPause = FALSE; } // // void mplayer_fifo_pause (void) { // VarMplayer.TypeButtonPush = PUSH_BUTTON_MPLAYER_PAUSE; VarMplayer.BoolIsPause = TRUE; mplayer_set_fifo ("pause"); } // // void mplayer_fifo_get_percent_pos (void) { mplayer_set_fifo ("get_percent_pos"); } // // void mplayer_fifo_get_time_pos (void) { mplayer_set_fifo ("get_time_pos"); } // // void mplayer_fifo_get_time_length (void) { mplayer_set_fifo ("get_time_length"); } // // void mplayer_fifo_seek (gdouble PercentValue) { gchar *Str = NULL; guint sec; if (PercentValue < 0.0) PercentValue = 0.0; if (PercentValue > 100.0) PercentValue = 100.0; // VarMplayer.TypeButtonPush = PUSH_BUTTON_MPLAYER_PLAY; VarMplayer.BoolIsPause = FALSE; sec = (gint) ((VarMplayer.DOUBLE_TempsTotal * PercentValue) / 100.0); Str = g_strdup_printf ("seek %d 2", sec); mplayer_set_fifo (Str); g_free (Str); Str = NULL; } // // void mplayer_fifo_seek_with_hundr (gdouble PercentValue) { gchar *Mess = NULL; gint sec; gdouble dsec; gint hundr; if (PercentValue < 0.0) PercentValue = 0.0; if (PercentValue > 100.0) PercentValue = 100.0; // VarMplayer.TypeButtonPush = PUSH_BUTTON_MPLAYER_PLAY; VarMplayer.BoolIsPause = FALSE; sec = (gint) ((VarMplayer.DOUBLE_TempsTotal * PercentValue) / 100.0); dsec = (VarMplayer.DOUBLE_TempsTotal * PercentValue) / 100.0; hundr = (dsec - (gdouble)sec) * 1000.0; if (hundr >= 1000) hundr = 999; Mess = g_strdup_printf ("seek %d.%d 2", sec, hundr); mplayer_set_fifo (Mess); g_free (Mess); Mess = NULL; } // THREAD // static void mplayer_thread (void *arg) { #define MAX_BUF_MPLAYER 1024 gint pos = 0; gint fd; gint size; gchar buf [ MAX_BUF_MPLAYER + 10 ]; gchar *Ptr = NULL; guint Sec; guint Hundr; gdouble SecondesTempsActuel = 0.0; gboolean BoolEndRead = FALSE; // gboolean BoolPass = FALSE; PRINT("DEBUT THREAD"); VarMplayer.BoolThreadActivate = TRUE; fd = mplayer_call_exec (VarMplayer.PlayerArgs, &VarMplayer.CodeFork, STDOUT_FILENO); // STDERR_FILENO // // mplayer -input cmdlist // do { if (fd < 0) { VarMplayer.BoolErreurMplayer = TRUE; break; } pos = -1; do { pos++; if (pos >= MAX_BUF_MPLAYER) { PRINT_FUNC_LF(); g_print ("pos(%d) >= CONV_MAX_CARS(%d)\n", pos, MAX_BUF_MPLAYER); pos --; } size = read (fd, &buf[pos], 1); // g_print ("size = %d\n",size); if (strstr(buf,"Audio: no sound")) { VarMplayer.BoolErreurMplayer = TRUE; g_print("\tAudio: no sound\n"); break; } if (strstr(buf,"Cannot sync MAD frame")) { VarMplayer.BoolErreurMplayer = TRUE; g_print("\tCannot sync MAD frame\n"); break; } if (strstr(buf,"Not a valid DCA frame")) { VarMplayer.BoolErreurMplayer = TRUE; g_print("\tNot a valid DCA frame\n"); break; } } while (VarMplayer.BoolThreadActivate == TRUE && (buf[pos] != '\b') && (buf[pos] != '\r') && (buf[pos] != '\n') && (size > 0)); buf [ pos +2 ] = '\0'; buf [ pos +3 ] = '\0'; if (LIST_MPLAYER_FROM_CD == VarMplayer.ListPlayFrom) { // PRINT("LIST_MPLAYER_FROM_CD"); } else if (LIST_MPLAYER_FROM_DVD == VarMplayer.ListPlayFrom) { // PRINT("LIST_MPLAYER_FROM_DVD"); } if (VarMplayer.BoolErreurMplayer == TRUE) { break; } if (NULL != VarMplayer.Func_request_stop) { // SI DEMANDE DE STOP EST VALIDE if (TRUE == (*VarMplayer.Func_request_stop)()) { BoolEndRead = TRUE; break; } } if (VarMplayer.ListPlayFrom == LIST_MPLAYER_FROM_CD) { if (strstr(buf,"A:") == NULL && VarMplayer.PercentTempsActuel > 0. && *buf == '\n') { } else if (strstr(buf,"A:")) { } else if (strstr(buf,"A:") == NULL) { } } // ANS_PERCENT_POSITION=8.0 (04:36.0) 0.8% // if (VarMplayer.ListPlayFrom == LIST_MPLAYER_FROM_DVD) { if ((Ptr = strstr(buf,"ANS_PERCENT_POSITION=")) != NULL) { while (*Ptr != '=') Ptr++; if (*Ptr == '=') Ptr++; if (atoi(Ptr) >= 99) { PRINT("FIN ET ARRET LECTURE DVD-AUDIO"); BoolEndRead = TRUE; break; } } } // ANS_TIME_POSITION=0.0.0 (01:25.0) ??,?% // ANS_TIME_POSITION=72.785.0 (01:25.0) 3.3% if ((Ptr = strstr(buf,"ANS_TIME_POSITION=")) != NULL && strstr(buf,"??,?") == NULL) { while (*Ptr != '=') Ptr++; if (*Ptr == '=') Ptr++; Sec = atoi (Ptr); while (*Ptr != '.') Ptr++; if (*Ptr == '.') Ptr++; Hundr = atoi (Ptr); SecondesTempsActuel = (gdouble)Sec + ((gdouble)Hundr / 10.0); VarMplayer.PercentTempsActuel = (SecondesTempsActuel / VarMplayer.DOUBLE_TempsTotal) * 100.0; if (VarMplayer.ListPlayFrom != LIST_MPLAYER_FROM_DVD) { if (VarMplayer.PercentTempsActuel >= 99.855072) { BoolEndRead = TRUE; break; } } // BoolPass = TRUE; } // ANS_LENGTH=85.00of 85.0 (01:25.0) 2.7% // else if ((Ptr = strstr(buf,"ANS_LENGTH=")) != NULL) { while (*Ptr != '=') Ptr++; if (*Ptr == '=') Ptr++; Sec = atoi (Ptr); while (*Ptr != '.') Ptr++; if (*Ptr == '.') Ptr++; Hundr = atoi (Ptr); VarMplayer.DOUBLE_TempsTotal = (gdouble)Sec; } if (buf[pos] != '\n') { pos ++; buf[pos++] = '\n'; buf[pos] = '\0'; } } while (VarMplayer.BoolThreadActivate == TRUE && (size > 0)); close(fd); if (TRUE == BoolEndRead ) { mplayer_set_fifo ("quit"); } BoolEndRead = TRUE; VarMplayer.Button = -1; VarMplayer.BoolIsPause = FALSE; VarMplayer.BoolThreadActivate = FALSE; PRINT("FIN THREAD"); if (VarMplayer.BoolErreurMplayer == TRUE) { g_print("\n"); g_print("KILL Process mplayer = "); if ((kill (VarMplayer.CodeFork, SIGKILL) != 0)) g_print ("ERREUR\n"); else g_print ("OK\n"); g_print("\n"); } #undef MAX_BUF_MPLAYER pthread_exit (0); } // // TIMEOUT // static gint mplayer_timeout (gpointer data) { static gint cpt = -1; if (VarMplayer.BoolThreadActivate == TRUE) { if (TRUE == VarMplayer.BoolIsPause) return (TRUE); if (VarMplayer.Button != -1) return (TRUE); if (cpt ++ == 0) mplayer_fifo_get_percent_pos (); if (cpt >= 10) cpt = -1; switch (VarMplayer.ListPlayFrom) { case LIST_MPLAYER_FROM_NONE : break; case LIST_MPLAYER_FROM_DVD : mplayer_fifo_get_time_pos (); break; case LIST_MPLAYER_FROM_CD : if (VarMplayer.DOUBLE_TempsTotal == 0.0) mplayer_fifo_get_time_length (); else mplayer_fifo_get_time_pos (); if (NULL != VarMplayer.FuncSetValueTime && VarMplayer.PercentTempsActuel > 0.0) (*VarMplayer.FuncSetValueTime) (VarMplayer.PercentTempsActuel); break; } } else if (VarMplayer.BoolThreadActivate == FALSE) { gtk_timeout_remove (VarMplayer.HandlerTimeout); // Widget de l'onglet dvd, cd ou fichiers sur ATTENTE switch (VarMplayer.ListPlayFrom) { case LIST_MPLAYER_FROM_NONE : break; case LIST_MPLAYER_FROM_DVD : VarMplayer.PercentTempsActuel = 0.0; if (VarMplayer.FuncSetValueTime) (*VarMplayer.FuncSetValueTime) (VarMplayer.PercentTempsActuel); if (VarMplayer.FuncWinClose) (*VarMplayer.FuncWinClose) (); if (VarMplayer.FuncIconeStop) (*VarMplayer.FuncIconeStop) (); break; case LIST_MPLAYER_FROM_CD : VarMplayer.PercentTempsActuel = 0.0; if (VarMplayer.FuncSetValueTime) (*VarMplayer.FuncSetValueTime) (VarMplayer.PercentTempsActuel); if (VarMplayer.FuncIconeStop) (*VarMplayer.FuncIconeStop) (); break; } VarMplayer.ListPlayFrom = LIST_MPLAYER_FROM_NONE; mplayer_remove_fifo (); VarMplayer.BoolTimeoutActivate = FALSE; PRINT("FIN TIMEOUT"); } return (TRUE); } // // MPLAYER INIT // void mplayer_init ( LIST_MPLAYER_FROM p_ListPlayFrom, gdouble p_TempsTotalSection, guint p_TempsTotalSurface, void *p_FuncWinClose, void *p_FuncSetValueTime, void *p_FuncIconeStop, void *p_Func_request_stop ) { VarMplayer.PercentTempsActuel = -1.0; VarMplayer.DOUBLE_TempsTotal = p_TempsTotalSurface; // *** VarMplayer.DOUBLE_TempsTotalSection = p_TempsTotalSection; // *** VarMplayer.BoolIsPause = FALSE; VarMplayer.ListPlayFrom = p_ListPlayFrom; // *** VarMplayer.BoolThreadActivate = FALSE; VarMplayer.NmrTid = 0; VarMplayer.BoolTimeoutActivate = FALSE; VarMplayer.HandlerTimeout = 0; VarMplayer.SignalNumchildren = 0; VarMplayer.CodeFork = 0; VarMplayer.BoolErreurMplayer = FALSE; VarMplayer.Button = -1; // *** VarMplayer.FuncWinClose = p_FuncWinClose; // *** VarMplayer.FuncSetValueTime = p_FuncSetValueTime; // *** VarMplayer.FuncIconeStop = p_FuncIconeStop; // *** VarMplayer.Func_request_stop = p_Func_request_stop; // *** } // // EXTERNAL CALL // void mplayer_set_list (GList *p_list) { gint PosArg = 0; GList *list = NULL; gchar *Ptr = NULL; // PRINT_FUNC_LF(); // DETRUIT MPLAYER VIA LE FIFO mplayer_fifo_quit (); // CREATE CONTROLE FILE MPLAYER VIA FIFO mplayer_create_fifo (); // DESTRUIT L ANCIENNE LIST D ARGUMENTS mplayer_remove_list_args (); PosArg = 0; VarMplayer.PlayerArgs[ PosArg++ ] = g_strdup ("nice"); VarMplayer.PlayerArgs[ PosArg++ ] = g_strdup ("-n"); VarMplayer.PlayerArgs[ PosArg++ ] = g_strdup_printf ("%d", Config.Nice); VarMplayer.PlayerArgs[ PosArg++ ] = g_strdup ("mplayer"); VarMplayer.PlayerArgs[ PosArg++ ] = g_strdup ("-nojoystick"); VarMplayer.PlayerArgs[ PosArg++ ] = g_strdup ("-nolirc"); VarMplayer.PlayerArgs[ PosArg++ ] = g_strdup ("-nortc"); VarMplayer.PlayerArgs[ PosArg++ ] = g_strdup ("-noautosub"); VarMplayer.PlayerArgs[ PosArg++ ] = g_strdup ("-nomouseinput"); VarMplayer.PlayerArgs[ PosArg++ ] = g_strdup ("-slave"); VarMplayer.PlayerArgs[ PosArg++ ] = g_strdup ("-idle"); VarMplayer.PlayerArgs[ PosArg++ ] = g_strdup ("-cache"); VarMplayer.PlayerArgs[ PosArg++ ] = g_strdup ("8192"); list = g_list_first (p_list); while (list) { if (NULL != (Ptr = (gchar *)list->data)) { VarMplayer.PlayerArgs[ PosArg++ ] = g_strdup (Ptr); } list = g_list_next (list); } VarMplayer.PlayerArgs[ PosArg++ ] = g_strdup ("-input"); VarMplayer.PlayerArgs[ PosArg++ ] = g_strdup_printf ("file=%s", XCFA_TMP_FIFO); VarMplayer.PlayerArgs[ PosArg++ ] = NULL; // LISTER LES ARGUMENTS SUR STDOUT g_print("\n"); g_print("!-----------------------------------------------------------!\n"); g_print("! READ WITH MPLAYER \n"); g_print("!-----------------------------------------------------------!\n"); g_print("! "); // PRINT COMMAND LINE for (PosArg = 0; VarMplayer.PlayerArgs[ PosArg ] != NULL; PosArg ++) { g_print ("%s ", VarMplayer.PlayerArgs[ PosArg ]); } // PRINT COMMAND LINE IN STRUCT g_print("\n!-----------------------------------------------------------!\n"); for (PosArg = 0; VarMplayer.PlayerArgs[ PosArg ] != NULL; PosArg ++) { g_print ("VarMplayer.PlayerArgs[ %02d ] = %s\n", PosArg, VarMplayer.PlayerArgs[ PosArg ]); } g_print("!-----------------------------------------------------------!\n\n"); if (VarMplayer.PercentTempsActuel < 0.0) VarMplayer.PercentTempsActuel = 0.0; // ACTIVATE THREAD if (FALSE == VarMplayer.BoolThreadActivate) { pthread_create (&VarMplayer.NmrTid, NULL ,(void *)mplayer_thread, (void *)NULL); } // ACTIVATE TIMEOUT if (FALSE == VarMplayer.BoolTimeoutActivate) { VarMplayer.BoolTimeoutActivate = TRUE; PRINT("DEBUT TIMEOUT"); VarMplayer.HandlerTimeout = gtk_timeout_add (100, mplayer_timeout, 0); } } gboolean mplayer_is_used (void) { return (VarMplayer.BoolTimeoutActivate); } xcfa-4.3.6/src/file_scan_db.c0000644000175000017500000001414212122563465012721 00000000000000 /* * file : file_scan_db.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "configuser.h" #include "get_info.h" #include "win_scan.h" #include "file.h" /* *--------------------------------------------------------------------------- * VARIABLES: GESTION THREAD & TIMEOUT FOR LEVEL *--------------------------------------------------------------------------- */ typedef struct { gboolean bool_etat; // gchar *MessUser; // gint NbrElementsInList; // gint ElementActif; // double total_percent; // pthread_t nmr_tid; // guint handler_timeout; // gboolean bool_thread_end; // gboolean bool_compteur; // gint pass_conv; // gboolean bool_update; // gboolean BoolWindScanUsed; // } VAR_FILE_SCAN_DB; VAR_FILE_SCAN_DB VarFileScanDB; // // static void FileScanDB_thread (void *arg) { DETAIL *detail = NULL; GList *list = NULL; gint FicLevelMix = (gint)gtk_spin_button_get_value (var_file.AdrSpinbuttonNormalise); VarFileScanDB.bool_thread_end = FALSE; list = g_list_first (entetefile); while (list) { if (NULL != (detail = (DETAIL *)list->data) && detail->Etat_Scan == ETAT_SCAN_DEMANDE && (detail->type_infosong_file_is == FILE_IS_WAV || detail->type_infosong_file_is == FILE_IS_OGG || detail->type_infosong_file_is == FILE_IS_MP3)) { if (detail->type_infosong_file_is == FILE_IS_WAV) { INFO_WAV *info = (INFO_WAV *)detail->info; VarFileScanDB.bool_compteur = TRUE; detail->LevelMix = FicLevelMix; info->LevelDbfs.NewLevel = FicLevelMix; info->LevelDbfs.level = GetInfo_level_get_from (FILE_IS_WAV, detail->namefile); detail->Etat_Scan = ETAT_SCAN_OK; VarFileScanDB.ElementActif ++; VarFileScanDB.bool_compteur = FALSE; VarFileScanDB.bool_etat = TRUE; VarFileScanDB.bool_update = TRUE; } else if (detail->type_infosong_file_is == FILE_IS_OGG) { INFO_OGG *info = (INFO_OGG *)detail->info; VarFileScanDB.bool_compteur = TRUE; detail->LevelMix = FicLevelMix; info->LevelDbfs.NewLevel = FicLevelMix; info->LevelDbfs.level = GetInfo_level_get_from (FILE_IS_OGG, detail->namefile); detail->Etat_Scan = ETAT_SCAN_OK; VarFileScanDB.ElementActif ++; VarFileScanDB.bool_compteur = FALSE; VarFileScanDB.bool_etat = TRUE; VarFileScanDB.bool_update = TRUE; } else if (detail->type_infosong_file_is == FILE_IS_MP3) { INFO_MP3 *info = (INFO_MP3 *)detail->info; VarFileScanDB.bool_compteur = TRUE; detail->LevelMix = FicLevelMix; info->LevelDbfs.NewLevel = FicLevelMix; info->LevelDbfs.level = GetInfo_level_get_from (FILE_IS_MP3, detail->namefile); detail->Etat_Scan = ETAT_SCAN_OK; VarFileScanDB.ElementActif ++; VarFileScanDB.bool_compteur = FALSE; VarFileScanDB.bool_etat = TRUE; VarFileScanDB.bool_update = TRUE; } } list = g_list_next (list); } VarFileScanDB.bool_thread_end = TRUE; pthread_exit(0); } // // static gint FileScanDB_timeout (gpointer data) { if (VarFileScanDB.bool_etat == TRUE) { if( NULL != VarFileScanDB.MessUser ) { g_free (VarFileScanDB.MessUser); VarFileScanDB.MessUser = NULL; } VarFileScanDB.bool_etat = FALSE; } if (FALSE == VarFileScanDB.BoolWindScanUsed && VarFileScanDB.bool_compteur == TRUE) { gchar *str = NULL; gchar *spinner="|/-\\"; gchar foo [ 2 ]; foo [ 0 ] = spinner[VarFileScanDB.pass_conv++%4]; foo [ 1 ] = '\0'; str = g_strdup_printf ("En cours: %d sur %d %s", VarFileScanDB.ElementActif +1, VarFileScanDB.NbrElementsInList, foo ); WindScan_set_label (str); g_free (str); str = NULL; VarFileScanDB.total_percent = (double)(VarFileScanDB.ElementActif +1) / (double)VarFileScanDB.NbrElementsInList; str = g_strdup_printf ("%d%%", (int)(VarFileScanDB.total_percent*100)); WindScan_set_progress (str, VarFileScanDB.total_percent); g_free (str); str = NULL; } if (VarFileScanDB.bool_update == TRUE) { VarFileScanDB.bool_update = FALSE; file_pixbuf_update_glist (); return (TRUE); } if (VarFileScanDB.bool_thread_end == TRUE) { if (FALSE == VarFileScanDB.BoolWindScanUsed) WindScan_close (); gtk_timeout_remove (VarFileScanDB.handler_timeout); } return (TRUE); } // // void FileScanDB_action (gboolean BoolAllScan) { PRINT_FUNC_LF(); // SI DES FICHIERS wav, mp3 et ogg PRET POUR LE SCAN if ((VarFileScanDB.NbrElementsInList = file_get_scan ()) > 0) { VarFileScanDB.bool_thread_end = FALSE; VarFileScanDB.bool_etat = FALSE; VarFileScanDB.ElementActif = 0; VarFileScanDB.bool_compteur = FALSE; VarFileScanDB.pass_conv = -1; VarFileScanDB.bool_update = FALSE; VarFileScanDB.MessUser = NULL; VarFileScanDB.BoolWindScanUsed = WindScan_open ("Scan dBFS", WINDSCAN_PULSE); VarFileScanDB.handler_timeout = gtk_timeout_add (50, FileScanDB_timeout, 0); pthread_create (&VarFileScanDB.nmr_tid, NULL ,(void *)FileScanDB_thread, (void *)NULL); } } xcfa-4.3.6/src/prg_init.h0000644000175000017500000000622712164063423012151 00000000000000 /* * file : prg_init.h * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifndef prg_init_h #define prg_init_h 1 typedef struct { GtkListStore *Adr_List_Store; // GtkTreeModel *Adr_Tree_Model; // GtkWidget *Adr_scroll; // GtkTreeSelection *Adr_Line_Selected; // gboolean Bool_Goto_Page_Options; // GdkPixbuf *Pixbuf_Ok; // GdkPixbuf *Pixbuf_Not_Ok; // } VAR_PRGEXTERN; typedef enum { NMR_a52dec = 0, // NMR_aacplusenc, // NMR_cdparanoia, // NMR_cd_discid, // NMR_checkmp3, // NMR_faac, // NMR_faad, // NMR_flac, // NMR_icedax, // NMR_lame, // NMR_lsdvd, // NMR_mac, // NMR_musepack_tools_mppdec, // NMR_musepack_tools_mppenc, // NMR_mplayer, // NMR_mp3gain, // NMR_normalize, // NMR_libnotify_bin, // NMR_shorten, // NMR_shntool, // NMR_sox, // NMR_vorbis_tools_oggenc, // NMR_vorbisgain, // NMR_wavpack, // NMR_MAX_TABLEAU // } TYPE_PROGINIT; typedef struct { gchar *PackageDebian64; // PACKAGEDEBIAN_64 gchar *PackageDebian32; // PACKAGEDEBIAN_32 gchar *Name1; // NAME1 gchar *Name2; // NAME2 gchar *Name3; // NAME3 gboolean *BoolFound; // FOUND gchar *PtrName; // NAME TREE-VIEW : pointeur sur Name1 | Name2 | Name3 GdkPixbuf *Pixbuf; // PIXBUF TREE-VIEW gchar *Paquage; // PAQUAGE gchar *Description; // DESCRIPTION TREE-VIEW } TABLEAU_PRG_EXTERN; typedef struct { gboolean bool_a52dec; // gboolean bool_notify_send; // gboolean bool_ape; // gboolean bool_mpc123_mppdec; // gboolean bool_mppenc; // gboolean bool_cdparanoia; // gboolean bool_cdda2wav; // gboolean bool_lame; // gboolean bool_oggenc; // gboolean bool_sox; // gboolean bool_normalize; // gboolean bool_checkmp3; // gboolean bool_faad; // gboolean bool_faac; // gboolean bool_mplayer; // gboolean bool_shorten; // gboolean bool_lsdvd; // gboolean bool_vorbisgain; // gboolean bool_flac; // gboolean bool_mp3gain; // gboolean bool_wavpack; // gboolean bool_shntool; // gboolean bool_aacplusenc; // gboolean bool_cd_discid; // } PRGINIT; extern PRGINIT PrgInit; gchar *prginit_get_name (TYPE_PROGINIT TypeEnum); #endif xcfa-4.3.6/src/options_oggenc.c0000644000175000017500000001605612122563465013354 00000000000000 /* * file : options_oggenc.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "configuser.h" #include "options.h" static gchar *val_bitrate_ogg[] = { "--bitrate=45", "--bitrate=64", "--bitrate=80", "--bitrate=96", "--bitrate=112", "--bitrate=128", "--bitrate=160", "--bitrate=192", "--bitrate=224", "--bitrate=256", "--bitrate=320", "--quality=-1", "--quality=0", "--quality=1", "--quality=2", "--quality=3", "--quality=4", "--quality=5", "--quality=6", "--quality=7", "--quality=8", "--quality=9", "--quality=10" }; // // gchar *optionsOggenc_get_param( void ) { gchar StrOggenc[ 1000 ]; strcpy (StrOggenc, val_bitrate_ogg [ Config.BitrateOggenc ]); if (Config.BitrateOggenc < 11 && Config.ManagedOggenc == 0) { if (*StrOggenc != '\0') strcat (StrOggenc, " "); strcat (StrOggenc, "--managed"); } if (Config.BitrateOggenc < 9 && Config.DownmixOggenc == 0) { if (*StrOggenc != '\0') strcat (StrOggenc, " "); strcat (StrOggenc, "--downmix"); } return ((gchar *)strdup (StrOggenc)); } // // gchar *optionsOggenc_get_val_bitrate_oggenc (void) { return (val_bitrate_ogg [ gtk_combo_box_get_active (GTK_COMBO_BOX (var_options.Adr_Widget_Oggenc_bitrate)) ]); } // // gboolean optionsOggenc_get_bool_managed_oggenc (void) { if (GTK_WIDGET_IS_SENSITIVE(GTK_WIDGET (GLADE_GET_OBJECT("eventbox_combobox_oggenc_managed"))) == TRUE) { if (gtk_combo_box_get_active (GTK_COMBO_BOX (var_options.Adr_Widget_Oggenc_managed)) == 0) return (TRUE); } return (FALSE); } // // gboolean optionsOggenc_get_bool_downmix_oggenc (void) { if (GTK_WIDGET_IS_SENSITIVE(GTK_WIDGET (GLADE_GET_OBJECT("eventbox_combobox_oggenc_downmix"))) == TRUE) { if (gtk_combo_box_get_active (GTK_COMBO_BOX (var_options.Adr_Widget_Oggenc_downmix)) == 0) return (TRUE); } return (FALSE); } // // void on_combobox_oggenc_bitrate_realize (GtkWidget *widget, gpointer user_data) { var_options.Adr_Widget_Oggenc_bitrate = GTK_COMBO_BOX (widget); // libcombo_alloc (GTK_COMBO_BOX (widget)); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), " 45 kbit/s"); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), " 64 kbit/s"); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), " 80 kbit/s"); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), " 96 kbit/s"); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "112 kbit/s"); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "128 kbit/s"); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "160 kbit/s"); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "192 kbit/s"); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "224 kbit/s"); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "256 kbit/s"); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "320 kbit/s"); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), _("Qualite -1 (Moins bonne qualite)")); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), _("Qualite 0")); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), _("Qualite 1")); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), _("Qualite 2")); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), _("Qualite 3")); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), _("Qualite 4")); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), _("Qualite 5")); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), _("Qualite 6")); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), _("Qualite 7")); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), _("Qualite 8")); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), _("Qualite 9")); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), _("Qualite 10 (Meilleure qualite)")); gtk_combo_box_set_active (GTK_COMBO_BOX (widget), Config.BitrateOggenc); } // // void on_combobox_oggenc_bitrate_changed (GtkComboBox *combobox, gpointer user_data) { if (NULL != var_options.Adr_Widget_Oggenc_bitrate) { gint ind; if ((ind = gtk_combo_box_get_active (GTK_COMBO_BOX (var_options.Adr_Widget_Oggenc_bitrate))) >= 0) Config.BitrateOggenc = ind; gtk_widget_set_sensitive ( GTK_WIDGET (GLADE_GET_OBJECT("eventbox_combobox_oggenc_managed")), gtk_combo_box_get_active (var_options.Adr_Widget_Oggenc_bitrate) < 11 ? TRUE : FALSE); gtk_widget_set_sensitive ( GTK_WIDGET (GLADE_GET_OBJECT("eventbox_combobox_oggenc_downmix")), gtk_combo_box_get_active (var_options.Adr_Widget_Oggenc_bitrate) < 9 ? TRUE : FALSE); OptionsInternal_set_datas_interne (COLOR_OGGENC_DEBIT, var_options.Adr_label_oggenc_ogg, OGGENC_WAV_TO_OGG); } } // // void on_combobox_oggenc_managed_realize (GtkWidget *widget, gpointer user_data) { libcombo_alloc (GTK_COMBO_BOX (widget)); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), _("Oui")); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), _("Non")); gtk_combo_box_set_active (GTK_COMBO_BOX (widget), Config.ManagedOggenc); var_options.Adr_Widget_Oggenc_managed = GTK_COMBO_BOX (widget); } void on_combobox_oggenc_managed_changed (GtkComboBox *combobox, gpointer user_data) { if (NULL != var_options.Adr_Widget_Oggenc_managed) { gint ind; if ((ind = gtk_combo_box_get_active (GTK_COMBO_BOX (var_options.Adr_Widget_Oggenc_managed))) >= 0) Config.ManagedOggenc = ind; OptionsInternal_set_datas_interne (COLOR_OGGENC_MANAGED, var_options.Adr_label_oggenc_ogg, OGGENC_WAV_TO_OGG); } } // // void on_combobox_oggenc_downmix_realize (GtkWidget *widget, gpointer user_data) { libcombo_alloc (GTK_COMBO_BOX (widget)); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), _("Mono force")); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), _("Stereo")); gtk_combo_box_set_active (GTK_COMBO_BOX (widget), Config.DownmixOggenc); var_options.Adr_Widget_Oggenc_downmix = GTK_COMBO_BOX (widget); } void on_combobox_oggenc_downmix_changed (GtkComboBox *combobox, gpointer user_data) { if (NULL != var_options.Adr_Widget_Oggenc_downmix) { gint ind; if ((ind = gtk_combo_box_get_active (GTK_COMBO_BOX (var_options.Adr_Widget_Oggenc_downmix))) >= 0) Config.DownmixOggenc = ind; OptionsInternal_set_datas_interne (COLOR_OGGENC_DOWNMIX, var_options.Adr_label_oggenc_ogg, OGGENC_WAV_TO_OGG); } } xcfa-4.3.6/src/win_scan.h0000644000175000017500000000265612122563437012145 00000000000000 /* * file : win_scan.h * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifndef win_scan_h #define win_scan_h 1 typedef enum { WINDSCAN_PULSE = 0, WINDSCAN_PROGRESS } TYPE_PROGRESS; gboolean WindScan_open (gchar *title, TYPE_PROGRESS TypeProgress); void WindScan_close (void); void WindScan_set_pulse (void); void WindScan_set_progress (gchar *p_str, double p_etat); gboolean WindScan_close_request (void); void WindScan_set_label_bar (gchar *p_str); void WindScan_set_label (gchar *p_str); void WindScan_hide_expander (void); void WindScan_show_expander (void); void WindScan_show_cancel( gboolean p_bool_show ); #endif xcfa-4.3.6/src/dvd_read.c0000644000175000017500000006430112162642062012076 00000000000000 /* * file : dvd_read.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #include #include #include #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "scan.h" #include "conv.h" #include "configuser.h" #include "file.h" #include "dvd.h" /* NAME_DVD TITLE 01 AUDIO_TITLE 1 CHAPTER 01 AUDIO 1 Stream id: 0x80, 0x81, 0x82, ... Length: hh:mm:ss.ccc Format: ac3, dts Frequency: 48000 (ac3 par defaut) pas dts Quantization: drc Channels: AUDIO 2 CHAPTER 02 AUDIO 1 AUDIO 2 TITLE 02 CHAPTER 01 AUDIO 1 AUDIO 2 */ typedef struct { gint tst; gchar *Language; gchar *Lang; gchar *Format; gint Frequency; gchar *Quantization; gint Channels; gchar *StreamId; gint ValStreamId; } DVD_AUDIO; typedef struct { gchar *Length; } DVD_CHAPTERS; typedef struct { gint NumTitle; gint max_chapter; DVD_CHAPTERS *chapters; gint max_audio; DVD_AUDIO *audio; gchar *length; } DVD_TITLE; typedef struct { gchar *DiscTitle; gint LongestTrack; gint max_cells; gint max_subpictures; gint max_titles; DVD_TITLE *titles; } DVD_LIST; DVD_LIST dvd_data = {NULL, 0,0,0,0, NULL}; void dvdread_remove_list (void) { // PRINT_FUNC_LF(); if (NULL != GlistDvd) { GList *list = NULL; VAR *var = NULL; list = g_list_first (GlistDvd); while (list) { if (NULL != (var = (VAR *)list->data)) { if (var->def) { g_free (var->def); var->def = NULL; } if (var->time) { g_free (var->time); var->time = NULL; } var->GUINT_TempsTotal = 0; if (var->name_file) { g_free (var->name_file); var->name_file = NULL; } if (var->StaticNameFile) { g_free (var->StaticNameFile); var->StaticNameFile = NULL; } if (var->StrNumerateTitle) { g_free (var->StrNumerateTitle); var->StrNumerateTitle = NULL; } if (var->StrNumerateChapter) { g_free (var->StrNumerateChapter); var->StrNumerateChapter = NULL; } if (var->StrNumberChannel) { g_free (var->StrNumberChannel); var->StrNumberChannel = NULL; } if (var->StrNumerateStreamId) { g_free (var->StrNumerateStreamId); var->StrNumerateStreamId = NULL; } g_free (var); var = list->data = NULL; } list = g_list_next (list); } g_list_free (GlistDvd); GlistDvd = NULL; } } void dvdread_create_list (TYPE_LIST_DVD type_list_dvd, gchar *def, gchar *time, gchar *name_file, gint format_id, gint NumerateTitle, gint NumerateChapter, gint NumberChannel, gchar *StrNumerateStreamId) { VAR *var = g_malloc0( sizeof (VAR)); var->type_list_dvd = type_list_dvd; var->def = g_strdup (def ? def : ""); var->time = g_strdup (time ? time : ""); var->GUINT_TempsTotal = 0; if (NULL != time) { guint H = 0; guint M = 0; guint S = 0; gchar *Ptr = time; /* TIME=00:08:36 */ H = atoi (Ptr); Ptr += 3; M = atoi (Ptr); Ptr += 3; S = atoi (Ptr); var->GUINT_TempsTotal = (H * 60) * 60; var->GUINT_TempsTotal += M * 60; var->GUINT_TempsTotal += S; } var->name_file = g_strdup (name_file ? name_file : ""); var->StaticNameFile = g_strdup (var->name_file); var->format_id = format_id; var->StrNumerateTitle = g_strdup_printf ("%d", NumerateTitle); var->NumerateTitle = NumerateTitle; var->StrNumerateChapter = g_strdup_printf ("%d", NumerateChapter); var->NumerateChapter = NumerateChapter; var->StrNumberChannel = g_strdup_printf ("%d", NumberChannel); var->StrNumerateStreamId = g_strdup (StrNumerateStreamId ? StrNumerateStreamId : ""); var->EtatChoix = _COCHE_; var->DebutLecture = 0; var->EtatNormalise = FALSE; GlistDvd = g_list_append (GlistDvd, var); } void dvdread_compteur (void) { GList *list = NULL; gint title_actif; VAR *var = NULL; gint Ch = 0; gint OldChapter = 0; for (title_actif = 0; title_actif < dvd_data.max_titles; title_actif ++) { list = g_list_first (GlistDvd); while (list) { if (NULL != (var = (VAR *)list->data)) { if (var->NumerateTitle == title_actif +1) { if (var->NumerateChapter == 1) { /* Init */ Ch = var->GUINT_TempsTotal; } else if (var->NumerateChapter > 1) { /* Ajout */ var->DebutLecture += Ch; if (OldChapter == var->NumerateChapter) { Ch += var->GUINT_TempsTotal; } if (OldChapter != var->NumerateChapter) OldChapter = var->NumerateChapter; } } } list = g_list_next (list); } } } void dvdread_create_list_with_data (void) { gint title_actif = -1; gint audio_actif = -1; gint chapter_actif = -1; gchar *str = NULL; gchar *ptr_length = NULL; gchar *name_file = NULL; gchar *format = NULL; gint format_id = 0; guint H = 0; guint M = 0; guint S = 0; gchar *Ptr = NULL; dvdread_remove_list (); dvdread_create_list (_DVD_NAME, dvd_data.DiscTitle, NULL, NULL, 0, 0, 0, 0, NULL); for (title_actif = 0; title_actif < dvd_data.max_titles; title_actif ++) { if (title_actif +1 == dvd_data.LongestTrack) { str = g_strdup_printf (_("Titre [%02d ** ]"), title_actif +1); } else { str = g_strdup_printf (_("Titre [%02d]"), title_actif +1); } dvdread_create_list (_DVD_TITLE, str, NULL, NULL, 0, 0, 0, 0, NULL); g_free (str); str = NULL; if (title_actif +1 == dvd_data.LongestTrack) { /* PRECAUTION */ if (dvd_data.titles[ title_actif ].length == NULL) { if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("******* SORTIE UN\n"); continue; } for (audio_actif = 0; audio_actif < dvd_data.titles[ title_actif ].max_audio; audio_actif ++) { if (dvd_data.titles [ title_actif ].audio [ audio_actif ].tst == 0) { /* PRECAUTION */ if (dvd_data.titles[ title_actif ].audio[ audio_actif ].Frequency == 0) continue; if (strstr (dvd_data.titles[ title_actif ].audio[ audio_actif ].Format, "dts")) { format = g_strdup_printf ("%s", dvd_data.titles[ title_actif ].audio[ audio_actif ].Format); format_id = _DTS_; } else if (strstr (dvd_data.titles[ title_actif ].audio[ audio_actif ].Format, "ac3")) { format = g_strdup_printf ("%s", dvd_data.titles[ title_actif ].audio[ audio_actif ].Format); format_id = _AC3_; } else { format = g_strdup_printf ("%s", dvd_data.titles[ title_actif ].audio[ audio_actif ].Format); format_id = _INCONNU_; } str = g_strdup_printf ("Audio: [%02d] %s, %s, %d KHz, %s", audio_actif +1, dvd_data.titles[ title_actif ].audio[ audio_actif ].Language, format, dvd_data.titles[ title_actif ].audio[ audio_actif ].Frequency / 1000, dvd_data.titles[ title_actif ].audio[ audio_actif ].Quantization ); name_file = g_strdup_printf (_("Fichier_complet_%02d_%s"), audio_actif +1, dvd_data.titles[ title_actif ].audio[ audio_actif ].Lang); Ptr = dvd_data.titles[ title_actif ].length; /* TIME=00:08:36 */ H = atoi (Ptr); Ptr += 3; M = atoi (Ptr); Ptr += 3; S = atoi (Ptr); var_dvd.GUINT_TempsTotal = (H * 60) * 60; var_dvd.GUINT_TempsTotal += M * 60; var_dvd.GUINT_TempsTotal += S; dvdread_create_list (_DVD_DATA_ALL, str, dvd_data.titles[ title_actif ].length, name_file, format_id, title_actif +1, 0, dvd_data.titles[ title_actif ].audio[ audio_actif ].Channels, dvd_data.titles[ title_actif ].audio[ audio_actif ].StreamId); g_free (name_file); name_file = NULL; g_free (format); format = NULL; g_free (str); str = NULL; } } } /* PRECAUTION */ if (NULL == (dvd_data.titles[ title_actif ].length)) { if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("******* SORTIE DEUX\n"); continue; } for (chapter_actif = 0; chapter_actif < dvd_data.titles[ title_actif ].max_chapter; chapter_actif ++) { str = g_strdup_printf (_("Chapitre: [%02d]"), chapter_actif +1); dvdread_create_list (_DVD_CHAPTER, str, NULL, NULL, 0, 0, 0, 0, NULL); g_free (str); str = NULL; for (audio_actif = 0; audio_actif < dvd_data.titles[ title_actif ].max_audio; audio_actif ++) { if (dvd_data.titles [ title_actif ].audio [ audio_actif ].tst == 0) { /* PRECAUTION */ if (dvd_data.titles[ title_actif ].audio[ audio_actif ].Frequency == 0) { if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("******* SORTIE TROIS\n"); continue; } if (dvd_data.titles[ title_actif ].chapters[ chapter_actif ].Length != NULL) { ptr_length = dvd_data.titles[ title_actif ].chapters[ chapter_actif ].Length; } else { ptr_length = dvd_data.titles[ title_actif ].length; } if (strstr (dvd_data.titles[ title_actif ].audio[ audio_actif ].Format, "dts")) { format = g_strdup_printf ("%s", dvd_data.titles[ title_actif ].audio[ audio_actif ].Format); format_id = _DTS_; } else if (strstr (dvd_data.titles[ title_actif ].audio[ audio_actif ].Format, "ac3")) { format = g_strdup_printf ("%s", dvd_data.titles[ title_actif ].audio[ audio_actif ].Format); format_id = _AC3_; } else { format = g_strdup_printf ("%s", dvd_data.titles[ title_actif ].audio[ audio_actif ].Format); format_id = _INCONNU_; } str = g_strdup_printf ("Audio: [%02d] %s, %s, %d KHz, %s", audio_actif +1, dvd_data.titles[ title_actif ].audio[ audio_actif ].Language, format, dvd_data.titles[ title_actif ].audio[ audio_actif ].Frequency / 1000, dvd_data.titles[ title_actif ].audio[ audio_actif ].Quantization ); name_file = g_strdup_printf (_("Titre_%02d_Chapitre_%02d_audio_%02d_%s"), title_actif+1, chapter_actif+1, audio_actif+1, dvd_data.titles[ title_actif ].audio[ audio_actif ].Lang); dvdread_create_list (_DVD_DATA, str, ptr_length, name_file, format_id, title_actif +1, chapter_actif +1, dvd_data.titles[ title_actif ].audio[ audio_actif ].Channels, dvd_data.titles[ title_actif ].audio[ audio_actif ].StreamId); g_free (name_file); name_file = NULL; g_free (format); format = NULL; g_free (str); str = NULL; ptr_length = NULL; } } } } } void dvdread_print_data_struct (void) { gint title_actif = -1; gint chapter_actif = -1; gint audio_actif = -1; /*PRINT_FUNC_LF();*/ if( TRUE == OptionsCommandLine.BoolVerboseMode ) { g_print ("DiscTitle: %s\n", dvd_data.DiscTitle); g_print ("LongestTrack: %d\n", dvd_data.LongestTrack); g_print ("max_cells: %d\n", dvd_data.max_cells); g_print ("max_subpictures: %d\n", dvd_data.max_subpictures); g_print ("max_titles: %d\n", dvd_data.max_titles); for (title_actif = 0; title_actif < dvd_data.max_titles; title_actif ++) { g_print ("Title: %02d\n", title_actif +1); g_print ("dvd_data.titles[ %02d ].length: %s\n", title_actif +1, dvd_data.titles[ title_actif ].length); g_print ("dvd_data.titles[ %02d ].max_chapter: %d\n", title_actif +1, dvd_data.titles[ title_actif ].max_chapter); for (chapter_actif = 0; chapter_actif < dvd_data.titles[ title_actif ].max_chapter; chapter_actif ++) { g_print ("dvd_data.titles[ %02d ].chapters[ %02d ].Length: %s\n", title_actif +1, chapter_actif +1, dvd_data.titles[ title_actif ].chapters[ chapter_actif ].Length); } g_print ("dvd_data.titles[ %02d ].max_audio: %d\n", title_actif +1, dvd_data.titles[ title_actif ].max_audio); for (audio_actif = 0; audio_actif < dvd_data.titles[ title_actif ].max_audio; audio_actif ++) { g_print ("dvd_data.titles[ %02d ].audio[ %02d ].Language: %s\n", title_actif +1, audio_actif +1, dvd_data.titles[ title_actif ].audio[ audio_actif ].Language); g_print ("dvd_data.titles[ %02d ].audio[ %02d ].Lang: %s\n", title_actif +1, audio_actif +1, dvd_data.titles[ title_actif ].audio[ audio_actif ].Lang); g_print ("dvd_data.titles[ %02d ].audio[ %02d ].Format: %s\n", title_actif +1, audio_actif +1, dvd_data.titles[ title_actif ].audio[ audio_actif ].Format); g_print ("dvd_data.titles[ %02d ].audio[ %02d ].Frequency: %d\n", title_actif +1, audio_actif +1, dvd_data.titles[ title_actif ].audio[ audio_actif ].Frequency); g_print ("dvd_data.titles[ %02d ].audio[ %02d ].Quantization: %s\n", title_actif +1, audio_actif +1, dvd_data.titles[ title_actif ].audio[ audio_actif ].Quantization); g_print ("dvd_data.titles[ %02d ].audio[ %02d ].Channels: %d\n", title_actif +1, audio_actif +1, dvd_data.titles[ title_actif ].audio[ audio_actif ].Channels); g_print ("dvd_data.titles[ %02d ].audio[ %02d ].StreamId: %s\n", title_actif +1, audio_actif +1, dvd_data.titles[ title_actif ].audio[ audio_actif ].StreamId); } } } } void dvdread_remove (void) { gint title; gint audio; gint chapter; /*PRINT_FUNC_LF();*/ for (title=0; title < dvd_data.max_titles; title ++) { for (audio=0; audio < dvd_data.titles[ title ].max_audio; audio ++) { g_free (dvd_data.titles[ title ].audio[ audio ].Language); dvd_data.titles[ title ].audio[ audio ].Language= NULL; g_free (dvd_data.titles[ title ].audio[ audio ].Lang); dvd_data.titles[ title ].audio[ audio ].Lang= NULL; g_free (dvd_data.titles[ title ].audio[ audio ].Format); dvd_data.titles[ title ].audio[ audio ].Format= NULL; g_free (dvd_data.titles[ title ].audio[ audio ].Quantization); dvd_data.titles[ title ].audio[ audio ].Quantization= NULL; g_free (dvd_data.titles[ title ].audio[ audio ].StreamId); dvd_data.titles[ title ].audio[ audio ].StreamId= NULL; } g_free (dvd_data.titles[ title ].audio); dvd_data.titles[ title ].audio = NULL; for (chapter=0; chapter < dvd_data.titles[ title ].max_chapter; chapter ++) { g_free (dvd_data.titles[ title ].chapters[ chapter ].Length); dvd_data.titles[ title ].chapters[ chapter ].Length= NULL; } g_free (dvd_data.titles[ title ].chapters); dvd_data.titles[ title ].chapters = NULL; g_free (dvd_data.titles[ title ].length); dvd_data.titles[ title ].length = NULL; } g_free (dvd_data.titles); dvd_data.titles = NULL; g_free (dvd_data.DiscTitle); dvd_data.DiscTitle = NULL; dvd_data.LongestTrack = 0; dvd_data.max_cells = 0; dvd_data.max_subpictures = 0; dvd_data.max_titles = 0; } void dvdread_create_recap_audio (void) { gint cpt; gchar *LineCommand = NULL; FILE *fp = NULL; // Suppression du fichier precedant si il existe g_unlink ("/tmp/get_infos_dvd.sh"); g_unlink ("/tmp/infos_dvd.txt"); fp = fopen ("/tmp/get_infos_dvd.sh", "w"); fprintf (fp, "#!/bin/sh\n"); fprintf (fp, "\n"); fprintf (fp, "set -e\n"); fprintf (fp, "\n"); for (cpt = 0; cpt < dvd_data.max_titles; cpt ++) { LineCommand = g_strdup_printf ("mplayer -dvd-device %s dvd://%d -vo null -frames 0 -v 2>&1 | grep aid >> /tmp/infos_dvd.txt", scan_get_text_combo_cd (_DVD_), cpt +1); fprintf (fp, "echo \"Title:%d\" >> /tmp/infos_dvd.txt\n", cpt+1); fprintf (fp, "%s\n", LineCommand); fprintf (fp, "echo \"\" >> /tmp/infos_dvd.txt\n"); g_free (LineCommand); LineCommand = NULL; } fprintf (fp, "\n"); fclose (fp); system ("chmod +x /tmp/get_infos_dvd.sh"); system ("/tmp/get_infos_dvd.sh"); g_unlink ("/tmp/get_infos_dvd.sh"); } typedef struct { gint NumTitle; gint NumLang; gchar StrLang [ 30 ]; } LIST_AUDIO; GList *GListAudio = NULL; GList *dvdread_remove_ListAudio (GList *p_list) { GList *list = NULL; LIST_AUDIO *var = NULL; list = g_list_first (GListAudio); while (list) { if (NULL != (var = (LIST_AUDIO *)list->data)) { g_free (var); var = NULL; list->data = NULL; } list = g_list_next (list); } g_list_free (GListAudio); GListAudio = NULL; return ((GList *)NULL); } gboolean dvdread_syncro (gint NumTitle, gint NumLang, gchar *StrLang) { gint t, a; for (t=0; t < dvd_data.max_titles; t++) { if (NumTitle == dvd_data.titles [ t ].NumTitle) { for (a=0; a < dvd_data.titles [ t ].max_audio; a++) { if (NumLang == dvd_data.titles [ t ].audio [ a ].ValStreamId) { dvd_data.titles [ t ].audio [ a ].tst = 0; return (TRUE); } } return (FALSE); } } return (FALSE); } void dvdread_read_info_audio (void) { FILE *fp = NULL; size_t size; gchar *buf = NULL; gchar **Larrbuf = NULL; gint line; gchar *ptr = NULL; gint nmr_title = -1; gint t, a; LIST_AUDIO *list_audio = NULL; GList *list = NULL; size = libutils_get_size_file ("/tmp/infos_dvd.txt"); buf = (gchar *)g_malloc0 (sizeof (gchar) * (size +10)); fp = fopen ("/tmp/infos_dvd.txt", "r"); size = fread (buf, size, 1, fp); fclose (fp); Larrbuf = g_strsplit (buf, "\n", 0); g_free (buf); buf = NULL; for (t=0; t NumTitle = nmr_title; list_audio->NumLang = (gint)atoi(ptr + 6); /* unknown */ while (*ptr != ':') ptr --; ptr ++; ptr ++; t = 0; while (*ptr != ' ') { list_audio->StrLang[ t ++ ] = *ptr ++; } list_audio->StrLang[ t ] = '\0'; GListAudio = g_list_append (GListAudio, list_audio); list_audio = NULL; } if (*Larrbuf[line] == '\0') { nmr_title = -1; } } list = g_list_first (GListAudio); while (list) { if ((list_audio = (LIST_AUDIO *)list->data)) { dvdread_syncro (list_audio->NumTitle -1, list_audio->NumLang, list_audio->StrLang); } list = g_list_next (list); } if (NULL == GListAudio) { for (t=0; t LSDVD" ); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); if (NULL != (buf = libutils_get_datas_on_disk ())) { Larrbuf = g_strsplit (buf, "\n", 0); g_free (buf); buf = NULL; } else { PRINT("PROBLEME ALLOC BUF"); } for (line = 0; Larrbuf[line]; line++) { if ((ptr = strstr (Larrbuf[line], "Disc Title: "))) { if (var_dvd.from.path != NULL && (ptr = strrchr (var_dvd.from.path, '/'))) { ptr ++; } else { ptr += 12; } dvd_data.DiscTitle = g_strdup (ptr); } if ((ptr = strstr (Larrbuf[line], "Longest track: "))) { ptr += 15; /* ALLOC */ dvd_data.LongestTrack = atoi (ptr); } if (line > 0 && (ptr = strstr (Larrbuf[line], "Title: "))) { /* ALLOC */ dvd_data.max_titles ++; } } dvd_data.titles = (DVD_TITLE *)g_malloc0 (sizeof (DVD_TITLE) * dvd_data.max_titles); // CHERCHER: le nombre coherent de chapitres chapters_per_title = -1; max_chapters = -1; title_actif = -1; for (line = 1; Larrbuf[line]; line++) { if ((ptr = strstr (Larrbuf[line], "Title: ")) && strstr (Larrbuf[line], "Chapters: ")) { title_actif ++; if ((ptr = strstr (Larrbuf[line], "Chapters: "))) { for (ptr+=10, cpt=0; *ptr!=','; cpt++,ptr++) str[cpt]=*ptr; str[cpt]='\0'; max_chapters = atoi (str); } } if ((ptr=strstr (Larrbuf[line], "Chapter: ")) && strstr (Larrbuf[line], ", Length: ")) { for (ptr+=9, cpt=0; *ptr!=','; cpt++,ptr++) str[cpt]=*ptr; str[cpt]='\0'; chapters_per_title = atoi (str); } if (*Larrbuf[line] == '\0') { if (chapters_per_title > -1 && max_chapters > -1) { /* ALLOC */ dvd_data.titles [ title_actif ].NumTitle = title_actif; dvd_data.titles [ title_actif ].chapters = (DVD_CHAPTERS *)g_malloc0 (sizeof (DVD_CHAPTERS) * (chapters_per_title)); dvd_data.titles [ title_actif ].max_chapter = chapters_per_title; chapters_per_title = -1; max_chapters = -1; } } } // RECUPERE: tous les parametres pour chaque 'Title: xx' title_actif = -1; for (line = 1; Larrbuf[line]; line++) { if ((ptr = strstr (Larrbuf[line], "Title: ")) && strstr (Larrbuf[line], "Length: ")) { ptr += 7; memset (str, '\0', 500); title_actif ++; audio_actif = -1; chapter_actif = -1; if ((ptr = strstr (Larrbuf[line], "Length: "))) { for (ptr+=8, cpt=0; *ptr!='.'; cpt++,ptr++) str[cpt]=*ptr; str[cpt]='\0'; dvd_data.titles[ title_actif ].length = g_strdup (str); } if ((ptr = strstr (Larrbuf[line], "Cells: "))) { for (ptr+=7, cpt=0; *ptr!=','; cpt++,ptr++) str[cpt]=*ptr; str[cpt]='\0'; dvd_data.max_cells = atoi (str); } if ((ptr = strstr (Larrbuf[line], "Audio streams: "))) { for (ptr+=15, cpt=0; *ptr!=','; cpt++,ptr++) str[cpt]=*ptr; str[cpt]='\0'; max_audio = atoi (str); } if ((ptr = strstr (Larrbuf[line], "Subpictures: "))) { for (ptr+=13, cpt=0; *ptr; cpt++,ptr++) str[cpt]=*ptr; str[cpt]='\0'; dvd_data.max_subpictures = atoi (str); } dvd_data.titles [ title_actif ].audio = (DVD_AUDIO *)g_malloc0 (sizeof (DVD_AUDIO) * (max_audio)); dvd_data.titles [ title_actif ].max_audio = max_audio; } if ((ptr = strstr (Larrbuf[line], "Audio: "))) { audio_actif ++; for (ptr+=7, cpt=0; *ptr!=','; cpt++,ptr++) str[cpt]=*ptr; str[cpt]='\0'; if ((ptr = strstr (Larrbuf[line], "Language: "))) { for (ptr+=10, cpt=0; *ptr!=','; cpt++,ptr++) str[cpt]=*ptr; str[cpt]='\0'; dvd_data.titles [ title_actif ].audio [ audio_actif ].Language = g_strdup (str); str [ 2 ] = '\0'; dvd_data.titles [ title_actif ].audio [ audio_actif ].Lang = g_strdup (str); } if ((ptr = strstr (Larrbuf[line], "Format: "))) { for (ptr+=8, cpt=0; *ptr!=','; cpt++,ptr++) str[cpt]=*ptr; str[cpt]='\0'; dvd_data.titles [ title_actif ].audio [ audio_actif ].Format = g_strdup (str); } if ((ptr = strstr (Larrbuf[line], "Frequency: "))) { for (ptr+=11, cpt=0; *ptr!=','; cpt++,ptr++) str[cpt]=*ptr; str[cpt]='\0'; dvd_data.titles [ title_actif ].audio [ audio_actif ].Frequency = atoi (str); } if ((ptr = strstr (Larrbuf[line], "Quantization: "))) { for (ptr+=14, cpt=0; *ptr!=','; cpt++,ptr++) str[cpt]=*ptr; str[cpt]='\0'; dvd_data.titles [ title_actif ].audio [ audio_actif ].Quantization = g_strdup (str); } if ((ptr = strstr (Larrbuf[line], "Channels: "))) { for (ptr+=10, cpt=0; *ptr!=','; cpt++,ptr++) str[cpt]=*ptr; str[cpt]='\0'; dvd_data.titles [ title_actif ].audio [ audio_actif ].Channels = atoi (str); } if ((ptr = strstr (Larrbuf[line], "Stream id: "))) { for (ptr+=11, cpt=0; *ptr; cpt++,ptr++) str[cpt]=*ptr; str[cpt]='\0'; dvd_data.titles [ title_actif ].audio [ audio_actif ].StreamId = g_strdup (str); dvd_data.titles [ title_actif ].audio [ audio_actif ].ValStreamId = (gint)libutils_hexa_to_int (str); dvd_data.titles [ title_actif ].audio [ audio_actif ].tst = 0; } } if ((ptr=strstr (Larrbuf[line], "Chapter: ")) && strstr (Larrbuf[line], ", Length: ")) { chapter_actif ++; for (ptr+=9, cpt=0; *ptr!=','; cpt++,ptr++) str[cpt]=*ptr; str[cpt]='\0'; ptr=strstr (Larrbuf[line], ", Length: "); for (ptr+=10, cpt=0; *ptr!='.'; cpt++,ptr++) str[cpt]=*ptr; str[cpt]='\0'; dvd_data.titles [ title_actif ].chapters [ chapter_actif ].Length = g_strdup (str); } } g_strfreev(Larrbuf); dvdread_create_recap_audio (); dvdread_read_info_audio (); dvdread_create_list_with_data (); dvdread_compteur (); return (TRUE); } /* lsdvd /dev/hdd -a Can't open disc */ gboolean dvdread_dvd_found (void) { gchar *buf = NULL; gboolean BoolRet = TRUE; gchar **PtrTabArgs = NULL; PtrTabArgs = conv_lsdvd_read_get_param( var_dvd.PathDvd ); conv_to_convert( PtrTabArgs, FALSE, LSDVD, "NEW1:-> LSDVD" ); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); if (NULL == (buf = libutils_get_datas_on_disk ())) { return (FALSE); } if (NULL != buf && (*buf == '\b' || *buf == '\r' || *buf == '\n')) { BoolRet = FALSE; } if (NULL != buf) { g_free (buf); buf = NULL; } return (BoolRet); } xcfa-4.3.6/src/options.c0000644000175000017500000003612412122563465012030 00000000000000 /* * file : options.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "configuser.h" #include "fileselect.h" #include "win_info.h" #include "options.h" /* *--------------------------------------------------------------------------- * VARIABLE *--------------------------------------------------------------------------- */ VAR_OPTIONS var_options; /* *--------------------------------------------------------------------------- * CODE *--------------------------------------------------------------------------- */ // // PARAMETRES POUR UNE ECOUTE MUSICALE EN FIN DE CONVERSION // void on_checkbutton_end_of_convert_realize( GtkWidget *widget, gpointer user_data ) { var_options.Adr_checkbutton_end_of_convert = widget; gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON(var_options.Adr_checkbutton_end_of_convert), Config.BoolCheckbuttonEndOfConvert ); } // // void on_checkbutton_end_of_convert_clicked( GtkButton *button, gpointer user_data ) { Config.BoolCheckbuttonEndOfConvert = gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(var_options.Adr_checkbutton_end_of_convert)); } // // void on_button_music_file_end_of_convert_realize( GtkWidget *widget, gpointer user_data ) { var_options.Adr_button_music_file_end_of_convert = widget; if( NULL != Config.FileMusicFileEndOfConvert && '\0' != *Config.FileMusicFileEndOfConvert ) { gtk_button_set_label( GTK_BUTTON(var_options.Adr_button_music_file_end_of_convert), Config.FileMusicFileEndOfConvert ); } else { gtk_button_set_label( GTK_BUTTON(var_options.Adr_button_music_file_end_of_convert), Config.PathMusicFileEndOfConvert ); } } // // void options_choice_music( gchar *path ) { gchar *Ptr = NULL; if( NULL != Config.PathMusicFileEndOfConvert ) { g_free( Config.PathMusicFileEndOfConvert ); Config.PathMusicFileEndOfConvert = NULL; } if( NULL != Config.FileMusicFileEndOfConvert ) { g_free( Config.FileMusicFileEndOfConvert ); Config.FileMusicFileEndOfConvert = NULL; } Config.PathMusicFileEndOfConvert = g_strdup( path ); if( NULL != (Ptr = strrchr( Config.PathMusicFileEndOfConvert, '/'))) { Ptr ++; Config.FileMusicFileEndOfConvert = g_strdup( Ptr ); Ptr --; *Ptr = '\0'; gtk_button_set_label( GTK_BUTTON(var_options.Adr_button_music_file_end_of_convert), Config.FileMusicFileEndOfConvert ); } } // // void on_button_music_file_end_of_convert_clicked( GtkButton *button, gpointer user_data ) { fileselect_create( _PATH_LOAD_FILE_MUSIC_, Config.PathMusicFileEndOfConvert, options_choice_music); } // // INIT NICE // void on_combobox_nice_realize (GtkWidget *widget, gpointer user_data) { gint i; gchar *Ptr = NULL; // libcombo_alloc (GTK_COMBO_BOX (widget)); for (i = 0; i < 20; i++) { Ptr = g_strdup_printf ("%d", i); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), Ptr); g_free (Ptr); Ptr = NULL; } gtk_combo_box_set_active (GTK_COMBO_BOX (widget), Config.Nice); var_options.Adr_Widget_Nice = GTK_COMBO_BOX (widget); } // CHANGED VALUE NICE // void on_combobox_nice_changed (GtkComboBox *combobox, gpointer user_data) { if (var_options.Adr_Widget_Nice != NULL) { Config.Nice = gtk_combo_box_get_active (var_options.Adr_Widget_Nice); } } // DOSSIER TEMPORAIRE DES CONVERSIONS // void on_button_dossier_de_conversion_realize (GtkWidget *widget, gpointer user_data) { var_options.Adr_path_temp = widget; gtk_button_set_label (GTK_BUTTON (widget), Config.PathnameTMP); } // CALL FROM fileselect_create // void options_path_tmp (gchar *path) { if (libutils_test_write (path) == TRUE) { g_free (Config.PathnameTMP); Config.PathnameTMP = NULL; Config.PathnameTMP = g_strdup (path); gtk_button_set_label (GTK_BUTTON (var_options.Adr_path_temp), Config.PathnameTMP); } else { wininfo_create ( WindMain, _("ERREUR: Lieu de stockage non autorise !"), _("Veuillez recommencer."), ""); } } // CHANGEMENT DE DOSSIER TEMPORAIRE DES CONVERSIONS // void on_button_dossier_de_conversion_clicked (GtkButton *button, gpointer user_data) { fileselect_create (_PATH_CHOICE_DESTINATION_, Config.PathnameTMP, options_path_tmp); } // // void options_set_all_interne (void) { OptionsInternal_set_datas_interne (COLOR_NONE, var_options.Adr_label_lame_mp3, LAME_WAV_TO_MP3); OptionsInternal_set_datas_interne (COLOR_NONE, var_options.Adr_label_oggenc_ogg, OGGENC_WAV_TO_OGG); OptionsInternal_set_datas_interne (COLOR_NONE, var_options.Adr_label_flac_flac, FLAC_WAV_TO_FLAC); OptionsInternal_set_datas_interne (COLOR_NONE, var_options.Adr_label_mac_ape, MAC_WAV_TO_APE); OptionsInternal_set_datas_interne (COLOR_NONE, var_options.Adr_label_wavpack_wv, WAVPACK_WAV_TO_WAVPACK); OptionsInternal_set_datas_interne (COLOR_NONE, var_options.Adr_label_musepack_mpc, MPPENC_WAV_TO_MPC); OptionsInternal_set_datas_interne (COLOR_NONE, var_options.Adr_label_faac_m4a, FAAC_WAV_TO_M4A); } // // gchar *options_get_params( TYPE_CONV TypeConv ) { if (TypeConv == LAME_WAV_TO_MP3) { return( (gchar *)optionsLame_get_param() ); } else if (TypeConv == OGGENC_WAV_TO_OGG || TypeConv == OGGENC_FLAC_TO_OGG) { return ((gchar *)optionsOggenc_get_param() ); } return ((gchar *)NULL); } // // gboolean options_get_entry_is_valid (TYPE_CONV p_verif_conv) { gchar *ptr = NULL; GtkWidget *wd = NULL; switch (p_verif_conv) { case FLAC_WAV_TO_FLAC : wd = var_options.Adr_entry_flac_flac; break; case LAME_WAV_TO_MP3 : wd = var_options.Adr_entry_lame_mp3; break; case OGGENC_WAV_TO_OGG : wd = var_options.Adr_entry_oggenc_ogg; break; case FAAC_WAV_TO_M4A : wd = var_options.Adr_entry_faac_m4a; break; case MPPENC_WAV_TO_MPC : wd = var_options.Adr_entry_musepack_mpc; break; case MAC_WAV_TO_APE : wd = var_options.Adr_entry_mac_ape; break; case WAVPACK_WAV_TO_WAVPACK : wd = var_options.Adr_entry_wavpack_wv; break; case CDPARANOIA_CD_TO_WAV_EXPERT : case CDPARANOIA_CD_TO_WAV : case CDDA2WAV_CD_TO_WAV : return(gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON (var_options.Adr_radiobutton_cdparanoia_mode_expert))); default : return (FALSE); } if (wd == NULL) return (FALSE); ptr = (gchar *)gtk_entry_get_text (GTK_ENTRY(wd)); return ((ptr && *ptr != '\0' && *ptr != ' ') ? TRUE : FALSE); } // // void options_default_values (GtkButton *button) void on_button_defaut_convertisseur_clicked (GtkButton *button, gpointer user_data) { // PRINT_FUNC_LF(); if (button == GTK_BUTTON (GLADE_GET_OBJECT("button_defaut_lame"))) { // g_print("\tbutton_defaut_lame\n"); // BitrateLameIndice // g_print("\t\tConfig.BitrateLameIndice = %d -> %d\n",Config.BitrateLameIndice, ConfigSaveToRest.BitrateLameIndice); Config.BitrateLameIndice = ConfigSaveToRest.BitrateLameIndice; gtk_combo_box_set_active (GTK_COMBO_BOX (var_options.Adr_Widget_Lame_abr_cbr_vbr), Config.BitrateLameIndice); // TabBitrateLame // g_print("\t\tConfig.TabBitrateLame = %d -> %d\n",Config.TabBitrateLame [ Config.BitrateLameIndice ], ConfigSaveToRest.TabBitrateLame [ ConfigSaveToRest.BitrateLameIndice ]); Config.TabBitrateLame [ Config.BitrateLameIndice ] = ConfigSaveToRest.TabBitrateLame [ ConfigSaveToRest.BitrateLameIndice ]; gtk_combo_box_set_active (GTK_COMBO_BOX (var_options.Adr_Widget_Lame_bitrate), Config.TabBitrateLame [ Config.BitrateLameIndice ]); // TabModeLame // g_print("\t\tConfig.TabModeLame = %d -> %d\n",Config.TabModeLame [ Config.BitrateLameIndice ], ConfigSaveToRest.TabModeLame [ ConfigSaveToRest.BitrateLameIndice ]); Config.TabModeLame [ Config.BitrateLameIndice ] = ConfigSaveToRest.TabModeLame [ ConfigSaveToRest.BitrateLameIndice ]; gtk_combo_box_set_active (GTK_COMBO_BOX (var_options.Adr_Widget_Lame_Mode), Config.TabModeLame [ Config.BitrateLameIndice ]); } else if (button == GTK_BUTTON (GLADE_GET_OBJECT("button_defaut_oggenc"))) { // g_print("\tbutton_defaut_oggenc\n"); // BitrateOggenc // g_print("\t\tConfig.BitrateOggenc = %d -> %d\n",Config.BitrateOggenc, ConfigSaveToRest.BitrateOggenc); Config.BitrateOggenc = ConfigSaveToRest.BitrateOggenc; gtk_combo_box_set_active (GTK_COMBO_BOX (var_options.Adr_Widget_Oggenc_bitrate), Config.BitrateOggenc); // ManagedOggenc // g_print("\t\tConfig.ManagedOggenc = %d -> %d\n",Config.ManagedOggenc, ConfigSaveToRest.ManagedOggenc); Config.ManagedOggenc = ConfigSaveToRest.ManagedOggenc; gtk_combo_box_set_active (GTK_COMBO_BOX (var_options.Adr_Widget_Oggenc_managed), Config.ManagedOggenc); // DownmixOggenc // g_print("\t\tConfig.DownmixOggenc = %d -> %d\n",Config.DownmixOggenc, ConfigSaveToRest.DownmixOggenc); Config.DownmixOggenc = ConfigSaveToRest.DownmixOggenc; gtk_combo_box_set_active (GTK_COMBO_BOX (var_options.Adr_Widget_Oggenc_downmix), Config.DownmixOggenc); } else if (button == GTK_BUTTON (GLADE_GET_OBJECT("button_defaut_flac"))) { // g_print("\tbutton_defaut_flac\n"); // CompressionLevelFlac // g_print("\t\tConfig.CompressionLevelFlac = %d -> %d\n", Config.CompressionLevelFlac, ConfigSaveToRest.CompressionLevelFlac); Config.CompressionLevelFlac = ConfigSaveToRest.CompressionLevelFlac; gtk_combo_box_set_active (GTK_COMBO_BOX (var_options.Adr_Widget_flac_compression), Config.CompressionLevelFlac); } else if (button == GTK_BUTTON (GLADE_GET_OBJECT("button_defaut_mac"))) { // g_print("\tbutton_defaut_mac\n"); // CompressionLevelApeMac // g_print("\t\tConfig.CompressionLevelApeMac = %d -> %d\n",Config.CompressionLevelApeMac, ConfigSaveToRest.CompressionLevelApeMac); Config.CompressionLevelApeMac = ConfigSaveToRest.CompressionLevelApeMac; gtk_combo_box_set_active (GTK_COMBO_BOX (var_options.Adr_Widget_ape_compression), Config.CompressionLevelApeMac); } else if (button == GTK_BUTTON (GLADE_GET_OBJECT("button_defaut_wavpack"))) { // g_print("\tbutton_defaut_wavpack\n"); // CompressionWavpack // g_print("\t\tConfig.CompressionWavpack = %d -> %d\n", Config.CompressionWavpack, ConfigSaveToRest.CompressionWavpack); // Config.CompressionWavpack = ConfigSaveToRest.CompressionWavpack; gtk_combo_box_set_active (GTK_COMBO_BOX (var_options.Adr_Widget_wavpack), Config.CompressionWavpack); // SoundWavpack // g_print("\t\tConfig.SoundWavpack = %d -> %d\n", Config.SoundWavpack, ConfigSaveToRest.SoundWavpack); Config.SoundWavpack = ConfigSaveToRest.SoundWavpack; gtk_combo_box_set_active (GTK_COMBO_BOX (var_options.Adr_Widget_wavpack_sound), Config.SoundWavpack); // ModeHybrideWavpack // g_print("\t\tConfig.ModeHybrideWavpack = %d -> %d\n", Config.ModeHybrideWavpack, ConfigSaveToRest.ModeHybrideWavpack); Config.ModeHybrideWavpack = ConfigSaveToRest.ModeHybrideWavpack; gtk_combo_box_set_active (GTK_COMBO_BOX (var_options.Adr_Widget_wavpack_mode_hybride), Config.ModeHybrideWavpack); // CorrectionFileWavpack // g_print("\t\tConfig.CorrectionFileWavpack = %d -> %d\n", Config.CorrectionFileWavpack, ConfigSaveToRest.CorrectionFileWavpack); Config.CorrectionFileWavpack = ConfigSaveToRest.CorrectionFileWavpack; gtk_combo_box_set_active (GTK_COMBO_BOX (var_options.Adr_Widget_wavpack_correction_file), Config.CorrectionFileWavpack); // CompressionMaximumWavpack // g_print("\t\tConfig.CompressionMaximumWavpack = %d -> %d\n", Config.CompressionMaximumWavpack, ConfigSaveToRest.CompressionMaximumWavpack); Config.CompressionMaximumWavpack = ConfigSaveToRest.CompressionMaximumWavpack; gtk_combo_box_set_active (GTK_COMBO_BOX (var_options.Adr_Widget_wavpack_maximum_compression), Config.CompressionMaximumWavpack); // SignatureMd5Wavpack // g_print("\t\tConfig.SignatureMd5Wavpack = %d -> %d\n", Config.SignatureMd5Wavpack, ConfigSaveToRest.SignatureMd5Wavpack); Config.SignatureMd5Wavpack = ConfigSaveToRest.SignatureMd5Wavpack; gtk_combo_box_set_active (GTK_COMBO_BOX (var_options.Adr_Widget_wavpack_signature_md5), Config.SignatureMd5Wavpack); // ExtraEncodingWavpack // g_print("\t\tConfig.ExtraEncodingWavpack = %d -> %d\n", Config.ExtraEncodingWavpack, ConfigSaveToRest.ExtraEncodingWavpack); Config.ExtraEncodingWavpack = ConfigSaveToRest.ExtraEncodingWavpack; gtk_combo_box_set_active (GTK_COMBO_BOX (var_options.Adr_Widget_wavpack_extra_encoding), Config.ExtraEncodingWavpack); } else if (button == GTK_BUTTON (GLADE_GET_OBJECT("button_defaut_musepack"))) { // g_print("\tbutton_defaut_musepack\n"); // g_print("\t\tConfig.QualityMppenc = %d -> %d\n", Config.QualityMppenc, ConfigSaveToRest.QualityMppenc); // QualityMppenc Config.QualityMppenc = ConfigSaveToRest.QualityMppenc; gtk_combo_box_set_active (GTK_COMBO_BOX (var_options.Adr_Widget_Mppenc), Config.QualityMppenc); } else if (button == GTK_BUTTON (GLADE_GET_OBJECT("button_defaut_faac"))) { // g_print("\tbutton_defaut_faac\n"); // g_print("\t\tConfig.ConteneurFacc = %d -> %d\n", Config.ConteneurFacc, ConfigSaveToRest.ConteneurFacc); // ConteneurFacc Config.ConteneurFacc = ConfigSaveToRest.ConteneurFacc; gtk_combo_box_set_active (GTK_COMBO_BOX (var_options.Adr_Widget_faac_conteneur), Config.ConteneurFacc); // g_print("\t\tConfig.AbrVbrFacc = %d -> %d\n", Config.AbrVbrFacc, ConfigSaveToRest.AbrVbrFacc); // AbrVbrFacc Config.AbrVbrFacc = ConfigSaveToRest.AbrVbrFacc; gtk_combo_box_set_active (GTK_COMBO_BOX (var_options.Adr_Widget_faac_choice_vbr_abr), Config.AbrVbrFacc); // g_print("\t\tConfig.VbrFaccIndice = %d -> %d\n", Config.VbrFaccIndice, ConfigSaveToRest.VbrFaccIndice); // VbrFaccIndice Config.VbrFaccIndice = ConfigSaveToRest.VbrFaccIndice; gtk_combo_box_set_active (GTK_COMBO_BOX (var_options.Adr_Widget_faac_set_choice_vbr_abr), Config.VbrFaccIndice); } else if (button == GTK_BUTTON (GLADE_GET_OBJECT("button_defaut_aacplusenc"))) { // g_print("\tbutton_defaut_aacplusenc\n"); // g_print("\t\tConfig.ChoiceMonoAacplusenc = %d -> %d\n", Config.ChoiceMonoAacplusenc, ConfigSaveToRest.ChoiceMonoAacplusenc); // ChoiceMonoAacplusenc Config.ChoiceMonoAacplusenc = ConfigSaveToRest.ChoiceMonoAacplusenc; gtk_combo_box_set_active (GTK_COMBO_BOX (var_options.Adr_Widget_aacplusenc_mono), Config.ChoiceMonoAacplusenc); // g_print("\t\tConfig.ChoiceStereoAacplusenc = %d -> %d\n", Config.ChoiceMonoAacplusenc, ConfigSaveToRest.ChoiceStereoAacplusenc); // ChoiceStereoAacplusenc Config.ChoiceStereoAacplusenc = ConfigSaveToRest.ChoiceStereoAacplusenc; gtk_combo_box_set_active (GTK_COMBO_BOX (var_options.Adr_Widget_aacplusenc_stereo), Config.ChoiceStereoAacplusenc); } } xcfa-4.3.6/src/alsa_play.c0000644000175000017500000001440512122563465012300 00000000000000 /* * file : alsa_play.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "split.h" #include "tags.h" #include "alsa_audio.h" #include "alsa_play.h" // // PREMIERE UTILISAION D' ALSA DEPUIS: 3.7.2~beta3 // // // void AlsaPlay_remove (void) { if (NULL != VarAlsa.buffer) { g_free (VarAlsa.buffer); VarAlsa.buffer = NULL; } } // // gdouble AlsaPlay_TRet; gboolean AlsaPlay_BoolPrintPercent = FALSE; // // static void AlsaPlay_thread (void *arg) { gdouble Ret; gdouble PercentBegin = -1.; VarAlsa.BoolThreadEnd = FALSE; AlsaPlay_remove (); VarAlsa.buffer = g_malloc0 (sizeof(char) * VarAlsa.SizeBuffer); Ret = 0.0; AlsaPlay_TRet = 0.0; while ((Ret = fread (VarAlsa.buffer, 1, VarAlsa.SizeBuffer, VarAlsa.pFile)) > 0) { if (VarAlsa.StopPlay == TRUE) break; AlsaPlay_TRet += Ret; VarAlsa.Percent = (float)(AlsaPlay_TRet / (float)VarAlsa.TotalChunckSize) * 100.0; // Sec = (int)(((float)VarAlsa.Sec * VarAlsa.Percent) / 100.0); if (VarAlsa.Percent >= VarAlsa.PercentBegin && VarAlsa.Percent <= VarAlsa.PercentEnd) { // CALCUL DU POURCENTAGE REEL DE LECTURE if (PercentBegin < 0.0) PercentBegin = VarAlsa.Percent; if (PercentBegin >= 0.0) { VarAlsa.PercentSel = VarAlsa.Percent; AlsaPlay_BoolPrintPercent = TRUE; } AlsaAudio_write (VarAlsa.SizeBuffer); } } VarAlsa.BoolThreadEnd = TRUE; PRINT("FIN THREAD ALSA"); pthread_exit(0); } // // void AlsaPlay_Pause (void) { VarAlsa.PauseAlsa = TRUE; } // // void AlsaPlay_fseek (gdouble p_NewPosInPercent) { // void rewind(VarAlsa.pFile); // La fonction rewind() place l’indicateur de position du flux pointé par stream au début du fichier. // C’est l’équivalent de: // (void) fseek(VarAlsa.pFile, 0L, SEEK_SET) // if (NULL != VarAlsa.pFile) { AlsaPlay_BoolPrintPercent = FALSE; rewind (VarAlsa.pFile); VarAlsa.PauseAlsa = FALSE; AlsaPlay_TRet = 0.0; VarAlsa.PercentBegin = p_NewPosInPercent; } } // // static gint AlsaPlay_timeout (gpointer data) { if (VarAlsa.BoolThreadEnd == TRUE) { fclose (VarAlsa.pFile); VarAlsa.pFile = NULL; AlsaAudio_close_device (); gtk_timeout_remove (VarAlsa.HandlerTimeout); if (NULL != VarAlsa.FuncSetValueTime) (*VarAlsa.FuncSetValueTime) (VarAlsa.PercentSel); if (NULL != VarAlsa.FuncIconeStop) (*VarAlsa.FuncIconeStop) (); PRINT("FIN TIMEOUT ALSA"); } else { if( TRUE == AlsaPlay_BoolPrintPercent ) { AlsaPlay_BoolPrintPercent = FALSE; if (NULL != VarAlsa.FuncSetValueTime && VarAlsa.PercentSel > 0.0 && FALSE == VarAlsa.PauseAlsa) (*VarAlsa.FuncSetValueTime) (VarAlsa.PercentSel); } } return (TRUE); } // // gboolean AlsaPlay_is_play (void) { return ((VarAlsa.pFile == NULL) ? FALSE : TRUE); } // // void AlsaPlay_stop (void) { VarAlsa.StopPlay = TRUE; } // // void AlsaPlay_song (gchar *NameFile, gdouble PBegin, gdouble PEnd, void *p_FuncSetValueTime, void *p_FuncIconeStop) { pthread_t nmr_tid; gboolean BoolOpenDevice = FALSE; WAVE WaveHeader; if (FALSE == tagswav_read_file (NameFile, &WaveHeader)) { tagswav_close_file (&WaveHeader); if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("\nImpossible d'ouvrir le fichier : \"%s\"\n\n", NameFile); return; } // OUVERTURE FICHIER ET TRANSMISSION DU HANDLE VarAlsa.pFile = WaveHeader.file; WaveHeader.file = NULL; switch (WaveHeader.FMT.BitsPerSample) { case 8 : case 16 : case 24 : case 32 : break; default : fclose (VarAlsa.pFile); PRINT_FUNC_LF(); if( TRUE == OptionsCommandLine.BoolVerboseMode ) { g_print("Seuls ces formats de bitrates : 8 16 24 et 32 sont pris en charge pour la lecture\n" "Format de bitrate [ %d ] non prit en charge\n", WaveHeader.FMT.BitsPerSample); g_print("NO MUSIC :/\n"); } return; } // DUREE EN SECONDES DU FICHIER VarAlsa.Sec = WaveHeader.DATA.Subchunk2Size / WaveHeader.FMT.ByteRate; VarAlsa.PercentBegin = PBegin; VarAlsa.PercentEnd = PEnd; // TAILLE DES DATA AUDIO EN OCTETS VarAlsa.TotalChunckSize = WaveHeader.DATA.Subchunk2Size; // TEST OUVERTURE DEVICE BoolOpenDevice = AlsaAudio_open_device( "default", // const char *audio_dev, default WaveHeader.FMT.BitsPerSample, // int p_bitsPerSample, 8, 16, 24, ... WaveHeader.FMT.NumChannels, // int p_channels, 1, 2, 4, ... WaveHeader.FMT.SampleRate, // unsigned int p_samplesPerSec 44100, ... &VarAlsa.SizeBuffer // unsigned int *p_bufferSize, Taille buffer retournee ); if (BoolOpenDevice == TRUE) { VarAlsa.PauseAlsa = FALSE; VarAlsa.FuncSetValueTime = p_FuncSetValueTime; VarAlsa.FuncIconeStop = p_FuncIconeStop; VarAlsa.StopPlay = FALSE; VarAlsa.BoolThreadEnd = FALSE; VarAlsa.PercentSel = 0.0; PRINT("DEBUT THREAD ALSA"); if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("\t%s\n", NameFile); pthread_create (&nmr_tid, NULL ,(void *)AlsaPlay_thread, (void *)NULL); PRINT("DEBUT TIMEOUT ALSA"); VarAlsa.HandlerTimeout = gtk_timeout_add (100, AlsaPlay_timeout, 0); } else { fclose (VarAlsa.pFile); AlsaAudio_close_device (); PRINT_FUNC_LF(); if( TRUE == OptionsCommandLine.BoolVerboseMode ) { g_print("Format de bitrate [ %d ] non prit en charge\n", WaveHeader.FMT.BitsPerSample); g_print("NO MUSIC :/\n"); } } } xcfa-4.3.6/src/cd_curl.h0000644000175000017500000000301212122563437011742 00000000000000 /* * file : cd_curl.h * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifndef cd_curl_h #define cd_curl_h 1 #include typedef enum { SERVER_CDDB_DEFAULT = 0, // freedb.org SERVER_CDDB_PARAM, // CDDB: NAME SERVER_PROXY_PARAM // PROXY: NAME and PORT } SERVER_CDDB; typedef enum { _CDDB_BUFFER_NONE_ = 0, _CDDB_BUFFER_TITLE_, _CDDB_BUFFER_TITLE_TIME_, _CDDB_BUFFER_ARTIST_TITLE_TIME_ } TYPE_CDDB_BUFFER; gboolean CdCurl_get_info_cd( void ); void CdCurl_remove_struct_all( void ); gboolean CdCurl_test_access_web( void ); void CdCurl_set_call( gint p_num_from_popup, gchar *p_CallStrDiscID, gchar *p_CallStrGenre ); void CdCurl_set_list_discid( void ); gchar *CdCurl_get_title_cd( void ); #endif xcfa-4.3.6/src/tags_ac3.c0000644000175000017500000000406412122563465012017 00000000000000 /* * file : tags_ac3.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #include #include #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "tags.h" #include /* *--------------------------------------------------------------------------- * REMOVE HEADER *--------------------------------------------------------------------------- */ INFO_AC3 *tagsac3_remove_info (INFO_AC3 *info) { if (info) { info->tags = (TAGS *)tags_remove (info->tags); g_free (info); info = NULL; } return ((INFO_AC3 *)NULL); } /* *--------------------------------------------------------------------------- * GET HEADER *--------------------------------------------------------------------------- */ INFO_AC3 *tagsac3_get_info (DETAIL *detail) { INFO_AC3 *ptrinfo = NULL; ptrinfo = (INFO_AC3 *)g_malloc0 (sizeof (INFO_AC3)); if (ptrinfo == NULL) return (NULL); ptrinfo->tags = (TAGS *)tags_alloc (FALSE); tags_set (detail->namefile, ptrinfo->tags); return ((INFO_AC3 *)ptrinfo); } xcfa-4.3.6/src/options.h0000644000175000017500000002054412122563437012033 00000000000000 /* * file : options.h * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifndef options_h #define options_h 1 typedef enum { COLOR_INIT = 0, // COLOR_NONE, // COLOR_LAME_DEBIT, // COLOR_LAME_MODE, // COLOR_OGGENC_DEBIT, // COLOR_OGGENC_MANAGED, // COLOR_OGGENC_DOWNMIX, // COLOR_FLAC_TAUX_COMPRESSION, // COLOR_MAC_QUALITE, // COLOR_WAVPACK_MODE_HYBRIDE, // COLOR_WAVPACK_COMPRESSION, // COLOR_WAVPACK_SOUND, // COLOR_WAVPACK_FICHIER_CORRECTION, // COLOR_WAVPACK_COMPRESSION_MAXIMUM, // COLOR_WAVPACK_SIGNATURE_MD5, // COLOR_WAVPACK_EXTRA_ENCODING, // COLOR_MUSEPACK_QUALITE, // COLOR_FAAC_CONTENEUR, // COLOR_FAAC_SET_CHOICE_VBR_ABR, // COLOR_TAG_ARTIST, // COLOR_TAG_TITLE, // COLOR_TAG_ALBUM, // COLOR_TAG_NUMERATE, // COLOR_TAG_GENRE, // COLOR_TAG_YEAR, // COLOR_TAG_COMMENT // } COLOR_LINE_COMMAND; typedef enum { _NONE_ = 0, // _DEBIAN_, // _TGZ_, // _RPM_, // _FPM_, // _ARCHLINUX_, // _PACKAGE_NOT_FOUND_ // } TYPE_PACKAGE; typedef struct { GtkWidget *Adr_button_music_file_end_of_convert; // GtkWidget *Adr_checkbutton_end_of_convert; // GtkComboBox *Adr_Widget_Nice; // GtkComboBox *Adr_Widget_Lame_bitrate; // GtkComboBox *Adr_Widget_Lame_abr_cbr_vbr; // GtkComboBox *Adr_Widget_Lame_Mode; // GtkComboBox *Adr_Widget_Oggenc_bitrate; // GtkComboBox *Adr_Widget_Oggenc_managed; // GtkComboBox *Adr_Widget_Oggenc_downmix; // GtkComboBox *Adr_Widget_Mppenc; // GtkComboBox *Adr_Widget_wavpack; // GtkComboBox *Adr_Widget_wavpack_sound; // GtkComboBox *Adr_Widget_wavpack_mode_hybride; // GtkComboBox *Adr_Widget_wavpack_correction_file; // GtkComboBox *Adr_Widget_wavpack_maximum_compression; // GtkComboBox *Adr_Widget_wavpack_signature_md5; // GtkComboBox *Adr_Widget_wavpack_extra_encoding; // GtkComboBox *Adr_Widget_flac_compression; // GtkComboBox *Adr_Widget_ape_compression; // GtkWidget *Adr_radiobutton_cdparanoia; // GtkWidget *Adr_radiobutton_libcddb; // GtkWidget *Adr_radiobutton_extract_with_cdparanoia; // GtkWidget *Adr_radiobutton_cdparanoia_mode_2; // GtkWidget *Adr_radiobutton_cdparanoia_mode_expert; // GtkWidget *Adr_radiobutton_extract_with_cdda2wav; // GtkWidget *Adr_label_type_paquege; // TYPE_PACKAGE Type_Package; // _NONE_ = 0, _DEBIAN_, _TGZ_, _RPM_, _FPM_, _PACKAGE_NOT_FOUND_ GtkWidget *Adr_entry_lame_mp3; // GtkWidget *Adr_label_lame_mp3; // GtkWidget *Adr_entry_oggenc_ogg; // GtkWidget *Adr_label_oggenc_ogg; // GtkWidget *Adr_entry_flac_flac; // GtkWidget *Adr_label_flac_flac; // GtkWidget *Adr_entry_mac_ape; // GtkWidget *Adr_label_mac_ape; // GtkWidget *Adr_entry_wavpack_wv; // GtkWidget *Adr_label_wavpack_wv; // GtkWidget *Adr_entry_musepack_mpc; // GtkWidget *Adr_label_musepack_mpc; // GtkWidget *Adr_entry_faac_m4a; // GtkWidget *Adr_label_faac_m4a; // GtkWidget *Adr_checkbutton_artist_tag; // GtkWidget *Adr_checkbutton_title_tag; // GtkWidget *Adr_checkbutton_album_tag; // GtkWidget *Adr_checkbutton_numerate_tag; // GtkWidget *Adr_checkbutton_genre_tag; // GtkWidget *Adr_checkbutton_year_tag; // GtkWidget *Adr_checkbutton_comment_tag; // COLOR_LINE_COMMAND ColorLineCommand; // GtkWidget *Adr_path_temp; // GtkComboBox *Adr_Widget_faac_conteneur; // GtkComboBox *Adr_Widget_faac_choice_vbr_abr; // GtkComboBox *Adr_Widget_faac_set_choice_vbr_abr; // GtkComboBox *Adr_Widget_aacplusenc_mono; // GtkComboBox *Adr_Widget_aacplusenc_stereo; // } VAR_OPTIONS; // // --------------------------------------------------------------------------- // OPTIONS.C // --------------------------------------------------------------------------- // extern VAR_OPTIONS var_options; #include "conv.h" #include "file.h" // // --------------------------------------------------------------------------- // OPTIONS.C // --------------------------------------------------------------------------- // void options_set_all_interne (void); gboolean options_get_entry_is_valid (TYPE_CONV p_verif_conv); gchar *options_get_params( TYPE_CONV TypeConv ); // // --------------------------------------------------------------------------- // OPTIONS_CD.C // --------------------------------------------------------------------------- // void OptionsCd_set_entry_and_label( void ); gboolean OptionsCd_get_save_log_mode_expert( void ); // // --------------------------------------------------------------------------- // OPTIONS_INTERNAL.C // --------------------------------------------------------------------------- // void OptionsInternal_set_datas_interne (COLOR_LINE_COMMAND ColorLineCommand, GtkWidget *widget, TYPE_CONV type_conv); // // --------------------------------------------------------------------------- // OPTIONS_MP3.C // mp3 // --------------------------------------------------------------------------- // gchar *optionsLame_get_str_val_bitrate_abr_vbr_lame (void); gchar *optionsLame_get_str_val_mode_lame (void); gchar *optionsLame_get_param( void ); // // --------------------------------------------------------------------------- // OPTIONS_MUSEPACK.C // mpc // --------------------------------------------------------------------------- // gchar *optionsMusepack_get_quality_mppenc (void); // // --------------------------------------------------------------------------- // OPTIONS_OGGENC.C // ogg // --------------------------------------------------------------------------- // gchar *optionsOggenc_get_val_bitrate_oggenc (void); gboolean optionsOggenc_get_bool_managed_oggenc (void); gboolean optionsOggenc_get_bool_downmix_oggenc (void); gchar *optionsOggenc_get_param( void ); // // --------------------------------------------------------------------------- // OPTIONS_WAVPACK.C // wv // --------------------------------------------------------------------------- // gchar *optionsWavpack_get_wavpack_compression (void); gchar *optionsWavpack_get_wavpack_sound (void); gchar *optionsWavpac_get_wavpack_hybride (void); gchar *optionsWavpack_get_wavpack_correction_file (void); gchar *optionsWavpack_get_wavpack_maximum_compression (void); gchar *optionsWavpack_get_wavpack_signature_md5 (void); gchar *optionsWavpack_get_wavpack_extra_encoding (void); // // --------------------------------------------------------------------------- // OPTIONS_FLAC.C // flac // --------------------------------------------------------------------------- // gchar *optionsFlac_get_compression_level_flac (void); // // --------------------------------------------------------------------------- // OPTIONS_MAC.C // ape // --------------------------------------------------------------------------- // gchar *optionsApe_get_compression_level_ape (void); // // --------------------------------------------------------------------------- // OPTIONS_FAAC.C // m4a // --------------------------------------------------------------------------- // gchar *OptionsFaac_get_faac_conteneur (void); gchar *OptionsFaac_get_faac_set_choice_vbr_abr (void); // // --------------------------------------------------------------------------- // OPTIONS_AACPLUSENC.C // aac // --------------------------------------------------------------------------- // gint optionsaacplusenc_get_bitrate_mono (void); gint optionsaacplusenc_get_bitrate_stereo (void); #endif xcfa-4.3.6/src/play_file.c0000644000175000017500000000562212122563465012300 00000000000000 /* * file : play_file.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "extra.h" #include "win_info.h" #include "play_file.h" typedef struct { pthread_t nmr_tid; gchar *Playeur; gchar *Param; gchar *PathNameFile; } VAR_PLAYFILE ; VAR_PLAYFILE PlayFile = { 0, // NULL, // NULL, // NULL // }; // // // void PlayFile_call (void) { pid_t pid; if ((pid = fork ()) == 0) { if (NULL != PlayFile.Param && '\0' != *PlayFile.Param) { execlp (PlayFile.Playeur, PlayFile.Playeur, PlayFile.Param, PlayFile.PathNameFile, NULL); } else { execlp (PlayFile.Playeur, PlayFile.Playeur, PlayFile.PathNameFile, NULL); } _exit (0); } } // // static void PlayFile_thread (void *arg) { PlayFile_call (); pthread_exit(0); } // // void PlayFile_play (gchar *PathNameFile) { PRINT_FUNC_LF(); if (FALSE == extra_get_lecteur_audio_is_ok ()) { PRINT("VEUILLEZ SAISIR UN LECTEUR AUDIO"); wininfo_create ( WindMain, _("PAS de lecteur audio present"), _("Veuillez installez un lecteur audio."), ""); return; } if (PlayFile.Playeur != NULL) { g_free (PlayFile.Playeur); PlayFile.Playeur = NULL; } if (PlayFile.Param != NULL) { g_free (PlayFile.Param); PlayFile.Param = NULL; } if (PlayFile.PathNameFile != NULL) { g_free (PlayFile.PathNameFile); PlayFile.PathNameFile = NULL; } PlayFile.Playeur = g_strdup (extra_get_name_lecteur_audio ()); PlayFile.Param = g_strdup (extra_get_param_name_lecteur_audio ()); PlayFile.PathNameFile = g_strdup (PathNameFile); if( TRUE == OptionsCommandLine.BoolVerboseMode ) { g_print ("\tFILE : %s\n", PathNameFile); g_print ("\tPLAYEUR : %s\n", PlayFile.Playeur); g_print ("\tPARAM : %s\n", PlayFile.Param); } pthread_create (&PlayFile.nmr_tid, NULL ,(void *)PlayFile_thread, (void *)NULL); } xcfa-4.3.6/src/cd_normalise.h0000644000175000017500000000266612122563437013004 00000000000000 /* * file : cd_normalise.h * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifndef cd_normalise_h #define cd_normalise_h 1 typedef struct { gchar *PathNameSrc; // Le fichier a normaliser gchar *PathNameDest; // Destination du fichier CD_AUDIO *Audio; } VAR_CD_NORMALISE_ELEMENT; void CdNormalise_set_list_PeakGroup (CD_AUDIO *Audio); void CdNormalise_set_list_collectif_remove (void); gboolean CdNormalise_list_PeakGroup_is_ready (void); gboolean CdNormalise_get_is_list_PeakGroup (void); GList *CdNormalise_get_list_PeakGroup (void); void CdNormalise_set_normalise_ok (void); void CdNormalise_add_PeakGroup (void); #endif xcfa-4.3.6/src/split_conv.c0000644000175000017500000003130512163051534012503 00000000000000 /* * file : split_conv.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "tags.h" #include "conv.h" #include "configuser.h" #include "win_scan.h" #include "win_info.h" #include "prg_init.h" #include "get_info.h" #include "split.h" /* >FORMATS A CONVERTIR VERS WAV WAV VERS: --------- --------- ------------------------ WAV FLAC FLAC_FLAC_TO_WAV WAV APE MAC_APE_TO_WAV WAV WAVPACK WVUNPACK_WAVPACK_TO_WAV WAV OGG MPLAYER_OGG_TO_WAV WAV M4A MPLAYER_M4A_TO_WAV WAV MPC MPPDEC_MPC_TO_WAV * WAV MP3 MPLAYER_MP3_TO_WAV WAV *WMA MPLAYER_WMA_TO_WAV WAV *SHORTEN SHORTEN_SHN_TO_WAV WAV *RM MPLAYER_RM_TO_WAV WAV *DTS MPLAYER_DTS_TO_WAV WAV *AIF MPLAYER_AIFF_TO_WAV // SAUF WAV WAV SI <> 44100 ET <> 2 ET <> 16 ALORS CALL_SOX (... FIN_SI SI CLIC ON BUTTON ALORS WAVSPLIT_EXTRACT FIN_SI >CONVERTION DU SPLIT_WAV VERS LE FORMAT D ORIGINE DE: VERS WAV --------- ---------------------------- FLAC FLAC_WAV_TO_FLAC APE MAC_WAV_TO_APE WAVPACK WAVPACK_WAV_TO_WAVPACK OGG OGGENC_WAV_TO_OGG M4A FAAC_WAV_TO_M4A MPC MPPENC_WAV_TO_MPC MP3 LAME_WAV_TO_MP3 WMA -- non SHORTEN -- non RM -- non DTS -- non AIF -- non WAV repositionner HERTZ, VOIES BITS */ typedef struct { gchar *SrcPathnameFile; gchar *DestPathnameFile; TYPE_FILE_IS TypeFileIs; } VAR_SPLITCONV; // TypeFileIs = GetInfo_file_is (Ptr); VAR_SPLITCONV VarSplitConv = { NULL, // SrcPathnameFile NULL, // DestPathnameFile FILE_IS_NONE // TYPE_FILE_IS }; // // static void SplitConv_thread (void *arg) { PARAM_FILELC param_filelc; gint pos; gboolean BoolPassSox = FALSE; gchar **PtrTabArgs = NULL; conv.bool_thread_conv = TRUE; if (FILE_IS_WAV == VarSplitConv.TypeFileIs) { PtrTabArgs = filelc_AllocTabArgs(); pos = 3; PtrTabArgs [ pos++ ] = g_strdup ("mplayer"); PtrTabArgs [ pos++ ] = g_strdup ("-nojoystick"); PtrTabArgs [ pos++ ] = g_strdup ("-nolirc"); PtrTabArgs [ pos++ ] = g_strdup (VarSplitConv.SrcPathnameFile); PtrTabArgs [ pos++ ] = g_strdup ("-ao"); PtrTabArgs [ pos++ ] = g_strdup ("pcm"); PtrTabArgs [ pos++ ] = g_strdup ("-ao"); PtrTabArgs [ pos++ ] = g_strdup_printf ("pcm:file=%s",SPLIT_FILE_TMP_WAV_SOX); PtrTabArgs [ pos++ ] = g_strdup ("-srate"); PtrTabArgs [ pos++ ] = g_strdup ("44100"); PtrTabArgs [ pos++ ] = NULL; conv_to_convert( PtrTabArgs, FALSE, MPLAYER_WAV_TO_WAV, "MPLAYER_WAV_TO_WAV"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); BoolPassSox = TRUE; } else if (FILE_IS_FLAC == VarSplitConv.TypeFileIs) { param_filelc.type_conv = FLAC_FLAC_TO_WAV; param_filelc.With_CommandLineUser = FALSE; param_filelc.filesrc = VarSplitConv.SrcPathnameFile; param_filelc.filedest = SPLIT_FILE_TMP_WAV_SOX; param_filelc.tags = NULL; param_filelc.cdrom = NULL; param_filelc.num_track = NULL; param_filelc.BoolSetBitrate = FALSE; param_filelc.PtrStrBitrate = NULL; PtrTabArgs = filelc_get_command_line (¶m_filelc); conv_to_convert( PtrTabArgs, FALSE, FLAC_FLAC_TO_WAV, "FLAC_FLAC_TO_WAV"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); BoolPassSox = TRUE; } else if (FILE_IS_APE == VarSplitConv.TypeFileIs) { param_filelc.type_conv = MAC_APE_TO_WAV; param_filelc.With_CommandLineUser = FALSE; param_filelc.filesrc = VarSplitConv.SrcPathnameFile; param_filelc.filedest = SPLIT_FILE_TMP_WAV_SOX; param_filelc.tags = NULL; param_filelc.cdrom = NULL; param_filelc.num_track = NULL; param_filelc.BoolSetBitrate = FALSE; param_filelc.PtrStrBitrate = NULL; PtrTabArgs = filelc_get_command_line (¶m_filelc); conv_to_convert( PtrTabArgs, FALSE, MAC_APE_TO_WAV, "MAC_APE_TO_WAV"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); BoolPassSox = TRUE; } else if (FILE_IS_WAVPACK == VarSplitConv.TypeFileIs) { } else if (FILE_IS_OGG == VarSplitConv.TypeFileIs) { PtrTabArgs = filelc_AllocTabArgs(); pos = 3; PtrTabArgs [ pos++ ] = g_strdup ("mplayer"); PtrTabArgs [ pos++ ] = g_strdup ("-nojoystick"); PtrTabArgs [ pos++ ] = g_strdup ("-nolirc"); PtrTabArgs [ pos++ ] = g_strdup ("-ao"); PtrTabArgs [ pos++ ] = g_strdup ("pcm"); PtrTabArgs [ pos++ ] = g_strdup (VarSplitConv.SrcPathnameFile); PtrTabArgs [ pos++ ] = g_strdup ("-ao"); PtrTabArgs [ pos++ ] = g_strdup_printf ("pcm:file=%s", SPLIT_FILE_TMP_WAV_SOX); PtrTabArgs [ pos++ ] = NULL; conv_to_convert( PtrTabArgs, FALSE, MPLAYER_OGG_TO_WAV, "MPLAYER_OGG_TO_WAV"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); BoolPassSox = TRUE; } else if (FILE_IS_M4A == VarSplitConv.TypeFileIs) { } else if (FILE_IS_MPC == VarSplitConv.TypeFileIs) { } else if (FILE_IS_MP3 == VarSplitConv.TypeFileIs) { PtrTabArgs = filelc_AllocTabArgs(); pos = 3; PtrTabArgs [ pos++ ] = g_strdup ("mplayer"); PtrTabArgs [ pos++ ] = g_strdup ("-nojoystick"); PtrTabArgs [ pos++ ] = g_strdup ("-nolirc"); PtrTabArgs [ pos++ ] = g_strdup (VarSplitConv.SrcPathnameFile); PtrTabArgs [ pos++ ] = g_strdup ("-ao"); PtrTabArgs [ pos++ ] = g_strdup ("pcm"); PtrTabArgs [ pos++ ] = g_strdup ("-ao"); PtrTabArgs [ pos++ ] = g_strdup_printf ("pcm:file=%s", SPLIT_FILE_TMP_WAV_SOX); PtrTabArgs [ pos++ ] = NULL; conv_to_convert( PtrTabArgs, FALSE, MPLAYER_MP3_TO_WAV, "MPLAYER_MP3_TO_WAV"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); BoolPassSox = TRUE; } else if (FILE_IS_WMA == VarSplitConv.TypeFileIs) { PtrTabArgs = filelc_AllocTabArgs(); pos = 3; PtrTabArgs [ pos++ ] = g_strdup ("mplayer"); PtrTabArgs [ pos++ ] = g_strdup ("-nojoystick"); PtrTabArgs [ pos++ ] = g_strdup ("-nolirc"); PtrTabArgs [ pos++ ] = g_strdup (VarSplitConv.SrcPathnameFile); PtrTabArgs [ pos++ ] = g_strdup ("-ao"); PtrTabArgs [ pos++ ] = g_strdup ("pcm"); PtrTabArgs [ pos++ ] = g_strdup ("-ao"); PtrTabArgs [ pos++ ] = g_strdup_printf ("pcm:file=%s", SPLIT_FILE_TMP_WAV_SOX); PtrTabArgs [ pos++ ] = g_strdup ("-af"); PtrTabArgs [ pos++ ] = g_strdup ("channels=2"); PtrTabArgs [ pos++ ] = g_strdup ("-srate"); PtrTabArgs [ pos++ ] = g_strdup ("44100"); PtrTabArgs [ pos++ ] = NULL; conv_to_convert( PtrTabArgs, FALSE, MPLAYER_WMA_TO_WAV, "MPLAYER_WMA_TO_WAV"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); BoolPassSox = TRUE; } else if (FILE_IS_SHN == VarSplitConv.TypeFileIs) { } else if (FILE_IS_RM == VarSplitConv.TypeFileIs) { } else if (FILE_IS_DTS == VarSplitConv.TypeFileIs) { } else if (FILE_IS_AIFF == VarSplitConv.TypeFileIs) { } // CONVERSION AVEC SOX if (TRUE == BoolPassSox) { PtrTabArgs = conv_with_sox_get_param (SPLIT_FILE_TMP_WAV_SOX, SPLIT_FILE_TMP_WAV, "44100", "2", "16"); conv_to_convert( PtrTabArgs, FALSE, SOX_WAV_TO_WAV, "SOX_WAV_TO_WAV"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); } PRINT("FIN THREAD SPLITCONV"); conv.bool_thread_conv = FALSE; pthread_exit(0); } // // static gint SplitConv_timeout (gpointer data) { if (FILE_IS_NONE != VarSplitConv.TypeFileIs && (TRUE == conv.BoolIsExtract || TRUE == conv.BoolIsConvert || TRUE == conv.BoolIsCopy || TRUE == conv.BoolIsNormalise || TRUE == conv.BoolIsReplaygain)) { gchar Str [ 200 ]; Str [ 0 ] = '\0'; if (TRUE == conv.BoolIsExtract) { strcat (Str, "Extraction "); } if (TRUE == conv.BoolIsConvert) { strcat (Str, "Conversion "); } if (TRUE == conv.BoolIsCopy) { strcat (Str, "Copie "); } if (TRUE == conv.BoolIsNormalise) { strcat (Str, "Normalise "); } if (TRUE == conv.BoolIsReplaygain) { strcat (Str, "Replaygain"); } WindScan_set_label (Str); } if (FILE_IS_NONE != VarSplitConv.TypeFileIs && TRUE == conv.bool_percent_conv) { gchar *Str = NULL; // DEBUG if( conv.total_percent > 1.0 ) conv.total_percent = 1.0; Str = g_strdup_printf ("%d%%", (int)(conv.total_percent * 100)); WindScan_set_progress (Str, conv.total_percent); g_free (Str); Str = NULL; conv.bool_percent_conv = FALSE; } else if (TRUE == conv.bool_thread_conv) { } else if (FALSE == conv.bool_thread_conv) { PRINT("FIN TIMEOUT SPLITCONV"); if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("\n"); gtk_timeout_remove (conv.handler_timeout_conv); // WindScan_close (); while (gtk_events_pending()) gtk_main_iteration(); if (NULL != VarSplitConv.DestPathnameFile) { if (libutils_get_size_file (VarSplitConv.DestPathnameFile) > 44) { split_file_load_continue (VarSplitConv.DestPathnameFile); } else { WindScan_close (); if( FALSE == WindScan_close_request()) { wininfo_create ( WindMain, _("Erreur SOX"), _("Le programme SOX de votre distribution"), "\n", _("a generer une erreur pendant la conversion."), ""); } } } else { if (libutils_get_size_file (VarSplitConv.SrcPathnameFile) > 44) { split_file_load_continue (VarSplitConv.SrcPathnameFile); } else { WindScan_close (); if( FALSE == WindScan_close_request()) { wininfo_create ( WindMain, _("Erreur SOX"), _("Le programme SOX de votre distribution"), "\n", _("a generer une erreur pendant la conversion."), ""); } } } g_unlink (SPLIT_FILE_TMP_WAV_SOX); } return (TRUE); } // // void SplitConv_to (gchar *p_PathNameFile) { gint Channels; gint Hertz; gint Bits; pthread_t nmr_tid; VarSplitConv.TypeFileIs = GetInfo_file_is (p_PathNameFile); conv_reset_struct (WindScan_close_request); if (NULL != VarSplitConv.SrcPathnameFile) { g_free (VarSplitConv.SrcPathnameFile); VarSplitConv.SrcPathnameFile = NULL; } VarSplitConv.SrcPathnameFile = g_strdup (p_PathNameFile); if (NULL != VarSplitConv.DestPathnameFile) { g_free (VarSplitConv.DestPathnameFile); VarSplitConv.DestPathnameFile = NULL; } if (FILE_IS_WAV == VarSplitConv.TypeFileIs) { tagswav_file_GetBitrate (p_PathNameFile, &Channels, &Hertz, &Bits); PRINT_FUNC_LF(); if( TRUE == OptionsCommandLine.BoolVerboseMode ) { g_print ("\t%s\n", p_PathNameFile); g_print ("\tChannels: %d, Hertz: %d, Bits: %d\n", Channels, Hertz, Bits); } if (2 != Channels || 44100 != Hertz || 16 != Bits) { if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("\tNOT OK !!!\n\n"); VarSplitConv.DestPathnameFile = g_strdup (SPLIT_FILE_TMP_WAV); conv.total_convert = 2; } else { if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("\tOK :-)\n\n"); VarSplitConv.TypeFileIs = FILE_IS_NONE; } } else if (FILE_IS_FLAC == VarSplitConv.TypeFileIs) { VarSplitConv.DestPathnameFile = g_strdup (SPLIT_FILE_TMP_WAV); conv.total_convert = 2; } else if (FILE_IS_MP3 == VarSplitConv.TypeFileIs) { VarSplitConv.DestPathnameFile = g_strdup (SPLIT_FILE_TMP_WAV); conv.total_convert = 2; } else if (FILE_IS_OGG == VarSplitConv.TypeFileIs) { VarSplitConv.DestPathnameFile = g_strdup (SPLIT_FILE_TMP_WAV); conv.total_convert = 2; } else if (FILE_IS_APE == VarSplitConv.TypeFileIs) { VarSplitConv.DestPathnameFile = g_strdup (SPLIT_FILE_TMP_WAV); conv.total_convert = 2; } else if (FILE_IS_WMA == VarSplitConv.TypeFileIs) { VarSplitConv.DestPathnameFile = g_strdup (SPLIT_FILE_TMP_WAV); conv.total_convert = 2; } if (FILE_IS_NONE != VarSplitConv.TypeFileIs) { WindScan_open ("SOX files", WINDSCAN_PULSE); WindScan_set_label ("SOX files ..."); } else { WindScan_open ("Analyse du fichier", WINDSCAN_PULSE); WindScan_set_label ("Analyse du fichier ..."); } conv.bool_thread_conv = TRUE; PRINT("DEBUT TIMEOUT SPLITCONV"); PRINT("DEBUT THREAD SPLITCONV"); pthread_create (&nmr_tid, NULL ,(void *)SplitConv_thread, (void *)NULL); conv.handler_timeout_conv = gtk_timeout_add (20, SplitConv_timeout, 0); } xcfa-4.3.6/src/statusbar.h0000644000175000017500000000350112122563437012342 00000000000000 /* * file : statusbar.h * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifndef statusbar_h #define statusbar_h 1 #include "global.h" typedef enum { _STATUSBAR_SIMPLE_ = 0, // _STATUSBAR_WARN_, // _STATUSBAR_ERR_ // } STATUS_BAR_MESS; typedef struct { gchar *Mess; // Type: _STATUSBAR_SIMPLE_ gchar *MessWarn; // Type: _STATUSBAR_WARN_ gchar *MessError; // Type: _STATUSBAR_ERR_ } STATUSBAR_MESS; STATUSBAR_MESS StatusBar [ NOTEBOOK_PRGEXTERNES +2 ]; // #define NOTEBOOK_DVD_AUDIO 0 // #define NOTEBOOK_CD_AUDIO 1 // #define NOTEBOOK_FICHIERS 2 // #define NOTEBOOK_SPLIT 3 // #define NOTEBOOK_POCHETTE 4 // #define NOTEBOOK_OPTIONS 5 // #define NOTEBOOK_PRGEXTERNES 6 void StatusBar_remove( void ); void StatusBar_set_mess( gint p_which, // NOTEBOOK_DVD_AUDIO .. NOTEBOOK_PRGEXTERNES STATUS_BAR_MESS p_StatusMess, // _STATUSBAR_SIMPLE_ || _STATUSBAR_WARN_ || _STATUSBAR_ERR_ gchar *p_mess // Message ); void StatusBar_puts( void ); #endif xcfa-4.3.6/src/treeview.c0000644000175000017500000004517712122563465012177 00000000000000 /* * file : treeview.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "dvd.h" #include "cd_audio.h" #include "file.h" #include "configuser.h" #include "treeview.h" #define MAX_DATAS_STRUCT_RADIOBUTTONS 6 typedef struct { gchar *NameLeft; gchar *NameCenter; gchar *NameRight; GtkCellRenderer **AdrRenderer; GtkTreeViewColumn **AdrTreeViewColumn; gint Pos; } TAB_POSNAME; TAB_POSNAME TabPosName [ MAX_DATAS_STRUCT_RADIOBUTTONS ] = { {"radiobutton_nameleft_dvd", "radiobutton_namecenter_dvd", "radiobutton_nameright_dvd", &var_dvd.Renderer, &var_dvd.Adr_Column_Nom, 1}, {"radiobutton_nameleft_cd", "radiobutton_namecenter_cd", "radiobutton_nameright_cd", &var_cd.Renderer, &var_cd.Adr_Column_Nom, 1}, {"radiobutton_nameleft_allfile", "radiobutton_namecenter_allfile", "radiobutton_nameright_allfile", &var_file.Renderer, &var_file.Adr_ColumnFileName, 1}, {"radiobutton_nameleft_wav", "radiobutton_namecenter_wav", "radiobutton_nameright_wav", &var_file_wav.Renderer, &var_file_wav.Adr_ColumnFileWavName, 1}, {"radiobutton_nameleft_mp3ogg", "radiobutton_namecenter_mp3ogg", "radiobutton_nameright_mp3ogg", &var_file_mp3ogg.Renderer, &var_file_mp3ogg.Adr_ColumnFileMp3OggName, 1}, {"radiobutton_nameleft_tags", "radiobutton_namecenter_tags", "radiobutton_nameright_tags", &var_file_tags.Renderer, &var_file_tags.Adr_ColumnFileTagsName, 1} } ; #define POS_STRUCT_DVD 00 #define POS_STRUCT_CD 07 #define POS_STRUCT_CONVERSIONS 21 #define POS_STRUCT_WAV 37 #define POS_STRUCT_MP3OGG 44 #define POS_STRUCT_TAGS 50 #define MAX_DATAS_STRUCT_TREEVIEW 53 typedef struct { GtkWidget *AdrWin; gboolean IsShow; gboolean BoolNoEnter; gint PageNotebook; } VAR_TREEVIEW; VAR_TREEVIEW VarTreeView = { NULL, FALSE, TRUE, 0 }; typedef struct { gchar *Name; gboolean BoolIsVisible; GtkTreeViewColumn **AdrTreeViewColumn; } TAB_SHOWHIDE; TAB_SHOWHIDE TabShowHide [ MAX_DATAS_STRUCT_TREEVIEW ] = { // // Name BoolIsVisible: DVD, CD, FILE, WAV, MP3OGG, TAGS // | AdrTreeViewColumn // POS_STRUCT_DVD = 0 | | {"checkbutton_titre_dvd", TRUE, &var_dvd.Adr_Column_Titres}, {"checkbutton_play_dvd", TRUE, &var_dvd.Adr_Column_Play}, {"checkbutton_temps_dvd", TRUE, &var_dvd.Adr_Column_Temps}, {"checkbutton_format_dvd", TRUE, &var_dvd.Adr_Column_Format}, {"checkbutton_choix_dvd", TRUE, &var_dvd.Adr_Column_Choix}, {"checkbutton_normalise_dvd", TRUE, &var_dvd.Adr_Column_Normalise}, {"checkbutton_nom_dvd", TRUE, &var_dvd.Adr_Column_Nom}, // POS_STRUCT_CD = 7 {"checkbutton_play_cd", TRUE, &var_cd.Adr_Column_Play}, {"checkbutton_wav_cd", TRUE, &var_cd.Adr_Column_Wav}, {"checkbutton_flac_cd", TRUE, &var_cd.Adr_Column_Flac}, {"checkbutton_ape_cd", TRUE, &var_cd.Adr_Column_Ape}, {"checkbutton_wavpack_cd", TRUE, &var_cd.Adr_Column_Wavpack}, {"checkbutton_ogg_cd", TRUE, &var_cd.Adr_Column_Ogg}, {"checkbutton_m4a_cd", TRUE, &var_cd.Adr_Column_M4a}, {"checkbutton_aac_cd", TRUE, &var_cd.Adr_Column_Aac}, {"checkbutton_musepack_cd", TRUE, &var_cd.Adr_Column_Mpc}, {"checkbutton_mp3_cd", TRUE, &var_cd.Adr_Column_Mp3}, {"checkbutton_num_cd", TRUE, &var_cd.Adr_Column_Num}, {"checkbutton_time_cd", TRUE, &var_cd.Adr_Column_Time}, {"checkbutton_normalise_cd", TRUE, &var_cd.Adr_Column_Normalise}, {"checkbutton_nom_cd", TRUE, &var_cd.Adr_Column_Nom}, // POS_STRUCT_CONVERSIONS = 21 {"checkbutton_play_allfile", TRUE, &var_file.Adr_ColumnFilePlay}, {"checkbutton_trash_allfile", TRUE, &var_file.Adr_ColumnFileTrash}, {"checkbutton_type_allfile", TRUE, &var_file.Adr_ColumnFileType}, {"checkbutton_wav_allfile", TRUE, &var_file.Adr_ColumnFileWav}, {"checkbutton_flac_allfile", TRUE, &var_file.Adr_ColumnFileFlac}, {"checkbutton_ape_allfile", TRUE, &var_file.Adr_ColumnFileApe}, {"checkbutton_wavpack_allfile", TRUE, &var_file.Adr_ColumnFileWavPack}, {"checkbutton_ogg_allfile", TRUE, &var_file.Adr_ColumnFileOgg}, {"checkbutton_m4a_allfile", TRUE, &var_file.Adr_ColumnFileM4a}, {"checkbutton_aac_allfile", TRUE, &var_file.Adr_ColumnFileAac}, {"checkbutton_musepack_allfile", TRUE, &var_file.Adr_ColumnFileMpc}, {"checkbutton_mp3_allfile", TRUE, &var_file.Adr_ColumnFileMp3}, {"checkbutton_time_allfile", TRUE, &var_file.Adr_ColumnFileTime}, {"checkbutton_normalise_allfile", TRUE, &var_file.Adr_ColumnFileNormalize}, {"checkbutton_replaygain_allfile", TRUE, &var_file.Adr_ColumnFileReplayGain}, {"checkbutton_nom_allfile", TRUE, &var_file.Adr_ColumnFileName}, // POS_STRUCT_WAV = 37 {"checkbutton_hertz_wav", TRUE, &var_file_wav.Adr_ColumnFileWavHertz}, {"checkbutton_newhertz_wav", TRUE, &var_file_wav.Adr_ColumnFileWavNewHertz}, {"checkbutton_voie_wav", TRUE, &var_file_wav.Adr_ColumnFileWavVoie}, {"checkbutton_newvoie_wav", TRUE, &var_file_wav.Adr_ColumnFileWavNewVoie}, {"checkbutton_bits_wav", TRUE, &var_file_wav.Adr_ColumnFileWavBits}, {"checkbutton_newbits_wav", TRUE, &var_file_wav.Adr_ColumnFileWavNewBits}, {"checkbutton_nom_wav", TRUE, &var_file_wav.Adr_ColumnFileWavName}, // POS_STRUCT_MP3OGG = 44 {"checkbutton_type_mp3ogg", TRUE, &var_file_mp3ogg.Adr_ColumnFileMp3OggType}, {"checkbutton_bitrate_mp3ogg", TRUE, &var_file_mp3ogg.Adr_ColumnFileMp3OggBitrate}, {"checkbutton_nexbitrate_mp3ogg", TRUE, &var_file_mp3ogg.Adr_ColumnFileMp3OggNewBitrate}, {"checkbutton_size_mp3ogg", TRUE, &var_file_mp3ogg.Adr_ColumnFileMp3OggSize}, {"checkbutton_time_mp3ogg", TRUE, &var_file_mp3ogg.Adr_ColumnFileMp3OggTime}, {"checkbutton_nom_mp3ogg", TRUE, &var_file_mp3ogg.Adr_ColumnFileMp3OggName}, // POS_STRUCT_TAGS = 50 {"checkbutton_type_tags", TRUE, &var_file_tags.Adr_ColumnFileTagsType}, {"checkbutton_time_tags", TRUE, &var_file_tags.Adr_ColumnFileTagsTime}, {"checkbutton_nom_tags", TRUE, &var_file_tags.Adr_ColumnFileTagsName} }; // SET ETAT FIELDS TO STRING-ETAT FOR SAVE CONFIG // void treeview_get_etat_fields (void) { gint cpt; VarTreeView.BoolNoEnter = TRUE; // Remove string if (NULL != Config.StringBoolFieldsIsVisible) { g_free (Config.StringBoolFieldsIsVisible); Config.StringBoolFieldsIsVisible = NULL; } // Allocate string Config.StringBoolFieldsIsVisible = g_strnfill (MAX_DATAS_STRUCT_TREEVIEW +4, '1'); // Set 1 (TRUE) is visible else set 0 (FALSE) for (cpt = POS_STRUCT_DVD; cpt < MAX_DATAS_STRUCT_TREEVIEW; cpt ++) { Config.StringBoolFieldsIsVisible [ cpt ] = (TabShowHide [ cpt ].BoolIsVisible == FALSE) ? '0' : '1'; } Config.StringBoolFieldsIsVisible [ cpt ] = '\0'; VarTreeView.BoolNoEnter = FALSE; } // CALL FROM MAIN.C // void treeview_set_etat_fields (void) { gint cpt; if (NULL == Config.StringBoolFieldsIsVisible) { treeview_get_etat_fields (); } VarTreeView.BoolNoEnter = TRUE; // Set 1 (TRUE) is visible else set 0 (FALSE) for (cpt = POS_STRUCT_DVD; cpt < MAX_DATAS_STRUCT_TREEVIEW; cpt ++) { TabShowHide [ cpt ].BoolIsVisible = (Config.StringBoolFieldsIsVisible [ cpt ] == '0') ? FALSE : TRUE; // Place le CheckButton avec cet etat gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (GLADE_GET_OBJECT(TabShowHide [ cpt ].Name)), TabShowHide [ cpt ].BoolIsVisible); gtk_tree_view_column_set_visible (GTK_TREE_VIEW_COLUMN (*TabShowHide [ cpt ].AdrTreeViewColumn), TabShowHide [ cpt ].BoolIsVisible); } VarTreeView.BoolNoEnter = FALSE; } // // gboolean on_wind_treeview_delete_event (GtkWidget *widget, GdkEvent *event, gpointer user_data) { treeview_get_etat_fields (); VarTreeView.IsShow = FALSE; gtk_widget_hide (VarTreeView.AdrWin); return TRUE; } // // gboolean on_wind_treeview_destroy_event (GtkWidget *widget, GdkEvent *event, gpointer user_data) { treeview_get_etat_fields (); VarTreeView.IsShow = FALSE; gtk_widget_hide (VarTreeView.AdrWin); return TRUE; } // // void on_button_quit_windtreeview_clicked (GtkButton *button, gpointer user_data) { treeview_get_etat_fields (); VarTreeView.IsShow = FALSE; gtk_widget_hide (VarTreeView.AdrWin); } // // void treeview_SetGlobal (gboolean BoolVisible) { gint cpt; VarTreeView.BoolNoEnter = TRUE; switch(VarTreeView.PageNotebook) { case 0 : for (cpt = POS_STRUCT_DVD; cpt < POS_STRUCT_CD; cpt ++) { TabShowHide [ cpt ].BoolIsVisible = BoolVisible; gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (GLADE_GET_OBJECT(TabShowHide [ cpt ].Name)), TabShowHide [ cpt ].BoolIsVisible); gtk_tree_view_column_set_visible (GTK_TREE_VIEW_COLUMN (*TabShowHide [ cpt ].AdrTreeViewColumn), TabShowHide [ cpt ].BoolIsVisible); } break; case 1 : for (cpt = POS_STRUCT_CD; cpt < POS_STRUCT_CONVERSIONS; cpt ++) { TabShowHide [ cpt ].BoolIsVisible = BoolVisible; gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (GLADE_GET_OBJECT(TabShowHide [ cpt ].Name)), TabShowHide [ cpt ].BoolIsVisible); gtk_tree_view_column_set_visible (GTK_TREE_VIEW_COLUMN (*TabShowHide [ cpt ].AdrTreeViewColumn), TabShowHide [ cpt ].BoolIsVisible); } break; case 2 : for (cpt = POS_STRUCT_CONVERSIONS; cpt < POS_STRUCT_WAV; cpt ++) { TabShowHide [ cpt ].BoolIsVisible = BoolVisible; gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (GLADE_GET_OBJECT(TabShowHide [ cpt ].Name)), TabShowHide [ cpt ].BoolIsVisible); gtk_tree_view_column_set_visible (GTK_TREE_VIEW_COLUMN (*TabShowHide [ cpt ].AdrTreeViewColumn), TabShowHide [ cpt ].BoolIsVisible); } break; case 3 : for (cpt = POS_STRUCT_WAV; cpt < POS_STRUCT_MP3OGG; cpt ++) { TabShowHide [ cpt ].BoolIsVisible = BoolVisible; gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (GLADE_GET_OBJECT(TabShowHide [ cpt ].Name)), TabShowHide [ cpt ].BoolIsVisible); gtk_tree_view_column_set_visible (GTK_TREE_VIEW_COLUMN (*TabShowHide [ cpt ].AdrTreeViewColumn), TabShowHide [ cpt ].BoolIsVisible); } break; case 4 : for (cpt = POS_STRUCT_MP3OGG; cpt < MAX_DATAS_STRUCT_TREEVIEW; cpt ++) { TabShowHide [ cpt ].BoolIsVisible = BoolVisible; gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (GLADE_GET_OBJECT(TabShowHide [ cpt ].Name)), TabShowHide [ cpt ].BoolIsVisible); gtk_tree_view_column_set_visible (GTK_TREE_VIEW_COLUMN (*TabShowHide [ cpt ].AdrTreeViewColumn), TabShowHide [ cpt ].BoolIsVisible); } break; case 5 : for (cpt = POS_STRUCT_TAGS; cpt < MAX_DATAS_STRUCT_TREEVIEW; cpt ++) { TabShowHide [ cpt ].BoolIsVisible = BoolVisible; gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (GLADE_GET_OBJECT(TabShowHide [ cpt ].Name)), TabShowHide [ cpt ].BoolIsVisible); gtk_tree_view_column_set_visible (GTK_TREE_VIEW_COLUMN (*TabShowHide [ cpt ].AdrTreeViewColumn), TabShowHide [ cpt ].BoolIsVisible); } break; } treeview_get_etat_fields (); VarTreeView.BoolNoEnter = FALSE; } // // void on_button_deselect_global_windtreeview_clicked (GtkButton *button, gpointer user_data) { treeview_SetGlobal (FALSE); } // // void on_button_select_global_windtreeview_clicked (GtkButton *button, gpointer user_data) { treeview_SetGlobal (TRUE); } // // void treeview_set_pos_fields_name (void) { if (NULL != Config.StringPosFieldsName && *Config.StringPosFieldsName == '\0') { g_free (Config.StringPosFieldsName); Config.StringPosFieldsName = NULL; } if (NULL == Config.StringPosFieldsName) { // Allocate string with datas Config.StringPosFieldsName = g_strnfill (MAX_DATAS_STRUCT_RADIOBUTTONS +4, '1'); } } // // void on_radiobutton_modif_treeview_clicked (GtkButton *button, gpointer user_data) { gint cpt; if (TRUE == VarTreeView.BoolNoEnter) return; treeview_set_pos_fields_name (); for (cpt = POS_STRUCT_DVD; cpt < MAX_DATAS_STRUCT_RADIOBUTTONS; cpt ++) { if (GTK_BUTTON (button) == GTK_BUTTON (GTK_WIDGET (GLADE_GET_OBJECT(TabPosName [ cpt ].NameLeft)))) { Config.StringPosFieldsName [ cpt ] = '0'; TabPosName [ cpt ].Pos = 0; gtk_tree_view_column_set_alignment (GTK_TREE_VIEW_COLUMN (*TabPosName [ cpt ].AdrTreeViewColumn), 0.0); g_object_set (*TabPosName [ cpt ].AdrRenderer, "xalign", 0.0, NULL); break; } if (GTK_BUTTON (button) == GTK_BUTTON (GTK_WIDGET (GLADE_GET_OBJECT(TabPosName [ cpt ].NameCenter)))) { Config.StringPosFieldsName [ cpt ] = '1'; TabPosName [ cpt ].Pos = 1; gtk_tree_view_column_set_alignment (GTK_TREE_VIEW_COLUMN (*TabPosName [ cpt ].AdrTreeViewColumn), 0.5); g_object_set (*TabPosName [ cpt ].AdrRenderer, "xalign", 0.5, NULL); break; } if (GTK_BUTTON (button) == GTK_BUTTON (GTK_WIDGET (GLADE_GET_OBJECT(TabPosName [ cpt ].NameRight)))) { Config.StringPosFieldsName [ cpt ] = '2'; TabPosName [ cpt ].Pos = 2; gtk_tree_view_column_set_alignment (GTK_TREE_VIEW_COLUMN (*TabPosName [ cpt ].AdrTreeViewColumn), 1.0); g_object_set (*TabPosName [ cpt ].AdrRenderer, "xalign", 1.0, NULL); break; } } } // // void treeview_radiobutton_set_PosFieldsName (void) { gint cpt; treeview_set_pos_fields_name (); VarTreeView.BoolNoEnter = TRUE; for (cpt = POS_STRUCT_DVD; cpt < MAX_DATAS_STRUCT_RADIOBUTTONS; cpt ++) { if (Config.StringPosFieldsName [ cpt ] == '0') { TabPosName [ cpt ].Pos = 0; gtk_tree_view_column_set_alignment (GTK_TREE_VIEW_COLUMN (*TabPosName [ cpt ].AdrTreeViewColumn), 0.0); g_object_set (*TabPosName [ cpt ].AdrRenderer, "xalign", 0.0, NULL); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (GLADE_GET_OBJECT(TabPosName [ cpt ].NameLeft)), TRUE); } else if (Config.StringPosFieldsName [ cpt ] == '1') { TabPosName [ cpt ].Pos = 1; gtk_tree_view_column_set_alignment (GTK_TREE_VIEW_COLUMN (*TabPosName [ cpt ].AdrTreeViewColumn), 0.5); g_object_set (*TabPosName [ cpt ].AdrRenderer, "xalign", 0.5, NULL); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (GLADE_GET_OBJECT(TabPosName [ cpt ].NameCenter)), TRUE); } else if (Config.StringPosFieldsName [ cpt ] == '2') { TabPosName [ cpt ].Pos = 2; gtk_tree_view_column_set_alignment (GTK_TREE_VIEW_COLUMN (*TabPosName [ cpt ].AdrTreeViewColumn), 1.0); g_object_set (*TabPosName [ cpt ].AdrRenderer, "xalign", 1.0, NULL); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (GLADE_GET_OBJECT(TabPosName [ cpt ].NameRight)), TRUE); } } VarTreeView.BoolNoEnter = FALSE; } // ACTIVE OU DESACTIVE LA VISIBILITE DU CHAMPS SUITE A CLICK BUTTON // void on_checkbutton_modif_treeview_clicked (GtkButton *button, gpointer user_data) { gint cpt; if (TRUE == VarTreeView.BoolNoEnter) return; for (cpt = POS_STRUCT_DVD; cpt < MAX_DATAS_STRUCT_TREEVIEW; cpt ++) { if (GTK_BUTTON (button) == GTK_BUTTON (GLADE_GET_OBJECT(TabShowHide [ cpt ].Name))) { // g_print("cpt = %d\n", cpt); TabShowHide [ cpt ].BoolIsVisible = (TabShowHide [ cpt ].BoolIsVisible == TRUE) ? FALSE : TRUE; // Show / Hide la colonne du TreeView gtk_tree_view_column_set_visible (GTK_TREE_VIEW_COLUMN (*TabShowHide [ cpt ].AdrTreeViewColumn), TabShowHide [ cpt ].BoolIsVisible); // sortie break; } } } // // void on_notebook_windtreeview_switch_page (GtkNotebook *notebook, GtkNotebookPage *page, guint page_num, gpointer user_data) { VarTreeView.PageNotebook = page_num; switch(VarTreeView.PageNotebook) { case 0 : gtk_notebook_set_current_page (GTK_NOTEBOOK (GLADE_GET_OBJECT("notebook_general")), NOTEBOOK_DVD_AUDIO); break; case 1 : gtk_notebook_set_current_page (GTK_NOTEBOOK (GLADE_GET_OBJECT("notebook_general")), NOTEBOOK_CD_AUDIO); break; case 2 : gtk_notebook_set_current_page (GTK_NOTEBOOK (GLADE_GET_OBJECT("notebook_general")), NOTEBOOK_FICHIERS); gtk_notebook_set_current_page (GTK_NOTEBOOK (GLADE_GET_OBJECT("notebook_in_file")), NOTEBOOK_FICHIERS_CONVERSION); break; case 3 : gtk_notebook_set_current_page (GTK_NOTEBOOK (GLADE_GET_OBJECT("notebook_general")), NOTEBOOK_FICHIERS); gtk_notebook_set_current_page (GTK_NOTEBOOK (GLADE_GET_OBJECT("notebook_in_file")), NOTEBOOK_FICHIERS_WAV); break; case 4 : gtk_notebook_set_current_page (GTK_NOTEBOOK (GLADE_GET_OBJECT("notebook_general")), NOTEBOOK_FICHIERS); gtk_notebook_set_current_page (GTK_NOTEBOOK (GLADE_GET_OBJECT("notebook_in_file")), NOTEBOOK_FICHIERS_MP3OGG); break; case 5 : gtk_notebook_set_current_page (GTK_NOTEBOOK (GLADE_GET_OBJECT("notebook_general")), NOTEBOOK_FICHIERS); gtk_notebook_set_current_page (GTK_NOTEBOOK (GLADE_GET_OBJECT("notebook_in_file")), NOTEBOOK_FICHIERS_TAGS); break; } } // // void treeview_open_window (void) { if (TRUE == VarTreeView.IsShow) { gdk_window_raise (VarTreeView.AdrWin->window); } else { if (NULL == VarTreeView.AdrWin) { VarTreeView.AdrWin = GTK_WIDGET (GLADE_GET_OBJECT("wind_treeview")); gtk_builder_connect_signals (GtkXcfaProjet, NULL); } gtk_window_set_transient_for (GTK_WINDOW(VarTreeView.AdrWin), GTK_WINDOW(WindMain)); gtk_window_set_modal (GTK_WINDOW (VarTreeView.AdrWin), TRUE); libutils_set_default_icone_to_win (VarTreeView.AdrWin); gtk_widget_show (VarTreeView.AdrWin); } VarTreeView.IsShow = TRUE; gtk_window_set_title (GTK_WINDOW (VarTreeView.AdrWin), "Modification des champs"); treeview_set_etat_fields (); switch (Config.NotebookGeneral) { case NOTEBOOK_DVD_AUDIO : gtk_notebook_set_current_page (GTK_NOTEBOOK (GLADE_GET_OBJECT("notebook_windtreeview")), 0); break; case NOTEBOOK_CD_AUDIO : gtk_notebook_set_current_page (GTK_NOTEBOOK (GLADE_GET_OBJECT("notebook_windtreeview")), 1); break; case NOTEBOOK_FICHIERS : switch (Config.NotebookFile) { case NOTEBOOK_FICHIERS_CONVERSION : gtk_notebook_set_current_page (GTK_NOTEBOOK (GLADE_GET_OBJECT("notebook_windtreeview")), 2); break; case NOTEBOOK_FICHIERS_WAV : gtk_notebook_set_current_page (GTK_NOTEBOOK (GLADE_GET_OBJECT("notebook_windtreeview")), 3); break; case NOTEBOOK_FICHIERS_MP3OGG : gtk_notebook_set_current_page (GTK_NOTEBOOK (GLADE_GET_OBJECT("notebook_windtreeview")), 4); break; case NOTEBOOK_FICHIERS_TAGS : gtk_notebook_set_current_page (GTK_NOTEBOOK (GLADE_GET_OBJECT("notebook_windtreeview")), 5); break; } break; default : gtk_notebook_set_current_page (GTK_NOTEBOOK (GLADE_GET_OBJECT("notebook_general")), NOTEBOOK_DVD_AUDIO); } } xcfa-4.3.6/src/tags_aac.c0000644000175000017500000000334112122563465012072 00000000000000 /* * file : tags_aac.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #include #include #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "tags.h" #include /* *--------------------------------------------------------------------------- * REMOVE *--------------------------------------------------------------------------- */ INFO_AAC *tagsaac_remove_info (INFO_AAC *info) { if (info) { if (NULL != info->time) { g_free (info->time); info->time = NULL; } if (NULL != info->hertz) { g_free (info->hertz); info->hertz = NULL; } info->tags = (TAGS *)tags_remove (info->tags); g_free (info); info = NULL; } return ((INFO_AAC *)NULL); } xcfa-4.3.6/src/cd_normalise.c0000644000175000017500000001016612122563465012772 00000000000000 /* * file : cd_normalise.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #include #include #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "cd_audio.h" #include "configuser.h" #include "cd_normalise.h" typedef struct { GList *ListPeakGroup; // Pointeur sur AUDIO gint MaxElements; // gint NumExtract; // gchar *TmpRep; // Le dossier temporaire } VAR_CD_NORMALISE; VAR_CD_NORMALISE VarCdNormalise = { NULL, // GList *ListPeakGroup 0, // gint MaxElements 0, // gint NumExtract NULL // gchar *TmpRep }; // // PEAK GROUP // void CdNormalise_set_list_PeakGroup (CD_AUDIO *Audio) { VAR_CD_NORMALISE_ELEMENT *VarCDNormaliseElement = NULL; if (VarCdNormalise.TmpRep == NULL) { VarCdNormalise.TmpRep = libutils_create_temporary_rep (Config.PathnameTMP, PATH_TMP_XCFA_CD_NORMALISE_PEAK_ALBUM ); } VarCDNormaliseElement = (VAR_CD_NORMALISE_ELEMENT *)g_malloc0 (sizeof (VAR_CD_NORMALISE_ELEMENT)); VarCDNormaliseElement->PathNameSrc = g_strdup_printf ("%s/%d.wav", VarCdNormalise.TmpRep, VarCdNormalise.MaxElements); VarCDNormaliseElement->PathNameDest = g_strdup (Audio->PathName_Dest_Wav); VarCDNormaliseElement->Audio = Audio; VarCdNormalise.ListPeakGroup = g_list_append (VarCdNormalise.ListPeakGroup, VarCDNormaliseElement); VarCdNormalise.MaxElements ++; } // // void CdNormalise_add_PeakGroup (void) { VarCdNormalise.NumExtract ++; } // // void CdNormalise_set_list_collectif_remove (void) { GList *List = NULL; VAR_CD_NORMALISE_ELEMENT *VarCDNormaliseElement = NULL; List = g_list_first (VarCdNormalise.ListPeakGroup); while (List) { if ((VarCDNormaliseElement = (VAR_CD_NORMALISE_ELEMENT *)List->data) != NULL) { g_free (VarCDNormaliseElement->PathNameSrc); VarCDNormaliseElement->PathNameSrc = NULL; g_free (VarCDNormaliseElement->PathNameDest); VarCDNormaliseElement->PathNameDest = NULL; } List = g_list_next(List); } g_list_free (VarCdNormalise.ListPeakGroup); VarCdNormalise.ListPeakGroup = NULL; VarCdNormalise.MaxElements = 0; VarCdNormalise.NumExtract = 0; if (VarCdNormalise.TmpRep != NULL) { VarCdNormalise.TmpRep = libutils_remove_temporary_rep (VarCdNormalise.TmpRep); } } // // gboolean CdNormalise_list_PeakGroup_is_ready (void) { if (VarCdNormalise.MaxElements == VarCdNormalise.NumExtract) return (TRUE); return (FALSE); } // // gboolean CdNormalise_get_is_list_PeakGroup (void) { return (VarCdNormalise.ListPeakGroup == NULL ? FALSE : TRUE); } // // GList *CdNormalise_get_list_PeakGroup (void) { return ((GList *)VarCdNormalise.ListPeakGroup); } // // void CdNormalise_set_normalise_ok (void) { GList *List = NULL; VAR_CD_NORMALISE_ELEMENT *VarCDNormaliseElement = NULL; List = g_list_first (VarCdNormalise.ListPeakGroup); while (List) { if (NULL != (VarCDNormaliseElement = (VAR_CD_NORMALISE_ELEMENT *)List->data)) { VarCDNormaliseElement->Audio->EtatNormalise = FALSE; VarCDNormaliseElement->Audio->EtatPeak = CD_NORM_PEAK_NONE; } List = g_list_next(List); } // gtk_combo_box_set_active (GTK_COMBO_BOX (var_cd.Adr_combobox_normalise_cd), 0); } xcfa-4.3.6/src/file_mp3ogg_conv.c0000644000175000017500000003611212163046364013551 00000000000000 /* * file : file_mp3ogg_conv.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #include #include #include #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "options.h" #include "notify_send.h" #include "configuser.h" #include "conv.h" #include "prg_init.h" #include "win_scan.h" #include "win_info.h" #include "popup.h" #include "file.h" gboolean BoolErrMplayer = FALSE; gboolean BoolErrSox = FALSE; // // static void filemp3oggconv_thread (void *arg) { GList *list = NULL; DETAIL *detail = NULL; PARAM_FILELC param_filelc; CONV_FIC_MP3OGG *PConvMp3Ogg; gint pos; gchar **PtrTabArgs = NULL; g_print ("\n"); g_print ("!-------------------------------------------------!\n"); g_print ("! CONVERSION(S) DEPUIS L'ONGLET 'ANALYZE MP3-OGG' !\n"); g_print ("!-------------------------------------------------!\n"); g_print ("\n"); conv.bool_thread_conv = TRUE; list = g_list_first (entetefile); while( NULL != list && FALSE == conv.bool_stop ) { if (NULL != (detail = (DETAIL *)list->data)) { if (FILE_IS_OGG != detail->type_infosong_file_is && FILE_IS_MP3 != detail->type_infosong_file_is) { list = g_list_next(list); continue; } if( FALSE == detail->BoolChanged ) { list = g_list_next(list); continue; } PConvMp3Ogg = detail->PConvMp3Ogg; if (FILE_IS_MP3 == detail->type_infosong_file_is) { INFO_MP3 *InfoMp3 = (INFO_MP3 *)detail->info; /* MPLAYER_MP3_TO_WAV * MPLAYER_WAV_TO_WAV * SOURCE MP3 -> DESTINATION WAV * ------------------------------------ */ if( TRUE == OptionsCommandLine.BoolVerboseMode ) { g_print ("SOURCE MP3<%s>\n", detail->namefile); g_print ("DEST WAV<%s>\n", PConvMp3Ogg->destwav); } PtrTabArgs = filelc_AllocTabArgs(); pos = 3; PtrTabArgs [ pos++ ] = g_strdup ("mplayer"); PtrTabArgs [ pos++ ] = g_strdup ("-nojoystick"); PtrTabArgs [ pos++ ] = g_strdup ("-nolirc"); PtrTabArgs [ pos++ ] = g_strdup ("-novideo"); PtrTabArgs [ pos++ ] = g_strdup_printf ("%s", detail->namefile); PtrTabArgs [ pos++ ] = g_strdup ("-ao"); PtrTabArgs [ pos++ ] = g_strdup ("pcm"); PtrTabArgs [ pos++ ] = g_strdup ("-ao"); PtrTabArgs [ pos++ ] = g_strdup_printf ("pcm:file=%s", PConvMp3Ogg->destwav); PtrTabArgs [ pos++ ] = g_strdup ("-af"); PtrTabArgs [ pos++ ] = g_strdup ("channels=2"); PtrTabArgs [ pos++ ] = g_strdup ("-srate"); PtrTabArgs [ pos++ ] = g_strdup ("44100"); PtrTabArgs [ pos++ ] = NULL; conv_to_convert( PtrTabArgs, FALSE, MPLAYER_WAV_TO_WAV, "MPLAYER_WAV_TO_WAV"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); if( TRUE == libutils_test_file_exist( PConvMp3Ogg->destwav )) { /* SOX wav TO soxwav * RENAME soxwav TO wav */ if (InfoMp3->mpeg_is != MPEG_1) { if( TRUE == OptionsCommandLine.BoolVerboseMode ) { g_print ("SOURCE MP3<%s>\n", PConvMp3Ogg->destwav); g_print ("DEST WAV<%s>\n", PConvMp3Ogg->destsox); } PtrTabArgs = conv_with_sox_get_param( PConvMp3Ogg->destwav, PConvMp3Ogg->destsox, "44100", "2", "16" ); conv_to_convert( PtrTabArgs, FALSE, SOX_WAV_TO_WAV, "SOX_WAV_TO_WAV"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); conv_copy_src_to_dest (PConvMp3Ogg->destsox, PConvMp3Ogg->destwav); // conv.encode_completed ++; } if( TRUE == libutils_test_file_exist( PConvMp3Ogg->destwav ) && libutils_get_size_file( PConvMp3Ogg->destwav ) > 0 ) { /* lame SOURCE WAV -> DESTINATION MP3 * ---------------------------------- */ if( TRUE == OptionsCommandLine.BoolVerboseMode ) { g_print ("SOURCE WAV%s>\n", PConvMp3Ogg->destwav); g_print ("DEST MP3<%s>\n", PConvMp3Ogg->destmp3); } param_filelc.type_conv = LAME_WAV_TO_MP3; param_filelc.With_CommandLineUser = FALSE; param_filelc.filesrc = PConvMp3Ogg->destwav; param_filelc.filedest = PConvMp3Ogg->destmp3; param_filelc.tags = InfoMp3->tags; param_filelc.cdrom = NULL; param_filelc.num_track = NULL; param_filelc.BoolSetBitrate = TRUE; param_filelc.PtrStrBitrate = popup_get_param_mp3( detail->Mp3_Debit, detail->Mp3_Mode ); PtrTabArgs = filelc_get_command_line (¶m_filelc); conv_to_convert( PtrTabArgs, FALSE, LAME_WAV_TO_MP3, "LAME_WAV_TO_MP3"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); /* copy SOURCE MP3 -> DESTINATION MP3 * ---------------------------------- */ if (FALSE == conv.bool_stop) { conv_copy_src_to_dest (PConvMp3Ogg->destmp3, PConvMp3Ogg->destfile); } } else { BoolErrSox = TRUE; } } else { BoolErrMplayer = TRUE; } } else if (FILE_IS_OGG == detail->type_infosong_file_is) { INFO_OGG *InfoOgg = (INFO_OGG *)detail->info; /* ogg123 SOURCE OGG -> DESTINATION WAV * ------------------------------------ */ if( TRUE == OptionsCommandLine.BoolVerboseMode ) { g_print ("SOURCE MP3<%s>\n", detail->namefile); g_print ("DEST WAV<%s>\n", PConvMp3Ogg->destwav); } PtrTabArgs = filelc_AllocTabArgs(); pos = 3; PtrTabArgs [ pos++ ] = g_strdup ("mplayer"); PtrTabArgs [ pos++ ] = g_strdup ("-nojoystick"); PtrTabArgs [ pos++ ] = g_strdup ("-nolirc"); PtrTabArgs [ pos++ ] = g_strdup ("-ao"); PtrTabArgs [ pos++ ] = g_strdup ("pcm"); PtrTabArgs [ pos++ ] = g_strdup_printf ("%s", detail->namefile); PtrTabArgs [ pos++ ] = g_strdup ("-ao"); PtrTabArgs [ pos++ ] = g_strdup_printf ("pcm:file=%s", PConvMp3Ogg->destwav); PtrTabArgs [ pos++ ] = g_strdup ("-af"); PtrTabArgs [ pos++ ] = g_strdup ("channels=2"); PtrTabArgs [ pos++ ] = g_strdup ("-srate"); PtrTabArgs [ pos++ ] = g_strdup ("44100"); PtrTabArgs [ pos++ ] = NULL; conv_to_convert( PtrTabArgs, param_filelc.With_CommandLineUser, MPLAYER_OGG_TO_WAV, "MPLAYER_OGG_TO_WAV"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); if( TRUE == libutils_test_file_exist( PConvMp3Ogg->destwav ) && libutils_get_size_file( PConvMp3Ogg->destwav ) > 0 ) { /* oggenc SOURCE WAV -> DESTINATION OGG * ---------------------------------- */ if( TRUE == OptionsCommandLine.BoolVerboseMode ) { g_print ("SOURCE WAV%s>\n", PConvMp3Ogg->destwav); g_print ("DEST MP3<%s>\n", PConvMp3Ogg->destogg); } param_filelc.type_conv = OGGENC_WAV_TO_OGG; param_filelc.With_CommandLineUser = FALSE; param_filelc.filesrc = PConvMp3Ogg->destwav; param_filelc.filedest = PConvMp3Ogg->destogg; param_filelc.tags = InfoOgg->tags; param_filelc.cdrom = NULL; param_filelc.num_track = NULL; param_filelc.BoolSetBitrate = TRUE; param_filelc.PtrStrBitrate = popup_get_param_ogg( detail->Ogg_Debit, detail->Ogg_Managed, detail->Ogg_Downmix ); PtrTabArgs = filelc_get_command_line (¶m_filelc); conv_to_convert( PtrTabArgs, FALSE, OGGENC_WAV_TO_OGG, "OGGENC_WAV_TO_OGG"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); /* copy SOURCE OGG -> DESTINATION MP3 * ---------------------------------- */ if (FALSE == conv.bool_stop) { conv_copy_src_to_dest (PConvMp3Ogg->destogg, PConvMp3Ogg->destfile); } } else { BoolErrMplayer = TRUE; } } g_unlink (PConvMp3Ogg->destwav); g_unlink (PConvMp3Ogg->destmp3); g_unlink (PConvMp3Ogg->destogg); g_unlink (PConvMp3Ogg->destsox); } list = g_list_next(list); } // close(conv.tube_conv [ 0 ]); conv.bool_thread_conv = FALSE; pthread_exit(0); } // // static gint filemp3oggconv_timeout (gpointer data) { if (TRUE == conv.bool_percent_conv) { gchar *Str = NULL; // DEBUG if( conv.total_percent > 1.0 ) conv.total_percent = 1.0; Str = g_strdup_printf ("%d%%", (int)(conv.total_percent * 100)); WindScan_set_progress (Str, conv.total_percent); g_free (Str); Str = NULL; conv.bool_percent_conv = FALSE; } else if( FALSE == conv.bool_thread_conv ) { GList *list = NULL; DETAIL *detail = NULL; CONV_FIC_MP3OGG *PConvMp3Ogg; FileMp3Ogg_change_parameters (); // FREE STRUCT CONV_FIC_MP3OGG list = g_list_first (entetefile); while (list) { if (NULL != (detail = (DETAIL *)list->data)) { if (FILE_IS_OGG == detail->type_infosong_file_is || FILE_IS_MP3 == detail->type_infosong_file_is) { if( NULL != (PConvMp3Ogg = detail->PConvMp3Ogg)) { g_free (PConvMp3Ogg->destwav); PConvMp3Ogg->destwav = NULL; g_free (PConvMp3Ogg->destmp3); PConvMp3Ogg->destmp3 = NULL; g_free (PConvMp3Ogg->destogg); PConvMp3Ogg->destogg = NULL; g_free (PConvMp3Ogg->destsox); PConvMp3Ogg->destsox = NULL; g_free (PConvMp3Ogg->destfile); PConvMp3Ogg->destfile = NULL; g_free (PConvMp3Ogg); PConvMp3Ogg = detail->PConvMp3Ogg = NULL; } } if( FILE_IS_OGG == detail->type_infosong_file_is ) { detail->BoolChanged = ( -1 != detail->Ogg_Debit || -1 != detail->Ogg_Managed || -1 != detail->Ogg_Downmix ); } if( FILE_IS_MP3 == detail->type_infosong_file_is ) { detail->BoolChanged = ( -1 != detail->Mp3_Debit || -1 != detail->Mp3_Mode ); } } list = g_list_next(list); } // Delete temporary rep if (NULL != conv.TmpRep) { conv.TmpRep = libutils_remove_temporary_rep (conv.TmpRep); } gtk_timeout_remove (conv.handler_timeout_conv); WindScan_close (); FileMp3Ogg_set_flag_buttons (); if (FALSE == conv.bool_stop) { NotifySend_msg (_("XCFA: Modification bitrate"), _("Ok"), conv.bool_stop); } else { NotifySend_msg (_("XCFA: Modification bitrate"), _("Arret par l'utilisateur"), conv.bool_stop); } if( TRUE == BoolErrMplayer ) { wininfo_create ( WindMain, _("Erreur depuis MPLAYER !"), _("Vous pouvez activer XCFA en ligne de commande avec: "), "\n", _("$ xcfa -verbose"), "\n", _("pour consulter le type d'erreur renvoye par mplayer."), ""); } else if( TRUE == BoolErrSox ) { wininfo_create ( WindMain, _("Erreur depuis SOX !"), _("Vous pouvez activer XCFA en ligne de commande avec: "), "\n", _("$ xcfa -verbose"), "\n", _("pour consulter le type d'erreur renvoye par sox."), ""); } } return (TRUE); } // // void filemp3oggconv_set_flags_before_conversion (void) { GList *list = NULL; DETAIL *detail = NULL; CONV_FIC_MP3OGG *PConvMp3Ogg; // INIT DOSSIER TEMPORAIRE if (NULL == conv.TmpRep) { conv.TmpRep = libutils_create_temporary_rep (Config.PathnameTMP, PATH_TMP_XCFA_AUDIOFILEMP3OGG); } list = g_list_first (entetefile); while (list) { if (NULL != (detail = (DETAIL *)list->data)) { if (FILE_IS_OGG == detail->type_infosong_file_is || FILE_IS_MP3 == detail->type_infosong_file_is) { // CREATION STRUCTURE detail->PConvMp3Ogg = (CONV_FIC_MP3OGG *)g_malloc0 (sizeof (CONV_FIC_MP3OGG)); PConvMp3Ogg = detail->PConvMp3Ogg; if( TRUE == detail->BoolChanged ) { conv.total_convert += 3; if (FILE_IS_MP3 == detail->type_infosong_file_is) { INFO_MP3 *info = (INFO_MP3 *)detail->info; if (MPEG_1 != info && info->mpeg_is != MPEG_1) conv.total_convert ++; } if (FILE_IS_OGG == detail->type_infosong_file_is) conv.total_convert ++; PConvMp3Ogg->destwav = g_strdup_printf ("%s/tmp.wav", conv.TmpRep); PConvMp3Ogg->destsox = g_strdup_printf ("%s/tmp_sox.wav", conv.TmpRep); PConvMp3Ogg->destmp3 = g_strdup_printf ("%s/tmp.mp3", conv.TmpRep); PConvMp3Ogg->destogg = g_strdup_printf ("%s/tmp.ogg", conv.TmpRep); if (FILE_IS_OGG == detail->type_infosong_file_is) { PConvMp3Ogg->destfile = file_get_pathname_dest (detail, "ogg"); } else { PConvMp3Ogg->destfile = file_get_pathname_dest (detail, "mp3"); } } } } list = g_list_next(list); } } // // gboolean filemp3oggconv_is_regul_ok (void) { GList *list = NULL; DETAIL *detail = NULL; gboolean bool_mp3 = FALSE; gboolean bool_ogg = FALSE; gchar *str = NULL; list = g_list_first (entetefile); while (list) { if (NULL != (detail = (DETAIL *)list->data)) { if( TRUE == detail->BoolChanged ) { if (FILE_IS_MP3 == detail->type_infosong_file_is) bool_mp3 = TRUE; else if (FILE_IS_OGG == detail->type_infosong_file_is) bool_ogg = TRUE; } } list = g_list_next(list); } if (bool_mp3 && bool_ogg) { if (FALSE == PrgInit.bool_mplayer || FALSE == PrgInit.bool_lame || FALSE == PrgInit.bool_oggenc) str = g_strdup_printf (_(" ATTENTION: Il faut installer %s%s%s"), FALSE == PrgInit.bool_mplayer ? " \n MPLAYER" : "", FALSE == PrgInit.bool_lame ? " \n LAME" : "", FALSE == PrgInit.bool_oggenc ? " \n OGGENC" : "" ); } else if (bool_mp3) { if (FALSE == PrgInit.bool_mplayer || FALSE == PrgInit.bool_lame) str = g_strdup_printf (_(" ATTENTION: Il faut installer %s%s"), FALSE == PrgInit.bool_mplayer ? " \n MPLAYER" : "", FALSE == PrgInit.bool_lame ? " \n LAME" : "" ); } else if (bool_ogg) { if (FALSE == PrgInit.bool_oggenc) str = g_strdup_printf (_(" ATTENTION: Il faut installer %s"), FALSE == PrgInit.bool_oggenc ? " \n OGGENC" : "" ); } if (NULL != str) { wininfo_create ( WindMain, _("Package NOT FOUND !"), str, ""); g_free (str); str = NULL; return (FALSE); } return (TRUE); } // // void filemp3oggconv_apply_regul_mp3ogg_by_conv (void) { pthread_t nmr_tid; // PRINT_FUNC_LF(); if (TRUE == filemp3oggconv_is_regul_ok ()) { WindScan_open ("Conversions bitrate", WINDSCAN_PULSE); WindScan_set_label ("Conversions bitrate ..."); BoolErrMplayer = FALSE; BoolErrSox = FALSE; conv_reset_struct (WindScan_close_request); filemp3oggconv_set_flags_before_conversion (); conv.bool_thread_conv = TRUE; pthread_create (&nmr_tid, NULL ,(void *)filemp3oggconv_thread, (void *)NULL); conv.handler_timeout_conv = gtk_timeout_add (100, filemp3oggconv_timeout, 0); } } xcfa-4.3.6/src/dvd_table.c0000644000175000017500000002054412122563465012260 00000000000000 /* * file : dvd_table.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "configuser.h" #include "dvd.h" /* !-- Menu --! ! ORIGINAL ! ! VERS 2CH ! ! VERS 6CH ! !----------! >Question pour Maître Xavier ou Shankarius: > >Si l'on trouve un fichier un fichier 4 pistes sans pouvoir >l'analyser, doit on en déduire qu'il s'agit de: >quadraphonique ou surround 4.0 ? > >Claude xavier a écrit : > Hi Claude, > Sur un DVD, un fichier 4 pistes sera (presque) toujours un Dolby > Surround 4.0...Question de monopole ! Dolby est à l'industrie > cinématographique ce que Micro$oft est à l'industrie informatique. En > même temps c'est très, très, très rare de trouver du 4.0 sur un DVD > (j'en ai jamais vu...). En général ce sont des données de matriçage > qui sont inclues dans le Dolby 5.1 et qui permettent d'aiguiller la > voie centrale et la voie sub vers les enceintes principales, pour ceux > qui ne disposent ni de sub ni de voie centrale. ---------------------------------------------------------------------------------------------------------------------------- mono stéréo quadraphonique surround 4.0 surround 5.0 surround 5.1 ---------------------------------------------------------------------------------------------------------------------------- 0. centre 0. gauche 0. devant gauche 0. devant gauche 0. devant gauche 0. devant gauche 1. droite 1. devant droite 1. devant droite 1. devant droite 1. devant droite 2. arrière gauche 2. arrière centre 2. arrière gauche 2. arrière gauche 3. arrière droite 3. devant centre 3. arrière droite 3. arrière droite 4. devant centre 4. devant centre 5. caisson de basse ---------------------------------------------------------------------------------------------------------------------------- Il suffit juste de placer dans les case vides: - 0 pour laisser dans l'état Ou - >0 .. 512 : pour valider le mixage (généralement 0.5 ou 1) */ typedef struct { gchar *pan1; gchar *pan2; gchar *pan3; gchar *pan4; gchar *pan5; gchar *pan6; } AF_PAN; AF_PAN af_pan [ 6 ] = { /* tab [ 0 ] [ 0 .. 5 ] -channels 1 pan1 .. pan6 */ { "1", "1:1", "1:1:1", "1:1:1:1", "1:1:1:1:1", "1:1:1:1:1:1"}, /* tab [ 1 ] [ 0 .. 5 ] -channels 2 pan1 .. pan6 */ { "1:1", "1:0:0:1", "1:0:1:0:1:1", "1:0:1:0:0:1:0:1", "1:0:1:1:0:0:1:0:1:1", "1:0:1:0:1:1:0:1:0:1:1:1"}, /* tab [ 2 ] [ 0 .. 5 ] -channels 3 pan1 .. pan6 */ { "0.5:0.5:0.5", "1:0:0:1:1:1", "1:0:0.5:0:1:0.5:1:1:1", "1:0:0:0:0:1:0:0:1:1:1:1", "1:0:1:0:1:0:1:0:1:1:1:1:1:1:1", "1:0:1:0:1:1:0:1:0:1:1:1:0:1:1:1:1:1"}, /* tab [ 3 ] [ 0 .. 5 ] -channels 4 pan1 .. pan6 */ { "1:1:1:1", "1:0:0:1:1:0:0:1", "1:0:0:0:1:0:0:0:1:0:0:1", "1:0:0:0:0:1:0:0:0:0:1:0:0:0:0:1", "1:0:1:0:0:0:1:0:1:0:0:0:0:1:0:0:0:0:0:1", "1:0:1:0:0:0:0:1:0:1:0:0:0:0:0:0:1:1:0:0:0:0:1:1"}, /* tab [ 4 ] [ 0 .. 5 ] -channels 5 pan1 .. pan6 */ { "1:1:1:1:1", "1:0:0:1:1:0:0:1:1:1", "1:0:0:0:1:0:1:0:0:0:1:0:0:0:1", "1:0:0:0:0:1:0:0:0:0:1:0:0:0:1:0:0:0:0:1", "1:0:0:0:0:0:1:0:0:0:0:0:1:0:0:0:0:0:1:0:0:0:0:0:1", "1:0:0:0:0:0:0:1:0:0:0:0:0:0:1:0:0:0:0:0:0:1:0:0:0:0:0:0:1:1"}, /* @Dzef: En fait, pour transformer le 6 ch en stéréo, le mélange doit se faire comme ça : 0. devant gauche vers 0. gauche 1. devant droite vers 1. droite 2. arrière gauche vers 0. gauche 3. arrière droite vers 1. droite 4. devant centre vers 0. gauche ET 1. droite 5. caisson de basse vers 0. gauche ET 1. droite tab [ 5 ] [ 0 .. 5 ] -channels 6 pan1 .. pan6 */ { "1:1:1:1:1:1", "1:0:0:1:1:0:0:1:1:1:1:1", "1:0:0:0:1:0:1:0:0:0:1:0:0:0:1:0:0:1", "1:0:0:0:0:1:0:0:0:0:1:0:0:0:1:0:0:0:0:1:0:0:1:0", "1:0:0:0:0:0:1:0:0:0:0:0:1:0:0:0:0:0:1:0:0:0:0:0:1:0:0:0:0:1", "1:0:0:0:0:0:0:1:0:0:0:0:0:0:1:0:0:0:0:0:0:1:0:0:0:0:0:0:1:0:0:0:0:0:0:1"} }; void dvdtable_set_data_glist (GList *p_list, gint num, gchar *new_data) { p_list = g_list_nth (p_list, num); if (p_list->data) { gchar *ptr = (gchar *)p_list->data; g_free (ptr); ptr = NULL; p_list->data = NULL; p_list->data = g_strdup (new_data); } } gchar *dvdtable_get (gint channel, gint pan) { gchar **Larrbuf = NULL; gchar *ptr = NULL; gint cpt; GList *list = NULL; GList *Nlist = NULL; gchar *str = NULL; GString *gstr = NULL; gint cpt_sub; gint cpt_ambiance; /* Pointeur sur la chaine */ channel --; switch (pan) { case 1 : ptr = af_pan [ channel ].pan1; break; case 2 : ptr = af_pan [ channel ].pan2; break; case 3 : ptr = af_pan [ channel ].pan3; break; case 4 : ptr = af_pan [ channel ].pan4; break; case 5 : ptr = af_pan [ channel ].pan5; break; case 6 : ptr = af_pan [ channel ].pan6; break; } channel ++; /* -- DECOUPE POUR GLIST */ Larrbuf = g_strsplit (ptr, ":", 0); for (cpt=0; Larrbuf[cpt]; cpt++) { list = g_list_append (list, g_strdup (Larrbuf[cpt])); } g_strfreev(Larrbuf); /* -- MENU VALIDE POUR channel > 2 VERS 2 */ if (pan == 2 && channel >= 4) { cpt_sub = gtk_combo_box_get_active (GTK_COMBO_BOX (var_dvd.Adr_combobox_sub_dvd)); cpt_ambiance = gtk_combo_box_get_active (GTK_COMBO_BOX (var_dvd.Adr_combobox_ambiance_dvd)); if (channel == 4) { if (cpt_ambiance == 0) { dvdtable_set_data_glist (list, 4, "1"); dvdtable_set_data_glist (list, 5, "1"); } else if (cpt_ambiance == 1) { dvdtable_set_data_glist (list, 4, "0.7"); dvdtable_set_data_glist (list, 5, "0.7"); } else if (cpt_ambiance == 2) { dvdtable_set_data_glist (list, 4, "0.5"); dvdtable_set_data_glist (list, 5, "0.5"); } } else if (channel == 5) { if (cpt_ambiance == 0) { dvdtable_set_data_glist (list, 4, "1"); dvdtable_set_data_glist (list, 7, "1"); } else if (cpt_ambiance == 1) { dvdtable_set_data_glist (list, 4, "0.7"); dvdtable_set_data_glist (list, 7, "0.7"); } else if (cpt_ambiance == 2) { dvdtable_set_data_glist (list, 4, "0.5"); dvdtable_set_data_glist (list, 7, "0.5"); } } else if (channel == 6) { if (cpt_ambiance == 0) { dvdtable_set_data_glist (list, 4, "1"); dvdtable_set_data_glist (list, 7, "1"); } else if (cpt_ambiance == 1) { dvdtable_set_data_glist (list, 4, "0.7"); dvdtable_set_data_glist (list, 7, "0.7"); } else if (cpt_ambiance == 2) { dvdtable_set_data_glist (list, 4, "0.5"); dvdtable_set_data_glist (list, 7, "0.5"); } if (cpt_sub == 0) { dvdtable_set_data_glist (list, 10, "1"); dvdtable_set_data_glist (list, 11, "1"); } else if (cpt_sub == 1) { dvdtable_set_data_glist (list, 10, "0.7"); dvdtable_set_data_glist (list, 11, "0.7"); } else if (cpt_sub == 2) { dvdtable_set_data_glist (list, 10, "0.5"); dvdtable_set_data_glist (list, 11, "0.5"); } } } /* -- INSERTION DES DATAS DU GLIST DANS UNE CHAINE GString */ gstr = g_string_new (NULL); Nlist = g_list_first (list); while (Nlist) { if ((ptr = (gchar *)Nlist->data)) { g_string_append_printf (gstr, "%s:", ptr); } Nlist = g_list_next (Nlist); } /* -- SUPPRIMER LE : DE FIN */ ptr = strrchr (gstr->str, ':'); *ptr = '\0'; /* -- TRANFERT POUR LE RETOUR */ str = g_strdup (gstr->str); g_string_free (gstr, TRUE); /* -- DESTRUCTION DU GLIST */ cpt = 0; Nlist = g_list_first (list); while (Nlist) { if ((ptr = (gchar *)Nlist->data)) { g_free (ptr); ptr = NULL; Nlist->data = NULL; } Nlist = g_list_next (Nlist); } g_list_free (list); list = NULL; /* -- ET RETOUR */ return (str); } xcfa-4.3.6/src/file_wav_conv.c0000644000175000017500000003226312163047233013151 00000000000000 /* * file : file_wav_conv.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #include #include #include #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "tags.h" #include "configuser.h" #include "notify_send.h" #include "win_scan.h" #include "conv.h" #include "file.h" /* *--------------------------------------------------------------------------- * VARIABLES *--------------------------------------------------------------------------- */ typedef struct { gboolean BoolEndTimeout; gint PassMplayer; gboolean BoolCopy; gboolean BoolRest; gboolean BoolSox; gboolean BoolMplayer; } VAR_FILEWAVCONF; VAR_FILEWAVCONF VarFilewavconv; // // static void filewavconv_thread (void *arg) { GList *list = NULL; DETAIL *detail = NULL; INFO_WAV *info = NULL; gint pos; CONV_FIC_WAV *PConvWav = NULL; gchar **PtrTabArgs = NULL; // PRINT_FUNC_LF(); conv.bool_thread_conv = TRUE; /* Copie vers le dossier temporaire */ list = g_list_first (entetefile); while (FALSE == conv.bool_stop && list) { if (NULL != (detail = (DETAIL *)list->data)) { if (detail->type_infosong_file_is != FILE_IS_WAV) { list = g_list_next(list); continue; } info = (INFO_WAV *)detail->info; PConvWav = detail->PConvWav; if (FALSE == info->BoolConv) { list = g_list_next(list); continue; } if (libutils_test_file_exist (detail->namefile)) { VarFilewavconv.BoolCopy = TRUE; conv_copy_src_to_dest (detail->namefile, PConvWav->TmpSrc); VarFilewavconv.BoolCopy = FALSE; } } list = g_list_next (list); } /* Transformation avec MPLAYER et SOX */ list = g_list_first (entetefile); while (FALSE == conv.bool_stop && list) { if (NULL != (detail = (DETAIL *)list->data)) { if (detail->type_infosong_file_is != FILE_IS_WAV) { list = g_list_next(list); continue; } info = (INFO_WAV *)detail->info; if (TRUE == info->BoolConv) { PConvWav = detail->PConvWav; PtrTabArgs = filelc_AllocTabArgs(); pos = 3; PtrTabArgs [ pos++ ] = g_strdup ("mplayer"); PtrTabArgs [ pos++ ] = g_strdup ("-nojoystick"); PtrTabArgs [ pos++ ] = g_strdup ("-nolirc"); PtrTabArgs [ pos++ ] = g_strdup (PConvWav->TmpSrc); PtrTabArgs [ pos++ ] = g_strdup ("-ao"); PtrTabArgs [ pos++ ] = g_strdup ("pcm"); PtrTabArgs [ pos++ ] = g_strdup ("-ao"); PtrTabArgs [ pos++ ] = g_strdup_printf ("pcm:file=%s", PConvWav->TmpMplayer); PtrTabArgs [ pos++ ] = g_strdup ("-af"); PtrTabArgs [ pos++ ] = g_strdup_printf ("channels=%s", info->NewVoie); PtrTabArgs [ pos++ ] = g_strdup ("-srate"); PtrTabArgs [ pos++ ] = g_strdup (info->NewHertz); PtrTabArgs [ pos++ ] = NULL; VarFilewavconv.BoolMplayer = TRUE; conv_to_convert( PtrTabArgs, FALSE, MPLAYER_WAV_TO_WAV, "MPLAYER_WAV_TO_WAV"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); VarFilewavconv.BoolMplayer = FALSE; VarFilewavconv.BoolCopy = TRUE; conv_copy_src_to_dest (PConvWav->TmpMplayer, PConvWav->TmpSrc); VarFilewavconv.BoolCopy = FALSE; if (atoi (info->bits) != atoi (info->NewBits)) { VarFilewavconv.BoolSox = TRUE; PtrTabArgs = conv_with_sox_get_param (PConvWav->TmpSrc, PConvWav->TmpDest, info->NewHertz, info->NewVoie, info->NewBits); conv_to_convert( PtrTabArgs, FALSE, SOX_WAV_TO_WAV, "SOX_WAV_TO_WAV"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); VarFilewavconv.BoolSox = FALSE; VarFilewavconv.BoolCopy = TRUE; conv_copy_src_to_dest (PConvWav->TmpDest, PConvWav->TmpSrc); VarFilewavconv.BoolCopy = FALSE; } } } list = g_list_next(list); } /* Copie du dossier temporaire vers l'origine */ list = g_list_first (entetefile); while (FALSE == conv.bool_stop && list) { if (NULL != (detail = (DETAIL *)list->data)) { if (detail->type_infosong_file_is != FILE_IS_WAV) { list = g_list_next(list); continue; } info = (INFO_WAV *)detail->info; PConvWav = detail->PConvWav; if (FALSE == info->BoolConv) { list = g_list_next(list); continue; } info->BoolConv = FALSE; if( TRUE == OptionsCommandLine.BoolVerboseMode ) { if (FALSE == libutils_test_file_exist (PConvWav->TmpSrc)) { g_print ("LE FICHIER <%s>\n", PConvWav->TmpDest); g_print ("\tEST RESTITUE SANS AVOIR ETE MODIFIE :\n"); g_print ("\tL' ENTETE NE CORRESPOND PAS A L'EXTENTION !!!\n"); } } VarFilewavconv.BoolRest = TRUE; conv_copy_src_to_dest (PConvWav->TmpSrc, PConvWav->NameDest); VarFilewavconv.BoolRest = FALSE; detail->info = (INFO_WAV *)tagswav_remove_info (info); info = (INFO_WAV *)detail->info; // detail->info = (INFO_WAV *)tagswav_get_info (detail); detail->info = (INFO_WAV *)tagswav_get_info (detail->namefile); info = (INFO_WAV *)detail->info; // g_print("info->hertz = %s\tinfo->NewHertz = %s\n", info->hertz, info->NewHertz); // g_print("info->voie = %s\t\tinfo->NewVoie = %s\n", info->voie, info->NewVoie); // g_print("info->bits = %s\tinfo->NewBits = %s\n", info->bits, info->NewBits); g_unlink (PConvWav->TmpSrc); g_unlink (PConvWav->TmpDest); g_unlink (PConvWav->TmpMplayer); g_free (PConvWav->TmpSrc); PConvWav->TmpSrc = NULL; g_free (PConvWav->TmpDest); PConvWav->TmpDest = NULL; g_free (PConvWav->TmpMplayer); PConvWav->TmpMplayer = NULL; g_free (PConvWav->NameDest); PConvWav->NameDest = NULL; } list = g_list_next (list); } conv.bool_thread_conv = FALSE; pthread_exit(0); } // // gchar filewavconv_get_spinner( void ) { gchar *spinner="|/-\\"; return( (gchar)spinner[ VarFilewavconv.PassMplayer++ %4 ] ); } // // static gint filewavconv_timeout (gpointer data) { if (conv.bool_percent_conv) { gchar foo [ 4 ]; gchar *Str = NULL; // DEBUG if( conv.total_percent > 1.0 ) conv.total_percent = 1.0; Str = g_strdup_printf ("%d%%", (gint)(conv.total_percent * 100)); WindScan_set_progress (Str, conv.total_percent); g_free (Str); Str = NULL; if (VarFilewavconv.BoolCopy == TRUE) { foo [ 0 ] = filewavconv_get_spinner(); foo [ 1 ] = '\0'; Str = g_strdup_printf (_("%s Copie fichier: %d%%"), foo, (gint)(conv.total_percent * 100)); WindScan_set_label (Str); g_free (Str); Str = NULL; } else if (VarFilewavconv.BoolRest == TRUE) { foo [ 0 ] = filewavconv_get_spinner(); foo [ 1 ] = '\0'; Str = g_strdup_printf (_("%s Restitution fichier: %d%%"), foo, (gint)(conv.total_percent * 100)); WindScan_set_label (Str); g_free (Str); Str = NULL; } else if (VarFilewavconv.BoolSox == TRUE) { foo [ 0 ] = filewavconv_get_spinner(); foo [ 1 ] = '\0'; Str = g_strdup_printf (_("%s Traitement Sox: %d%%"), foo, (gint)(conv.total_percent * 100)); WindScan_set_label (Str); g_free (Str); Str = NULL; } conv.bool_percent_conv = FALSE; } if (VarFilewavconv.BoolMplayer == TRUE) { gchar foo [ 4 ]; gchar *Str = NULL; foo [ 0 ] = filewavconv_get_spinner(); foo [ 1 ] = '\0'; Str = g_strdup_printf (_("%s Traitement Mplayer: %d%%"), foo, (gint)(conv.total_percent * 100)); WindScan_set_label (Str); g_free (Str); Str = NULL; return (TRUE); } if (conv.bool_thread_conv == FALSE) { GList *list = NULL; CONV_FIC_WAV *PConvWav = NULL; DETAIL *detail = NULL; gtk_timeout_remove (conv.handler_timeout_conv); WindScan_close (); // SUPPRESSION DE LA STRUCTURE: DETAIL->CONV_FIC_WAV list = g_list_first (entetefile); while (list) { if (NULL != (detail = (DETAIL *)list->data)) { if (NULL != (PConvWav = detail->PConvWav)) { if (NULL != PConvWav->Path) { g_free (PConvWav->Path); PConvWav->Path = NULL; } if (NULL != PConvWav->TmpSrc) { g_free (PConvWav->TmpSrc); PConvWav->TmpSrc = NULL; } if (NULL != PConvWav->TmpDest) { g_free (PConvWav->TmpDest); PConvWav->TmpDest = NULL; } if (NULL != PConvWav->TmpMplayer) { g_free (PConvWav->TmpMplayer); PConvWav->TmpMplayer = NULL; } if (NULL != PConvWav->NameDest) { g_free (PConvWav->NameDest); PConvWav->NameDest = NULL; } g_free (PConvWav); PConvWav = detail->PConvWav = NULL; } } list = g_list_next (list); } // mise a jour des champs de 'EnteteWav.glist' FileWav_change_parameters (); // DELETTE TEMPORAY REP if (NULL != conv.TmpRep) { conv.TmpRep = libutils_remove_temporary_rep (conv.TmpRep); } if (FALSE == conv.bool_stop) { NotifySend_msg (_("XCFA: Conversions WAV TO WAV"), _("Ok"), conv.bool_stop); } else { NotifySend_msg (_("XCFA: Conversions WAV TO WAV"), _("Arret par l'utilisateur"), conv.bool_stop); } } return (TRUE); } // Initialisation des variables avant l'activation des threads d'extraction et de conversion // void filewavconv_set_flags_before (void) { GList *list = NULL; DETAIL *detail = NULL; gint NumFile = 0; INFO_WAV *info = NULL; CONV_FIC_WAV *PConvWav = NULL; // PRINT_FUNC_LF(); list = g_list_first (entetefile); while (!conv.bool_stop && list) { if (NULL != (detail = (DETAIL *)list->data)) { if (FILE_IS_WAV != detail->type_infosong_file_is) { list = g_list_next(list); continue; } info = (INFO_WAV *)detail->info; if (FALSE == info->BoolConv) { list = g_list_next(list); continue; } // CREATION STRUCTURE detail->PConvWav = (CONV_FIC_WAV *)g_malloc0 (sizeof (CONV_FIC_WAV)); PConvWav = detail->PConvWav; // Create temporary rep if (NULL == conv.TmpRep) { conv.TmpRep = libutils_create_temporary_rep (Config.PathnameTMP, PATH_TMP_XCFA_AUDIOFILEWAVCONV); } // Nouvelles: source et destination // $TMP/original PConvWav->TmpSrc = g_strdup_printf ("%s/%03d.wav", conv.TmpRep, NumFile ++); // $TMP/modifie PConvWav->TmpDest = g_strdup_printf ("%s/%03d.wav", conv.TmpRep, NumFile ++); // $TMP/ PConvWav->TmpMplayer = g_strdup_printf ("%s/%03d.wav", conv.TmpRep, NumFile ++); // Copie vers la destination PConvWav->NameDest = file_get_pathname_dest (detail, "wav"); if( TRUE == OptionsCommandLine.BoolVerboseMode ) { g_print ("fic->TmpSrc = %s\n", PConvWav->TmpSrc); g_print ("fic->TmpDest = %s\n", PConvWav->TmpDest); g_print ("fic->TmpMplayer = %s\n", PConvWav->TmpMplayer); g_print ("fic->NameDest = %s\n\n", PConvWav->NameDest); } // Rectification des parametres si incomprehensible par SOX if (*info->NewHertz == '\0') { glong value = atol (info->hertz); g_free (info->NewHertz); info->NewHertz = NULL; if (value < 0 || value > 44100) info->NewHertz = g_strdup ("44100"); else info->NewHertz = g_strdup (info->hertz); } if (*info->NewVoie == '\0') { glong value = atol (info->voie); g_free (info->NewVoie); info->NewVoie = NULL; if (value != '1' || value != '2' || value != '4') info->NewVoie = g_strdup ("2"); else info->NewVoie = g_strdup (info->voie); } if (*info->NewBits == '\0') { glong value = atol (info->bits); g_free (info->NewBits); info->NewBits = NULL; if (value != 8 || value != 16 || value != 32 || value != 64) info->NewBits = g_strdup ("16"); else info->NewBits = g_strdup (info->bits); } // Copie vers le dossier temporaire conv.total_convert ++; // Transformation avec MPLAYER et SOX if (TRUE == info->BoolConv) { conv.total_convert ++; conv.total_convert ++; } if (atoi (info->bits) != atoi (info->NewBits)) { conv.total_convert ++; conv.total_convert ++; } // Copie du dossier temporaire vers l'origine conv.total_convert ++; // g_print ("--> conv.total_convert = %d\n", conv.total_convert); } list = g_list_next (list); } } // // void filewavconv_apply (void) { pthread_t nmr_tid; // PRINT_FUNC_LF(); WindScan_open ("Conversions files WAV", WINDSCAN_PULSE); WindScan_set_label ("Conversions WAV TO WAV ..."); VarFilewavconv.PassMplayer = 0; conv_reset_struct (WindScan_close_request); filewavconv_set_flags_before (); conv.bool_thread_conv = TRUE; conv.handler_timeout_conv = gtk_timeout_add (50, filewavconv_timeout, 0); pthread_create (&nmr_tid, NULL ,(void *)filewavconv_thread, (void *)NULL); } xcfa-4.3.6/src/win_info.h0000644000175000017500000000176012122563437012147 00000000000000 /* * file : win_info.h * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifndef win_info_h #define win_info_h 1 void wininfo_create( GtkWidget *p_WindMain, gchar *title, ... ); #endif xcfa-4.3.6/src/replaygain.h0000644000175000017500000000211212122563437012462 00000000000000 /* * file : replaygain.h * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifndef replaygain_h #define replaygain_h 1 typedef enum { _CLEAR_REPLAYGAIN_ = 0, // _APPLY_REPLAYGAIN_ // } TYPE_REPLAYGAIN; void replaygain_action (TYPE_REPLAYGAIN type_replaygain); #endif xcfa-4.3.6/src/dragNdrop.c0000644000175000017500000001224712164176460012256 00000000000000 /* * file : dragNdrop.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "file.h" #include "fileselect.h" #include "poche.h" #include "split.h" #include "dragNdrop.h" /* *--------------------------------------------------------------------------- * VARIABLES *--------------------------------------------------------------------------- */ extern VAR_SPLIT VarSplit; enum { TARGET_STRING = 0, TARGET_URL, TARGET_ROOTWIN }; const GtkTargetEntry drag_types[] = { { "STRING", 0, TARGET_STRING }, { "text/uri-list", 0, TARGET_URL } }; gint n_drag_types = G_N_ELEMENTS (drag_types); /* *--------------------------------------------------------------------------- * FUNCTIONS *--------------------------------------------------------------------------- */ /* Cette fonction est appelle depuis 'file.c :: file_drag_data_received_file' et elle * extrait les noms de fichiers pour les injecter dans le 'GList EnteteFile.GList_file' * -- * entree : * GtkWidget *widget : L'adresse du widget destinataire * gchar *string : pointeur buffer de texte * retour : - */ void dragndrop_list_drag_data (GtkWidget *widget, gchar *string) { gboolean Bool_add_ok = FALSE; gchar *Src = NULL; gchar *Ptr = NULL; gchar *temp = NULL; GSList *List = NULL; // test for input if (widget != var_file.Adr_TreeView && widget != var_file_wav.Adr_TreeView && widget != var_file_mp3ogg.Adr_TreeView && widget != var_file_tags.Adr_TreeView && widget != view.Adr_viewport_image_preview && widget != view.AdrDrawingarea && widget != VarSplit.AdrWidgetSpectre) { PRINT("ERREUR DRAG N DROP : WIDGET(dragndrop_list_drag_data) INCONNU --> RETOUR\n"); return; } // ALLOC CHAINE Src = dragndrop_xcfa_convert_utf8 (string); // POINTEUR SUR LA CHAINE TRADUITE Ptr = Src; while (*Ptr) { if (NULL != (temp = strchr (Ptr, '\n'))) { if (*(temp - 1) == '\r') *(temp - 1) = '\0'; *temp = '\0'; } // if (widget == VarSplit.AdrWidgetSpectre) // g_print("PTR = %s\n", Ptr); List = g_slist_append (List, Ptr); Bool_add_ok = TRUE; if (NULL == temp) break; Ptr = temp + 1; } if (TRUE == Bool_add_ok) { if (widget == var_file.Adr_TreeView) { fileanalyze_add_file_to_treeview (_PATH_LOAD_FILE_ALL_, List); } else if (widget == var_file_wav.Adr_TreeView) { fileanalyze_add_file_to_treeview (_PATH_LOAD_FILE_WAV_, List); } else if (widget == var_file_mp3ogg.Adr_TreeView) { fileanalyze_add_file_to_treeview (_PATH_LOAD_FILE_MP3OGG_, List); } else if (widget == var_file_tags.Adr_TreeView) { fileanalyze_add_file_to_treeview (_PATH_LOAD_FILE_TAGS_, List); } else if (widget == VarSplit.AdrWidgetSpectre) { split_load_from_dnd (List); } else if( widget == view.Adr_viewport_image_preview ) { pochedir_add_img_file (List); } else if( widget == view.AdrDrawingarea ) { poche_add_img_file_to_Drawingarea (List); } g_slist_free (List); List = NULL; } // LIBERATION CHAINE g_free (Src); Src = Ptr = NULL; } /* Lors d'un drag and drop, les caracteres sont curieusements transformés en CAR utf-8, * par exemple : c8 apparait comme 'C' et '8' dans le texte, il faut alors le chercher et * le retransformer en numerique decimale puis le reinjecter dans le buffer * -- * entree : * gchar *Texte : pointeur buffer de texte * retour : - * gchar * : pointeur nouveau buffer de texte */ gchar *dragndrop_xcfa_convert_utf8 (gchar *Texte) { gchar *Ptr = NULL; gchar *New_Str = NULL; gchar *Ptr_Txt = NULL; gchar Str [ 8 ]; size_t Len; /* allocate new string */ Len = strlen (Texte); New_Str = g_strnfill (Len * 3, '\0'); Ptr = New_Str; /* delette this 'file://' in old string */ while (NULL != (Ptr_Txt = strstr (Texte, "file://"))) { strcpy (Ptr_Txt, Ptr_Txt + 7); } Ptr_Txt = Texte; Str [ 0 ] = '0'; Str [ 1 ] = 'x'; Str [ 2 ] = '\0'; Str [ 3 ] = '\0'; Str [ 4 ] = '\0'; Str [ 5 ] = '\0'; while (*Ptr_Txt) { if (*Ptr_Txt == '%') { Ptr_Txt ++; Str [ 2 ] = *Ptr_Txt ++; Str [ 3 ] = *Ptr_Txt ++; *Ptr = (gint)libutils_hexa_to_int (Str); Ptr ++; } else { *Ptr ++ = *Ptr_Txt ++; } } return (New_Str); } xcfa-4.3.6/src/tags_shn.c0000644000175000017500000000460312122563465012140 00000000000000 /* * file : tags_shn.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #include #include #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "tags.h" #include #include "get_info.h" /* *--------------------------------------------------------------------------- * REMOVE HEADER *--------------------------------------------------------------------------- */ INFO_SHN *tagsshn_remove_info (INFO_SHN *info) { if (info) { if (NULL != info->time) { g_free (info->time); info->time = NULL; } if (NULL != info->size) { g_free (info->size);info->size = NULL; } info->tags = (TAGS *)tags_remove (info->tags); g_free (info); info = NULL; } return ((INFO_SHN *)NULL); } /* *--------------------------------------------------------------------------- * GET HEADER *--------------------------------------------------------------------------- */ INFO_SHN *tagsshn_get_info (DETAIL *detail) { INFO_SHN *ptrinfo = NULL; SHNTAG *ShnTag = GetInfo_shntool (detail->namefile); ptrinfo = (INFO_SHN *)g_malloc0 (sizeof (INFO_SHN)); if (ptrinfo == NULL) return (NULL); ptrinfo->tags = (TAGS *)tags_alloc (FALSE); ptrinfo->SecTime = ShnTag->SecTime; ptrinfo->time = g_strdup (ShnTag->time); ptrinfo->size = g_strdup (ShnTag->size); ShnTag = GetInfo_free_shntool (ShnTag); return ((INFO_SHN *)ptrinfo); } xcfa-4.3.6/src/options_wavpack.c0000644000175000017500000002452312122563465013544 00000000000000 /* * file : options_wavpack.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "configuser.h" #include "options.h" static gchar *str_val_preset_compression[] = { "", "-f", "-h", "-hh" }; static gchar *str_val_preset_sound[] = { "-j0", "-j1" }; static gchar *str_val_preset_hybride[] = {"", "-b320", "-b384", "-b448"}; static gchar *str_val_preset_md5[] = {"", "-m"}; static gchar *str_val_preset_encoding[] = {"", "-x1", "-x2", "-x3", "-x4", "-x5", "-x6"}; static gchar *str_val_preset_correction[] = {"", "-c"}; static gchar *str_val_preset_maximum_compression[] = {"", "-cc"}; gchar *optionsWavpack_get_wavpack_compression (void) { return ( (gchar *)str_val_preset_compression[ gtk_combo_box_get_active (var_options.Adr_Widget_wavpack) ]); } gchar *optionsWavpack_get_wavpack_sound (void) { return ( (gchar *)str_val_preset_sound[ gtk_combo_box_get_active (var_options.Adr_Widget_wavpack_sound) ]); } gchar *optionsWavpac_get_wavpack_hybride (void) { if (var_options.Adr_Widget_wavpack_mode_hybride) return ( (gchar *)str_val_preset_hybride[ gtk_combo_box_get_active (var_options.Adr_Widget_wavpack_mode_hybride) ]); return (""); } gchar *optionsWavpack_get_wavpack_signature_md5 (void) { return ( (gchar *)str_val_preset_md5[ gtk_combo_box_get_active (var_options.Adr_Widget_wavpack_signature_md5) ]); } gchar *optionsWavpack_get_wavpack_extra_encoding (void) { return ( (gchar *)str_val_preset_encoding[ gtk_combo_box_get_active (var_options.Adr_Widget_wavpack_extra_encoding) ]); } gchar *optionsWavpack_get_wavpack_correction_file (void) { return ( (gchar *)str_val_preset_correction[ gtk_combo_box_get_active (var_options.Adr_Widget_wavpack_correction_file) ]); } gchar *optionsWavpack_get_wavpack_maximum_compression (void) { return ( (gchar *)str_val_preset_maximum_compression[ gtk_combo_box_get_active (var_options.Adr_Widget_wavpack_maximum_compression) ]); } void on_combobox_wavpack_realize (GtkWidget *widget, gpointer user_data) { var_options.Adr_Widget_wavpack = GTK_COMBO_BOX (widget); libcombo_alloc (GTK_COMBO_BOX (widget)); /* -f Mode rapide de compression -h Ume bonne qualite de compression dans tous les modes mais plus lent -hh La meilleure qualite de compression dans tous les modes mais la plus lente */ gtk_combo_box_append_text (GTK_COMBO_BOX (widget), _("Mode normal")); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), _("Mode rapide de compression")); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), _("Bonne qualite de compression")); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), _("Meilleure qualite de compression")); gtk_combo_box_set_active (GTK_COMBO_BOX (widget), Config.CompressionWavpack); } void on_combobox_wavpack_changed (GtkComboBox *combobox, gpointer user_data) { if (NULL != var_options.Adr_Widget_wavpack) { gint ind; if ((ind = gtk_combo_box_get_active (GTK_COMBO_BOX (var_options.Adr_Widget_wavpack))) >= 0) Config.CompressionWavpack = ind; OptionsInternal_set_datas_interne (COLOR_WAVPACK_COMPRESSION, var_options.Adr_label_wavpack_wv, WAVPACK_WAV_TO_WAVPACK); } } void on_combobox_wavpack_sound_realize (GtkWidget *widget, gpointer user_data) { var_options.Adr_Widget_wavpack_sound = GTK_COMBO_BOX (widget); libcombo_alloc (GTK_COMBO_BOX (widget)); /* -jn Joint-stereo override (0 = left/right, 1 = mid/side) ---------------------- -j0 Joint-stereo override (0 = left/right) -j1 Joint-stereo override (1 = mid/side) */ gtk_combo_box_append_text (GTK_COMBO_BOX (widget), _("stereo left/right")); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), _("stereo mid/side")); gtk_combo_box_set_active (GTK_COMBO_BOX (widget), Config.SoundWavpack); } void on_combobox_wavpack_sound_changed (GtkComboBox *combobox, gpointer user_data) { if (NULL != var_options.Adr_Widget_wavpack_sound) { gint ind; if ((ind = gtk_combo_box_get_active (GTK_COMBO_BOX (var_options.Adr_Widget_wavpack_sound))) >= 0) Config.SoundWavpack = ind; OptionsInternal_set_datas_interne (COLOR_WAVPACK_SOUND, var_options.Adr_label_wavpack_wv, WAVPACK_WAV_TO_WAVPACK); } } void on_combobox_wavpack_mode_hybride_realize (GtkWidget *widget, gpointer user_data) { libcombo_alloc (GTK_COMBO_BOX (widget)); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), _("Non")); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "320 kbit/s"); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "384 kbit/s"); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "448 kbit/s"); var_options.Adr_Widget_wavpack_mode_hybride = GTK_COMBO_BOX (widget); gtk_combo_box_set_active (GTK_COMBO_BOX (widget), Config.ModeHybrideWavpack); } void on_combobox_wavpack_mode_hybride_changed (GtkComboBox *combobox, gpointer user_data) { if (NULL != var_options.Adr_Widget_wavpack_mode_hybride) { gboolean Bool = gtk_combo_box_get_active (GTK_COMBO_BOX (var_options.Adr_Widget_wavpack_mode_hybride)) == 0 ? FALSE : TRUE; gint ind; if ((ind = gtk_combo_box_get_active (GTK_COMBO_BOX (var_options.Adr_Widget_wavpack_mode_hybride))) >= 0) Config.ModeHybrideWavpack = ind; if (var_options.Adr_Widget_wavpack_correction_file) gtk_widget_set_sensitive (GTK_WIDGET (GLADE_GET_OBJECT("combobox_wavpack_fichier_de_correction")), Bool); if (var_options.Adr_Widget_wavpack_maximum_compression) gtk_widget_set_sensitive (GTK_WIDGET (GLADE_GET_OBJECT("combobox_wavpack_compression_maximum")), Bool); OptionsInternal_set_datas_interne (COLOR_WAVPACK_MODE_HYBRIDE, var_options.Adr_label_wavpack_wv, WAVPACK_WAV_TO_WAVPACK); } } void on_combobox_wavpack_fichier_de_correction_realize (GtkWidget *widget, gpointer user_data) { var_options.Adr_Widget_wavpack_correction_file = GTK_COMBO_BOX (widget); libcombo_alloc (GTK_COMBO_BOX (widget)); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), _("Non")); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), _("Oui")); gtk_combo_box_set_active (GTK_COMBO_BOX (widget), Config.CorrectionFileWavpack); on_combobox_wavpack_mode_hybride_changed (NULL,NULL); } void on_combobox_wavpack_fichier_de_correction_changed (GtkComboBox *combobox, gpointer user_data) { if (NULL != var_options.Adr_Widget_wavpack_correction_file) { gint ind; if ((ind = gtk_combo_box_get_active (GTK_COMBO_BOX (var_options.Adr_Widget_wavpack_correction_file))) >= 0) Config.CorrectionFileWavpack = ind; OptionsInternal_set_datas_interne (COLOR_WAVPACK_FICHIER_CORRECTION, var_options.Adr_label_wavpack_wv, WAVPACK_WAV_TO_WAVPACK); } } void on_combobox_wavpack_compression_maximum_realize (GtkWidget *widget, gpointer user_data) { var_options.Adr_Widget_wavpack_maximum_compression = GTK_COMBO_BOX (widget); libcombo_alloc (GTK_COMBO_BOX (widget)); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), _("Non")); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), _("Oui")); gtk_combo_box_set_active (GTK_COMBO_BOX (widget), Config.CompressionMaximumWavpack); on_combobox_wavpack_mode_hybride_changed (NULL,NULL); } void on_combobox_wavpack_compression_maximum_changed (GtkComboBox *combobox, gpointer user_data) { if (NULL != var_options.Adr_Widget_wavpack_maximum_compression) { gint ind; if ((ind = gtk_combo_box_get_active (GTK_COMBO_BOX (var_options.Adr_Widget_wavpack_maximum_compression))) >= 0) Config.CompressionMaximumWavpack = ind; OptionsInternal_set_datas_interne (COLOR_WAVPACK_COMPRESSION_MAXIMUM, var_options.Adr_label_wavpack_wv, WAVPACK_WAV_TO_WAVPACK); } } void on_combobox_wavpack_signature_md5_realize (GtkWidget *widget, gpointer user_data) { var_options.Adr_Widget_wavpack_signature_md5 = GTK_COMBO_BOX (widget); libcombo_alloc (GTK_COMBO_BOX (widget)); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), _("Non")); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), _("Oui")); gtk_combo_box_set_active (GTK_COMBO_BOX (widget), Config.SignatureMd5Wavpack); } void on_combobox_wavpack_signature_md5_changed (GtkComboBox *combobox, gpointer user_data) { if (NULL != var_options.Adr_Widget_wavpack_signature_md5) { gint ind; if ((ind = gtk_combo_box_get_active (GTK_COMBO_BOX (var_options.Adr_Widget_wavpack_signature_md5))) >= 0) Config.SignatureMd5Wavpack = ind; OptionsInternal_set_datas_interne (COLOR_WAVPACK_SIGNATURE_MD5, var_options.Adr_label_wavpack_wv, WAVPACK_WAV_TO_WAVPACK); } } void on_combobox_wavpack_extra_encoding_realize (GtkWidget *widget, gpointer user_data) { var_options.Adr_Widget_wavpack_extra_encoding = GTK_COMBO_BOX (widget); libcombo_alloc (GTK_COMBO_BOX (widget)); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), _("Non")); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), _("1 (fast / rapide)")); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "2"); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "3"); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "4"); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "5"); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), _("6 (very slow / tres lent)")); gtk_combo_box_set_active (GTK_COMBO_BOX (widget), Config.ExtraEncodingWavpack); } void on_combobox_wavpack_extra_encoding_changed (GtkComboBox *combobox, gpointer user_data) { if (NULL != var_options.Adr_Widget_wavpack_extra_encoding) { gint ind; if ((ind = gtk_combo_box_get_active (GTK_COMBO_BOX (var_options.Adr_Widget_wavpack_extra_encoding))) >= 0) Config.ExtraEncodingWavpack = ind; OptionsInternal_set_datas_interne (COLOR_WAVPACK_EXTRA_ENCODING, var_options.Adr_label_wavpack_wv, WAVPACK_WAV_TO_WAVPACK); } } xcfa-4.3.6/src/options_internal.c0000644000175000017500000004555212122563465013731 00000000000000 /* * file : options_internal.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "configuser.h" #include "conv.h" #include "options.h" /* StringExpanderLame StringExpanderOggenc StringExpanderFlac StringExpanderFaac StringExpanderMppenc StringExpanderMac StringExpanderWavpack BoolArtistTag BoolTitleTag BoolAlbumTag BoolNumerateTag BoolGenreTag BoolYearTag BoolCommentTag */ // // GList *OptionsInternal_add_options_for_visual (GList *p_list, gboolean p_bool_color, gchar *p_str) { if (p_bool_color) { p_list = g_list_append (p_list, g_strdup_printf ("%s", p_str)); } else { p_list = g_list_append (p_list, g_strdup (p_str)); } return ((GList *)p_list); } // RECUPERATION DES PARAMETRES INTERNES POUR VISUALISATION DEPUIS LA LIGNE POUR EXPERT // GString *OptionsInternal_get_options_for_visual (TYPE_CONV type_conv) { GList *New = NULL; GList *list = NULL; GString *gstr = NULL; gchar *ptr = NULL; gchar *str = NULL; if (type_conv == LAME_WAV_TO_MP3) { gchar **Larrbuf = NULL; gint i; New = g_list_append (New, g_strdup ("-h")); New = g_list_append (New, g_strdup ("--nohist")); /* LES OPTIONS CHANGEES EN COULEUR IDEE DE ROMAIN -> alteo_gange --------------------------------------------------------------------------------------------- Xcfa sur le web New = g_list_append (New, g_strdup ("--noreplaygain")); */ New = g_list_append (New, g_strdup ("--noreplaygain")); if (*optionsLame_get_str_val_mode_lame () != '\0') { Larrbuf = g_strsplit (optionsLame_get_str_val_mode_lame (), " ", 0); for (i=0; Larrbuf[i]; i++) { New = OptionsInternal_add_options_for_visual (New, var_options.ColorLineCommand == COLOR_LAME_MODE, Larrbuf[i]); } g_strfreev(Larrbuf); } Larrbuf = g_strsplit (optionsLame_get_str_val_bitrate_abr_vbr_lame (), " ", 0); for (i=0; Larrbuf[i]; i++) { New = OptionsInternal_add_options_for_visual (New, var_options.ColorLineCommand == COLOR_LAME_DEBIT, Larrbuf[i]); } g_strfreev(Larrbuf); if (Config.BoolArtistTag || Config.BoolTitleTag || Config.BoolAlbumTag || Config.BoolNumerateTag || Config.BoolGenreTag || Config.BoolYearTag || Config.BoolCommentTag) { New = OptionsInternal_add_options_for_visual (New, FALSE, "--add-id3v2"); } if (Config.BoolArtistTag) { New = OptionsInternal_add_options_for_visual (New, var_options.ColorLineCommand == COLOR_TAG_ARTIST, "--ta %a"); } if (Config.BoolTitleTag) { New = OptionsInternal_add_options_for_visual (New, var_options.ColorLineCommand == COLOR_TAG_TITLE, "--tt %t"); } if (Config.BoolAlbumTag) { New = OptionsInternal_add_options_for_visual (New, var_options.ColorLineCommand == COLOR_TAG_ALBUM, "--tl %l"); } if (Config.BoolNumerateTag) { New = OptionsInternal_add_options_for_visual (New, var_options.ColorLineCommand == COLOR_TAG_NUMERATE, "--tn %N"); } if (Config.BoolGenreTag) { New = OptionsInternal_add_options_for_visual (New, var_options.ColorLineCommand == COLOR_TAG_GENRE, "--tg %G"); } if (Config.BoolYearTag) { New = OptionsInternal_add_options_for_visual (New, var_options.ColorLineCommand == COLOR_TAG_YEAR, "--ty %d"); } if (Config.BoolCommentTag) { New = OptionsInternal_add_options_for_visual (New, var_options.ColorLineCommand == COLOR_TAG_COMMENT, "--tc %c"); } } else if (type_conv == OGGENC_WAV_TO_OGG || type_conv == OGGENC_FLAC_TO_OGG) { New = OptionsInternal_add_options_for_visual (New, var_options.ColorLineCommand == COLOR_OGGENC_DEBIT, optionsOggenc_get_val_bitrate_oggenc ()); if (optionsOggenc_get_bool_managed_oggenc () == TRUE) { New = OptionsInternal_add_options_for_visual (New, var_options.ColorLineCommand == COLOR_OGGENC_MANAGED, "--managed"); } if (optionsOggenc_get_bool_downmix_oggenc () == TRUE) { New = OptionsInternal_add_options_for_visual (New, var_options.ColorLineCommand == COLOR_OGGENC_DOWNMIX, "--downmix"); } if (Config.BoolArtistTag) { New = OptionsInternal_add_options_for_visual (New, var_options.ColorLineCommand == COLOR_TAG_ARTIST, "-a %a"); } if (Config.BoolTitleTag) { New = OptionsInternal_add_options_for_visual (New, var_options.ColorLineCommand == COLOR_TAG_TITLE, "-t %t"); } if (Config.BoolAlbumTag) { New = OptionsInternal_add_options_for_visual (New, var_options.ColorLineCommand == COLOR_TAG_ALBUM, "-l %l"); } if (Config.BoolNumerateTag) { New = OptionsInternal_add_options_for_visual (New, var_options.ColorLineCommand == COLOR_TAG_NUMERATE, "-N %N"); } if (Config.BoolGenreTag) { New = OptionsInternal_add_options_for_visual (New, var_options.ColorLineCommand == COLOR_TAG_GENRE, "-G %G"); } if (Config.BoolYearTag) { New = OptionsInternal_add_options_for_visual (New, var_options.ColorLineCommand == COLOR_TAG_YEAR, "--date %d"); } if (Config.BoolCommentTag) { New = OptionsInternal_add_options_for_visual (New, var_options.ColorLineCommand == COLOR_TAG_COMMENT, "-c %c"); } } else if (type_conv == FLAC_WAV_TO_FLAC) { New = OptionsInternal_add_options_for_visual (New, var_options.ColorLineCommand == COLOR_FLAC_TAUX_COMPRESSION, optionsFlac_get_compression_level_flac ()); if (Config.BoolArtistTag) { New = OptionsInternal_add_options_for_visual (New, var_options.ColorLineCommand == COLOR_TAG_ARTIST, "-T artist=%a"); } if (Config.BoolTitleTag) { New = OptionsInternal_add_options_for_visual (New, var_options.ColorLineCommand == COLOR_TAG_TITLE, "-T title=%t"); } if (Config.BoolAlbumTag) { New = OptionsInternal_add_options_for_visual (New, var_options.ColorLineCommand == COLOR_TAG_ALBUM, "-T album=%l"); } if (Config.BoolNumerateTag) { New = OptionsInternal_add_options_for_visual (New, var_options.ColorLineCommand == COLOR_TAG_NUMERATE, "-T tracknumber=%N"); } if (Config.BoolGenreTag) { New = OptionsInternal_add_options_for_visual (New, var_options.ColorLineCommand == COLOR_TAG_GENRE, "-T genre=%G"); } if (Config.BoolYearTag) { New = OptionsInternal_add_options_for_visual (New, var_options.ColorLineCommand == COLOR_TAG_YEAR, "-T date=%d"); } if (Config.BoolCommentTag) { New = OptionsInternal_add_options_for_visual (New, var_options.ColorLineCommand == COLOR_TAG_COMMENT, "-T Description=%c"); } } else if (type_conv == FAAC_WAV_TO_M4A) { New = OptionsInternal_add_options_for_visual (New, var_options.ColorLineCommand == COLOR_FAAC_CONTENEUR, OptionsFaac_get_faac_conteneur ()); New = OptionsInternal_add_options_for_visual (New, var_options.ColorLineCommand == COLOR_FAAC_SET_CHOICE_VBR_ABR, OptionsFaac_get_faac_set_choice_vbr_abr ()); if (Config.BoolArtistTag) { New = OptionsInternal_add_options_for_visual (New, var_options.ColorLineCommand == COLOR_TAG_ARTIST, "--artist %a"); } if (Config.BoolTitleTag) { New = OptionsInternal_add_options_for_visual (New, var_options.ColorLineCommand == COLOR_TAG_TITLE, "--title %t"); } if (Config.BoolAlbumTag) { New = OptionsInternal_add_options_for_visual (New, var_options.ColorLineCommand == COLOR_TAG_ALBUM, "--album %l"); } if (Config.BoolGenreTag) { New = OptionsInternal_add_options_for_visual (New, var_options.ColorLineCommand == COLOR_TAG_GENRE, "--genre %G"); } if (Config.BoolYearTag) { New = OptionsInternal_add_options_for_visual (New, var_options.ColorLineCommand == COLOR_TAG_YEAR, "--year %d"); } if (Config.BoolCommentTag) { New = OptionsInternal_add_options_for_visual (New, var_options.ColorLineCommand == COLOR_TAG_COMMENT, "--comment %c"); } } else if (type_conv == MPPENC_WAV_TO_MPC) { New = g_list_append (New, g_strdup ("--verbose")); New = g_list_append (New, g_strdup ("--overwrite")); New = OptionsInternal_add_options_for_visual (New, var_options.ColorLineCommand == COLOR_MUSEPACK_QUALITE, optionsMusepack_get_quality_mppenc ()); if (Config.BoolArtistTag) { New = OptionsInternal_add_options_for_visual (New, var_options.ColorLineCommand == COLOR_TAG_ARTIST, "--artist %a"); } if (Config.BoolTitleTag) { New = OptionsInternal_add_options_for_visual (New, var_options.ColorLineCommand == COLOR_TAG_TITLE, "--title %t"); } if (Config.BoolAlbumTag) { New = OptionsInternal_add_options_for_visual (New, var_options.ColorLineCommand == COLOR_TAG_ALBUM, "--album %l"); } if (Config.BoolGenreTag) { New = OptionsInternal_add_options_for_visual (New, var_options.ColorLineCommand == COLOR_TAG_GENRE, "--genre %G"); } if (Config.BoolYearTag) { New = OptionsInternal_add_options_for_visual (New, var_options.ColorLineCommand == COLOR_TAG_YEAR, "--year %d"); } if (Config.BoolNumerateTag) { New = OptionsInternal_add_options_for_visual (New, var_options.ColorLineCommand == COLOR_TAG_NUMERATE, "--track %N"); } if (Config.BoolCommentTag) { New = OptionsInternal_add_options_for_visual (New, var_options.ColorLineCommand == COLOR_TAG_COMMENT, "--comment %c"); } } else if (type_conv == MAC_WAV_TO_APE || type_conv == MAC_APE_TO_WAV) { New = OptionsInternal_add_options_for_visual (New, var_options.ColorLineCommand == COLOR_MAC_QUALITE, optionsApe_get_compression_level_ape ()); } else if (type_conv == WAVPACK_WAV_TO_WAVPACK) { New = g_list_append (New, g_strdup ("-y")); New = OptionsInternal_add_options_for_visual (New, var_options.ColorLineCommand == COLOR_WAVPACK_COMPRESSION, optionsWavpack_get_wavpack_compression ()); New = OptionsInternal_add_options_for_visual (New, var_options.ColorLineCommand == COLOR_WAVPACK_SOUND, optionsWavpack_get_wavpack_sound ()); if (*optionsWavpac_get_wavpack_hybride () != '\0') { New = OptionsInternal_add_options_for_visual (New, var_options.ColorLineCommand == COLOR_WAVPACK_MODE_HYBRIDE, optionsWavpac_get_wavpack_hybride ()); if (*optionsWavpack_get_wavpack_correction_file () != '\0') { New = OptionsInternal_add_options_for_visual (New, var_options.ColorLineCommand == COLOR_WAVPACK_FICHIER_CORRECTION, optionsWavpack_get_wavpack_correction_file ()); } if (*optionsWavpack_get_wavpack_maximum_compression () != '\0') { New = OptionsInternal_add_options_for_visual (New, var_options.ColorLineCommand == COLOR_WAVPACK_COMPRESSION_MAXIMUM, optionsWavpack_get_wavpack_maximum_compression ()); } } if (*optionsWavpack_get_wavpack_signature_md5 () != '\0') { New = OptionsInternal_add_options_for_visual (New, var_options.ColorLineCommand == COLOR_WAVPACK_SIGNATURE_MD5, optionsWavpack_get_wavpack_signature_md5 ()); } if (*optionsWavpack_get_wavpack_extra_encoding () != '\0') { New = OptionsInternal_add_options_for_visual (New, var_options.ColorLineCommand == COLOR_WAVPACK_EXTRA_ENCODING, optionsWavpack_get_wavpack_extra_encoding ()); } if (Config.BoolArtistTag) { New = OptionsInternal_add_options_for_visual (New, var_options.ColorLineCommand == COLOR_TAG_ARTIST, "-w Artist=%a"); } if (Config.BoolTitleTag) { New = OptionsInternal_add_options_for_visual (New, var_options.ColorLineCommand == COLOR_TAG_TITLE, "-w Title=%t"); } if (Config.BoolAlbumTag) { New = OptionsInternal_add_options_for_visual (New, var_options.ColorLineCommand == COLOR_TAG_ALBUM, "-w Album=%l"); } if (Config.BoolGenreTag) { New = OptionsInternal_add_options_for_visual (New, var_options.ColorLineCommand == COLOR_TAG_GENRE, "-w Genre=%G"); } if (Config.BoolYearTag) { New = OptionsInternal_add_options_for_visual (New, var_options.ColorLineCommand == COLOR_TAG_YEAR, "-w Year=%d"); } if (Config.BoolNumerateTag) { New = OptionsInternal_add_options_for_visual (New, var_options.ColorLineCommand == COLOR_TAG_NUMERATE, "-w Track=%N"); } if (Config.BoolCommentTag) { New = OptionsInternal_add_options_for_visual (New, var_options.ColorLineCommand == COLOR_TAG_COMMENT, "-w Comment=%c"); } } /* Construction du GSTRING */ list = g_list_first (New); if (list) { gstr = g_string_new (NULL); while (list) { if (NULL != (ptr = (gchar*)list->data)) { g_string_append_printf (gstr, "%s ", ptr); } list = g_list_next(list); } } // SUPPRESSION DES ' ' for (ptr = gstr->str; *ptr == ' '; ptr ++); str = g_strdup (ptr); g_string_free (gstr, TRUE); gstr = NULL; gstr = g_string_new (NULL); g_string_append_printf (gstr, "%s", str); g_free (str); str = NULL; /* Suppression du GLIST */ list = g_list_first (New); while (list) { if (NULL != (ptr = (gchar*)list->data)) { g_free (ptr); ptr = list->data = NULL; } list = g_list_next(list); } g_list_free (New); New = NULL; return ((GString *)gstr); } // CONSTRUCTION DES OPTIONS INTERNES // void OptionsInternal_set_datas_interne (COLOR_LINE_COMMAND ColorLineCommand, GtkWidget *widget, TYPE_CONV type_conv) { GString *gstr = NULL; if (NULL == widget) return; if (NULL == var_options.Adr_Widget_Oggenc_bitrate) return; if (NULL == var_options.Adr_Widget_Lame_Mode) return; if (NULL == var_options.Adr_Widget_Lame_abr_cbr_vbr) return; if (NULL == var_options.Adr_Widget_Lame_bitrate) return; gtk_label_set_markup (GTK_LABEL (widget), ""); if (var_options.ColorLineCommand != COLOR_INIT) { var_options.ColorLineCommand = ColorLineCommand; } if ((gstr = OptionsInternal_get_options_for_visual (type_conv))) { gchar *str = g_strdup_printf ("%s", gstr->str); gtk_label_set_use_markup (GTK_LABEL (widget), TRUE); gtk_label_set_justify (GTK_LABEL (widget), GTK_JUSTIFY_LEFT); gtk_label_set_markup (GTK_LABEL (widget), str); gtk_widget_show (widget); g_string_free (gstr, TRUE); g_free (str); str = NULL; } var_options.ColorLineCommand = COLOR_NONE; } // RECUPERATION OPTIONS INTERNES MODIFIEE PAR L UTILISATEUR // void on_entry_op_internal_changed (GtkEditable *editable, gpointer user_data) { if (GTK_EDITABLE (editable) == GTK_EDITABLE (var_options.Adr_entry_flac_flac)) { g_free (Config.StringExpanderFlac); Config.StringExpanderFlac = NULL; Config.StringExpanderFlac = g_strdup ((gchar *)gtk_entry_get_text (GTK_ENTRY(editable))); } else if (GTK_EDITABLE (editable) == GTK_EDITABLE (var_options.Adr_entry_lame_mp3)) { g_free (Config.StringExpanderLame); Config.StringExpanderLame = NULL; Config.StringExpanderLame = g_strdup ((gchar *)gtk_entry_get_text (GTK_ENTRY(editable))); } else if (GTK_EDITABLE (editable) == GTK_EDITABLE (var_options.Adr_entry_oggenc_ogg)) { g_free (Config.StringExpanderOggenc); Config.StringExpanderOggenc = NULL; Config.StringExpanderOggenc = g_strdup ((gchar *)gtk_entry_get_text (GTK_ENTRY(editable))); } else if (GTK_EDITABLE (editable) == GTK_EDITABLE (var_options.Adr_entry_faac_m4a)) { g_free (Config.StringExpanderFaac); Config.StringExpanderFaac = NULL; Config.StringExpanderFaac = g_strdup ((gchar *)gtk_entry_get_text (GTK_ENTRY(editable))); } else if (GTK_EDITABLE (editable) == GTK_EDITABLE (var_options.Adr_entry_musepack_mpc)) { g_free (Config.StringExpanderMppenc); Config.StringExpanderMppenc = NULL; Config.StringExpanderMppenc = g_strdup ((gchar *)gtk_entry_get_text (GTK_ENTRY(editable))); } else if (GTK_EDITABLE (editable) == GTK_EDITABLE (var_options.Adr_entry_mac_ape)) { g_free (Config.StringExpanderMac); Config.StringExpanderMac = NULL; Config.StringExpanderMac = g_strdup ((gchar *)gtk_entry_get_text (GTK_ENTRY(editable))); } else if (GTK_EDITABLE (editable) == GTK_EDITABLE (var_options.Adr_entry_wavpack_wv)) { g_free (Config.StringExpanderWavpack); Config.StringExpanderWavpack = NULL; Config.StringExpanderWavpack = g_strdup ((gchar *)gtk_entry_get_text (GTK_ENTRY(editable))); } } // INIT // void on_entry_lame_mp3_realize (GtkWidget *widget, gpointer user_data) { var_options.Adr_entry_lame_mp3 = widget; if (Config.StringExpanderLame) gtk_entry_set_text (GTK_ENTRY(var_options.Adr_entry_lame_mp3), Config.StringExpanderLame); } void on_label_lame_mp3_realize (GtkWidget *widget, gpointer user_data) { var_options.Adr_label_lame_mp3 = widget; } void on_entry_oggenc_ogg_realize (GtkWidget *widget, gpointer user_data) { var_options.Adr_entry_oggenc_ogg = widget; if (Config.StringExpanderOggenc) gtk_entry_set_text (GTK_ENTRY(var_options.Adr_entry_oggenc_ogg), Config.StringExpanderOggenc); } void on_label_oggenc_ogg_realize (GtkWidget *widget, gpointer user_data) { var_options.Adr_label_oggenc_ogg = widget; } void on_entry_flac_flac_realize (GtkWidget *widget, gpointer user_data) { var_options.Adr_entry_flac_flac = widget; if (Config.StringExpanderFlac) gtk_entry_set_text (GTK_ENTRY(var_options.Adr_entry_flac_flac), Config.StringExpanderFlac); } void on_label_flac_flac_realize (GtkWidget *widget, gpointer user_data) { var_options.Adr_label_flac_flac = widget; } void on_entry_mac_ape_realize (GtkWidget *widget, gpointer user_data) { var_options.Adr_entry_mac_ape = widget; if (Config.StringExpanderMac) gtk_entry_set_text (GTK_ENTRY(var_options.Adr_entry_mac_ape), Config.StringExpanderMac); } void on_label_mac_ape_realize (GtkWidget *widget, gpointer user_data) { var_options.Adr_label_mac_ape = widget; } void on_entry_wavpack_wv_realize (GtkWidget *widget, gpointer user_data) { var_options.Adr_entry_wavpack_wv = widget; if (Config.StringExpanderWavpack) gtk_entry_set_text (GTK_ENTRY(var_options.Adr_entry_wavpack_wv), Config.StringExpanderWavpack); } void on_label_wavpack_wv_realize (GtkWidget *widget, gpointer user_data) { var_options.Adr_label_wavpack_wv = widget; } void on_entry_musepack_mpc_realize (GtkWidget *widget, gpointer user_data) { var_options.Adr_entry_musepack_mpc = widget; if (Config.StringExpanderMppenc) gtk_entry_set_text (GTK_ENTRY(var_options.Adr_entry_musepack_mpc), Config.StringExpanderMppenc); } void on_label_musepack_mpc_realize (GtkWidget *widget, gpointer user_data) { var_options.Adr_label_musepack_mpc = widget; } void on_entry_faac_m4a_realize (GtkWidget *widget, gpointer user_data) { var_options.Adr_entry_faac_m4a = widget; if (Config.StringExpanderFaac) gtk_entry_set_text (GTK_ENTRY(var_options.Adr_entry_faac_m4a), Config.StringExpanderFaac); } void on_label_faac_m4a_realize (GtkWidget *widget, gpointer user_data) { var_options.Adr_label_faac_m4a = widget; } xcfa-4.3.6/src/options_mac.c0000644000175000017500000000501512122563465012643 00000000000000 /* * file : options_mac.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "configuser.h" #include "options.h" static gchar *CompLevel[] = {"-c1000","-c2000","-c3000","-c4000","-c5000",}; gchar *optionsApe_get_compression_level_ape (void) { return ((gchar *)CompLevel [ gtk_combo_box_get_active ( GTK_COMBO_BOX (var_options.Adr_Widget_ape_compression)) ]); } void on_combobox_ape_compression_realize (GtkWidget *widget, gpointer user_data) { var_options.Adr_Widget_ape_compression = GTK_COMBO_BOX (widget); libcombo_alloc (GTK_COMBO_BOX (widget)); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "Compress (fast): '-c1000'"); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "Compress (normal): '-c2000'"); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "Compress (high): '-c3000'"); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "Compress (extra high): '-c4000'"); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "Compress (insane): '-c5000'"); gtk_combo_box_set_active (GTK_COMBO_BOX (widget), Config.CompressionLevelApeMac); } void on_combobox_ape_compression_changed (GtkComboBox *combobox, gpointer user_data) { if (NULL != var_options.Adr_Widget_ape_compression) { gint ind; if ((ind = gtk_combo_box_get_active (GTK_COMBO_BOX (var_options.Adr_Widget_ape_compression))) >= 0) Config.CompressionLevelApeMac = ind; OptionsInternal_set_datas_interne (COLOR_MAC_QUALITE, var_options.Adr_label_mac_ape, MAC_WAV_TO_APE); } } xcfa-4.3.6/src/win_vte.c0000644000175000017500000000567712122563465012021 00000000000000/* * file : win_vte.h * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - Creation d'une base de programmation en langage C de type GNU avec les autotools * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . * * This module was inspired by GRIP * http://nostatic.org/grip/ */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #include #if defined(FILE_DEBIAN_VTE_H_IS_OK) #include #elif defined(FILE_ARCH_VTE_H_IS_OK) #include #elif defined(FILE_FW_VTE_H_IS_OK) #include #endif #include "global.h" #include "win_vte.h" typedef struct { GtkWidget *AdrWidget; } VAR_VTE; VAR_VTE VarVte = { NULL }; // // WRITE a line of output to a status window // void WinVte_window_write( gchar *msg ) { gchar *buf; gsize len; gint pos = 0; len = strlen( msg ); buf = (gchar *)g_malloc0(( len * 2 ) +1 ); while( *msg ) { if( 1 ) { if( *msg == '\n' ) { buf[pos++] = '\r'; buf[pos++] = '\n'; } else { buf[pos++]=*msg; } } msg++; } buf[pos] = '\0'; vte_terminal_feed( VTE_TERMINAL(VarVte.AdrWidget), buf, strlen( buf )); g_free( buf ); buf = NULL; } // PLACER DU TEXTE DANS LE TEXTVIEW // void WinVte_window_write_va( gchar *p_text, ... ) { va_list VaList; gchar *Ptr = NULL; if( NULL != VarVte.AdrWidget ) { WinVte_window_write( p_text ); va_start( VaList, p_text ); while( NULL != ( Ptr = va_arg( VaList, gchar * ))) { WinVte_window_write( Ptr ); } va_end( VaList ); } } // // VTE RESET // void WinVte_reset( void ) { if( NULL != VarVte.AdrWidget ) { // vte_terminal_reset( VteTerminal *terminal, gboolean full, gboolean clear_history); vte_terminal_reset( VTE_TERMINAL(VarVte.AdrWidget), TRUE, TRUE ); WinVte_window_write( "Init VTE is ok.\n" ); } } // // REALIZE VTE // void WinVte_realize( GtkWidget *widget ) { VarVte.AdrWidget = vte_terminal_new(); vte_terminal_set_encoding( VTE_TERMINAL( VarVte.AdrWidget ),"UTF-8" ); gtk_container_add (GTK_CONTAINER (widget), VarVte.AdrWidget ); gtk_widget_show_all( widget ); WinVte_window_write( "Init VTE is ok.\n" ); } // // REALIZE VTE ? // gboolean WinVte_is_ok( void ) { return( NULL != VarVte.AdrWidget ? TRUE : FALSE ); } xcfa-4.3.6/src/bacon.h0000644000175000017500000000326112122563437011417 00000000000000 /* * file : bacon.h * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * Code from : bacon-message-connection.h * Copyright (C) 2003 * By : Bastien Nocera * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifndef bacon_h #define bacon_h 1 typedef void (*BaconMessageReceivedFunc) (const char *message, gpointer user_data); typedef struct BaconMessageConnection BaconMessageConnection; BaconMessageConnection *bacon_message_connection_new( const char *prefix ); void bacon_message_connection_free( BaconMessageConnection *conn ); void bacon_message_connection_set_callback( BaconMessageConnection *conn, BaconMessageReceivedFunc func, gpointer user_data ); void bacon_message_connection_send( BaconMessageConnection *conn, GList *p_GListFile ); gboolean bacon_message_connection_get_is_server( BaconMessageConnection *conn ); guint bacon_utils_get_current_workspace( void ); #endif xcfa-4.3.6/src/tags_rm.c0000644000175000017500000000405012122563465011762 00000000000000 /* * file : tags_rm.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #include #include #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "tags.h" #include /* *--------------------------------------------------------------------------- * REMOVE HEADER *--------------------------------------------------------------------------- */ INFO_RM *tagsrm_remove_info (INFO_RM *info) { if (info) { info->tags = (TAGS *)tags_remove (info->tags); g_free (info); info = NULL; } return ((INFO_RM *)NULL); } /* *--------------------------------------------------------------------------- * GET HEADER *--------------------------------------------------------------------------- */ INFO_RM *tagsrm_get_info (DETAIL *detail) { INFO_RM *ptrinfo = NULL; ptrinfo = (INFO_RM *)g_malloc0 (sizeof (INFO_RM)); if (ptrinfo == NULL) return (NULL); ptrinfo->tags = (TAGS *)tags_alloc (FALSE); tags_set (detail->namefile, ptrinfo->tags); return ((INFO_RM *)ptrinfo); } xcfa-4.3.6/src/win_scan.c0000644000175000017500000001423112122563465012131 00000000000000 /* * file : win_scan.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "win_vte.h" #include "win_scan.h" typedef struct { GtkWidget *AdrWin; GtkWidget *AdrProgressBar; GtkWidget *AdrLabel; gboolean IsShow; guint HandlerTimeout; TYPE_PROGRESS TypeProgress; gboolean close_request; gboolean CloseByUser; } VAR_WINDSCAN; VAR_WINDSCAN VarWindScan = { NULL, NULL, NULL, FALSE, 0, WINDSCAN_PULSE, FALSE }; // // void on_label_windscan_realize (GtkWidget *widget, gpointer user_data) { VarWindScan.AdrLabel = widget; } // // void on_progressbar_windscan_realize (GtkWidget *widget, gpointer user_data) { VarWindScan.AdrProgressBar = widget; } // // void WindScan_quit (void) { if (TRUE == VarWindScan.IsShow) VarWindScan.close_request = TRUE; } // // gboolean on_WindScan_delete_event (GtkWidget *widget, GdkEvent *event, gpointer user_data) { VarWindScan.close_request = TRUE; return TRUE; } // // gboolean on_WindScan_destroy_event (GtkWidget *widget, GdkEvent *event, gpointer user_data) { VarWindScan.close_request = TRUE; return TRUE; } void on_button_cancel_windscan_clicked (GtkButton *button, gpointer user_data) { VarWindScan.close_request = TRUE; VarWindScan.CloseByUser = TRUE; } // // static gint WindScan_timeout (gpointer data) { if (TRUE == VarWindScan.close_request && TRUE == VarWindScan.IsShow) { VarWindScan.IsShow = FALSE; VarWindScan.close_request = FALSE; gtk_timeout_remove (VarWindScan.HandlerTimeout); gtk_widget_hide (VarWindScan.AdrWin); } else if (TRUE == VarWindScan.IsShow) { if (VarWindScan.TypeProgress == WINDSCAN_PULSE) { gtk_progress_bar_pulse (GTK_PROGRESS_BAR(VarWindScan.AdrProgressBar)); } } return (TRUE); } // // gboolean WindScan_open (gchar *title, TYPE_PROGRESS TypeProgress) { gboolean BoolIsShow = VarWindScan.IsShow; VarWindScan.CloseByUser = FALSE; VarWindScan.close_request = FALSE; if (TRUE == VarWindScan.IsShow) { gdk_window_raise (VarWindScan.AdrWin->window); } else { if (NULL == VarWindScan.AdrWin) { VarWindScan.AdrWin = GTK_WIDGET (GLADE_GET_OBJECT("WindScan")); gtk_builder_connect_signals (GtkXcfaProjet, NULL); } gtk_window_set_modal (GTK_WINDOW (VarWindScan.AdrWin), TRUE); libutils_set_default_icone_to_win (VarWindScan.AdrWin); gtk_window_set_transient_for( GTK_WINDOW(VarWindScan.AdrWin), GTK_WINDOW(WindMain) ); gtk_widget_show (VarWindScan.AdrWin); WindScan_hide_expander (); } VarWindScan.IsShow = TRUE; gtk_window_set_title (GTK_WINDOW (VarWindScan.AdrWin), title); if (VarWindScan.TypeProgress == WINDSCAN_PULSE) { gtk_progress_bar_set_ellipsize (GTK_PROGRESS_BAR (VarWindScan.AdrProgressBar), PANGO_ELLIPSIZE_START); gtk_progress_bar_set_pulse_step (GTK_PROGRESS_BAR (VarWindScan.AdrProgressBar), 0.1); gtk_progress_bar_pulse (GTK_PROGRESS_BAR (VarWindScan.AdrProgressBar)); gtk_progress_bar_set_text (GTK_PROGRESS_BAR (VarWindScan.AdrProgressBar), ""); } else { gtk_progress_bar_set_orientation (GTK_PROGRESS_BAR (VarWindScan.AdrProgressBar), GTK_PROGRESS_LEFT_TO_RIGHT); gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (VarWindScan.AdrProgressBar), 0.0); gtk_progress_bar_set_text (GTK_PROGRESS_BAR (VarWindScan.AdrProgressBar), _("Waiting ...")); } WindScan_show_cancel( TRUE ); VarWindScan.HandlerTimeout = gtk_timeout_add (100, WindScan_timeout, 0); return (BoolIsShow); } // // void WindScan_set_pulse (void) { VarWindScan.TypeProgress = WINDSCAN_PULSE; gtk_progress_bar_set_ellipsize (GTK_PROGRESS_BAR (VarWindScan.AdrProgressBar), PANGO_ELLIPSIZE_START); gtk_progress_bar_set_pulse_step (GTK_PROGRESS_BAR (VarWindScan.AdrProgressBar), 0.1); gtk_progress_bar_pulse (GTK_PROGRESS_BAR (VarWindScan.AdrProgressBar)); } // // void WindScan_set_progress (gchar *p_str, double p_etat) { VarWindScan.TypeProgress = WINDSCAN_PROGRESS; gtk_progress_bar_set_orientation (GTK_PROGRESS_BAR (VarWindScan.AdrProgressBar), GTK_PROGRESS_LEFT_TO_RIGHT); if (p_etat < 0.0) p_etat = 0.0; if (p_etat > 1.0) p_etat = 1.0; gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (VarWindScan.AdrProgressBar), p_etat); gtk_progress_bar_set_text (GTK_PROGRESS_BAR (VarWindScan.AdrProgressBar), p_str); } // // gboolean WindScan_close_request (void) { return (VarWindScan.CloseByUser); } // // void WindScan_close (void) { WindScan_quit (); } // // void WindScan_set_label_bar (gchar *p_str) { gtk_progress_bar_set_text (GTK_PROGRESS_BAR (VarWindScan.AdrProgressBar), p_str); } // // void WindScan_set_label (gchar *p_str) { gtk_label_set_justify (GTK_LABEL (VarWindScan.AdrLabel),GTK_JUSTIFY_LEFT); gtk_label_set_label (GTK_LABEL (VarWindScan.AdrLabel), p_str); } // // void WindScan_hide_expander (void) { gtk_widget_hide (GTK_WIDGET (GLADE_GET_OBJECT("expander_windscan"))); } // // void WindScan_show_expander (void) { gtk_widget_show (GTK_WIDGET (GLADE_GET_OBJECT("expander_windscan"))); gtk_expander_set_expanded (GTK_EXPANDER (GLADE_GET_OBJECT("expander_windscan")), TRUE); } // // void WindScan_show_cancel( gboolean p_bool_show ) { gtk_widget_set_sensitive( GTK_WIDGET( GLADE_GET_OBJECT( "button_cancel_windscan" )), p_bool_show ); } // // void on_scrolledwindow_windscan_realize( GtkWidget *widget, gpointer user_data ) { WinVte_realize( widget ); } xcfa-4.3.6/src/normalise.h0000644000175000017500000000200012122563437012314 00000000000000 /* * file : normalise.h * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifndef normalise_h #define normalise_h 1 gboolean normalise_is_individuel (void); void normalise_action (void); #endif xcfa-4.3.6/src/Makefile.in0000644000175000017500000060154212224542373012236 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ bin_PROGRAMS = xcfa$(EXEEXT) subdir = src DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__installdirs = "$(DESTDIR)$(bindir)" PROGRAMS = $(bin_PROGRAMS) am_xcfa_OBJECTS = xcfa-main.$(OBJEXT) xcfa-alsa_audio.$(OBJEXT) \ xcfa-alsa_play.$(OBJEXT) xcfa-bacon.$(OBJEXT) \ xcfa-cd_audio.$(OBJEXT) xcfa-cd_audio_extract.$(OBJEXT) \ xcfa-cd_audio_toc.$(OBJEXT) xcfa-cd_cue.$(OBJEXT) \ xcfa-cd_expander.$(OBJEXT) xcfa-cd_normalise.$(OBJEXT) \ xcfa-cd_curl.$(OBJEXT) xcfa-configuser.$(OBJEXT) \ xcfa-conv.$(OBJEXT) xcfa-cursor.$(OBJEXT) xcfa-dvd.$(OBJEXT) \ xcfa-dvd_table.$(OBJEXT) xcfa-dvd_read.$(OBJEXT) \ xcfa-dvd_extract.$(OBJEXT) xcfa-dragNdrop.$(OBJEXT) \ xcfa-extra.$(OBJEXT) xcfa-file.$(OBJEXT) \ xcfa-file_analyze.$(OBJEXT) xcfa-file_wav.$(OBJEXT) \ xcfa-file_mp3ogg.$(OBJEXT) xcfa-file_tags.$(OBJEXT) \ xcfa-file_scan_db.$(OBJEXT) xcfa-file_action.$(OBJEXT) \ xcfa-file_lc.$(OBJEXT) xcfa-file_conv.$(OBJEXT) \ xcfa-file_wav_conv.$(OBJEXT) xcfa-file_mp3ogg_conv.$(OBJEXT) \ xcfa-file_trash.$(OBJEXT) xcfa-fileselect.$(OBJEXT) \ xcfa-get_info.$(OBJEXT) xcfa-mplayer.$(OBJEXT) \ xcfa-normalise.$(OBJEXT) xcfa-notify_send.$(OBJEXT) \ xcfa-options.$(OBJEXT) xcfa-options_cd.$(OBJEXT) \ xcfa-options_mp3.$(OBJEXT) xcfa-options_oggenc.$(OBJEXT) \ xcfa-options_flac.$(OBJEXT) xcfa-options_mac.$(OBJEXT) \ xcfa-options_wavpack.$(OBJEXT) xcfa-options_musepack.$(OBJEXT) \ xcfa-options_faac.$(OBJEXT) xcfa-options_aacplusenc.$(OBJEXT) \ xcfa-options_tags.$(OBJEXT) xcfa-options_internal.$(OBJEXT) \ xcfa-parse.$(OBJEXT) xcfa-play_file.$(OBJEXT) \ xcfa-poche.$(OBJEXT) xcfa-poche_dir.$(OBJEXT) \ xcfa-poche_draw.$(OBJEXT) xcfa-poche_save.$(OBJEXT) \ xcfa-poche_txt.$(OBJEXT) xcfa-poche_web.$(OBJEXT) \ xcfa-popup.$(OBJEXT) xcfa-prg_init.$(OBJEXT) \ xcfa-proc.$(OBJEXT) xcfa-process.$(OBJEXT) \ xcfa-replaygain.$(OBJEXT) xcfa-scan.$(OBJEXT) \ xcfa-split.$(OBJEXT) xcfa-split_selector.$(OBJEXT) \ xcfa-split_spectre.$(OBJEXT) xcfa-split_cue.$(OBJEXT) \ xcfa-split_conv.$(OBJEXT) xcfa-split_wav.$(OBJEXT) \ xcfa-statusbar.$(OBJEXT) xcfa-tags.$(OBJEXT) \ xcfa-tags_aac.$(OBJEXT) xcfa-tags_aiff.$(OBJEXT) \ xcfa-tags_ape.$(OBJEXT) xcfa-tags_dts.$(OBJEXT) \ xcfa-tags_flac.$(OBJEXT) xcfa-tags_m4a.$(OBJEXT) \ xcfa-tags_mp3.$(OBJEXT) xcfa-tags_mpc.$(OBJEXT) \ xcfa-tags_ogg.$(OBJEXT) xcfa-tags_rm.$(OBJEXT) \ xcfa-tags_shn.$(OBJEXT) xcfa-tags_wav.$(OBJEXT) \ xcfa-tags_wavpack.$(OBJEXT) xcfa-tags_wma.$(OBJEXT) \ xcfa-tags_ac3.$(OBJEXT) xcfa-translate.$(OBJEXT) \ xcfa-treeview.$(OBJEXT) xcfa-web.$(OBJEXT) \ xcfa-win_about.$(OBJEXT) xcfa-win_info.$(OBJEXT) \ xcfa-win_reader.$(OBJEXT) xcfa-win_scan.$(OBJEXT) \ xcfa-win_vte.$(OBJEXT) xcfa_OBJECTS = $(am_xcfa_OBJECTS) am__DEPENDENCIES_1 = xcfa_DEPENDENCIES = $(am__DEPENDENCIES_1) ${top_builddir}/lib/lib.a DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f AM_V_lt = $(am__v_lt_$(V)) am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) am__v_lt_0 = --silent COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_$(V)) am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) am__v_CC_0 = @echo " CC " $@; AM_V_at = $(am__v_at_$(V)) am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) am__v_at_0 = @ CCLD = $(CC) LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_$(V)) am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) am__v_CCLD_0 = @echo " CCLD " $@; AM_V_GEN = $(am__v_GEN_$(V)) am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(xcfa_SOURCES) DIST_SOURCES = $(xcfa_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = -DLOCALEDIR="$(localedir)" @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PREFIX = @INSTALL_PREFIX@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_CFLAGS = @PACKAGE_CFLAGS@ PACKAGE_LIBS = @PACKAGE_LIBS@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = $(datadir)/locale localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ # # src/Makefile.am # AUTOMAKE_OPTIONS = gnu AM_CPPFLAGS = \ -DPACKAGE_DATA_DIR=\""$(datadir)"\" \ -DPACKAGE_LOCALE_DIR=\""$(prefix)/$(DATADIRNAME)/locale"\" \ -DPIXMAPS_DIR=\""$(datadir)/pixmaps/xcfa"\" \ @PACKAGE_CFLAGS@ AM_CFLAGS = @PACKAGE_CFLAGS@ \ -DDATA_DIR=\""$(datadir)"\" \ -DLOCALE_DIR=\""$(datadir)/locale"\" \ -DPIXMAPS_DIR=\""$(datadir)/pixmaps/xcfa"\" xcfa_SOURCES = main.c \ alsa_audio.c alsa_audio.h alsa_play.c alsa_play.h \ bacon.c bacon.h \ cd_audio.c cd_audio_extract.c cd_audio_extract.h cd_audio_toc.c cd_cue.c cd_cue.h cd_expander.c cd_normalise.c cd_normalise.h cd_audio.h cd_curl.c cd_curl.h \ configuser.c configuser.h \ conv.c conv.h \ cursor.c cursor.h \ dvd.c dvd_table.c dvd_read.c dvd_extract.c dvd.h \ dragNdrop.c dragNdrop.h \ extra.c extra.h \ file.c file_analyze.c file_wav.c file_mp3ogg.c file_tags.c file_scan_db.c file_action.c file_lc.c file_conv.c file_wav_conv.c file_mp3ogg_conv.c file_trash.c file.h \ fileselect.c fileselect.h \ get_info.c get_info.h \ mplayer.c mplayer.h \ normalise.c normalise.h \ notify_send.c notify_send.h \ options.c options_cd.c options_mp3.c options_oggenc.c options_flac.c options_mac.c options_wavpack.c options_musepack.c options_faac.c options_aacplusenc.c options_tags.c options_internal.c options.h \ parse.c parse.h \ play_file.c play_file.h \ poche.c poche_dir.c poche_draw.c poche_save.c poche_txt.c poche_web.c poche.h \ popup.c popup.h \ prg_init.c prg_init.h \ proc.c proc.h \ process.c process.h \ replaygain.c replaygain.h \ scan.c scan.h \ split.c split_selector.c split_spectre.c split_cue.c split_conv.c split_wav.c split.h \ statusbar.c statusbar.h \ tags.c tags_aac.c tags_aiff.c tags_ape.c tags_dts.c tags_flac.c tags_m4a.c tags_mp3.c tags_mpc.c tags_ogg.c tags_rm.c tags_shn.c tags_wav.c tags_wavpack.c tags_wma.c tags_ac3.c tags.h \ translate.c \ treeview.c treeview.h \ web.c web.h \ win_about.c win_about.h \ win_info.c win_info.h \ win_reader.c win_reader.h \ win_scan.c win_scan.h \ win_vte.c win_vte.h \ global.h xcfa_CPPFLAGS = -I${top_srcdir}/lib xcfa_LDADD = @PACKAGE_LIBS@ $(INTLLIBS) ${top_builddir}/lib/lib.a -lm -lX11 all: all-am .SUFFIXES: .SUFFIXES: .c .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p; \ then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) xcfa$(EXEEXT): $(xcfa_OBJECTS) $(xcfa_DEPENDENCIES) @rm -f xcfa$(EXEEXT) $(AM_V_CCLD)$(LINK) $(xcfa_OBJECTS) $(xcfa_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-alsa_audio.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-alsa_play.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-bacon.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-cd_audio.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-cd_audio_extract.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-cd_audio_toc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-cd_cue.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-cd_curl.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-cd_expander.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-cd_normalise.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-configuser.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-conv.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-cursor.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-dragNdrop.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-dvd.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-dvd_extract.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-dvd_read.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-dvd_table.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-extra.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-file.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-file_action.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-file_analyze.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-file_conv.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-file_lc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-file_mp3ogg.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-file_mp3ogg_conv.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-file_scan_db.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-file_tags.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-file_trash.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-file_wav.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-file_wav_conv.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-fileselect.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-get_info.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-main.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-mplayer.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-normalise.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-notify_send.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-options.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-options_aacplusenc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-options_cd.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-options_faac.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-options_flac.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-options_internal.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-options_mac.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-options_mp3.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-options_musepack.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-options_oggenc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-options_tags.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-options_wavpack.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-parse.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-play_file.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-poche.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-poche_dir.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-poche_draw.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-poche_save.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-poche_txt.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-poche_web.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-popup.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-prg_init.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-proc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-process.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-replaygain.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-scan.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-split.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-split_conv.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-split_cue.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-split_selector.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-split_spectre.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-split_wav.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-statusbar.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-tags.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-tags_aac.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-tags_ac3.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-tags_aiff.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-tags_ape.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-tags_dts.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-tags_flac.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-tags_m4a.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-tags_mp3.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-tags_mpc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-tags_ogg.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-tags_rm.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-tags_shn.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-tags_wav.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-tags_wavpack.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-tags_wma.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-translate.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-treeview.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-web.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-win_about.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-win_info.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-win_reader.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-win_scan.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcfa-win_vte.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` xcfa-main.o: main.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-main.o -MD -MP -MF $(DEPDIR)/xcfa-main.Tpo -c -o xcfa-main.o `test -f 'main.c' || echo '$(srcdir)/'`main.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-main.Tpo $(DEPDIR)/xcfa-main.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='main.c' object='xcfa-main.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-main.o `test -f 'main.c' || echo '$(srcdir)/'`main.c xcfa-main.obj: main.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-main.obj -MD -MP -MF $(DEPDIR)/xcfa-main.Tpo -c -o xcfa-main.obj `if test -f 'main.c'; then $(CYGPATH_W) 'main.c'; else $(CYGPATH_W) '$(srcdir)/main.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-main.Tpo $(DEPDIR)/xcfa-main.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='main.c' object='xcfa-main.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-main.obj `if test -f 'main.c'; then $(CYGPATH_W) 'main.c'; else $(CYGPATH_W) '$(srcdir)/main.c'; fi` xcfa-alsa_audio.o: alsa_audio.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-alsa_audio.o -MD -MP -MF $(DEPDIR)/xcfa-alsa_audio.Tpo -c -o xcfa-alsa_audio.o `test -f 'alsa_audio.c' || echo '$(srcdir)/'`alsa_audio.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-alsa_audio.Tpo $(DEPDIR)/xcfa-alsa_audio.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='alsa_audio.c' object='xcfa-alsa_audio.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-alsa_audio.o `test -f 'alsa_audio.c' || echo '$(srcdir)/'`alsa_audio.c xcfa-alsa_audio.obj: alsa_audio.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-alsa_audio.obj -MD -MP -MF $(DEPDIR)/xcfa-alsa_audio.Tpo -c -o xcfa-alsa_audio.obj `if test -f 'alsa_audio.c'; then $(CYGPATH_W) 'alsa_audio.c'; else $(CYGPATH_W) '$(srcdir)/alsa_audio.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-alsa_audio.Tpo $(DEPDIR)/xcfa-alsa_audio.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='alsa_audio.c' object='xcfa-alsa_audio.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-alsa_audio.obj `if test -f 'alsa_audio.c'; then $(CYGPATH_W) 'alsa_audio.c'; else $(CYGPATH_W) '$(srcdir)/alsa_audio.c'; fi` xcfa-alsa_play.o: alsa_play.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-alsa_play.o -MD -MP -MF $(DEPDIR)/xcfa-alsa_play.Tpo -c -o xcfa-alsa_play.o `test -f 'alsa_play.c' || echo '$(srcdir)/'`alsa_play.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-alsa_play.Tpo $(DEPDIR)/xcfa-alsa_play.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='alsa_play.c' object='xcfa-alsa_play.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-alsa_play.o `test -f 'alsa_play.c' || echo '$(srcdir)/'`alsa_play.c xcfa-alsa_play.obj: alsa_play.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-alsa_play.obj -MD -MP -MF $(DEPDIR)/xcfa-alsa_play.Tpo -c -o xcfa-alsa_play.obj `if test -f 'alsa_play.c'; then $(CYGPATH_W) 'alsa_play.c'; else $(CYGPATH_W) '$(srcdir)/alsa_play.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-alsa_play.Tpo $(DEPDIR)/xcfa-alsa_play.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='alsa_play.c' object='xcfa-alsa_play.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-alsa_play.obj `if test -f 'alsa_play.c'; then $(CYGPATH_W) 'alsa_play.c'; else $(CYGPATH_W) '$(srcdir)/alsa_play.c'; fi` xcfa-bacon.o: bacon.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-bacon.o -MD -MP -MF $(DEPDIR)/xcfa-bacon.Tpo -c -o xcfa-bacon.o `test -f 'bacon.c' || echo '$(srcdir)/'`bacon.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-bacon.Tpo $(DEPDIR)/xcfa-bacon.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='bacon.c' object='xcfa-bacon.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-bacon.o `test -f 'bacon.c' || echo '$(srcdir)/'`bacon.c xcfa-bacon.obj: bacon.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-bacon.obj -MD -MP -MF $(DEPDIR)/xcfa-bacon.Tpo -c -o xcfa-bacon.obj `if test -f 'bacon.c'; then $(CYGPATH_W) 'bacon.c'; else $(CYGPATH_W) '$(srcdir)/bacon.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-bacon.Tpo $(DEPDIR)/xcfa-bacon.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='bacon.c' object='xcfa-bacon.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-bacon.obj `if test -f 'bacon.c'; then $(CYGPATH_W) 'bacon.c'; else $(CYGPATH_W) '$(srcdir)/bacon.c'; fi` xcfa-cd_audio.o: cd_audio.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-cd_audio.o -MD -MP -MF $(DEPDIR)/xcfa-cd_audio.Tpo -c -o xcfa-cd_audio.o `test -f 'cd_audio.c' || echo '$(srcdir)/'`cd_audio.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-cd_audio.Tpo $(DEPDIR)/xcfa-cd_audio.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cd_audio.c' object='xcfa-cd_audio.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-cd_audio.o `test -f 'cd_audio.c' || echo '$(srcdir)/'`cd_audio.c xcfa-cd_audio.obj: cd_audio.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-cd_audio.obj -MD -MP -MF $(DEPDIR)/xcfa-cd_audio.Tpo -c -o xcfa-cd_audio.obj `if test -f 'cd_audio.c'; then $(CYGPATH_W) 'cd_audio.c'; else $(CYGPATH_W) '$(srcdir)/cd_audio.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-cd_audio.Tpo $(DEPDIR)/xcfa-cd_audio.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cd_audio.c' object='xcfa-cd_audio.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-cd_audio.obj `if test -f 'cd_audio.c'; then $(CYGPATH_W) 'cd_audio.c'; else $(CYGPATH_W) '$(srcdir)/cd_audio.c'; fi` xcfa-cd_audio_extract.o: cd_audio_extract.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-cd_audio_extract.o -MD -MP -MF $(DEPDIR)/xcfa-cd_audio_extract.Tpo -c -o xcfa-cd_audio_extract.o `test -f 'cd_audio_extract.c' || echo '$(srcdir)/'`cd_audio_extract.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-cd_audio_extract.Tpo $(DEPDIR)/xcfa-cd_audio_extract.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cd_audio_extract.c' object='xcfa-cd_audio_extract.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-cd_audio_extract.o `test -f 'cd_audio_extract.c' || echo '$(srcdir)/'`cd_audio_extract.c xcfa-cd_audio_extract.obj: cd_audio_extract.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-cd_audio_extract.obj -MD -MP -MF $(DEPDIR)/xcfa-cd_audio_extract.Tpo -c -o xcfa-cd_audio_extract.obj `if test -f 'cd_audio_extract.c'; then $(CYGPATH_W) 'cd_audio_extract.c'; else $(CYGPATH_W) '$(srcdir)/cd_audio_extract.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-cd_audio_extract.Tpo $(DEPDIR)/xcfa-cd_audio_extract.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cd_audio_extract.c' object='xcfa-cd_audio_extract.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-cd_audio_extract.obj `if test -f 'cd_audio_extract.c'; then $(CYGPATH_W) 'cd_audio_extract.c'; else $(CYGPATH_W) '$(srcdir)/cd_audio_extract.c'; fi` xcfa-cd_audio_toc.o: cd_audio_toc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-cd_audio_toc.o -MD -MP -MF $(DEPDIR)/xcfa-cd_audio_toc.Tpo -c -o xcfa-cd_audio_toc.o `test -f 'cd_audio_toc.c' || echo '$(srcdir)/'`cd_audio_toc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-cd_audio_toc.Tpo $(DEPDIR)/xcfa-cd_audio_toc.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cd_audio_toc.c' object='xcfa-cd_audio_toc.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-cd_audio_toc.o `test -f 'cd_audio_toc.c' || echo '$(srcdir)/'`cd_audio_toc.c xcfa-cd_audio_toc.obj: cd_audio_toc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-cd_audio_toc.obj -MD -MP -MF $(DEPDIR)/xcfa-cd_audio_toc.Tpo -c -o xcfa-cd_audio_toc.obj `if test -f 'cd_audio_toc.c'; then $(CYGPATH_W) 'cd_audio_toc.c'; else $(CYGPATH_W) '$(srcdir)/cd_audio_toc.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-cd_audio_toc.Tpo $(DEPDIR)/xcfa-cd_audio_toc.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cd_audio_toc.c' object='xcfa-cd_audio_toc.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-cd_audio_toc.obj `if test -f 'cd_audio_toc.c'; then $(CYGPATH_W) 'cd_audio_toc.c'; else $(CYGPATH_W) '$(srcdir)/cd_audio_toc.c'; fi` xcfa-cd_cue.o: cd_cue.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-cd_cue.o -MD -MP -MF $(DEPDIR)/xcfa-cd_cue.Tpo -c -o xcfa-cd_cue.o `test -f 'cd_cue.c' || echo '$(srcdir)/'`cd_cue.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-cd_cue.Tpo $(DEPDIR)/xcfa-cd_cue.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cd_cue.c' object='xcfa-cd_cue.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-cd_cue.o `test -f 'cd_cue.c' || echo '$(srcdir)/'`cd_cue.c xcfa-cd_cue.obj: cd_cue.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-cd_cue.obj -MD -MP -MF $(DEPDIR)/xcfa-cd_cue.Tpo -c -o xcfa-cd_cue.obj `if test -f 'cd_cue.c'; then $(CYGPATH_W) 'cd_cue.c'; else $(CYGPATH_W) '$(srcdir)/cd_cue.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-cd_cue.Tpo $(DEPDIR)/xcfa-cd_cue.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cd_cue.c' object='xcfa-cd_cue.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-cd_cue.obj `if test -f 'cd_cue.c'; then $(CYGPATH_W) 'cd_cue.c'; else $(CYGPATH_W) '$(srcdir)/cd_cue.c'; fi` xcfa-cd_expander.o: cd_expander.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-cd_expander.o -MD -MP -MF $(DEPDIR)/xcfa-cd_expander.Tpo -c -o xcfa-cd_expander.o `test -f 'cd_expander.c' || echo '$(srcdir)/'`cd_expander.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-cd_expander.Tpo $(DEPDIR)/xcfa-cd_expander.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cd_expander.c' object='xcfa-cd_expander.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-cd_expander.o `test -f 'cd_expander.c' || echo '$(srcdir)/'`cd_expander.c xcfa-cd_expander.obj: cd_expander.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-cd_expander.obj -MD -MP -MF $(DEPDIR)/xcfa-cd_expander.Tpo -c -o xcfa-cd_expander.obj `if test -f 'cd_expander.c'; then $(CYGPATH_W) 'cd_expander.c'; else $(CYGPATH_W) '$(srcdir)/cd_expander.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-cd_expander.Tpo $(DEPDIR)/xcfa-cd_expander.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cd_expander.c' object='xcfa-cd_expander.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-cd_expander.obj `if test -f 'cd_expander.c'; then $(CYGPATH_W) 'cd_expander.c'; else $(CYGPATH_W) '$(srcdir)/cd_expander.c'; fi` xcfa-cd_normalise.o: cd_normalise.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-cd_normalise.o -MD -MP -MF $(DEPDIR)/xcfa-cd_normalise.Tpo -c -o xcfa-cd_normalise.o `test -f 'cd_normalise.c' || echo '$(srcdir)/'`cd_normalise.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-cd_normalise.Tpo $(DEPDIR)/xcfa-cd_normalise.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cd_normalise.c' object='xcfa-cd_normalise.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-cd_normalise.o `test -f 'cd_normalise.c' || echo '$(srcdir)/'`cd_normalise.c xcfa-cd_normalise.obj: cd_normalise.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-cd_normalise.obj -MD -MP -MF $(DEPDIR)/xcfa-cd_normalise.Tpo -c -o xcfa-cd_normalise.obj `if test -f 'cd_normalise.c'; then $(CYGPATH_W) 'cd_normalise.c'; else $(CYGPATH_W) '$(srcdir)/cd_normalise.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-cd_normalise.Tpo $(DEPDIR)/xcfa-cd_normalise.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cd_normalise.c' object='xcfa-cd_normalise.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-cd_normalise.obj `if test -f 'cd_normalise.c'; then $(CYGPATH_W) 'cd_normalise.c'; else $(CYGPATH_W) '$(srcdir)/cd_normalise.c'; fi` xcfa-cd_curl.o: cd_curl.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-cd_curl.o -MD -MP -MF $(DEPDIR)/xcfa-cd_curl.Tpo -c -o xcfa-cd_curl.o `test -f 'cd_curl.c' || echo '$(srcdir)/'`cd_curl.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-cd_curl.Tpo $(DEPDIR)/xcfa-cd_curl.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cd_curl.c' object='xcfa-cd_curl.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-cd_curl.o `test -f 'cd_curl.c' || echo '$(srcdir)/'`cd_curl.c xcfa-cd_curl.obj: cd_curl.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-cd_curl.obj -MD -MP -MF $(DEPDIR)/xcfa-cd_curl.Tpo -c -o xcfa-cd_curl.obj `if test -f 'cd_curl.c'; then $(CYGPATH_W) 'cd_curl.c'; else $(CYGPATH_W) '$(srcdir)/cd_curl.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-cd_curl.Tpo $(DEPDIR)/xcfa-cd_curl.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cd_curl.c' object='xcfa-cd_curl.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-cd_curl.obj `if test -f 'cd_curl.c'; then $(CYGPATH_W) 'cd_curl.c'; else $(CYGPATH_W) '$(srcdir)/cd_curl.c'; fi` xcfa-configuser.o: configuser.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-configuser.o -MD -MP -MF $(DEPDIR)/xcfa-configuser.Tpo -c -o xcfa-configuser.o `test -f 'configuser.c' || echo '$(srcdir)/'`configuser.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-configuser.Tpo $(DEPDIR)/xcfa-configuser.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='configuser.c' object='xcfa-configuser.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-configuser.o `test -f 'configuser.c' || echo '$(srcdir)/'`configuser.c xcfa-configuser.obj: configuser.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-configuser.obj -MD -MP -MF $(DEPDIR)/xcfa-configuser.Tpo -c -o xcfa-configuser.obj `if test -f 'configuser.c'; then $(CYGPATH_W) 'configuser.c'; else $(CYGPATH_W) '$(srcdir)/configuser.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-configuser.Tpo $(DEPDIR)/xcfa-configuser.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='configuser.c' object='xcfa-configuser.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-configuser.obj `if test -f 'configuser.c'; then $(CYGPATH_W) 'configuser.c'; else $(CYGPATH_W) '$(srcdir)/configuser.c'; fi` xcfa-conv.o: conv.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-conv.o -MD -MP -MF $(DEPDIR)/xcfa-conv.Tpo -c -o xcfa-conv.o `test -f 'conv.c' || echo '$(srcdir)/'`conv.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-conv.Tpo $(DEPDIR)/xcfa-conv.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='conv.c' object='xcfa-conv.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-conv.o `test -f 'conv.c' || echo '$(srcdir)/'`conv.c xcfa-conv.obj: conv.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-conv.obj -MD -MP -MF $(DEPDIR)/xcfa-conv.Tpo -c -o xcfa-conv.obj `if test -f 'conv.c'; then $(CYGPATH_W) 'conv.c'; else $(CYGPATH_W) '$(srcdir)/conv.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-conv.Tpo $(DEPDIR)/xcfa-conv.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='conv.c' object='xcfa-conv.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-conv.obj `if test -f 'conv.c'; then $(CYGPATH_W) 'conv.c'; else $(CYGPATH_W) '$(srcdir)/conv.c'; fi` xcfa-cursor.o: cursor.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-cursor.o -MD -MP -MF $(DEPDIR)/xcfa-cursor.Tpo -c -o xcfa-cursor.o `test -f 'cursor.c' || echo '$(srcdir)/'`cursor.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-cursor.Tpo $(DEPDIR)/xcfa-cursor.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cursor.c' object='xcfa-cursor.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-cursor.o `test -f 'cursor.c' || echo '$(srcdir)/'`cursor.c xcfa-cursor.obj: cursor.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-cursor.obj -MD -MP -MF $(DEPDIR)/xcfa-cursor.Tpo -c -o xcfa-cursor.obj `if test -f 'cursor.c'; then $(CYGPATH_W) 'cursor.c'; else $(CYGPATH_W) '$(srcdir)/cursor.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-cursor.Tpo $(DEPDIR)/xcfa-cursor.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cursor.c' object='xcfa-cursor.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-cursor.obj `if test -f 'cursor.c'; then $(CYGPATH_W) 'cursor.c'; else $(CYGPATH_W) '$(srcdir)/cursor.c'; fi` xcfa-dvd.o: dvd.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-dvd.o -MD -MP -MF $(DEPDIR)/xcfa-dvd.Tpo -c -o xcfa-dvd.o `test -f 'dvd.c' || echo '$(srcdir)/'`dvd.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-dvd.Tpo $(DEPDIR)/xcfa-dvd.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dvd.c' object='xcfa-dvd.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-dvd.o `test -f 'dvd.c' || echo '$(srcdir)/'`dvd.c xcfa-dvd.obj: dvd.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-dvd.obj -MD -MP -MF $(DEPDIR)/xcfa-dvd.Tpo -c -o xcfa-dvd.obj `if test -f 'dvd.c'; then $(CYGPATH_W) 'dvd.c'; else $(CYGPATH_W) '$(srcdir)/dvd.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-dvd.Tpo $(DEPDIR)/xcfa-dvd.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dvd.c' object='xcfa-dvd.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-dvd.obj `if test -f 'dvd.c'; then $(CYGPATH_W) 'dvd.c'; else $(CYGPATH_W) '$(srcdir)/dvd.c'; fi` xcfa-dvd_table.o: dvd_table.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-dvd_table.o -MD -MP -MF $(DEPDIR)/xcfa-dvd_table.Tpo -c -o xcfa-dvd_table.o `test -f 'dvd_table.c' || echo '$(srcdir)/'`dvd_table.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-dvd_table.Tpo $(DEPDIR)/xcfa-dvd_table.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dvd_table.c' object='xcfa-dvd_table.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-dvd_table.o `test -f 'dvd_table.c' || echo '$(srcdir)/'`dvd_table.c xcfa-dvd_table.obj: dvd_table.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-dvd_table.obj -MD -MP -MF $(DEPDIR)/xcfa-dvd_table.Tpo -c -o xcfa-dvd_table.obj `if test -f 'dvd_table.c'; then $(CYGPATH_W) 'dvd_table.c'; else $(CYGPATH_W) '$(srcdir)/dvd_table.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-dvd_table.Tpo $(DEPDIR)/xcfa-dvd_table.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dvd_table.c' object='xcfa-dvd_table.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-dvd_table.obj `if test -f 'dvd_table.c'; then $(CYGPATH_W) 'dvd_table.c'; else $(CYGPATH_W) '$(srcdir)/dvd_table.c'; fi` xcfa-dvd_read.o: dvd_read.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-dvd_read.o -MD -MP -MF $(DEPDIR)/xcfa-dvd_read.Tpo -c -o xcfa-dvd_read.o `test -f 'dvd_read.c' || echo '$(srcdir)/'`dvd_read.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-dvd_read.Tpo $(DEPDIR)/xcfa-dvd_read.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dvd_read.c' object='xcfa-dvd_read.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-dvd_read.o `test -f 'dvd_read.c' || echo '$(srcdir)/'`dvd_read.c xcfa-dvd_read.obj: dvd_read.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-dvd_read.obj -MD -MP -MF $(DEPDIR)/xcfa-dvd_read.Tpo -c -o xcfa-dvd_read.obj `if test -f 'dvd_read.c'; then $(CYGPATH_W) 'dvd_read.c'; else $(CYGPATH_W) '$(srcdir)/dvd_read.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-dvd_read.Tpo $(DEPDIR)/xcfa-dvd_read.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dvd_read.c' object='xcfa-dvd_read.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-dvd_read.obj `if test -f 'dvd_read.c'; then $(CYGPATH_W) 'dvd_read.c'; else $(CYGPATH_W) '$(srcdir)/dvd_read.c'; fi` xcfa-dvd_extract.o: dvd_extract.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-dvd_extract.o -MD -MP -MF $(DEPDIR)/xcfa-dvd_extract.Tpo -c -o xcfa-dvd_extract.o `test -f 'dvd_extract.c' || echo '$(srcdir)/'`dvd_extract.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-dvd_extract.Tpo $(DEPDIR)/xcfa-dvd_extract.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dvd_extract.c' object='xcfa-dvd_extract.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-dvd_extract.o `test -f 'dvd_extract.c' || echo '$(srcdir)/'`dvd_extract.c xcfa-dvd_extract.obj: dvd_extract.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-dvd_extract.obj -MD -MP -MF $(DEPDIR)/xcfa-dvd_extract.Tpo -c -o xcfa-dvd_extract.obj `if test -f 'dvd_extract.c'; then $(CYGPATH_W) 'dvd_extract.c'; else $(CYGPATH_W) '$(srcdir)/dvd_extract.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-dvd_extract.Tpo $(DEPDIR)/xcfa-dvd_extract.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dvd_extract.c' object='xcfa-dvd_extract.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-dvd_extract.obj `if test -f 'dvd_extract.c'; then $(CYGPATH_W) 'dvd_extract.c'; else $(CYGPATH_W) '$(srcdir)/dvd_extract.c'; fi` xcfa-dragNdrop.o: dragNdrop.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-dragNdrop.o -MD -MP -MF $(DEPDIR)/xcfa-dragNdrop.Tpo -c -o xcfa-dragNdrop.o `test -f 'dragNdrop.c' || echo '$(srcdir)/'`dragNdrop.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-dragNdrop.Tpo $(DEPDIR)/xcfa-dragNdrop.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dragNdrop.c' object='xcfa-dragNdrop.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-dragNdrop.o `test -f 'dragNdrop.c' || echo '$(srcdir)/'`dragNdrop.c xcfa-dragNdrop.obj: dragNdrop.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-dragNdrop.obj -MD -MP -MF $(DEPDIR)/xcfa-dragNdrop.Tpo -c -o xcfa-dragNdrop.obj `if test -f 'dragNdrop.c'; then $(CYGPATH_W) 'dragNdrop.c'; else $(CYGPATH_W) '$(srcdir)/dragNdrop.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-dragNdrop.Tpo $(DEPDIR)/xcfa-dragNdrop.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dragNdrop.c' object='xcfa-dragNdrop.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-dragNdrop.obj `if test -f 'dragNdrop.c'; then $(CYGPATH_W) 'dragNdrop.c'; else $(CYGPATH_W) '$(srcdir)/dragNdrop.c'; fi` xcfa-extra.o: extra.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-extra.o -MD -MP -MF $(DEPDIR)/xcfa-extra.Tpo -c -o xcfa-extra.o `test -f 'extra.c' || echo '$(srcdir)/'`extra.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-extra.Tpo $(DEPDIR)/xcfa-extra.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='extra.c' object='xcfa-extra.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-extra.o `test -f 'extra.c' || echo '$(srcdir)/'`extra.c xcfa-extra.obj: extra.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-extra.obj -MD -MP -MF $(DEPDIR)/xcfa-extra.Tpo -c -o xcfa-extra.obj `if test -f 'extra.c'; then $(CYGPATH_W) 'extra.c'; else $(CYGPATH_W) '$(srcdir)/extra.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-extra.Tpo $(DEPDIR)/xcfa-extra.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='extra.c' object='xcfa-extra.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-extra.obj `if test -f 'extra.c'; then $(CYGPATH_W) 'extra.c'; else $(CYGPATH_W) '$(srcdir)/extra.c'; fi` xcfa-file.o: file.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-file.o -MD -MP -MF $(DEPDIR)/xcfa-file.Tpo -c -o xcfa-file.o `test -f 'file.c' || echo '$(srcdir)/'`file.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-file.Tpo $(DEPDIR)/xcfa-file.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='file.c' object='xcfa-file.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-file.o `test -f 'file.c' || echo '$(srcdir)/'`file.c xcfa-file.obj: file.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-file.obj -MD -MP -MF $(DEPDIR)/xcfa-file.Tpo -c -o xcfa-file.obj `if test -f 'file.c'; then $(CYGPATH_W) 'file.c'; else $(CYGPATH_W) '$(srcdir)/file.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-file.Tpo $(DEPDIR)/xcfa-file.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='file.c' object='xcfa-file.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-file.obj `if test -f 'file.c'; then $(CYGPATH_W) 'file.c'; else $(CYGPATH_W) '$(srcdir)/file.c'; fi` xcfa-file_analyze.o: file_analyze.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-file_analyze.o -MD -MP -MF $(DEPDIR)/xcfa-file_analyze.Tpo -c -o xcfa-file_analyze.o `test -f 'file_analyze.c' || echo '$(srcdir)/'`file_analyze.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-file_analyze.Tpo $(DEPDIR)/xcfa-file_analyze.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='file_analyze.c' object='xcfa-file_analyze.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-file_analyze.o `test -f 'file_analyze.c' || echo '$(srcdir)/'`file_analyze.c xcfa-file_analyze.obj: file_analyze.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-file_analyze.obj -MD -MP -MF $(DEPDIR)/xcfa-file_analyze.Tpo -c -o xcfa-file_analyze.obj `if test -f 'file_analyze.c'; then $(CYGPATH_W) 'file_analyze.c'; else $(CYGPATH_W) '$(srcdir)/file_analyze.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-file_analyze.Tpo $(DEPDIR)/xcfa-file_analyze.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='file_analyze.c' object='xcfa-file_analyze.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-file_analyze.obj `if test -f 'file_analyze.c'; then $(CYGPATH_W) 'file_analyze.c'; else $(CYGPATH_W) '$(srcdir)/file_analyze.c'; fi` xcfa-file_wav.o: file_wav.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-file_wav.o -MD -MP -MF $(DEPDIR)/xcfa-file_wav.Tpo -c -o xcfa-file_wav.o `test -f 'file_wav.c' || echo '$(srcdir)/'`file_wav.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-file_wav.Tpo $(DEPDIR)/xcfa-file_wav.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='file_wav.c' object='xcfa-file_wav.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-file_wav.o `test -f 'file_wav.c' || echo '$(srcdir)/'`file_wav.c xcfa-file_wav.obj: file_wav.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-file_wav.obj -MD -MP -MF $(DEPDIR)/xcfa-file_wav.Tpo -c -o xcfa-file_wav.obj `if test -f 'file_wav.c'; then $(CYGPATH_W) 'file_wav.c'; else $(CYGPATH_W) '$(srcdir)/file_wav.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-file_wav.Tpo $(DEPDIR)/xcfa-file_wav.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='file_wav.c' object='xcfa-file_wav.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-file_wav.obj `if test -f 'file_wav.c'; then $(CYGPATH_W) 'file_wav.c'; else $(CYGPATH_W) '$(srcdir)/file_wav.c'; fi` xcfa-file_mp3ogg.o: file_mp3ogg.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-file_mp3ogg.o -MD -MP -MF $(DEPDIR)/xcfa-file_mp3ogg.Tpo -c -o xcfa-file_mp3ogg.o `test -f 'file_mp3ogg.c' || echo '$(srcdir)/'`file_mp3ogg.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-file_mp3ogg.Tpo $(DEPDIR)/xcfa-file_mp3ogg.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='file_mp3ogg.c' object='xcfa-file_mp3ogg.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-file_mp3ogg.o `test -f 'file_mp3ogg.c' || echo '$(srcdir)/'`file_mp3ogg.c xcfa-file_mp3ogg.obj: file_mp3ogg.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-file_mp3ogg.obj -MD -MP -MF $(DEPDIR)/xcfa-file_mp3ogg.Tpo -c -o xcfa-file_mp3ogg.obj `if test -f 'file_mp3ogg.c'; then $(CYGPATH_W) 'file_mp3ogg.c'; else $(CYGPATH_W) '$(srcdir)/file_mp3ogg.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-file_mp3ogg.Tpo $(DEPDIR)/xcfa-file_mp3ogg.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='file_mp3ogg.c' object='xcfa-file_mp3ogg.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-file_mp3ogg.obj `if test -f 'file_mp3ogg.c'; then $(CYGPATH_W) 'file_mp3ogg.c'; else $(CYGPATH_W) '$(srcdir)/file_mp3ogg.c'; fi` xcfa-file_tags.o: file_tags.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-file_tags.o -MD -MP -MF $(DEPDIR)/xcfa-file_tags.Tpo -c -o xcfa-file_tags.o `test -f 'file_tags.c' || echo '$(srcdir)/'`file_tags.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-file_tags.Tpo $(DEPDIR)/xcfa-file_tags.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='file_tags.c' object='xcfa-file_tags.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-file_tags.o `test -f 'file_tags.c' || echo '$(srcdir)/'`file_tags.c xcfa-file_tags.obj: file_tags.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-file_tags.obj -MD -MP -MF $(DEPDIR)/xcfa-file_tags.Tpo -c -o xcfa-file_tags.obj `if test -f 'file_tags.c'; then $(CYGPATH_W) 'file_tags.c'; else $(CYGPATH_W) '$(srcdir)/file_tags.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-file_tags.Tpo $(DEPDIR)/xcfa-file_tags.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='file_tags.c' object='xcfa-file_tags.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-file_tags.obj `if test -f 'file_tags.c'; then $(CYGPATH_W) 'file_tags.c'; else $(CYGPATH_W) '$(srcdir)/file_tags.c'; fi` xcfa-file_scan_db.o: file_scan_db.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-file_scan_db.o -MD -MP -MF $(DEPDIR)/xcfa-file_scan_db.Tpo -c -o xcfa-file_scan_db.o `test -f 'file_scan_db.c' || echo '$(srcdir)/'`file_scan_db.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-file_scan_db.Tpo $(DEPDIR)/xcfa-file_scan_db.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='file_scan_db.c' object='xcfa-file_scan_db.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-file_scan_db.o `test -f 'file_scan_db.c' || echo '$(srcdir)/'`file_scan_db.c xcfa-file_scan_db.obj: file_scan_db.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-file_scan_db.obj -MD -MP -MF $(DEPDIR)/xcfa-file_scan_db.Tpo -c -o xcfa-file_scan_db.obj `if test -f 'file_scan_db.c'; then $(CYGPATH_W) 'file_scan_db.c'; else $(CYGPATH_W) '$(srcdir)/file_scan_db.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-file_scan_db.Tpo $(DEPDIR)/xcfa-file_scan_db.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='file_scan_db.c' object='xcfa-file_scan_db.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-file_scan_db.obj `if test -f 'file_scan_db.c'; then $(CYGPATH_W) 'file_scan_db.c'; else $(CYGPATH_W) '$(srcdir)/file_scan_db.c'; fi` xcfa-file_action.o: file_action.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-file_action.o -MD -MP -MF $(DEPDIR)/xcfa-file_action.Tpo -c -o xcfa-file_action.o `test -f 'file_action.c' || echo '$(srcdir)/'`file_action.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-file_action.Tpo $(DEPDIR)/xcfa-file_action.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='file_action.c' object='xcfa-file_action.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-file_action.o `test -f 'file_action.c' || echo '$(srcdir)/'`file_action.c xcfa-file_action.obj: file_action.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-file_action.obj -MD -MP -MF $(DEPDIR)/xcfa-file_action.Tpo -c -o xcfa-file_action.obj `if test -f 'file_action.c'; then $(CYGPATH_W) 'file_action.c'; else $(CYGPATH_W) '$(srcdir)/file_action.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-file_action.Tpo $(DEPDIR)/xcfa-file_action.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='file_action.c' object='xcfa-file_action.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-file_action.obj `if test -f 'file_action.c'; then $(CYGPATH_W) 'file_action.c'; else $(CYGPATH_W) '$(srcdir)/file_action.c'; fi` xcfa-file_lc.o: file_lc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-file_lc.o -MD -MP -MF $(DEPDIR)/xcfa-file_lc.Tpo -c -o xcfa-file_lc.o `test -f 'file_lc.c' || echo '$(srcdir)/'`file_lc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-file_lc.Tpo $(DEPDIR)/xcfa-file_lc.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='file_lc.c' object='xcfa-file_lc.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-file_lc.o `test -f 'file_lc.c' || echo '$(srcdir)/'`file_lc.c xcfa-file_lc.obj: file_lc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-file_lc.obj -MD -MP -MF $(DEPDIR)/xcfa-file_lc.Tpo -c -o xcfa-file_lc.obj `if test -f 'file_lc.c'; then $(CYGPATH_W) 'file_lc.c'; else $(CYGPATH_W) '$(srcdir)/file_lc.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-file_lc.Tpo $(DEPDIR)/xcfa-file_lc.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='file_lc.c' object='xcfa-file_lc.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-file_lc.obj `if test -f 'file_lc.c'; then $(CYGPATH_W) 'file_lc.c'; else $(CYGPATH_W) '$(srcdir)/file_lc.c'; fi` xcfa-file_conv.o: file_conv.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-file_conv.o -MD -MP -MF $(DEPDIR)/xcfa-file_conv.Tpo -c -o xcfa-file_conv.o `test -f 'file_conv.c' || echo '$(srcdir)/'`file_conv.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-file_conv.Tpo $(DEPDIR)/xcfa-file_conv.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='file_conv.c' object='xcfa-file_conv.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-file_conv.o `test -f 'file_conv.c' || echo '$(srcdir)/'`file_conv.c xcfa-file_conv.obj: file_conv.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-file_conv.obj -MD -MP -MF $(DEPDIR)/xcfa-file_conv.Tpo -c -o xcfa-file_conv.obj `if test -f 'file_conv.c'; then $(CYGPATH_W) 'file_conv.c'; else $(CYGPATH_W) '$(srcdir)/file_conv.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-file_conv.Tpo $(DEPDIR)/xcfa-file_conv.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='file_conv.c' object='xcfa-file_conv.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-file_conv.obj `if test -f 'file_conv.c'; then $(CYGPATH_W) 'file_conv.c'; else $(CYGPATH_W) '$(srcdir)/file_conv.c'; fi` xcfa-file_wav_conv.o: file_wav_conv.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-file_wav_conv.o -MD -MP -MF $(DEPDIR)/xcfa-file_wav_conv.Tpo -c -o xcfa-file_wav_conv.o `test -f 'file_wav_conv.c' || echo '$(srcdir)/'`file_wav_conv.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-file_wav_conv.Tpo $(DEPDIR)/xcfa-file_wav_conv.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='file_wav_conv.c' object='xcfa-file_wav_conv.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-file_wav_conv.o `test -f 'file_wav_conv.c' || echo '$(srcdir)/'`file_wav_conv.c xcfa-file_wav_conv.obj: file_wav_conv.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-file_wav_conv.obj -MD -MP -MF $(DEPDIR)/xcfa-file_wav_conv.Tpo -c -o xcfa-file_wav_conv.obj `if test -f 'file_wav_conv.c'; then $(CYGPATH_W) 'file_wav_conv.c'; else $(CYGPATH_W) '$(srcdir)/file_wav_conv.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-file_wav_conv.Tpo $(DEPDIR)/xcfa-file_wav_conv.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='file_wav_conv.c' object='xcfa-file_wav_conv.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-file_wav_conv.obj `if test -f 'file_wav_conv.c'; then $(CYGPATH_W) 'file_wav_conv.c'; else $(CYGPATH_W) '$(srcdir)/file_wav_conv.c'; fi` xcfa-file_mp3ogg_conv.o: file_mp3ogg_conv.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-file_mp3ogg_conv.o -MD -MP -MF $(DEPDIR)/xcfa-file_mp3ogg_conv.Tpo -c -o xcfa-file_mp3ogg_conv.o `test -f 'file_mp3ogg_conv.c' || echo '$(srcdir)/'`file_mp3ogg_conv.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-file_mp3ogg_conv.Tpo $(DEPDIR)/xcfa-file_mp3ogg_conv.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='file_mp3ogg_conv.c' object='xcfa-file_mp3ogg_conv.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-file_mp3ogg_conv.o `test -f 'file_mp3ogg_conv.c' || echo '$(srcdir)/'`file_mp3ogg_conv.c xcfa-file_mp3ogg_conv.obj: file_mp3ogg_conv.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-file_mp3ogg_conv.obj -MD -MP -MF $(DEPDIR)/xcfa-file_mp3ogg_conv.Tpo -c -o xcfa-file_mp3ogg_conv.obj `if test -f 'file_mp3ogg_conv.c'; then $(CYGPATH_W) 'file_mp3ogg_conv.c'; else $(CYGPATH_W) '$(srcdir)/file_mp3ogg_conv.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-file_mp3ogg_conv.Tpo $(DEPDIR)/xcfa-file_mp3ogg_conv.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='file_mp3ogg_conv.c' object='xcfa-file_mp3ogg_conv.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-file_mp3ogg_conv.obj `if test -f 'file_mp3ogg_conv.c'; then $(CYGPATH_W) 'file_mp3ogg_conv.c'; else $(CYGPATH_W) '$(srcdir)/file_mp3ogg_conv.c'; fi` xcfa-file_trash.o: file_trash.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-file_trash.o -MD -MP -MF $(DEPDIR)/xcfa-file_trash.Tpo -c -o xcfa-file_trash.o `test -f 'file_trash.c' || echo '$(srcdir)/'`file_trash.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-file_trash.Tpo $(DEPDIR)/xcfa-file_trash.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='file_trash.c' object='xcfa-file_trash.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-file_trash.o `test -f 'file_trash.c' || echo '$(srcdir)/'`file_trash.c xcfa-file_trash.obj: file_trash.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-file_trash.obj -MD -MP -MF $(DEPDIR)/xcfa-file_trash.Tpo -c -o xcfa-file_trash.obj `if test -f 'file_trash.c'; then $(CYGPATH_W) 'file_trash.c'; else $(CYGPATH_W) '$(srcdir)/file_trash.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-file_trash.Tpo $(DEPDIR)/xcfa-file_trash.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='file_trash.c' object='xcfa-file_trash.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-file_trash.obj `if test -f 'file_trash.c'; then $(CYGPATH_W) 'file_trash.c'; else $(CYGPATH_W) '$(srcdir)/file_trash.c'; fi` xcfa-fileselect.o: fileselect.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-fileselect.o -MD -MP -MF $(DEPDIR)/xcfa-fileselect.Tpo -c -o xcfa-fileselect.o `test -f 'fileselect.c' || echo '$(srcdir)/'`fileselect.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-fileselect.Tpo $(DEPDIR)/xcfa-fileselect.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fileselect.c' object='xcfa-fileselect.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-fileselect.o `test -f 'fileselect.c' || echo '$(srcdir)/'`fileselect.c xcfa-fileselect.obj: fileselect.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-fileselect.obj -MD -MP -MF $(DEPDIR)/xcfa-fileselect.Tpo -c -o xcfa-fileselect.obj `if test -f 'fileselect.c'; then $(CYGPATH_W) 'fileselect.c'; else $(CYGPATH_W) '$(srcdir)/fileselect.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-fileselect.Tpo $(DEPDIR)/xcfa-fileselect.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fileselect.c' object='xcfa-fileselect.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-fileselect.obj `if test -f 'fileselect.c'; then $(CYGPATH_W) 'fileselect.c'; else $(CYGPATH_W) '$(srcdir)/fileselect.c'; fi` xcfa-get_info.o: get_info.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-get_info.o -MD -MP -MF $(DEPDIR)/xcfa-get_info.Tpo -c -o xcfa-get_info.o `test -f 'get_info.c' || echo '$(srcdir)/'`get_info.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-get_info.Tpo $(DEPDIR)/xcfa-get_info.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='get_info.c' object='xcfa-get_info.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-get_info.o `test -f 'get_info.c' || echo '$(srcdir)/'`get_info.c xcfa-get_info.obj: get_info.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-get_info.obj -MD -MP -MF $(DEPDIR)/xcfa-get_info.Tpo -c -o xcfa-get_info.obj `if test -f 'get_info.c'; then $(CYGPATH_W) 'get_info.c'; else $(CYGPATH_W) '$(srcdir)/get_info.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-get_info.Tpo $(DEPDIR)/xcfa-get_info.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='get_info.c' object='xcfa-get_info.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-get_info.obj `if test -f 'get_info.c'; then $(CYGPATH_W) 'get_info.c'; else $(CYGPATH_W) '$(srcdir)/get_info.c'; fi` xcfa-mplayer.o: mplayer.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-mplayer.o -MD -MP -MF $(DEPDIR)/xcfa-mplayer.Tpo -c -o xcfa-mplayer.o `test -f 'mplayer.c' || echo '$(srcdir)/'`mplayer.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-mplayer.Tpo $(DEPDIR)/xcfa-mplayer.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mplayer.c' object='xcfa-mplayer.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-mplayer.o `test -f 'mplayer.c' || echo '$(srcdir)/'`mplayer.c xcfa-mplayer.obj: mplayer.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-mplayer.obj -MD -MP -MF $(DEPDIR)/xcfa-mplayer.Tpo -c -o xcfa-mplayer.obj `if test -f 'mplayer.c'; then $(CYGPATH_W) 'mplayer.c'; else $(CYGPATH_W) '$(srcdir)/mplayer.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-mplayer.Tpo $(DEPDIR)/xcfa-mplayer.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mplayer.c' object='xcfa-mplayer.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-mplayer.obj `if test -f 'mplayer.c'; then $(CYGPATH_W) 'mplayer.c'; else $(CYGPATH_W) '$(srcdir)/mplayer.c'; fi` xcfa-normalise.o: normalise.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-normalise.o -MD -MP -MF $(DEPDIR)/xcfa-normalise.Tpo -c -o xcfa-normalise.o `test -f 'normalise.c' || echo '$(srcdir)/'`normalise.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-normalise.Tpo $(DEPDIR)/xcfa-normalise.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='normalise.c' object='xcfa-normalise.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-normalise.o `test -f 'normalise.c' || echo '$(srcdir)/'`normalise.c xcfa-normalise.obj: normalise.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-normalise.obj -MD -MP -MF $(DEPDIR)/xcfa-normalise.Tpo -c -o xcfa-normalise.obj `if test -f 'normalise.c'; then $(CYGPATH_W) 'normalise.c'; else $(CYGPATH_W) '$(srcdir)/normalise.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-normalise.Tpo $(DEPDIR)/xcfa-normalise.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='normalise.c' object='xcfa-normalise.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-normalise.obj `if test -f 'normalise.c'; then $(CYGPATH_W) 'normalise.c'; else $(CYGPATH_W) '$(srcdir)/normalise.c'; fi` xcfa-notify_send.o: notify_send.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-notify_send.o -MD -MP -MF $(DEPDIR)/xcfa-notify_send.Tpo -c -o xcfa-notify_send.o `test -f 'notify_send.c' || echo '$(srcdir)/'`notify_send.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-notify_send.Tpo $(DEPDIR)/xcfa-notify_send.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='notify_send.c' object='xcfa-notify_send.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-notify_send.o `test -f 'notify_send.c' || echo '$(srcdir)/'`notify_send.c xcfa-notify_send.obj: notify_send.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-notify_send.obj -MD -MP -MF $(DEPDIR)/xcfa-notify_send.Tpo -c -o xcfa-notify_send.obj `if test -f 'notify_send.c'; then $(CYGPATH_W) 'notify_send.c'; else $(CYGPATH_W) '$(srcdir)/notify_send.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-notify_send.Tpo $(DEPDIR)/xcfa-notify_send.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='notify_send.c' object='xcfa-notify_send.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-notify_send.obj `if test -f 'notify_send.c'; then $(CYGPATH_W) 'notify_send.c'; else $(CYGPATH_W) '$(srcdir)/notify_send.c'; fi` xcfa-options.o: options.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-options.o -MD -MP -MF $(DEPDIR)/xcfa-options.Tpo -c -o xcfa-options.o `test -f 'options.c' || echo '$(srcdir)/'`options.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-options.Tpo $(DEPDIR)/xcfa-options.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='options.c' object='xcfa-options.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-options.o `test -f 'options.c' || echo '$(srcdir)/'`options.c xcfa-options.obj: options.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-options.obj -MD -MP -MF $(DEPDIR)/xcfa-options.Tpo -c -o xcfa-options.obj `if test -f 'options.c'; then $(CYGPATH_W) 'options.c'; else $(CYGPATH_W) '$(srcdir)/options.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-options.Tpo $(DEPDIR)/xcfa-options.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='options.c' object='xcfa-options.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-options.obj `if test -f 'options.c'; then $(CYGPATH_W) 'options.c'; else $(CYGPATH_W) '$(srcdir)/options.c'; fi` xcfa-options_cd.o: options_cd.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-options_cd.o -MD -MP -MF $(DEPDIR)/xcfa-options_cd.Tpo -c -o xcfa-options_cd.o `test -f 'options_cd.c' || echo '$(srcdir)/'`options_cd.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-options_cd.Tpo $(DEPDIR)/xcfa-options_cd.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='options_cd.c' object='xcfa-options_cd.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-options_cd.o `test -f 'options_cd.c' || echo '$(srcdir)/'`options_cd.c xcfa-options_cd.obj: options_cd.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-options_cd.obj -MD -MP -MF $(DEPDIR)/xcfa-options_cd.Tpo -c -o xcfa-options_cd.obj `if test -f 'options_cd.c'; then $(CYGPATH_W) 'options_cd.c'; else $(CYGPATH_W) '$(srcdir)/options_cd.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-options_cd.Tpo $(DEPDIR)/xcfa-options_cd.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='options_cd.c' object='xcfa-options_cd.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-options_cd.obj `if test -f 'options_cd.c'; then $(CYGPATH_W) 'options_cd.c'; else $(CYGPATH_W) '$(srcdir)/options_cd.c'; fi` xcfa-options_mp3.o: options_mp3.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-options_mp3.o -MD -MP -MF $(DEPDIR)/xcfa-options_mp3.Tpo -c -o xcfa-options_mp3.o `test -f 'options_mp3.c' || echo '$(srcdir)/'`options_mp3.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-options_mp3.Tpo $(DEPDIR)/xcfa-options_mp3.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='options_mp3.c' object='xcfa-options_mp3.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-options_mp3.o `test -f 'options_mp3.c' || echo '$(srcdir)/'`options_mp3.c xcfa-options_mp3.obj: options_mp3.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-options_mp3.obj -MD -MP -MF $(DEPDIR)/xcfa-options_mp3.Tpo -c -o xcfa-options_mp3.obj `if test -f 'options_mp3.c'; then $(CYGPATH_W) 'options_mp3.c'; else $(CYGPATH_W) '$(srcdir)/options_mp3.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-options_mp3.Tpo $(DEPDIR)/xcfa-options_mp3.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='options_mp3.c' object='xcfa-options_mp3.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-options_mp3.obj `if test -f 'options_mp3.c'; then $(CYGPATH_W) 'options_mp3.c'; else $(CYGPATH_W) '$(srcdir)/options_mp3.c'; fi` xcfa-options_oggenc.o: options_oggenc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-options_oggenc.o -MD -MP -MF $(DEPDIR)/xcfa-options_oggenc.Tpo -c -o xcfa-options_oggenc.o `test -f 'options_oggenc.c' || echo '$(srcdir)/'`options_oggenc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-options_oggenc.Tpo $(DEPDIR)/xcfa-options_oggenc.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='options_oggenc.c' object='xcfa-options_oggenc.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-options_oggenc.o `test -f 'options_oggenc.c' || echo '$(srcdir)/'`options_oggenc.c xcfa-options_oggenc.obj: options_oggenc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-options_oggenc.obj -MD -MP -MF $(DEPDIR)/xcfa-options_oggenc.Tpo -c -o xcfa-options_oggenc.obj `if test -f 'options_oggenc.c'; then $(CYGPATH_W) 'options_oggenc.c'; else $(CYGPATH_W) '$(srcdir)/options_oggenc.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-options_oggenc.Tpo $(DEPDIR)/xcfa-options_oggenc.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='options_oggenc.c' object='xcfa-options_oggenc.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-options_oggenc.obj `if test -f 'options_oggenc.c'; then $(CYGPATH_W) 'options_oggenc.c'; else $(CYGPATH_W) '$(srcdir)/options_oggenc.c'; fi` xcfa-options_flac.o: options_flac.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-options_flac.o -MD -MP -MF $(DEPDIR)/xcfa-options_flac.Tpo -c -o xcfa-options_flac.o `test -f 'options_flac.c' || echo '$(srcdir)/'`options_flac.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-options_flac.Tpo $(DEPDIR)/xcfa-options_flac.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='options_flac.c' object='xcfa-options_flac.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-options_flac.o `test -f 'options_flac.c' || echo '$(srcdir)/'`options_flac.c xcfa-options_flac.obj: options_flac.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-options_flac.obj -MD -MP -MF $(DEPDIR)/xcfa-options_flac.Tpo -c -o xcfa-options_flac.obj `if test -f 'options_flac.c'; then $(CYGPATH_W) 'options_flac.c'; else $(CYGPATH_W) '$(srcdir)/options_flac.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-options_flac.Tpo $(DEPDIR)/xcfa-options_flac.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='options_flac.c' object='xcfa-options_flac.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-options_flac.obj `if test -f 'options_flac.c'; then $(CYGPATH_W) 'options_flac.c'; else $(CYGPATH_W) '$(srcdir)/options_flac.c'; fi` xcfa-options_mac.o: options_mac.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-options_mac.o -MD -MP -MF $(DEPDIR)/xcfa-options_mac.Tpo -c -o xcfa-options_mac.o `test -f 'options_mac.c' || echo '$(srcdir)/'`options_mac.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-options_mac.Tpo $(DEPDIR)/xcfa-options_mac.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='options_mac.c' object='xcfa-options_mac.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-options_mac.o `test -f 'options_mac.c' || echo '$(srcdir)/'`options_mac.c xcfa-options_mac.obj: options_mac.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-options_mac.obj -MD -MP -MF $(DEPDIR)/xcfa-options_mac.Tpo -c -o xcfa-options_mac.obj `if test -f 'options_mac.c'; then $(CYGPATH_W) 'options_mac.c'; else $(CYGPATH_W) '$(srcdir)/options_mac.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-options_mac.Tpo $(DEPDIR)/xcfa-options_mac.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='options_mac.c' object='xcfa-options_mac.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-options_mac.obj `if test -f 'options_mac.c'; then $(CYGPATH_W) 'options_mac.c'; else $(CYGPATH_W) '$(srcdir)/options_mac.c'; fi` xcfa-options_wavpack.o: options_wavpack.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-options_wavpack.o -MD -MP -MF $(DEPDIR)/xcfa-options_wavpack.Tpo -c -o xcfa-options_wavpack.o `test -f 'options_wavpack.c' || echo '$(srcdir)/'`options_wavpack.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-options_wavpack.Tpo $(DEPDIR)/xcfa-options_wavpack.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='options_wavpack.c' object='xcfa-options_wavpack.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-options_wavpack.o `test -f 'options_wavpack.c' || echo '$(srcdir)/'`options_wavpack.c xcfa-options_wavpack.obj: options_wavpack.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-options_wavpack.obj -MD -MP -MF $(DEPDIR)/xcfa-options_wavpack.Tpo -c -o xcfa-options_wavpack.obj `if test -f 'options_wavpack.c'; then $(CYGPATH_W) 'options_wavpack.c'; else $(CYGPATH_W) '$(srcdir)/options_wavpack.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-options_wavpack.Tpo $(DEPDIR)/xcfa-options_wavpack.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='options_wavpack.c' object='xcfa-options_wavpack.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-options_wavpack.obj `if test -f 'options_wavpack.c'; then $(CYGPATH_W) 'options_wavpack.c'; else $(CYGPATH_W) '$(srcdir)/options_wavpack.c'; fi` xcfa-options_musepack.o: options_musepack.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-options_musepack.o -MD -MP -MF $(DEPDIR)/xcfa-options_musepack.Tpo -c -o xcfa-options_musepack.o `test -f 'options_musepack.c' || echo '$(srcdir)/'`options_musepack.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-options_musepack.Tpo $(DEPDIR)/xcfa-options_musepack.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='options_musepack.c' object='xcfa-options_musepack.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-options_musepack.o `test -f 'options_musepack.c' || echo '$(srcdir)/'`options_musepack.c xcfa-options_musepack.obj: options_musepack.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-options_musepack.obj -MD -MP -MF $(DEPDIR)/xcfa-options_musepack.Tpo -c -o xcfa-options_musepack.obj `if test -f 'options_musepack.c'; then $(CYGPATH_W) 'options_musepack.c'; else $(CYGPATH_W) '$(srcdir)/options_musepack.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-options_musepack.Tpo $(DEPDIR)/xcfa-options_musepack.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='options_musepack.c' object='xcfa-options_musepack.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-options_musepack.obj `if test -f 'options_musepack.c'; then $(CYGPATH_W) 'options_musepack.c'; else $(CYGPATH_W) '$(srcdir)/options_musepack.c'; fi` xcfa-options_faac.o: options_faac.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-options_faac.o -MD -MP -MF $(DEPDIR)/xcfa-options_faac.Tpo -c -o xcfa-options_faac.o `test -f 'options_faac.c' || echo '$(srcdir)/'`options_faac.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-options_faac.Tpo $(DEPDIR)/xcfa-options_faac.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='options_faac.c' object='xcfa-options_faac.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-options_faac.o `test -f 'options_faac.c' || echo '$(srcdir)/'`options_faac.c xcfa-options_faac.obj: options_faac.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-options_faac.obj -MD -MP -MF $(DEPDIR)/xcfa-options_faac.Tpo -c -o xcfa-options_faac.obj `if test -f 'options_faac.c'; then $(CYGPATH_W) 'options_faac.c'; else $(CYGPATH_W) '$(srcdir)/options_faac.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-options_faac.Tpo $(DEPDIR)/xcfa-options_faac.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='options_faac.c' object='xcfa-options_faac.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-options_faac.obj `if test -f 'options_faac.c'; then $(CYGPATH_W) 'options_faac.c'; else $(CYGPATH_W) '$(srcdir)/options_faac.c'; fi` xcfa-options_aacplusenc.o: options_aacplusenc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-options_aacplusenc.o -MD -MP -MF $(DEPDIR)/xcfa-options_aacplusenc.Tpo -c -o xcfa-options_aacplusenc.o `test -f 'options_aacplusenc.c' || echo '$(srcdir)/'`options_aacplusenc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-options_aacplusenc.Tpo $(DEPDIR)/xcfa-options_aacplusenc.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='options_aacplusenc.c' object='xcfa-options_aacplusenc.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-options_aacplusenc.o `test -f 'options_aacplusenc.c' || echo '$(srcdir)/'`options_aacplusenc.c xcfa-options_aacplusenc.obj: options_aacplusenc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-options_aacplusenc.obj -MD -MP -MF $(DEPDIR)/xcfa-options_aacplusenc.Tpo -c -o xcfa-options_aacplusenc.obj `if test -f 'options_aacplusenc.c'; then $(CYGPATH_W) 'options_aacplusenc.c'; else $(CYGPATH_W) '$(srcdir)/options_aacplusenc.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-options_aacplusenc.Tpo $(DEPDIR)/xcfa-options_aacplusenc.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='options_aacplusenc.c' object='xcfa-options_aacplusenc.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-options_aacplusenc.obj `if test -f 'options_aacplusenc.c'; then $(CYGPATH_W) 'options_aacplusenc.c'; else $(CYGPATH_W) '$(srcdir)/options_aacplusenc.c'; fi` xcfa-options_tags.o: options_tags.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-options_tags.o -MD -MP -MF $(DEPDIR)/xcfa-options_tags.Tpo -c -o xcfa-options_tags.o `test -f 'options_tags.c' || echo '$(srcdir)/'`options_tags.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-options_tags.Tpo $(DEPDIR)/xcfa-options_tags.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='options_tags.c' object='xcfa-options_tags.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-options_tags.o `test -f 'options_tags.c' || echo '$(srcdir)/'`options_tags.c xcfa-options_tags.obj: options_tags.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-options_tags.obj -MD -MP -MF $(DEPDIR)/xcfa-options_tags.Tpo -c -o xcfa-options_tags.obj `if test -f 'options_tags.c'; then $(CYGPATH_W) 'options_tags.c'; else $(CYGPATH_W) '$(srcdir)/options_tags.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-options_tags.Tpo $(DEPDIR)/xcfa-options_tags.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='options_tags.c' object='xcfa-options_tags.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-options_tags.obj `if test -f 'options_tags.c'; then $(CYGPATH_W) 'options_tags.c'; else $(CYGPATH_W) '$(srcdir)/options_tags.c'; fi` xcfa-options_internal.o: options_internal.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-options_internal.o -MD -MP -MF $(DEPDIR)/xcfa-options_internal.Tpo -c -o xcfa-options_internal.o `test -f 'options_internal.c' || echo '$(srcdir)/'`options_internal.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-options_internal.Tpo $(DEPDIR)/xcfa-options_internal.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='options_internal.c' object='xcfa-options_internal.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-options_internal.o `test -f 'options_internal.c' || echo '$(srcdir)/'`options_internal.c xcfa-options_internal.obj: options_internal.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-options_internal.obj -MD -MP -MF $(DEPDIR)/xcfa-options_internal.Tpo -c -o xcfa-options_internal.obj `if test -f 'options_internal.c'; then $(CYGPATH_W) 'options_internal.c'; else $(CYGPATH_W) '$(srcdir)/options_internal.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-options_internal.Tpo $(DEPDIR)/xcfa-options_internal.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='options_internal.c' object='xcfa-options_internal.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-options_internal.obj `if test -f 'options_internal.c'; then $(CYGPATH_W) 'options_internal.c'; else $(CYGPATH_W) '$(srcdir)/options_internal.c'; fi` xcfa-parse.o: parse.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-parse.o -MD -MP -MF $(DEPDIR)/xcfa-parse.Tpo -c -o xcfa-parse.o `test -f 'parse.c' || echo '$(srcdir)/'`parse.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-parse.Tpo $(DEPDIR)/xcfa-parse.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='parse.c' object='xcfa-parse.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-parse.o `test -f 'parse.c' || echo '$(srcdir)/'`parse.c xcfa-parse.obj: parse.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-parse.obj -MD -MP -MF $(DEPDIR)/xcfa-parse.Tpo -c -o xcfa-parse.obj `if test -f 'parse.c'; then $(CYGPATH_W) 'parse.c'; else $(CYGPATH_W) '$(srcdir)/parse.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-parse.Tpo $(DEPDIR)/xcfa-parse.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='parse.c' object='xcfa-parse.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-parse.obj `if test -f 'parse.c'; then $(CYGPATH_W) 'parse.c'; else $(CYGPATH_W) '$(srcdir)/parse.c'; fi` xcfa-play_file.o: play_file.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-play_file.o -MD -MP -MF $(DEPDIR)/xcfa-play_file.Tpo -c -o xcfa-play_file.o `test -f 'play_file.c' || echo '$(srcdir)/'`play_file.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-play_file.Tpo $(DEPDIR)/xcfa-play_file.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='play_file.c' object='xcfa-play_file.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-play_file.o `test -f 'play_file.c' || echo '$(srcdir)/'`play_file.c xcfa-play_file.obj: play_file.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-play_file.obj -MD -MP -MF $(DEPDIR)/xcfa-play_file.Tpo -c -o xcfa-play_file.obj `if test -f 'play_file.c'; then $(CYGPATH_W) 'play_file.c'; else $(CYGPATH_W) '$(srcdir)/play_file.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-play_file.Tpo $(DEPDIR)/xcfa-play_file.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='play_file.c' object='xcfa-play_file.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-play_file.obj `if test -f 'play_file.c'; then $(CYGPATH_W) 'play_file.c'; else $(CYGPATH_W) '$(srcdir)/play_file.c'; fi` xcfa-poche.o: poche.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-poche.o -MD -MP -MF $(DEPDIR)/xcfa-poche.Tpo -c -o xcfa-poche.o `test -f 'poche.c' || echo '$(srcdir)/'`poche.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-poche.Tpo $(DEPDIR)/xcfa-poche.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='poche.c' object='xcfa-poche.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-poche.o `test -f 'poche.c' || echo '$(srcdir)/'`poche.c xcfa-poche.obj: poche.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-poche.obj -MD -MP -MF $(DEPDIR)/xcfa-poche.Tpo -c -o xcfa-poche.obj `if test -f 'poche.c'; then $(CYGPATH_W) 'poche.c'; else $(CYGPATH_W) '$(srcdir)/poche.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-poche.Tpo $(DEPDIR)/xcfa-poche.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='poche.c' object='xcfa-poche.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-poche.obj `if test -f 'poche.c'; then $(CYGPATH_W) 'poche.c'; else $(CYGPATH_W) '$(srcdir)/poche.c'; fi` xcfa-poche_dir.o: poche_dir.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-poche_dir.o -MD -MP -MF $(DEPDIR)/xcfa-poche_dir.Tpo -c -o xcfa-poche_dir.o `test -f 'poche_dir.c' || echo '$(srcdir)/'`poche_dir.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-poche_dir.Tpo $(DEPDIR)/xcfa-poche_dir.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='poche_dir.c' object='xcfa-poche_dir.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-poche_dir.o `test -f 'poche_dir.c' || echo '$(srcdir)/'`poche_dir.c xcfa-poche_dir.obj: poche_dir.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-poche_dir.obj -MD -MP -MF $(DEPDIR)/xcfa-poche_dir.Tpo -c -o xcfa-poche_dir.obj `if test -f 'poche_dir.c'; then $(CYGPATH_W) 'poche_dir.c'; else $(CYGPATH_W) '$(srcdir)/poche_dir.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-poche_dir.Tpo $(DEPDIR)/xcfa-poche_dir.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='poche_dir.c' object='xcfa-poche_dir.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-poche_dir.obj `if test -f 'poche_dir.c'; then $(CYGPATH_W) 'poche_dir.c'; else $(CYGPATH_W) '$(srcdir)/poche_dir.c'; fi` xcfa-poche_draw.o: poche_draw.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-poche_draw.o -MD -MP -MF $(DEPDIR)/xcfa-poche_draw.Tpo -c -o xcfa-poche_draw.o `test -f 'poche_draw.c' || echo '$(srcdir)/'`poche_draw.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-poche_draw.Tpo $(DEPDIR)/xcfa-poche_draw.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='poche_draw.c' object='xcfa-poche_draw.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-poche_draw.o `test -f 'poche_draw.c' || echo '$(srcdir)/'`poche_draw.c xcfa-poche_draw.obj: poche_draw.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-poche_draw.obj -MD -MP -MF $(DEPDIR)/xcfa-poche_draw.Tpo -c -o xcfa-poche_draw.obj `if test -f 'poche_draw.c'; then $(CYGPATH_W) 'poche_draw.c'; else $(CYGPATH_W) '$(srcdir)/poche_draw.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-poche_draw.Tpo $(DEPDIR)/xcfa-poche_draw.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='poche_draw.c' object='xcfa-poche_draw.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-poche_draw.obj `if test -f 'poche_draw.c'; then $(CYGPATH_W) 'poche_draw.c'; else $(CYGPATH_W) '$(srcdir)/poche_draw.c'; fi` xcfa-poche_save.o: poche_save.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-poche_save.o -MD -MP -MF $(DEPDIR)/xcfa-poche_save.Tpo -c -o xcfa-poche_save.o `test -f 'poche_save.c' || echo '$(srcdir)/'`poche_save.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-poche_save.Tpo $(DEPDIR)/xcfa-poche_save.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='poche_save.c' object='xcfa-poche_save.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-poche_save.o `test -f 'poche_save.c' || echo '$(srcdir)/'`poche_save.c xcfa-poche_save.obj: poche_save.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-poche_save.obj -MD -MP -MF $(DEPDIR)/xcfa-poche_save.Tpo -c -o xcfa-poche_save.obj `if test -f 'poche_save.c'; then $(CYGPATH_W) 'poche_save.c'; else $(CYGPATH_W) '$(srcdir)/poche_save.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-poche_save.Tpo $(DEPDIR)/xcfa-poche_save.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='poche_save.c' object='xcfa-poche_save.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-poche_save.obj `if test -f 'poche_save.c'; then $(CYGPATH_W) 'poche_save.c'; else $(CYGPATH_W) '$(srcdir)/poche_save.c'; fi` xcfa-poche_txt.o: poche_txt.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-poche_txt.o -MD -MP -MF $(DEPDIR)/xcfa-poche_txt.Tpo -c -o xcfa-poche_txt.o `test -f 'poche_txt.c' || echo '$(srcdir)/'`poche_txt.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-poche_txt.Tpo $(DEPDIR)/xcfa-poche_txt.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='poche_txt.c' object='xcfa-poche_txt.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-poche_txt.o `test -f 'poche_txt.c' || echo '$(srcdir)/'`poche_txt.c xcfa-poche_txt.obj: poche_txt.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-poche_txt.obj -MD -MP -MF $(DEPDIR)/xcfa-poche_txt.Tpo -c -o xcfa-poche_txt.obj `if test -f 'poche_txt.c'; then $(CYGPATH_W) 'poche_txt.c'; else $(CYGPATH_W) '$(srcdir)/poche_txt.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-poche_txt.Tpo $(DEPDIR)/xcfa-poche_txt.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='poche_txt.c' object='xcfa-poche_txt.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-poche_txt.obj `if test -f 'poche_txt.c'; then $(CYGPATH_W) 'poche_txt.c'; else $(CYGPATH_W) '$(srcdir)/poche_txt.c'; fi` xcfa-poche_web.o: poche_web.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-poche_web.o -MD -MP -MF $(DEPDIR)/xcfa-poche_web.Tpo -c -o xcfa-poche_web.o `test -f 'poche_web.c' || echo '$(srcdir)/'`poche_web.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-poche_web.Tpo $(DEPDIR)/xcfa-poche_web.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='poche_web.c' object='xcfa-poche_web.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-poche_web.o `test -f 'poche_web.c' || echo '$(srcdir)/'`poche_web.c xcfa-poche_web.obj: poche_web.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-poche_web.obj -MD -MP -MF $(DEPDIR)/xcfa-poche_web.Tpo -c -o xcfa-poche_web.obj `if test -f 'poche_web.c'; then $(CYGPATH_W) 'poche_web.c'; else $(CYGPATH_W) '$(srcdir)/poche_web.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-poche_web.Tpo $(DEPDIR)/xcfa-poche_web.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='poche_web.c' object='xcfa-poche_web.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-poche_web.obj `if test -f 'poche_web.c'; then $(CYGPATH_W) 'poche_web.c'; else $(CYGPATH_W) '$(srcdir)/poche_web.c'; fi` xcfa-popup.o: popup.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-popup.o -MD -MP -MF $(DEPDIR)/xcfa-popup.Tpo -c -o xcfa-popup.o `test -f 'popup.c' || echo '$(srcdir)/'`popup.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-popup.Tpo $(DEPDIR)/xcfa-popup.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='popup.c' object='xcfa-popup.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-popup.o `test -f 'popup.c' || echo '$(srcdir)/'`popup.c xcfa-popup.obj: popup.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-popup.obj -MD -MP -MF $(DEPDIR)/xcfa-popup.Tpo -c -o xcfa-popup.obj `if test -f 'popup.c'; then $(CYGPATH_W) 'popup.c'; else $(CYGPATH_W) '$(srcdir)/popup.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-popup.Tpo $(DEPDIR)/xcfa-popup.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='popup.c' object='xcfa-popup.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-popup.obj `if test -f 'popup.c'; then $(CYGPATH_W) 'popup.c'; else $(CYGPATH_W) '$(srcdir)/popup.c'; fi` xcfa-prg_init.o: prg_init.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-prg_init.o -MD -MP -MF $(DEPDIR)/xcfa-prg_init.Tpo -c -o xcfa-prg_init.o `test -f 'prg_init.c' || echo '$(srcdir)/'`prg_init.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-prg_init.Tpo $(DEPDIR)/xcfa-prg_init.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='prg_init.c' object='xcfa-prg_init.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-prg_init.o `test -f 'prg_init.c' || echo '$(srcdir)/'`prg_init.c xcfa-prg_init.obj: prg_init.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-prg_init.obj -MD -MP -MF $(DEPDIR)/xcfa-prg_init.Tpo -c -o xcfa-prg_init.obj `if test -f 'prg_init.c'; then $(CYGPATH_W) 'prg_init.c'; else $(CYGPATH_W) '$(srcdir)/prg_init.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-prg_init.Tpo $(DEPDIR)/xcfa-prg_init.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='prg_init.c' object='xcfa-prg_init.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-prg_init.obj `if test -f 'prg_init.c'; then $(CYGPATH_W) 'prg_init.c'; else $(CYGPATH_W) '$(srcdir)/prg_init.c'; fi` xcfa-proc.o: proc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-proc.o -MD -MP -MF $(DEPDIR)/xcfa-proc.Tpo -c -o xcfa-proc.o `test -f 'proc.c' || echo '$(srcdir)/'`proc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-proc.Tpo $(DEPDIR)/xcfa-proc.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='proc.c' object='xcfa-proc.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-proc.o `test -f 'proc.c' || echo '$(srcdir)/'`proc.c xcfa-proc.obj: proc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-proc.obj -MD -MP -MF $(DEPDIR)/xcfa-proc.Tpo -c -o xcfa-proc.obj `if test -f 'proc.c'; then $(CYGPATH_W) 'proc.c'; else $(CYGPATH_W) '$(srcdir)/proc.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-proc.Tpo $(DEPDIR)/xcfa-proc.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='proc.c' object='xcfa-proc.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-proc.obj `if test -f 'proc.c'; then $(CYGPATH_W) 'proc.c'; else $(CYGPATH_W) '$(srcdir)/proc.c'; fi` xcfa-process.o: process.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-process.o -MD -MP -MF $(DEPDIR)/xcfa-process.Tpo -c -o xcfa-process.o `test -f 'process.c' || echo '$(srcdir)/'`process.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-process.Tpo $(DEPDIR)/xcfa-process.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='process.c' object='xcfa-process.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-process.o `test -f 'process.c' || echo '$(srcdir)/'`process.c xcfa-process.obj: process.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-process.obj -MD -MP -MF $(DEPDIR)/xcfa-process.Tpo -c -o xcfa-process.obj `if test -f 'process.c'; then $(CYGPATH_W) 'process.c'; else $(CYGPATH_W) '$(srcdir)/process.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-process.Tpo $(DEPDIR)/xcfa-process.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='process.c' object='xcfa-process.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-process.obj `if test -f 'process.c'; then $(CYGPATH_W) 'process.c'; else $(CYGPATH_W) '$(srcdir)/process.c'; fi` xcfa-replaygain.o: replaygain.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-replaygain.o -MD -MP -MF $(DEPDIR)/xcfa-replaygain.Tpo -c -o xcfa-replaygain.o `test -f 'replaygain.c' || echo '$(srcdir)/'`replaygain.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-replaygain.Tpo $(DEPDIR)/xcfa-replaygain.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='replaygain.c' object='xcfa-replaygain.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-replaygain.o `test -f 'replaygain.c' || echo '$(srcdir)/'`replaygain.c xcfa-replaygain.obj: replaygain.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-replaygain.obj -MD -MP -MF $(DEPDIR)/xcfa-replaygain.Tpo -c -o xcfa-replaygain.obj `if test -f 'replaygain.c'; then $(CYGPATH_W) 'replaygain.c'; else $(CYGPATH_W) '$(srcdir)/replaygain.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-replaygain.Tpo $(DEPDIR)/xcfa-replaygain.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='replaygain.c' object='xcfa-replaygain.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-replaygain.obj `if test -f 'replaygain.c'; then $(CYGPATH_W) 'replaygain.c'; else $(CYGPATH_W) '$(srcdir)/replaygain.c'; fi` xcfa-scan.o: scan.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-scan.o -MD -MP -MF $(DEPDIR)/xcfa-scan.Tpo -c -o xcfa-scan.o `test -f 'scan.c' || echo '$(srcdir)/'`scan.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-scan.Tpo $(DEPDIR)/xcfa-scan.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='scan.c' object='xcfa-scan.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-scan.o `test -f 'scan.c' || echo '$(srcdir)/'`scan.c xcfa-scan.obj: scan.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-scan.obj -MD -MP -MF $(DEPDIR)/xcfa-scan.Tpo -c -o xcfa-scan.obj `if test -f 'scan.c'; then $(CYGPATH_W) 'scan.c'; else $(CYGPATH_W) '$(srcdir)/scan.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-scan.Tpo $(DEPDIR)/xcfa-scan.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='scan.c' object='xcfa-scan.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-scan.obj `if test -f 'scan.c'; then $(CYGPATH_W) 'scan.c'; else $(CYGPATH_W) '$(srcdir)/scan.c'; fi` xcfa-split.o: split.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-split.o -MD -MP -MF $(DEPDIR)/xcfa-split.Tpo -c -o xcfa-split.o `test -f 'split.c' || echo '$(srcdir)/'`split.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-split.Tpo $(DEPDIR)/xcfa-split.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='split.c' object='xcfa-split.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-split.o `test -f 'split.c' || echo '$(srcdir)/'`split.c xcfa-split.obj: split.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-split.obj -MD -MP -MF $(DEPDIR)/xcfa-split.Tpo -c -o xcfa-split.obj `if test -f 'split.c'; then $(CYGPATH_W) 'split.c'; else $(CYGPATH_W) '$(srcdir)/split.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-split.Tpo $(DEPDIR)/xcfa-split.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='split.c' object='xcfa-split.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-split.obj `if test -f 'split.c'; then $(CYGPATH_W) 'split.c'; else $(CYGPATH_W) '$(srcdir)/split.c'; fi` xcfa-split_selector.o: split_selector.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-split_selector.o -MD -MP -MF $(DEPDIR)/xcfa-split_selector.Tpo -c -o xcfa-split_selector.o `test -f 'split_selector.c' || echo '$(srcdir)/'`split_selector.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-split_selector.Tpo $(DEPDIR)/xcfa-split_selector.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='split_selector.c' object='xcfa-split_selector.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-split_selector.o `test -f 'split_selector.c' || echo '$(srcdir)/'`split_selector.c xcfa-split_selector.obj: split_selector.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-split_selector.obj -MD -MP -MF $(DEPDIR)/xcfa-split_selector.Tpo -c -o xcfa-split_selector.obj `if test -f 'split_selector.c'; then $(CYGPATH_W) 'split_selector.c'; else $(CYGPATH_W) '$(srcdir)/split_selector.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-split_selector.Tpo $(DEPDIR)/xcfa-split_selector.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='split_selector.c' object='xcfa-split_selector.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-split_selector.obj `if test -f 'split_selector.c'; then $(CYGPATH_W) 'split_selector.c'; else $(CYGPATH_W) '$(srcdir)/split_selector.c'; fi` xcfa-split_spectre.o: split_spectre.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-split_spectre.o -MD -MP -MF $(DEPDIR)/xcfa-split_spectre.Tpo -c -o xcfa-split_spectre.o `test -f 'split_spectre.c' || echo '$(srcdir)/'`split_spectre.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-split_spectre.Tpo $(DEPDIR)/xcfa-split_spectre.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='split_spectre.c' object='xcfa-split_spectre.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-split_spectre.o `test -f 'split_spectre.c' || echo '$(srcdir)/'`split_spectre.c xcfa-split_spectre.obj: split_spectre.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-split_spectre.obj -MD -MP -MF $(DEPDIR)/xcfa-split_spectre.Tpo -c -o xcfa-split_spectre.obj `if test -f 'split_spectre.c'; then $(CYGPATH_W) 'split_spectre.c'; else $(CYGPATH_W) '$(srcdir)/split_spectre.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-split_spectre.Tpo $(DEPDIR)/xcfa-split_spectre.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='split_spectre.c' object='xcfa-split_spectre.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-split_spectre.obj `if test -f 'split_spectre.c'; then $(CYGPATH_W) 'split_spectre.c'; else $(CYGPATH_W) '$(srcdir)/split_spectre.c'; fi` xcfa-split_cue.o: split_cue.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-split_cue.o -MD -MP -MF $(DEPDIR)/xcfa-split_cue.Tpo -c -o xcfa-split_cue.o `test -f 'split_cue.c' || echo '$(srcdir)/'`split_cue.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-split_cue.Tpo $(DEPDIR)/xcfa-split_cue.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='split_cue.c' object='xcfa-split_cue.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-split_cue.o `test -f 'split_cue.c' || echo '$(srcdir)/'`split_cue.c xcfa-split_cue.obj: split_cue.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-split_cue.obj -MD -MP -MF $(DEPDIR)/xcfa-split_cue.Tpo -c -o xcfa-split_cue.obj `if test -f 'split_cue.c'; then $(CYGPATH_W) 'split_cue.c'; else $(CYGPATH_W) '$(srcdir)/split_cue.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-split_cue.Tpo $(DEPDIR)/xcfa-split_cue.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='split_cue.c' object='xcfa-split_cue.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-split_cue.obj `if test -f 'split_cue.c'; then $(CYGPATH_W) 'split_cue.c'; else $(CYGPATH_W) '$(srcdir)/split_cue.c'; fi` xcfa-split_conv.o: split_conv.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-split_conv.o -MD -MP -MF $(DEPDIR)/xcfa-split_conv.Tpo -c -o xcfa-split_conv.o `test -f 'split_conv.c' || echo '$(srcdir)/'`split_conv.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-split_conv.Tpo $(DEPDIR)/xcfa-split_conv.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='split_conv.c' object='xcfa-split_conv.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-split_conv.o `test -f 'split_conv.c' || echo '$(srcdir)/'`split_conv.c xcfa-split_conv.obj: split_conv.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-split_conv.obj -MD -MP -MF $(DEPDIR)/xcfa-split_conv.Tpo -c -o xcfa-split_conv.obj `if test -f 'split_conv.c'; then $(CYGPATH_W) 'split_conv.c'; else $(CYGPATH_W) '$(srcdir)/split_conv.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-split_conv.Tpo $(DEPDIR)/xcfa-split_conv.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='split_conv.c' object='xcfa-split_conv.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-split_conv.obj `if test -f 'split_conv.c'; then $(CYGPATH_W) 'split_conv.c'; else $(CYGPATH_W) '$(srcdir)/split_conv.c'; fi` xcfa-split_wav.o: split_wav.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-split_wav.o -MD -MP -MF $(DEPDIR)/xcfa-split_wav.Tpo -c -o xcfa-split_wav.o `test -f 'split_wav.c' || echo '$(srcdir)/'`split_wav.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-split_wav.Tpo $(DEPDIR)/xcfa-split_wav.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='split_wav.c' object='xcfa-split_wav.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-split_wav.o `test -f 'split_wav.c' || echo '$(srcdir)/'`split_wav.c xcfa-split_wav.obj: split_wav.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-split_wav.obj -MD -MP -MF $(DEPDIR)/xcfa-split_wav.Tpo -c -o xcfa-split_wav.obj `if test -f 'split_wav.c'; then $(CYGPATH_W) 'split_wav.c'; else $(CYGPATH_W) '$(srcdir)/split_wav.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-split_wav.Tpo $(DEPDIR)/xcfa-split_wav.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='split_wav.c' object='xcfa-split_wav.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-split_wav.obj `if test -f 'split_wav.c'; then $(CYGPATH_W) 'split_wav.c'; else $(CYGPATH_W) '$(srcdir)/split_wav.c'; fi` xcfa-statusbar.o: statusbar.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-statusbar.o -MD -MP -MF $(DEPDIR)/xcfa-statusbar.Tpo -c -o xcfa-statusbar.o `test -f 'statusbar.c' || echo '$(srcdir)/'`statusbar.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-statusbar.Tpo $(DEPDIR)/xcfa-statusbar.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='statusbar.c' object='xcfa-statusbar.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-statusbar.o `test -f 'statusbar.c' || echo '$(srcdir)/'`statusbar.c xcfa-statusbar.obj: statusbar.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-statusbar.obj -MD -MP -MF $(DEPDIR)/xcfa-statusbar.Tpo -c -o xcfa-statusbar.obj `if test -f 'statusbar.c'; then $(CYGPATH_W) 'statusbar.c'; else $(CYGPATH_W) '$(srcdir)/statusbar.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-statusbar.Tpo $(DEPDIR)/xcfa-statusbar.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='statusbar.c' object='xcfa-statusbar.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-statusbar.obj `if test -f 'statusbar.c'; then $(CYGPATH_W) 'statusbar.c'; else $(CYGPATH_W) '$(srcdir)/statusbar.c'; fi` xcfa-tags.o: tags.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-tags.o -MD -MP -MF $(DEPDIR)/xcfa-tags.Tpo -c -o xcfa-tags.o `test -f 'tags.c' || echo '$(srcdir)/'`tags.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-tags.Tpo $(DEPDIR)/xcfa-tags.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tags.c' object='xcfa-tags.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-tags.o `test -f 'tags.c' || echo '$(srcdir)/'`tags.c xcfa-tags.obj: tags.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-tags.obj -MD -MP -MF $(DEPDIR)/xcfa-tags.Tpo -c -o xcfa-tags.obj `if test -f 'tags.c'; then $(CYGPATH_W) 'tags.c'; else $(CYGPATH_W) '$(srcdir)/tags.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-tags.Tpo $(DEPDIR)/xcfa-tags.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tags.c' object='xcfa-tags.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-tags.obj `if test -f 'tags.c'; then $(CYGPATH_W) 'tags.c'; else $(CYGPATH_W) '$(srcdir)/tags.c'; fi` xcfa-tags_aac.o: tags_aac.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-tags_aac.o -MD -MP -MF $(DEPDIR)/xcfa-tags_aac.Tpo -c -o xcfa-tags_aac.o `test -f 'tags_aac.c' || echo '$(srcdir)/'`tags_aac.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-tags_aac.Tpo $(DEPDIR)/xcfa-tags_aac.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tags_aac.c' object='xcfa-tags_aac.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-tags_aac.o `test -f 'tags_aac.c' || echo '$(srcdir)/'`tags_aac.c xcfa-tags_aac.obj: tags_aac.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-tags_aac.obj -MD -MP -MF $(DEPDIR)/xcfa-tags_aac.Tpo -c -o xcfa-tags_aac.obj `if test -f 'tags_aac.c'; then $(CYGPATH_W) 'tags_aac.c'; else $(CYGPATH_W) '$(srcdir)/tags_aac.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-tags_aac.Tpo $(DEPDIR)/xcfa-tags_aac.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tags_aac.c' object='xcfa-tags_aac.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-tags_aac.obj `if test -f 'tags_aac.c'; then $(CYGPATH_W) 'tags_aac.c'; else $(CYGPATH_W) '$(srcdir)/tags_aac.c'; fi` xcfa-tags_aiff.o: tags_aiff.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-tags_aiff.o -MD -MP -MF $(DEPDIR)/xcfa-tags_aiff.Tpo -c -o xcfa-tags_aiff.o `test -f 'tags_aiff.c' || echo '$(srcdir)/'`tags_aiff.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-tags_aiff.Tpo $(DEPDIR)/xcfa-tags_aiff.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tags_aiff.c' object='xcfa-tags_aiff.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-tags_aiff.o `test -f 'tags_aiff.c' || echo '$(srcdir)/'`tags_aiff.c xcfa-tags_aiff.obj: tags_aiff.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-tags_aiff.obj -MD -MP -MF $(DEPDIR)/xcfa-tags_aiff.Tpo -c -o xcfa-tags_aiff.obj `if test -f 'tags_aiff.c'; then $(CYGPATH_W) 'tags_aiff.c'; else $(CYGPATH_W) '$(srcdir)/tags_aiff.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-tags_aiff.Tpo $(DEPDIR)/xcfa-tags_aiff.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tags_aiff.c' object='xcfa-tags_aiff.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-tags_aiff.obj `if test -f 'tags_aiff.c'; then $(CYGPATH_W) 'tags_aiff.c'; else $(CYGPATH_W) '$(srcdir)/tags_aiff.c'; fi` xcfa-tags_ape.o: tags_ape.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-tags_ape.o -MD -MP -MF $(DEPDIR)/xcfa-tags_ape.Tpo -c -o xcfa-tags_ape.o `test -f 'tags_ape.c' || echo '$(srcdir)/'`tags_ape.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-tags_ape.Tpo $(DEPDIR)/xcfa-tags_ape.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tags_ape.c' object='xcfa-tags_ape.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-tags_ape.o `test -f 'tags_ape.c' || echo '$(srcdir)/'`tags_ape.c xcfa-tags_ape.obj: tags_ape.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-tags_ape.obj -MD -MP -MF $(DEPDIR)/xcfa-tags_ape.Tpo -c -o xcfa-tags_ape.obj `if test -f 'tags_ape.c'; then $(CYGPATH_W) 'tags_ape.c'; else $(CYGPATH_W) '$(srcdir)/tags_ape.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-tags_ape.Tpo $(DEPDIR)/xcfa-tags_ape.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tags_ape.c' object='xcfa-tags_ape.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-tags_ape.obj `if test -f 'tags_ape.c'; then $(CYGPATH_W) 'tags_ape.c'; else $(CYGPATH_W) '$(srcdir)/tags_ape.c'; fi` xcfa-tags_dts.o: tags_dts.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-tags_dts.o -MD -MP -MF $(DEPDIR)/xcfa-tags_dts.Tpo -c -o xcfa-tags_dts.o `test -f 'tags_dts.c' || echo '$(srcdir)/'`tags_dts.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-tags_dts.Tpo $(DEPDIR)/xcfa-tags_dts.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tags_dts.c' object='xcfa-tags_dts.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-tags_dts.o `test -f 'tags_dts.c' || echo '$(srcdir)/'`tags_dts.c xcfa-tags_dts.obj: tags_dts.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-tags_dts.obj -MD -MP -MF $(DEPDIR)/xcfa-tags_dts.Tpo -c -o xcfa-tags_dts.obj `if test -f 'tags_dts.c'; then $(CYGPATH_W) 'tags_dts.c'; else $(CYGPATH_W) '$(srcdir)/tags_dts.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-tags_dts.Tpo $(DEPDIR)/xcfa-tags_dts.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tags_dts.c' object='xcfa-tags_dts.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-tags_dts.obj `if test -f 'tags_dts.c'; then $(CYGPATH_W) 'tags_dts.c'; else $(CYGPATH_W) '$(srcdir)/tags_dts.c'; fi` xcfa-tags_flac.o: tags_flac.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-tags_flac.o -MD -MP -MF $(DEPDIR)/xcfa-tags_flac.Tpo -c -o xcfa-tags_flac.o `test -f 'tags_flac.c' || echo '$(srcdir)/'`tags_flac.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-tags_flac.Tpo $(DEPDIR)/xcfa-tags_flac.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tags_flac.c' object='xcfa-tags_flac.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-tags_flac.o `test -f 'tags_flac.c' || echo '$(srcdir)/'`tags_flac.c xcfa-tags_flac.obj: tags_flac.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-tags_flac.obj -MD -MP -MF $(DEPDIR)/xcfa-tags_flac.Tpo -c -o xcfa-tags_flac.obj `if test -f 'tags_flac.c'; then $(CYGPATH_W) 'tags_flac.c'; else $(CYGPATH_W) '$(srcdir)/tags_flac.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-tags_flac.Tpo $(DEPDIR)/xcfa-tags_flac.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tags_flac.c' object='xcfa-tags_flac.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-tags_flac.obj `if test -f 'tags_flac.c'; then $(CYGPATH_W) 'tags_flac.c'; else $(CYGPATH_W) '$(srcdir)/tags_flac.c'; fi` xcfa-tags_m4a.o: tags_m4a.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-tags_m4a.o -MD -MP -MF $(DEPDIR)/xcfa-tags_m4a.Tpo -c -o xcfa-tags_m4a.o `test -f 'tags_m4a.c' || echo '$(srcdir)/'`tags_m4a.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-tags_m4a.Tpo $(DEPDIR)/xcfa-tags_m4a.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tags_m4a.c' object='xcfa-tags_m4a.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-tags_m4a.o `test -f 'tags_m4a.c' || echo '$(srcdir)/'`tags_m4a.c xcfa-tags_m4a.obj: tags_m4a.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-tags_m4a.obj -MD -MP -MF $(DEPDIR)/xcfa-tags_m4a.Tpo -c -o xcfa-tags_m4a.obj `if test -f 'tags_m4a.c'; then $(CYGPATH_W) 'tags_m4a.c'; else $(CYGPATH_W) '$(srcdir)/tags_m4a.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-tags_m4a.Tpo $(DEPDIR)/xcfa-tags_m4a.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tags_m4a.c' object='xcfa-tags_m4a.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-tags_m4a.obj `if test -f 'tags_m4a.c'; then $(CYGPATH_W) 'tags_m4a.c'; else $(CYGPATH_W) '$(srcdir)/tags_m4a.c'; fi` xcfa-tags_mp3.o: tags_mp3.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-tags_mp3.o -MD -MP -MF $(DEPDIR)/xcfa-tags_mp3.Tpo -c -o xcfa-tags_mp3.o `test -f 'tags_mp3.c' || echo '$(srcdir)/'`tags_mp3.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-tags_mp3.Tpo $(DEPDIR)/xcfa-tags_mp3.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tags_mp3.c' object='xcfa-tags_mp3.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-tags_mp3.o `test -f 'tags_mp3.c' || echo '$(srcdir)/'`tags_mp3.c xcfa-tags_mp3.obj: tags_mp3.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-tags_mp3.obj -MD -MP -MF $(DEPDIR)/xcfa-tags_mp3.Tpo -c -o xcfa-tags_mp3.obj `if test -f 'tags_mp3.c'; then $(CYGPATH_W) 'tags_mp3.c'; else $(CYGPATH_W) '$(srcdir)/tags_mp3.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-tags_mp3.Tpo $(DEPDIR)/xcfa-tags_mp3.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tags_mp3.c' object='xcfa-tags_mp3.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-tags_mp3.obj `if test -f 'tags_mp3.c'; then $(CYGPATH_W) 'tags_mp3.c'; else $(CYGPATH_W) '$(srcdir)/tags_mp3.c'; fi` xcfa-tags_mpc.o: tags_mpc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-tags_mpc.o -MD -MP -MF $(DEPDIR)/xcfa-tags_mpc.Tpo -c -o xcfa-tags_mpc.o `test -f 'tags_mpc.c' || echo '$(srcdir)/'`tags_mpc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-tags_mpc.Tpo $(DEPDIR)/xcfa-tags_mpc.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tags_mpc.c' object='xcfa-tags_mpc.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-tags_mpc.o `test -f 'tags_mpc.c' || echo '$(srcdir)/'`tags_mpc.c xcfa-tags_mpc.obj: tags_mpc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-tags_mpc.obj -MD -MP -MF $(DEPDIR)/xcfa-tags_mpc.Tpo -c -o xcfa-tags_mpc.obj `if test -f 'tags_mpc.c'; then $(CYGPATH_W) 'tags_mpc.c'; else $(CYGPATH_W) '$(srcdir)/tags_mpc.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-tags_mpc.Tpo $(DEPDIR)/xcfa-tags_mpc.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tags_mpc.c' object='xcfa-tags_mpc.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-tags_mpc.obj `if test -f 'tags_mpc.c'; then $(CYGPATH_W) 'tags_mpc.c'; else $(CYGPATH_W) '$(srcdir)/tags_mpc.c'; fi` xcfa-tags_ogg.o: tags_ogg.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-tags_ogg.o -MD -MP -MF $(DEPDIR)/xcfa-tags_ogg.Tpo -c -o xcfa-tags_ogg.o `test -f 'tags_ogg.c' || echo '$(srcdir)/'`tags_ogg.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-tags_ogg.Tpo $(DEPDIR)/xcfa-tags_ogg.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tags_ogg.c' object='xcfa-tags_ogg.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-tags_ogg.o `test -f 'tags_ogg.c' || echo '$(srcdir)/'`tags_ogg.c xcfa-tags_ogg.obj: tags_ogg.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-tags_ogg.obj -MD -MP -MF $(DEPDIR)/xcfa-tags_ogg.Tpo -c -o xcfa-tags_ogg.obj `if test -f 'tags_ogg.c'; then $(CYGPATH_W) 'tags_ogg.c'; else $(CYGPATH_W) '$(srcdir)/tags_ogg.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-tags_ogg.Tpo $(DEPDIR)/xcfa-tags_ogg.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tags_ogg.c' object='xcfa-tags_ogg.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-tags_ogg.obj `if test -f 'tags_ogg.c'; then $(CYGPATH_W) 'tags_ogg.c'; else $(CYGPATH_W) '$(srcdir)/tags_ogg.c'; fi` xcfa-tags_rm.o: tags_rm.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-tags_rm.o -MD -MP -MF $(DEPDIR)/xcfa-tags_rm.Tpo -c -o xcfa-tags_rm.o `test -f 'tags_rm.c' || echo '$(srcdir)/'`tags_rm.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-tags_rm.Tpo $(DEPDIR)/xcfa-tags_rm.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tags_rm.c' object='xcfa-tags_rm.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-tags_rm.o `test -f 'tags_rm.c' || echo '$(srcdir)/'`tags_rm.c xcfa-tags_rm.obj: tags_rm.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-tags_rm.obj -MD -MP -MF $(DEPDIR)/xcfa-tags_rm.Tpo -c -o xcfa-tags_rm.obj `if test -f 'tags_rm.c'; then $(CYGPATH_W) 'tags_rm.c'; else $(CYGPATH_W) '$(srcdir)/tags_rm.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-tags_rm.Tpo $(DEPDIR)/xcfa-tags_rm.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tags_rm.c' object='xcfa-tags_rm.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-tags_rm.obj `if test -f 'tags_rm.c'; then $(CYGPATH_W) 'tags_rm.c'; else $(CYGPATH_W) '$(srcdir)/tags_rm.c'; fi` xcfa-tags_shn.o: tags_shn.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-tags_shn.o -MD -MP -MF $(DEPDIR)/xcfa-tags_shn.Tpo -c -o xcfa-tags_shn.o `test -f 'tags_shn.c' || echo '$(srcdir)/'`tags_shn.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-tags_shn.Tpo $(DEPDIR)/xcfa-tags_shn.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tags_shn.c' object='xcfa-tags_shn.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-tags_shn.o `test -f 'tags_shn.c' || echo '$(srcdir)/'`tags_shn.c xcfa-tags_shn.obj: tags_shn.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-tags_shn.obj -MD -MP -MF $(DEPDIR)/xcfa-tags_shn.Tpo -c -o xcfa-tags_shn.obj `if test -f 'tags_shn.c'; then $(CYGPATH_W) 'tags_shn.c'; else $(CYGPATH_W) '$(srcdir)/tags_shn.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-tags_shn.Tpo $(DEPDIR)/xcfa-tags_shn.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tags_shn.c' object='xcfa-tags_shn.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-tags_shn.obj `if test -f 'tags_shn.c'; then $(CYGPATH_W) 'tags_shn.c'; else $(CYGPATH_W) '$(srcdir)/tags_shn.c'; fi` xcfa-tags_wav.o: tags_wav.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-tags_wav.o -MD -MP -MF $(DEPDIR)/xcfa-tags_wav.Tpo -c -o xcfa-tags_wav.o `test -f 'tags_wav.c' || echo '$(srcdir)/'`tags_wav.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-tags_wav.Tpo $(DEPDIR)/xcfa-tags_wav.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tags_wav.c' object='xcfa-tags_wav.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-tags_wav.o `test -f 'tags_wav.c' || echo '$(srcdir)/'`tags_wav.c xcfa-tags_wav.obj: tags_wav.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-tags_wav.obj -MD -MP -MF $(DEPDIR)/xcfa-tags_wav.Tpo -c -o xcfa-tags_wav.obj `if test -f 'tags_wav.c'; then $(CYGPATH_W) 'tags_wav.c'; else $(CYGPATH_W) '$(srcdir)/tags_wav.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-tags_wav.Tpo $(DEPDIR)/xcfa-tags_wav.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tags_wav.c' object='xcfa-tags_wav.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-tags_wav.obj `if test -f 'tags_wav.c'; then $(CYGPATH_W) 'tags_wav.c'; else $(CYGPATH_W) '$(srcdir)/tags_wav.c'; fi` xcfa-tags_wavpack.o: tags_wavpack.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-tags_wavpack.o -MD -MP -MF $(DEPDIR)/xcfa-tags_wavpack.Tpo -c -o xcfa-tags_wavpack.o `test -f 'tags_wavpack.c' || echo '$(srcdir)/'`tags_wavpack.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-tags_wavpack.Tpo $(DEPDIR)/xcfa-tags_wavpack.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tags_wavpack.c' object='xcfa-tags_wavpack.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-tags_wavpack.o `test -f 'tags_wavpack.c' || echo '$(srcdir)/'`tags_wavpack.c xcfa-tags_wavpack.obj: tags_wavpack.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-tags_wavpack.obj -MD -MP -MF $(DEPDIR)/xcfa-tags_wavpack.Tpo -c -o xcfa-tags_wavpack.obj `if test -f 'tags_wavpack.c'; then $(CYGPATH_W) 'tags_wavpack.c'; else $(CYGPATH_W) '$(srcdir)/tags_wavpack.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-tags_wavpack.Tpo $(DEPDIR)/xcfa-tags_wavpack.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tags_wavpack.c' object='xcfa-tags_wavpack.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-tags_wavpack.obj `if test -f 'tags_wavpack.c'; then $(CYGPATH_W) 'tags_wavpack.c'; else $(CYGPATH_W) '$(srcdir)/tags_wavpack.c'; fi` xcfa-tags_wma.o: tags_wma.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-tags_wma.o -MD -MP -MF $(DEPDIR)/xcfa-tags_wma.Tpo -c -o xcfa-tags_wma.o `test -f 'tags_wma.c' || echo '$(srcdir)/'`tags_wma.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-tags_wma.Tpo $(DEPDIR)/xcfa-tags_wma.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tags_wma.c' object='xcfa-tags_wma.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-tags_wma.o `test -f 'tags_wma.c' || echo '$(srcdir)/'`tags_wma.c xcfa-tags_wma.obj: tags_wma.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-tags_wma.obj -MD -MP -MF $(DEPDIR)/xcfa-tags_wma.Tpo -c -o xcfa-tags_wma.obj `if test -f 'tags_wma.c'; then $(CYGPATH_W) 'tags_wma.c'; else $(CYGPATH_W) '$(srcdir)/tags_wma.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-tags_wma.Tpo $(DEPDIR)/xcfa-tags_wma.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tags_wma.c' object='xcfa-tags_wma.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-tags_wma.obj `if test -f 'tags_wma.c'; then $(CYGPATH_W) 'tags_wma.c'; else $(CYGPATH_W) '$(srcdir)/tags_wma.c'; fi` xcfa-tags_ac3.o: tags_ac3.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-tags_ac3.o -MD -MP -MF $(DEPDIR)/xcfa-tags_ac3.Tpo -c -o xcfa-tags_ac3.o `test -f 'tags_ac3.c' || echo '$(srcdir)/'`tags_ac3.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-tags_ac3.Tpo $(DEPDIR)/xcfa-tags_ac3.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tags_ac3.c' object='xcfa-tags_ac3.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-tags_ac3.o `test -f 'tags_ac3.c' || echo '$(srcdir)/'`tags_ac3.c xcfa-tags_ac3.obj: tags_ac3.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-tags_ac3.obj -MD -MP -MF $(DEPDIR)/xcfa-tags_ac3.Tpo -c -o xcfa-tags_ac3.obj `if test -f 'tags_ac3.c'; then $(CYGPATH_W) 'tags_ac3.c'; else $(CYGPATH_W) '$(srcdir)/tags_ac3.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-tags_ac3.Tpo $(DEPDIR)/xcfa-tags_ac3.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tags_ac3.c' object='xcfa-tags_ac3.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-tags_ac3.obj `if test -f 'tags_ac3.c'; then $(CYGPATH_W) 'tags_ac3.c'; else $(CYGPATH_W) '$(srcdir)/tags_ac3.c'; fi` xcfa-translate.o: translate.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-translate.o -MD -MP -MF $(DEPDIR)/xcfa-translate.Tpo -c -o xcfa-translate.o `test -f 'translate.c' || echo '$(srcdir)/'`translate.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-translate.Tpo $(DEPDIR)/xcfa-translate.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='translate.c' object='xcfa-translate.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-translate.o `test -f 'translate.c' || echo '$(srcdir)/'`translate.c xcfa-translate.obj: translate.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-translate.obj -MD -MP -MF $(DEPDIR)/xcfa-translate.Tpo -c -o xcfa-translate.obj `if test -f 'translate.c'; then $(CYGPATH_W) 'translate.c'; else $(CYGPATH_W) '$(srcdir)/translate.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-translate.Tpo $(DEPDIR)/xcfa-translate.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='translate.c' object='xcfa-translate.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-translate.obj `if test -f 'translate.c'; then $(CYGPATH_W) 'translate.c'; else $(CYGPATH_W) '$(srcdir)/translate.c'; fi` xcfa-treeview.o: treeview.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-treeview.o -MD -MP -MF $(DEPDIR)/xcfa-treeview.Tpo -c -o xcfa-treeview.o `test -f 'treeview.c' || echo '$(srcdir)/'`treeview.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-treeview.Tpo $(DEPDIR)/xcfa-treeview.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='treeview.c' object='xcfa-treeview.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-treeview.o `test -f 'treeview.c' || echo '$(srcdir)/'`treeview.c xcfa-treeview.obj: treeview.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-treeview.obj -MD -MP -MF $(DEPDIR)/xcfa-treeview.Tpo -c -o xcfa-treeview.obj `if test -f 'treeview.c'; then $(CYGPATH_W) 'treeview.c'; else $(CYGPATH_W) '$(srcdir)/treeview.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-treeview.Tpo $(DEPDIR)/xcfa-treeview.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='treeview.c' object='xcfa-treeview.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-treeview.obj `if test -f 'treeview.c'; then $(CYGPATH_W) 'treeview.c'; else $(CYGPATH_W) '$(srcdir)/treeview.c'; fi` xcfa-web.o: web.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-web.o -MD -MP -MF $(DEPDIR)/xcfa-web.Tpo -c -o xcfa-web.o `test -f 'web.c' || echo '$(srcdir)/'`web.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-web.Tpo $(DEPDIR)/xcfa-web.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='web.c' object='xcfa-web.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-web.o `test -f 'web.c' || echo '$(srcdir)/'`web.c xcfa-web.obj: web.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-web.obj -MD -MP -MF $(DEPDIR)/xcfa-web.Tpo -c -o xcfa-web.obj `if test -f 'web.c'; then $(CYGPATH_W) 'web.c'; else $(CYGPATH_W) '$(srcdir)/web.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-web.Tpo $(DEPDIR)/xcfa-web.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='web.c' object='xcfa-web.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-web.obj `if test -f 'web.c'; then $(CYGPATH_W) 'web.c'; else $(CYGPATH_W) '$(srcdir)/web.c'; fi` xcfa-win_about.o: win_about.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-win_about.o -MD -MP -MF $(DEPDIR)/xcfa-win_about.Tpo -c -o xcfa-win_about.o `test -f 'win_about.c' || echo '$(srcdir)/'`win_about.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-win_about.Tpo $(DEPDIR)/xcfa-win_about.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='win_about.c' object='xcfa-win_about.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-win_about.o `test -f 'win_about.c' || echo '$(srcdir)/'`win_about.c xcfa-win_about.obj: win_about.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-win_about.obj -MD -MP -MF $(DEPDIR)/xcfa-win_about.Tpo -c -o xcfa-win_about.obj `if test -f 'win_about.c'; then $(CYGPATH_W) 'win_about.c'; else $(CYGPATH_W) '$(srcdir)/win_about.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-win_about.Tpo $(DEPDIR)/xcfa-win_about.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='win_about.c' object='xcfa-win_about.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-win_about.obj `if test -f 'win_about.c'; then $(CYGPATH_W) 'win_about.c'; else $(CYGPATH_W) '$(srcdir)/win_about.c'; fi` xcfa-win_info.o: win_info.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-win_info.o -MD -MP -MF $(DEPDIR)/xcfa-win_info.Tpo -c -o xcfa-win_info.o `test -f 'win_info.c' || echo '$(srcdir)/'`win_info.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-win_info.Tpo $(DEPDIR)/xcfa-win_info.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='win_info.c' object='xcfa-win_info.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-win_info.o `test -f 'win_info.c' || echo '$(srcdir)/'`win_info.c xcfa-win_info.obj: win_info.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-win_info.obj -MD -MP -MF $(DEPDIR)/xcfa-win_info.Tpo -c -o xcfa-win_info.obj `if test -f 'win_info.c'; then $(CYGPATH_W) 'win_info.c'; else $(CYGPATH_W) '$(srcdir)/win_info.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-win_info.Tpo $(DEPDIR)/xcfa-win_info.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='win_info.c' object='xcfa-win_info.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-win_info.obj `if test -f 'win_info.c'; then $(CYGPATH_W) 'win_info.c'; else $(CYGPATH_W) '$(srcdir)/win_info.c'; fi` xcfa-win_reader.o: win_reader.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-win_reader.o -MD -MP -MF $(DEPDIR)/xcfa-win_reader.Tpo -c -o xcfa-win_reader.o `test -f 'win_reader.c' || echo '$(srcdir)/'`win_reader.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-win_reader.Tpo $(DEPDIR)/xcfa-win_reader.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='win_reader.c' object='xcfa-win_reader.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-win_reader.o `test -f 'win_reader.c' || echo '$(srcdir)/'`win_reader.c xcfa-win_reader.obj: win_reader.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-win_reader.obj -MD -MP -MF $(DEPDIR)/xcfa-win_reader.Tpo -c -o xcfa-win_reader.obj `if test -f 'win_reader.c'; then $(CYGPATH_W) 'win_reader.c'; else $(CYGPATH_W) '$(srcdir)/win_reader.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-win_reader.Tpo $(DEPDIR)/xcfa-win_reader.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='win_reader.c' object='xcfa-win_reader.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-win_reader.obj `if test -f 'win_reader.c'; then $(CYGPATH_W) 'win_reader.c'; else $(CYGPATH_W) '$(srcdir)/win_reader.c'; fi` xcfa-win_scan.o: win_scan.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-win_scan.o -MD -MP -MF $(DEPDIR)/xcfa-win_scan.Tpo -c -o xcfa-win_scan.o `test -f 'win_scan.c' || echo '$(srcdir)/'`win_scan.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-win_scan.Tpo $(DEPDIR)/xcfa-win_scan.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='win_scan.c' object='xcfa-win_scan.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-win_scan.o `test -f 'win_scan.c' || echo '$(srcdir)/'`win_scan.c xcfa-win_scan.obj: win_scan.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-win_scan.obj -MD -MP -MF $(DEPDIR)/xcfa-win_scan.Tpo -c -o xcfa-win_scan.obj `if test -f 'win_scan.c'; then $(CYGPATH_W) 'win_scan.c'; else $(CYGPATH_W) '$(srcdir)/win_scan.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-win_scan.Tpo $(DEPDIR)/xcfa-win_scan.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='win_scan.c' object='xcfa-win_scan.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-win_scan.obj `if test -f 'win_scan.c'; then $(CYGPATH_W) 'win_scan.c'; else $(CYGPATH_W) '$(srcdir)/win_scan.c'; fi` xcfa-win_vte.o: win_vte.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-win_vte.o -MD -MP -MF $(DEPDIR)/xcfa-win_vte.Tpo -c -o xcfa-win_vte.o `test -f 'win_vte.c' || echo '$(srcdir)/'`win_vte.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-win_vte.Tpo $(DEPDIR)/xcfa-win_vte.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='win_vte.c' object='xcfa-win_vte.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-win_vte.o `test -f 'win_vte.c' || echo '$(srcdir)/'`win_vte.c xcfa-win_vte.obj: win_vte.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xcfa-win_vte.obj -MD -MP -MF $(DEPDIR)/xcfa-win_vte.Tpo -c -o xcfa-win_vte.obj `if test -f 'win_vte.c'; then $(CYGPATH_W) 'win_vte.c'; else $(CYGPATH_W) '$(srcdir)/win_vte.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xcfa-win_vte.Tpo $(DEPDIR)/xcfa-win_vte.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='win_vte.c' object='xcfa-win_vte.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xcfa_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xcfa-win_vte.obj `if test -f 'win_vte.c'; then $(CYGPATH_W) 'win_vte.c'; else $(CYGPATH_W) '$(srcdir)/win_vte.c'; fi` ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) installdirs: for dir in "$(DESTDIR)$(bindir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-binPROGRAMS clean-generic mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-binPROGRAMS install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ clean-generic ctags distclean distclean-compile \ distclean-generic distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-binPROGRAMS \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ uninstall-am uninstall-binPROGRAMS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: xcfa-4.3.6/src/cd_audio_extract.h0000644000175000017500000000200012122563437013624 00000000000000 /* * file : cd_audio_extract.h * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifndef cd_audio_extract_h #define cd_audio_extract_h 1 void cdaudioextract_extraction_cd_to_file_action (void); #endif xcfa-4.3.6/src/tags_flac.c0000644000175000017500000001001312122563465012245 00000000000000 /* * file : tags_flac.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #include #include #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "tags.h" #include /* *--------------------------------------------------------------------------- * VARIABLES *--------------------------------------------------------------------------- */ /* *--------------------------------------------------------------------------- * GET HEADER *--------------------------------------------------------------------------- */ INFO_FLAC *tagsflac_remove_info (INFO_FLAC *info) { if (info) { g_free (info->time); info->tags = (TAGS *)tags_remove (info->tags); g_free (info); info = NULL; } return ((INFO_FLAC *)NULL); } INFO_FLAC *tagsflac_get_info (DETAIL *detail) { TagLib_File *file; TagLib_Tag *tag; INFO_FLAC *ptrinfo = NULL; const TagLib_AudioProperties *properties; gint m; gint s; gint sec; ptrinfo = (INFO_FLAC *)g_malloc0 (sizeof (INFO_FLAC)); if (ptrinfo == NULL) return (NULL); ptrinfo->tags = (TAGS *)tags_alloc (FALSE); if ((file = taglib_file_new (detail->namefile))) { taglib_set_strings_unicode(FALSE); tag = taglib_file_tag(file); properties = taglib_file_audioproperties(file); ptrinfo->tags->Title = g_strdup (taglib_tag_title(tag)); ptrinfo->tags->Artist = g_strdup (taglib_tag_artist(tag)); ptrinfo->tags->Album = g_strdup (taglib_tag_album(tag)); ptrinfo->tags->IntYear = taglib_tag_year(tag); ptrinfo->tags->Year = g_strdup_printf ("%d", ptrinfo->tags->IntYear); ptrinfo->tags->Comment = g_strdup (taglib_tag_comment(tag)); ptrinfo->tags->IntNumber = taglib_tag_track(tag); ptrinfo->tags->Number = g_strdup_printf ("%d", ptrinfo->tags->IntNumber); ptrinfo->tags->Genre = g_strdup (taglib_tag_genre(tag)); ptrinfo->tags->IntGenre = tags_get_genre_by_value (ptrinfo->tags->Genre); ptrinfo->SecTime = taglib_audioproperties_length(properties); sec = taglib_audioproperties_length(properties); s = sec % 60; sec /= 60; m = sec % 60; sec /= 60; if (sec > 0) ptrinfo->time = g_strdup_printf ("%02d:%02d:%02d", sec, m, s); else ptrinfo->time = g_strdup_printf ("%02d:%02d", m, s); /* printf("title - \"%s\"\n", taglib_tag_title(tag)); printf("artist - \"%s\"\n", taglib_tag_artist(tag)); printf("album - \"%s\"\n", taglib_tag_album(tag)); printf("year - \"%i\"\n", taglib_tag_year(tag)); printf("comment - \"%s\"\n", taglib_tag_comment(tag)); printf("track - \"%i\"\n", taglib_tag_track(tag)); printf("genre - \"%s\"\n", taglib_tag_genre(tag)); printf("-- AUDIO --\n"); printf("bitrate - %i\n", taglib_audioproperties_bitrate(properties)); printf("sample rate - %i\n", taglib_audioproperties_samplerate(properties)); printf("channels - %i\n", taglib_audioproperties_channels(properties)); printf("length - %i:%02i\n", minutes, seconds); */ taglib_tag_free_strings(); taglib_file_free (file); } return (ptrinfo); } xcfa-4.3.6/src/translate.c0000644000175000017500000003502312122563465012327 00000000000000 /* * file : translate.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" void translate_xcfa (void) { typedef struct { gchar *string; } TRANS; TRANS trans[] = { { _("Fichier") }, { _("Quitter") }, { _("Outils") }, { _("Visibilite des champs") }, { _("Aide") }, { _("A propos") }, { _("Lecture") }, { _(" Choix du peripherique / Lecture du DVD ") }, { _(" Destination des fichiers ") }, { _(" Eject ") }, { _(" Normaliser ") }, { _("Deplier") }, { _("Replier") }, { _(" Vers 2CH: Sub / Ambiance ") }, { _("Extraire") }, { _(" DVD ") }, { _("Lecture") }, { _(" Choix du peripherique / Lecture du CD ") }, { _(" Destination des fichiers ") }, { _(" Eject ") }, { _("Titre:") }, { _("Album:") }, { _("Artiste:") }, { _(" Annee:") }, { _(" Genre:") }, { _(" Piste:") }, { _(" *.m3u et xspf: ") }, { _("Commentaire:") }, { _(" Modification des tags Freedb ") }, { _("%a [ %a=\"Artist\" ]\n\n%b [ %b=\"Album\" ]\n\n%Tl - Tetsumaki lower\n\nTransforme la chaine en minuscule sauf le premier caractere.\n\nDans le champs 'Titre' depuis [ Modification des tags FreeDB ],\nle ou les caracteres devant etre conserves doivent etre precedes par le caractere %") }, { _("%a - artiste %b - titre de l'album %c - numero de la piste\n%d - titre de la chanson %e - annee %g - genre\n%f - creation d'un fichier *.m3u et *.xspf %na - no accent\n%u - remplacement de caracteres: %u(AB=C) %u( =_) %Tl - Tetsumaki lower") }, { _(" Arrangement des titres du CD ") }, { _("Creation d'un fichier unique au format: ") }, { _(" et dont le nom sera: ") }, { _("Ecriture du fichier cue") }, { _(" Au moins deux selections colonne Wav ") }, { _("Creation d'un fichier cue\nunique depuis une lecture\ndu cd audio") }, { _("Creation fichier cue uniquement") }, { _(" Creation Cue cd ") }, { _(" Creation d'un fichier unique ") }, { _("Gestion des tags, titres et fichiers cue") }, { _(" Normaliser ") }, { _("definit le serveur a contacter pour les recherches titre") }, { _("Parametres par defaut") }, { _(" Serveur ") }, { _("Choix parmis les differentes bases de donnees pour le CD.") }, { _("DiscId") }, { _("Extraire") }, { _(" CD ") }, { _(" Importer ") }, { _(" Destination des conversions ") }, { _(" Nettoyer ") }, { _("Appliquer les modifications") }, { _(" Normalise: ") }, { _(" Choix niveau dBFS: ") }, { _(" Fichiers ") }, { _("Appliquer les modifications") }, { _(" Wav ") }, { _("Appliquer") }, { _("Effacer") }, { _(" Mp3-Ogg ") }, { _("Titre:") }, { _("Album:") }, { _("Artiste:") }, { _("Commentaire:") }, { _(" Annee:") }, { _(" Genre:") }, { _(" Piste:") }, { _(" Modif.:") }, { _("0") }, { _("Appliquer") }, { _(" Tags ") }, { _(" Fichiers ") }, { _(" Importer ") }, { _(" Destination des fichiers ") }, { _("Lecture de 5 secondes apres le marqueur de debut") }, { _("Index de debut") }, { _("00h00m00s") }, { _("lecture") }, { _("Pause") }, { _("Index de lecture") }, { _("label") }, { _("Lecture de 5 secondes avant le marqueur de fin") }, { _("Index de fin") }, { _("00h00m00s") }, { _("Plage") }, { _("Duree de la plage active") }, { _("00h00m00s") }, { _("Suprimer tous les marqueurs pour les remplacer par un marqueur unique") }, { _("Le fichier CUE sera enregistre vers 'Destination des fichiers'.") }, { _("Production fichier Cue") }, { _("Le resultat du Split sera dirige vers 'Destination des fichiers'.") }, { _("Split") }, { _(" Split ") }, { _("Importation du titre du CD.") }, { _("Titre CD") }, { _("Choix d'une nouvelle police.") }, { _("Texte gras.") }, { _("Texte italique.") }, { _("Apres une lecture de CD et un ajout d'etiquette, ce menu permet la mise en forme des titres, auteurs ...") }, { _("Ajouter du texte editable.") }, { _("Texte") }, { _("Saisissez ici un critere de recherche d'images.") }, { _("Importation des images depuis le Web.") }, { _("Import images web") }, { _("Supprimer l'image en selection") }, { _("AJouter de nouvelles images.") }, { _("Ouvre un fichier") }, { _("Enregistrer la page au format png.") }, { _("Sauvegarde le fichier") }, { _("Diminution de l'echelle.") }, { _("Reduit l'agrandissement") }, { _("Echelle a 100%.") }, { _("Remet l'echelle a 100%") }, { _("Augmentation de l'echelle.") }, { _("Augmente l'agrandissement") }, { _("Echelle compatible avec la taille de la fenetre.") }, { _("Adapte l'echelle a la taille de la fenetre") }, { _("Emplacement de sauvegarde des fichiers.") }, { _("Nom (sans extention) du fichier a sauvegarder.") }, { _("label") }, { _(" Pochette ") }, { _("Nice") }, { _(" Priorite systeme ") }, { _("Indiquez ici le dossier sur votre systeme qui servira de lieu\nde stockage provisoire pendant les differentes conversions.\n") }, { _(" Dossier provisoire des conversions ") }, { _("button") }, { _(" Jouer une musique en fin de tache ") }, { _(" General ") }, { _("cdparanoia") }, { _("cdparanoia mode expert") }, { _("cdparanoia mode expert multi passes") }, { _("cdda2wav / icedax") }, { _(" Extraction cd-audio avec: ") }, { _("HomePage") }, { _("ManPage ") }, { _(" Web cdparanoia ") }, { _("Le fichier LogExpertMode.txt sera cree dans le dossier des extractions") }, { _("Generation d'un rapport pour: cdparanoia mode expert multi passes") }, { _("%a - artiste %b - titre de l'album %c - numero de la piste\n%d - titre de la chanson %e - annee %g - genre\n%na - no accent %Tl - Tetsumaki lower\n%u - remplacement de caracteres: %u(AB=C) %u( =_)") }, { _(" Dossier de stockage ") }, { _(" CD ") }, { _("ABR / CBR / VBR / VBR-NEW") }, { _("Debit") }, { _("Mode") }, { _(" Lame (fichier mp3): ") }, { _("Par defaut") }, { _(" Options LAME ") }, { _("Site officiel") }, { _("Wiki mp3 ") }, { _("Wiki ") }, { _("ManPage ") }, { _(" Web Lame ") }, { _("[") }, { _("string option interne") }, { _("]") }, { _(" Options experts, definies par l'utilisateur - lame (wav -> mp3) ") }, { _(" Mp3 ") }, { _(" Mode") }, { _(" Mode flux (streaming)") }, { _(" Debit") }, { _(" Oggenc (fichier ogg): ") }, { _("Par defaut") }, { _(" Options OGGENC ") }, { _("Wiki ") }, { _("ManPage") }, { _(" Web Oggenc ") }, { _("[") }, { _("string option interne") }, { _("]") }, { _(" Options experts, definies par l'utilisateur - oggenc (wav -> ogg) ") }, { _(" Oggenc ") }, { _("Taux de compression") }, { _(" Flac (fichier flac): ") }, { _("Par defaut") }, { _(" Options FLAC ") }, { _("Site officiel") }, { _("Framasoft ") }, { _("ManPage ") }, { _(" Web Flac ") }, { _("[") }, { _("string option interne") }, { _("]") }, { _(" Options experts, definies par l'utilisateur - flac (wav -> flac) ") }, { _(" Flac ") }, { _(" Qualite") }, { _(" Mac (fichier ape): ") }, { _("Par defaut") }, { _(" Options MAC ") }, { _("Wiki") }, { _(" Web Mac ") }, { _("[") }, { _("string option interne") }, { _("]") }, { _(" Options experts, definies par l'utilisateur - mac (wav -> ape) ") }, { _(" Mac ") }, { _("Compression") }, { _("Son") }, { _("Mode hybride") }, { _("Fichier de correction") }, { _("Compression maximum") }, { _("Signature MD5") }, { _("Extra encode processing") }, { _(" WavPack (fichier wv): ") }, { _("Par defaut") }, { _(" Options WAVPACK ") }, { _("Wiki ") }, { _("ManPage") }, { _(" Web Wavpack ") }, { _("[") }, { _("string option interne") }, { _("]") }, { _(" Options experts, definies par l'utilisateur - wavpack (wav -> wv) ") }, { _(" Wavpack ") }, { _(" MusePack (fichier mpc): ") }, { _("Par defaut") }, { _(" Options MUSEPACK ") }, { _("Site officiel") }, { _("Framasoft ") }, { _(" Web Musepack ") }, { _("[") }, { _("string option interne") }, { _("]") }, { _(" Options experts, definies par l'utilisateur - musepack (wav -> mpc) ") }, { _(" Musepack ") }, { _(" Qualite VBR / Debit ABR") }, { _(" VBR / ABR") }, { _(" Conteneur") }, { _(" Faac (fichier .m4a): ") }, { _("Par defaut") }, { _(" Options FAAC ") }, { _("Site officiel ") }, { _("Web Info ") }, { _("ManPage") }, { _(" Web Faac ") }, { _("[") }, { _("string option interne") }, { _("]") }, { _(" Options experts, definies par l'utilisateur - faac (wav -> m4a) ") }, { _(" Faac ") }, { _(" Stereo: Qualite en kbit/s") }, { _(" Mono: Qualite en kbit/s") }, { _(" AacplusEnc (fichier .aac): ") }, { _("Par defaut") }, { _(" Options AacPlusEnc ") }, { _("Site officiel ") }, { _("Web Info ") }, { _("ManPage") }, { _(" Web AacPlusEnc ") }, { _(" AacplusEnc ") }, { _("Artiste") }, { _("Titre") }, { _("Album") }, { _("Numero") }, { _("Genre") }, { _("Annee") }, { _("Commentaire") }, { _(" Exportation de ") }, { _(" Tags ") }, { _(" Preferences ") }, { _("SCAN") }, { _(" Installation ") }, { _(" Votre systeme utilise ... ") }, { _("\nPour installer les programmes externes requis,\nveuillez utiliser l'installateur de votre distribution Gnu/Linux.\n") }, { _("Le programme XCFA_INSTALL_ALL ecrit en Perl vous sera utile en ligne de commande pour une installation des programmes complementaire.") }, { _(" Informations ") }, { _(" Application externes ") }, { _("parametres:") }, { _("\n konqueror : newTab\n iceweasel : -new-window -new-tab \n") }, { _("Navigateur") }, { _("parametres:") }, { _("Lecteurs audio") }, { _(" Navigateurs / Lecteurs audio ") }, { _(" Applications externes ") }, { _("Scan en cours ...") }, { _("Scan du support en cours ...") }, { _("Detail extraction mode expert") }, { _("Modification des champs") }, { _("\nModification des champs\n") }, { _("Titre") }, { _("Play") }, { _("Temps") }, { _("Format") }, { _("Choix") }, { _("Normalise") }, { _("Nom") }, { _(" Visibilite ") }, { _("Nom a gauche") }, { _("Nom au centre") }, { _("Nom a droite") }, { _("DVD") }, { _("Play") }, { _("Wav") }, { _("Flac") }, { _("Ape") }, { _("Wavpack") }, { _("Ogg") }, { _("M4a") }, { _("Aac") }, { _("Musepack") }, { _("Mp3") }, { _("Num") }, { _("Time") }, { _("Normalise") }, { _("Nom") }, { _(" Visibilite ") }, { _("Nom a gauche") }, { _("Nom au centre") }, { _("Nom a droite") }, { _("CD") }, { _("Play") }, { _("Trash") }, { _("Type") }, { _("Wav") }, { _("Flac") }, { _("Ape") }, { _("Wavpack") }, { _("Ogg") }, { _("M4a") }, { _("Aac") }, { _("Musepack") }, { _("Mp3") }, { _("Time") }, { _("Normalise") }, { _("Replaygain") }, { _("Nom") }, { _(" Visibilite ") }, { _("Nom a gauche") }, { _("Nom au centre") }, { _("Nom a droite") }, { _("CONVERSIONS") }, { _("Hertz") }, { _("New Hertz") }, { _("Voie") }, { _("New Voie") }, { _("Bits") }, { _("New Bits") }, { _("Nom") }, { _(" Visibilite ") }, { _("Nom a gauche") }, { _("Nom au centre") }, { _("Nom a droite") }, { _("WAV") }, { _("Type") }, { _("Bitrate") }, { _("New Bitrate") }, { _("Size") }, { _("Time") }, { _("Nom") }, { _(" Visibilite ") }, { _("Nom a gauche") }, { _("Nom au centre") }, { _("Nom a droite") }, { _("MP3-OGG") }, { _("Type") }, { _("Time") }, { _("Nom") }, { _(" Visibilite ") }, { _("Nom a gauche") }, { _("Nom au centre") }, { _("Nom a droite") }, { _("TAGS") }, { _("Selection globale") }, { _("Deselection globale") }, { _("Retour") }, { _("About X Convert File Audio") }, { _("Author") }, { _("Licence") }, { _(" Informations ") }, { _(" Machine ") }, { _("Ingenieurs du son\n") }, { _("\nGraphisme\n") }, { _("Traduction Anglaise\n\n\n") }, { _("\nTraduction Allemande") }, { _("\nCodeur Xcfa") }, { _("\nElementSpeak pour Xcfa ") }, { _("\nCodeur pages Web") }, { _("\nTraduction Italienne") }, { _("\n\nPages a visiter\n") }, { _("Linux On The Root") }, { _("Frugalware") }, { _("Road2Mayotte") }, { _("La Linuxerie") }, { _("Audioptimisation by Dzef") }, { _("Tuxfamily") }, { _("Framasoft") }, { _("Ekd (EnKoDeur-Mixeur)") }, { _("Bishop's page") }, { _("Je suis libre") }, { _("Debian Multimedia") }, { _("\nForum\n") }, { _("XCFA Vorstellung ") }, { _("XCFA LinuxForen.de") }, { _("Forum Xcfa") }, { _("\nDocumentation\n") }, { _("Wiki Xcfa par Shankarius") }, { _("Doc Xcfa par Patachon") }, { _("Ogg Vorbis explique par Shankarius") }, { _("La normalisation expliquee par Dzef") }, { _("Xcfa sur Linux On The Root") }, { _(" Contributions ") }, { _(" License ") }, { _("OK") } }; if (*trans [ 0 ] . string); } xcfa-4.3.6/src/cursor.c0000644000175000017500000001171412122563465011650 00000000000000 /* * file : cursor.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "cursor.h" /* *--------------------------------------------------------------------------- * TYPE DE CURSEUR SOURIS *--------------------------------------------------------------------------- */ static GdkCursor *_cursor = NULL; GdkCursorType cursor_type = GDK_LEFT_PTR; // // void cursor_set_clear (void) { if (cursor_type != GDK_HAND2) { cursor_type = GDK_HAND2; _cursor = gdk_cursor_new (cursor_type); gdk_window_set_cursor (GDK_WINDOW(WindMain->window), _cursor); gdk_flush (); } } // // void cursor_set_hand (void) { if (cursor_type != GDK_HAND2) { cursor_type = GDK_HAND2; _cursor = gdk_cursor_new (cursor_type); gdk_window_set_cursor (GDK_WINDOW(WindMain->window), _cursor); gdk_flush (); } } // // void cursor_set_saisie (void) { if (cursor_type != GDK_XTERM) { cursor_type = GDK_XTERM; _cursor = gdk_cursor_new (cursor_type); gdk_window_set_cursor (GDK_WINDOW(WindMain->window), _cursor); gdk_flush (); } } // // void cursor_set_gauche_droite (void) { if (cursor_type != GDK_SB_H_DOUBLE_ARROW) { cursor_type = GDK_SB_H_DOUBLE_ARROW; _cursor = gdk_cursor_new (cursor_type); gdk_window_set_cursor (GDK_WINDOW(WindMain->window), _cursor); gdk_flush (); } } // // void cursor_set_haut (void) { if (cursor_type != GDK_TOP_SIDE) { cursor_type = GDK_TOP_SIDE; _cursor = gdk_cursor_new (cursor_type); gdk_window_set_cursor (GDK_WINDOW(WindMain->window), _cursor); gdk_flush (); } } // // void cursor_set_bas (void) { if (cursor_type != GDK_BOTTOM_SIDE) { cursor_type = GDK_BOTTOM_SIDE; _cursor = gdk_cursor_new (cursor_type); gdk_window_set_cursor (GDK_WINDOW(WindMain->window), _cursor); gdk_flush (); } } // // void cursor_set_gauche (void) { if (cursor_type != GDK_LEFT_SIDE) { cursor_type = GDK_LEFT_SIDE; _cursor = gdk_cursor_new (cursor_type); gdk_window_set_cursor (GDK_WINDOW(WindMain->window), _cursor); gdk_flush (); } } // // void cursor_set_droit (void) { if (cursor_type != GDK_RIGHT_SIDE) { cursor_type = GDK_RIGHT_SIDE; _cursor = gdk_cursor_new (cursor_type); gdk_window_set_cursor (GDK_WINDOW(WindMain->window), _cursor); gdk_flush (); } } // // void cursor_set_haut_gauche (void) { if (cursor_type != GDK_TOP_LEFT_CORNER) { cursor_type = GDK_TOP_LEFT_CORNER; _cursor = gdk_cursor_new (cursor_type); gdk_window_set_cursor (GDK_WINDOW(WindMain->window), _cursor); gdk_flush (); } } // // void cursor_set_haut_droit (void) { if (cursor_type != GDK_TOP_RIGHT_CORNER) { cursor_type = GDK_TOP_RIGHT_CORNER; _cursor = gdk_cursor_new (cursor_type); gdk_window_set_cursor (GDK_WINDOW(WindMain->window), _cursor); gdk_flush (); } } // // void cursor_set_bas_gauche (void) { if (cursor_type != GDK_BOTTOM_LEFT_CORNER) { cursor_type = GDK_BOTTOM_LEFT_CORNER; _cursor = gdk_cursor_new (cursor_type); gdk_window_set_cursor (GDK_WINDOW(WindMain->window), _cursor); gdk_flush (); } } // // void cursor_set_bas_droit (void) { if (cursor_type != GDK_BOTTOM_RIGHT_CORNER) { cursor_type = GDK_BOTTOM_RIGHT_CORNER; _cursor = gdk_cursor_new (cursor_type); gdk_window_set_cursor (GDK_WINDOW(WindMain->window), _cursor); gdk_flush (); } } // // void cursor_set_move (void) { if (cursor_type != GDK_FLEUR) { cursor_type = GDK_FLEUR; _cursor = gdk_cursor_new (cursor_type); gdk_window_set_cursor (GDK_WINDOW(WindMain->window), _cursor); gdk_flush (); } } // // void cursor_set_old (void) { if (cursor_type != GDK_LEFT_PTR) { cursor_type = GDK_LEFT_PTR; _cursor = gdk_cursor_new (cursor_type); gdk_window_set_cursor (GDK_WINDOW(WindMain->window), _cursor); gdk_flush (); } } // // void cursor_set_watch (void) { if (cursor_type != GDK_WATCH) { cursor_type = GDK_WATCH; _cursor = gdk_cursor_new (cursor_type); gdk_window_set_cursor (GDK_WINDOW(WindMain->window), _cursor); gdk_flush (); } } // // gboolean cursor_get_watch (void) { return (cursor_type == GDK_WATCH ? TRUE : FALSE); } xcfa-4.3.6/src/tags_wav.c0000644000175000017500000004060712161733164012147 00000000000000 /* * file : tags_wav.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #include #include #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "tags.h" // // void tagswav_close_file( WAVE *WaveHeader ) { if (NULL != WaveHeader->file) { fclose(WaveHeader->file); WaveHeader->file = NULL; } } // // void tagswav_init (WAVE *WaveHeader) { WaveHeader->RIFF.ChunkID [ 0 ] = '\0'; WaveHeader->RIFF.ChunkSize = 0; WaveHeader->RIFF.Format [ 0 ] = '\0'; WaveHeader->FMT.Subchunk1ID [ 0 ] = '\0'; WaveHeader->FMT.Subchunk1Size = 0; WaveHeader->FMT.AudioFormat = 0; WaveHeader->FMT.NumChannels = 0; WaveHeader->FMT.SampleRate = 0; WaveHeader->FMT.ByteRate = 0; WaveHeader->FMT.Blockalign = 0; WaveHeader->FMT.BitsPerSample = 0; WaveHeader->DATA.Subchunk2ID [ 0 ] = '\0'; WaveHeader->DATA.Subchunk2Size = 0; WaveHeader->DATA.data = NULL; WaveHeader->file = NULL; WaveHeader->TagWavIsFmtBext = TAG_WAVE_IS_NONE; } // // void tagswav_print_header( gchar *p_PathNameFile, WAVE *WaveHeader) { if( TRUE == OptionsCommandLine.BoolVerboseMode ) { g_print ("\n" ); g_print ("\t%s\n", p_PathNameFile ); g_print ("\tChunkID = %c%c%c%c\n", WaveHeader->RIFF.ChunkID [ 0 ], WaveHeader->RIFF.ChunkID [ 1 ], WaveHeader->RIFF.ChunkID [ 2 ], WaveHeader->RIFF.ChunkID [ 3 ] ); g_print ("\tChunkSize = %d\n", WaveHeader->RIFF.ChunkSize); g_print ("\tFormat = %c%c%c%c\n", WaveHeader->RIFF.Format [ 0 ], WaveHeader->RIFF.Format [ 1 ], WaveHeader->RIFF.Format [ 2 ], WaveHeader->RIFF.Format [ 3 ] ); g_print( "\t%s\n", (WaveHeader->TagWavIsFmtBext == TAG_WAVE_IS_FMT) ? "[ 'fmt ' ]" : "[ 'bext' | 'qlty' | 'levl' | 'link' | 'axml' ]" ); g_print ("\tSubchunk1ID = %c%c%c%c\n", WaveHeader->FMT.Subchunk1ID [ 0 ], WaveHeader->FMT.Subchunk1ID [ 1 ], WaveHeader->FMT.Subchunk1ID [ 2 ], WaveHeader->FMT.Subchunk1ID [ 3 ] ); g_print ("\tSubchunk1Size = %d\n", WaveHeader->FMT.Subchunk1Size); g_print ("\tAudioFormat = %d\n", WaveHeader->FMT.AudioFormat); g_print ("\tNumChannels = %d\n", WaveHeader->FMT.NumChannels); g_print ("\tSampleRate = %d\n", WaveHeader->FMT.SampleRate); g_print ("\tByteRate = %d\n", WaveHeader->FMT.ByteRate); g_print ("\tBlockalign = %d\n", WaveHeader->FMT.Blockalign); g_print ("\tBitsPerSample = %d\n", WaveHeader->FMT.BitsPerSample); g_print ("\tSubchunk2ID = %c%c%c%c\n", WaveHeader->DATA.Subchunk2ID [ 0 ], WaveHeader->DATA.Subchunk2ID [ 1 ], WaveHeader->DATA.Subchunk2ID [ 2 ], WaveHeader->DATA.Subchunk2ID [ 3 ] ); g_print ("\tSubchunk2Size = %d\n", WaveHeader->DATA.Subchunk2Size); g_print ("\n"); } } // // void tagswav_print( gchar *p_PathNameFile ) { if( TRUE == OptionsCommandLine.BoolVerboseMode ) { WAVE WaveHeader; if (TRUE == tagswav_read_file( p_PathNameFile, &WaveHeader )) { tagswav_print_header( p_PathNameFile, &WaveHeader ); } tagswav_close_file( &WaveHeader ); } } // // gint tagswav_get_pos( gchar *p_PathNameFile, gchar p_1, gchar p_2, gchar p_3, gchar p_4 ) { FILE *file = NULL; unsigned char devbuf[ BLOCK_SIZE +10 ]; gint n_read; gint tt_read = 0; gint cpt; if( NULL != (file = fopen( p_PathNameFile, "rb" ))) { do { // LECTURE D UN BLOCK n_read = fread( devbuf, BLOCK_SIZE, 1, file ); // RECHERCHE DE: data for( cpt = 0; cpt < BLOCK_SIZE; cpt ++ ) { if( devbuf [ cpt +0 ] == p_1 && devbuf [ cpt +1 ] == p_2 && devbuf [ cpt +2 ] == p_3 && devbuf [ cpt +3 ] == p_4 ) { return( tt_read + cpt ); } } // VARIABLE TOTAL OCTECTS LU MOINS 8 AU CAS OU data SOIS COUPE EN FIN DE BLOCK tt_read += BLOCK_SIZE; tt_read -= 8; // POINTEUR AU DEBUT DU FICHIER rewind( file ); // POINTEUR DE LECTURE SUR tt_read fseek( file, tt_read, SEEK_CUR ); } while( n_read > 0 ); fclose( file ); } return( -1 ); } // // MODIF DU 02 MAI 2013 A LA DEMANDE DE CHRISTOPHE MARILLAT POUR TENIR COMPTE DE : Broadcast Wave Format // VERSION DE TEST: // xcfa-4.3.4~beta0 // xcfa-4.3.4~beta1 // /* broadcast_audio_extension typedef struct { DWORD ckID; // (broadcastextension)ckID=bext. DWORD ckSize; // size of extension chunk BYTE ckData[ckSize]; // data of the chunk } Quality_chunk typedef struct { DWORD ckID; // (quality_chunk) ckID='qlty' DWORD ckSize; // size of quality chunk BYTE ckData[ckSize]; // data of the chunk } typedef struct peak_envelope { CHAR ckID[4]; // {'l','e','v','l'} DWORD ckSize; // size of chunk DWORD dwVersion; // version information DWORD dwFormat; // format of a peak point // 1 = unsigned char // 2 = unsigned short DWORD dwPointsPerValue; // 1 = only positive peak point // 2 = positive AND negative peak point DWORD dwBlockSize; // frames per value DWORD dwPeakChannels; // number of channels DWORD dwNumPeakFrames; // number of peak frames DWORD dwPosPeakOfPeaks; // audio sample frame index // or 0xFFFFFFFF if unknown DWORD dwOffsetToPeaks; // should usually be equal to the size of this header, but could also be higher CHAR strTimestamp[28]; // ASCII: time stamp of the peak data CHAR reserved[60]; // reserved set to 0x00 CHAR peak_envelope_data[] // the peak point data } levl_chunk; typedef struct link { CHAR CkID[4]; // 'link' DWORD CkSize; // size of chunk CHAR XmlData[ ]; // text data in XML } link_chunk; typedef struct axml { CHAR ckID[4]; // {'a','x','m','l'} DWORD ckSize; // size of chunk CHAR xmlData[ ]; // text data in XML } axml_chunk; */ gboolean tagswav_read_file (gchar *wave_file, WAVE *WaveHeader) { /* gint seek_bext = -1; gint seek_qlty = -1; gint seek_levl = -1; gint seek_link = -1; gint seek_axml = -1; gint seek_fmt = -1; gint seek_data = -1; gint n_read; tagswav_init (WaveHeader); if (NULL == (WaveHeader->file = fopen(wave_file, "rb"))) return (FALSE); seek_fmt = tagswav_get_pos( wave_file, 'f', 'm', 't', ' ' ); seek_data = tagswav_get_pos( wave_file, 'd', 'a', 't', 'a' ); if( TRUE == OptionsCommandLine.BoolVerboseMode ) { seek_bext = tagswav_get_pos( wave_file, 'b', 'e', 'x', 't' ); seek_qlty = tagswav_get_pos( wave_file, 'q', 'l', 't', 'y' ); seek_levl = tagswav_get_pos( wave_file, 'l', 'e', 'v', 'l' ); seek_link = tagswav_get_pos( wave_file, 'l', 'i', 'n', 'k' ); seek_axml = tagswav_get_pos( wave_file, 'a', 'x', 'm', 'l' ); } if( -1 == seek_fmt || -1 == seek_data ) { if( TRUE == OptionsCommandLine.BoolVerboseMode ) { g_print("Entete incorrecte du fichier [ %s ]\n", wave_file ); g_print ("\tseek_bext = %d\n", seek_bext ); g_print ("\tseek_qlty = %d\n", seek_qlty ); g_print ("\tseek_levl = %d\n", seek_levl ); g_print ("\tseek_link = %d\n", seek_link ); g_print ("\tseek_axml = %d\n", seek_axml ); g_print ("\tseek_fmt = %d\n", seek_fmt ); g_print ("\tseek_data = %d\n", seek_data ); } tagswav_close_file( WaveHeader ); return( FALSE ); } // LECTURE ENTETE n_read = fread(&WaveHeader->RIFF.ChunkID, 4, 1, WaveHeader->file); // RIFF n_read = fread(&WaveHeader->RIFF.ChunkSize, 4, 1, WaveHeader->file); // taille du fichier entier en octets (sans compter les 8 octets de ce champ et le champ précédent n_read = fread(&WaveHeader->RIFF.Format, 4, 1, WaveHeader->file); // WAVE n_read = fread(&WaveHeader->FMT.Subchunk1ID, 4, 1, WaveHeader->file); // 'fmt ' | 'bext' if( 0 == strncmp( WaveHeader->FMT.Subchunk1ID, "fmt ", 4 )) { WaveHeader->TagWavIsFmtBext = TAG_WAVE_IS_FMT; } else { WaveHeader->TagWavIsFmtBext = TAG_WAVE_IS_BEXT; n_read = fseek( WaveHeader->file, seek_fmt + 4, SEEK_SET ); } // FMT n_read = fread(&WaveHeader->FMT.Subchunk1Size, 4, 1, WaveHeader->file); // taille en octet des données à suivre n_read = fread(&WaveHeader->FMT.AudioFormat, 2, 1, WaveHeader->file); // format de compression (une valeur autre que 1 indique une compression) n_read = fread(&WaveHeader->FMT.NumChannels, 2, 1, WaveHeader->file); // nombre de canaux n_read = fread(&WaveHeader->FMT.SampleRate, 4, 1, WaveHeader->file); // fréquence d'échantillonage (nombre d'échantillons par secondes) n_read = fread(&WaveHeader->FMT.ByteRate, 4, 1, WaveHeader->file); // nombre d'octects par secondes n_read = fread(&WaveHeader->FMT.Blockalign, 2, 1, WaveHeader->file); // nombre d'octects pour coder un échantillon n_read = fread(&WaveHeader->FMT.BitsPerSample, 2, 1, WaveHeader->file); // nombre de bits pour coder un échantillon // DATA n_read = fseek( WaveHeader->file, seek_data, SEEK_SET ); n_read = fread( &WaveHeader->DATA.Subchunk2ID, 4, 1, WaveHeader->file ); n_read = fread( &WaveHeader->DATA.Subchunk2Size, 4, 1, WaveHeader->file ); tagswav_print_header( wave_file, WaveHeader ); if( TRUE == OptionsCommandLine.BoolVerboseMode ) { g_print ("\tseek_bext = %d\n", seek_bext ); g_print ("\tseek_qlty = %d\n", seek_qlty ); g_print ("\tseek_levl = %d\n", seek_levl ); g_print ("\tseek_link = %d\n", seek_link ); g_print ("\tseek_axml = %d\n", seek_axml ); g_print ("\tseek_fmt = %d\n", seek_fmt ); g_print ("\tseek_data = %d\n", seek_data ); } return( TRUE ); */ gint seek_fmt = -1; gint seek_data = -1; gint n_read; seek_fmt = tagswav_get_pos( wave_file, 'f', 'm', 't', ' ' ); seek_data = tagswav_get_pos( wave_file, 'd', 'a', 't', 'a' ); if( -1 == seek_fmt || -1 == seek_data ) return( FALSE ); if( NULL == ( WaveHeader->file = fopen( wave_file, "rb" ))) return (FALSE); // LECTURE ENTETE n_read = fread( &WaveHeader->RIFF.ChunkID, 4, 1, WaveHeader->file ); // RIFF n_read = fread( &WaveHeader->RIFF.ChunkSize, 4, 1, WaveHeader->file ); // taille du fichier entier en octets (sans compter les 8 octets de ce champ et le champ précédent n_read = fread( &WaveHeader->RIFF.Format, 4, 1, WaveHeader->file ); // WAVE n_read = fread( &WaveHeader->FMT.Subchunk1ID, 4, 1, WaveHeader->file ); // 'fmt ' | 'bext' if( 0 == strncmp( WaveHeader->FMT.Subchunk1ID, "fmt ", 4 )) { WaveHeader->TagWavIsFmtBext = TAG_WAVE_IS_FMT; } else { WaveHeader->TagWavIsFmtBext = TAG_WAVE_IS_BEXT; n_read = fseek( WaveHeader->file, seek_fmt + 4, SEEK_SET ); } // FMT n_read = fread( &WaveHeader->FMT.Subchunk1Size, 4, 1, WaveHeader->file ); // taille en octet des données à suivre n_read = fread( &WaveHeader->FMT.AudioFormat, 2, 1, WaveHeader->file ); // format de compression (une valeur autre que 1 indique une compression) n_read = fread( &WaveHeader->FMT.NumChannels, 2, 1, WaveHeader->file ); // nombre de canaux n_read = fread( &WaveHeader->FMT.SampleRate, 4, 1, WaveHeader->file ); // fréquence d'échantillonage (nombre d'échantillons par secondes) n_read = fread( &WaveHeader->FMT.ByteRate, 4, 1, WaveHeader->file ); // nombre d'octects par secondes n_read = fread( &WaveHeader->FMT.Blockalign, 2, 1, WaveHeader->file ); // nombre d'octects pour coder un échantillon n_read = fread( &WaveHeader->FMT.BitsPerSample, 2, 1, WaveHeader->file ); // nombre de bits pour coder un échantillon // DATA n_read = fseek( WaveHeader->file, seek_data, SEEK_SET ); n_read = fread( &WaveHeader->DATA.Subchunk2ID, 4, 1, WaveHeader->file ); n_read = fread( &WaveHeader->DATA.Subchunk2Size, 4, 1, WaveHeader->file ); if( n_read ); tagswav_print_header( wave_file, WaveHeader ); return( TRUE ); } // // INFO_WAV *tagswav_remove_info (INFO_WAV *info) { if (info) { if (NULL != info->time) { g_free (info->time); info->time = NULL; } if (NULL != info->hertz) { g_free (info->hertz); info->hertz = NULL; } if (NULL != info->voie) { g_free (info->voie); info->voie = NULL; } if (NULL != info->bits) { g_free (info->bits); info->bits = NULL; } if (NULL != info->NewHertz) { g_free (info->NewHertz); info->NewHertz = NULL; } if (NULL != info->NewVoie) { g_free (info->NewVoie); info->NewVoie = NULL; } if (NULL != info->NewBits) { g_free (info->NewBits); info->NewBits = NULL; } info->tags = (TAGS *)tags_remove (info->tags); g_free (info); info = NULL; } return ((INFO_WAV *)NULL); } // // gboolean tagswav_file_is_mono (gchar *namefile) { WAVE WaveHeader; if (TRUE == tagswav_read_file (namefile, &WaveHeader)) { tagswav_close_file( &WaveHeader ); return (WaveHeader.FMT.NumChannels == 1 ? TRUE : FALSE); } return (FALSE); } // // gboolean tagswav_file_GetBitrate (gchar *namefile, gint *Channels, gint *Hertz, gint *Bits) { WAVE WaveHeader; if (TRUE == tagswav_read_file (namefile, &WaveHeader)) { tagswav_close_file( &WaveHeader ); if (Channels) *Channels = WaveHeader.FMT.NumChannels; if (Hertz) *Hertz = WaveHeader.FMT.SampleRate; if (Bits) *Bits = WaveHeader.FMT.BitsPerSample; return ((WaveHeader.FMT.NumChannels != 2 || WaveHeader.FMT.SampleRate != 44100 || WaveHeader.FMT.BitsPerSample != 16) ? TRUE : FALSE); } return (FALSE); } // // INFO_WAV *tagswav_get_info (gchar *namefile) { WAVE WaveHeader; INFO_WAV *ptrinfo = NULL; gint m; gint s; gint sec; gboolean BoolReadWavFile; // PRINT_FUNC_LF(); ptrinfo = (INFO_WAV *)g_malloc0 (sizeof (INFO_WAV)); if (NULL == ptrinfo) { g_print ("!---------------------------------------\n"); PRINT_FUNC_LF(); g_print ("!---------------------------------------\n"); g_print ("! PTRINFO EST NULL :(\n"); g_print ("!---------------------------------------\n"); return (NULL); } BoolReadWavFile = tagswav_read_file (namefile, &WaveHeader); tagswav_close_file( &WaveHeader ); if (FALSE == BoolReadWavFile) { g_free (ptrinfo); PRINT("EXIT"); ptrinfo = NULL; return (NULL); } if (WaveHeader.DATA.Subchunk2Size == 0 || WaveHeader.FMT.ByteRate == 0) { g_free (ptrinfo); ptrinfo = NULL; g_print ("! ---\n"); g_print ("! MAUVAIS ENTETE DU FICHIER: %s\n", namefile); g_print ("! ---\n\n"); return (NULL); } // calcul de la duree sec = WaveHeader.DATA.Subchunk2Size / WaveHeader.FMT.ByteRate; ptrinfo->SecTime = sec; s = sec % 60; sec /= 60; m = sec % 60; sec /= 60; if (sec > 0) ptrinfo->time = g_strdup_printf ("%02d:%02d:%02d", sec, m, s); else ptrinfo->time = g_strdup_printf ("%02d:%02d", m, s); // 'fmt ', 'bext', 'qlty', 'levl', 'link','axml' ptrinfo->BoolBwf = WaveHeader.TagWavIsFmtBext == TAG_WAVE_IS_FMT ? FALSE : TRUE; // mode ptrinfo->voie = g_strdup_printf ("%d", WaveHeader.FMT.NumChannels); ptrinfo->NewVoie = g_strdup_printf ("%d", WaveHeader.FMT.NumChannels); // freq ptrinfo->hertz = g_strdup_printf ("%d", WaveHeader.FMT.SampleRate); ptrinfo->NewHertz = g_strdup_printf ("%d", WaveHeader.FMT.SampleRate); // format ptrinfo->bits = g_strdup_printf ("%d", WaveHeader.FMT.BitsPerSample); ptrinfo->NewBits = g_strdup_printf ("%d", WaveHeader.FMT.BitsPerSample); ptrinfo->BoolConv= FALSE; ptrinfo->tags = (TAGS *)tags_alloc (FALSE); tags_set (namefile, ptrinfo->tags); ptrinfo->LevelDbfs.level = -1; ptrinfo->LevelDbfs.NewLevel = -1; return (ptrinfo); } // // RETOUR DE LA DUREE D'ECOUTE EN SECONDES // gint tagswav_get_time_sec (gchar *namefile) { WAVE WaveHeader; // PRINT_FUNC_LF(); if (TRUE == tagswav_read_file (namefile, &WaveHeader)) { tagswav_close_file( &WaveHeader ); return (WaveHeader.DATA.Subchunk2Size / WaveHeader.FMT.ByteRate); } return (0); } xcfa-4.3.6/src/poche_dir.c0000644000175000017500000004020312122563465012262 00000000000000 /* * file : poche_dir.h * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #include #include #include #include #include #include #include #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "cursor.h" #include "win_scan.h" #include "dragNdrop.h" #include "popup.h" #include "statusbar.h" #include "fileselect.h" #include "configuser.h" #include "poche.h" extern int lstat(const char *file_name, struct stat *buf); typedef struct { GList *ListReceive; // COPIE DU GSLIST POUR RECHERCHE DES FICHIERS IMAGES UNIQUEMENT QUI SERONT INSCRIT DANS: GList *ListFiles; // LE NOM DU FICHIER // RECHERCHE RECURSIVE DES FICHIERS // INDIQUE LE NOMBRE TOTAL DANS: VarAnalyze.RecTotalFile // gchar *RecPtrDir; // POUR WINDSCAN gchar *RecName; // gint RecTotalFile; // gint RecActivate; // double percent; // gboolean BoolInThread; gboolean BoolSetPercent; guint HandlerTimeout; gboolean CancelClicked; gboolean EndThread; gboolean EndTimeout; gboolean Action; gchar *name; guint timeout; pthread_t nmr_tid; gboolean BoolIsEnterNotify; // gboolean BoolIsCtrl; // } VAR_POCHEDIR; VAR_POCHEDIR VarPocheDir; // // void pochedir_remove_GlistPochette( void ) { GList *list = NULL; GLIST_POCHETTE *GlistPochette = NULL; gint NbrFree = 0; list = g_list_first( view.glist ); while (list) { if (NULL != (GlistPochette = (GLIST_POCHETTE *)list->data)) { if( NULL != GlistPochette->name_img ) { g_free( GlistPochette->name_img ); GlistPochette->name_img = NULL; } if( NULL != GlistPochette->name_png ) { g_free( GlistPochette->name_png ); GlistPochette->name_png = NULL; } // GlistPochette->togglebutton // if( NULL != GlistPochette->image ) { // g_object_unref( GlistPochette->image ); // GlistPochette->image = NULL; // } // if( NULL != GlistPochette->label ) { // g_free( GlistPochette->label ); // GlistPochette->label = NULL; // } g_free( GlistPochette ); GlistPochette = list->data = NULL; NbrFree ++; } list = g_list_next (list); } g_list_free( view.glist ); view.glist = NULL; g_print( "\tRemove = %d\n", NbrFree ); } // // void pochedir_make_glist (gchar *filename) { GLIST_POCHETTE *new = NULL; // Allocation memoire if( NULL == ( new = ( GLIST_POCHETTE * )g_malloc0( sizeof(GLIST_POCHETTE)))) { PRINT_FUNC_LF(); g_print ("\tERREUR D'ALLOCATION\n"); return; } // init new->name_img = g_strdup (filename); new->BoolStructRemove = FALSE; // Stocke view.glist = g_list_append (view.glist, new); } // // void pochedir_set_in_list (void) { GList *list = NULL; gchar *PtrName = NULL; list = g_list_first (VarPocheDir.ListFiles); while (list) { if (NULL != (PtrName = (gchar *)list->data)) { pochedir_make_glist (PtrName); VarPocheDir.RecActivate ++; VarPocheDir.BoolSetPercent = TRUE; } list = g_list_next (list); } } // // gboolean pochedir_is_dupply (gchar *filename) { GList *list = NULL; GLIST_POCHETTE *gl = NULL; return (FALSE); list = g_list_first (view.glist); while (list) { if ((gl = (GLIST_POCHETTE *)list->data)) { if (strcmp (gl->name_img, filename) == 0) { return (TRUE); } } list = g_list_next (list); } return (FALSE); } // VERIFIE LA VALIDITE DU FICHIER // void pochedir_verif_validity_files (void) { GList *List = NULL; gchar *Ptr = NULL; List = g_list_first (VarPocheDir.ListFiles); while (List) { if (WindScan_close_request () == TRUE) break; if (NULL != (Ptr = (gchar *)List->data)) { if (TRUE == pochedir_is_dupply (Ptr)) { g_free (Ptr); Ptr = List->data = NULL; List = g_list_next (List); continue; } if( FALSE == FileIs_image( Ptr )) { g_free (Ptr); Ptr = List->data = NULL; List = g_list_next (List); continue; } VarPocheDir.RecTotalFile ++; } List = g_list_next (List); } VarPocheDir.BoolSetPercent = TRUE; } // RECHERCHE RECURSIVE DES FICHIERS // INDIQUE LE NOMBRE TOTAL DANS: VarPocheDir.RecTotalFile void pochedir_recherche_recursive_ (gchar *Directory) { DIR *dp; struct dirent *entry; struct stat statbuf; if (NULL == (dp = opendir (Directory))) { if (TRUE == libutils_test_file_exist (Directory) && libutils_get_size_file (Directory) > 100) { VarPocheDir.ListFiles = g_list_append (VarPocheDir.ListFiles, g_strdup (Directory)); VarPocheDir.RecTotalFile ++; } return; } chdir (Directory); while ((entry = readdir (dp)) != NULL) { if (WindScan_close_request () == TRUE) break; lstat (entry->d_name, &statbuf); if (S_ISDIR (statbuf.st_mode)) { if (strcmp (".", entry->d_name) == 0 || strcmp ("..", entry->d_name) == 0) continue; pochedir_recherche_recursive_ (entry->d_name); } else { // VarPocheDir.RecPtrDir = g_get_current_dir (); // VarPocheDir.RecPtrDir = get_current_dir_name(); // Comme une extension du standard POSIX.1-2001, la version Linux (libc4, libc5, glibc) de getcwd() alloue le // tampon dynamiquement avec malloc(3), si buf est NULL. Dans ce cas, le tampon alloué a la longueur size à moins // que size soit égal à zéro, auquel cas buf est alloué avec la taille nécessaire. // L'appelant doit libérer avec free(3) le tampon renvoyé. if ((VarPocheDir.RecPtrDir = getcwd(VarPocheDir.RecPtrDir, 0)) != NULL) { VarPocheDir.RecName = g_strdup_printf ("%s/%s", VarPocheDir.RecPtrDir, entry->d_name); free (VarPocheDir.RecPtrDir); VarPocheDir.RecPtrDir = NULL; // FICHIER VALIDE ? if( TRUE == FileIs_image( VarPocheDir.RecName )) { // ALIMENTE LA LISTE AVEC LE NOM COMPLET DE FICHIER: PATH + NAMEFILE VarPocheDir.ListFiles = g_list_append (VarPocheDir.ListFiles, VarPocheDir.RecName); VarPocheDir.RecTotalFile ++; } else { g_free (VarPocheDir.RecName); VarPocheDir.RecName = NULL; } } } } chdir (".."); closedir (dp); } // // static void pochedir_thread_ (void *arg) { gchar *Ptr = NULL; GList *List = NULL; VarPocheDir.BoolInThread = TRUE; //PRINT_FUNC_LF(); // CONSTRUIT UNE LISTE DE TOUS LES FICHIERS SANS LES DOSSIERS List = g_list_first (VarPocheDir.ListReceive); while (List) { if ((Ptr = (gchar *)List->data) != NULL) { // RECHERCHE RECURSIVE DES FICHIERS pochedir_recherche_recursive_ (Ptr); } List = g_list_next (List); } // SUPPRESISON DE LA COPIE DU GSLIST VarPocheDir.ListReceive = libutils_remove_glist (VarPocheDir.ListReceive); // VERIFIE LA VALIDITE DU FICHIER VarPocheDir.RecActivate = 0; VarPocheDir.RecTotalFile = 0; pochedir_verif_validity_files (); // ALIMENTATION DE LA LISTE pochedir_set_in_list (); // REMOVE COPIE DU GLIST VarPocheDir.ListFiles = libutils_remove_glist (VarPocheDir.ListFiles); VarPocheDir.BoolInThread = FALSE; VarPocheDir.BoolSetPercent = FALSE; g_print("END THREAD\n"); pthread_exit(0); } // // void pochedir_togglebutton_clicked (GtkButton *button, gpointer user_data) { GtkToggleButton *W = (GtkToggleButton *)user_data; gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON(W), FALSE ); } // // static void file_drag_data_drop( GtkWidget *widget, GdkDragContext *dc, GtkSelectionData *selection_data, guint info, guint t, gpointer data ) { gchar *Str = (gpointer)data; gdouble x, y; gint X, Y; GdkModifierType state; IMAGE *Image = NULL; cairo_t *cr; // PRINT("DND FROM STOCKAGE TO DRAWING"); gdk_window_get_pointer( view.AdrDrawingarea->window, &X, &Y, &state ); cr = gdk_cairo_create( view.AdrDrawingarea->window ); cairo_scale (cr, view.scale, view.scale); cairo_translate (cr, view.x0, view.y0); x = X; y = Y; cairo_device_to_user (cr, &x, &y); cairo_destroy( cr ); Image = poche_add_to_glist( Str, x, y, TRUE, _TYPE_IMAGE_ ); poche_set_selected_flag_image( Image ); gtk_widget_queue_draw( view.AdrDrawingarea ); } // // gboolean pochedir_stock_button_press_event( GtkWidget *widget, GdkEventButton *event, gpointer user_data ) { GLIST_POCHETTE *GlistPochette = (GLIST_POCHETTE *)user_data; gboolean bool_click_droit = (event->button == 3); guint state = event->state; // IMAGE A DESSUS AVEC: CTRL + click if( state & GDK_CONTROL_MASK ) { // PRINT("REMOVE IMG WITH: CRTL + CLICK"); // g_print( "\tIMAGE A SUPPRIMER DE LA LISTE:\n" ); // g_print( "\t%s\n", GlistPochette->name_img ); pochedir_destroy_image( GlistPochette ); } else if( TRUE == bool_click_droit ) { // PRINT("REMOVE IMG WITH: POPUP"); // g_print( "IMAGE A SUPPRIMER DE LA LISTE:\n" ); // g_print( "\t%s\n", GlistPochette->name_img ); popup_viewport( GlistPochette ); } return( FALSE ); } // // void pochedir_destroy_image( GLIST_POCHETTE *gl ) { if( NULL != gl->name_img ) { g_free( gl->name_img ); gl->name_img = NULL; } if( NULL != gl->name_png ) { g_free( gl->name_png ); gl->name_png = NULL; } if( NULL != gl->togglebutton ) { gtk_widget_destroy( gl->togglebutton ); gl->togglebutton = NULL; } gl->BoolStructRemove = TRUE; StatusBar_set_mess( NOTEBOOK_POCHETTE, _STATUSBAR_SIMPLE_, "" ); StatusBar_puts(); VarPocheDir.BoolIsEnterNotify = FALSE; cursor_set_old(); } // // void pochedir_set_cursor( void ) { if( TRUE == VarPocheDir.BoolIsCtrl && TRUE == VarPocheDir.BoolIsEnterNotify ) cursor_set_clear(); else cursor_set_old(); } // // void pochedir_set_ctrl( gboolean p_Bool ) { VarPocheDir.BoolIsCtrl = p_Bool; pochedir_set_cursor(); } // // static gboolean pochedir_enter_notify( GtkWidget *widget, GdkEventCrossing *event, gpointer user_data ) { // StatusBar_puts( "Utilisez le glisser / deplacer - Effacer une image avec Ctrl + Click" ); StatusBar_set_mess( NOTEBOOK_POCHETTE, _STATUSBAR_SIMPLE_, _("Utilisez le glisser / deplacer - Effacer une image avec Ctrl + Click") ); StatusBar_puts(); VarPocheDir.BoolIsEnterNotify = TRUE; pochedir_set_cursor(); return FALSE; } // // static gboolean pochedir_leave_notify( GtkWidget *widget, GdkEventCrossing *event, gpointer user_data ) { // StatusBar_puts( "" ); StatusBar_set_mess( NOTEBOOK_POCHETTE, _STATUSBAR_SIMPLE_, "" ); StatusBar_puts(); VarPocheDir.BoolIsEnterNotify = FALSE; pochedir_set_cursor(); return FALSE; } // // void pochedir_table_add_images( void ) { GLIST_POCHETTE *gl = NULL; GList *list = NULL; gint total_row_table = 0; gint row_table = 0; GdkPixbuf *Pixbuf = NULL; PRINT_FUNC_LF(); // DESTROY WIDGETS if( NULL != view.Adr_table ) { list = g_list_first (view.glist); while (list) { if ((gl = (GLIST_POCHETTE *)list->data)) { // NE DETRUIRE QUE LE WIDGET if( NULL != gl->togglebutton ) { gtk_widget_destroy( gl->togglebutton ); gl->togglebutton = NULL; } } list = g_list_next (list); } gtk_widget_destroy( view.Adr_table ); view.Adr_table = NULL; } // CONSTRUCTION TABLE total_row_table = g_list_length (view.glist); view.Adr_table = gtk_table_new (1, total_row_table, FALSE); gtk_widget_show (view.Adr_table); gtk_container_add (GTK_CONTAINER (view.Adr_viewport_image_preview), view.Adr_table); list = g_list_first (view.glist); while (list) { if ((gl = (GLIST_POCHETTE *)list->data)) { if( TRUE == gl->BoolStructRemove ) { list = g_list_next (list); continue; } // BUTTON gl->togglebutton = gtk_toggle_button_new (); gtk_widget_show (gl->togglebutton); gtk_table_attach (GTK_TABLE (view.Adr_table), gl->togglebutton, row_table, row_table +1, 0, 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_widget_set_size_request (gl->togglebutton, SIZE_IMAGE_VIEWPORT, SIZE_IMAGE_VIEWPORT); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (gl->togglebutton), FALSE); gtk_container_set_border_width (GTK_CONTAINER (gl->togglebutton), 5); // IMAGE gl->image = gtk_image_new (); gtk_widget_show (gl->image); gtk_container_add (GTK_CONTAINER (gl->togglebutton), gl->image); Pixbuf = gdk_pixbuf_new_from_file_at_scale( gl->name_img, SIZE_IMAGE_VIEWPORT, SIZE_IMAGE_VIEWPORT, TRUE, NULL ); gtk_image_set_from_pixbuf( GTK_IMAGE(gl->image), Pixbuf ); gtk_drag_source_set( GTK_WIDGET(gl->togglebutton), GDK_BUTTON1_MASK | GDK_BUTTON2_MASK | GTK_DEST_DEFAULT_MOTION | GTK_DEST_DEFAULT_DROP, drag_types, n_drag_types, GDK_ACTION_MOVE | GDK_ACTION_COPY | GDK_ACTION_DEFAULT ); // SIGNALS g_signal_connect( G_OBJECT(gl->togglebutton), "drag-data-get", G_CALLBACK(file_drag_data_drop), gl->name_img); g_signal_connect( G_OBJECT(gl->togglebutton), "clicked", G_CALLBACK (pochedir_togglebutton_clicked), gl->togglebutton); g_signal_connect( G_OBJECT(gl->togglebutton), "button-press-event", G_CALLBACK(pochedir_stock_button_press_event), gl); g_signal_connect( G_OBJECT(gl->togglebutton), "enter-notify-event", G_CALLBACK (pochedir_enter_notify), NULL); g_signal_connect( G_OBJECT(gl->togglebutton), "leave-notify-event", G_CALLBACK (pochedir_leave_notify), NULL); gl->BoolStructRemove = FALSE; row_table ++; } list = g_list_next (list); } gtk_widget_show_all (view.Adr_table); } // // static gint pochedir_timeout_ (gpointer data) { VarPocheDir.CancelClicked = WindScan_close_request (); if (TRUE == VarPocheDir.BoolSetPercent) { gchar *Str = NULL; VarPocheDir.BoolSetPercent = FALSE; VarPocheDir.percent = (double)VarPocheDir.RecActivate / (double)VarPocheDir.RecTotalFile; Str = g_strdup_printf ("%d%%", (int)(VarPocheDir.percent*100)); WindScan_set_progress (Str, VarPocheDir.percent); g_free (Str); Str = NULL; } else if (FALSE == VarPocheDir.BoolInThread) { gtk_timeout_remove (VarPocheDir.HandlerTimeout); pochedir_table_add_images (); WindScan_close (); g_print("END TIMEOUT\n"); } return (TRUE); } // // void pochedir_add_img_file (GSList *p_list) { gchar *Ptr = NULL; GSList *gs_List = p_list; pthread_t nmr_tid_1; WindScan_open ("Files scan", WINDSCAN_PULSE); WindScan_set_label ("Scan directory, verify and load ..."); // PRINT_FUNC_LF(); // COPIE DE LA GSlist TRANSMISE PAR LE FILESELECT ET QUI DEVRA ETRE SUPRIMEE while (gs_List) { if ((Ptr = (gchar *)gs_List->data) != NULL) { VarPocheDir.ListReceive = g_list_append (VarPocheDir.ListReceive, g_strdup (Ptr)); } gs_List = g_slist_next (gs_List); } VarPocheDir.RecActivate = 0; VarPocheDir.RecTotalFile = 0; // CALL THREAD VarPocheDir.BoolInThread = TRUE; VarPocheDir.BoolSetPercent = FALSE; g_print("DEBUT TIMEOUT\n"); VarPocheDir.HandlerTimeout = gtk_timeout_add (100, pochedir_timeout_, 0); g_print("DEBUT THREAD\n"); pthread_create (&nmr_tid_1, NULL ,(void *)pochedir_thread_, (void *)NULL); } // // void pochedir_load_file_clicked( gchar *path ) { if( NULL != Config.PathSaveImg ) { g_free( Config.PathSaveImg ); Config.PathSaveImg = NULL; } Config.PathSaveImg = g_strdup( path ); gtk_button_set_label( GTK_BUTTON(GLADE_GET_OBJECT("button_stock_img")), Config.PathSaveImg ); } // // void on_button_stock_img_clicked( GtkButton *button, gpointer user_data ) { fileselect_create( _PATH_CHOICE_DESTINATION_, Config.PathSaveImg, pochedir_load_file_clicked ); } xcfa-4.3.6/src/file.c0000644000175000017500000044065012164176625011263 00000000000000 /* * file : file.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #include #include #include #include #include #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "configuser.h" #include "fileselect.h" #include "tags.h" #include "prg_init.h" #include "dragNdrop.h" #include "win_info.h" #include "get_info.h" #include "play_file.h" #include "popup.h" #include "file.h" #include "statusbar.h" VAR_FILE var_file; enum { COLUMN_FILE_PLAY = 0, COLUMN_FILE_TRASH, COLUMN_FILE_TYPE, COLUMN_FILE_WAV, COLUMN_FILE_FLAC, COLUMN_FILE_APE, COLUMN_FILE_WAVPACK, COLUMN_FILE_OGG, COLUMN_FILE_M4A, COLUMN_FILE_AAC, COLUMN_FILE_MPC, COLUMN_FILE_MP3, COLUMN_FILE_TIME, COLUMN_FILE_NORMALIZE, COLUMN_FILE_REPLAYGAIN, COLUMN_FILE_NAME, COLUMN_FILE_EDITABLE, COLUMN_FILE_COLOR, COLUMN_FILE_POINTER_STRUCT, COLUMN_FILE_NUM }; enum { NUM_TREE_FILE_Play = 0, NUM_TREE_FILE_Trash, NUM_TREE_FILE_Type, NUM_TREE_FILE_Wav, NUM_TREE_FILE_Flac, NUM_TREE_FILE_Ape, NUM_TREE_FILE_WavP, NUM_TREE_FILE_Ogg, NUM_TREE_FILE_M4a, NUM_TREE_FILE_Aac, NUM_TREE_FILE_Mpc, NUM_TREE_FILE_Mp3, NUM_TREE_FILE_Time, NUM_TREE_FILE_Normalise, NUM_TREE_FILE_ReplayGain, NUM_TREE_FILE_Name, NUM_TREE_FILE_ALL_COLUMN }; typedef struct { glong SizeTmpKo; gint NbrFile; glong SizeFileKo; } SIZE_TMP; // // gboolean file_get_bool_ReplaygainApply (void) { GList *list = NULL; DETAIL *detail = NULL; list = g_list_first (entetefile); while (list) { if ((detail = (DETAIL *)list->data)) { if (detail->type_infosong_file_is == FILE_IS_OGG || detail->type_infosong_file_is == FILE_IS_MP3 || detail->type_infosong_file_is == FILE_IS_FLAC || detail->type_infosong_file_is == FILE_IS_WAVPACK) { if (detail->Etat_ReplayGain != RPG_EFFACER && detail->Etat_ReplayGain != RPG_ATTENTE) { // if (detail->Etat_ReplayGain != RPG_ATTENTE) { return (TRUE); } } } list = g_list_next (list); } return (FALSE); } // // gboolean file_get_bool_is_conversion (void) { GList *list = NULL; DETAIL *detail = NULL; list = g_list_first (entetefile); while (list) { if (NULL != (detail = (DETAIL *)list->data)) { if (detail->EtatSelection_Flac > ETAT_ATTENTE_EXIST || detail->EtatSelection_Wav > ETAT_ATTENTE_EXIST || detail->EtatSelection_Mp3 > ETAT_ATTENTE_EXIST || detail->EtatSelection_Ogg > ETAT_ATTENTE_EXIST || detail->EtatSelection_M4a > ETAT_ATTENTE_EXIST || detail->EtatSelection_Aac > ETAT_ATTENTE_EXIST || detail->EtatSelection_Mpc > ETAT_ATTENTE_EXIST || detail->EtatSelection_Ape > ETAT_ATTENTE_EXIST || detail->EtatSelection_WavPack > ETAT_ATTENTE_EXIST) return (TRUE); } list = g_list_next (list); } return (FALSE); } // // void file_get_etat (guint *total, guint *total_select) { gboolean valid; GtkTreeIter iter; DETAIL *detail = NULL; *total = 0; *total_select = 0; valid = gtk_tree_model_get_iter_first (var_file.Adr_Tree_Model, &iter); while (valid) { (*total) ++; gtk_tree_model_get (var_file.Adr_Tree_Model, &iter, COLUMN_FILE_POINTER_STRUCT, &detail, -1); if (NULL != detail) { if (detail->EtatSelection_Flac > ETAT_ATTENTE_EXIST) (*total_select) ++; if (detail->EtatSelection_Wav > ETAT_ATTENTE_EXIST) (*total_select) ++; if (detail->EtatSelection_Mp3 > ETAT_ATTENTE_EXIST) (*total_select) ++; if (detail->EtatSelection_Ogg > ETAT_ATTENTE_EXIST) (*total_select) ++; if (detail->EtatSelection_M4a > ETAT_ATTENTE_EXIST) (*total_select) ++; if (detail->EtatSelection_Aac > ETAT_ATTENTE_EXIST) (*total_select) ++; if (detail->EtatSelection_Mpc > ETAT_ATTENTE_EXIST) (*total_select) ++; if (detail->EtatSelection_Ape > ETAT_ATTENTE_EXIST) (*total_select) ++; if (detail->EtatSelection_WavPack > ETAT_ATTENTE_EXIST) (*total_select) ++; if (detail->Etat_Normalise == NORM_RMS_FIX) { gint Level = 0; gint NewLevel = 0; if (detail->type_infosong_file_is == FILE_IS_WAV) { INFO_WAV *info = (INFO_WAV *)detail->info; Level = info->LevelDbfs.level; NewLevel = info->LevelDbfs.NewLevel; } else if (detail->type_infosong_file_is == FILE_IS_OGG) { INFO_OGG *info = (INFO_OGG *)detail->info; Level = info->LevelDbfs.level; NewLevel = info->LevelDbfs.NewLevel; } else if (detail->type_infosong_file_is == FILE_IS_MP3) { INFO_MP3 *info = (INFO_MP3 *)detail->info; Level = info->LevelDbfs.level; NewLevel = info->LevelDbfs.NewLevel; } if (Level != NewLevel) (*total_select) ++; } else if (detail->Etat_Normalise > NORM_RMS_FIX) { (*total_select) ++; } if (detail->Etat_ReplayGain > RPG_ATTENTE) (*total_select) ++; } valid = gtk_tree_model_iter_next (var_file.Adr_Tree_Model, &iter); } } // // gboolean file_get_line_is_selected (void) { GtkTreeModel *model = NULL; GList *list = NULL; if (var_file.Adr_TreeView == NULL) return (FALSE); if (var_file.Adr_Line_Selected == NULL) return (FALSE); model = gtk_tree_view_get_model (GTK_TREE_VIEW(var_file.Adr_TreeView)); list = gtk_tree_selection_get_selected_rows (var_file.Adr_Line_Selected, &model); return (list ? TRUE : FALSE); } // // gboolean file_get_etat_normalise (void) { GList *list = NULL; DETAIL *detail = NULL; list = g_list_first (entetefile); while (list) { if (NULL != (detail = (DETAIL *)list->data)) { if (detail->type_infosong_file_is == FILE_IS_MP3 || detail->type_infosong_file_is == FILE_IS_OGG || detail->type_infosong_file_is == FILE_IS_WAV) { if (detail->Etat_Normalise > NORM_READY_FOR_SELECT) return (TRUE); } } list = g_list_next (list); } return (FALSE); } // // gboolean file_get_etat_replaygain (void) { GList *list = NULL; DETAIL *detail = NULL; list = g_list_first (entetefile); while (list) { if (NULL != (detail = (DETAIL *)list->data)) { if (detail->type_infosong_file_is == FILE_IS_OGG || detail->type_infosong_file_is == FILE_IS_MP3 || detail->type_infosong_file_is == FILE_IS_FLAC || detail->type_infosong_file_is == FILE_IS_WAVPACK) { if (detail->Etat_ReplayGain != RPG_ATTENTE) return (TRUE); } } list = g_list_next (list); } return (FALSE); } // // void file_set_flag_buttons (void) { gchar *Ptr = NULL; guint total; guint total_select; gboolean BoolButtonsAudio [ 5 ]; // SUPPRESSION BoolButtonsAudio [ 0 ] = file_get_line_is_selected (); gtk_widget_set_sensitive (GTK_WIDGET (GLADE_GET_OBJECT("button_del_file")), BoolButtonsAudio [ 0 ]); // SELECTION PAR TYPE BoolButtonsAudio [ 1 ] = (NULL == entetefile) ? FALSE : TRUE; gtk_widget_set_sensitive (GTK_WIDGET (GLADE_GET_OBJECT("eventbox_combobox_select_type")), BoolButtonsAudio [ 1 ]); // BoolButtonsAudio [ 2 ] = file_get_etat_normalise (); gtk_widget_set_sensitive (GTK_WIDGET (GTK_COMBO_BOX (var_file.AdrComboboxNormalise)), BoolButtonsAudio [ 2 ]); switch (gtk_combo_box_get_active (GTK_COMBO_BOX (var_file.AdrComboboxNormalise))) { case 0: case 1: gtk_widget_set_sensitive (GTK_WIDGET (GTK_SPIN_BUTTON (var_file.AdrSpinbuttonNormalise)), FALSE); break; case 2: case 3: if (GTK_WIDGET_IS_SENSITIVE(GTK_COMBO_BOX (var_file.AdrComboboxNormalise)) == TRUE) { gtk_widget_set_sensitive (GTK_WIDGET (GTK_SPIN_BUTTON (var_file.AdrSpinbuttonNormalise)), TRUE); } else { gtk_widget_set_sensitive (GTK_WIDGET (GTK_SPIN_BUTTON (var_file.AdrSpinbuttonNormalise)), FALSE); } break; } // BoolButtonsAudio [ 3 ] = file_get_etat_normalise () || file_get_etat_replaygain () || file_get_bool_is_conversion (); gtk_widget_set_sensitive (GTK_WIDGET (GLADE_GET_OBJECT("button_conv_file")), BoolButtonsAudio [ 3 ]); file_get_etat (&total, &total_select); Ptr = g_strdup_printf (_("Total fichiers: %d, Selections: %d"), total, total_select); if (NULL != var_file.Adr_Label_Number) { gtk_label_set_use_markup (GTK_LABEL (var_file.Adr_Label_Number), TRUE); gtk_label_set_markup (GTK_LABEL (var_file.Adr_Label_Number), Ptr); } g_free (Ptr); Ptr = NULL; } // // gboolean file_peak_get_size_is_ok (ETAT_NORMALISE p_EtatNormalise, SIZE_TMP *SizeTmp) { GtkTreeIter iter; gboolean valid; DETAIL *detail = NULL; glong AllSize = 0; glong SizeRepTmp; if (SizeTmp != NULL) { SizeTmp->SizeTmpKo = 0; SizeTmp->NbrFile = 0; SizeTmp->SizeFileKo = 0; } valid = gtk_tree_model_get_iter_first (var_file.Adr_Tree_Model, &iter); while (valid) { gtk_tree_model_get (var_file.Adr_Tree_Model, &iter, COLUMN_FILE_POINTER_STRUCT, &detail, -1); if ((NULL != detail) && (detail->type_infosong_file_is == FILE_IS_MP3 || detail->type_infosong_file_is == FILE_IS_OGG)) { if (detail->Etat_Normalise == p_EtatNormalise) { AllSize += (glong)atol (file_get_size (detail)); if (SizeTmp != NULL) { SizeTmp->NbrFile ++; SizeTmp->SizeFileKo = AllSize; } } } valid = gtk_tree_model_iter_next (var_file.Adr_Tree_Model, &iter); } if (AllSize > 0) { /* 12 est l'indice de multiplication permettant de determiner la taille vers le format WAV */ AllSize = AllSize * 12; if (SizeTmp != NULL) { SizeTmp->SizeFileKo *= 12; SizeTmp->SizeFileKo /= 1024; } /* g_print ("\tOCTET %lu\n", AllSize); g_print ("\tKO %lu\n", AllSize / 1024); g_print ("\tMEGA %lu\n", (AllSize / 1024) / 1024); g_print ("\tGIGA %lu\n", ((AllSize / 1024) / 1024) / 1024); g_print ("\n"); df --block-size=K /tmp Sys. de fich. 1K-blocs Occupé Disponible Capacité Monté sur /dev/sda5 19686772K 4080984K 14605748K 22% / AllSize = taille en octets AllSize / 1024 = taille en KiloOctet */ SizeRepTmp = GetInfo_level_df (); if (SizeTmp != NULL) { SizeTmp->SizeTmpKo = SizeRepTmp; } /*g_print("\tSizeRepTmp = %lu\n", SizeRepTmp);*/ /*g_print("\tAllSize / 1024 = %lu\n", AllSize / 1024);*/ if (AllSize / 1024 >= SizeRepTmp) { return (FALSE); } } return (TRUE); } // // void on_button_apply_file_clicked (GtkButton *button, gpointer user_data) { SIZE_TMP SizeTmp; /*if (GTK_BUTTON (GTK_WIDGET (GLADE_GET_OBJECT("button_conv_file"))) == button) { g_print(">NOTEBOOK_FICHIERS_CONVERSION :\n"); } else if (GTK_BUTTON (GTK_WIDGET (GLADE_GET_OBJECT("button_apply_wav"))) == button) { g_print(">NOTEBOOK_FICHIERS_WAV :\n"); } else if (GTK_BUTTON (GTK_WIDGET (GLADE_GET_OBJECT("button_applique_file_mp3ogg"))) == button) { g_print(">NOTEBOOK_FICHIERS_MP3OGG :\n"); } else if (GTK_BUTTON (GTK_WIDGET (GLADE_GET_OBJECT("button_tag_appliquer"))) == button) { g_print(">NOTEBOOK_FICHIERS_TAGS :\n"); }*/ if (NOTEBOOK_FICHIERS == Config.NotebookGeneral) { switch (Config.NotebookFile) { case NOTEBOOK_FICHIERS_CONVERSION : // g_print("NOTEBOOK_FICHIERS_CONVERSION :\n"); if (file_peak_get_size_is_ok (NORM_PEAK_ALBUM, &SizeTmp) == FALSE) { gchar *Str1 = NULL; gchar *Str2 = NULL; Str1 = g_strdup_printf (" %s/ = %lu Ko", Config.PathnameTMP, SizeTmp.SizeTmpKo); Str2 = g_strdup_printf (" %lu Ko en selection", SizeTmp.SizeFileKo); wininfo_create ( WindMain, _("CAPACITE DOSSIER TEMPORAIRE TROP FAIBLE"), _("Pas assez de place dans le dossier temporaire"), "\n", Str1, "\n", Str2, "\n\n", _("Veuillez deselectionner des PeakGroup."), ""); g_free (Str1); Str1 = NULL; g_free (Str2); Str2 = NULL; return; } else { fileaction_choice (); } break; case NOTEBOOK_FICHIERS_WAV : // g_print("NOTEBOOK_FICHIERS_WAV :\n"); filewavconv_apply (); break; case NOTEBOOK_FICHIERS_MP3OGG : // g_print("NOTEBOOK_FICHIERS_MP3OGG :\n"); filemp3oggconv_apply_regul_mp3ogg_by_conv (); break; case NOTEBOOK_FICHIERS_TAGS : // g_print("NOTEBOOK_FICHIERS_TAGS :\n"); FileTags_appliquer_clicked (); break; } } } // // gchar *file_get_pathname_dest (DETAIL *detail, gchar *NewExt) { gchar *PathName = NULL; gchar *Dummy = NULL; gchar *Ptr = NULL; switch (gtk_combo_box_get_active (var_file.Adr_combobox_DestFile)) { // CONVERSION VERS LA SOURCE case 0 : Dummy = g_strdup (detail->namefile); if (NULL != (Ptr = strrchr (Dummy, '/'))) *Ptr = '\0'; PathName = g_strdup_printf ("%s/%s.%s", Dummy, detail->NameDest, NewExt); g_free (Dummy); Ptr = Dummy = NULL; break; // CHOIX D UNE NOUVELLE DESTINATION case 1 : break; // CONVERSION VERS UNE NOUVELLE DESTINATION case 2 : switch (Config.NotebookFile) { case NOTEBOOK_FICHIERS_CONVERSION: PathName = g_strdup_printf ("%s/%s.%s", Config.PathDestinationFileAll, detail->NameDest, NewExt); break; case NOTEBOOK_FICHIERS_WAV : PathName = g_strdup_printf ("%s/%s.%s", Config.PathDestinationFileWav, detail->NameDest, NewExt); break; case NOTEBOOK_FICHIERS_MP3OGG : PathName = g_strdup_printf ("%s/%s.%s", Config.PathDestinationFileMp3Ogg, detail->NameDest, NewExt); break; } break; } return ((gchar *)PathName); } // RENVOIE TRUE SI LE FICHIER EXISTE SINON FALSE // gboolean file_test_with_new_ext_exist (DETAIL *detail, gchar *NewExt) { gchar *NewPathName = file_get_pathname_dest (detail, NewExt); gboolean BoolFileExist; BoolFileExist = libutils_test_file_exist (NewPathName); g_free (NewPathName); NewPathName = NULL; return (BoolFileExist); } // // void on_label_number_files_realize (GtkWidget *widget, gpointer user_data) { var_file.Adr_Label_Number = widget; } // // gint file_get_scan (void) { DETAIL *detail = NULL; GtkTreeIter iter; gboolean valid; gint compteur = 0; valid = gtk_tree_model_get_iter_first (var_file.Adr_Tree_Model, &iter); while (valid) { gtk_tree_model_get (var_file.Adr_Tree_Model, &iter, COLUMN_FILE_POINTER_STRUCT, &detail, -1); if (NULL != detail) { if(detail->type_infosong_file_is == FILE_IS_WAV || detail->type_infosong_file_is == FILE_IS_MP3 || detail->type_infosong_file_is == FILE_IS_OGG) { if (detail->Etat_Scan == ETAT_SCAN_DEMANDE) compteur ++; } } valid = gtk_tree_model_iter_next (var_file.Adr_Tree_Model, &iter); } return (compteur); } // // gchar *file_get_size (DETAIL *detail) { gchar *ptr = NULL; if (detail->type_infosong_file_is == FILE_IS_MP3) { INFO_MP3 *info = (INFO_MP3 *)detail->info; ptr = info->size; } else if (detail->type_infosong_file_is == FILE_IS_OGG) { INFO_OGG *info = (INFO_OGG *)detail->info; ptr = info->size; } return (ptr); } // // gchar *file_get_time (DETAIL *detail) { gchar *ptr = NULL; if (detail->type_infosong_file_is == FILE_IS_FLAC) { INFO_FLAC *info = (INFO_FLAC *)detail->info; ptr = info->time; } else if (detail->type_infosong_file_is == FILE_IS_WAV) { INFO_WAV *info = (INFO_WAV *)detail->info; ptr = info->time; } else if (detail->type_infosong_file_is == FILE_IS_MP3) { INFO_MP3 *info = (INFO_MP3 *)detail->info; ptr = info->time; } else if (detail->type_infosong_file_is == FILE_IS_OGG) { INFO_OGG *info = (INFO_OGG *)detail->info; ptr = info->time; } else if (detail->type_infosong_file_is == FILE_IS_M4A) { INFO_M4A *info = (INFO_M4A *)detail->info; ptr = info->time; } else if (detail->type_infosong_file_is == FILE_IS_VID_M4A) { INFO_M4A *info = (INFO_M4A *)detail->info; ptr = info->time; } else if (detail->type_infosong_file_is == FILE_IS_AAC) { INFO_AAC *info = (INFO_AAC *)detail->info; if ((INFO_AAC *)info) ptr = info->time; } /* Infos obtenues via SHNTOOL */ else if (detail->type_infosong_file_is == FILE_IS_APE) { INFO_APE *info = (INFO_APE *)detail->info; ptr = info->time; } else if (detail->type_infosong_file_is == FILE_IS_SHN) { INFO_SHN *info = (INFO_SHN *)detail->info; ptr = info->time; } else if (detail->type_infosong_file_is == FILE_IS_WAVPACK) { INFO_WAVPACK *info = (INFO_WAVPACK *)detail->info; ptr = info->time; } return ((gchar *)ptr); } // // typedef struct { TYPE_FILE_IS From; TYPE_FILE_IS To; gchar *Conv1; gboolean *Bool1; gchar *Conv2; gboolean *Bool2; } TST_FROM; TST_FROM TstFrom[] = { {FILE_IS_AC3, FILE_IS_AC3, "NORMALISE", &PrgInit.bool_a52dec, NULL, NULL }, {FILE_IS_AC3, FILE_IS_WAV, "NORMALISE", &PrgInit.bool_a52dec, NULL, NULL }, {FILE_IS_AC3, FILE_IS_FLAC, "NORMALISE", &PrgInit.bool_a52dec, "FLAC", &PrgInit.bool_flac }, {FILE_IS_AC3, FILE_IS_APE, "MPLAYER", &PrgInit.bool_a52dec, "MAC", &PrgInit.bool_ape }, {FILE_IS_AC3, FILE_IS_WAVPACK, "MPLAYER", &PrgInit.bool_a52dec, "WAVPACK", &PrgInit.bool_wavpack }, {FILE_IS_AC3, FILE_IS_OGG, "MPLAYER", &PrgInit.bool_a52dec, "OGGENC", &PrgInit.bool_oggenc }, {FILE_IS_AC3, FILE_IS_M4A, "FAAC", &PrgInit.bool_a52dec, "FAAC", &PrgInit.bool_faac }, {FILE_IS_AC3, FILE_IS_AAC, "AACPLUSENC", &PrgInit.bool_a52dec, "AACPLUSENC", &PrgInit.bool_aacplusenc }, {FILE_IS_AC3, FILE_IS_MPC, "MPLAYER", &PrgInit.bool_a52dec, "MPPENC", &PrgInit.bool_mppenc }, {FILE_IS_AC3, FILE_IS_MP3, "MPLAYER", &PrgInit.bool_a52dec, "LAME", &PrgInit.bool_lame }, {FILE_IS_WMA, FILE_IS_WMA, "MPLAYER", &PrgInit.bool_mplayer, NULL, NULL }, {FILE_IS_WMA, FILE_IS_WAV, "MPLAYER", &PrgInit.bool_mplayer, NULL, NULL }, {FILE_IS_WMA, FILE_IS_MP3, "MPLAYER", &PrgInit.bool_mplayer, "LAME", &PrgInit.bool_lame }, {FILE_IS_WMA, FILE_IS_OGG, "MPLAYER", &PrgInit.bool_mplayer, "OGGENC", &PrgInit.bool_oggenc }, {FILE_IS_WMA, FILE_IS_FLAC, "MPLAYER", &PrgInit.bool_mplayer, "FLAC", &PrgInit.bool_flac }, {FILE_IS_WMA, FILE_IS_M4A, "MPLAYER", &PrgInit.bool_mplayer, "FAAC", &PrgInit.bool_faac }, {FILE_IS_WMA, FILE_IS_AAC, "MPLAYER", &PrgInit.bool_mplayer, "AACPLUSENC", &PrgInit.bool_aacplusenc }, {FILE_IS_WMA, FILE_IS_MPC, "MPLAYER", &PrgInit.bool_mplayer, "MPPENC", &PrgInit.bool_mppenc }, {FILE_IS_WMA, FILE_IS_APE, "MPLAYER", &PrgInit.bool_mplayer, "MAC", &PrgInit.bool_ape }, {FILE_IS_WMA, FILE_IS_WAVPACK, "MPLAYER", &PrgInit.bool_mplayer, "WAVPACK", &PrgInit.bool_wavpack }, {FILE_IS_RM, FILE_IS_RM, "MPLAYER", &PrgInit.bool_mplayer, NULL, NULL }, {FILE_IS_RM, FILE_IS_WAV, "MPLAYER", &PrgInit.bool_mplayer, NULL, NULL }, {FILE_IS_RM, FILE_IS_MP3, "MPLAYER", &PrgInit.bool_mplayer, "LAME", &PrgInit.bool_lame }, {FILE_IS_RM, FILE_IS_OGG, "MPLAYER", &PrgInit.bool_mplayer, "OGGENC", &PrgInit.bool_oggenc }, {FILE_IS_RM, FILE_IS_FLAC, "MPLAYER", &PrgInit.bool_mplayer, "FLAC", &PrgInit.bool_flac }, {FILE_IS_RM, FILE_IS_M4A, "MPLAYER", &PrgInit.bool_mplayer, "FAAC", &PrgInit.bool_faac }, {FILE_IS_RM, FILE_IS_AAC, "MPLAYER", &PrgInit.bool_mplayer, "AACPLUSENC", &PrgInit.bool_aacplusenc }, {FILE_IS_RM, FILE_IS_MPC, "MPLAYER", &PrgInit.bool_mplayer, "MPPENC", &PrgInit.bool_mppenc }, {FILE_IS_RM, FILE_IS_APE, "MPLAYER", &PrgInit.bool_mplayer, "MAC", &PrgInit.bool_ape }, {FILE_IS_RM, FILE_IS_WAVPACK, "MPLAYER", &PrgInit.bool_mplayer, "WAVPACK", &PrgInit.bool_wavpack }, {FILE_IS_DTS, FILE_IS_DTS, "MPLAYER", &PrgInit.bool_mplayer, NULL, NULL }, {FILE_IS_DTS, FILE_IS_WAV, "MPLAYER", &PrgInit.bool_mplayer, NULL, NULL }, {FILE_IS_DTS, FILE_IS_MP3, "MPLAYER", &PrgInit.bool_mplayer, "LAME", &PrgInit.bool_lame }, {FILE_IS_DTS, FILE_IS_OGG, "MPLAYER", &PrgInit.bool_mplayer, "OGGENC", &PrgInit.bool_oggenc }, {FILE_IS_DTS, FILE_IS_FLAC, "MPLAYER", &PrgInit.bool_mplayer, "FLAC", &PrgInit.bool_flac }, {FILE_IS_DTS, FILE_IS_M4A, "MPLAYER", &PrgInit.bool_mplayer, "FAAC", &PrgInit.bool_faac }, {FILE_IS_DTS, FILE_IS_AAC, "MPLAYER", &PrgInit.bool_mplayer, "AACPLUSENC", &PrgInit.bool_aacplusenc }, {FILE_IS_DTS, FILE_IS_MPC, "MPLAYER", &PrgInit.bool_mplayer, "MPPENC", &PrgInit.bool_mppenc }, {FILE_IS_DTS, FILE_IS_APE, "MPLAYER", &PrgInit.bool_mplayer, "MAC", &PrgInit.bool_ape }, {FILE_IS_DTS, FILE_IS_WAVPACK, "MPLAYER", &PrgInit.bool_mplayer, "WAVPACK", &PrgInit.bool_wavpack }, {FILE_IS_AIFF, FILE_IS_AIFF, "MPLAYER", &PrgInit.bool_mplayer, NULL, NULL }, {FILE_IS_AIFF, FILE_IS_WAV, "MPLAYER", &PrgInit.bool_mplayer, NULL, NULL }, {FILE_IS_AIFF, FILE_IS_MP3, "MPLAYER", &PrgInit.bool_mplayer, "LAME", &PrgInit.bool_lame }, {FILE_IS_AIFF, FILE_IS_OGG, "MPLAYER", &PrgInit.bool_mplayer, "OGGENC", &PrgInit.bool_oggenc }, {FILE_IS_AIFF, FILE_IS_FLAC, "MPLAYER", &PrgInit.bool_mplayer, "FLAC", &PrgInit.bool_flac }, {FILE_IS_AIFF, FILE_IS_M4A, "MPLAYER", &PrgInit.bool_mplayer, "FAAC", &PrgInit.bool_faac }, {FILE_IS_AIFF, FILE_IS_AAC, "MPLAYER", &PrgInit.bool_mplayer, "AACPLUSENC", &PrgInit.bool_aacplusenc }, {FILE_IS_AIFF, FILE_IS_MPC, "MPLAYER", &PrgInit.bool_mplayer, "MPPENC", &PrgInit.bool_mppenc }, {FILE_IS_AIFF, FILE_IS_APE, "MPLAYER", &PrgInit.bool_mplayer, "MAC", &PrgInit.bool_ape }, {FILE_IS_AIFF, FILE_IS_WAVPACK, "MPLAYER", &PrgInit.bool_mplayer, "WAVPACK", &PrgInit.bool_wavpack }, {FILE_IS_WAV, FILE_TO_NORMALISE, "NORMALISE", &PrgInit.bool_normalize, NULL, NULL }, {FILE_IS_WAV, FILE_TO_NORMALISE_COLLECTIF, "NORMALISE", &PrgInit.bool_normalize, NULL, NULL }, {FILE_IS_WAV, FILE_IS_MP3, "MPLAYER", &PrgInit.bool_mplayer, "LAME", &PrgInit.bool_lame }, {FILE_IS_WAV, FILE_IS_OGG, "MPLAYER", &PrgInit.bool_mplayer, "OGGENC", &PrgInit.bool_oggenc }, {FILE_IS_WAV, FILE_IS_FLAC, "MPLAYER", &PrgInit.bool_mplayer, "FLAC", &PrgInit.bool_flac }, {FILE_IS_WAV, FILE_IS_M4A, "FAAC", &PrgInit.bool_faac, NULL, NULL }, {FILE_IS_WAV, FILE_IS_AAC, "AACPLUSENC", &PrgInit.bool_aacplusenc, NULL, NULL }, {FILE_IS_WAV, FILE_IS_MPC, "MPLAYER", &PrgInit.bool_mplayer, "MPPENC", &PrgInit.bool_mppenc }, {FILE_IS_WAV, FILE_IS_APE, "MPLAYER", &PrgInit.bool_mplayer, "MAC", &PrgInit.bool_ape }, {FILE_IS_WAV, FILE_IS_WAVPACK, "MPLAYER", &PrgInit.bool_mplayer, "WAVPACK", &PrgInit.bool_wavpack }, {FILE_IS_FLAC, FILE_TO_REPLAYGAIN, "METAFLAC", &PrgInit.bool_flac, NULL, NULL }, {FILE_IS_FLAC, FILE_IS_WAV, "FLAC", &PrgInit.bool_flac, NULL, NULL }, {FILE_IS_FLAC, FILE_IS_MP3, "FLAC", &PrgInit.bool_flac, "LAME", &PrgInit.bool_lame }, {FILE_IS_FLAC, FILE_IS_OGG, "OGGENC", &PrgInit.bool_oggenc, NULL, NULL }, {FILE_IS_FLAC, FILE_IS_M4A, "FLAC", &PrgInit.bool_flac, "FAAC", &PrgInit.bool_faac }, {FILE_IS_FLAC, FILE_IS_AAC, "FLAC", &PrgInit.bool_flac, "AACPLUSENC", &PrgInit.bool_aacplusenc }, {FILE_IS_FLAC, FILE_IS_MPC, "FLAC", &PrgInit.bool_flac, "MPPENC", &PrgInit.bool_mppenc }, {FILE_IS_FLAC, FILE_IS_APE, "FLAC", &PrgInit.bool_flac, "MAC", &PrgInit.bool_ape }, {FILE_IS_FLAC, FILE_IS_WAVPACK, "FLAC", &PrgInit.bool_flac, "WAVPACK", &PrgInit.bool_wavpack }, {FILE_IS_MP3, FILE_TO_REPLAYGAIN, "MP3GAIN", &PrgInit.bool_mp3gain, NULL, NULL }, {FILE_IS_MP3, FILE_TO_NORMALISE, "NORMALISE", &PrgInit.bool_normalize, NULL, NULL }, {FILE_IS_MP3, FILE_TO_NORMALISE_COLLECTIF, "NORMALISE", &PrgInit.bool_normalize, NULL, NULL }, {FILE_IS_MP3, FILE_IS_MP3, "MPLAYER", &PrgInit.bool_mplayer, NULL, NULL }, {FILE_IS_MP3, FILE_IS_WAV, "MPLAYER", &PrgInit.bool_mplayer, NULL, NULL }, {FILE_IS_MP3, FILE_IS_OGG, "MPLAYER", &PrgInit.bool_mplayer, "OGGENC", &PrgInit.bool_oggenc }, {FILE_IS_MP3, FILE_IS_FLAC, "MPLAYER", &PrgInit.bool_mplayer, "FLAC", &PrgInit.bool_flac }, {FILE_IS_MP3, FILE_IS_M4A, "MPLAYER", &PrgInit.bool_mplayer, "FAAC", &PrgInit.bool_faac }, {FILE_IS_MP3, FILE_IS_AAC, "MPLAYER", &PrgInit.bool_mplayer, "AACPLUSENC", &PrgInit.bool_aacplusenc }, {FILE_IS_MP3, FILE_IS_MPC, "MPLAYER", &PrgInit.bool_mplayer, "MPPENC", &PrgInit.bool_mppenc }, {FILE_IS_MP3, FILE_IS_APE, "MPLAYER", &PrgInit.bool_mplayer, "MAC", &PrgInit.bool_ape }, {FILE_IS_MP3, FILE_IS_WAVPACK, "MPLAYER", &PrgInit.bool_mplayer, "WAVPACK", &PrgInit.bool_wavpack }, {FILE_IS_OGG, FILE_TO_REPLAYGAIN, "VORBISGAIN", &PrgInit.bool_vorbisgain, NULL, NULL }, {FILE_IS_OGG, FILE_TO_NORMALISE, "NORMALISE", &PrgInit.bool_normalize, NULL, NULL }, {FILE_IS_OGG, FILE_TO_NORMALISE_COLLECTIF, "NORMALISE", &PrgInit.bool_normalize, NULL, NULL }, {FILE_IS_OGG, FILE_IS_OGG, "OGGENC", &PrgInit.bool_oggenc, NULL, NULL }, {FILE_IS_OGG, FILE_IS_WAV, "OGGENC", &PrgInit.bool_oggenc, NULL, NULL }, {FILE_IS_OGG, FILE_IS_MP3, "OGGENC", &PrgInit.bool_oggenc, "LAME", &PrgInit.bool_lame }, {FILE_IS_OGG, FILE_IS_FLAC, "OGGENC", &PrgInit.bool_oggenc, "FLAC", &PrgInit.bool_flac }, {FILE_IS_OGG, FILE_IS_M4A, "OGGENC", &PrgInit.bool_oggenc, "FAAC", &PrgInit.bool_faac }, {FILE_IS_OGG, FILE_IS_AAC, "OGGENC", &PrgInit.bool_oggenc, "AACPLUSENC", &PrgInit.bool_aacplusenc }, {FILE_IS_OGG, FILE_IS_MPC, "OGGENC", &PrgInit.bool_oggenc, "MPPENC", &PrgInit.bool_mppenc }, {FILE_IS_OGG, FILE_IS_APE, "OGGENC", &PrgInit.bool_oggenc, "MAC", &PrgInit.bool_ape }, {FILE_IS_OGG, FILE_IS_WAVPACK, "OGGENC", &PrgInit.bool_oggenc, "WAVPACK", &PrgInit.bool_wavpack }, {FILE_IS_SHN, FILE_IS_WAV, "SHORTEN", &PrgInit.bool_shorten, NULL, NULL }, {FILE_IS_SHN, FILE_IS_MP3, "SHORTEN", &PrgInit.bool_shorten, "LAME", &PrgInit.bool_lame }, {FILE_IS_SHN, FILE_IS_OGG, "SHORTEN", &PrgInit.bool_shorten, "OGGENC", &PrgInit.bool_oggenc }, {FILE_IS_SHN, FILE_IS_FLAC, "SHORTEN", &PrgInit.bool_shorten, "FLAC", &PrgInit.bool_flac }, {FILE_IS_SHN, FILE_IS_M4A, "SHORTEN", &PrgInit.bool_shorten, "FAAC", &PrgInit.bool_faac }, {FILE_IS_SHN, FILE_IS_AAC, "SHORTEN", &PrgInit.bool_shorten, "AACPLUSENC", &PrgInit.bool_aacplusenc }, {FILE_IS_SHN, FILE_IS_MPC, "SHORTEN", &PrgInit.bool_shorten, "MPPENC", &PrgInit.bool_mppenc }, {FILE_IS_SHN, FILE_IS_APE, "SHORTEN", &PrgInit.bool_shorten, "MAC", &PrgInit.bool_ape }, {FILE_IS_SHN, FILE_IS_WAVPACK, "SHORTEN", &PrgInit.bool_shorten, "WAVPACK", &PrgInit.bool_wavpack }, {FILE_IS_M4A, FILE_IS_M4A, "MPLAYER", &PrgInit.bool_mplayer, NULL, NULL }, {FILE_IS_M4A, FILE_IS_AAC, "MPLAYER", &PrgInit.bool_mplayer, "AACPLUSENC", &PrgInit.bool_aacplusenc }, {FILE_IS_M4A, FILE_IS_WAV, "MPLAYER", &PrgInit.bool_mplayer, NULL, NULL }, {FILE_IS_M4A, FILE_IS_MP3, "MPLAYER", &PrgInit.bool_mplayer, "LAME", &PrgInit.bool_lame }, {FILE_IS_M4A, FILE_IS_OGG, "MPLAYER", &PrgInit.bool_mplayer, "OGGENC", &PrgInit.bool_oggenc }, {FILE_IS_M4A, FILE_IS_FLAC, "MPLAYER", &PrgInit.bool_mplayer, "FLAC", &PrgInit.bool_flac }, {FILE_IS_M4A, FILE_IS_MPC, "MPLAYER", &PrgInit.bool_mplayer, "MPPENC", &PrgInit.bool_mppenc }, {FILE_IS_M4A, FILE_IS_APE, "MPLAYER", &PrgInit.bool_mplayer, "MAC", &PrgInit.bool_ape }, {FILE_IS_M4A, FILE_IS_WAVPACK, "MPLAYER", &PrgInit.bool_mplayer, "WAVPACK", &PrgInit.bool_wavpack }, {FILE_IS_MPC, FILE_IS_MPC, "MPLAYER", &PrgInit.bool_mplayer, NULL, NULL }, {FILE_IS_MPC, FILE_IS_WAV, "MPPDEC", &PrgInit.bool_mpc123_mppdec, NULL, NULL }, {FILE_IS_MPC, FILE_IS_MP3, "MPPDEC", &PrgInit.bool_mpc123_mppdec, "LAME", &PrgInit.bool_lame }, {FILE_IS_MPC, FILE_IS_OGG, "MPPDEC", &PrgInit.bool_mpc123_mppdec, "OGGENC", &PrgInit.bool_oggenc }, {FILE_IS_MPC, FILE_IS_FLAC, "MPPDEC", &PrgInit.bool_mpc123_mppdec, "FLAC", &PrgInit.bool_flac }, {FILE_IS_MPC, FILE_IS_M4A, "MPPDEC", &PrgInit.bool_mpc123_mppdec, "FAAC", &PrgInit.bool_faac }, {FILE_IS_MPC, FILE_IS_AAC, "MPPDEC", &PrgInit.bool_mpc123_mppdec, "AACPLUSENC", &PrgInit.bool_aacplusenc }, {FILE_IS_MPC, FILE_IS_APE, "MPPDEC", &PrgInit.bool_mpc123_mppdec, "MAC", &PrgInit.bool_ape }, {FILE_IS_MPC, FILE_IS_WAVPACK, "MPPDEC", &PrgInit.bool_mpc123_mppdec, "WAVPACK", &PrgInit.bool_wavpack }, {FILE_IS_APE, FILE_IS_WAV, "MAC", &PrgInit.bool_ape, NULL, NULL }, {FILE_IS_APE, FILE_IS_MP3, "MAC", &PrgInit.bool_ape, "LAME", &PrgInit.bool_lame }, {FILE_IS_APE, FILE_IS_OGG, "MAC", &PrgInit.bool_ape, "OGGENC", &PrgInit.bool_oggenc }, {FILE_IS_APE, FILE_IS_FLAC, "MAC", &PrgInit.bool_ape, "FLAC", &PrgInit.bool_flac }, {FILE_IS_APE, FILE_IS_M4A, "MAC", &PrgInit.bool_ape, "FAAC", &PrgInit.bool_faac }, {FILE_IS_APE, FILE_IS_AAC, "MAC", &PrgInit.bool_ape, "AACPLUSENC", &PrgInit.bool_aacplusenc }, {FILE_IS_APE, FILE_IS_MPC, "MAC", &PrgInit.bool_ape, "MPPENC", &PrgInit.bool_mppenc }, {FILE_IS_APE, FILE_IS_WAVPACK, "MAC", &PrgInit.bool_ape, "WAVPACK", &PrgInit.bool_wavpack }, {FILE_IS_WAVPACK, FILE_TO_REPLAYGAIN, "WVGAIN", &PrgInit.bool_wavpack, NULL, NULL }, {FILE_IS_WAVPACK, FILE_IS_WAVPACK, "MPLAYER", &PrgInit.bool_mplayer, NULL, NULL }, {FILE_IS_WAVPACK, FILE_IS_WAV, "WVUNPACK", &PrgInit.bool_wavpack, NULL, NULL }, {FILE_IS_WAVPACK, FILE_IS_MP3, "WVUNPACK", &PrgInit.bool_wavpack, "LAME", &PrgInit.bool_lame }, {FILE_IS_WAVPACK, FILE_IS_OGG, "WVUNPACK", &PrgInit.bool_wavpack, "OGGENC", &PrgInit.bool_oggenc }, {FILE_IS_WAVPACK, FILE_IS_FLAC, "WVUNPACK", &PrgInit.bool_wavpack, "FLAC", &PrgInit.bool_flac }, {FILE_IS_WAVPACK, FILE_IS_M4A, "WVUNPACK", &PrgInit.bool_wavpack, "FAAC", &PrgInit.bool_faac }, {FILE_IS_WAVPACK, FILE_IS_AAC, "WVUNPACK", &PrgInit.bool_wavpack, "AACPLUSENC", &PrgInit.bool_aacplusenc }, {FILE_IS_WAVPACK, FILE_IS_MPC, "WVUNPACK", &PrgInit.bool_wavpack, "MPPENC", &PrgInit.bool_mppenc }, {FILE_IS_WAVPACK, FILE_IS_APE, "WVUNPACK", &PrgInit.bool_wavpack, "MAC", &PrgInit.bool_ape }, {-1} }; gboolean file_bool_from_to (DETAIL *detail, TYPE_FILE_IS to) { gint Cpt; TYPE_FILE_IS from = detail->type_infosong_file_is; for (Cpt = 0; TstFrom [ Cpt ].From != -1; Cpt ++) { if (from == TstFrom [ Cpt ].From && to == TstFrom [ Cpt ].To) { if (TstFrom [ Cpt ].Conv2 != NULL) { return (*TstFrom [ Cpt ].Bool1 & *TstFrom [ Cpt ].Bool2); } else { return (*TstFrom [ Cpt ].Bool1); } } } return TRUE; } // BASCULE DE L ETAT DU FLAG SUR L ETAT SUIVANT // ETAT_SELECTION file_get_next_flag (DETAIL *detail, TYPE_FILE_IS type) { ETAT_SELECTION etat = ETAT_ATTENTE; gboolean BoolFileExist = FALSE; gboolean BoolOpExpertExist = FALSE; if (detail->type_infosong_file_is == type) return (ETAT_PRG_NONE); if (FALSE == file_bool_from_to (detail, type)) return (ETAT_PRG_ABSENT); if (type == FILE_IS_WAV) { etat = detail->EtatSelection_Wav; BoolFileExist = file_test_with_new_ext_exist (detail, "wav"); } else if (type == FILE_IS_FLAC) { etat = detail->EtatSelection_Flac; BoolFileExist = file_test_with_new_ext_exist (detail, "flac"); BoolOpExpertExist = Config.StringExpanderFlac != NULL && '\0' != *Config.StringExpanderFlac ? TRUE : FALSE; } else if (type == FILE_IS_APE) { etat = detail->EtatSelection_Ape; BoolFileExist = file_test_with_new_ext_exist (detail, "ape"); BoolOpExpertExist = Config.StringExpanderMac != NULL && '\0' != *Config.StringExpanderMac ? TRUE : FALSE; } else if (type == FILE_IS_WAVPACK) { etat = detail->EtatSelection_WavPack; BoolFileExist = file_test_with_new_ext_exist (detail, "wv"); BoolOpExpertExist = Config.StringExpanderWavpack != NULL && '\0' != *Config.StringExpanderWavpack ? TRUE : FALSE; } else if (type == FILE_IS_OGG) { etat = detail->EtatSelection_Ogg; BoolFileExist = file_test_with_new_ext_exist (detail, "ogg"); BoolOpExpertExist = Config.StringExpanderOggenc != NULL && '\0' != *Config.StringExpanderOggenc ? TRUE : FALSE; } else if (type == FILE_IS_M4A) { etat = detail->EtatSelection_M4a; BoolFileExist = file_test_with_new_ext_exist (detail, "m4a"); BoolOpExpertExist = Config.StringExpanderFaac != NULL && '\0' != *Config.StringExpanderFaac ? TRUE : FALSE; } else if (type == FILE_IS_AAC) { etat = detail->EtatSelection_Aac; BoolFileExist = file_test_with_new_ext_exist (detail, "aac"); } else if (type == FILE_IS_MPC) { etat = detail->EtatSelection_Mpc; BoolFileExist = file_test_with_new_ext_exist (detail, "mpc"); BoolOpExpertExist = Config.StringExpanderMppenc != NULL && '\0' != *Config.StringExpanderMppenc ? TRUE : FALSE; } else if (type == FILE_IS_MP3) { etat = detail->EtatSelection_Mp3; BoolFileExist = file_test_with_new_ext_exist (detail, "mp3"); BoolOpExpertExist = Config.StringExpanderLame != NULL && '\0' != *Config.StringExpanderLame ? TRUE : FALSE; } switch (etat) { case ETAT_PRG_NONE : if (type == FILE_IS_FLAC) { return (fileanalyze_exist (detail, "flac") ? ETAT_ATTENTE_EXIST : ETAT_ATTENTE); } else if (type == FILE_IS_WAV) { return (fileanalyze_exist (detail, "wav") ? ETAT_ATTENTE_EXIST : ETAT_ATTENTE); } else if (type == FILE_IS_MP3) { return (fileanalyze_exist (detail, "mp3") ? ETAT_ATTENTE_EXIST : ETAT_ATTENTE); } else if (type == FILE_IS_OGG) { return (fileanalyze_exist (detail, "ogg") ? ETAT_ATTENTE_EXIST : ETAT_ATTENTE); } else if (type == FILE_IS_M4A) { return (fileanalyze_exist (detail, "m4a") ? ETAT_ATTENTE_EXIST : ETAT_ATTENTE); } else if (type == FILE_IS_AAC) { return (fileanalyze_exist (detail, "aac") ? ETAT_ATTENTE_EXIST : ETAT_ATTENTE); } else if (type == FILE_IS_MPC) { return (fileanalyze_exist (detail, "mpc") ? ETAT_ATTENTE_EXIST : ETAT_ATTENTE); } else if (type == FILE_IS_APE) { return (fileanalyze_exist (detail, "ape") ? ETAT_ATTENTE_EXIST : ETAT_ATTENTE); } else if (type == FILE_IS_WAVPACK) { return (fileanalyze_exist (detail, "wv") ? ETAT_ATTENTE_EXIST : ETAT_ATTENTE); } return (ETAT_PRG_NONE); case ETAT_PRG_ABSENT : return( ETAT_PRG_ABSENT ); break; case ETAT_ATTENTE : case ETAT_ATTENTE_EXIST : return (TRUE == BoolFileExist ? ETAT_SELECT_EXIST : ETAT_SELECT); case ETAT_SELECT : case ETAT_SELECT_EXIST : if (TRUE == BoolOpExpertExist) return (TRUE == BoolFileExist ? ETAT_SELECT_EXPERT_EXIST : ETAT_SELECT_EXPERT); else return (TRUE == BoolFileExist ? ETAT_ATTENTE_EXIST : ETAT_ATTENTE); case ETAT_SELECT_EXPERT : case ETAT_SELECT_EXPERT_EXIST : return (TRUE == BoolFileExist ? ETAT_ATTENTE_EXIST : ETAT_ATTENTE); } return (etat); } // RENVOIE L ETAT ACTUEL SOUS FORME D UN PIXBUF // GdkPixbuf *file_get_pixbuf (DETAIL *detail, TYPE_FILE_IS type) { ETAT_SELECTION *etat = NULL; gboolean BoolFileExist = FALSE; if( detail->type_infosong_file_is == type ) return ((GdkPixbuf *)NULL); if( FILE_IS_VID_M4A == detail->type_infosong_file_is && type == FILE_IS_M4A ) return ((GdkPixbuf *)NULL); if (FALSE == file_bool_from_to (detail, type)) return (var_file.Pixbuf_NotInstall); if (detail->type_infosong_file_is != type) { if (type == FILE_IS_WAV) { etat = &detail->EtatSelection_Wav; BoolFileExist = file_test_with_new_ext_exist (detail, "wav"); } else if (type == FILE_IS_FLAC) { etat = &detail->EtatSelection_Flac; BoolFileExist = file_test_with_new_ext_exist (detail, "flac"); } else if (type == FILE_IS_APE) { etat = &detail->EtatSelection_Ape; BoolFileExist = file_test_with_new_ext_exist (detail, "ape"); } else if (type == FILE_IS_WAVPACK) { etat = &detail->EtatSelection_WavPack; BoolFileExist = file_test_with_new_ext_exist (detail, "wv"); } else if (type == FILE_IS_OGG) { etat = &detail->EtatSelection_Ogg; BoolFileExist = file_test_with_new_ext_exist (detail, "ogg"); } else if (type == FILE_IS_M4A) { etat = &detail->EtatSelection_M4a; BoolFileExist = file_test_with_new_ext_exist (detail, "m4a"); } else if (type == FILE_IS_AAC) { etat = &detail->EtatSelection_Aac; BoolFileExist = file_test_with_new_ext_exist (detail, "aac"); } else if (type == FILE_IS_MPC) { etat = &detail->EtatSelection_Mpc; BoolFileExist = file_test_with_new_ext_exist (detail, "mpc"); } else if (type == FILE_IS_MP3) { etat = &detail->EtatSelection_Mp3; BoolFileExist = file_test_with_new_ext_exist (detail, "mp3"); } switch (*etat) { case ETAT_PRG_NONE : *etat = ETAT_PRG_NONE; return (NULL); break; case ETAT_PRG_ABSENT : *etat = ETAT_PRG_ABSENT; return (var_file.Pixbuf_NotInstall); break; case ETAT_ATTENTE : case ETAT_ATTENTE_EXIST : *etat = TRUE == BoolFileExist ? ETAT_ATTENTE_EXIST : ETAT_ATTENTE; return (TRUE == BoolFileExist ? var_file.Pixbuf_Coche_exist : var_file.Pixbuf_Coche); break; case ETAT_SELECT : case ETAT_SELECT_EXIST : *etat = TRUE == BoolFileExist ? ETAT_SELECT_EXIST : ETAT_SELECT; return (TRUE == BoolFileExist ? var_file.Pixbuf_Selected_exist : var_file.Pixbuf_Selected); break; case ETAT_SELECT_EXPERT : case ETAT_SELECT_EXPERT_EXIST : *etat = TRUE == BoolFileExist ? ETAT_SELECT_EXPERT_EXIST : ETAT_SELECT_EXPERT; return (TRUE == BoolFileExist ? var_file.Pixbuf_Selected_expert_exist : var_file.Pixbuf_Selected_expert); break; } } return ((GdkPixbuf *)NULL); } // // gchar *file_get_str_level_normalise (DETAIL *detail) { gint level = 0; gint NewLevel = 0; gchar *Str = NULL; if (detail->type_infosong_file_is == FILE_IS_WAV) { INFO_WAV *info = (INFO_WAV *)detail->info; level = info->LevelDbfs.level; NewLevel = info->LevelDbfs.NewLevel; } else if (detail->type_infosong_file_is == FILE_IS_MP3) { INFO_MP3 *info = (INFO_MP3 *)detail->info; level = info->LevelDbfs.level; NewLevel = info->LevelDbfs.NewLevel; } else if (detail->type_infosong_file_is == FILE_IS_OGG) { INFO_OGG *info = (INFO_OGG *)detail->info; level = info->LevelDbfs.level; NewLevel = info->LevelDbfs.NewLevel; } else { detail->Etat_Normalise = NORM_NONE; } switch (detail->Etat_Normalise) { case NORM_NONE : Str = g_strdup (""); break; case NORM_READY_FOR_SELECT : Str = g_strdup ("[ ]"); break; case NORM_PEAK_ALBUM : Str = g_strdup ("PEAK/ALBUM"); break; case NORM_PEAK : Str = g_strdup_printf ("PEAK"); break; case NORM_RMS_MIX_ALBUM : if (detail->Etat_Scan == ETAT_SCAN_NONE) { detail->Etat_Scan = ETAT_SCAN_DEMANDE; FileScanDB_action (TRUE); } if (detail->LevelMix < level) { Str = g_strdup_printf ("RMS/ALBUM:%02d:%02d dBFS", level, detail->LevelMix); } else if (detail->LevelMix == level) { Str = g_strdup_printf ("RMS/ALBUM:%02d:%02d dBFS", level, detail->LevelMix); } else if (detail->LevelMix > level) { Str = g_strdup_printf ("RMS/ALBUM:%02d:%02d dBFS", level, detail->LevelMix); } else { Str = g_strdup (""); } break; case NORM_RMS_FIX : if (detail->Etat_Scan == ETAT_SCAN_NONE) { detail->Etat_Scan = ETAT_SCAN_DEMANDE; FileScanDB_action (TRUE); } if (NewLevel < level) { Str = g_strdup_printf ("RMS:%02d:%02d dBFS", level, NewLevel); } else if (NewLevel == level) { Str = g_strdup_printf ("RMS:%02d:%02d dBFS", level, NewLevel); } else if (NewLevel > level){ Str = g_strdup_printf ("RMS:%02d:%02d dBFS", level, NewLevel); } else { Str = g_strdup (""); } break; } return (Str); } // CETTE FONCTION RETOURNE UN TYPE DE PIXBUF REFLETANT L ETA DU REPLAGAIN // GdkPixbuf *file_get_pixbuf_replaygain (DETAIL *detail, gboolean p_bool_next) { GdkPixbuf *PixBuf = NULL; switch (detail->type_infosong_file_is) { case FILE_IS_NONE : case FILE_IS_WAV : case FILE_IS_M4A : case FILE_IS_VID_M4A : case FILE_IS_AAC : case FILE_IS_SHN : case FILE_IS_WMA : case FILE_IS_RM : case FILE_IS_DTS : case FILE_IS_AIFF : case FILE_IS_APE : case FILE_IS_WAVPACK_MD5 : case FILE_IS_AC3 : case FILE_TO_NORMALISE : case FILE_TO_NORMALISE_COLLECTIF : case FILE_TO_REPLAYGAIN : /* Remarque de @Shankarius: je me demande si le support du ReplayGain pour MusePack est vraiment souhaitable du fait qu'il ne se trouve pas dans les depots, de l'impossibilite de supprimer les tags et de la doc plus que limitee le concernant... */ case FILE_IS_MPC : break; case FILE_IS_MP3 : case FILE_IS_OGG : case FILE_IS_WAVPACK : if (detail->type_infosong_file_is == FILE_IS_MP3 && ! PrgInit.bool_mp3gain) return (var_file.Pixbuf_NotInstall); if (detail->type_infosong_file_is == FILE_IS_OGG && ! PrgInit.bool_vorbisgain) return (var_file.Pixbuf_NotInstall); if (detail->type_infosong_file_is == FILE_IS_WAVPACK && ! PrgInit.bool_wavpack) return (var_file.Pixbuf_NotInstall); switch (detail->Etat_ReplayGain) { case RPG_NONE : return (NULL); case RPG_ATTENTE : if (p_bool_next) { detail->Etat_ReplayGain = RPG_PISTE; return (var_file.Pixbuf_rpg_piste); } return (var_file.Pixbuf_rpg_wait); case RPG_PISTE : if (p_bool_next) { detail->Etat_ReplayGain = RPG_ALBUM; return (var_file.Pixbuf_rpg_album); } return (var_file.Pixbuf_rpg_piste); case RPG_ALBUM : if (p_bool_next) { detail->Etat_ReplayGain = RPG_EFFACER; return (var_file.Pixbuf_rpg_effacer); } return (var_file.Pixbuf_rpg_album); case RPG_EFFACER : if (p_bool_next) { detail->Etat_ReplayGain = RPG_ATTENTE; return (var_file.Pixbuf_rpg_wait); } return (var_file.Pixbuf_rpg_effacer); } break; case FILE_IS_FLAC : if (FALSE == PrgInit.bool_flac) return (var_file.Pixbuf_NotInstall); switch (detail->Etat_ReplayGain) { case RPG_NONE : return (NULL); case RPG_ATTENTE : if (p_bool_next) { detail->Etat_ReplayGain = RPG_ALBUM; return (var_file.Pixbuf_rpg_album); } return (var_file.Pixbuf_rpg_wait); case RPG_PISTE : detail->Etat_ReplayGain = RPG_ATTENTE; return (var_file.Pixbuf_rpg_wait); case RPG_ALBUM : if (p_bool_next) { detail->Etat_ReplayGain = RPG_EFFACER; return (var_file.Pixbuf_rpg_effacer); } return (var_file.Pixbuf_rpg_album); case RPG_EFFACER : if (p_bool_next) { detail->Etat_ReplayGain = RPG_ATTENTE; return (var_file.Pixbuf_rpg_wait); } return (var_file.Pixbuf_rpg_effacer); } } return ((GdkPixbuf *)PixBuf); } // // GdkPixbuf *file_get_pixbuf_trash (DETAIL *detail) { if (FILE_TRASH_NONE == detail->EtatTrash) { return ((GdkPixbuf *)var_file.Pixbuf_NoTrash); } else if (FILE_TRASH_OK == detail->EtatTrash) { return ((GdkPixbuf *)var_file.Pixbuf_Trash); } return ((GdkPixbuf *)NULL); } // // gchar *file_get_name_to_treview( DETAIL *detail ) { gchar *NameSrc = libutils_get_name_without_ext( detail->namefile ); gchar *NameEperluette = utf8_eperluette_name( detail->NameDest ); gboolean BoolIdem = FALSE; BoolIdem = ( strlen( detail->NameDest ) == strlen( NameSrc ) && 0 == strcmp( detail->NameDest, NameSrc )) ? TRUE : FALSE; g_free (NameSrc); NameSrc = NULL; if( TRUE == BoolIdem ) NameSrc = g_strdup( NameEperluette ); else NameSrc = g_strdup_printf( "%s", NameEperluette ); g_free( NameEperluette ); NameEperluette = NULL; return( (gchar *)NameSrc ); } // // void file_make_combobox_select_type (void); void file_affiche_glist (void) { DETAIL *detail = NULL; GList *List = NULL; GtkTreeIter iter; GtkAdjustment *Adj = NULL; gdouble AdjValue; gint Line = 0; // LIGNE EN COURS gchar *NameDest = NULL; gint NumLineSelected = -1; gboolean BoolNumLineSelected = FALSE; // RECUP SELECTION // NumLineSelected = libutils_get_first_line_is_selected( var_file.Adr_Line_Selected, var_file.Adr_Tree_Model ); gtk_tree_selection_unselect_all (var_file.Adr_Line_Selected); // DELETE TREEVIEW // gtk_list_store_clear (GTK_LIST_STORE (var_file.Adr_List_Store)); // COORDONNEES POUR UN REAJUSTEMENT VISUEL DE LA PAGE // Adj = gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (var_file.Adr_scroll)); AdjValue = gtk_adjustment_get_value (Adj); // AFFICHAGE DE LA LISTE // // Cpt = 0; Line = 0; List = g_list_first (entetefile); while (List) { if (NULL != ((detail = (DETAIL *)List->data)) && FALSE == detail->BoolRemove) { NameDest = file_get_name_to_treview (detail); gtk_list_store_append (var_file.Adr_List_Store, &iter); gtk_list_store_set (var_file.Adr_List_Store, &iter, COLUMN_FILE_PLAY, var_file.Pixbuf_FileStop, COLUMN_FILE_TRASH, file_get_pixbuf_trash (detail), COLUMN_FILE_TYPE, tags_get_str_type_file_is (detail->type_infosong_file_is), COLUMN_FILE_WAV, file_get_pixbuf (detail, FILE_IS_WAV), COLUMN_FILE_FLAC, file_get_pixbuf (detail, FILE_IS_FLAC), COLUMN_FILE_APE, file_get_pixbuf (detail, FILE_IS_APE), COLUMN_FILE_WAVPACK, file_get_pixbuf (detail, FILE_IS_WAVPACK), COLUMN_FILE_OGG, file_get_pixbuf (detail, FILE_IS_OGG), COLUMN_FILE_M4A, file_get_pixbuf (detail, FILE_IS_M4A), COLUMN_FILE_AAC, file_get_pixbuf (detail, FILE_IS_AAC), COLUMN_FILE_MPC, file_get_pixbuf (detail, FILE_IS_MPC), COLUMN_FILE_MP3, file_get_pixbuf (detail, FILE_IS_MP3), COLUMN_FILE_TIME, file_get_time (detail), COLUMN_FILE_NORMALIZE, file_get_str_level_normalise (detail), COLUMN_FILE_REPLAYGAIN, file_get_pixbuf_replaygain (detail, FALSE), COLUMN_FILE_NAME, NameDest, COLUMN_FILE_EDITABLE, TRUE, COLUMN_FILE_COLOR, &YellowColor, COLUMN_FILE_POINTER_STRUCT, detail, -1); // AFFICHE LES EVENTUELLES LIGNES EN SELECTION // if( NumLineSelected == Line ) { gtk_tree_selection_select_iter (var_file.Adr_Line_Selected, &iter); BoolNumLineSelected = TRUE; } g_free (NameDest); NameDest = NULL; Line ++; } List = g_list_next (List); } // SUPPRESSON TABLEAU DES EVENTUELLES LIGNES EN SELECTION // if( NumLineSelected == -1 ) { if (gtk_tree_model_get_iter_first (var_file.Adr_Tree_Model, &iter)) { gtk_tree_selection_select_iter (var_file.Adr_Line_Selected, &iter); BoolNumLineSelected = TRUE; } } if( NumLineSelected > 0 && NULL != entetefile && BoolNumLineSelected == FALSE ) { gtk_tree_selection_select_iter (var_file.Adr_Line_Selected, &iter); } // REAJUSTEMENT DE LA LISTE // gtk_adjustment_set_value (Adj, AdjValue); gtk_scrolled_window_set_vadjustment (GTK_SCROLLED_WINDOW (var_file.Adr_scroll), Adj); file_make_combobox_select_type (); file_pixbuf_update_glist(); file_set_flag_buttons (); } // // void file_maj_file_load (gchar *path) { switch (Config.NotebookFile) { case NOTEBOOK_FICHIERS_CONVERSION : g_free (Config.PathLoadFileAll); Config.PathLoadFileAll = NULL; Config.PathLoadFileAll = g_strdup (path); break; case NOTEBOOK_FICHIERS_WAV : g_free (Config.PathLoadFileWav); Config.PathLoadFileWav = NULL; Config.PathLoadFileWav = g_strdup (path); break; case NOTEBOOK_FICHIERS_MP3OGG : g_free (Config.PathLoadFileMp3Ogg); Config.PathLoadFileMp3Ogg = NULL; Config.PathLoadFileMp3Ogg = g_strdup (path); break; case NOTEBOOK_FICHIERS_TAGS : g_free (Config.PathLoadFileTags); Config.PathLoadFileTags = NULL; Config.PathLoadFileTags = g_strdup (path); break; } } // // void on_button_import_file_clicked (GtkButton *button, gpointer user_data) { switch (Config.NotebookFile) { case NOTEBOOK_FICHIERS_CONVERSION : fileselect_create (_PATH_LOAD_FILE_ALL_, Config.PathLoadFileAll, file_maj_file_load); break; case NOTEBOOK_FICHIERS_WAV : fileselect_create (_PATH_LOAD_FILE_WAV_, Config.PathLoadFileWav, file_maj_file_load); break; case NOTEBOOK_FICHIERS_MP3OGG : fileselect_create (_PATH_LOAD_FILE_MP3OGG_, Config.PathLoadFileMp3Ogg, file_maj_file_load); break; case NOTEBOOK_FICHIERS_TAGS : fileselect_create (_PATH_LOAD_FILE_TAGS_, Config.PathLoadFileTags, file_maj_file_load); break; } } // SUPPRESSION DES LIGNES DANS LE GLIST entetefile DONT CIBLE N EXISTE PLUS // void file_verify_before_conversion (void) { GList *list = NULL; DETAIL *detail = NULL; gint NbrFileRemove = 0; list = g_list_first (entetefile); while (list) { if (NULL != (detail = (DETAIL *)list->data)) { // // @Shankarius : Suppression d'un fichier qui n'existe plus avant conversion // if (FALSE == libutils_test_file_exist (detail->namefile)) { g_print ("@Shankarius: NOT EXIST: DEL IN LISTE -> %s\n", detail->namefile); detail->BoolRemove = TRUE; NbrFileRemove ++; } } list = g_list_next(list); } if (NbrFileRemove > 0) { file_affiche_glist (); FileWav_affiche_glist (); } } // MARQUER LES LIGNES POUR LA DESTRUCTION // void on_file_button_del_file_clicked (GtkButton *button, gpointer user_data) { GtkTreeIter iter; GtkTreeModel *model = NULL; GList *BeginList = NULL; GList *list = NULL; GtkTreePath *path; DETAIL *detail = NULL; gboolean BoolPrint = FALSE; gboolean valid; if (NOTEBOOK_FICHIERS == Config.NotebookGeneral) { if (NOTEBOOK_FICHIERS_CONVERSION == Config.NotebookFile) { // RECUP. LIGNES EN SELECTION POUR DESTRUCTION model = gtk_tree_view_get_model (GTK_TREE_VIEW(var_file.Adr_TreeView)); if ((BeginList = gtk_tree_selection_get_selected_rows (var_file.Adr_Line_Selected, &model))) { BoolPrint = TRUE; list = g_list_first (BeginList); while (list) { if ((path = list->data)) { gtk_tree_model_get_iter (model, &iter, path); gtk_tree_model_get (var_file.Adr_Tree_Model, &iter, COLUMN_FILE_POINTER_STRUCT, &detail, -1); // MARQUER LA LIGNE DU GLIST A DETRUIRE AVANT LE REAFFICHAGE if (NULL != detail) detail->BoolRemove = TRUE; } list = g_list_next (list); } // gtk_tree_selection_unselect_all (var_file.Adr_Line_Selected); } } else if (NOTEBOOK_FICHIERS_WAV == Config.NotebookFile) { BoolPrint = FileWav_del_file_clicked (); } else if (NOTEBOOK_FICHIERS_MP3OGG == Config.NotebookFile) { BoolPrint = FileMp3Ogg_del_file_clicked (); } else if (NOTEBOOK_FICHIERS_TAGS == Config.NotebookFile) { BoolPrint = FileTags_del_file_clicked (); } // LA SUPPRESSION SE FAIT DEPUIS LA FONCTION D AFFICHAGE if (TRUE == BoolPrint) { file_affiche_glist (); FileWav_affiche_glist (); FileMp3Ogg_affiche_glist (); FileTags_affiche_glist (); // LIST DESTROY with detail->BoolRemove fileanalyze_remove_entetefile_detail(); // MAKE NEW LIST valid = gtk_tree_model_get_iter_first( var_file.Adr_Tree_Model, &iter ); while (valid) { gtk_tree_model_get (var_file.Adr_Tree_Model, &iter, COLUMN_FILE_POINTER_STRUCT, &detail, -1); if( NULL != detail ) entetefile = g_list_append( entetefile, detail ); valid = gtk_tree_model_iter_next( var_file.Adr_Tree_Model, &iter ); } } } } // // void on_combobox_dest_file_realize (GtkWidget *widget, gpointer user_data) { var_file.Adr_combobox_DestFile = GTK_COMBO_BOX (widget); libcombo_alloc (GTK_COMBO_BOX (widget)); gtk_combo_box_append_text (GTK_COMBO_BOX (var_file.Adr_combobox_DestFile), _("Conversion(s) vers la source")); gtk_combo_box_append_text (GTK_COMBO_BOX (var_file.Adr_combobox_DestFile), _("Choix d'une nouvelle destination")); switch (Config.NotebookFile) { case NOTEBOOK_FICHIERS_CONVERSION : gtk_combo_box_append_text (GTK_COMBO_BOX (var_file.Adr_combobox_DestFile), Config.PathDestinationFileAll); gtk_combo_box_set_active (GTK_COMBO_BOX (var_file.Adr_combobox_DestFile), Config.TabIndiceComboDestFile[ NOTEBOOK_FICHIERS_CONVERSION ]); break; case NOTEBOOK_FICHIERS_WAV : gtk_combo_box_append_text (GTK_COMBO_BOX (var_file.Adr_combobox_DestFile), Config.PathDestinationFileWav); gtk_combo_box_set_active (GTK_COMBO_BOX (var_file.Adr_combobox_DestFile), Config.TabIndiceComboDestFile[ NOTEBOOK_FICHIERS_WAV ]); break; case NOTEBOOK_FICHIERS_MP3OGG : gtk_combo_box_append_text (GTK_COMBO_BOX (var_file.Adr_combobox_DestFile), Config.PathDestinationFileMp3Ogg); gtk_combo_box_set_active (GTK_COMBO_BOX (var_file.Adr_combobox_DestFile), Config.TabIndiceComboDestFile[ NOTEBOOK_FICHIERS_MP3OGG ]); break; case NOTEBOOK_FICHIERS_TAGS : gtk_combo_box_append_text (GTK_COMBO_BOX (var_file.Adr_combobox_DestFile), Config.PathDestinationFileTags); gtk_combo_box_set_active (GTK_COMBO_BOX (var_file.Adr_combobox_DestFile), Config.TabIndiceComboDestFile[ NOTEBOOK_FICHIERS_TAGS ]); break; } } // // void file_make_combobox_select_type (void) { GList *list = NULL; DETAIL *detail = NULL; gint bool_flac = 0; gint bool_mp3 = 0; gint bool_ogg = 0; gint bool_wav = 0; gint bool_m4a = 0; gint bool_aac = 0; gint bool_shn = 0; gint bool_wma = 0; gint bool_rm = 0; gint bool_dts = 0; gint bool_aiff = 0; gint bool_mpc = 0; gint bool_ape = 0; gint bool_wavpack = 0; gint bool_val = 0; gchar Str [ 20 ]; if (NULL == GTK_COMBO_BOX (var_file.Adr_combobox_select_type)) return; list = g_list_first (entetefile); while (list) { if (NULL != (detail = (DETAIL *)list->data)) { if (detail->type_infosong_file_is == FILE_IS_FLAC) bool_flac ++; else if (detail->type_infosong_file_is == FILE_IS_WAV) bool_wav ++; else if (detail->type_infosong_file_is == FILE_IS_MP3) bool_mp3 ++; else if (detail->type_infosong_file_is == FILE_IS_OGG) bool_ogg ++; else if (detail->type_infosong_file_is == FILE_IS_M4A) bool_m4a ++; else if (detail->type_infosong_file_is == FILE_IS_VID_M4A) bool_m4a ++; else if (detail->type_infosong_file_is == FILE_IS_AAC) bool_aac ++; else if (detail->type_infosong_file_is == FILE_IS_SHN) bool_shn ++; else if (detail->type_infosong_file_is == FILE_IS_WMA) bool_wma ++; else if (detail->type_infosong_file_is == FILE_IS_RM) bool_rm ++; else if (detail->type_infosong_file_is == FILE_IS_DTS) bool_dts ++; else if (detail->type_infosong_file_is == FILE_IS_AIFF) bool_aiff ++; else if (detail->type_infosong_file_is == FILE_IS_MPC) bool_mpc ++; else if (detail->type_infosong_file_is == FILE_IS_APE) bool_ape ++; else if (detail->type_infosong_file_is == FILE_IS_WAVPACK) bool_wavpack ++; } list = g_list_next (list); } // libcombo_alloc (GTK_COMBO_BOX (var_file.Adr_combobox_select_type)); libcombo_remove_options (GTK_COMBO_BOX (var_file.Adr_combobox_select_type)); gtk_combo_box_append_text (GTK_COMBO_BOX (var_file.Adr_combobox_select_type), _("Select type: --")); if (bool_flac > 0) { g_sprintf (Str, "%03d FLAC", bool_flac); gtk_combo_box_append_text (GTK_COMBO_BOX (var_file.Adr_combobox_select_type), Str); } if (bool_wav > 0) { g_sprintf (Str, "%03d WAV", bool_wav); gtk_combo_box_append_text (GTK_COMBO_BOX (var_file.Adr_combobox_select_type), Str); } if (bool_mp3 > 0) { g_sprintf (Str, "%03d MP3", bool_mp3); gtk_combo_box_append_text (GTK_COMBO_BOX (var_file.Adr_combobox_select_type), Str); } if (bool_ogg > 0) { g_sprintf (Str, "%03d OGG", bool_ogg); gtk_combo_box_append_text (GTK_COMBO_BOX (var_file.Adr_combobox_select_type), Str); } if (bool_m4a > 0) { g_sprintf (Str, "%03d M4A", bool_m4a); gtk_combo_box_append_text (GTK_COMBO_BOX (var_file.Adr_combobox_select_type), Str); } if (bool_aac > 0) { g_sprintf (Str, "%03d AAC", bool_aac); gtk_combo_box_append_text (GTK_COMBO_BOX (var_file.Adr_combobox_select_type), Str); } if (bool_shn > 0) { g_sprintf (Str, "%03d SHN", bool_shn); gtk_combo_box_append_text (GTK_COMBO_BOX (var_file.Adr_combobox_select_type), Str); } if (bool_wma > 0) { g_sprintf (Str, "%03d WMA", bool_wma); gtk_combo_box_append_text (GTK_COMBO_BOX (var_file.Adr_combobox_select_type), Str); } if (bool_rm > 0) { g_sprintf (Str, "%03d RM", bool_rm); gtk_combo_box_append_text (GTK_COMBO_BOX (var_file.Adr_combobox_select_type), Str); } if (bool_dts > 0) { g_sprintf (Str, "%03d DTS", bool_dts); gtk_combo_box_append_text (GTK_COMBO_BOX (var_file.Adr_combobox_select_type), Str); } if (bool_aiff > 0) { g_sprintf (Str, "%03d AIF", bool_aiff); gtk_combo_box_append_text (GTK_COMBO_BOX (var_file.Adr_combobox_select_type), Str); } if (bool_mpc > 0) { g_sprintf (Str, "%03d MPC", bool_mpc); gtk_combo_box_append_text (GTK_COMBO_BOX (var_file.Adr_combobox_select_type), Str); } if (bool_ape > 0) { g_sprintf (Str, "%03d APE", bool_ape); gtk_combo_box_append_text (GTK_COMBO_BOX (var_file.Adr_combobox_select_type), Str); } if (bool_wavpack > 0) { g_sprintf (Str, "%03d WAVPACK", bool_wavpack); gtk_combo_box_append_text (GTK_COMBO_BOX (var_file.Adr_combobox_select_type), Str); } gtk_combo_box_set_active (GTK_COMBO_BOX (var_file.Adr_combobox_select_type), 0); bool_val = bool_flac + bool_wav + bool_mp3 + bool_ogg + bool_m4a + bool_aac + bool_shn + bool_wma + bool_rm + bool_dts + bool_aiff + bool_mpc + bool_ape + bool_wavpack; gtk_widget_set_sensitive (GTK_WIDGET (var_file.Adr_combobox_select_type), (bool_val > 0) ? TRUE : FALSE); } // // void on_combobox_select_type_realize (GtkWidget *widget, gpointer user_data) { // libcombo_alloc (GTK_COMBO_BOX (widget)); // gtk_combo_box_append_text (GTK_COMBO_BOX (widget), _("Select type: --")); // gtk_combo_box_set_active (GTK_COMBO_BOX (widget), 0); var_file.Adr_combobox_select_type = GTK_COMBO_BOX (widget); file_make_combobox_select_type (); } // // void on_combobox_select_type_changed (GtkComboBox *combobox, gpointer user_data) { gchar *ptr = NULL; gint nmr = -1; TYPE_FILE_IS type_file_is = FILE_IS_NONE; gboolean valid; GtkTreeIter iter; DETAIL *detail = NULL; if (var_file.Adr_combobox_select_type != NULL) { if ((nmr = gtk_combo_box_get_active (GTK_COMBO_BOX (var_file.Adr_combobox_select_type)) > 0)) { ptr = gtk_combo_box_get_active_text (GTK_COMBO_BOX (var_file.Adr_combobox_select_type)); gtk_combo_box_set_active (GTK_COMBO_BOX (var_file.Adr_combobox_select_type), 0); if (NULL != strstr (ptr, "FLAC")) type_file_is = FILE_IS_FLAC; if (NULL != strstr (ptr, "WAV")) type_file_is = FILE_IS_WAV; if (NULL != strstr (ptr, "MP3")) type_file_is = FILE_IS_MP3; if (NULL != strstr (ptr, "OGG")) type_file_is = FILE_IS_OGG; if (NULL != strstr (ptr, "M4A")) type_file_is = FILE_IS_M4A; // if (NULL != strstr (ptr, "M4A")) type_file_is = FILE_IS_VID_M4A; if (NULL != strstr (ptr, "AAC")) type_file_is = FILE_IS_AAC; if (NULL != strstr (ptr, "SHN")) type_file_is = FILE_IS_SHN; if (NULL != strstr (ptr, "WMA")) type_file_is = FILE_IS_WMA; if (NULL != strstr (ptr, "RM")) type_file_is = FILE_IS_RM; if (NULL != strstr (ptr, "DTS")) type_file_is = FILE_IS_DTS; if (NULL != strstr (ptr, "AIF")) type_file_is = FILE_IS_AIFF; if (NULL != strstr (ptr, "MPC")) type_file_is = FILE_IS_MPC; if (NULL != strstr (ptr, "APE")) type_file_is = FILE_IS_APE; if (NULL != strstr (ptr, "WAVPACK")) type_file_is = FILE_IS_WAVPACK; if (type_file_is == FILE_IS_NONE) return; gtk_tree_selection_unselect_all (var_file.Adr_Line_Selected); valid = gtk_tree_model_get_iter_first (var_file.Adr_Tree_Model, &iter); while (valid) { gtk_tree_model_get (var_file.Adr_Tree_Model, &iter, COLUMN_FILE_POINTER_STRUCT, &detail, -1); if (detail->type_infosong_file_is == type_file_is) { gtk_tree_selection_select_iter (var_file.Adr_Line_Selected, &iter); } else if( FILE_IS_VID_M4A == detail->type_infosong_file_is && FILE_IS_M4A == type_file_is ) { gtk_tree_selection_select_iter (var_file.Adr_Line_Selected, &iter); } valid = gtk_tree_model_iter_next (var_file.Adr_Tree_Model, &iter); } } } } // // void on_combobox_normalise_file_realize (GtkWidget *widget, gpointer user_data) { libcombo_alloc (GTK_COMBO_BOX (widget)); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), _("Peak/album")); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), _("Peak")); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), _("Mix (scan)Rms/album")); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), _("Fix (scan)Rms")); gtk_combo_box_set_active (GTK_COMBO_BOX (widget), 0); var_file.AdrComboboxNormalise = GTK_COMBO_BOX (widget); } // // void on_combobox_normalise_file_changed (GtkComboBox *combobox, gpointer user_data) { GList *list = NULL; DETAIL *detail = NULL; gboolean BoolScanACtion = FALSE; gint FicLevelMix; if (var_file.AdrComboboxNormalise == NULL) return; FicLevelMix = (gint)gtk_spin_button_get_value (var_file.AdrSpinbuttonNormalise); list = g_list_first (entetefile); while (list) { if (NULL != (detail = (DETAIL *)list->data)) { if (detail->type_infosong_file_is == FILE_IS_MP3 || detail->type_infosong_file_is == FILE_IS_OGG || detail->type_infosong_file_is == FILE_IS_WAV) { if (detail->Etat_Normalise > NORM_READY_FOR_SELECT) { switch (gtk_combo_box_get_active (GTK_COMBO_BOX (var_file.AdrComboboxNormalise))) { case 0 : detail->Etat_Normalise = NORM_PEAK_ALBUM; gtk_widget_set_sensitive (GTK_WIDGET (GTK_SPIN_BUTTON (var_file.AdrSpinbuttonNormalise)), FALSE); break; case 1 : detail->Etat_Normalise = NORM_PEAK; gtk_widget_set_sensitive (GTK_WIDGET (GTK_SPIN_BUTTON (var_file.AdrSpinbuttonNormalise)), FALSE); break; case 2 : detail->LevelMix = FicLevelMix; detail->Etat_Normalise = NORM_RMS_MIX_ALBUM; if (detail->Etat_Scan == ETAT_SCAN_NONE) { detail->Etat_Scan = ETAT_SCAN_DEMANDE; BoolScanACtion = TRUE; } gtk_widget_set_sensitive (GTK_WIDGET (GTK_SPIN_BUTTON (var_file.AdrSpinbuttonNormalise)), TRUE); break; case 3 : if (detail->type_infosong_file_is == FILE_IS_WAV) { INFO_WAV *info = (INFO_WAV *)detail->info; info->LevelDbfs.NewLevel = FicLevelMix; } else if (detail->type_infosong_file_is == FILE_IS_MP3) { INFO_MP3 *info = (INFO_MP3 *)detail->info; info->LevelDbfs.NewLevel = FicLevelMix; } else if (detail->type_infosong_file_is == FILE_IS_OGG) { INFO_OGG *info = (INFO_OGG *)detail->info; info->LevelDbfs.NewLevel = FicLevelMix; } detail->Etat_Normalise = NORM_RMS_FIX; if (detail->Etat_Scan == ETAT_SCAN_NONE) { detail->Etat_Scan = ETAT_SCAN_DEMANDE; BoolScanACtion = TRUE; } gtk_widget_set_sensitive (GTK_WIDGET (GTK_SPIN_BUTTON (var_file.AdrSpinbuttonNormalise)), TRUE); break; } } } } list = g_list_next (list); } if (BoolScanACtion == TRUE) FileScanDB_action (TRUE); file_pixbuf_update_glist (); } // // void on_spinbutton_choix_niveau_file_realize (GtkWidget *widget, gpointer user_data) { var_file.AdrSpinbuttonNormalise = GTK_SPIN_BUTTON (widget); gtk_spin_button_set_value (var_file.AdrSpinbuttonNormalise, -10); } // // void on_spinbutton_choix_niveau_file_value_changed (GtkSpinButton *spinbutton, gpointer user_data) { gint FicLevelMix = (gint)gtk_spin_button_get_value (var_file.AdrSpinbuttonNormalise); GList *list = NULL; DETAIL *detail = NULL; if (var_file.AdrSpinbuttonNormalise == NULL) return; list = g_list_first (entetefile); while (list) { if (NULL != (detail = (DETAIL *)list->data)) { if (detail->type_infosong_file_is == FILE_IS_MP3 || detail->type_infosong_file_is == FILE_IS_OGG || detail->type_infosong_file_is == FILE_IS_WAV) { switch (gtk_combo_box_get_active (GTK_COMBO_BOX (var_file.AdrComboboxNormalise))) { case 0 : case 1 : break; case 2 : detail->LevelMix = FicLevelMix; break; case 3 : if (detail->type_infosong_file_is == FILE_IS_WAV) { INFO_WAV *info = (INFO_WAV *)detail->info; info->LevelDbfs.NewLevel = FicLevelMix; } else if (detail->type_infosong_file_is == FILE_IS_MP3) { INFO_MP3 *info = (INFO_MP3 *)detail->info; info->LevelDbfs.NewLevel = FicLevelMix; } else if (detail->type_infosong_file_is == FILE_IS_OGG) { INFO_OGG *info = (INFO_OGG *)detail->info; info->LevelDbfs.NewLevel = FicLevelMix; } break; } } } list = g_list_next (list); } file_pixbuf_update_glist (); } // // void file_maj_destination (gchar *path) { if (TRUE == libutils_test_write (path)) { switch (Config.NotebookFile) { case NOTEBOOK_FICHIERS_CONVERSION : g_free (Config.PathDestinationFileAll); Config.PathDestinationFileAll = NULL; Config.PathDestinationFileAll = g_strdup (path); gtk_combo_box_remove_text (GTK_COMBO_BOX (var_file.Adr_combobox_DestFile), 2); gtk_combo_box_append_text (GTK_COMBO_BOX (var_file.Adr_combobox_DestFile), Config.PathDestinationFileAll); gtk_combo_box_set_active (GTK_COMBO_BOX (var_file.Adr_combobox_DestFile), Config.TabIndiceComboDestFile[ NOTEBOOK_FICHIERS_CONVERSION ]); break; case NOTEBOOK_FICHIERS_WAV : g_free (Config.PathDestinationFileWav); Config.PathDestinationFileWav = NULL; Config.PathDestinationFileWav = g_strdup (path); gtk_combo_box_remove_text (GTK_COMBO_BOX (var_file.Adr_combobox_DestFile), 2); gtk_combo_box_append_text (GTK_COMBO_BOX (var_file.Adr_combobox_DestFile), Config.PathDestinationFileWav); gtk_combo_box_set_active (GTK_COMBO_BOX (var_file.Adr_combobox_DestFile), Config.TabIndiceComboDestFile[ NOTEBOOK_FICHIERS_WAV ]); break; case NOTEBOOK_FICHIERS_MP3OGG : g_free (Config.PathDestinationFileMp3Ogg); Config.PathDestinationFileMp3Ogg = NULL; Config.PathDestinationFileMp3Ogg = g_strdup (path); gtk_combo_box_remove_text (GTK_COMBO_BOX (var_file.Adr_combobox_DestFile), 2); gtk_combo_box_append_text (GTK_COMBO_BOX (var_file.Adr_combobox_DestFile), Config.PathDestinationFileMp3Ogg); gtk_combo_box_set_active (GTK_COMBO_BOX (var_file.Adr_combobox_DestFile), Config.TabIndiceComboDestFile[ NOTEBOOK_FICHIERS_MP3OGG ]); break; case NOTEBOOK_FICHIERS_TAGS : g_free (Config.PathDestinationFileTags); Config.PathDestinationFileTags = NULL; Config.PathDestinationFileTags = g_strdup (path); gtk_combo_box_remove_text (GTK_COMBO_BOX (var_file.Adr_combobox_DestFile), 2); gtk_combo_box_append_text (GTK_COMBO_BOX (var_file.Adr_combobox_DestFile), Config.PathDestinationFileTags); gtk_combo_box_set_active (GTK_COMBO_BOX (var_file.Adr_combobox_DestFile), Config.TabIndiceComboDestFile[ NOTEBOOK_FICHIERS_TAGS ]); break; } file_pixbuf_update_glist (); } } // // void on_combobox_dest_file_changed (GtkComboBox *combobox, gpointer user_data) { // file_combobox_dest_file_changed (); if (NULL != var_file.Adr_combobox_DestFile) { switch (gtk_combo_box_get_active (var_file.Adr_combobox_DestFile)) { // CONVERSIONS VERS LA SOURCE case 0 : Config.TabIndiceComboDestFile[ Config.NotebookFile ] = 0; file_pixbuf_update_glist (); break; // CHOIX D UNE NOUVELLE DESTINATION case 1 : Config.TabIndiceComboDestFile[ Config.NotebookFile ] = 2; switch (Config.NotebookFile) { case NOTEBOOK_FICHIERS_CONVERSION : fileselect_create (_PATH_CHOICE_DESTINATION_, Config.PathDestinationFileAll, file_maj_destination); break; case NOTEBOOK_FICHIERS_WAV : fileselect_create (_PATH_CHOICE_DESTINATION_, Config.PathDestinationFileWav, file_maj_destination); break; case NOTEBOOK_FICHIERS_MP3OGG : fileselect_create (_PATH_CHOICE_DESTINATION_, Config.PathDestinationFileMp3Ogg, file_maj_destination); break; case NOTEBOOK_FICHIERS_TAGS : fileselect_create (_PATH_CHOICE_DESTINATION_, Config.PathDestinationFileTags, file_maj_destination); break; } break; // APPLIQUER LA DESTINATION case 2 : Config.TabIndiceComboDestFile[ Config.NotebookFile ] = 2; file_pixbuf_update_glist (); break; } } } // INIT TREVIEW // static void file_cell_edited (GtkCellRendererText *cell, const gchar *path_string, const gchar *new_text, gpointer data) { GtkTreeModel *model = (GtkTreeModel *)data; GtkTreePath *path = gtk_tree_path_new_from_string (path_string); GtkTreeIter iter; gint column = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (cell), "column")); gtk_tree_model_get_iter (model, &iter, path); if (column == COLUMN_FILE_NAME) { gchar *old_text; DETAIL *detail = NULL; gchar *StrVerif = NULL; gchar *ptr = NULL; StrVerif = g_strdup (new_text ); if (NULL != strchr (StrVerif, '/')) { while (NULL != (ptr = strchr (StrVerif, '/'))) { strcpy (ptr, ptr+1); } } gtk_tree_model_get (model, &iter, COLUMN_FILE_NAME, &old_text, -1); g_free (old_text); old_text = NULL; gtk_tree_model_get (var_file.Adr_Tree_Model, &iter, COLUMN_FILE_POINTER_STRUCT, &detail, -1); if(NULL != detail) { // STOCKE LE NOM DE FICHIER ORIGINAL if (NULL != detail->NameDest) { g_free (detail->NameDest); detail->NameDest = NULL; } // LE NOM D'ORIGINE if( 0 == strlen( StrVerif )) { // POUR L'AFFICHAGE g_free( StrVerif ); StrVerif = NULL; StrVerif = libutils_get_name_without_ext_with_amp( detail->namefile ); // POUR LA DESTINATION detail->NameDest = libutils_get_name_without_ext( detail->namefile ); } // LE NOUVEAU NOM else { // POUR LA DESTINATION detail->NameDest = g_strdup( StrVerif ); // POUR L'AFFICHAGE g_free( StrVerif ); StrVerif = NULL; StrVerif = file_get_name_to_treview ( detail ); } } // actualise le nom gtk_list_store_set (GTK_LIST_STORE (model), &iter, COLUMN_FILE_NAME, StrVerif, -1); // actualise FLAC WAV MP3 OGG, ... gtk_list_store_set (GTK_LIST_STORE (model), &iter, COLUMN_FILE_FLAC, file_get_pixbuf (detail, FILE_IS_FLAC), -1); gtk_list_store_set (GTK_LIST_STORE (model), &iter, COLUMN_FILE_WAV, file_get_pixbuf (detail, FILE_IS_WAV), -1); gtk_list_store_set (GTK_LIST_STORE (model), &iter, COLUMN_FILE_MP3, file_get_pixbuf (detail, FILE_IS_MP3), -1); gtk_list_store_set (GTK_LIST_STORE (model), &iter, COLUMN_FILE_OGG, file_get_pixbuf (detail, FILE_IS_OGG), -1); gtk_list_store_set (GTK_LIST_STORE (model), &iter, COLUMN_FILE_M4A, file_get_pixbuf (detail, FILE_IS_M4A), -1); gtk_list_store_set (GTK_LIST_STORE (model), &iter, COLUMN_FILE_MPC, file_get_pixbuf (detail, FILE_IS_MPC), -1); gtk_list_store_set (GTK_LIST_STORE (model), &iter, COLUMN_FILE_APE, file_get_pixbuf (detail, FILE_IS_APE), -1); gtk_list_store_set (GTK_LIST_STORE (model), &iter, COLUMN_FILE_WAVPACK, file_get_pixbuf (detail, FILE_IS_WAVPACK), -1); g_free (StrVerif); StrVerif = NULL; } gtk_tree_path_free (path); file_pixbuf_update_glist(); } // SELECTION DES COLONNES TypeFileIs DONT LES LIGNES SONT EN SELECTION // void file_select_from_click_column (TYPE_FILE_IS TypeFileIs) { GtkTreeIter iter; GtkTreeModel *model = NULL; GList *BeginList = NULL; GList *list = NULL; GtkTreePath *path; DETAIL *detail = NULL; gboolean valid; model = gtk_tree_view_get_model (GTK_TREE_VIEW(var_file.Adr_TreeView)); // RECUP. DE LA LIGNE EN SELECTION ET VALIDATION if (NULL != (BeginList = gtk_tree_selection_get_selected_rows (var_file.Adr_Line_Selected, &model))) { list = g_list_first (BeginList); while (list) { if ((path = list->data)) { gtk_tree_model_get_iter (model, &iter, path); gtk_tree_model_get (var_file.Adr_Tree_Model, &iter, COLUMN_FILE_POINTER_STRUCT, &detail, -1); if (TypeFileIs == FILE_IS_WAV) { detail->EtatSelection_Wav = file_get_next_flag (detail, FILE_IS_WAV); gtk_list_store_set (var_file.Adr_List_Store, &iter, COLUMN_FILE_WAV, file_get_pixbuf (detail, FILE_IS_WAV), -1); } else if (TypeFileIs == FILE_IS_FLAC) { detail->EtatSelection_Flac = file_get_next_flag (detail, FILE_IS_FLAC); gtk_list_store_set (var_file.Adr_List_Store, &iter, COLUMN_FILE_FLAC, file_get_pixbuf (detail, FILE_IS_FLAC), -1); } else if (TypeFileIs == FILE_IS_APE) { detail->EtatSelection_Ape = file_get_next_flag (detail, FILE_IS_APE); gtk_list_store_set (var_file.Adr_List_Store, &iter, COLUMN_FILE_APE, file_get_pixbuf (detail, FILE_IS_APE), -1); } else if (TypeFileIs == FILE_IS_WAVPACK) { detail->EtatSelection_WavPack = file_get_next_flag (detail, FILE_IS_WAVPACK); gtk_list_store_set (var_file.Adr_List_Store, &iter, COLUMN_FILE_WAVPACK, file_get_pixbuf (detail, FILE_IS_WAVPACK), -1); } else if (TypeFileIs == FILE_IS_OGG) { detail->EtatSelection_Ogg = file_get_next_flag (detail, FILE_IS_OGG); gtk_list_store_set (var_file.Adr_List_Store, &iter, COLUMN_FILE_OGG, file_get_pixbuf (detail, FILE_IS_OGG), -1); } else if (TypeFileIs == FILE_IS_M4A) { detail->EtatSelection_M4a = file_get_next_flag (detail, FILE_IS_M4A); gtk_list_store_set (var_file.Adr_List_Store, &iter, COLUMN_FILE_M4A, file_get_pixbuf (detail, FILE_IS_M4A), -1); } else if (TypeFileIs == FILE_IS_AAC) { detail->EtatSelection_Aac = file_get_next_flag (detail, FILE_IS_AAC); gtk_list_store_set (var_file.Adr_List_Store, &iter, COLUMN_FILE_AAC, file_get_pixbuf (detail, FILE_IS_AAC), -1); } else if (TypeFileIs == FILE_IS_MPC) { detail->EtatSelection_Mpc = file_get_next_flag (detail, FILE_IS_MPC); gtk_list_store_set (var_file.Adr_List_Store, &iter, COLUMN_FILE_MPC, file_get_pixbuf (detail, FILE_IS_MPC), -1); } else if (TypeFileIs == FILE_IS_MP3) { detail->EtatSelection_Mp3 = file_get_next_flag (detail, FILE_IS_MP3); gtk_list_store_set (var_file.Adr_List_Store, &iter, COLUMN_FILE_MP3, file_get_pixbuf (detail, FILE_IS_MP3), -1); } } list = g_list_next (list); } } // SINON SUPPRESSION DES LIGNES EN SELECTION else { valid = gtk_tree_model_get_iter_first (var_file.Adr_Tree_Model, &iter); while (valid) { gtk_tree_model_get (var_file.Adr_Tree_Model, &iter, COLUMN_FILE_POINTER_STRUCT, &detail, -1); if (TypeFileIs == FILE_IS_WAV) { detail->EtatSelection_Wav = ETAT_ATTENTE; gtk_list_store_set (var_file.Adr_List_Store, &iter, COLUMN_FILE_WAV, file_get_pixbuf (detail, FILE_IS_WAV), -1); } else if (TypeFileIs == FILE_IS_FLAC) { detail->EtatSelection_Flac = ETAT_ATTENTE; gtk_list_store_set (var_file.Adr_List_Store, &iter, COLUMN_FILE_FLAC, file_get_pixbuf (detail, FILE_IS_FLAC), -1); } else if (TypeFileIs == FILE_IS_APE) { detail->EtatSelection_Ape = ETAT_ATTENTE; gtk_list_store_set (var_file.Adr_List_Store, &iter, COLUMN_FILE_APE, file_get_pixbuf (detail, FILE_IS_APE), -1); } else if (TypeFileIs == FILE_IS_WAVPACK) { detail->EtatSelection_WavPack = ETAT_ATTENTE; gtk_list_store_set (var_file.Adr_List_Store, &iter, COLUMN_FILE_WAVPACK, file_get_pixbuf (detail, FILE_IS_WAVPACK), -1); } else if (TypeFileIs == FILE_IS_OGG) { detail->EtatSelection_Ogg = ETAT_ATTENTE; gtk_list_store_set (var_file.Adr_List_Store, &iter, COLUMN_FILE_OGG, file_get_pixbuf (detail, FILE_IS_OGG), -1); } else if (TypeFileIs == FILE_IS_M4A) { detail->EtatSelection_M4a = ETAT_ATTENTE; gtk_list_store_set (var_file.Adr_List_Store, &iter, COLUMN_FILE_M4A, file_get_pixbuf (detail, FILE_IS_M4A), -1); } else if (TypeFileIs == FILE_IS_AAC) { detail->EtatSelection_Aac = ETAT_ATTENTE; gtk_list_store_set (var_file.Adr_List_Store, &iter, COLUMN_FILE_AAC, file_get_pixbuf (detail, FILE_IS_AAC), -1); } else if (TypeFileIs == FILE_IS_MPC) { detail->EtatSelection_Mpc = ETAT_ATTENTE; gtk_list_store_set (var_file.Adr_List_Store, &iter, COLUMN_FILE_MPC, file_get_pixbuf (detail, FILE_IS_MPC), -1); } else if (TypeFileIs == FILE_IS_MP3) { detail->EtatSelection_Mp3 = ETAT_ATTENTE; gtk_list_store_set (var_file.Adr_List_Store, &iter, COLUMN_FILE_MP3, file_get_pixbuf (detail, FILE_IS_MP3), -1); } valid = gtk_tree_model_iter_next (var_file.Adr_Tree_Model, &iter); } } file_set_flag_buttons (); } // // void file_pixbuf_update_glist (void) { GtkTreeIter iter; gboolean valid; DETAIL *detail = NULL; GdkPixbuf *pixbuf = NULL; if (var_file.Adr_Tree_Model == NULL) return; valid = gtk_tree_model_get_iter_first (var_file.Adr_Tree_Model, &iter); while (valid) { gtk_tree_model_get (var_file.Adr_Tree_Model, &iter, COLUMN_FILE_POINTER_STRUCT, &detail, -1); if (NULL != detail) { // pixbuf = file_get_pixbuf_play (detail, detail->EtatPlay); // gtk_list_store_set (var_file.Adr_List_Store, &iter, COLUMN_FILE_PLAY, pixbuf, -1); pixbuf = file_get_pixbuf_trash (detail); gtk_list_store_set (var_file.Adr_List_Store, &iter, COLUMN_FILE_TRASH, pixbuf, -1); pixbuf = file_get_pixbuf (detail, FILE_IS_FLAC); gtk_list_store_set (var_file.Adr_List_Store, &iter, COLUMN_FILE_FLAC, pixbuf, -1); pixbuf = file_get_pixbuf (detail, FILE_IS_WAV); gtk_list_store_set (var_file.Adr_List_Store, &iter, COLUMN_FILE_WAV, pixbuf, -1); pixbuf = file_get_pixbuf (detail, FILE_IS_MP3); gtk_list_store_set (var_file.Adr_List_Store, &iter, COLUMN_FILE_MP3, pixbuf, -1); pixbuf = file_get_pixbuf (detail, FILE_IS_OGG); gtk_list_store_set (var_file.Adr_List_Store, &iter, COLUMN_FILE_OGG, pixbuf, -1); pixbuf = file_get_pixbuf (detail, FILE_IS_M4A); gtk_list_store_set (var_file.Adr_List_Store, &iter, COLUMN_FILE_M4A, pixbuf, -1); pixbuf = file_get_pixbuf (detail, FILE_IS_AAC); gtk_list_store_set (var_file.Adr_List_Store, &iter, COLUMN_FILE_AAC, pixbuf, -1); pixbuf = file_get_pixbuf (detail, FILE_IS_MPC); gtk_list_store_set (var_file.Adr_List_Store, &iter, COLUMN_FILE_MPC, pixbuf, -1); pixbuf = file_get_pixbuf (detail, FILE_IS_APE); gtk_list_store_set (var_file.Adr_List_Store, &iter, COLUMN_FILE_APE, pixbuf, -1); pixbuf = file_get_pixbuf (detail, FILE_IS_WAVPACK); gtk_list_store_set (var_file.Adr_List_Store, &iter, COLUMN_FILE_WAVPACK, pixbuf, -1); gtk_list_store_set (var_file.Adr_List_Store, &iter, COLUMN_FILE_NORMALIZE, file_get_str_level_normalise (detail), -1); pixbuf = file_get_pixbuf_replaygain (detail, FALSE); gtk_list_store_set ( var_file.Adr_List_Store, &iter, COLUMN_FILE_REPLAYGAIN, pixbuf, -1); } valid = gtk_tree_model_iter_next (var_file.Adr_Tree_Model, &iter); } file_set_flag_buttons (); } // // void file_set_etat_column_normalise (void) { GList *list = NULL; DETAIL *detail = NULL; gboolean BoolScanACtion = FALSE; GtkTreeIter iter; GtkTreeModel *model = NULL; GList *BeginList = NULL; GtkTreePath *path; gboolean valid; gint NbrNormalise = 0; model = gtk_tree_view_get_model (GTK_TREE_VIEW(var_file.Adr_TreeView)); // RECUP. DES LIGNES EN SELECTION POUR LA SELECTION // if (NULL != (BeginList = gtk_tree_selection_get_selected_rows (var_file.Adr_Line_Selected, &model))) { list = g_list_first (BeginList); while (list) { if ((path = list->data)) { gtk_tree_model_get_iter (model, &iter, path); gtk_tree_model_get (var_file.Adr_Tree_Model, &iter, COLUMN_FILE_POINTER_STRUCT, &detail, -1); if (NULL != detail) { if (detail->type_infosong_file_is == FILE_IS_MP3 || detail->type_infosong_file_is == FILE_IS_OGG || detail->type_infosong_file_is == FILE_IS_WAV) { if (NbrNormalise ++ >= MAX_ARG_CONV) break; if (detail->Etat_Normalise > NORM_READY_FOR_SELECT) { detail->Etat_Normalise = NORM_READY_FOR_SELECT; detail->Etat_Scan = ETAT_SCAN_NONE; } else { switch (gtk_combo_box_get_active (GTK_COMBO_BOX (var_file.AdrComboboxNormalise))) { case 0 : detail->Etat_Normalise = NORM_PEAK_ALBUM; break; case 1 : detail->Etat_Normalise = NORM_PEAK; break; case 2 : detail->Etat_Normalise = NORM_RMS_MIX_ALBUM; if (detail->Etat_Scan == ETAT_SCAN_NONE) { detail->Etat_Scan = ETAT_SCAN_DEMANDE; BoolScanACtion = TRUE; } gtk_widget_set_sensitive (GTK_WIDGET (GTK_SPIN_BUTTON (var_file.AdrSpinbuttonNormalise)), TRUE); break; case 3 : detail->Etat_Normalise = NORM_RMS_FIX; if (detail->Etat_Scan == ETAT_SCAN_NONE) { detail->Etat_Scan = ETAT_SCAN_DEMANDE; BoolScanACtion = TRUE; } gtk_widget_set_sensitive (GTK_WIDGET (GTK_SPIN_BUTTON (var_file.AdrSpinbuttonNormalise)), TRUE); break; } } } } } list = g_list_next (list); } } // SINON SUPPRESSION DES SELECTIONS // else { valid = gtk_tree_model_get_iter_first (var_file.Adr_Tree_Model, &iter); while (valid) { gtk_tree_model_get (var_file.Adr_Tree_Model, &iter, COLUMN_FILE_POINTER_STRUCT, &detail, -1); detail->Etat_Normalise = NORM_READY_FOR_SELECT; detail->Etat_Scan = ETAT_SCAN_NONE; valid = gtk_tree_model_iter_next (var_file.Adr_Tree_Model, &iter); } } if (BoolScanACtion == TRUE) FileScanDB_action (TRUE); file_pixbuf_update_glist (); } // // void file_set_etat_column_replaygain (void) { GList *list = NULL; DETAIL *detail = NULL; GtkTreeIter iter; GtkTreeModel *model = NULL; GList *BeginList = NULL; GtkTreePath *path; gboolean valid; model = gtk_tree_view_get_model (GTK_TREE_VIEW(var_file.Adr_TreeView)); // RECUP. DES LIGNES EN SELECTION POUR LA SELECTION // if (NULL != (BeginList = gtk_tree_selection_get_selected_rows (var_file.Adr_Line_Selected, &model))) { list = g_list_first (BeginList); while (list) { if ((path = list->data)) { gtk_tree_model_get_iter (model, &iter, path); gtk_tree_model_get (var_file.Adr_Tree_Model, &iter, COLUMN_FILE_POINTER_STRUCT, &detail, -1); if (NULL != detail) { file_get_pixbuf_replaygain (detail, TRUE); } } list = g_list_next (list); } } // SINON SUPPRESSION DES SELECTIONS // else { valid = gtk_tree_model_get_iter_first (var_file.Adr_Tree_Model, &iter); while (valid) { gtk_tree_model_get (var_file.Adr_Tree_Model, &iter, COLUMN_FILE_POINTER_STRUCT, &detail, -1); detail->Etat_ReplayGain = RPG_ATTENTE; valid = gtk_tree_model_iter_next (var_file.Adr_Tree_Model, &iter); } } file_pixbuf_update_glist (); } // // void file_set_etat_column_trash (void) { GList *list = NULL; DETAIL *detail = NULL; GtkTreeIter iter; GtkTreeModel *model = NULL; GList *BeginList = NULL; GtkTreePath *path; gboolean valid; model = gtk_tree_view_get_model (GTK_TREE_VIEW(var_file.Adr_TreeView)); // RECUP. DES LIGNES EN SELECTION POUR LA SELECTION // if (NULL != (BeginList = gtk_tree_selection_get_selected_rows (var_file.Adr_Line_Selected, &model))) { list = g_list_first (BeginList); while (list) { if ((path = list->data)) { gtk_tree_model_get_iter (model, &iter, path); gtk_tree_model_get (var_file.Adr_Tree_Model, &iter, COLUMN_FILE_POINTER_STRUCT, &detail, -1); if (NULL != detail) { detail->EtatTrash = FILE_TRASH_OK; } } list = g_list_next (list); } } // SINON SUPPRESSION DES SELECTIONS // else { valid = gtk_tree_model_get_iter_first (var_file.Adr_Tree_Model, &iter); while (valid) { gtk_tree_model_get (var_file.Adr_Tree_Model, &iter, COLUMN_FILE_POINTER_STRUCT, &detail, -1); detail->EtatTrash = FILE_TRASH_NONE; valid = gtk_tree_model_iter_next (var_file.Adr_Tree_Model, &iter); } } file_pixbuf_update_glist (); } // // gboolean file_ok_to_normalise (void) { GList *list = NULL; DETAIL *detail = NULL; gint Nbr = 0; list = g_list_first (entetefile); while (list) { if (NULL != (detail = (DETAIL *)list->data)) { if (detail->type_infosong_file_is == FILE_IS_MP3 || detail->type_infosong_file_is == FILE_IS_OGG || detail->type_infosong_file_is == FILE_IS_WAV) { if (detail->Etat_Normalise > NORM_READY_FOR_SELECT) Nbr ++; } } list = g_list_next (list); } return (Nbr < MAX_ARG_CONV ? TRUE : FALSE); } // // void file_selected_column (GtkTreeViewColumn *treeviewcolumn, gpointer user_data) { gint NumColonne = GPOINTER_TO_INT(user_data); TYPE_FILE_IS TypeFileIs = FILE_IS_NONE; switch (NumColonne) { case -1 : file_set_etat_column_trash (); return; case 0 : TypeFileIs = FILE_IS_WAV; break; case 1 : TypeFileIs = FILE_IS_FLAC; break; case 2 : TypeFileIs = FILE_IS_APE; break; case 3 : TypeFileIs = FILE_IS_WAVPACK; break; case 4 : TypeFileIs = FILE_IS_OGG; break; case 5 : TypeFileIs = FILE_IS_M4A; break; case 6 : TypeFileIs = FILE_IS_AAC; break; case 7 : TypeFileIs = FILE_IS_MPC; break; case 8 : TypeFileIs = FILE_IS_MP3; break; case 9 : file_set_etat_column_normalise (); return; case 10 : file_set_etat_column_replaygain (); return; } file_select_from_click_column (TypeFileIs); } // // gboolean file_event_click_mouse (GtkWidget *treeview, GdkEventButton *event, gpointer data) { gboolean BoolFlac = FALSE; gboolean BoolWav = FALSE; gboolean BoolMp3 = FALSE; gboolean BoolOgg = FALSE; gboolean BoolM4a = FALSE; gboolean BoolAac = FALSE; gboolean BoolShn = FALSE; gboolean BoolWma = FALSE; gboolean BoolMpc = FALSE; gboolean BoolApe = FALSE; gboolean BoolWavPack = FALSE; gboolean BoolSelectColPlay = FALSE; gboolean BoolSelectColTrash = FALSE; gboolean BoolSelectColType = FALSE; gboolean BoolSelectColFlac = FALSE; gboolean BoolSelectColWav = FALSE; gboolean BoolSelectColMp3 = FALSE; gboolean BoolSelectColOgg = FALSE; gboolean BoolSelectColM4a = FALSE; gboolean BoolSelectColAac = FALSE; gboolean BoolSelectColMpc = FALSE; gboolean BoolSelectColApe = FALSE; gboolean BoolSelectColWavP = FALSE; gboolean BoolSelectColTime = FALSE; gboolean BoolSelectColNorm = FALSE; gboolean BoolSelectColReplayGain = FALSE; gboolean BoolSelectColNom = FALSE; GtkTreePath *path; GtkTreeViewColumn *column; GtkTreeViewColumn *ColumnDum; gint i; GtkTreeIter iter; GtkTreeModel *model = (GtkTreeModel *)data; // GdkPixbuf *Pixbuf = NULL; DETAIL *detail = NULL; gint Pos_X = 0, Pos_Y = 0; gboolean bool_key_Control = (keys.keyval == GDK_Control_L || keys.keyval == GDK_Control_R); gboolean bool_key_Shift = (keys.keyval == GDK_Shift_L || keys.keyval == GDK_Shift_R); gboolean bool_key_Release = (bool_key_Control == FALSE && bool_key_Shift == FALSE); gboolean bool_click_gauche = (event->button == 1); gboolean bool_click_droit = (event->button == 3); /* Single clicks only */ if (event->type != GDK_BUTTON_PRESS) return (FALSE); /* if (event->type == GDK_2BUTTON_PRESS) { g_print ("event->type == GDK_2BUTTON_PRESS\n"); } g_print ("event->button = %d\n", event->button); event->button = 1 = GAUCHE event->button = 2 = CENTRE event->button = 3 = DROITE */ /* Si pas de selection a cet endroit retour */ if (FALSE == gtk_tree_view_get_path_at_pos (GTK_TREE_VIEW(treeview), (gint)event->x, (gint)event->y, &path, &column, &Pos_X, &Pos_Y)) return (FALSE); // RECCPERATION DE LA STRUCTURE gtk_tree_model_get_iter (model, &iter, path); gtk_tree_model_get (var_file.Adr_Tree_Model, &iter, COLUMN_FILE_POINTER_STRUCT, &detail, -1); if (NULL == detail) return (FALSE); /* IDEE POUR REMPLACER LES COMPARAISON PAR NOMS. EXEMPLES: * PLAY = 0 * TRASH = 1 * TYPE = 2 * etc ... * NOTA: * CET ALGO PERMET DE RENOMMER AISEMENT LES ENTETES DE COLONNES DANS TOUTES LES LANGUES: FR, EN, DE, ... */ for (i = 0; i < NUM_TREE_FILE_ALL_COLUMN; i ++) { ColumnDum = gtk_tree_view_get_column (GTK_TREE_VIEW(treeview), i); if (ColumnDum == column) { /* g_print ("\tNUM IS: %d\n", i); */ switch ( i ) { case NUM_TREE_FILE_Play : BoolSelectColPlay = TRUE; break; case NUM_TREE_FILE_Trash : BoolSelectColTrash = TRUE; break; case NUM_TREE_FILE_Type : BoolSelectColType = TRUE; break; case NUM_TREE_FILE_Wav : BoolSelectColWav = detail->type_infosong_file_is == FILE_IS_WAV ? FALSE : TRUE; break; case NUM_TREE_FILE_Flac : BoolSelectColFlac = detail->type_infosong_file_is == FILE_IS_FLAC ? FALSE : TRUE; break; case NUM_TREE_FILE_Ape : BoolSelectColApe = detail->type_infosong_file_is == FILE_IS_APE ? FALSE : TRUE; break; case NUM_TREE_FILE_WavP : BoolSelectColWavP = detail->type_infosong_file_is == FILE_IS_WAVPACK ? FALSE : TRUE; break; case NUM_TREE_FILE_Ogg : BoolSelectColOgg = detail->type_infosong_file_is == FILE_IS_OGG ? FALSE : TRUE; break; case NUM_TREE_FILE_M4a : BoolSelectColM4a = detail->type_infosong_file_is == FILE_IS_M4A ? FALSE : TRUE; break; case NUM_TREE_FILE_Aac : BoolSelectColAac = detail->type_infosong_file_is == FILE_IS_AAC ? FALSE : TRUE; break; case NUM_TREE_FILE_Mpc : BoolSelectColMpc = detail->type_infosong_file_is == FILE_IS_MPC ? FALSE : TRUE; break; case NUM_TREE_FILE_Mp3 : BoolSelectColMp3 = detail->type_infosong_file_is == FILE_IS_MP3 ? FALSE : TRUE; break; case NUM_TREE_FILE_Time : BoolSelectColTime = TRUE; break; case NUM_TREE_FILE_Normalise : BoolSelectColNorm = TRUE; break; case NUM_TREE_FILE_ReplayGain : BoolSelectColReplayGain = TRUE; break; case NUM_TREE_FILE_Name : BoolSelectColNom = TRUE; break; default: return (FALSE); } /* La colonne est trouvee ... sortie de la boucle */ break; } } BoolSelectColNorm &= (detail->type_infosong_file_is == FILE_IS_WAV || detail->type_infosong_file_is == FILE_IS_OGG || detail->type_infosong_file_is == FILE_IS_MP3); if (FALSE == BoolSelectColNorm && FALSE == BoolSelectColReplayGain) { if (Pos_X < 18 || Pos_X > 30) return (FALSE); if (Pos_Y < 6 || Pos_Y > 18) return (FALSE); } if (bool_click_droit && (BoolSelectColFlac || BoolSelectColWav || BoolSelectColMp3 || BoolSelectColOgg || BoolSelectColM4a || BoolSelectColAac || BoolSelectColMpc || BoolSelectColApe || BoolSelectColWavP)) { /*GdkPixbuf *Pixbuf = NULL; TYPE_FILE_IS TypeFileIs; if (BoolSelectColFlac) {Pixbuf = file_get_pixbuf (detail, FILE_IS_FLAC); TypeFileIs = FILE_IS_FLAC; } else if (BoolSelectColWav) {Pixbuf = file_get_pixbuf (detail, FILE_IS_WAV); TypeFileIs = FILE_IS_WAV; } else if (BoolSelectColMp3) {Pixbuf = file_get_pixbuf (detail, FILE_IS_MP3); TypeFileIs = FILE_IS_MP3; } else if (BoolSelectColOgg) {Pixbuf = file_get_pixbuf (detail, FILE_IS_OGG); TypeFileIs = FILE_IS_OGG; } else if (BoolSelectColM4a) {Pixbuf = file_get_pixbuf (detail, FILE_IS_M4A); TypeFileIs = FILE_IS_M4A; } else if (BoolSelectColAac) {Pixbuf = file_get_pixbuf (detail, FILE_IS_AAC); TypeFileIs = FILE_IS_AAC; } else if (BoolSelectColMpc) {Pixbuf = file_get_pixbuf (detail, FILE_IS_MPC); TypeFileIs = FILE_IS_MPC; } else if (BoolSelectColApe) {Pixbuf = file_get_pixbuf (detail, FILE_IS_APE); TypeFileIs = FILE_IS_APE; } else if (BoolSelectColWavP) {Pixbuf = file_get_pixbuf (detail, FILE_IS_WAVPACK); TypeFileIs = FILE_IS_WAVPACK; } if (Pixbuf != NULL && Pixbuf != var_file.Pixbuf_NotInstall) popup_file (detail, TypeFileIs);*/ TYPE_FILE_IS TypeFileIs = FILE_IS_NONE; if (BoolSelectColFlac) TypeFileIs = FILE_IS_FLAC; else if (BoolSelectColWav) TypeFileIs = FILE_IS_WAV; else if (BoolSelectColMp3) TypeFileIs = FILE_IS_MP3; else if (BoolSelectColOgg) TypeFileIs = FILE_IS_OGG; else if (BoolSelectColM4a) TypeFileIs = FILE_IS_M4A; else if (BoolSelectColAac) TypeFileIs = FILE_IS_AAC; else if (BoolSelectColMpc) TypeFileIs = FILE_IS_MPC; else if (BoolSelectColApe) TypeFileIs = FILE_IS_APE; else if (BoolSelectColWavP) TypeFileIs = FILE_IS_WAVPACK; popup_file (detail, TypeFileIs); return (FALSE); } else if (bool_click_droit && BoolSelectColReplayGain) { if (detail->type_infosong_file_is == FILE_IS_FLAC || detail->type_infosong_file_is == FILE_IS_MP3 || detail->type_infosong_file_is == FILE_IS_WAVPACK || detail->type_infosong_file_is == FILE_IS_OGG) { /*GdkPixbuf *Pixbuf = file_get_pixbuf_replaygain (detail, FALSE); if (Pixbuf != NULL && Pixbuf != var_file.Pixbuf_NotInstall) popup_file_ReplayGain (detail);*/ popup_file_ReplayGain (detail); } return (FALSE); } else if (bool_click_droit && BoolSelectColTrash) { popup_trash (); } if (detail->type_infosong_file_is != FILE_IS_FLAC && BoolSelectColFlac) { BoolFlac = file_bool_from_to (detail, FILE_IS_FLAC); } else if (detail->type_infosong_file_is != FILE_IS_WAV && BoolSelectColWav) { BoolWav = file_bool_from_to (detail, FILE_IS_WAV); } else if (detail->type_infosong_file_is != FILE_IS_MP3 && BoolSelectColMp3) { BoolMp3 = file_bool_from_to (detail, FILE_IS_MP3); } else if (detail->type_infosong_file_is != FILE_IS_OGG && BoolSelectColOgg) { BoolOgg = file_bool_from_to (detail, FILE_IS_OGG); } else if (detail->type_infosong_file_is != FILE_IS_M4A && BoolSelectColM4a) { BoolM4a = file_bool_from_to (detail, FILE_IS_M4A); } else if (detail->type_infosong_file_is != FILE_IS_AAC && BoolSelectColAac) { BoolAac = file_bool_from_to (detail, FILE_IS_AAC); } else if (detail->type_infosong_file_is != FILE_IS_MPC && BoolSelectColMpc) { BoolMpc = file_bool_from_to (detail, FILE_IS_MPC); } else if (detail->type_infosong_file_is != FILE_IS_APE && BoolSelectColApe) { BoolApe = file_bool_from_to (detail, FILE_IS_APE); } else if (detail->type_infosong_file_is != FILE_IS_WAVPACK && BoolSelectColWavP) { BoolWavPack = file_bool_from_to (detail, FILE_IS_WAVPACK); } if (BoolFlac || BoolWav || BoolMp3 || BoolOgg || BoolShn || BoolM4a || BoolAac || BoolWma || BoolMpc || BoolApe || BoolWavPack) { if (TRUE == bool_key_Control && TRUE == bool_click_gauche) { PRINT("TRUE == bool_key_Control && TRUE == bool_click_gauche"); } else if (TRUE == bool_key_Release && TRUE == bool_click_gauche) { if (TRUE == BoolWav) { detail->EtatSelection_Wav = file_get_next_flag (detail, FILE_IS_WAV); gtk_list_store_set (var_file.Adr_List_Store, &iter, COLUMN_FILE_WAV, file_get_pixbuf (detail, FILE_IS_WAV), -1); } else if (TRUE == BoolFlac) { detail->EtatSelection_Flac = file_get_next_flag (detail, FILE_IS_FLAC); gtk_list_store_set (var_file.Adr_List_Store, &iter, COLUMN_FILE_FLAC, file_get_pixbuf (detail, FILE_IS_FLAC), -1); } else if (TRUE == BoolApe) { detail->EtatSelection_Ape = file_get_next_flag (detail, FILE_IS_APE); gtk_list_store_set (var_file.Adr_List_Store, &iter, COLUMN_FILE_APE, file_get_pixbuf (detail, FILE_IS_APE), -1); } else if (TRUE == BoolWavPack) { detail->EtatSelection_WavPack = file_get_next_flag (detail, FILE_IS_WAVPACK); gtk_list_store_set (var_file.Adr_List_Store, &iter, COLUMN_FILE_WAVPACK, file_get_pixbuf (detail, FILE_IS_WAVPACK), -1); } else if (TRUE == BoolOgg) { detail->EtatSelection_Ogg = file_get_next_flag (detail, FILE_IS_OGG); gtk_list_store_set (var_file.Adr_List_Store, &iter, COLUMN_FILE_OGG, file_get_pixbuf (detail, FILE_IS_OGG), -1); } else if (TRUE == BoolM4a) { detail->EtatSelection_M4a = file_get_next_flag (detail, FILE_IS_M4A); gtk_list_store_set (var_file.Adr_List_Store, &iter, COLUMN_FILE_M4A, file_get_pixbuf (detail, FILE_IS_M4A), -1); } else if (TRUE == BoolAac) { detail->EtatSelection_Aac = file_get_next_flag (detail, FILE_IS_AAC); gtk_list_store_set (var_file.Adr_List_Store, &iter, COLUMN_FILE_AAC, file_get_pixbuf (detail, FILE_IS_AAC), -1); } else if (TRUE == BoolMpc) { detail->EtatSelection_Mpc = file_get_next_flag (detail, FILE_IS_MPC); gtk_list_store_set (var_file.Adr_List_Store, &iter, COLUMN_FILE_MPC, file_get_pixbuf (detail, FILE_IS_MPC), -1); } else if (TRUE == BoolMp3) { detail->EtatSelection_Mp3 = file_get_next_flag (detail, FILE_IS_MP3); gtk_list_store_set (var_file.Adr_List_Store, &iter, COLUMN_FILE_MP3, file_get_pixbuf (detail, FILE_IS_MP3), -1); } } } else if (TRUE == BoolSelectColNorm) { /* Une seule selection par l'utilisateur */ if (TRUE == bool_key_Release && TRUE == bool_click_gauche) { gtk_widget_set_sensitive (GTK_WIDGET (GTK_COMBO_BOX (var_file.AdrComboboxNormalise)), TRUE); if (file_ok_to_normalise () && detail->Etat_Normalise == NORM_READY_FOR_SELECT) { switch (gtk_combo_box_get_active (GTK_COMBO_BOX (var_file.AdrComboboxNormalise))) { case 0 : detail->Etat_Normalise = NORM_PEAK_ALBUM; break; case 1 : detail->Etat_Normalise = NORM_PEAK; break; case 2 : detail->Etat_Normalise = NORM_RMS_MIX_ALBUM; break; case 3 : detail->Etat_Normalise = NORM_RMS_FIX; break; } } else if (detail->Etat_Normalise > NORM_READY_FOR_SELECT) { detail->Etat_Normalise = NORM_READY_FOR_SELECT; detail->Etat_Scan = ETAT_SCAN_NONE; } gtk_list_store_set ( var_file.Adr_List_Store, &iter, COLUMN_FILE_NORMALIZE, file_get_str_level_normalise (detail), -1); } } else if (TRUE == BoolSelectColReplayGain) { if (TRUE == bool_key_Release && TRUE == bool_click_gauche) { gtk_list_store_set ( var_file.Adr_List_Store, &iter, COLUMN_FILE_REPLAYGAIN, file_get_pixbuf_replaygain (detail, TRUE), -1); } } else if (TRUE == BoolSelectColTrash) { if (TRUE == bool_key_Release && TRUE == bool_click_gauche) { detail->EtatTrash = (detail->EtatTrash == FILE_TRASH_NONE) ? FILE_TRASH_OK : FILE_TRASH_NONE; gtk_list_store_set ( var_file.Adr_List_Store, &iter, COLUMN_FILE_TRASH, file_get_pixbuf_trash (detail), -1); } } else if (TRUE == BoolSelectColPlay) { PlayFile_play (detail->namefile); } file_set_flag_buttons (); return (FALSE); } // // void file_changed_selection_row (GtkTreeSelection *selection, gpointer data) { var_file.Adr_Line_Selected = selection; file_set_flag_buttons (); } // // gboolean file_key_press_event (GtkWidget *widget, GdkEventKey *event, gpointer user_data) { if( TRUE == keys.BoolGDK_Control_A ) { // CONTROL_A gtk_tree_selection_unselect_all (var_file.Adr_Line_Selected); gtk_tree_selection_select_all (var_file.Adr_Line_Selected); } if (keys.keyval == GDK_Delete) { GtkTreeIter iter; if (gtk_tree_model_get_iter_first (var_file.Adr_Tree_Model, &iter)) { on_file_button_del_file_clicked (NULL, NULL); return (FALSE); } } return (TRUE); } // // Drag import // static void file_drag_data_received( GtkWidget *widget, GdkDragContext *drag_context, gint x, gint y, GtkSelectionData *data, guint info, guint time, gpointer user_data ) { PRINT("BUG: file_drag_data_received"); // Une copie ne peut aller vers elle meme !!! if (gtk_drag_get_source_widget(drag_context) != widget) { dragndrop_list_drag_data (widget, (gchar *)data->data); } } // // DRag export // static void file_drag_data_drop( GtkWidget *widget, GdkDragContext *dc, GtkSelectionData *selection_data, guint info, guint t, gpointer data ) { GtkTreeIter iter; GtkTreeModel *model = NULL; GList *begin_list = NULL; GList *list = NULL; GtkTreePath *path; DETAIL *detail = NULL; gchar *text = NULL; model = gtk_tree_view_get_model (GTK_TREE_VIEW(widget)); begin_list = gtk_tree_selection_get_selected_rows (var_file.Adr_Line_Selected, &model); list = g_list_first (begin_list); while (list) { if( NULL != ( path = list->data )) { gtk_tree_model_get_iter( model, &iter, path ); gtk_tree_model_get( var_file.Adr_Tree_Model, &iter, COLUMN_FILE_POINTER_STRUCT, &detail, -1 ); // DEBUG DRAG AND DROP // [ Tue, 03 May 2011 17:39:08 +0200 ] // XCFA-4.1.0 // ----------------------------------------------------------- // OLD CODE: // text = g_strdup( detail->namefile ); // NEW_CODE: text = g_strdup_printf( "file://%s", detail->namefile ); gdk_drag_status (dc, GDK_ACTION_COPY, t); gtk_selection_data_set( selection_data, // GDK_SELECTION_TYPE_STRING, selection_data->target, 8, (guchar *)text, strlen( text ) ); g_free( text ); text = NULL; } list = g_list_next( list ); } } // // void file_set_help (DETAIL *detail, TYPE_FILE_IS TypeFileIs) { ETAT_SELECTION etat = ETAT_ATTENTE; etat = file_get_next_flag( detail, TypeFileIs ); switch( etat ) { case ETAT_PRG_NONE : StatusBar_set_mess( NOTEBOOK_FICHIERS, _STATUSBAR_SIMPLE_, "" ); break; case ETAT_PRG_ABSENT : StatusBar_set_mess( NOTEBOOK_FICHIERS, _STATUSBAR_SIMPLE_, _("Le programme externe d'extraction est absent.")); break; case ETAT_ATTENTE : StatusBar_set_mess( NOTEBOOK_FICHIERS, _STATUSBAR_SIMPLE_, _("(Click Droit = Menu) / En attente de selection.")); break; case ETAT_ATTENTE_EXIST : StatusBar_set_mess( NOTEBOOK_FICHIERS, _STATUSBAR_SIMPLE_, _("(Click Droit = Menu) / En attente de selection. Le fichier existe.")); break; case ETAT_SELECT : StatusBar_set_mess( NOTEBOOK_FICHIERS, _STATUSBAR_SIMPLE_, _("(Click Droit = Menu) / En selection.")); break; case ETAT_SELECT_EXIST : StatusBar_set_mess( NOTEBOOK_FICHIERS, _STATUSBAR_SIMPLE_, _("(Click Droit = Menu) / En selection. Le fichier existe.")); break; case ETAT_SELECT_EXPERT : StatusBar_set_mess( NOTEBOOK_FICHIERS, _STATUSBAR_SIMPLE_, _("(Click Droit = Menu) / Selection avec options expert.")); break; case ETAT_SELECT_EXPERT_EXIST : StatusBar_set_mess( NOTEBOOK_FICHIERS, _STATUSBAR_SIMPLE_, _("(Click Droit = Menu) / Selection avec options expert. Le fichier existe.")); break; } } // // void file_set_normalise (ETAT_NORMALISE p_EtatNormalise) { if (FALSE == file_ok_to_normalise ()) { gchar *Str = g_strdup_printf (_("MAX FICHIERS ATTEINT = %d"), MAX_ARG_CONV); StatusBar_set_mess( NOTEBOOK_FICHIERS, _STATUSBAR_SIMPLE_, Str ); g_free (Str); Str = NULL; } else { switch (p_EtatNormalise) { case NORM_NONE : StatusBar_set_mess( NOTEBOOK_FICHIERS, _STATUSBAR_SIMPLE_, "VOIR LA FONCTION: file_set_normalise()"); break; case NORM_READY_FOR_SELECT : StatusBar_set_mess( NOTEBOOK_FICHIERS, _STATUSBAR_SIMPLE_, _("Normalise: En attente de selection.")); break; case NORM_PEAK_ALBUM : if (FALSE == file_peak_get_size_is_ok (NORM_PEAK_ALBUM, NULL)) { StatusBar_set_mess( NOTEBOOK_FICHIERS, _STATUSBAR_SIMPLE_, _("ATTENTION: Pas assez de place dans le dossier temporaire.")); } else { StatusBar_set_mess( NOTEBOOK_FICHIERS, _STATUSBAR_SIMPLE_, _("PEAK-ALBUM: Amplification maximale du volume pour un groupe de fichiers en respectant les ecarts de niveau entre chacun d'eux.")); } break; case NORM_PEAK : StatusBar_set_mess( NOTEBOOK_FICHIERS, _STATUSBAR_SIMPLE_, _("PEAK: Amplification maximale du volume pour chaque de fichier.")); break; case NORM_RMS_MIX_ALBUM : StatusBar_set_mess( NOTEBOOK_FICHIERS, _STATUSBAR_SIMPLE_, _("RMS-ALBUM: Ajustement du volume moyen pour un groupe de fichiers en respectant les ecarts de niveau moyen entre chacun d'eux.")); break; case NORM_RMS_FIX : StatusBar_set_mess( NOTEBOOK_FICHIERS, _STATUSBAR_SIMPLE_, _("RMS: Ajustement du volume moyen de chaque de fichier.")); break; } } } // // void file_set_replaygain (ETAT_REPLAYGAIN p_EtatReplayGain) { switch (p_EtatReplayGain) { case RPG_NONE : StatusBar_set_mess( NOTEBOOK_FICHIERS, _STATUSBAR_SIMPLE_, "" ); break; case RPG_ATTENTE : StatusBar_set_mess( NOTEBOOK_FICHIERS, _STATUSBAR_SIMPLE_, _("(Click Droit = Menu) / ReplayGain: En attente de selection.")); break; case RPG_PISTE : StatusBar_set_mess( NOTEBOOK_FICHIERS, _STATUSBAR_SIMPLE_, _("(Click Droit = Menu) / Mode piste.")); break; case RPG_ALBUM : StatusBar_set_mess( NOTEBOOK_FICHIERS, _STATUSBAR_SIMPLE_, _("(Click Droit = Menu) / Mode album.")); break; case RPG_EFFACER : StatusBar_set_mess( NOTEBOOK_FICHIERS, _STATUSBAR_SIMPLE_, _("(Click Droit = Menu) / Mode effacer.")); break; } } // AFFICHAGE DU NOM COMPLET DU FICHIER SI SURVOL PAR LE CURSEUR SOURIS DU CHAMPS 'Nom' // gboolean file_event (GtkWidget *treeview, GdkEvent *event, gpointer user_data) { gint x, y; GdkModifierType state; GtkTreePath *path; GtkTreeViewColumn *column; GtkTreeViewColumn *ColumnDum; GtkTreeIter iter; GtkTreeModel *model = (GtkTreeModel *)user_data; DETAIL *detail = NULL; gint Pos_X = 0, Pos_Y = 0; gint i; gboolean BoolSelectColPlay = FALSE; gboolean BoolSelectColTrash = FALSE; gboolean BoolSelectColType = FALSE; gboolean BoolSelectColFlac = FALSE; gboolean BoolSelectColWav = FALSE; gboolean BoolSelectColMp3 = FALSE; gboolean BoolSelectColOgg = FALSE; gboolean BoolSelectColM4a = FALSE; gboolean BoolSelectColAac = FALSE; gboolean BoolSelectColMpc = FALSE; gboolean BoolSelectColApe = FALSE; gboolean BoolSelectColWavP = FALSE; gboolean BoolSelectColTime = FALSE; gboolean BoolSelectColNorm = FALSE; gboolean BoolSelectColReplayGain = FALSE; gboolean BoolSelectColNom = FALSE; // SI PAS DANS LE TREEVIEW gdk_window_get_pointer (((GdkEventButton*)event)->window, &x, &y, &state); if (FALSE == gtk_tree_view_get_path_at_pos (GTK_TREE_VIEW(treeview), x, y, &path, &column, &Pos_X, &Pos_Y)) { StatusBar_set_mess( NOTEBOOK_FICHIERS, _STATUSBAR_SIMPLE_, " "); return (FALSE); } // RECUPERATION DE LA STRUCTURE POINTEE PAR LE CURSEUR SOURIS gtk_tree_model_get_iter (model, &iter, path); gtk_tree_model_get (var_file.Adr_Tree_Model, &iter, COLUMN_FILE_POINTER_STRUCT, &detail, -1); if (NULL == detail) return (FALSE); // SORTIE SI LE WIDGET SOUS LE CURSEUR NE CORRESPOND PAS AU TREEVIEW if (gtk_get_event_widget (event) != var_file.Adr_TreeView) { StatusBar_set_mess( NOTEBOOK_FICHIERS, _STATUSBAR_SIMPLE_, ""); return (FALSE); } /* IDEE POUR REMPLACER LES COMPARAISON PAR NOMS. EXEMPLES: * PLAY = 0 * TRASH = 1 * TYPE = 2 * etc ... * NOTA: * CET ALGO PERMET DE RENOMMER AISEMENT LES ENTETES DE COLONNES DANS TOUTES LES LANGUES: FR, EN, DE, ... */ for (i = 0; i < NUM_TREE_FILE_ALL_COLUMN; i ++) { ColumnDum = gtk_tree_view_get_column (GTK_TREE_VIEW(treeview), i); if (ColumnDum == column) { switch ( i ) { case NUM_TREE_FILE_Play : BoolSelectColPlay = TRUE; break; case NUM_TREE_FILE_Trash : BoolSelectColTrash = TRUE; break; case NUM_TREE_FILE_Type : BoolSelectColType = TRUE; break; case NUM_TREE_FILE_Wav : BoolSelectColWav = detail->type_infosong_file_is == FILE_IS_WAV ? FALSE : TRUE; break; case NUM_TREE_FILE_Flac : BoolSelectColFlac = detail->type_infosong_file_is == FILE_IS_FLAC ? FALSE : TRUE; break; case NUM_TREE_FILE_Ape : BoolSelectColApe = detail->type_infosong_file_is == FILE_IS_APE ? FALSE : TRUE; break; case NUM_TREE_FILE_WavP : BoolSelectColWavP = detail->type_infosong_file_is == FILE_IS_WAVPACK ? FALSE : TRUE; break; case NUM_TREE_FILE_Ogg : BoolSelectColOgg = detail->type_infosong_file_is == FILE_IS_OGG ? FALSE : TRUE; break; case NUM_TREE_FILE_M4a : BoolSelectColM4a = detail->type_infosong_file_is == FILE_IS_M4A ? FALSE : TRUE; break; case NUM_TREE_FILE_Aac : BoolSelectColAac = detail->type_infosong_file_is == FILE_IS_AAC ? FALSE : TRUE; break; case NUM_TREE_FILE_Mpc : BoolSelectColMpc = detail->type_infosong_file_is == FILE_IS_MPC ? FALSE : TRUE; break; case NUM_TREE_FILE_Mp3 : BoolSelectColMp3 = detail->type_infosong_file_is == FILE_IS_MP3 ? FALSE : TRUE; break; case NUM_TREE_FILE_Time : BoolSelectColTime = TRUE; break; case NUM_TREE_FILE_Normalise : BoolSelectColNorm = TRUE; break; case NUM_TREE_FILE_ReplayGain : BoolSelectColReplayGain = TRUE; break; case NUM_TREE_FILE_Name : BoolSelectColNom = TRUE; break; default: StatusBar_set_mess( NOTEBOOK_FICHIERS, _STATUSBAR_SIMPLE_, ""); StatusBar_puts(); return (FALSE); } /* La colonne est trouvee ... sortie de la boucle */ break; } } BoolSelectColNorm &= (detail->type_infosong_file_is == FILE_IS_WAV || detail->type_infosong_file_is == FILE_IS_OGG || detail->type_infosong_file_is == FILE_IS_MP3); if (BoolSelectColFlac || BoolSelectColWav || BoolSelectColMp3 || BoolSelectColOgg || BoolSelectColM4a || BoolSelectColAac || BoolSelectColMpc || BoolSelectColApe || BoolSelectColWavP) { if ((Pos_X < 18 || Pos_X > 30) || (Pos_Y < 6 || Pos_Y > 18)) { StatusBar_set_mess( NOTEBOOK_FICHIERS, _STATUSBAR_SIMPLE_, ""); return (FALSE); } } if (TRUE == BoolSelectColPlay) { StatusBar_set_mess( NOTEBOOK_FICHIERS, _STATUSBAR_SIMPLE_, ""); } else if (TRUE == BoolSelectColTrash) { switch (detail->EtatTrash) { case FILE_TRASH_NONE : StatusBar_set_mess( NOTEBOOK_FICHIERS, _STATUSBAR_SIMPLE_, _("(Click Droit = Menu) / Cliquez ici pour envoyer ce fichier apres traitement a la corbeille")); break; case FILE_TRASH_OK : StatusBar_set_mess( NOTEBOOK_FICHIERS, _STATUSBAR_SIMPLE_, _("(Click Droit = Menu) / Ce fichier sera dirige apres traitement vers la corbeille")); break; case FILE_TRASH_VERIF_OK : StatusBar_set_mess( NOTEBOOK_FICHIERS, _STATUSBAR_SIMPLE_, ""); break; } } else if (TRUE == BoolSelectColType) { StatusBar_set_mess( NOTEBOOK_FICHIERS, _STATUSBAR_SIMPLE_, ""); } else if (TRUE == BoolSelectColWav) { file_set_help (detail, FILE_IS_WAV); } else if (TRUE == BoolSelectColFlac) { file_set_help (detail, FILE_IS_FLAC); } else if (TRUE == BoolSelectColApe) { file_set_help (detail, FILE_IS_APE); } else if (TRUE == BoolSelectColWavP) { file_set_help (detail, FILE_IS_WAVPACK); } else if (TRUE == BoolSelectColOgg) { file_set_help (detail, FILE_IS_OGG); } else if (TRUE == BoolSelectColM4a) { file_set_help (detail, FILE_IS_M4A); } else if (TRUE == BoolSelectColAac) { file_set_help (detail, FILE_IS_AAC); } else if (TRUE == BoolSelectColMpc) { file_set_help (detail, FILE_IS_MPC); } else if (TRUE == BoolSelectColMp3) { file_set_help (detail, FILE_IS_MP3); } else if (TRUE == BoolSelectColTime) { StatusBar_set_mess( NOTEBOOK_FICHIERS, _STATUSBAR_SIMPLE_, ""); } else if (TRUE == BoolSelectColNorm) { file_set_normalise (detail->Etat_Normalise); } else if (TRUE == BoolSelectColReplayGain) { file_set_replaygain (detail->Etat_ReplayGain); } else if (TRUE == BoolSelectColNom) { StatusBar_set_mess( NOTEBOOK_FICHIERS, _STATUSBAR_SIMPLE_, detail->namefile); } else { // StatusBar_set_mess( NOTEBOOK_FICHIERS, _STATUSBAR_SIMPLE_, ""); } StatusBar_puts(); return (FALSE); } // // static void file_add_columns_scrolledwindow (GtkTreeView *treeview) { GtkTreeModel *model = gtk_tree_view_get_model (treeview); GtkCellRenderer *renderer; GtkTreeViewColumn *column; // SIGNAL : 'event' g_signal_connect(G_OBJECT(treeview), "event", (GCallback) file_event, model); // SIGNAL 'key-press-event' g_signal_connect(G_OBJECT(treeview), "key-press-event", (GCallback) file_key_press_event, model); // SIGNAL : 'Gestion click click' g_signal_connect(G_OBJECT(treeview), "button-press-event", (GCallback) file_event_click_mouse, model); // SIGNAL : Ligne actuellement selectionnee 'changed' var_file.Adr_Line_Selected = gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)); g_signal_connect(G_OBJECT(var_file.Adr_Line_Selected), "changed", G_CALLBACK(file_changed_selection_row), "1"); // Drag and drop support // SIGNAL : 'drag-data-received' gtk_drag_dest_set (GTK_WIDGET (treeview), // GTK_DEST_DEFAULT_MOTION | GTK_DEST_DEFAULT_DROP | GTK_DEST_DEFAULT_HIGHLIGHT, GTK_DEST_DEFAULT_ALL, drag_types, n_drag_types, GDK_ACTION_MOVE | GDK_ACTION_COPY | GDK_ACTION_DEFAULT ); g_signal_connect(G_OBJECT(treeview), "drag-data-received", G_CALLBACK(file_drag_data_received), NULL); gtk_drag_source_set( GTK_WIDGET(treeview), GDK_BUTTON1_MASK | GDK_BUTTON2_MASK | GTK_DEST_DEFAULT_MOTION | GTK_DEST_DEFAULT_DROP, drag_types, n_drag_types, GDK_ACTION_MOVE | GDK_ACTION_COPY | GDK_ACTION_DEFAULT ); g_signal_connect(G_OBJECT(treeview), "drag-data-get", G_CALLBACK(file_drag_data_drop), NULL); // COLUMN_FILE_PLAY renderer = gtk_cell_renderer_pixbuf_new (); g_object_set (renderer, "xalign", 0.5, NULL); var_file.Adr_ColumnFilePlay = column = gtk_tree_view_column_new_with_attributes (_("Play"), renderer, "pixbuf", COLUMN_FILE_PLAY, NULL); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column), GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 50); gtk_tree_view_column_set_alignment (GTK_TREE_VIEW_COLUMN (column), 0.5); gtk_tree_view_append_column (treeview, column); // COLUMN_FILE_TRASH renderer = gtk_cell_renderer_pixbuf_new (); g_object_set (renderer, "xalign", 0.5, NULL); var_file.Adr_ColumnFileTrash = column = gtk_tree_view_column_new_with_attributes (_("Trash"), renderer, "pixbuf", COLUMN_FILE_TRASH, NULL); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column), GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 50); gtk_tree_view_column_set_alignment (GTK_TREE_VIEW_COLUMN (column), 0.5); gtk_tree_view_append_column (treeview, column); gtk_tree_view_column_set_clickable (GTK_TREE_VIEW_COLUMN (column), TRUE); g_signal_connect (G_OBJECT(GTK_TREE_VIEW_COLUMN (column)), "clicked", G_CALLBACK (file_selected_column), GINT_TO_POINTER(-1)); // COLUMN_FILE_TYPE renderer = gtk_cell_renderer_text_new (); g_object_set (renderer, "xalign", 0.5, NULL); var_file.Adr_ColumnFileType = column = gtk_tree_view_column_new_with_attributes (_("Type"), renderer, "markup", COLUMN_FILE_TYPE, NULL); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column), GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 55); gtk_tree_view_column_set_alignment (GTK_TREE_VIEW_COLUMN (column), 0.5); // TRIS gtk_tree_view_column_set_sort_column_id (column, COLUMN_FILE_TYPE); gtk_tree_view_append_column (treeview, column); /* @Patachon, @Shankarius, @Dzef Je plaide aussi pour la réunion logique des formats lossless puis des autres. Je propose : lossless | perte | destruction forte <================> <============================> <=========> Wav | Flac | Ape | WPack | Ogg | Aac | Mpc | Mp3 Je conviens qu'il n'est pas facile de classer, car certains formats sont capables d'être utilisés en lossless ou en moindre qualité. Ce n'est donc pas vraiment linéaire. Mais c'est une piste... */ // COLUMN_FILE_WAV renderer = gtk_cell_renderer_pixbuf_new (); g_object_set (renderer, "xalign", 0.5, NULL); var_file.Adr_ColumnFileWav = column = gtk_tree_view_column_new_with_attributes (_("Wav"), renderer, "pixbuf", COLUMN_FILE_WAV, NULL); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column), GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 50); gtk_tree_view_column_set_alignment (GTK_TREE_VIEW_COLUMN (column), 0.5); gtk_tree_view_append_column (treeview, column); gtk_tree_view_column_set_clickable (GTK_TREE_VIEW_COLUMN (column), TRUE); g_signal_connect (G_OBJECT(GTK_TREE_VIEW_COLUMN (column)), "clicked", G_CALLBACK (file_selected_column), GINT_TO_POINTER(0)); // COLUMN_FILE_FLAC renderer = gtk_cell_renderer_pixbuf_new (); g_object_set (renderer, "xalign", 0.5, NULL); var_file.Adr_ColumnFileFlac = column = gtk_tree_view_column_new_with_attributes (_("Flac"), renderer, "pixbuf", COLUMN_FILE_FLAC, NULL); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column), GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 50); gtk_tree_view_column_set_alignment (GTK_TREE_VIEW_COLUMN (column), 0.5); gtk_tree_view_append_column (treeview, column); gtk_tree_view_column_set_clickable (GTK_TREE_VIEW_COLUMN (column), TRUE); g_signal_connect (G_OBJECT(GTK_TREE_VIEW_COLUMN (column)), "clicked", G_CALLBACK (file_selected_column), GINT_TO_POINTER(1)); // COLUMN_FILE_APE renderer = gtk_cell_renderer_pixbuf_new (); g_object_set (renderer, "xalign", 0.5, NULL); var_file.Adr_ColumnFileApe = column = gtk_tree_view_column_new_with_attributes (_("Ape"), renderer, "pixbuf", COLUMN_FILE_APE, NULL); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column), GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 50); gtk_tree_view_column_set_alignment (GTK_TREE_VIEW_COLUMN (column), 0.5); gtk_tree_view_append_column (treeview, column); gtk_tree_view_column_set_clickable (GTK_TREE_VIEW_COLUMN (column), TRUE); g_signal_connect (G_OBJECT(GTK_TREE_VIEW_COLUMN (column)), "clicked", G_CALLBACK (file_selected_column), GINT_TO_POINTER(2)); // COLUMN_FILE_WAVPACK renderer = gtk_cell_renderer_pixbuf_new (); g_object_set (renderer, "xalign", 0.5, NULL); var_file.Adr_ColumnFileWavPack = column = gtk_tree_view_column_new_with_attributes (_("WavP"), renderer, "pixbuf", COLUMN_FILE_WAVPACK, NULL); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column), GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 50); gtk_tree_view_column_set_alignment (GTK_TREE_VIEW_COLUMN (column), 0.5); gtk_tree_view_append_column (treeview, column); gtk_tree_view_column_set_clickable (GTK_TREE_VIEW_COLUMN (column), TRUE); g_signal_connect (G_OBJECT(GTK_TREE_VIEW_COLUMN (column)), "clicked", G_CALLBACK (file_selected_column), GINT_TO_POINTER(3)); // COLUMN_FILE_OGG renderer = gtk_cell_renderer_pixbuf_new (); g_object_set (renderer, "xalign", 0.5, NULL); var_file.Adr_ColumnFileOgg = column = gtk_tree_view_column_new_with_attributes (_("Ogg"), renderer, "pixbuf", COLUMN_FILE_OGG, NULL); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column), GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 50); gtk_tree_view_column_set_alignment (GTK_TREE_VIEW_COLUMN (column), 0.5); gtk_tree_view_append_column (treeview, column); gtk_tree_view_column_set_clickable (GTK_TREE_VIEW_COLUMN (column), TRUE); g_signal_connect (G_OBJECT(GTK_TREE_VIEW_COLUMN (column)), "clicked", G_CALLBACK (file_selected_column), GINT_TO_POINTER(4)); // COLUMN_FILE_M4A renderer = gtk_cell_renderer_pixbuf_new (); g_object_set (renderer, "xalign", 0.5, NULL); var_file.Adr_ColumnFileM4a = column = gtk_tree_view_column_new_with_attributes (_("M4a"), renderer, "pixbuf", COLUMN_FILE_M4A, NULL); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column), GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 50); gtk_tree_view_column_set_alignment (GTK_TREE_VIEW_COLUMN (column), 0.5); gtk_tree_view_append_column (treeview, column); gtk_tree_view_column_set_clickable (GTK_TREE_VIEW_COLUMN (column), TRUE); g_signal_connect (G_OBJECT(GTK_TREE_VIEW_COLUMN (column)), "clicked", G_CALLBACK (file_selected_column), GINT_TO_POINTER(5)); // COLUMN_FILE_AAC renderer = gtk_cell_renderer_pixbuf_new (); g_object_set (renderer, "xalign", 0.5, NULL); var_file.Adr_ColumnFileAac = column = gtk_tree_view_column_new_with_attributes (_("Aac"), renderer, "pixbuf", COLUMN_FILE_AAC, NULL); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column), GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 50); gtk_tree_view_column_set_alignment (GTK_TREE_VIEW_COLUMN (column), 0.5); gtk_tree_view_append_column (treeview, column); gtk_tree_view_column_set_clickable (GTK_TREE_VIEW_COLUMN (column), TRUE); g_signal_connect (G_OBJECT(GTK_TREE_VIEW_COLUMN (column)), "clicked", G_CALLBACK (file_selected_column), GINT_TO_POINTER(6)); // COLUMN_FILE_MPC renderer = gtk_cell_renderer_pixbuf_new (); g_object_set (renderer, "xalign", 0.5, NULL); var_file.Adr_ColumnFileMpc = column = gtk_tree_view_column_new_with_attributes (_("Mpc"), renderer, "pixbuf", COLUMN_FILE_MPC, NULL); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column), GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 50); gtk_tree_view_column_set_alignment (GTK_TREE_VIEW_COLUMN (column), 0.5); gtk_tree_view_append_column (treeview, column); gtk_tree_view_column_set_clickable (GTK_TREE_VIEW_COLUMN (column), TRUE); g_signal_connect (G_OBJECT(GTK_TREE_VIEW_COLUMN (column)), "clicked", G_CALLBACK (file_selected_column), GINT_TO_POINTER(7)); // COLUMN_FILE_MP3 renderer = gtk_cell_renderer_pixbuf_new (); g_object_set (renderer, "xalign", 0.5, NULL); var_file.Adr_ColumnFileMp3 = column = gtk_tree_view_column_new_with_attributes (_("Mp3"), renderer, "pixbuf", COLUMN_FILE_MP3, NULL); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column), GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 50); gtk_tree_view_column_set_alignment (GTK_TREE_VIEW_COLUMN (column), 0.5); gtk_tree_view_append_column (treeview, column); gtk_tree_view_column_set_clickable (GTK_TREE_VIEW_COLUMN (column), TRUE); g_signal_connect (G_OBJECT(GTK_TREE_VIEW_COLUMN (column)), "clicked", G_CALLBACK (file_selected_column), GINT_TO_POINTER(8)); // COLUMN_FILE_TIME renderer = gtk_cell_renderer_text_new (); g_object_set (renderer, "xalign", 0.5, NULL); var_file.Adr_ColumnFileTime = column = gtk_tree_view_column_new_with_attributes (_("Temps"), renderer, /*"pixbuf", COLUMN_FILE_TYPE,*/ "text", COLUMN_FILE_TIME, NULL); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column), GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 70); gtk_tree_view_column_set_alignment (GTK_TREE_VIEW_COLUMN (column), 0.5); gtk_tree_view_append_column (treeview, column); // COLUMN_FILE_NORMALIZE renderer = gtk_cell_renderer_text_new (); g_object_set (renderer, "xalign", 0.5, NULL); var_file.Adr_ColumnFileNormalize = column = gtk_tree_view_column_new_with_attributes (_("Normalise"), renderer, "markup", COLUMN_FILE_NORMALIZE, NULL); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column), GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 170); gtk_tree_view_column_set_alignment (GTK_TREE_VIEW_COLUMN (column), 0.5); gtk_tree_view_append_column (treeview, column); gtk_tree_view_column_set_clickable (GTK_TREE_VIEW_COLUMN (column), TRUE); g_signal_connect (G_OBJECT(GTK_TREE_VIEW_COLUMN (column)), "clicked", G_CALLBACK (file_selected_column), GINT_TO_POINTER(9)); // COLUMN_FILE_REPLAYGAIN renderer = gtk_cell_renderer_pixbuf_new (); g_object_set (renderer, "xalign", 0.5, NULL); var_file.Adr_ColumnFileReplayGain = column = gtk_tree_view_column_new_with_attributes (_("ReplayGain"), renderer, "pixbuf", COLUMN_FILE_REPLAYGAIN, NULL); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column), GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 80); gtk_tree_view_column_set_alignment (GTK_TREE_VIEW_COLUMN (column), 0.5); gtk_tree_view_append_column (treeview, column); gtk_tree_view_column_set_clickable (GTK_TREE_VIEW_COLUMN (column), TRUE); g_signal_connect (G_OBJECT(GTK_TREE_VIEW_COLUMN (column)), "clicked", G_CALLBACK (file_selected_column), GINT_TO_POINTER(10)); // COLUMN_FILE_NAME // COLUMN_FILE_EDITABLE var_file.Renderer = renderer = gtk_cell_renderer_text_new (); g_signal_connect (renderer, "edited", G_CALLBACK (file_cell_edited), model); g_object_set (renderer, "xalign", 0.5, NULL); g_object_set_data (G_OBJECT (renderer), "column", (gint *)COLUMN_FILE_NAME); var_file.Adr_ColumnFileName = column = gtk_tree_view_column_new_with_attributes (_("Nom"), renderer, "markup", COLUMN_FILE_NAME, "editable", COLUMN_FILE_EDITABLE, "background-gdk", COLUMN_FILE_COLOR, NULL); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column), GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 200); gtk_tree_view_column_set_alignment (GTK_TREE_VIEW_COLUMN (column), 0.5); // TRIS gtk_tree_view_column_set_sort_column_id (column, COLUMN_FILE_NAME); gtk_tree_view_append_column (treeview, column); } // // void on_file_scrolledwindow_file_realize (GtkWidget *widget, gpointer user_data) { GtkListStore *store; GtkTreeModel *model; GtkWidget *treeview; var_file.Adr_scroll = widget; var_file.Pixbuf_Coche = libutils_init_pixbufs ("coche.png"); var_file.Pixbuf_Selected = libutils_init_pixbufs ("selected.png"); var_file.Pixbuf_Coche_exist = libutils_init_pixbufs ("coche_exist.png"); var_file.Pixbuf_Selected_exist = libutils_init_pixbufs ("selected_exist.png"); var_file.Pixbuf_Selected_expert = libutils_init_pixbufs ("selected_expert.png"); var_file.Pixbuf_Selected_expert_exist = libutils_init_pixbufs ("selected_expert_exist.png"); var_file.Pixbuf_FilePlay = libutils_init_pixbufs ("sol.png"); var_file.Pixbuf_FileStop = libutils_init_pixbufs ("no_play.png"); var_file.Pixbuf_NotInstall = libutils_init_pixbufs ("not_install.png"); var_file.Pixbuf_rpg_piste = libutils_init_pixbufs ("rpg_piste.png"); var_file.Pixbuf_rpg_album = libutils_init_pixbufs ("rpg_album.png"); var_file.Pixbuf_rpg_effacer = libutils_init_pixbufs ("rpg_effacer.png"); var_file.Pixbuf_rpg_wait = libutils_init_pixbufs ("norm_rpg_wait.png"); var_file.Pixbuf_norm_fix = libutils_init_pixbufs ("norm_fix.png"); var_file.Pixbuf_norm_mix = libutils_init_pixbufs ("norm_mix.png"); var_file.Pixbuf_norm_peak = libutils_init_pixbufs ("norm_peak.png"); var_file.Pixbuf_norm_wait = libutils_init_pixbufs ("norm_rpg_wait.png"); var_file.Pixbuf_Normalize_Coche = libutils_init_pixbufs ("normalize2.png"); var_file.Pixbuf_NoTrash = libutils_init_pixbufs ("coche.png"); var_file.Pixbuf_Trash = libutils_init_pixbufs ("trash.png"); var_file.Adr_List_Store = store = gtk_list_store_new ( COLUMN_FILE_NUM, /* TOTAL NUMBER */ GDK_TYPE_PIXBUF, /* COLUMN_FILE_PLAY */ GDK_TYPE_PIXBUF, /* COLUMN_FILE_TRASH */ G_TYPE_STRING, /* COLUMN_FILE_TYPE */ GDK_TYPE_PIXBUF, /* COLUMN_FILE_FLAC */ GDK_TYPE_PIXBUF, /* COLUMN_FILE_WAV */ GDK_TYPE_PIXBUF, /* COLUMN_FILE_MP3 */ GDK_TYPE_PIXBUF, /* COLUMN_FILE_OGG */ GDK_TYPE_PIXBUF, /* COLUMN_FILE_M4A */ GDK_TYPE_PIXBUF, /* COLUMN_FILE_AAC */ GDK_TYPE_PIXBUF, /* COLUMN_FILE_MPC */ GDK_TYPE_PIXBUF, /* COLUMN_FILE_APE */ GDK_TYPE_PIXBUF, /* COLUMN_FILE_WAVPACK */ G_TYPE_STRING, /* COLUMN_FILE_TIME */ G_TYPE_STRING, /* COLUMN_FILE_NORMALIZE */ GDK_TYPE_PIXBUF, /* COLUMN_FILE_REPLAYGAIN */ G_TYPE_STRING, /* COLUMN_FILE_NAME */ G_TYPE_BOOLEAN, /* COLUMN_FILE_EDITABLE */ GDK_TYPE_COLOR, /* COLUMN_FILE_COLOR */ G_TYPE_POINTER /* COLUMN_FILE_POINTER_STRUCT */ ); var_file.Adr_Tree_Model = model = GTK_TREE_MODEL (store); var_file.Adr_TreeView = treeview = gtk_tree_view_new_with_model (model); gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (treeview), TRUE); gtk_tree_selection_set_mode (gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview)), GTK_SELECTION_MULTIPLE); // GTK_SELECTION_BROWSE MULTIPLE g_object_unref (model); gtk_container_add (GTK_CONTAINER (widget), treeview); file_add_columns_scrolledwindow (GTK_TREE_VIEW (treeview)); gtk_widget_show_all (widget); } // // void file_from_popup_select_verticaly (ETAT_SELECTION EtatSelection, TYPE_FILE_IS type_file_is) { DETAIL *detail = NULL; GtkTreeIter iter; gboolean valid; GdkPixbuf *Pixbuf = NULL; valid = gtk_tree_model_get_iter_first (var_file.Adr_Tree_Model, &iter); while (valid) { gtk_tree_model_get (var_file.Adr_Tree_Model, &iter, COLUMN_FILE_POINTER_STRUCT, &detail, -1); if (NULL != detail) { if (type_file_is == FILE_IS_FLAC) { if (EtatSelection == ETAT_PRG_NONE) detail->EtatSelection_Flac = ETAT_PRG_NONE; else if (EtatSelection == ETAT_SELECT) detail->EtatSelection_Flac = ETAT_ATTENTE_EXIST; else if (EtatSelection == ETAT_SELECT_EXPERT) detail->EtatSelection_Flac = ETAT_SELECT_EXIST; detail->EtatSelection_Flac = file_get_next_flag (detail, FILE_IS_FLAC); Pixbuf = file_get_pixbuf (detail, FILE_IS_FLAC); gtk_list_store_set (var_file.Adr_List_Store, &iter, COLUMN_FILE_FLAC, Pixbuf, -1); } else if (type_file_is == FILE_IS_WAV) { if (EtatSelection == ETAT_PRG_NONE) detail->EtatSelection_Wav = ETAT_PRG_NONE; else if (EtatSelection == ETAT_SELECT) detail->EtatSelection_Wav = ETAT_ATTENTE_EXIST; else if (EtatSelection == ETAT_SELECT_EXPERT) detail->EtatSelection_Wav = ETAT_SELECT_EXIST; detail->EtatSelection_Wav = file_get_next_flag (detail, FILE_IS_WAV); Pixbuf = file_get_pixbuf (detail, FILE_IS_WAV); gtk_list_store_set (var_file.Adr_List_Store, &iter, COLUMN_FILE_WAV, Pixbuf, -1); } else if (type_file_is == FILE_IS_MP3) { if (EtatSelection == ETAT_PRG_NONE) detail->EtatSelection_Mp3 = ETAT_PRG_NONE; else if (EtatSelection == ETAT_SELECT) detail->EtatSelection_Mp3 = ETAT_ATTENTE_EXIST; else if (EtatSelection == ETAT_SELECT_EXPERT) detail->EtatSelection_Mp3 = ETAT_SELECT_EXIST; detail->EtatSelection_Mp3 = file_get_next_flag (detail, FILE_IS_MP3); Pixbuf = file_get_pixbuf (detail, FILE_IS_MP3); gtk_list_store_set (var_file.Adr_List_Store, &iter, COLUMN_FILE_MP3, Pixbuf, -1); } else if (type_file_is == FILE_IS_OGG) { if (EtatSelection == ETAT_PRG_NONE) detail->EtatSelection_Ogg = ETAT_PRG_NONE; else if (EtatSelection == ETAT_SELECT) detail->EtatSelection_Ogg = ETAT_ATTENTE_EXIST; else if (EtatSelection == ETAT_SELECT_EXPERT) detail->EtatSelection_Ogg = ETAT_SELECT_EXIST; detail->EtatSelection_Ogg = file_get_next_flag (detail, FILE_IS_OGG); Pixbuf = file_get_pixbuf (detail, FILE_IS_OGG); gtk_list_store_set (var_file.Adr_List_Store, &iter, COLUMN_FILE_OGG, Pixbuf, -1); } else if (type_file_is == FILE_IS_M4A) { if (EtatSelection == ETAT_PRG_NONE) detail->EtatSelection_M4a = ETAT_PRG_NONE; else if (EtatSelection == ETAT_SELECT) detail->EtatSelection_M4a = ETAT_ATTENTE_EXIST; else if (EtatSelection == ETAT_SELECT_EXPERT) detail->EtatSelection_M4a = ETAT_SELECT_EXIST; detail->EtatSelection_M4a = file_get_next_flag (detail, FILE_IS_M4A); Pixbuf = file_get_pixbuf (detail, FILE_IS_M4A); gtk_list_store_set (var_file.Adr_List_Store, &iter, COLUMN_FILE_M4A, Pixbuf, -1); } else if (type_file_is == FILE_IS_AAC) { if (EtatSelection == ETAT_PRG_NONE) detail->EtatSelection_Aac = ETAT_PRG_NONE; else if (EtatSelection == ETAT_SELECT) detail->EtatSelection_Aac = ETAT_ATTENTE_EXIST; else if (EtatSelection == ETAT_SELECT_EXPERT) detail->EtatSelection_Aac = ETAT_SELECT_EXIST; detail->EtatSelection_Aac = file_get_next_flag (detail, FILE_IS_AAC); Pixbuf = file_get_pixbuf (detail, FILE_IS_AAC); gtk_list_store_set (var_file.Adr_List_Store, &iter, COLUMN_FILE_AAC, Pixbuf, -1); } else if (type_file_is == FILE_IS_MPC) { if (EtatSelection == ETAT_PRG_NONE) detail->EtatSelection_Mpc = ETAT_PRG_NONE; else if (EtatSelection == ETAT_SELECT) detail->EtatSelection_Mpc = ETAT_ATTENTE_EXIST; else if (EtatSelection == ETAT_SELECT_EXPERT) detail->EtatSelection_Mpc = ETAT_SELECT_EXIST; detail->EtatSelection_Mpc = file_get_next_flag (detail, FILE_IS_MPC); Pixbuf = file_get_pixbuf (detail, FILE_IS_MPC); gtk_list_store_set (var_file.Adr_List_Store, &iter, COLUMN_FILE_MPC, Pixbuf, -1); } else if (type_file_is == FILE_IS_APE) { if (EtatSelection == ETAT_PRG_NONE) detail->EtatSelection_Ape = ETAT_PRG_NONE; else if (EtatSelection == ETAT_SELECT) detail->EtatSelection_Ape = ETAT_ATTENTE_EXIST; else if (EtatSelection == ETAT_SELECT_EXPERT) detail->EtatSelection_Ape = ETAT_SELECT_EXIST; detail->EtatSelection_Ape = file_get_next_flag (detail, FILE_IS_APE); Pixbuf = file_get_pixbuf (detail, FILE_IS_APE); gtk_list_store_set (var_file.Adr_List_Store, &iter, COLUMN_FILE_APE, Pixbuf, -1); } else if (type_file_is == FILE_IS_WAVPACK) { if (EtatSelection == ETAT_PRG_NONE) detail->EtatSelection_WavPack = ETAT_PRG_NONE; else if (EtatSelection == ETAT_SELECT) detail->EtatSelection_WavPack = ETAT_ATTENTE_EXIST; else if (EtatSelection == ETAT_SELECT_EXPERT) detail->EtatSelection_WavPack = ETAT_SELECT_EXIST; detail->EtatSelection_WavPack = file_get_next_flag (detail, FILE_IS_WAVPACK); Pixbuf = file_get_pixbuf (detail, FILE_IS_WAVPACK); gtk_list_store_set (var_file.Adr_List_Store, &iter, COLUMN_FILE_WAVPACK, Pixbuf, -1); } } valid = gtk_tree_model_iter_next (var_file.Adr_Tree_Model, &iter); } file_set_flag_buttons (); } // // void file_from_popup_select_horizontaly (DETAIL *p_detail, ETAT_SELECTION EtatSelection) { DETAIL *detail = NULL; GtkTreeIter iter; gboolean valid; GdkPixbuf *Pixbuf = NULL; valid = gtk_tree_model_get_iter_first (var_file.Adr_Tree_Model, &iter); while (valid) { gtk_tree_model_get (var_file.Adr_Tree_Model, &iter, COLUMN_FILE_POINTER_STRUCT, &detail, -1); if (NULL != detail && p_detail == detail) { if (EtatSelection == ETAT_PRG_NONE) detail->EtatSelection_Wav = ETAT_PRG_NONE; else if (EtatSelection == ETAT_SELECT) detail->EtatSelection_Wav = ETAT_ATTENTE_EXIST; else if (EtatSelection == ETAT_SELECT_EXPERT) detail->EtatSelection_Wav = ETAT_SELECT_EXIST; if (EtatSelection == ETAT_PRG_NONE) detail->EtatSelection_Flac = ETAT_PRG_NONE; else if (EtatSelection == ETAT_SELECT) detail->EtatSelection_Flac = ETAT_ATTENTE_EXIST; else if (EtatSelection == ETAT_SELECT_EXPERT) detail->EtatSelection_Flac = ETAT_SELECT_EXIST; if (EtatSelection == ETAT_PRG_NONE) detail->EtatSelection_Ape = ETAT_PRG_NONE; else if (EtatSelection == ETAT_SELECT) detail->EtatSelection_Ape = ETAT_ATTENTE_EXIST; else if (EtatSelection == ETAT_SELECT_EXPERT) detail->EtatSelection_Ape = ETAT_SELECT_EXIST; if (EtatSelection == ETAT_PRG_NONE) detail->EtatSelection_WavPack = ETAT_PRG_NONE; else if (EtatSelection == ETAT_SELECT) detail->EtatSelection_WavPack = ETAT_ATTENTE_EXIST; else if (EtatSelection == ETAT_SELECT_EXPERT) detail->EtatSelection_WavPack = ETAT_SELECT_EXIST; if (EtatSelection == ETAT_PRG_NONE) detail->EtatSelection_Ogg = ETAT_PRG_NONE; else if (EtatSelection == ETAT_SELECT) detail->EtatSelection_Ogg = ETAT_ATTENTE_EXIST; else if (EtatSelection == ETAT_SELECT_EXPERT) detail->EtatSelection_Ogg = ETAT_SELECT_EXIST; if (EtatSelection == ETAT_PRG_NONE) detail->EtatSelection_M4a = ETAT_PRG_NONE; else if (EtatSelection == ETAT_SELECT) detail->EtatSelection_M4a = ETAT_ATTENTE_EXIST; else if (EtatSelection == ETAT_SELECT_EXPERT) detail->EtatSelection_M4a = ETAT_SELECT_EXIST; if (EtatSelection == ETAT_PRG_NONE) detail->EtatSelection_Aac = ETAT_PRG_NONE; else if (EtatSelection == ETAT_SELECT) detail->EtatSelection_Aac = ETAT_ATTENTE_EXIST; else if (EtatSelection == ETAT_SELECT_EXPERT) detail->EtatSelection_Aac = ETAT_SELECT_EXIST; if (EtatSelection == ETAT_PRG_NONE) detail->EtatSelection_Mpc = ETAT_PRG_NONE; else if (EtatSelection == ETAT_SELECT) detail->EtatSelection_Mpc = ETAT_ATTENTE_EXIST; else if (EtatSelection == ETAT_SELECT_EXPERT) detail->EtatSelection_Mpc = ETAT_SELECT_EXIST; if (EtatSelection == ETAT_PRG_NONE) detail->EtatSelection_Mp3 = ETAT_PRG_NONE; else if (EtatSelection == ETAT_SELECT) detail->EtatSelection_Mp3 = ETAT_ATTENTE_EXIST; else if (EtatSelection == ETAT_SELECT_EXPERT) detail->EtatSelection_Mp3 = ETAT_SELECT_EXIST; detail->EtatSelection_Flac = file_get_next_flag (detail, FILE_IS_FLAC); detail->EtatSelection_Wav = file_get_next_flag (detail, FILE_IS_WAV); detail->EtatSelection_Mp3 = file_get_next_flag (detail, FILE_IS_MP3); detail->EtatSelection_Ogg = file_get_next_flag (detail, FILE_IS_OGG); detail->EtatSelection_M4a = file_get_next_flag (detail, FILE_IS_M4A); detail->EtatSelection_Aac = file_get_next_flag (detail, FILE_IS_AAC); detail->EtatSelection_Mpc = file_get_next_flag (detail, FILE_IS_MPC); detail->EtatSelection_Ape = file_get_next_flag (detail, FILE_IS_APE); detail->EtatSelection_WavPack = file_get_next_flag (detail, FILE_IS_WAVPACK); Pixbuf = file_get_pixbuf (detail, FILE_IS_FLAC); gtk_list_store_set (var_file.Adr_List_Store, &iter, COLUMN_FILE_FLAC, Pixbuf, -1); Pixbuf = file_get_pixbuf (detail, FILE_IS_WAV); gtk_list_store_set (var_file.Adr_List_Store, &iter, COLUMN_FILE_WAV, Pixbuf, -1); Pixbuf = file_get_pixbuf (detail, FILE_IS_MP3); gtk_list_store_set (var_file.Adr_List_Store, &iter, COLUMN_FILE_MP3, Pixbuf, -1); Pixbuf = file_get_pixbuf (detail, FILE_IS_OGG); gtk_list_store_set (var_file.Adr_List_Store, &iter, COLUMN_FILE_OGG, Pixbuf, -1); Pixbuf = file_get_pixbuf (detail, FILE_IS_M4A); gtk_list_store_set (var_file.Adr_List_Store, &iter, COLUMN_FILE_M4A, Pixbuf, -1); Pixbuf = file_get_pixbuf (detail, FILE_IS_AAC); gtk_list_store_set (var_file.Adr_List_Store, &iter, COLUMN_FILE_AAC, Pixbuf, -1); Pixbuf = file_get_pixbuf (detail, FILE_IS_MPC); gtk_list_store_set (var_file.Adr_List_Store, &iter, COLUMN_FILE_MPC, Pixbuf, -1); Pixbuf = file_get_pixbuf (detail, FILE_IS_APE); gtk_list_store_set (var_file.Adr_List_Store, &iter, COLUMN_FILE_APE, Pixbuf, -1); Pixbuf = file_get_pixbuf (detail, FILE_IS_WAVPACK); gtk_list_store_set (var_file.Adr_List_Store, &iter, COLUMN_FILE_WAVPACK, Pixbuf, -1); file_set_flag_buttons (); return; } valid = gtk_tree_model_iter_next (var_file.Adr_Tree_Model, &iter); } } // // void file_from_popup_clear (void) { DETAIL *detail = NULL; GtkTreeIter iter; gboolean valid; GdkPixbuf *Pixbuf = NULL; valid = gtk_tree_model_get_iter_first (var_file.Adr_Tree_Model, &iter); while (valid) { gtk_tree_model_get (var_file.Adr_Tree_Model, &iter, COLUMN_FILE_POINTER_STRUCT, &detail, -1); if (NULL != detail) { detail->EtatSelection_Wav = ETAT_SELECT_EXPERT; detail->EtatSelection_Wav = file_get_next_flag (detail, FILE_IS_WAV); Pixbuf = file_get_pixbuf (detail, FILE_IS_WAV); gtk_list_store_set (var_file.Adr_List_Store, &iter, COLUMN_FILE_WAV, Pixbuf, -1); detail->EtatSelection_Flac = ETAT_SELECT_EXPERT; detail->EtatSelection_Flac = file_get_next_flag (detail, FILE_IS_FLAC); Pixbuf = file_get_pixbuf (detail, FILE_IS_FLAC); gtk_list_store_set (var_file.Adr_List_Store, &iter, COLUMN_FILE_FLAC, Pixbuf, -1); detail->EtatSelection_Ape = ETAT_SELECT_EXPERT; detail->EtatSelection_Ape = file_get_next_flag (detail, FILE_IS_APE); Pixbuf = file_get_pixbuf (detail, FILE_IS_APE); gtk_list_store_set (var_file.Adr_List_Store, &iter, COLUMN_FILE_APE, Pixbuf, -1); detail->EtatSelection_WavPack = ETAT_SELECT_EXPERT; detail->EtatSelection_WavPack = file_get_next_flag (detail, FILE_IS_WAVPACK); Pixbuf = file_get_pixbuf (detail, FILE_IS_WAVPACK); gtk_list_store_set (var_file.Adr_List_Store, &iter, COLUMN_FILE_WAVPACK, Pixbuf, -1); detail->EtatSelection_Ogg = ETAT_SELECT_EXPERT; detail->EtatSelection_Ogg = file_get_next_flag (detail, FILE_IS_OGG); Pixbuf = file_get_pixbuf (detail, FILE_IS_OGG); gtk_list_store_set (var_file.Adr_List_Store, &iter, COLUMN_FILE_OGG, Pixbuf, -1); detail->EtatSelection_M4a = ETAT_SELECT_EXPERT; detail->EtatSelection_M4a = file_get_next_flag (detail, FILE_IS_M4A); Pixbuf = file_get_pixbuf (detail, FILE_IS_M4A); gtk_list_store_set (var_file.Adr_List_Store, &iter, COLUMN_FILE_M4A, Pixbuf, -1); detail->EtatSelection_Aac = ETAT_SELECT_EXPERT; detail->EtatSelection_Aac = file_get_next_flag (detail, FILE_IS_AAC); Pixbuf = file_get_pixbuf (detail, FILE_IS_AAC); gtk_list_store_set (var_file.Adr_List_Store, &iter, COLUMN_FILE_AAC, Pixbuf, -1); detail->EtatSelection_Mpc = ETAT_SELECT_EXPERT; detail->EtatSelection_Mpc = file_get_next_flag (detail, FILE_IS_MPC); Pixbuf = file_get_pixbuf (detail, FILE_IS_MPC); gtk_list_store_set (var_file.Adr_List_Store, &iter, COLUMN_FILE_MPC, Pixbuf, -1); detail->EtatSelection_Mp3 = ETAT_SELECT_EXPERT; detail->EtatSelection_Mp3 = file_get_next_flag (detail, FILE_IS_MP3); Pixbuf = file_get_pixbuf (detail, FILE_IS_MP3); gtk_list_store_set (var_file.Adr_List_Store, &iter, COLUMN_FILE_MP3, Pixbuf, -1); } valid = gtk_tree_model_iter_next (var_file.Adr_Tree_Model, &iter); } file_set_flag_buttons (); } // // void file_from_popup_replaygain (ETAT_REPLAYGAIN EtatReplayGain) { GtkTreeIter iter; gboolean valid; DETAIL *detail = NULL; valid = gtk_tree_model_get_iter_first (var_file.Adr_Tree_Model, &iter); while (valid) { gtk_tree_model_get (var_file.Adr_Tree_Model, &iter, COLUMN_FILE_POINTER_STRUCT, &detail, -1); if (NULL != detail) { if (detail->type_infosong_file_is == FILE_IS_FLAC || detail->type_infosong_file_is == FILE_IS_MP3 || detail->type_infosong_file_is == FILE_IS_OGG || detail->type_infosong_file_is == FILE_IS_WAVPACK) { detail->Etat_ReplayGain = EtatReplayGain; gtk_list_store_set ( var_file.Adr_List_Store, &iter, COLUMN_FILE_REPLAYGAIN, file_get_pixbuf_replaygain (detail, FALSE), -1); } } valid = gtk_tree_model_iter_next (var_file.Adr_Tree_Model, &iter); } file_set_flag_buttons (); } // // void file_from_popup_trash (gboolean BoolSelect) { GtkTreeIter iter; gboolean valid; DETAIL *detail = NULL; valid = gtk_tree_model_get_iter_first (var_file.Adr_Tree_Model, &iter); while (valid) { gtk_tree_model_get (var_file.Adr_Tree_Model, &iter, COLUMN_FILE_POINTER_STRUCT, &detail, -1); if (NULL != detail) { if (BoolSelect == TRUE) detail->EtatTrash = FILE_TRASH_OK; else detail->EtatTrash = FILE_TRASH_NONE; gtk_list_store_set ( var_file.Adr_List_Store, &iter, COLUMN_FILE_TRASH, file_get_pixbuf_trash (detail), -1); } valid = gtk_tree_model_iter_next (var_file.Adr_Tree_Model, &iter); } file_set_flag_buttons (); } // // void file_from_popup (TYPE_SET_FROM_POPUP_FILE TypeSetFromPopup, DETAIL *detail, TYPE_FILE_IS TypeFileIs) { switch (TypeSetFromPopup) { // SELECTION ou DESELECTION POUR LES ICONES DE CONVERSIONS case FILE_CONV_DESELECT_ALL : // Deselection globale file_from_popup_clear (); break; case FILE_CONV_DESELECT_V : // Deselection verticale file_from_popup_select_verticaly (ETAT_PRG_NONE, TypeFileIs); break; case FILE_CONV_DESELECT_H : // Deselection horizontale file_from_popup_select_horizontaly (detail, ETAT_PRG_NONE); break; case FILE_CONV_SELECT_V : // Selection verticale file_from_popup_select_verticaly (ETAT_SELECT, TypeFileIs); break; case FILE_CONV_SELECT_EXPERT_V : // Selection Expert verticale file_from_popup_select_verticaly (ETAT_SELECT_EXPERT, TypeFileIs); break; case FILE_CONV_SELECT_H : // Selection horizontale file_from_popup_select_horizontaly (detail, ETAT_SELECT); break; case FILE_CONV_SELECT_EXPERT_H : // Selection Expert horizontale file_from_popup_select_horizontaly (detail, ETAT_SELECT_EXPERT); break; // SELECTION ou DESELECTION POUR LES ICONES DE REPLAYGAIN case FILE_REPLAYGAIN_DESELECT_V : // Deselection verticale file_from_popup_replaygain (RPG_ATTENTE); break; case FILE_REPLAYGAIN_SELECT_PISTE : // Selection PISTE file_from_popup_replaygain (RPG_PISTE); break; case FILE_REPLAYGAIN_SELECT_ALBUM : // Selection ALBUM file_from_popup_replaygain (RPG_ALBUM); break; case FILE_REPLAYGAIN_SELECT_NETTOYER : // Selection NETTOYER file_from_popup_replaygain (RPG_EFFACER); break; // SELECTION ou DESELECTION POUR TRASH case FILE_TRASH_DESELECT_V : // Deselection verticale file_from_popup_trash (FALSE); break; case FILE_TRASH_SELECT_V : // Selection verticale file_from_popup_trash (TRUE); break; // SELECTION ou DESELECTION POUR FREQUENCES VOIE BITS case FILEWAV_FREQUENCY_CELL_HERTZ : case FILEWAV_TRACK_CELL : case FILEWAV_QUANTIFICATION_CELL : break; } } xcfa-4.3.6/src/tags_mp3.c0000644000175000017500000001447712122563465012061 00000000000000 /* * file : tags_mp3.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #include #include #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "tags.h" #include #include "get_info.h" /* *--------------------------------------------------------------------------- * VARIABLES *--------------------------------------------------------------------------- */ typedef struct { gchar magic[ 3 ]; gchar songname[ 30 ]; gchar artist[ 30 ]; gchar album[ 30 ]; gchar year[ 4 ]; gchar note[ 28 ]; unsigned char nnull; unsigned char track; unsigned char style; } ID3TAG; /* *--------------------------------------------------------------------------- * GET HEADER *--------------------------------------------------------------------------- */ INFO_MP3 *tagsmp3_remove_info (INFO_MP3 *info) { if (NULL != info) { if (NULL != info->bitrate) { g_free (info->bitrate); info->bitrate = NULL; } if (NULL != info->time) { g_free (info->time); info->time = NULL; } if (NULL != info->size) { g_free (info->size); info->size = NULL; } info->tags = (TAGS *)tags_remove (info->tags); g_free (info); info = NULL; } return ((INFO_MP3 *)NULL); } /* MPEG-1 layer III sample frequencies (kHz): 32 48 44.1 bitrates (kbit/s): 32 40 48 56 64 80 96 112 128 160 192 224 256 320 MPEG-2 layer III sample frequencies (kHz): 16 24 22.05 bitrates (kbit/s): 8 16 24 32 40 48 56 64 80 96 112 128 144 160 MPEG-2.5 layer III sample frequencies (kHz): 8 12 11.025 bitrates (kbit/s): 8 16 24 32 40 48 56 64 80 96 112 128 144 160 -1 0 1 2 */ gint tagsmp3_type_mpeg (gchar *namefile) { gchar *Lout = NULL; gchar *ptr = NULL; #define MAX_STR 256 static gchar str [ MAX_STR + 4 ]; gint cpt = 0; gchar *term[] = {"MPV_1", "MPV_2", "MPV_25"}; gint i; GString *gstr = NULL; gint Ret = NONE_MPEG; // NONE_MPEG = -1 if (NULL == (gstr = GetInfo_checkmp3 (namefile))) { return (-1); } Lout = gstr->str; for (i = 0; i < 3; i ++) { if ((ptr = strstr (Lout, term[ i ]))) { /* Init la chaine de stockage */ for (cpt=0; cpt < MAX_STR; cpt++) str [ cpt ] = '\0'; /* Passe l'intro */ while (*ptr != ' ') ptr ++; while (*ptr == ' ') ptr ++; /* Copie */ cpt = 0; while (*ptr != '\n') { if (cpt > MAX_STR) break; str [ cpt ++ ] = *ptr ++; } str [ cpt ] = '\0'; switch ( i ) { case 0 : // g_print ("----------------------------MPV_1 str=%s\n", str); if (str[0] == '1') Ret = MPEG_1; // MPEG_1 = 0 break; case 1 : // g_print ("----------------------------MPV_2 str=%s\n", str); if (str[0] == '1') Ret = MPEG_2; // MPEG_2 = 1 break; case 2 : // g_print ("----------------------------MPV_25 str=%s\n", str); if (str[0] == '1') Ret = MPEG_25; // MPEG_25 = 2 break; } if (Ret > -1) break; } } g_string_free (gstr, TRUE); Lout = NULL; return (Ret); } INFO_MP3 *tagsmp3_get_info (DETAIL *detail) { INFO_MP3 *ptrinfo = NULL; TagLib_File *file; TagLib_Tag *tag; const TagLib_AudioProperties *properties; gint m; gint s; gint sec; /* PRINT_FUNC_LF();*/ ptrinfo = (INFO_MP3 *)g_malloc0 (sizeof (INFO_MP3)); if (ptrinfo == NULL) return (NULL); ptrinfo->tags = (TAGS *)tags_alloc (FALSE); if ((file = taglib_file_new (detail->namefile))) { taglib_set_strings_unicode(FALSE); tag = taglib_file_tag(file); properties = taglib_file_audioproperties(file); ptrinfo->tags->Title = g_strdup (taglib_tag_title(tag)); // ptrinfo->tags->Title = utils_convert_string (taglib_tag_title(tag), TRUE); ptrinfo->tags->Artist = g_strdup (taglib_tag_artist(tag)); // ptrinfo->tags->Artist = utils_convert_string (taglib_tag_artist(tag), TRUE); ptrinfo->tags->Album = g_strdup (taglib_tag_album(tag)); // ptrinfo->tags->Album = utils_convert_string (taglib_tag_album(tag), TRUE); ptrinfo->tags->IntYear = taglib_tag_year(tag); ptrinfo->tags->Year = g_strdup_printf ("%d", ptrinfo->tags->IntYear); ptrinfo->tags->Comment = g_strdup (taglib_tag_comment(tag)); // ptrinfo->tags->Comment = utils_convert_string (taglib_tag_comment(tag), TRUE); ptrinfo->tags->IntNumber = taglib_tag_track(tag); ptrinfo->tags->Number = g_strdup_printf ("%d", ptrinfo->tags->IntNumber); ptrinfo->tags->Genre = g_strdup (taglib_tag_genre(tag)); // ptrinfo->tags->Genre = utils_convert_string (taglib_tag_genre(tag), TRUE); ptrinfo->tags->IntGenre = tags_get_genre_by_value (ptrinfo->tags->Genre); ptrinfo->SecTime = sec = taglib_audioproperties_length(properties); s = sec % 60; sec /= 60; m = sec % 60; sec /= 60; if (sec > 0) ptrinfo->time = g_strdup_printf ("%02d:%02d:%02d", sec, m, s); else ptrinfo->time = g_strdup_printf ("%02d:%02d", m, s); ptrinfo->bitrate = g_strdup_printf ("%d", taglib_audioproperties_bitrate(properties)); ptrinfo->mpeg_is = tagsmp3_type_mpeg (detail->namefile); ptrinfo->size = g_strdup_printf ("%d Ko", (gint)libutils_get_size_file (detail->namefile) / 1024); taglib_tag_free_strings(); taglib_file_free (file); } /* ptrinfo->level = level_get_from (FILE_IS_MP3, namefile); g_print ("%s\t%d\n", namefile, ptrinfo->level); */ ptrinfo->LevelDbfs.level = -1; ptrinfo->LevelDbfs.NewLevel = -1; return (ptrinfo); } xcfa-4.3.6/src/options_aacplusenc.c0000644000175000017500000000703112122563465014221 00000000000000 /* * file : options_aacplusenc.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "configuser.h" #include "options.h" static gint Tab_bitrate_mono [] = { 10, 12, 14, 18, 20, 24, 32, 40 }; static gint Tab_bitrate_stereo [] = { 18, 24, 32, 40, 48 }; // // gint optionsaacplusenc_get_bitrate_mono (void) { return (Tab_bitrate_mono [ gtk_combo_box_get_active (var_options.Adr_Widget_aacplusenc_mono) ]); } // // gint optionsaacplusenc_get_bitrate_stereo (void) { return (Tab_bitrate_stereo [ gtk_combo_box_get_active (var_options.Adr_Widget_aacplusenc_stereo) ]); } // // void on_combobox_accplusenc_mono_realize (GtkWidget *widget, gpointer user_data) { libcombo_alloc (GTK_COMBO_BOX (widget)); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "10"); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "12"); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "14"); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "18"); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "20"); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "24"); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "32"); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "40"); gtk_combo_box_set_active (GTK_COMBO_BOX (widget), Config.ChoiceMonoAacplusenc); var_options.Adr_Widget_aacplusenc_mono = GTK_COMBO_BOX (widget); } // // void on_combobox_accplusenc_mono_changed (GtkComboBox *combobox, gpointer user_data) { if (NULL != var_options.Adr_Widget_aacplusenc_mono) { gint ind; if ((ind = gtk_combo_box_get_active (GTK_COMBO_BOX (var_options.Adr_Widget_aacplusenc_mono))) >= 0) Config.ChoiceMonoAacplusenc = ind; } } // // void on_combobox_accplusenc_stereo_realize (GtkWidget *widget, gpointer user_data) { libcombo_alloc (GTK_COMBO_BOX (widget)); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "18"); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "24"); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "32"); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "40"); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "48"); gtk_combo_box_set_active (GTK_COMBO_BOX (widget), Config.ChoiceStereoAacplusenc); var_options.Adr_Widget_aacplusenc_stereo = GTK_COMBO_BOX (widget); } // // void on_combobox_accplusenc_stereo_changed (GtkComboBox *combobox, gpointer user_data) { if (NULL != var_options.Adr_Widget_aacplusenc_stereo) { gint ind; if ((ind = gtk_combo_box_get_active (GTK_COMBO_BOX (var_options.Adr_Widget_aacplusenc_stereo))) >= 0) Config.ChoiceStereoAacplusenc = ind; } } xcfa-4.3.6/src/dvd_extract.c0000644000175000017500000003102312162646407012637 00000000000000 /* * file : dvd_extract.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #include #include #include #include #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "notify_send.h" #include "configuser.h" #include "dvd.h" #include "prg_init.h" #include "win_scan.h" #include "file.h" #include "conv.h" #include "tags.h" /* *--------------------------------------------------------------------------- * VARIABLES *--------------------------------------------------------------------------- */ typedef struct { gboolean bool_end_pthread; guint Handler_Timeout; gboolean bool_update; gint total_file; gint file_active; gboolean bool_mess; gboolean BoolListIsPeakAlbum; gint TTNormPeak; /* Nombre total de Peak */ gint TTNormPeakCollectif; /* Nombre total de Peak Collectif */ } VAR_DVDEXTRACT; VAR_DVDEXTRACT VarDvdextract; /* *--------------------------------------------------------------------------- * EXTERN *--------------------------------------------------------------------------- */ extern int kill (pid_t pid, int sig); // // void dvdextract_get_total_extraction (void) { GList *list = NULL; gchar *ptr = NULL; VarDvdextract.total_file = 0; list = g_list_first (GlistDvdExtract); while (list) { if ((ptr = (gchar *)list->data)) { VarDvdextract.total_file ++; } list = g_list_next (list); } } // // gchar *dvdextract_get_name_in_list (GList *p_list) { GList *list = NULL; gchar *ptr = NULL; list = g_list_first (p_list); while (list) { if ((ptr = (gchar *)list->data)) { if (strstr (ptr, "pcm:file=")) { return ((gchar *)ptr); } } list = g_list_next(list); } return ((gchar *)NULL); } // // gchar **dvdextract_set_arg( GList *p_list ) { GList *list = NULL; gchar *ptr = NULL; gint pos = 0; gchar **PtrTabArgs = NULL; PtrTabArgs = filelc_AllocTabArgs(); list = g_list_first (p_list); while (list) { if ((ptr = (gchar *)list->data)) { PtrTabArgs [ pos++ ] = g_strdup (ptr); } list = g_list_next(list); } PtrTabArgs [ pos++ ] = NULL; return( (gchar **)PtrTabArgs ); } // // void *dvdextract_pthread (void *data) { GList *listOne = NULL; NEW_DVD_EXTRACT *StructDvdExtract = NULL; /*gint value_fix;*/ gint pos; gchar **PtrTabArgs = NULL; gboolean RetConvert; PRINT_FUNC_LF(); VarDvdextract.bool_end_pthread = FALSE; listOne = g_list_first (GlistDvdExtract); while (FALSE == conv.bool_stop && listOne) { if (NULL != (StructDvdExtract = (NEW_DVD_EXTRACT *)listOne->data)) { VarDvdextract.file_active ++; VarDvdextract.bool_mess = TRUE; if( TRUE == OptionsCommandLine.BoolVerboseMode ) { g_print ("****** Pathname **********************\n"); g_print ("%s\n", StructDvdExtract->Path); g_print ("**************************************\n"); g_print ("\n"); } PtrTabArgs = dvdextract_set_arg( (GList *)StructDvdExtract->list ); RetConvert = conv_to_convert( PtrTabArgs, FALSE, MPLAYER_AUDIO_TO_WAV, "NEW:-> MPLAYER_AUDIO_TO_WAV" ); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); if( FALSE == conv.bool_stop && TRUE == RetConvert ) { VarDvdextract.bool_update = TRUE; StructDvdExtract->Var->EtatChoix = _COCHE_; // MPLAYER PtrTabArgs = filelc_AllocTabArgs(); pos = 3; PtrTabArgs [ pos++ ] = g_strdup ("mplayer"); PtrTabArgs [ pos++ ] = g_strdup ("-nojoystick"); PtrTabArgs [ pos++ ] = g_strdup ("-nolirc"); PtrTabArgs [ pos++ ] = g_strdup (StructDvdExtract->Path); PtrTabArgs [ pos++ ] = g_strdup ("-ao"); PtrTabArgs [ pos++ ] = g_strdup ("pcm"); PtrTabArgs [ pos++ ] = g_strdup ("-ao"); PtrTabArgs [ pos++ ] = g_strdup ("pcm:file=/tmp/toto.wav"); PtrTabArgs [ pos++ ] = g_strdup ("-srate"); PtrTabArgs [ pos++ ] = g_strdup ("44100"); PtrTabArgs [ pos++ ] = NULL; conv_to_convert( PtrTabArgs, FALSE, MPLAYER_WAV_TO_WAV, "MPLAYER_WAV_TO_WAV"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); conv_copy_src_to_dest ("/tmp/toto.wav", StructDvdExtract->Path); g_unlink ("/tmp/toto.wav"); // PEAK // if (FALSE == conv.bool_stop && TRUE == StructDvdExtract->Var->EtatNormalise && FALSE == VarDvdextract.BoolListIsPeakAlbum) { WindScan_set_label (StructDvdExtract->Path); VarDvdextract.TTNormPeak ++; PtrTabArgs = filelc_AllocTabArgs(); pos = 3; PtrTabArgs [ pos++ ] = g_strdup (prginit_get_name (NMR_normalize)); PtrTabArgs [ pos++ ] = g_strdup ("--peak"); PtrTabArgs [ pos++ ] = g_strdup ("--"); PtrTabArgs [ pos++ ] = g_strdup (StructDvdExtract->Path); PtrTabArgs [ pos++ ] = NULL; conv_to_convert( PtrTabArgs, FALSE, NORMALISE_EXEC, "NORMALISE_EXEC Wav -> Peak"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); PRINT("TRAITEMENT NORMALISE PEAK OK"); StructDvdExtract->Var->EtatNormalise = FALSE; VarDvdextract.bool_update = TRUE; } } else { gchar *ptr = NULL; if( TRUE == OptionsCommandLine.BoolVerboseMode ) { g_print ("\n"); g_print ("---------------------------\n"); g_print ("SORTIE PAR: Audio: no sound\n"); g_print ("---------------------------\n"); g_print ("\n"); } var_dvd.bool_err = 3; if ((ptr = strrchr (dvdextract_get_name_in_list ((GList *)StructDvdExtract->list), '/'))) { if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("%s\n", dvdextract_get_name_in_list ((GList *)StructDvdExtract->list)); ptr ++; if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("%s\n", ptr); } } if (TRUE == conv.bool_stop) { g_unlink (StructDvdExtract->Path); if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("\n\nARRET PAR L'UTILISATEUR.\n\tSuppression du fichier\n\t[%s]\n", StructDvdExtract->Path); break; } } listOne = g_list_next (listOne); } if (FALSE == conv.bool_stop && VarDvdextract.BoolListIsPeakAlbum == TRUE) { listOne = g_list_first (GlistDvdExtract); while (listOne) { if (NULL != (StructDvdExtract = (NEW_DVD_EXTRACT *)listOne->data)) { if (TRUE == conv.bool_stop) break; // PEAK ALBUM // if (FALSE == conv.bool_stop && StructDvdExtract->Var->EtatNormalise == TRUE) { VarDvdextract.TTNormPeakCollectif ++; if (var_dvd.TTNormPeakCollectif == VarDvdextract.TTNormPeakCollectif) { GList *List = NULL; NEW_DVD_EXTRACT *StructExtract = NULL; if (FALSE == conv.bool_stop) { // -- CHERCHER LA MOYENNE PEAK PtrTabArgs = filelc_AllocTabArgs(); pos = 3; PtrTabArgs [ pos++ ] = g_strdup (prginit_get_name (NMR_normalize)); PtrTabArgs [ pos++ ] = g_strdup ("-n"); // -- AJOUTER LA LISTE DES FICHIERS List = g_list_first (GlistDvdExtract); while (List) { if ((StructExtract = (NEW_DVD_EXTRACT *)List->data) && StructExtract->EtatNormalise == TRUE) { PtrTabArgs [ pos++ ] = g_strdup (StructDvdExtract->Path); } List = g_list_next(List); } PtrTabArgs [ pos++ ] = NULL; conv_to_convert( PtrTabArgs, FALSE, NORMALISE_GET_LEVEL, "NORMALISE_GET_LEVEL TEST -> PEAK/GROUP"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); } if (FALSE == conv.bool_stop) { // -- APPLIQUER LA MOYENNE PEAK-GROUP PtrTabArgs = filelc_AllocTabArgs(); pos = 3; PtrTabArgs [ pos++ ] = g_strdup (prginit_get_name (NMR_normalize)); PtrTabArgs [ pos++ ] = g_strdup_printf ("--gain=%fdB", conv.value_PEAK_RMS_GROUP_ARGS); // -- AJOUTER LA LISTE DES FICHIERS List = g_list_first (GlistDvdExtract); while (List) { if ((StructExtract = (NEW_DVD_EXTRACT *)List->data) && StructExtract->EtatNormalise == TRUE) { PtrTabArgs [ pos++ ] = g_strdup (StructExtract->Path); StructExtract->Var->EtatNormalise = FALSE; } List = g_list_next(List); } PtrTabArgs [ pos++ ] = NULL; conv_to_convert( PtrTabArgs, FALSE, NORMALISE_EXEC, "NORMALISE_EXEC Wav -> PEAK/GROUP"); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); PRINT("TRAITEMENT NORMALISE PEAK_COLLECTIF OK"); } VarDvdextract.bool_update = TRUE; } } } listOne = g_list_next (listOne); } } // close(conv.tube_conv [ 0 ]); VarDvdextract.bool_end_pthread = TRUE; pthread_exit (0); } // // static gint dvdextract_timeout (gpointer data) { if (TRUE == conv.BoolIsExtract || TRUE == conv.BoolIsConvert || TRUE == conv.BoolIsCopy || TRUE == conv.BoolIsNormalise || TRUE == conv.BoolIsReplaygain) { gchar Str [ 200 ]; Str [ 0 ] = '\0'; if (TRUE == conv.BoolIsExtract) { strcat (Str, "Extraction "); } if (TRUE == conv.BoolIsConvert) { strcat (Str, "Conversion "); } if (TRUE == conv.BoolIsCopy) { strcat (Str, "Copie "); } if (TRUE == conv.BoolIsNormalise) { strcat (Str, "Normalise "); } if (TRUE == conv.BoolIsReplaygain) { strcat (Str, "Replaygain"); } WindScan_set_label (Str); } if (TRUE == VarDvdextract.bool_update) { VarDvdextract.bool_update = FALSE; dvd_update (); } if (TRUE == VarDvdextract.bool_end_pthread) { NEW_DVD_EXTRACT *StructDvdExtract = NULL; GList *listOne = NULL; GList *listTwo = NULL; gchar *ptr = NULL; gtk_timeout_remove (VarDvdextract.Handler_Timeout); WindScan_close (); if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("Suppression des structures\n"); listOne = g_list_first (GlistDvdExtract); while (listOne) { if ((StructDvdExtract = (NEW_DVD_EXTRACT *)listOne->data)) { listTwo = g_list_first (StructDvdExtract->list); while (listTwo) { if ((ptr = (gchar *)listTwo->data)) { g_free (ptr); ptr = NULL; listTwo->data = NULL; } listTwo = g_list_next (listTwo); } g_free (StructDvdExtract->Path); StructDvdExtract->Path = NULL; g_list_free (StructDvdExtract->list); StructDvdExtract->list = NULL; g_free (StructDvdExtract); StructDvdExtract = NULL; listOne->data = NULL; } listOne = g_list_next (listOne); } g_list_free (GlistDvdExtract); GlistDvdExtract = NULL; dvd_set_flag_buttons_dvd (); if (FALSE == conv.bool_stop) { NotifySend_msg (_("XCFA: Extraction DVD"), _("Ok"), conv.bool_stop); } else { NotifySend_msg (_("XCFA: Extraction DVD"), _("Arret par l'utilisateur"), conv.bool_stop); } } else if (TRUE == VarDvdextract.bool_mess) { gchar *str = NULL; VarDvdextract.bool_mess = FALSE; str = g_strdup_printf ("mplayer dvd -> wav %d / %d", VarDvdextract.file_active, VarDvdextract.total_file); WindScan_set_label_bar (str); g_free (str); str = NULL; } return (TRUE); } // // void dvdextract_dvd_to_file (void) { pthread_t nmr_tid; conv_reset_struct (WindScan_close_request); VarDvdextract.total_file = 0; VarDvdextract.file_active = 0; dvdextract_get_total_extraction (); VarDvdextract.bool_mess = TRUE; VarDvdextract.TTNormPeak = 0; VarDvdextract.TTNormPeakCollectif = 0; VarDvdextract.bool_update = TRUE; VarDvdextract.BoolListIsPeakAlbum = dvd_get_value_normalise_dvd () == 0 ? TRUE : FALSE; WindScan_open ("Extract With Mplayer", WINDSCAN_PULSE); WindScan_set_label ("Extraction en cours ..."); VarDvdextract.bool_end_pthread = FALSE; VarDvdextract.Handler_Timeout = gtk_timeout_add (100, dvdextract_timeout, 0); pthread_create (&nmr_tid, NULL ,(void *)dvdextract_pthread, (void *)NULL); // DEBUG // pthread_detach (nmr_tid); } xcfa-4.3.6/src/dragNdrop.h0000644000175000017500000000220612122563437012253 00000000000000 /* * file : dragNdrop.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifndef dragNdrop_h #define dragNdrop_h 1 #include extern const GtkTargetEntry drag_types []; extern gint n_drag_types; void dragndrop_list_drag_data (GtkWidget *widget, gchar *string); gchar *dragndrop_xcfa_convert_utf8 (gchar *Texte); #endif xcfa-4.3.6/src/cd_cue.h0000644000175000017500000000460312122563437011560 00000000000000 /* * file : cd_cue.h * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifndef cd_cue_h #define cd_cue_h 1 typedef struct { gint total; gint min; gint sec; gint cent; } CUE_TIME; typedef struct { // 1. length 12375 [02:45:00] begin 32 [00:00:32] gint Len; // gint Start; // gint StartMin; // gint StartSec; // gint StartCent; // } CDCUE_PARTIEL; typedef struct { gchar *Performer; // gchar *Title; // gboolean BoolExtract; // TRUE si extraction gchar *Partiel_Title; // CUE_TIME EndTime; // CUE_TIME BeginTime; // CDCUE_PARTIEL CuePartiel; // } CDCUE; // length DIV 75 // DIV 60 = Min // MOD 60 = Sec // length MOD 75 = Cent typedef struct { gint length; // Longueur totale gint length_min ,length_sec ,length_cent; // Details gint begin; // Longueur totale gint begin_min ,begin_sec ,begin_cent; // Details } BASE_IOCTL_DATAS; typedef struct { // Base obtenue pae IOCTL ou CDPARANOIA gint TotalTracks; // Nombre total de pistes BASE_IOCTL_DATAS *Datas; // // CUE gchar *Performer; // gchar *Title; // gchar *File; // CDCUE *Cue; // gchar *PathNameDestFileCue; // } BASE_IOCTL; extern BASE_IOCTL BaseIoctl; void cdcue_remove_base_ioctl (void); void cdcue_print_base_ioctl (void); void cdcue_alloc_base_ioctl (gint p_taille); void cdcue_write_cue (void); void cdcue_remove (void); gboolean cdcue_is_alloc (void); void cdcue_make_cue (void); void cdcue_set_BoolExtract (gint p_index, gboolean p_flag); #endif xcfa-4.3.6/src/play_file.h0000644000175000017500000000173512122563437012305 00000000000000 /* * file : play_file.h * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifndef play_file_h #define play_file_h 1 void PlayFile_play (gchar *PathNameFile); #endif xcfa-4.3.6/src/tags.h0000644000175000017500000002073112141151366011267 00000000000000 /* * file : tags.h * project : xcfa * with : Gtk-2 * * copyright :( C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifndef tags_h #define tags_h 1 #include "file.h" typedef enum { TAG_WAVE_IS_NONE = 0, TAG_WAVE_IS_FMT, TAG_WAVE_IS_BEXT } TAG_WAV_IS_FMT_BEXT; typedef struct { struct { char ChunkID[4]; //( 4 octets) : contient les lettres "RIFF" pour indiquer que le fichier est codé selon la norme RIFF guint32 ChunkSize; //( 4 octets) : taille du fichier entier en octets( sans compter les 8 octets de ce champ et le champ précédent CunkID char Format[4]; //( 4 octets) : correspond au format du fichier donc ici, contient les lettres "WAVE" car fichier est au format wave } RIFF; TAG_WAV_IS_FMT_BEXT TagWavIsFmtBext; struct { char Subchunk1ID[4]; //( 4 octets) : contient les lettres "fmt " pour indiquer les données à suivre décrivent le format des données audio guint32 Subchunk1Size; //( 4 octets) : taille en octet des données à suivre( qui suivent cette variable) 16 Pour un fichier PCM short AudioFormat; //( 2 octets) : format de compression( une valeur autre que 1 indique une compression) short NumChannels; //( 2 octets) : nombre de canaux // 1 pour mono, // 2 pour stéréo // 3 pour gauche, droit et centre // 4 pour face gauche, face droit, arrière gauche, arrière droit // 5 pour gauche, centre, droit, surround( ambiant) // 6 pour centre gauche, gauche, centre, centre droit, droit, surround( ambiant) guint32 SampleRate; //( 4 octets) : fréquence d'échantillonage, ex 44100, 44800( nombre d'échantillons par secondes) guint32 ByteRate; //( 4 octets) : nombre d'octects par secondes short Blockalign; //( 2 octets) : nombre d'octects pour coder un échantillon short BitsPerSample; //( 2 octets) : nombre de bits pour coder un échantillon } FMT; struct { char Subchunk2ID[4]; //( 4 octets) : contient les lettres "data" pour indiquer que les données à suivre sont les données audio( les échantillons et) guint32 Subchunk2Size; //( 4 octets) : taille des données audio( nombre total d'octets codant les données audio) short *data; //( 4 octets) : données audio... les échantillons // DATAS[] : [Octets du Sample 1 du Canal 1] [Octets du Sample 1 du Canal 2] [Octets du Sample 2 du Canal 1] [Octets du Sample 2 du Canal 2] } DATA; FILE *file; // Handle du fichier si different de NULL } WAVE; // // --------------------------------------------------------------------------- // TAGS_WAV.C // --------------------------------------------------------------------------- // INFO_WAV *tagswav_remove_info( INFO_WAV *info ); INFO_WAV *tagswav_get_info( gchar *namefile ); gboolean tagswav_file_is_mono( gchar *namefile ); gboolean tagswav_file_GetBitrate( gchar *namefile, gint *Channels, gint *Hertz, gint *Bits ); gint tagswav_get_time_sec( gchar *namefile ); gboolean tagswav_read_file( gchar *wave_file, WAVE *WaveHeader ); void tagswav_close_file( WAVE *WaveHeader ); void tagswav_print( gchar *p_PathNameFile ); // // --------------------------------------------------------------------------- // TAGS.C // --------------------------------------------------------------------------- // typedef struct { gint num; gchar *name; } STRUCT_TAGS_FILE_MP3; // // extern STRUCT_TAGS_FILE_MP3 StructTagsFileMp3 []; TAGS *tags_alloc( gboolean bool_tag_cd ); TAGS *tags_remove( TAGS *tags ); TAGS *tags_set( gchar *filename, TAGS *tags ); void tags_set_flag_modification( TAGS *tags, gboolean p_flag ); gboolean tags_is_modified( TAGS *tags ); gchar *tags_get_time_wav( gchar *namefile ); gchar *tags_get_time( gchar *namefile ); gint tags_get_genre_by_value( gchar *p_name ); gchar *tags_get_str_type_file_is( TYPE_FILE_IS type ); void tags_set_elements_combobox( GtkWidget *widget ); gint tags_get_elements_combobox( gint num ); gint tags_get_num_combobox( gint value ); gchar *tags_get_genre_by_name( gint value ); // // --------------------------------------------------------------------------- // TAGS_FLAC.C // --------------------------------------------------------------------------- // INFO_FLAC *tagsflac_remove_info( INFO_FLAC *info ); INFO_FLAC *tagsflac_get_info( DETAIL *detail ); // // --------------------------------------------------------------------------- // TAGS_MP3.C // --------------------------------------------------------------------------- // INFO_MP3 *tagsmp3_remove_info( INFO_MP3 *info ); INFO_MP3 *tagsmp3_get_info( DETAIL *detail ); // // --------------------------------------------------------------------------- // TAGS_OGG.C // --------------------------------------------------------------------------- // INFO_OGG *tagsogg_remove_info( INFO_OGG *info ); INFO_OGG *tagsogg_get_info( DETAIL *detail ); // // --------------------------------------------------------------------------- // TAGS_M4A_.C // --------------------------------------------------------------------------- // INFO_M4A *tagsm4a_remove_info( INFO_M4A *info ); INFO_M4A *tagsm4a_get_info( DETAIL *detail ); // // --------------------------------------------------------------------------- // TAGS_AAC_.C // --------------------------------------------------------------------------- // INFO_AAC *tagsaac_remove_info( INFO_AAC *info ); // // --------------------------------------------------------------------------- // TAGS_SHN.C // --------------------------------------------------------------------------- // INFO_SHN *tagsshn_remove_info( INFO_SHN *info ); INFO_SHN *tagsshn_get_info( DETAIL *detail ); // // --------------------------------------------------------------------------- // TAGS_WMA.C // --------------------------------------------------------------------------- // INFO_WMA *tagswma_remove_info( INFO_WMA *info ); INFO_WMA *tagswma_get_info( DETAIL *detail ); // // --------------------------------------------------------------------------- // TAGS_MPC.C // --------------------------------------------------------------------------- // INFO_MPC *tagsmpc_remove_info( INFO_MPC *info ); INFO_MPC *tagsmpc_get_info( DETAIL *detai ); // // --------------------------------------------------------------------------- // TAGS_APE.C // --------------------------------------------------------------------------- // INFO_APE *tagsape_remove_info( INFO_APE *info ); INFO_APE *tagsape_get_info( DETAIL *detail ); // // --------------------------------------------------------------------------- // TAGS_WAVPACK.C // --------------------------------------------------------------------------- // INFO_WAVPACK *tagswavpack_remove_info( INFO_WAVPACK *info ); INFO_WAVPACK *tagswavpack_get_info( DETAIL *detail ); // // --------------------------------------------------------------------------- // TAGS_RM.C // --------------------------------------------------------------------------- // INFO_RM *tagsrm_remove_info( INFO_RM *info ); INFO_RM *tagsrm_get_info( DETAIL *detail ); // // --------------------------------------------------------------------------- // TAGS_DTS.C // --------------------------------------------------------------------------- // INFO_DTS *tagsdts_remove_info( INFO_DTS *info ); INFO_DTS *tagsdts_get_info( DETAIL *detail ); // // --------------------------------------------------------------------------- // TAGS_AIFF.C // --------------------------------------------------------------------------- // INFO_AIFF *tagsaiff_remove_info( INFO_AIFF *info ); INFO_AIFF *tagsaiff_get_info( DETAIL *detail ); // // --------------------------------------------------------------------------- // TAGS_AC3.C // --------------------------------------------------------------------------- // INFO_AC3 *tagsac3_remove_info( INFO_AC3 *info ); INFO_AC3 *tagsac3_get_info( DETAIL *detail ); #endif xcfa-4.3.6/src/scan.h0000644000175000017500000000265012122563437011262 00000000000000 /* * file : scan.h * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifndef scan_h #define scan_h 1 typedef struct { gchar *Full_Name; gchar *Device; gint Num; gint line; gint type; // 0 = IDE, 1 = SCSI } MEDIA; typedef enum { _CD_ = 0, // _DVD_ // } TYPE_READER; void scan_remove_glist_media (void); void scan_open_peri_cd (void); void scan_close_peri_cd (void); gint scan_get_nbr_readers_detected (void); gchar *scan_get_text_combo_cd (TYPE_READER type_reader); GList *scan_get_glist (void); void scan_set_bool_scan (gboolean p_flag); void scan_eject_media (TYPE_READER TypeReadder); #endif xcfa-4.3.6/src/tags_ape.c0000644000175000017500000001026012122563465012111 00000000000000 /* * file : tags_ape.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #include #include #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "get_info.h" #include "tags.h" #include /* *--------------------------------------------------------------------------- * VARIABLES *--------------------------------------------------------------------------- */ /***************************************************************************************** APE header that all APE files have in common (old and new) ***************************************************************************************** struct APE_COMMON_HEADER { char cID[4]; should equal 'MAC ' uint16 nVersion; version number * 1000 (3.81 = 3810) }; ***************************************************************************************** APE header structure for old APE files (3.97 and earlier) ***************************************************************************************** struct APE_HEADER_OLD { char cID[4]; should equal 'MAC ' uint16 nVersion; version number * 1000 (3.81 = 3810) uint16 nCompressionLevel; the compression level uint16 nFormatFlags; any format flags (for future use) uint16 nChannels; the number of channels (1 or 2) uint32 nSampleRate; the sample rate (typically 44100) uint32 nHeaderBytes; the bytes after the MAC header that compose the WAV header uint32 nTerminatingBytes; the bytes after that raw data (for extended info) uint32 nTotalFrames; the number of frames in the file uint32 nFinalFrameBlocks; the number of samples in the final frame }; *****************************************************************************************/ /* *--------------------------------------------------------------------------- * GET HEADER *--------------------------------------------------------------------------- */ INFO_APE *tagsape_remove_info (INFO_APE *info) { if (info) { if (NULL != info->time) { g_free (info->time); info->time = NULL; } if (NULL != info->size) { g_free (info->size);info->size = NULL; } info->tags = (TAGS *)tags_remove (info->tags); g_free (info); info = NULL; } return ((INFO_APE *)NULL); } INFO_APE *tagsape_get_info (DETAIL *detail) { INFO_APE *ptrinfo = NULL; SHNTAG *ShnTag = GetInfo_shntool (detail->namefile); gint m; gint s; gint sec; ptrinfo = (INFO_APE *)g_malloc0 (sizeof (INFO_APE)); if (ptrinfo == NULL) return (NULL); ptrinfo->tags = (TAGS *)tags_alloc (FALSE); ptrinfo->size = g_strdup (ShnTag->size); ptrinfo->SecTime = sec = ShnTag->SecTime; s = sec % 60; sec /= 60; m = sec % 60; sec /= 60; if (sec > 0) ptrinfo->time = g_strdup_printf ("%02d:%02d:%02d", sec, m, s); else ptrinfo->time = g_strdup_printf ("%02d:%02d", m, s); /* ptrinfo->tags = (TAGS *)tags_alloc (FALSE); tags_set (namefile, ptrinfo->tags); */ ShnTag = GetInfo_free_shntool (ShnTag); return (ptrinfo); } xcfa-4.3.6/src/options_mp3.c0000644000175000017500000003307212122563465012606 00000000000000 /* * file : options_mp3.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "configuser.h" #include "options.h" static gchar *str_abr [] = { "-b 32", "-b 40", "-b 48", "-b 56", "-b 64", "-b 80", "-b 96", "-b 112", "-b 128", "-b 160", "-b 192", "-b 224", "-b 256", "-b 320" }; static gchar *str_cbr [] = { "-b 32", "-b 40", "-b 48", "-b 56", "-b 64", "-b 80", "-b 96", "-b 112", "-b 128", "-b 160", "-b 192", "-b 224", "-b 256", "-b 320", "--preset insane" }; static gchar *str_vbr [] = { "--preset medium", "--preset standard", "--preset extreme", "--preset fast standard", "--preset fast extreme", "-V0", "-V1", "-V2", "-V3", "-V4", "-V5", "-V6", "-V7", "-V8", "-V9" }; static gchar *str_vbr_new [] = { "--vbr-new", "--vbr-new --preset medium", "--vbr-new --preset standard", "--vbr-new --preset extreme", "--vbr-new --preset fast standard", "--vbr-new --preset fast extreme", "--vbr-new -V0", "--vbr-new -V1", "--vbr-new -V2", "--vbr-new -V3", "--vbr-new -V4", "--vbr-new -V5", "--vbr-new -V6", "--vbr-new -V7", "--vbr-new -V8", "--vbr-new -V9" }; static gchar *str_val_mode[] = { "", // Defaut "-m s", // Stereo "-m j", // Join Stereo "-m f", // Forced Join Stereo "-m d", // Duo Channels "-m m" // Mono }; static gchar StrLame[ 100 ]; gboolean bool_do_enter_options_mp3 = TRUE; // // gchar *optionsLame_get_param( void ) { gchar StrLame[ 1000 ]; StrLame [ 0 ] = '\0'; switch (Config.BitrateLameIndice) { case 0 : strcpy (StrLame, str_abr [ Config.TabBitrateLame[ Config.BitrateLameIndice ] ]); break; case 1 : strcpy (StrLame, str_cbr [ Config.TabBitrateLame[ Config.BitrateLameIndice ] ]); break; case 2 : strcpy (StrLame, str_vbr [ Config.TabBitrateLame[ Config.BitrateLameIndice ] ]); break; case 3 : strcpy (StrLame, str_vbr_new [ Config.TabBitrateLame[ Config.BitrateLameIndice ] ]); break; } if (Config.TabModeLame[ Config.BitrateLameIndice ] > 0) { if (*StrLame != '\0') strcat (StrLame, " "); strcat (StrLame, str_val_mode [ Config.TabModeLame[ Config.BitrateLameIndice ] ] ); } if( *StrLame == '\0' ) return( (gchar *)NULL ); return ((gchar *)strdup (StrLame)); } gchar *optionsLame_get_str_val_bitrate_abr_vbr_lame (void) { gchar *ptr = NULL; strcpy (StrLame, ""); if (var_options.Adr_Widget_Lame_bitrate == NULL || var_options.Adr_Widget_Lame_abr_cbr_vbr == NULL) return ((gchar *)ptr); switch (gtk_combo_box_get_active (var_options.Adr_Widget_Lame_abr_cbr_vbr)) { /* ABR */ case 0 : // Config_User.RateMp3OggOptions.If_abr = gtk_combo_box_get_active (var_options.Adr_Widget_Lame_bitrate); ptr = (gchar *)str_abr [ Config.TabBitrateLame [ 0 ] ]; break; /* CBR */ case 1 : // Config_User.RateMp3OggOptions.If_cbr = gtk_combo_box_get_active (var_options.Adr_Widget_Lame_bitrate); ptr = (gchar *)str_cbr [ Config.TabBitrateLame [ 1 ] ]; break; /* VBR */ case 2 : // Config_User.RateMp3OggOptions.If_vbr = gtk_combo_box_get_active (var_options.Adr_Widget_Lame_bitrate); ptr = (gchar *)str_vbr [ Config.TabBitrateLame [ 2 ] ]; break; /* VBR_NEW */ case 3 : // Config_User.RateMp3OggOptions.If_vbr_new = gtk_combo_box_get_active (var_options.Adr_Widget_Lame_bitrate); ptr = (gchar *)str_vbr_new [ Config.TabBitrateLame [ 3 ] ]; break; default : return ((gchar *)StrLame); } strcat (StrLame, (gchar *)ptr); return ((gchar *)StrLame); } gchar *optionsLame_get_str_val_mode_lame (void) { strcpy (StrLame, ""); if (NULL == var_options.Adr_Widget_Lame_Mode) return ( (gchar *)str_val_mode[ 0 ]); strcpy (StrLame, str_val_mode[ gtk_combo_box_get_active (var_options.Adr_Widget_Lame_Mode) ]); return ((gchar *)StrLame); } void on_combobox_lame_abr_cbr_vbr_realize (GtkWidget *widget, gpointer user_data) { // libcombo_alloc (GTK_COMBO_BOX (widget)); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "ABR"); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "CBR"); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "VBR"); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "VBR-NEW"); gtk_combo_box_set_active (GTK_COMBO_BOX (widget), Config.BitrateLameIndice); var_options.Adr_Widget_Lame_abr_cbr_vbr = GTK_COMBO_BOX (widget); } void on_combobox_lame_abr_cbr_vbr_changed (GtkComboBox *combobox, gpointer user_data) { gint ind; if (NULL == var_options.Adr_Widget_Lame_abr_cbr_vbr) return; if (NULL == var_options.Adr_Widget_Lame_bitrate) return; if ((ind = gtk_combo_box_get_active (GTK_COMBO_BOX (var_options.Adr_Widget_Lame_abr_cbr_vbr))) < 0) return; Config.BitrateLameIndice = ind; // libcombo_alloc (GTK_COMBO_BOX (var_options.Adr_Widget_Lame_bitrate)); bool_do_enter_options_mp3 = FALSE; libcombo_remove_options (GTK_COMBO_BOX (var_options.Adr_Widget_Lame_bitrate)); switch (Config.BitrateLameIndice) { /* ABR 0 .. 13 */ case 0 : gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_Lame_bitrate), " 32"); gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_Lame_bitrate), " 40"); gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_Lame_bitrate), " 48"); gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_Lame_bitrate), " 56"); gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_Lame_bitrate), " 64"); gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_Lame_bitrate), " 80"); gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_Lame_bitrate), " 96"); gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_Lame_bitrate), "112"); gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_Lame_bitrate), "128"); gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_Lame_bitrate), "160"); gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_Lame_bitrate), "192"); gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_Lame_bitrate), "224"); gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_Lame_bitrate), "256"); gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_Lame_bitrate), "320"); break; /* CBR 0 .. 14 */ case 1 : gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_Lame_bitrate), " 32"); gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_Lame_bitrate), " 40"); gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_Lame_bitrate), " 48"); gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_Lame_bitrate), " 56"); gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_Lame_bitrate), " 64"); gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_Lame_bitrate), " 80"); gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_Lame_bitrate), " 96"); gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_Lame_bitrate), "112"); gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_Lame_bitrate), "128"); gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_Lame_bitrate), "160"); gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_Lame_bitrate), "192"); gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_Lame_bitrate), "224"); gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_Lame_bitrate), "256"); gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_Lame_bitrate), "320"); gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_Lame_bitrate), "preset insane"); break; /* VBR 0 .. 14 */ case 2 : gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_Lame_bitrate), "preset medium"); gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_Lame_bitrate), "preset standard"); gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_Lame_bitrate), "preset extreme"); gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_Lame_bitrate), "preset fast standard"); gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_Lame_bitrate), "preset fast extreme"); gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_Lame_bitrate), _("V0 (meilleure qualite)")); gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_Lame_bitrate), "V1"); gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_Lame_bitrate), "V2"); gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_Lame_bitrate), "V3"); gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_Lame_bitrate), "V4"); gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_Lame_bitrate), "V5"); gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_Lame_bitrate), "V6"); gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_Lame_bitrate), "V7"); gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_Lame_bitrate), "V8"); gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_Lame_bitrate), _("V9 (moins bonne qualite)")); break; /* VBR_NEW 0 .. 15 */ case 3 : gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_Lame_bitrate), " "); gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_Lame_bitrate), "preset medium"); gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_Lame_bitrate), "preset standard"); gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_Lame_bitrate), "preset extreme"); gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_Lame_bitrate), "preset fast standard"); gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_Lame_bitrate), "preset fast extreme"); gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_Lame_bitrate), "V0"); gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_Lame_bitrate), "V1"); gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_Lame_bitrate), "V2"); gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_Lame_bitrate), "V3"); gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_Lame_bitrate), "V4"); gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_Lame_bitrate), "V5"); gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_Lame_bitrate), "V6"); gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_Lame_bitrate), "V7"); gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_Lame_bitrate), "V8"); gtk_combo_box_append_text (GTK_COMBO_BOX (var_options.Adr_Widget_Lame_bitrate), "V9"); break; } bool_do_enter_options_mp3 = TRUE; gtk_combo_box_set_active (GTK_COMBO_BOX (var_options.Adr_Widget_Lame_bitrate), Config.TabBitrateLame [ Config.BitrateLameIndice ]); if (NULL != var_options.Adr_Widget_Lame_Mode) gtk_combo_box_set_active (GTK_COMBO_BOX (var_options.Adr_Widget_Lame_Mode), Config.TabModeLame [ Config.BitrateLameIndice ]); } void on_combobox_lame_type_bitrate_realize (GtkWidget *widget, gpointer user_data) { var_options.Adr_Widget_Lame_bitrate = GTK_COMBO_BOX (widget); on_combobox_lame_abr_cbr_vbr_changed (NULL,NULL); } void on_combobox_lame_type_bitrate_changed (GtkComboBox *combobox, gpointer user_data) { gint ind; if( FALSE == bool_do_enter_options_mp3 ) return; if (var_options.Adr_Widget_Lame_abr_cbr_vbr == NULL && var_options.Adr_Widget_Lame_bitrate == NULL) return; if ((ind = gtk_combo_box_get_active (GTK_COMBO_BOX (var_options.Adr_Widget_Lame_bitrate))) < 0) return; Config.TabBitrateLame [ Config.BitrateLameIndice ] = ind; OptionsInternal_set_datas_interne (COLOR_LAME_DEBIT, var_options.Adr_label_lame_mp3, LAME_WAV_TO_MP3); } void on_combobox_lame_mode_realize (GtkWidget *widget, gpointer user_data) { libcombo_alloc (GTK_COMBO_BOX (widget)); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "Defaut"); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "Stereo"); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "Join Stereo"); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "Forced Join Stereo"); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "Duo Channels"); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "Mono"); gtk_combo_box_set_active (GTK_COMBO_BOX (widget), Config.TabModeLame[ Config.BitrateLameIndice ]); var_options.Adr_Widget_Lame_Mode = GTK_COMBO_BOX (widget); on_combobox_lame_abr_cbr_vbr_changed (NULL, NULL); } void on_combobox_lame_mode_changed (GtkComboBox *combobox, gpointer user_data) { gint ind; if (var_options.Adr_Widget_Lame_Mode == NULL) return; if ((ind = gtk_combo_box_get_active (GTK_COMBO_BOX (var_options.Adr_Widget_Lame_Mode))) < 0) return; Config.TabModeLame [ Config.BitrateLameIndice ] = ind; OptionsInternal_set_datas_interne (COLOR_LAME_MODE, var_options.Adr_label_lame_mp3, LAME_WAV_TO_MP3); } xcfa-4.3.6/src/options_cd.c0000644000175000017500000001650412122563465012476 00000000000000 /* * file : options_cd.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "configuser.h" #include "cd_audio.h" #include "parse.h" #include "options.h" void on_radiobutton_choice_extract_with_clicked (GtkButton *button, gpointer user_data) { if (GTK_BUTTON (var_options.Adr_radiobutton_cdparanoia_mode_expert) == button) Config.ExtractCdWith = EXTRACT_WITH_CDPARANOIA_EXPERT; else if (GTK_BUTTON (var_options.Adr_radiobutton_extract_with_cdda2wav) == button) Config.ExtractCdWith = EXTRACT_WITH_CDDA2WAV; else if (GTK_BUTTON (var_options.Adr_radiobutton_extract_with_cdparanoia) == button) Config.ExtractCdWith = EXTRACT_WITH_CDPARANOIA; else if (GTK_BUTTON (var_options.Adr_radiobutton_cdparanoia_mode_2) == button) Config.ExtractCdWith = EXTRACT_WITH_CDPARANOIA_MODE_2; } void on_radiobutton_extract_with_cdparanoia_realize (GtkWidget *widget, gpointer user_data) { var_options.Adr_radiobutton_extract_with_cdparanoia = widget; if (Config.ExtractCdWith == EXTRACT_WITH_CDPARANOIA) gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON (var_options.Adr_radiobutton_extract_with_cdparanoia), TRUE); } void on_radiobutton_extract_with_cdda2wav_realize (GtkWidget *widget, gpointer user_data) { var_options.Adr_radiobutton_extract_with_cdda2wav = widget; if (Config.ExtractCdWith == EXTRACT_WITH_CDDA2WAV) gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON (var_options.Adr_radiobutton_extract_with_cdda2wav), TRUE); } void on_radiobutton_cdparanoia_mode_expert_realize (GtkWidget *widget, gpointer user_data) { var_options.Adr_radiobutton_cdparanoia_mode_expert = widget; if (Config.ExtractCdWith == EXTRACT_WITH_CDPARANOIA_EXPERT) gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON (var_options.Adr_radiobutton_cdparanoia_mode_expert), TRUE); } void on_radiobutton_cdparanoia_mode_2_realize (GtkWidget *widget, gpointer user_data) { var_options.Adr_radiobutton_cdparanoia_mode_2 = widget; if (Config.ExtractCdWith == EXTRACT_WITH_CDPARANOIA_MODE_2) gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON (var_options.Adr_radiobutton_cdparanoia_mode_2), TRUE); } // // void OptionsCd_set_entry_and_label( void ) { gchar *PtrEntryStockageCdAudio = NULL; gchar *Ptr = NULL; gchar *Dummy = NULL; CD_AUDIO *Audio = NULL; GString *gstr = NULL; // VERIFICATION SI PARAMS entry AND label if (NULL == var_cd.Adr_entry_stockage_cdaudio || NULL == var_cd.Adr_label_stockage_cdaudio) return; // RECUP POINTEUR PARAM entry PtrEntryStockageCdAudio = (gchar *)gtk_entry_get_text (GTK_ENTRY (var_cd.Adr_entry_stockage_cdaudio)); // SAVE CONFIG if (NULL != Config.Templates_rep_cdaudio) { g_free (Config.Templates_rep_cdaudio); Config.Templates_rep_cdaudio = NULL; } Config.Templates_rep_cdaudio = g_strdup( PtrEntryStockageCdAudio ); // SI CATALOGUE CD NON LU -> MESS ERREUR ET RETOUR if( NULL == ( Audio = cdaudio_get_line_selected_for_extract()) ) { gstr = g_string_new (NULL); // PATH g_string_append_printf (gstr, "%s/", (gchar *)Config.PathDestinationCD ); // CONVERSION UTF8 POUR LE MARKUP Ptr = utf8_eperluette_name( PtrEntryStockageCdAudio ); g_string_append_printf (gstr, "%s" "\n" "", Ptr ); g_string_append_printf (gstr, _("Pour evaluer les templates, vous devez activer une lecture de cdaudio") ); g_string_append_printf (gstr, "" ); // AFFICHAGE gtk_label_set_markup (GTK_LABEL (var_cd.Adr_label_stockage_cdaudio), gstr->str); // FREE MEMORY g_string_free (gstr, TRUE); g_free( Ptr ); Ptr = NULL; // bool_entree_cd_verif_car = TRUE; // ET RETOUR return; } // CONFIGURE label POUR LE MARKUP gtk_label_set_markup (GTK_LABEL (var_cd.Adr_label_stockage_cdaudio), ""); gstr = g_string_new (NULL); g_string_append_printf (gstr, "%s/", (gchar *)Config.PathDestinationCD); Parse_entry( PARSE_TYPE_STOCKAGE_CD ); Dummy = Parse_get_line( PARSE_TYPE_STOCKAGE_CD, Audio->Num_Track -1 ); Ptr = utf8_eperluette_name( Dummy ); g_string_append_printf (gstr, "%s", Ptr ); g_string_append_printf (gstr, "" ); gtk_label_set_markup (GTK_LABEL (var_cd.Adr_label_stockage_cdaudio), gstr->str); g_free( Ptr ); Ptr = NULL; g_free( Dummy ); Dummy = NULL; } // void on_entry_stockage_cdaudio_realize (GtkWidget *widget, gpointer user_data) { var_cd.bool_enter_parse = TRUE; var_cd.Adr_entry_stockage_cdaudio = widget; if( NULL != Config.Templates_rep_cdaudio ) { gtk_entry_set_text (GTK_ENTRY (var_cd.Adr_entry_stockage_cdaudio), Config.Templates_rep_cdaudio); OptionsCd_set_entry_and_label(); } } // // Saisie PREFERENCES -> CD -> DOSSIER DE STOCKAGE // void on_entry_stockage_cdaudio_changed (GtkEditable *editable, gpointer user_data) { if( FALSE == var_cd.bool_enter_parse ) return; var_cd.bool_enter_parse = FALSE; OptionsCd_set_entry_and_label(); var_cd.bool_enter_parse = TRUE; // PARSING // ARRANGEMENT DES TITRES DU CD DOSSIER DE STOCKAGE // ----------------------------------------------------------- // %a ARTISTE ARTISTE // %b TITRE DE L ALBUM TITRE DE L ALBUM // %c NUMERO DE LA PISTE NUMERO DE LA PISTE // %d TITRE DE LA CHANSON TITRE DE LA CHANSON // %e ANNEE ANNEE // %g GENRE GENRE // %f CREATION DES FICHIERS m3u et xpm // %na NO ACCENT // %u REMPLACEMENT DE CARACTERES // %Tl TETSUMAKI LOWER } // // void on_label_stockage_cdaudio_exemple_realize (GtkWidget *widget, gpointer user_data) { var_cd.Adr_label_stockage_cdaudio = widget; if (var_cd.Adr_entry_stockage_cdaudio) { if( NULL != Config.Templates_rep_cdaudio ) { gtk_entry_set_text (GTK_ENTRY (var_cd.Adr_entry_stockage_cdaudio), Config.Templates_rep_cdaudio); OptionsCd_set_entry_and_label(); } } } // // void on_checkbutton_log_cdparanoia_mode_expert_realize( GtkWidget *widget, gpointer user_data ) { var_cd.Adr_checkbutton_log_cdparanoia_mode_expert = widget; gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON(widget), Config.BoolLogCdparanoiaModeExpert ); } // // void on_checkbutton_log_cdparanoia_mode_expert_clicked( GtkButton *button, gpointer user_data ) { Config.BoolLogCdparanoiaModeExpert = gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(var_cd.Adr_checkbutton_log_cdparanoia_mode_expert)) ? TRUE : FALSE; } // // gboolean OptionsCd_get_save_log_mode_expert( void ) { return( Config.BoolLogCdparanoiaModeExpert ); } xcfa-4.3.6/src/notify_send.c0000644000175000017500000000545612122563465012662 00000000000000 /* * file : notify_send.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "prg_init.h" #include "configuser.h" #include "play_file.h" #include "notify_send.h" typedef struct { pthread_t nmr_tid; gchar *Title; gchar *Str; } VAR_NOTIFYSEND ; VAR_NOTIFYSEND NotifySend; // // void NotifySend_call (void) { pid_t pid; if ((pid = fork ()) == 0) { execlp ("notify-send", "notify-send", NotifySend.Title, NotifySend.Str, NULL); _exit (0); } } // // static void NotifySend_thread (void *arg) { NotifySend_call (); pthread_exit(0); } // // void NotifySend_remove (void) { if( NotifySend.Title != NULL ) { g_free( NotifySend.Title ); NotifySend.Title = NULL; } if( NotifySend.Str != NULL ) { g_free( NotifySend.Str ); NotifySend.Str = NULL; } } // // void NotifySend_msg( gchar *Title, gchar *Str, gboolean p_BoolStopByUser ) { // EN FIN DE CONVERSION: // #include "play_file.h" // void PlayFile_play (gchar *PathNameFile) // if( TRUE == Config.BoolCheckbuttonEndOfConvert && FALSE == p_BoolStopByUser ) { gchar *PathNameFileMusic = g_strdup_printf( "%s/%s", Config.PathMusicFileEndOfConvert, Config.FileMusicFileEndOfConvert ); PlayFile_play( PathNameFileMusic ); g_free( PathNameFileMusic ); PathNameFileMusic = NULL; } NotifySend_remove (); if (FALSE == PrgInit.bool_notify_send) { // SUPPRESSION DE L'ALERTE INDIQUANT L'ABSENCE DU PAQUET: LIBNOTIFY-BIN // wininfo_create ( // WindMain, // _("Package NOT FOUND !"), // _("(Package libnotify-bin): notify-send NOT EXIST"), // ""); return; } NotifySend.Title = g_strdup_printf ("%s", Title); NotifySend.Str = g_strdup_printf ("%s", Str); pthread_create (&NotifySend.nmr_tid, NULL ,(void *)NotifySend_thread, (void *)NULL); } xcfa-4.3.6/src/cd_expander.c0000644000175000017500000004315012122563465012606 00000000000000 /* * file : cd_expander.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "file.h" #include "cd_audio.h" #include "configuser.h" #include "parse.h" #include "popup.h" typedef struct { gboolean BoolChangedOk; } VAR_CDEXPANDER; VAR_CDEXPANDER VarCdExpander = { TRUE // BoolChangedOk }; // // void cdexpander_set_sensitive_notebook (void) { CD_AUDIO *Audio = NULL; if (NULL == var_cd.Adr_notebook) return; Audio = cdaudio_get_line_selected (); gtk_widget_set_sensitive (GTK_WIDGET (GLADE_GET_OBJECT("table_tags_expanderCD")), Audio ? TRUE : FALSE); gtk_widget_set_sensitive (GTK_WIDGET (GLADE_GET_OBJECT("vbox_titres_expanderCD")), Audio ? TRUE : FALSE); } // // void cdexpander_set_entry_tag_titre_album (void) { CD_AUDIO *Audio = NULL; if (NULL == var_cd.Adr_entry_tag_titre_album) return; if (NULL != (Audio = cdaudio_get_line_selected ())) { VarCdExpander.BoolChangedOk = FALSE; gtk_entry_set_text (GTK_ENTRY (var_cd.Adr_entry_tag_titre_album), Audio->tags->Album); VarCdExpander.BoolChangedOk = TRUE; } else { VarCdExpander.BoolChangedOk = FALSE; gtk_entry_set_text (GTK_ENTRY (var_cd.Adr_entry_tag_titre_album), ""); VarCdExpander.BoolChangedOk = TRUE; } } // // void cdexpander_set_entry_tag_nom_artiste (void) { CD_AUDIO *Audio = NULL; if (NULL == var_cd.Adr_entry_tag_nom_artiste) return; if (NULL != (Audio = cdaudio_get_line_selected ())) { VarCdExpander.BoolChangedOk = FALSE; gtk_entry_set_text (GTK_ENTRY (var_cd.Adr_entry_tag_nom_artiste), Audio->tags->Artist); VarCdExpander.BoolChangedOk = TRUE; } else { VarCdExpander.BoolChangedOk = FALSE; gtk_entry_set_text (GTK_ENTRY (var_cd.Adr_entry_tag_nom_artiste), ""); VarCdExpander.BoolChangedOk = TRUE; } } // // void cdexpander_set_spinbutton_tag_piste (void) { CD_AUDIO *Audio = NULL; if (NULL != (Audio = cdaudio_get_line_selected ()) && NULL != var_cd.Adr_spinbutton_tag_piste) { VarCdExpander.BoolChangedOk = FALSE; gtk_spin_button_set_value (GTK_SPIN_BUTTON (var_cd.Adr_spinbutton_tag_piste), (gdouble)Audio->tags->IntNumber); VarCdExpander.BoolChangedOk = TRUE; } } // // void cdexpander_set_spinbutton_tag_annee (void) { CD_AUDIO *Audio = NULL; if (NULL != (Audio = cdaudio_get_line_selected ()) && NULL != var_cd.Adr_spinbutton_tag_annee) { VarCdExpander.BoolChangedOk = FALSE; gtk_spin_button_set_value (GTK_SPIN_BUTTON (var_cd.Adr_spinbutton_tag_annee), (gdouble)Audio->tags->IntYear); VarCdExpander.BoolChangedOk = TRUE; } } // // gint cdexpander_get_spinbutton_tag_annee (void) { if (NULL != var_cd.Adr_spinbutton_tag_annee) { return (gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(var_cd.Adr_spinbutton_tag_annee))); } return (0); } // // void cdexpander_set_entry_tag_titre_chanson (void) { CD_AUDIO *Audio = NULL; if (NULL != (Audio = cdaudio_get_line_selected ()) && NULL != var_cd.Adr_entry_tag_titre_chanson) { VarCdExpander.BoolChangedOk = FALSE; gtk_entry_set_text (GTK_ENTRY (var_cd.Adr_entry_tag_titre_chanson), Audio->tags->Title); VarCdExpander.BoolChangedOk = TRUE; } else { VarCdExpander.BoolChangedOk = FALSE; gtk_entry_set_text (GTK_ENTRY (var_cd.Adr_entry_tag_titre_chanson), ""); VarCdExpander.BoolChangedOk = TRUE; } } // // void cdexpander_set_new_genre (void) { CD_AUDIO *Audio = NULL; if (NULL != (Audio = cdaudio_get_line_selected ()) ) { VarCdExpander.BoolChangedOk = FALSE; gtk_entry_set_text( GTK_ENTRY(GLADE_GET_OBJECT("entry_tag_genre")), tags_get_genre_by_name( Audio->tags->IntGenre )); VarCdExpander.BoolChangedOk = TRUE; } } // // void cdexpander_set_entry_new_titre_cdaudio (gchar *p_str) { if (NULL != var_cd.Adr_entry_new_titre_cdaudio && NULL != p_str) { gtk_entry_set_text (GTK_ENTRY (var_cd.Adr_entry_new_titre_cdaudio), p_str); } } // // void cdexpander_set_entry_tag_commentaire (void) { CD_AUDIO *Audio = NULL; if (NULL != (Audio = cdaudio_get_line_selected ()) && NULL != var_cd.Adr_entry_tag_commentaire) { VarCdExpander.BoolChangedOk = FALSE; gtk_entry_set_text (GTK_ENTRY (var_cd.Adr_entry_tag_commentaire), Audio->tags->Comment); VarCdExpander.BoolChangedOk = TRUE; } else { VarCdExpander.BoolChangedOk = FALSE; gtk_entry_set_text( GTK_ENTRY(var_cd.Adr_entry_tag_commentaire), Config.StringCommentCD ); VarCdExpander.BoolChangedOk = TRUE; } } // // void cdexpander_set_entry_tag_titre_fichier_m3u (void) { if (FALSE == VarCdExpander.BoolChangedOk) return; if (NULL != var_cd.Adr_entry_tag_titre_fichier) { VarCdExpander.BoolChangedOk = FALSE; // m3u // xspf gtk_entry_set_text (GTK_ENTRY (var_cd.Adr_entry_tag_titre_fichier), Config.StringNameFile_m3u_xspf ? Config.StringNameFile_m3u_xspf : ""); VarCdExpander.BoolChangedOk = TRUE; } } // // void on_entry_tag_titre_chanson_changed (GtkEditable *editable, gpointer user_data) { gchar *ptr_template = NULL; CD_AUDIO *Audio = NULL; gchar *str = NULL; gchar *ptr = NULL; if (!var_cd.Adr_entry_tag_titre_chanson) return; ptr_template = (gchar *)gtk_entry_get_text (GTK_ENTRY (var_cd.Adr_entry_tag_titre_chanson)); /* Suppression du caracteres '/' interdit si il existe */ str = g_strdup (ptr_template); if (strchr (str, '/')) { while ((ptr = strchr (str, '/'))) { strcpy (ptr, ptr+1); } gtk_entry_set_text (GTK_ENTRY (var_cd.Adr_entry_tag_titre_chanson), str); } g_free (str); str = NULL; if (FALSE == VarCdExpander.BoolChangedOk) return; if (NULL != (Audio = cdaudio_get_line_selected ())) { g_free (Audio->tags->Title); Audio->tags->Title = NULL; Audio->tags->Title = g_strdup (ptr_template); } cdaudio_set_titre_chanson (); } // // void on_entry_tag_titre_album_changed (GtkEditable *editable, gpointer user_data) { gint Num_cell = 0; gboolean valid; GtkTreeIter iter; GList *List = NULL; gchar *ptr_template = NULL; CD_AUDIO *Audio = NULL; if (NULL == var_cd.Adr_entry_tag_titre_album) return; if (FALSE == VarCdExpander.BoolChangedOk) return; ptr_template = (gchar *)gtk_entry_get_text (GTK_ENTRY (var_cd.Adr_entry_tag_titre_album)); valid = gtk_tree_model_get_iter_first (var_cd.Adr_Tree_Model, &iter); while (valid) { List = g_list_nth (EnteteCD.GList_Audio_cd, Num_cell); if (NULL != (Audio = (CD_AUDIO *)List->data)) { g_free (Audio->tags->Album); Audio->tags->Album = NULL; Audio->tags->Album = g_strdup (ptr_template); } valid = gtk_tree_model_iter_next (var_cd.Adr_Tree_Model, &iter); Num_cell ++; } cdaudio_set_titre_chanson (); } // // void on_entry_tag_nom_artiste_changed (GtkEditable *editable, gpointer user_data) { gint Num_cell = 0; gboolean valid; GtkTreeIter iter; GList *List = NULL; gchar *ptr_template = NULL; CD_AUDIO *Audio = NULL; if (NULL == var_cd.Adr_entry_tag_nom_artiste) return; if (FALSE == VarCdExpander.BoolChangedOk) return; ptr_template = (gchar *)gtk_entry_get_text (GTK_ENTRY (var_cd.Adr_entry_tag_nom_artiste)); if (TRUE == EnteteCD.BoolMultiArtiste) { if ((Audio = cdaudio_get_line_selected ())) { g_free (Audio->tags->Artist); Audio->tags->Artist = NULL; Audio->tags->Artist = g_strdup (ptr_template); } } else { valid = gtk_tree_model_get_iter_first (var_cd.Adr_Tree_Model, &iter); while (valid) { List = g_list_nth (EnteteCD.GList_Audio_cd, Num_cell); if (NULL != (Audio = (CD_AUDIO *)List->data)) { g_free (Audio->tags->Artist); Audio->tags->Artist = NULL; Audio->tags->Artist = g_strdup (ptr_template); } valid = gtk_tree_model_iter_next (var_cd.Adr_Tree_Model, &iter); Num_cell ++; } } cdaudio_set_titre_chanson (); } // // void on_entry_tag_commentaire_changed (GtkEditable *editable, gpointer user_data) { gchar *ptr_template = NULL; CD_AUDIO *Audio = NULL; if (NULL == var_cd.Adr_entry_tag_commentaire) return; ptr_template = (gchar *)gtk_entry_get_text (GTK_ENTRY (var_cd.Adr_entry_tag_commentaire)); if( NULL != Config.StringCommentCD ) { g_free( Config.StringCommentCD ); Config.StringCommentCD = NULL; } Config.StringCommentCD = g_strdup( ptr_template ); if( NULL != ( Audio = cdaudio_get_line_selected())) { g_free( Audio->tags->Comment ); Audio->tags->Comment = NULL; Audio->tags->Comment = g_strdup( Config.StringCommentCD ); } cdaudio_set_titre_chanson (); } // // void on_spinbutton_tag_annee_value_changed (GtkSpinButton *spinbutton, gpointer user_data) { gint Num_cell = 0; gboolean valid; GtkTreeIter iter; GList *List = NULL; CD_AUDIO *Audio = NULL; gint Value; if (NULL == var_cd.Adr_spinbutton_tag_annee) return; Value = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(var_cd.Adr_spinbutton_tag_annee)); if (TRUE == EnteteCD.BoolMultiArtiste) { if (NULL != (Audio = cdaudio_get_line_selected ())) { g_free (Audio->tags->Year); Audio->tags->Year = NULL; Audio->tags->Year = g_strdup_printf ("%d", Value); Audio->tags->IntYear = Value; } } else { valid = gtk_tree_model_get_iter_first (var_cd.Adr_Tree_Model, &iter); while (valid) { List = g_list_nth (EnteteCD.GList_Audio_cd, Num_cell); if (NULL != (Audio = (CD_AUDIO *)List->data)) { g_free (Audio->tags->Year); Audio->tags->Year = NULL; Audio->tags->Year = g_strdup_printf ("%d", Value); Audio->tags->IntYear = Value; } valid = gtk_tree_model_iter_next (var_cd.Adr_Tree_Model, &iter); Num_cell ++; } } cdaudio_set_titre_chanson (); } // // void on_spinbutton_tag_piste_value_changed (GtkSpinButton *spinbutton, gpointer user_data) { CD_AUDIO *Audio = NULL; gint Value; if (NULL == var_cd.Adr_spinbutton_tag_piste) return; Value = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(var_cd.Adr_spinbutton_tag_piste)); if (NULL != (Audio = cdaudio_get_line_selected ())) { g_free (Audio->tags->Number); Audio->tags->Number = NULL; Audio->tags->Number = g_strdup_printf ("%d", Value); Audio->tags->IntNumber = Value; } cdaudio_set_titre_chanson (); } // // void on_entry_tag_titre_fichier_m3u_changed (GtkEditable *editable, gpointer user_data) { if (FALSE == VarCdExpander.BoolChangedOk) return; if (NULL != var_cd.Adr_entry_tag_titre_fichier) { g_free (Config.StringNameFile_m3u_xspf); Config.StringNameFile_m3u_xspf = NULL; Config.StringNameFile_m3u_xspf = g_strdup ((gchar *)gtk_entry_get_text (GTK_ENTRY (var_cd.Adr_entry_tag_titre_fichier))); if (NULL == strstr (gtk_entry_get_text (GTK_ENTRY (var_cd.Adr_entry_new_titre_cdaudio)), "%f")) { gchar *Str = NULL; Str = g_strdup_printf ("%s %%f", gtk_entry_get_text (GTK_ENTRY (var_cd.Adr_entry_new_titre_cdaudio))); gtk_entry_set_text (GTK_ENTRY (var_cd.Adr_entry_new_titre_cdaudio), Str); g_free (Str); Str = NULL; } } } // // void cd_expander_set_genre( gint p_num, gchar *p_name ) { gint Num_cell = 0; gboolean valid; GtkTreeIter iter; GList *List = NULL; CD_AUDIO *Audio = NULL; valid = gtk_tree_model_get_iter_first (var_cd.Adr_Tree_Model, &iter); while (valid) { List = g_list_nth (EnteteCD.GList_Audio_cd, Num_cell); if (NULL != (Audio = (CD_AUDIO *)List->data)) { g_free (Audio->tags->Genre); Audio->tags->Genre = NULL; Audio->tags->Genre = g_strdup( p_name ); Audio->tags->IntGenre = p_num; } valid = gtk_tree_model_iter_next (var_cd.Adr_Tree_Model, &iter); Num_cell ++; } cdaudio_set_titre_chanson (); } void on_entry_tag_genre_changed( GtkEditable *editable, gpointer user_data ) { gchar *PtrEntry = NULL; gint NumEntry = -1; if( FALSE == CdPopupGenre.BoolFromPopup ) { PRINT_FUNC_LF(); PtrEntry = (gchar *)gtk_entry_get_text( GTK_ENTRY(GLADE_GET_OBJECT("entry_tag_genre"))); NumEntry = tags_get_genre_by_value( PtrEntry ); if( TRUE == OptionsCommandLine.BoolVerboseMode ) { g_print( "\tPtrEntry = %s\n", PtrEntry ); g_print( "\tNumEntry = %d\n", NumEntry); } cd_expander_set_genre( NumEntry, PtrEntry ); } } // // Completion de la saisie clavier // http://coding.debuntu.org/c-gtk-text-completion-gtkentry-gtkentrycompletion // #define _CONTACT_NAME_ 0 // typedef struct { // gint num; // gchar *name; // } STRUCT_TAGS_FILE_MP3; gboolean on_match_select(GtkEntryCompletion *widget, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { if( TRUE == OptionsCommandLine.BoolVerboseMode ) { GValue value = {0, }; gtk_tree_model_get_value(model, iter, _CONTACT_NAME_, &value); g_print( "You have selected %s\n", g_value_get_string(&value) ); g_value_unset(&value); } return FALSE; } void on_entry_tag_genre_realize( GtkWidget *widget, gpointer user_data ) { STRUCT_TAGS_FILE_MP3 *Contact; GtkEntryCompletion *completion; GtkListStore *model; GtkTreeIter iter; // set up completion completion = gtk_entry_completion_new(); gtk_entry_completion_set_text_column( completion, _CONTACT_NAME_ ); gtk_entry_set_completion( GTK_ENTRY(widget), completion ); g_signal_connect( G_OBJECT(completion), "match-selected", G_CALLBACK(on_match_select), NULL ); g_signal_connect( G_OBJECT(widget), "changed", G_CALLBACK(on_entry_tag_genre_changed), widget ); model = gtk_list_store_new( 1, G_TYPE_STRING ); for( Contact = StructTagsFileMp3; Contact && Contact->name; Contact++ ) { gtk_list_store_append( model, &iter ); gtk_list_store_set( model, &iter, _CONTACT_NAME_, Contact->name, -1 ); } gtk_entry_completion_set_model( completion, GTK_TREE_MODEL(model) ); } // // Saisie CD -> ARRANGEMENT DES TITRES DU CD // void on_entry_new_titre_cdaudio_changed (GtkEditable *editable, gpointer user_data) { if( FALSE == var_cd.bool_enter_parse ) return; var_cd.bool_enter_parse = FALSE; if (NULL != var_cd.Adr_entry_new_titre_cdaudio) { // SUPPRESSION DE LA LIGNE SAISIE PAR L UTILISTATEUR if (NULL != Config.Templates_title_cdaudio) { g_free (Config.Templates_title_cdaudio); Config.Templates_title_cdaudio = NULL; } Config.Templates_title_cdaudio = g_strdup( (gchar *)gtk_entry_get_text (GTK_ENTRY (var_cd.Adr_entry_new_titre_cdaudio)) ); Parse_entry (PARSE_TYPE_TITLE_CD); cdaudio_set_titre_chanson (); } var_cd.bool_enter_parse = TRUE; } // // void on_expander_cd_realize (GtkWidget *widget, gpointer user_data) { var_cd.Adr_Expander = widget; gtk_expander_set_expanded (GTK_EXPANDER (var_cd.Adr_Expander), Config.BoolEtatExpanderCd); } // // void on_notebook_expander_cd_realize (GtkWidget *widget, gpointer user_data) { var_cd.Adr_notebook = widget; } // // void on_entry_tag_titre_chanson_realize (GtkWidget *widget, gpointer user_data) { var_cd.Adr_entry_tag_titre_chanson = widget; } // // void on_entry_tag_titre_album_realize (GtkWidget *widget, gpointer user_data) { var_cd.Adr_entry_tag_titre_album = widget; } // // void on_entry_tag_nom_artiste_realize (GtkWidget *widget, gpointer user_data) { var_cd.Adr_entry_tag_nom_artiste = widget; } // // void on_entry_tag_commentaire_realize (GtkWidget *widget, gpointer user_data) { var_cd.Adr_entry_tag_commentaire = widget; if( NULL == Config.StringCommentCD ) { Config.StringCommentCD = g_strdup( " " ); } gtk_entry_set_text( GTK_ENTRY(var_cd.Adr_entry_tag_commentaire), Config.StringCommentCD ); } // // void on_spinbutton_tag_annee_realize (GtkWidget *widget, gpointer user_data) { var_cd.Adr_spinbutton_tag_annee = widget; } // // void on_spinbutton_tag_piste_realize (GtkWidget *widget, gpointer user_data) { var_cd.Adr_spinbutton_tag_piste = widget; } // // void on_entry_tag_titre_fichier_m3u_realize (GtkWidget *widget, gpointer user_data) { var_cd.Adr_entry_tag_titre_fichier = widget; } // // void on_entry_new_titre_cdaudio_realize (GtkWidget *widget, gpointer user_data) { var_cd.bool_enter_parse = TRUE; var_cd.Adr_entry_new_titre_cdaudio = widget; if (NULL == Config.Templates_title_cdaudio) { Config.Templates_title_cdaudio = g_strdup ("%c %d"); } gtk_entry_set_text (GTK_ENTRY (widget), Config.Templates_title_cdaudio); var_cd.Bool_create_file_m3u = FALSE; var_cd.Pathname_m3u = NULL; } // // void on_checkbutton_creation_fichier_unique_cue_clicked (GtkButton *button, gpointer user_data) { if (FALSE == gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON (button))) gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON (GLADE_GET_OBJECT("checkbutton_creation_fichier_cue")), FALSE); } // // void on_combobox_choice_file_cue_realize (GtkWidget *widget, gpointer user_data) { libcombo_alloc (GTK_COMBO_BOX (widget)); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "WAV"); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "FLAC"); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "OGG"); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "MPC"); gtk_combo_box_set_active (GTK_COMBO_BOX (widget), 0); } // // void on_button_tag_call_popup_clicked( GtkButton *button, gpointer user_data ) { popup_menu_cd(); } xcfa-4.3.6/src/replaygain.c0000644000175000017500000003142112163047477012470 00000000000000 /* * file : replaygain.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #include #include #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "file.h" #include "options.h" #include "win_scan.h" #include "notify_send.h" #include "replaygain.h" // // --------------------------------------------------------------------------- // VARIABLES // --------------------------------------------------------------------------- // typedef struct { gboolean bool_etat; // gchar MessUser[ 100 ]; // gint NbrElementsInList; // gint ElementActif; // double total_percent; // pthread_t nmr_tid; // guint handler_timeout; // gboolean bool_thread_end; // gboolean bool_compteur; // gint pass_conv; // gboolean bool_update; // TYPE_REPLAYGAIN type_replaygain; // } RPG; RPG rpg; typedef enum { MP3GAIN = 0, // METAFLAC, // WVGAIN, // VORBISGAIN // } RPG_TYPE; // // --------------------------------------------------------------------------- // GET LIST OF TO SET: // --------------------------------------------------------------------------- // TYPE // MP3GAIN // METAFLAC // WVGAIN // VORBISGAIN // --------------------------------------------------------------------------- // ACTION // EFFACER // ALBUM // PISTE // --------------------------------------------------------------------------- // void replaygain_set_list( RPG_TYPE rpg_type, ETAT_REPLAYGAIN rpg_action) { GList *list = NULL; GList *ListProg = NULL; GList *ListEtat = NULL; DETAIL *detail = NULL; gchar *Ptr = NULL; ETAT_REPLAYGAIN *PtrReplayGain = NULL; gboolean BoolList = FALSE; gint pos; gchar **PtrTabArgs = NULL; if( TRUE == rpg.bool_thread_end) return; rpg.MessUser [ 0 ] = '\0'; // Entete global PtrTabArgs = filelc_AllocTabArgs(); pos = 3; // Entetes particuliers switch (rpg_type ) { case MP3GAIN : PtrTabArgs [ pos++ ] = g_strdup ("mp3gain" ); strcat( rpg.MessUser, "MP3, mp3gain" ); switch (rpg_action ) { case RPG_NONE : case RPG_ATTENTE : break; case RPG_EFFACER : PtrTabArgs [ pos++ ] = g_strdup ("-s" ); PtrTabArgs [ pos++ ] = g_strdup ("d" ); strcat( rpg.MessUser, ", EFFACER" ); break; case RPG_ALBUM : PtrTabArgs [ pos++ ] = g_strdup ("-a" ); PtrTabArgs [ pos++ ] = g_strdup ("-p" ); PtrTabArgs [ pos++ ] = g_strdup ("-c" ); PtrTabArgs [ pos++ ] = g_strdup ("-f" ); PtrTabArgs [ pos++ ] = g_strdup ("-T" ); strcat( rpg.MessUser, ", ALBUM" ); break; case RPG_PISTE : PtrTabArgs [ pos++ ] = g_strdup ("-r" ); PtrTabArgs [ pos++ ] = g_strdup ("-p" ); PtrTabArgs [ pos++ ] = g_strdup ("-c" ); PtrTabArgs [ pos++ ] = g_strdup ("-f" ); PtrTabArgs [ pos++ ] = g_strdup ("-T" ); strcat( rpg.MessUser, ", PISTE" ); break; } break; case METAFLAC : PtrTabArgs [ pos++ ] = g_strdup ("metaflac" ); strcat( rpg.MessUser, "FLAC, metaflac" ); switch (rpg_action ) { case RPG_NONE : case RPG_ATTENTE : break; case RPG_EFFACER : PtrTabArgs [ pos++ ] = g_strdup ("--remove-replay-gain" ); strcat( rpg.MessUser, ", EFFACER" ); break; case RPG_ALBUM : PtrTabArgs [ pos++ ] = g_strdup ("--add-replay-gain" ); strcat( rpg.MessUser, ", ALBUM" ); break; case RPG_PISTE : /* NONE */ break; } break; case WVGAIN : PtrTabArgs [ pos++ ] = g_strdup ("wvgain" ); strcat( rpg.MessUser, "WAVPACK, wvgain" ); switch (rpg_action ) { case RPG_NONE : case RPG_ATTENTE : break; case RPG_EFFACER : PtrTabArgs [ pos++ ] = g_strdup ("-c" ); strcat( rpg.MessUser, ", EFFACER" ); break; case RPG_ALBUM : PtrTabArgs [ pos++ ] = g_strdup ("-a" ); strcat( rpg.MessUser, ", ALBUM" ); break; case RPG_PISTE : strcat( rpg.MessUser, ", PISTE" ); break; } break; case VORBISGAIN : PtrTabArgs [ pos++ ] = g_strdup ("vorbisgain" ); strcat( rpg.MessUser, "OGG, vorbisgain" ); switch (rpg_action ) { case RPG_NONE : case RPG_ATTENTE : break; case RPG_EFFACER : PtrTabArgs [ pos++ ] = g_strdup ("-c" ); strcat( rpg.MessUser, ", EFFACER" ); break; case RPG_ALBUM : PtrTabArgs [ pos++ ] = g_strdup ("-a" ); strcat( rpg.MessUser, ", ALBUM" ); break; case RPG_PISTE : strcat( rpg.MessUser, ", PISTE" ); break; } break; } // -- RECHERCHE DES NOMS DE FICHIERS QUI SERONT AJOUTES EN FIN DE LISTE ListProg = g_list_first (entetefile ); while (ListProg ) { if( (detail = (DETAIL *)ListProg->data) ) { // TEST D ENTREE if( detail->type_infosong_file_is != FILE_IS_OGG && detail->type_infosong_file_is != FILE_IS_MP3 && detail->type_infosong_file_is != FILE_IS_FLAC && detail->type_infosong_file_is != FILE_IS_WAVPACK ) { ListProg = g_list_next (ListProg ); continue; } if( NULL != detail && detail->Etat_ReplayGain == rpg_action ) { // VORBISGAIN if( detail->type_infosong_file_is == FILE_IS_OGG && rpg_type == VORBISGAIN ) { BoolList = TRUE; PtrTabArgs [ pos++ ] = g_strdup (detail->namefile ); // Get pointer Etat Flag ListEtat = g_list_append (ListEtat, &detail->Etat_ReplayGain ); if( detail->EtatTrash == FILE_TRASH_OK) detail->EtatTrash = FILE_TRASH_VERIF_OK; rpg.ElementActif ++; } // MP3GAIN else if( detail->type_infosong_file_is == FILE_IS_MP3 && rpg_type == MP3GAIN ) { BoolList = TRUE; PtrTabArgs [ pos++ ] = g_strdup (detail->namefile ); // Get pointer Etat Flag ListEtat = g_list_append (ListEtat, &detail->Etat_ReplayGain ); if( detail->EtatTrash == FILE_TRASH_OK) detail->EtatTrash = FILE_TRASH_VERIF_OK; rpg.ElementActif ++; } // METAFLAC else if( detail->type_infosong_file_is == FILE_IS_FLAC && rpg_type == METAFLAC ) { // PISTE -> NONE BoolList = TRUE; PtrTabArgs [ pos++ ] = g_strdup (detail->namefile ); // Get pointer Etat Flag ListEtat = g_list_append (ListEtat, &detail->Etat_ReplayGain ); if( detail->EtatTrash == FILE_TRASH_OK) detail->EtatTrash = FILE_TRASH_VERIF_OK; rpg.ElementActif ++; } // WVGAIN else if( detail->type_infosong_file_is == FILE_IS_WAVPACK && rpg_type == WVGAIN ) { BoolList = TRUE; PtrTabArgs [ pos++ ] = g_strdup (detail->namefile ); // Get pointer Etat Flag ListEtat = g_list_append (ListEtat, &detail->Etat_ReplayGain ); if( detail->EtatTrash == FILE_TRASH_OK) detail->EtatTrash = FILE_TRASH_VERIF_OK; rpg.ElementActif ++; } } } ListProg = g_list_next (ListProg ); } // Test application de ReplayGain if( TRUE == BoolList ) { // Appel au ReplayGain rpg.bool_compteur = TRUE; rpg.bool_etat = TRUE; PtrTabArgs [ pos++ ] = NULL; conv_to_convert( PtrTabArgs, FALSE, REPLAYGAIN, rpg.MessUser ); PtrTabArgs = filelc_RevoveTab( PtrTabArgs ); rpg.bool_compteur = FALSE; // Set update ListProg = g_list_first (ListEtat ); while (ListProg ) { if( NULL != (PtrReplayGain = (ETAT_REPLAYGAIN *)ListProg->data) ) { *PtrReplayGain = RPG_ATTENTE; } ListProg->data = NULL; ListProg = g_list_next (ListProg ); } g_list_free (ListEtat ); ListEtat = NULL; rpg.bool_update = TRUE; } // suppression des elements de la liste ListProg = g_list_first (list ); while (ListProg ) { if( NULL != (Ptr = (gchar *)ListProg->data) ) { g_free (Ptr ); Ptr = NULL; } ListProg->data = NULL; ListProg = g_list_next (ListProg ); } g_list_free (list ); list = NULL; } // // --------------------------------------------------------------------------- // TIMEOUT & THREAD // --------------------------------------------------------------------------- // static gint replaygain_timeout (gpointer data) { if( TRUE == conv.bool_percent_conv || TRUE == rpg.bool_compteur ) { gchar *str = NULL; gchar *spinner="|/-\\"; gchar foo [ 2 ]; foo [ 0 ] = spinner[rpg.pass_conv++%4]; foo [ 1 ] = '\0'; str = g_strdup_printf ( "%s Please wait %s", foo, foo ); WindScan_set_label_bar( str ); g_free (str ); str = NULL; // rpg.total_percent = (double)rpg.ElementActif / (double)rpg.NbrElementsInList; WindScan_set_pulse( ); conv.bool_percent_conv = FALSE; } if( TRUE == rpg.bool_update ) { rpg.bool_update = FALSE; file_pixbuf_update_glist ( ); file_set_flag_buttons ( ); return (TRUE ); } if( TRUE == rpg.bool_etat ) { rpg.bool_etat = FALSE; } if( TRUE == rpg.bool_thread_end ) { if( rpg.type_replaygain == _CLEAR_REPLAYGAIN_ ) { fileaction_set_end (TYPE_REPLAYGAINCLEAR ); } else if( rpg.type_replaygain == _APPLY_REPLAYGAIN_ ) { fileaction_set_end (TYPE_REPLAYGAINAPPLY ); } gtk_timeout_remove (rpg.handler_timeout ); } return (TRUE ); } // // static void replaygain_thread (void *arg) { rpg.bool_thread_end = FALSE; if( rpg.type_replaygain == _CLEAR_REPLAYGAIN_ ) { replaygain_set_list( MP3GAIN, RPG_EFFACER ); replaygain_set_list( METAFLAC, RPG_EFFACER ); replaygain_set_list( WVGAIN, RPG_EFFACER ); replaygain_set_list( VORBISGAIN, RPG_EFFACER ); } else if( rpg.type_replaygain == _APPLY_REPLAYGAIN_ ) { replaygain_set_list( MP3GAIN, RPG_PISTE ); replaygain_set_list( MP3GAIN, RPG_ALBUM ); replaygain_set_list( METAFLAC, RPG_ALBUM ); replaygain_set_list( WVGAIN, RPG_PISTE ); replaygain_set_list( WVGAIN, RPG_ALBUM ); replaygain_set_list( VORBISGAIN, RPG_PISTE ); replaygain_set_list( VORBISGAIN, RPG_ALBUM ); } rpg.bool_thread_end = TRUE; pthread_exit(0 ); } // // --------------------------------------------------------------------------- // GET LIST REPLAYGAIN -- CLEAR & APPLY // --------------------------------------------------------------------------- // void replaygain_get_list_Clear (void) { GList *list = NULL; DETAIL *detail = NULL; // PRINT_FUNC_LF( ); list = g_list_first (entetefile ); while (list ) { if( NULL != (detail = (DETAIL *)list->data) ) { if( detail->type_infosong_file_is == FILE_IS_OGG || detail->type_infosong_file_is == FILE_IS_MP3 || detail->type_infosong_file_is == FILE_IS_FLAC || detail->type_infosong_file_is == FILE_IS_WAVPACK ) { if( detail->Etat_ReplayGain == RPG_EFFACER ) { rpg.NbrElementsInList ++; } } } list = g_list_next( list ); } } // // void replaygain_get_list_Apply( void ) { GList *list = NULL; DETAIL *detail = NULL; // PRINT_FUNC_LF( ); list = g_list_first( entetefile ); while( list ) { if( NULL != (detail = (DETAIL *)list->data )) { if( detail->type_infosong_file_is == FILE_IS_OGG || detail->type_infosong_file_is == FILE_IS_MP3 || detail->type_infosong_file_is == FILE_IS_FLAC || detail->type_infosong_file_is == FILE_IS_WAVPACK ) { if( detail->Etat_ReplayGain != RPG_EFFACER && detail->Etat_ReplayGain != RPG_ATTENTE ) { rpg.NbrElementsInList ++; } } } list = g_list_next( list ); } } // // --------------------------------------------------------------------------- // ACTION // --------------------------------------------------------------------------- // void replaygain_action( TYPE_REPLAYGAIN type_replaygain) { // PRINT_FUNC_LF( ); rpg.bool_thread_end = FALSE; rpg.bool_etat = FALSE; rpg.NbrElementsInList = 0; rpg.ElementActif = 0; rpg.bool_compteur = FALSE; rpg.pass_conv = -1; rpg.bool_update = FALSE; rpg.type_replaygain = type_replaygain; if( type_replaygain == _CLEAR_REPLAYGAIN_ ) { replaygain_get_list_Clear(); } else if( type_replaygain == _APPLY_REPLAYGAIN_ ) { replaygain_get_list_Apply(); } conv_reset_struct( WindScan_close_request ); WindScan_open( "ReplayGain", WINDSCAN_PULSE ); WindScan_set_label( "ReplayGain ..." ); rpg.handler_timeout = gtk_timeout_add( 100, replaygain_timeout, 0 ); pthread_create( &rpg.nmr_tid, NULL ,(void *)replaygain_thread, (void *)NULL ); } xcfa-4.3.6/src/cd_audio.h0000644000175000017500000002363312122563437012111 00000000000000 /* * file : cd_audio.h * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifndef cd_audio_h #define cd_audio_h 1 #include "tags.h" typedef enum { TYPE_CUE_NONE = 0, TYPE_CUE_CD, TYPE_CUE_FILE } TYPE_CUE; typedef enum { EXTRACT_WITH_CDPARANOIA = 0, EXTRACT_WITH_CDPARANOIA_MODE_2, EXTRACT_WITH_CDPARANOIA_EXPERT, EXTRACT_WITH_CDDA2WAV } EXTRACT_WITH; typedef struct { GtkWidget *Adr_checkbutton_log_cdparanoia_mode_expert; // GtkComboBox *Adr_combobox_discid_cd; // GtkComboBox *Adr_combobox_normalise_cd; // GtkComboBox *Adr_Combo_Box; // GtkComboBox *Adr_combobox_serveur; // GtkWidget *Adr_button_applique_change; // GtkWidget *Adr_Button_Cancel_cddb; // GtkWidget *Adr_Button_Raffraichir; // GtkWidget *Adr_Label_Duree; // GtkWidget *Adr_Label_Titre; // GtkWidget *Adr_Label_Statusbar; // GtkButton *Adr_Button_Destination; // GtkWidget *Adr_Progressbar; // GtkWidget *Adr_scroll; // GtkListStore *Adr_List_Store; // GtkTreeModel *Adr_Tree_Model; // GtkTreeSelection *Adr_Line_Selected; // GtkWidget *Adr_TreeView; // GdkPixbuf *Pixbuf_Coche; // coche.png GdkPixbuf *Pixbuf_Coche_exist; // coche_exist.png GdkPixbuf *Pixbuf_Selected; // selected.png GdkPixbuf *Pixbuf_Selected_exist; // selected_exist.png GdkPixbuf *Pixbuf_Selected_expert; // selected_expert.png GdkPixbuf *Pixbuf_Selected_expert_exist; // selected_expert_exist.png GdkPixbuf *Pixbuf_CdPlay; // play.png GdkPixbuf *Pixbuf_CdStop; // sol.png GdkPixbuf *Pixbuf_Normalize; // normalize1.png GdkPixbuf *Pixbuf_Normalize_Coche; // normalize2.png GdkPixbuf *Pixbuf_NotInstall; // not_install.png gboolean Bool_create_file_m3u; // gchar *Pathname_m3u; // gchar *Pathname_xspf; // GtkWidget *Adr_Expander; // GtkWidget *Adr_notebook; // GtkWidget *Adr_entry_tag_titre_album; // GtkWidget *Adr_entry_tag_nom_artiste; // GtkWidget *Adr_spinbutton_tag_annee; // GtkWidget *Adr_entry_new_titre_cdaudio; // GtkWidget *Adr_entry_tag_titre_chanson; // GtkWidget *Adr_entry_tag_titre_fichier; // GtkWidget *Adr_entry_tag_commentaire; // GtkWidget *Adr_spinbutton_tag_piste; // GtkWidget *Adr_entry_stockage_cdaudio; // GtkWidget *Adr_label_stockage_cdaudio; // GtkWidget *Adr_entry_name_file_cue; // TYPE_CUE TypeCreateCue; // TYPE_CUE_NONE | TYPE_CUE_CD | TYPE_CUE_FILE GtkTreeViewColumn *Adr_Column_Play; GtkTreeViewColumn *Adr_Column_Flac; GtkTreeViewColumn *Adr_Column_Wav; GtkTreeViewColumn *Adr_Column_Mp3; GtkTreeViewColumn *Adr_Column_Ogg; GtkTreeViewColumn *Adr_Column_M4a; GtkTreeViewColumn *Adr_Column_Aac; GtkTreeViewColumn *Adr_Column_Mpc; GtkTreeViewColumn *Adr_Column_Ape; GtkTreeViewColumn *Adr_Column_Wavpack; GtkTreeViewColumn *Adr_Column_Num; GtkTreeViewColumn *Adr_Column_Time; GtkTreeViewColumn *Adr_Column_Normalise; GtkCellRenderer *Renderer; GtkTreeViewColumn *Adr_Column_Nom; guint handler_timeout_read_toc_cd; gboolean bool_thread_read_toc_cd; gboolean bool_timeout_read_toc_cd; gboolean bool_enter_parse; } VAR_CD; extern VAR_CD var_cd; typedef enum { // Pour extraction / conversion */ ETAT_CONV_CD_NONE, // Aucune demande ETAT_CONV_CD_WAITING, // En attente ETAT_CONV_CD_CONV_OK // Fait } ETAT_CONV_CD; typedef enum { CD_ETAT_NONE = 0, CD_ETAT_PRG_ABSENT, CD_ETAT_ATTENTE, CD_ETAT_ATTENTE_EXIST, CD_ETAT_SELECT, CD_ETAT_SELECT_EXPERT, CD_ETAT_SELECT_EXIST, CD_ETAT_SELECT_EXPERT_EXIST } ETAT_SELECTION_CD; typedef enum { CD_ETAT_PLAY_NONE = 0, CD_ETAT_PLAY_PRG_ABSENT, CD_ETAT_PLAY_ATTENTE, CD_ETAT_PLAY } ETAT_PLAY_CD; typedef enum { CD_NORM_PEAK_NONE = 0, CD_NORM_PEAK, // INDIVIDUEL ajustement maximal du volume CD_NORM_PEAK_WAITING // COLLECTIF ajustement maximal du volume } ETAT_NORMALISE_CD; typedef enum { NUM_WAV = 0, NUM_WAV_EXPERT_1, NUM_WAV_EXPERT_2, NUM_FLAC, NUM_APE, NUM_WAVPACK, NUM_OGG, NUM_M4A, NUM_AAC, NUM_MPC, NUM_MP3, NUM_TOTAL } NUM_TYPE; typedef struct { gchar *Arg [ 100 ]; gboolean WithCommandLineUser; size_t Size; } LIST_CONV; typedef struct { gchar *Name1; gchar *Name2; } EXTRACT_EXPERT; typedef struct { LIST_CONV *ListConv; ETAT_PLAY_CD EtatPlay; // gboolean Bool_Delette_Flac; // Le fichier provisoir doit etre efface gboolean Bool_Delette_Wav; // gboolean Bool_Delette_Mp3; // gboolean Bool_Delette_Ogg; // gboolean Bool_Delette_M4a; // gboolean Bool_Delette_Aac; // gboolean Bool_Delette_Mpc; // gboolean Bool_Delette_Ape; // gboolean Bool_Delette_WavPack; // ETAT_SELECTION_CD EtatSelection_Flac; // ETAT_SELECTION_CD EtatSelection_Wav; // ETAT_SELECTION_CD EtatSelection_Mp3; // ETAT_SELECTION_CD EtatSelection_Ogg; // ETAT_SELECTION_CD EtatSelection_M4a; // ETAT_SELECTION_CD EtatSelection_Aac; // ETAT_SELECTION_CD EtatSelection_Mpc; // ETAT_SELECTION_CD EtatSelection_Ape; // ETAT_SELECTION_CD EtatSelection_WavPack; // gint Num_Track; // Numero de piste gchar *Str_Track; // gchar *NameSong; // Le nom du futur fichier gchar *Duree; // La duree d'ecoute ETAT_CONV_CD Etat_Flac; // Pour extraction / conversion ETAT_CONV_CD Etat_Wav; // ETAT_CONV_CD Etat_Mp3; // ETAT_CONV_CD Etat_Ogg; // ETAT_CONV_CD Etat_m4a; // ETAT_CONV_CD Etat_Aac; // ETAT_CONV_CD Etat_Mpc; // ETAT_CONV_CD Etat_Ape; // ETAT_CONV_CD Etat_WavPack; // ETAT_CONV_CD Etat_Sox; gboolean EtatNormalise; ETAT_NORMALISE_CD EtatPeak; gchar *PathName_Dest_Flac; // Emplacement du fichier gchar *PathName_Dest_Wav; // gchar *PathName_Dest_Mp3; // gchar *PathName_Dest_Ogg; // gchar *PathName_Dest_M4a; // gchar *PathName_Dest_Aac; // gchar *PathName_Dest_Mpc; // gchar *PathName_Dest_Ape; // gchar *PathName_Dest_WavPack; // gchar *PathName_Dest_Tmp; TAGS *tags; // Tags gboolean BoolM3uForWav; EXTRACT_EXPERT ExtractExpert; gboolean EtatBoolWavpack; } CD_AUDIO; typedef struct { // UN ENTETE POUR LE CD gchar *TitleCD; // Titre integral du CD gchar *Title; // Titre du CD gchar *Artiste; // Nom de l'artiste gboolean BoolMultiArtiste; // gchar *StrDureeCd; // Duree totale du cd gint TotalTracks; // Nombre total de pistes trouvees gint NumGenre; // Genre en numerique gchar *StrGenre; // Genre en chaine gint NumYear; // Annee du cd en numerique gchar *StrYear; // Annee du cd en chaine GList *GList_Audio_cd; // UNE STRUCTURE 'AUDIO' PAR PISTE gboolean Bool_Read_Infos_cd; // TRUE or FALSE gchar *Message; // Message pour l'utilisateur gchar *NameCD_Device; // Pointeur sur le device en selection gchar Str_Nice [ 10 ]; // Priorite systeme gchar Str_Bitrate_Lame [ 10 ]; // Bitrate pour Lame gchar Str_Bitrate_oggenc [ 10 ]; // Bitrate pour Oggenc } ENTETE_CD; extern ENTETE_CD EnteteCD; typedef enum { // SELECTION ou DESELECTION POUR LES CONVERSIONS CD_CONV_DESELECT_ALL = 0, CD_CONV_DESELECT_V, CD_CONV_DESELECT_H, CD_CONV_SELECT_V, CD_CONV_SELECT_EXPERT_V, CD_CONV_SELECT_H, CD_CONV_SELECT_EXPERT_H, // SELECTION ou DESELECTION POUR LA NORMALISATION CD_REPLAYGAIN_SELECT_V, CD_REPLAYGAIN_DESELECT_V } TYPE_SET_FROM_POPUP_CD; /* *--------------------------------------------------------------------------- * CD_AUDIO.C *--------------------------------------------------------------------------- */ void cdaudio_deallocate_glist (void); gchar *cdaudio_get_result_destination (void); void cdaudio_set_flag_buttons (void); void cdaudio_affiche_glist_audio (void); void cdaudio_update_glist (void); void cdaudio_set_titre_chanson (void); CD_AUDIO *cdaudio_get_line_selected (void); void cdaudio_deallocate_glist_context (void); gboolean cdaudio_get_bool_is_wav_extract_to_cue (void); void cdaudio_put_label_titre (gchar *Messag); void cdaudio_put_label_duree (gchar *Messag); void cdaudio_from_popup (TYPE_SET_FROM_POPUP_CD TypeSetFromPopup, CD_AUDIO *Audio, TYPE_FILE_IS TypeFileIs); void cd_audio_bool_access_discid( gboolean p_bool_access ); CD_AUDIO *cdaudio_get_line_selected_for_extract( void ); /* *--------------------------------------------------------------------------- * CD_EXPANDER.C *--------------------------------------------------------------------------- */ void cdexpander_set_entry_tag_titre_album (void); void cdexpander_set_entry_tag_nom_artiste (void); void cdexpander_set_spinbutton_tag_annee (void); void cdexpander_set_entry_tag_titre_chanson (void); void cdexpander_set_new_genre (void); void cdexpander_set_entry_tag_commentaire (void); void cdexpander_set_spinbutton_tag_piste (void); void cdexpander_set_entry_tag_titre_fichier_m3u (void); void cdexpander_set_sensitive_notebook (void); void cd_expander_set_genre( gint p_num, gchar *p_name ); /* *--------------------------------------------------------------------------- * CD_AUDIO_TOC *--------------------------------------------------------------------------- */ void cdaudiotoc_reffresh_list_cd (void); void cdaudiotoc_button_eject_cd_clicked (void); #endif xcfa-4.3.6/src/proc.c0000644000175000017500000000757212122563465011305 00000000000000 /* * file : proc.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "proc.h" /* *--------------------------------------------------------------------------- * VARIABLES *--------------------------------------------------------------------------- */ #define DRIVE_NAME "drive name:" /* *--------------------------------------------------------------------------- * FUNCTIONS *--------------------------------------------------------------------------- */ /* Detruit la GList */ GList *proc_remove_glist_cdrominfo (GList *list) { GList *LList = list; PRINT_FUNC_LF(); list = g_list_first (list); while (list) { if ((gchar *)list->data) { g_free ((gchar *)list->data); list->data = NULL; } /*list = g_list_remove (list, list->data);*/ list = g_list_next(list); } g_list_free (LList); LList = NULL; return ((GList *)NULL); } /* Verification visuelle des entree du GList */ void proc_print_glist_cdrominfo (GList *list) { GList *p_list = NULL; /*PRINT_FUNC_LF();*/ p_list = g_list_first (list); while (p_list) { if (p_list->data) { g_print ("%s\n", (gchar *)p_list->data); } p_list = g_list_next(p_list); } } /* Recup des info depuis le fichier '/proc/sys/dev/cdrom/info' et * retour dans un GList. * Si le fichier n'existe pas, retour NULL */ GList *proc_get_proc_init_cdrominfo (void) { GList *List = NULL; GError *Aerror = NULL; gchar *Lcontent = NULL; gchar **Larrbuf = NULL; gchar *p = NULL; /* Pointer begin DRIVE_NAME in Larrbuf */ gchar *s_proc = NULL; /* String DRIVE_NAME */ gchar *s_alloc = NULL; /* String to GList */ gchar *ps = NULL; /* Pointer begin s_proc */ gint i; /* Counter */ PRINT_FUNC_LF(); if (FALSE == g_file_get_contents("/proc/sys/dev/cdrom/info", &Lcontent, NULL, &Aerror)) { g_print ("\t---------------------------------------------------\n"); g_print ("\tLE FICHIER: N'EXISTE PAS\n"); g_print ("\t---------------------------------------------------\n"); return (NULL); } Larrbuf = g_strsplit(Lcontent, "\n", 0); /* TEST TO DEBUG * g_free (Larrbuf[2]); Larrbuf[2] = g_strdup ("drive name: hdd hdc scd4 sr0"); */ for (i=0; Larrbuf[i]; i++) { if (0 == strncmp(Larrbuf[i], DRIVE_NAME, strlen(DRIVE_NAME))) { s_proc = g_strdup (Larrbuf[i]); /*g_print ("Larrbuf[%02d] = %s\n", i, s_proc);*/ p = Larrbuf[i] + strlen(DRIVE_NAME); while (*p) { if (*p == ' ' || *p == '\t') { p ++; continue; } strcpy (s_proc, p); ps = s_proc; while ((*ps >= 'a' && *ps <= 'z') || (*ps >= '0' && *ps <= '9')) ps++; *ps = '\0'; // g_print ("1>%s\n", s_proc); s_alloc = g_strdup (s_proc); List = g_list_append (List, s_alloc); while (*p && ((*p >= 'a' && *p <= 'z') || (*p >= '0' && *p <= '9'))) p++; } g_free (s_proc); s_proc = NULL; } } g_strfreev(Larrbuf); g_free(Lcontent); g_free (s_proc); return (List); } xcfa-4.3.6/src/conv.h0000644000175000017500000001207712164313311011275 00000000000000 /* * file : conv.h * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifndef conv_h #define conv_h 1 #include #include typedef enum { _EXTRACT_ = 0, // _CONV_ // } TYPE_OPER; typedef enum { // Les types de conversions possibles NONE_CONV = 0, // FLAC_FLAC_TO_WAV, // FLAC_WAV_TO_FLAC, // LAME_WAV_TO_MP3, // LAME_FLAC_TO_MP3, // OGGENC_WAV_TO_OGG, // OGGENC_FLAC_TO_OGG, // OGG123_OGG_TO_WAV, // MPG321_MP3_TO_WAV, // SOX_WAV_TO_WAV, // SHORTEN_SHN_TO_WAV, // FAAD_M4A_TO_WAV, // FAAC_WAV_TO_M4A, // MPLAYER_WAV_TO_WAV, // MPLAYER_WMA_TO_WAV, // MPLAYER_AUDIO_TO_WAV, // MPLAYER_M4A_TO_WAV, // MPLAYER_OGG_TO_WAV, // MPLAYER_MP3_TO_WAV, // MPLAYER_MPC_TO_WAV, // MPLAYER_RM_TO_WAV, // MPLAYER_DTS_TO_WAV, // MPLAYER_AIFF_TO_WAV, // COPY_FILE, // NORMALISE_CALCUL, // NORMALISE_APPLIQUE, // NORMALISE_EXEC, // NORMALISE_GET_LEVEL, // MPPDEC_MPC_TO_WAV, // MPPENC_WAV_TO_MPC, // MAC_APE_TO_WAV, // MAC_WAV_TO_APE, // WAVPACK_WAV_TO_WAVPACK, // WVUNPACK_WAVPACK_TO_WAV, // CDPARANOIA_CD_TO_WAV, // CDPARANOIA_CD_TO_WAV_EXPERT, // CDPARANOIA_CD_TO_WAV_EXPERT_SEGMENT, // CDDA2WAV_CD_TO_WAV, // REPLAYGAIN, // LSDVD, // SPLIT, // CDDB_TOOL, // ICEDAX, // AACPLUSENC_WAV_TO_AAC, // WAVSPLIT_EXTRACT, // A52DEC_AC3_TO_WAV } TYPE_CONV; #define MAX_ARG_CONV 200 typedef struct { gboolean BoolIsExtract; // gboolean BoolIsConvert; // gboolean BoolIsCopy; // gboolean BoolIsNormalise; // gboolean BoolIsReplaygain; // gboolean BoolIsa52dec; // GtkWidget *Adr_label_info_wind; // Adresse label information GtkWidget *Adr_label_extract; // Adresse label extraction GtkWidget *Adr_progressbar_extract; // Adresse Progressbar extraction GtkWidget *Adr_label_conversion; // Adresse label conversion GtkWidget *Adr_progressbar_conversion; // Adresse Progressbar conversion GtkWidget *Adr_label_total; // Adresse label total GtkWidget *Adr_progressbar_total; // Adresse Progressbar total double extract_percent; // Pourcentage actuel de progession gint total_rip; // Nombre total de fichiers a extraires gint rip_completed; // Nombre de fichiers extraits double conversion_percent; // Pourcentage actuel de progession gdouble TimeMplayer; // Pourcentage actuel de progession en temps gint total_convert; // Nombre total de fichiers a convertir gint encode_completed; // Nombre de fichiers convertis double total_percent; // Pourcentage TOTAL actuel de progession gboolean BoolPutTextview; // GList *ListPutTextview; // gboolean bool_percent_conv; // TRUE : print(conversion_percent, total_percent) gboolean bool_percent_extract; // TRUE : print(conversion_percent, total_percent) gboolean bool_stop; // TRUE : stop thread and timeout gchar *TmpRep; // Le repertoire temporaire d'extractions/conversions pid_t code_fork_conv; // Num Code Fork pid_t code_fork_extract; // Num Code Fork guint handler_timeout_conv; // Numerate timeout gboolean bool_thread_conv; // TRUE : thread in gboolean bool_thread_extract; // TRUE : thread in int signal_numchildren_conv; // the signal handler int signal_numchildren_extract; // the signal handler int tube_conv [ 2 ]; // for pipe int tube_extract [ 2 ]; // for pipe gboolean Bool_MAJ_select; // TRUE gchar *ArgExtract [ MAX_ARG_CONV + 20 ]; // double value_PEAK_RMS_GROUP_ARGS; // gboolean (*Func_request_stop) (void); // } CONV; extern CONV conv; void conv_inc_rip_completed (void); void conv_inc_encode_completed (void); void conv_stop_conversion (void); void conv_reset_struct (void *p_func); gboolean conv_to_convert( gchar **p_TabArgs, gboolean WithParameter, TYPE_CONV type_conv, gchar *info ); gboolean conv_exec_extract (gboolean WithParameter, TYPE_CONV type_conv, gchar *info); gboolean conv_copy_src_to_dest (gchar *filesrc, gchar *filedest); gchar **conv_with_sox_get_param (gchar *filesrc, gchar *filedest, gchar *frequence, gchar *voie, gchar *bits); gchar **conv_with_sox_float_get_param (gchar *filesrc, gchar *filedest); gchar **conv_lsdvd_read_get_param( gchar *p_PathDvd ); #endif xcfa-4.3.6/src/win_vte.h0000644000175000017500000000214412122563437012007 00000000000000 /* * file : win_vte.h * project : XCFA * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - Creation d'une base de programmation en langage C de type GNU avec les autotools * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifndef __win_vte_h__ #define __win_vte_h__ 1 void WinVte_window_write_va( gchar *p_text, ... ); void WinVte_reset( void ); void WinVte_realize( GtkWidget *widget ); gboolean WinVte_is_ok( void ); #endif xcfa-4.3.6/src/options_tags.c0000644000175000017500000001326612122563465013050 00000000000000 /* * file : options_tags.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "configuser.h" #include "options.h" /* Config.BoolArtistTag Config.BoolTitleTag Config.BoolAlbumTag Config.BoolNumerateTag Config.BoolGenreTag Config.BoolYearTag Config.BoolCommentTag */ void on_checkbutton_artist_tag_realize (GtkWidget *widget, gpointer user_data) { var_options.Adr_checkbutton_artist_tag = widget; gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON (var_options.Adr_checkbutton_artist_tag), Config.BoolArtistTag); } void on_checkbutton_title_tag_realize (GtkWidget *widget, gpointer user_data) { var_options.Adr_checkbutton_title_tag = widget; gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON (var_options.Adr_checkbutton_title_tag), Config.BoolTitleTag); } void on_checkbutton_album_tag_realize (GtkWidget *widget, gpointer user_data) { var_options.Adr_checkbutton_album_tag = widget; gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON (var_options.Adr_checkbutton_album_tag), Config.BoolAlbumTag); } void on_checkbutton_numerate_tag_realize (GtkWidget *widget, gpointer user_data) { var_options.Adr_checkbutton_numerate_tag = widget; gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON (var_options.Adr_checkbutton_numerate_tag), Config.BoolNumerateTag); } void on_checkbutton_genre_tag_realize (GtkWidget *widget, gpointer user_data) { var_options.Adr_checkbutton_genre_tag = widget; gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON (var_options.Adr_checkbutton_genre_tag), Config.BoolGenreTag); } void on_checkbutton_year_tag_realize (GtkWidget *widget, gpointer user_data) { var_options.Adr_checkbutton_year_tag = widget; gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON (var_options.Adr_checkbutton_year_tag), Config.BoolYearTag); } void on_checkbutton_comment_tag_realize (GtkWidget *widget, gpointer user_data) { var_options.Adr_checkbutton_comment_tag = widget; gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON (var_options.Adr_checkbutton_comment_tag), Config.BoolCommentTag); } void on_checkbutton_tag_clicked (GtkButton *button, gpointer user_data) { // COLOR_LINE_COMMAND ColorLineCommand = COLOR_NONE; // PRINT_FUNC_LF(); if (GTK_TOGGLE_BUTTON (button) == GTK_TOGGLE_BUTTON (GLADE_GET_OBJECT("checkbutton_artist_tag"))) { // ColorLineCommand = COLOR_TAG_ARTIST; Config.BoolArtistTag = gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON (var_options.Adr_checkbutton_artist_tag)); } else if (GTK_TOGGLE_BUTTON (button) == GTK_TOGGLE_BUTTON (GLADE_GET_OBJECT("checkbutton_title_tag"))) { // ColorLineCommand = COLOR_TAG_TITLE; Config.BoolTitleTag = gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON (var_options.Adr_checkbutton_title_tag)); } else if (GTK_TOGGLE_BUTTON (button) == GTK_TOGGLE_BUTTON (GLADE_GET_OBJECT("checkbutton_album_tag"))) { // ColorLineCommand = COLOR_TAG_ALBUM; Config.BoolAlbumTag = gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON (var_options.Adr_checkbutton_album_tag)); } else if (GTK_TOGGLE_BUTTON (button) == GTK_TOGGLE_BUTTON (GLADE_GET_OBJECT("checkbutton_numerate_tag"))) { // ColorLineCommand = COLOR_TAG_NUMERATE; Config.BoolNumerateTag = gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON (var_options.Adr_checkbutton_numerate_tag)); } else if (GTK_TOGGLE_BUTTON (button) == GTK_TOGGLE_BUTTON (GLADE_GET_OBJECT("checkbutton_genre_tag"))) { // ColorLineCommand = COLOR_TAG_GENRE; Config.BoolGenreTag = gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON (var_options.Adr_checkbutton_genre_tag)); } else if (GTK_TOGGLE_BUTTON (button) == GTK_TOGGLE_BUTTON (GLADE_GET_OBJECT("checkbutton_year_tag"))) { // ColorLineCommand = COLOR_TAG_YEAR; Config.BoolYearTag = gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON (var_options.Adr_checkbutton_year_tag)); } else if (GTK_TOGGLE_BUTTON (button) == GTK_TOGGLE_BUTTON (GLADE_GET_OBJECT("checkbutton_comment_tag"))) { // ColorLineCommand = COLOR_TAG_COMMENT; Config.BoolCommentTag = gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON (var_options.Adr_checkbutton_comment_tag)); } /* options_set_datas_interne (ColorLineCommand, var_options.Adr_label_lame_mp3, LAME_WAV_TO_MP3); options_set_datas_interne (ColorLineCommand, var_options.Adr_label_oggenc_ogg, OGGENC_WAV_TO_OGG); options_set_datas_interne (ColorLineCommand, var_options.Adr_label_flac_flac, FLAC_WAV_TO_FLAC); options_set_datas_interne (ColorLineCommand, var_options.Adr_label_mac_ape, MAC_WAV_TO_APE); options_set_datas_interne (ColorLineCommand, var_options.Adr_label_wavpack_wv, WAVPACK_WAV_TO_WAVPACK); options_set_datas_interne (ColorLineCommand, var_options.Adr_label_musepack_mpc, MPPENC_WAV_TO_MPC); options_set_datas_interne (ColorLineCommand, var_options.Adr_label_faac_m4a, FAAC_WAV_TO_M4A); */ } xcfa-4.3.6/src/win_about.c0000644000175000017500000002224312122563542012315 00000000000000 /* * file : wind_about.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "get_info.h" #include "web.h" #include "win_about.h" typedef struct { GtkWidget *AdrWin; gboolean IsShow; } VAR_WINABOUT; VAR_WINABOUT VarWinAbout = { NULL, FALSE }; // // gboolean on_wind_about_delete_event (GtkWidget *widget, GdkEvent *event, gpointer user_data) { gtk_widget_hide (VarWinAbout.AdrWin); VarWinAbout.IsShow = FALSE; return (TRUE); } // // gboolean on_wind_about_destroy_event (GtkWidget *widget, GdkEvent *event, gpointer user_data) { gtk_widget_hide (VarWinAbout.AdrWin); VarWinAbout.IsShow = FALSE; return (TRUE); } // // void on_button_ok_about_clicked (GtkButton *button, gpointer user_data) { VarWinAbout.IsShow = FALSE; gtk_widget_hide (VarWinAbout.AdrWin); } // // void on_button_contrib_about_clicked (GtkButton *button, gpointer user_data) { typedef struct { gchar *NameWidget; gchar *Url; } TYPE_BUTTON; #define MAX_TYPE_BUTTON_PAGE_WEB 21 TYPE_BUTTON TypeButton [ MAX_TYPE_BUTTON_PAGE_WEB ] = { {"button_pagexcfa_about", "http://www.xcfa.tuxfamily.org"}, // {"button01_contrib_about", "http://www.road2mayotte.org/index.html"}, {"button01_contrib_about", "http://www.road2mayotte.org/blook/"}, {"button02_contrib_about", "http://e17blog.tuxfamily.org/index.php"}, {"button03_contrib_about", "http://ubunteros.tuxfamily.org/spip.php?page=plan"}, {"button04_contrib_about", "http://www.jesuislibre.org"}, {"button05_contrib_about", "http://audiobezon.dlinkddns.com/"}, {"button06_contrib_about", "http://www.tuxfamily.org"}, {"button07_contrib_about", "http://www.framasoft.net/article4492.html"}, {"button08_contrib_about", "http://ekd.tuxfamily.org"}, {"button09_contrib_about", "http://defis-libristes.tuxfamily.org/viewforum.php?id=2"}, {"button10_contrib_about", "http://doc.ubuntu-fr.org/xcfa"}, {"button11_contrib_about", "http://unm.arcis.free.fr/spip.php?article109"}, {"button12_contrib_about", "http://ubunteros.tuxfamily.org/spip.php?article168"}, {"button13_contrib_about", "http://ubunteros.tuxfamily.org/spip.php?article159"}, {"button14_contrib_about", "http://ubunteros.tuxfamily.org/spip.php?article30"}, // {"button15_contrib_about", "http://lalinuxerie.free.fr/"}, {"button15_contrib_about", "http://linuxerie.midiblogs.com/"}, {"button16_contrib_about", "http://www.debian-multimedia.org/"}, {"button17_contrib_about", "http://frugalware.org/"}, {"button20_contrib_about", "http://opera-info.de/forum/thread.php?threadid=20506"}, {"button21_contrib_about", "http://linuxforen.de/forums/showthread.php?p=1693658"}, {"button22_contrib_about", "http://www.alessiotreglia.com/"} }; gint cpt; for (cpt = 0; cpt < MAX_TYPE_BUTTON_PAGE_WEB; cpt ++) { if (GTK_BUTTON (button) == GTK_BUTTON (GTK_WIDGET (GLADE_GET_OBJECT(TypeButton [ cpt ].NameWidget)))) { web_goto_url (TypeButton [ cpt ].Url); break; } } } // // void on_label_button_pagexcfa_about_realize (GtkWidget *widget, gpointer user_data) { gtk_label_set_markup (GTK_LABEL (widget), _(" Xcfa sur le web")); } // // void on_textview_label_license_about_realize (GtkWidget *widget, gpointer user_data) { gtk_text_view_set_editable (GTK_TEXT_VIEW (widget), FALSE); gtk_text_view_set_justification (GTK_TEXT_VIEW (widget), GTK_JUSTIFY_CENTER); gtk_text_view_set_cursor_visible (GTK_TEXT_VIEW (widget), FALSE); gtk_text_buffer_set_text (gtk_text_view_get_buffer (GTK_TEXT_VIEW (widget)), "\n\nCopyright (C) 2003 - 2013\n\n\n" "XCFA is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 3 of the License, or\n" "(at your option) any later version.\n\n" "XCFA is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n\n" "You should have received a copy of the GNU General Public License\n" "along with this program; if not, see\n" "http://www.gnu.org/licenses\n" "or write to\n" "the Free Software Foundation,Inc.\n" "51 Franklin Street\n" "Fifth Floor\n" "Boston, MA 02110-1301 USA\n\n------------\n\n" "XCFA est un logiciel libre, vous pouvez le redistribuer\n" "et / ou le modifier selon les termes de la Licence Publique Générale GNU\n" "telle que publiée par la Free Software Foundation; soit la version 3 de\n" "la Licence, ou (à votre choix) toute version ultérieure.\n\n" "XCFA est distribué dans l'espoir qu'il sera utile, mais SANS AUCUNE GARANTIE,\n" "sans même la garantie implicite de COMMERCIALISATION ou D'ADAPTATION A UN\n" "USAGE PARTICULIER. Voir la Licence Publique Générale GNU pour plus de détails.\n\n" "Vous devriez avoir reçu une copie de la Licence Publique Générale GNU avec\n" "ce programme, sinon, voir\n" "http://www.gnu.org/licenses\n" "ou écrivez à la\n" "Free Software Foundation, Inc,\n" "51 Franklin Street\n" "Fifth Floor\n" "Boston, Massachusetts, USA 02110-1301\n" , -1); } // // void on_label_contrib_about_realize (GtkWidget *widget, gpointer user_data) { #define TEXTE _("\n" \ "Au tout debut:\n\n" \ "Serres Patrick, Hamann Regis, Fabien Gregis, @Dzef, @alteo_gange, \n" \ "@Leonux, @zarer, @Shankarius, @bishop, @Ludo, @Patachonf,\n" \ "... ;-)\n\n" \ "") gtk_label_set_use_markup (GTK_LABEL (widget), TRUE); gtk_label_set_justify (GTK_LABEL (widget), GTK_JUSTIFY_CENTER); gtk_label_set_markup (GTK_LABEL (widget), TEXTE); } // // void AboutXcfa_info_machine (GtkWidget *widget, gchar *text) { gchar *save = NULL; save = g_strdup_printf ("%s%s", gtk_label_get_label (GTK_LABEL(widget)), text); gtk_label_set_use_markup (GTK_LABEL (widget), TRUE); gtk_label_set_justify (GTK_LABEL (widget), GTK_JUSTIFY_LEFT); gtk_label_set_markup (GTK_LABEL (widget), save); gtk_widget_show (widget); g_free (save); save = NULL; } // // void on_label_about_machine_realize (GtkWidget *widget, gpointer user_data) { gchar *ptr = NULL; ptr = GetInfo_cpu_str (); AboutXcfa_info_machine (widget, "\n"); AboutXcfa_info_machine (widget, ptr); g_free (ptr); ptr = NULL; } // // void on_label_author_about_realize (GtkWidget *widget, gpointer user_data) { gtk_label_set_justify (GTK_LABEL(widget), GTK_JUSTIFY_CENTER); gtk_label_set_markup (GTK_LABEL(widget), "\nCopyright © 2003-2013 - Bulin Claude - fr\n"); } // // void on_label_xcfa_about_realize (GtkWidget *widget, gpointer user_data) { gchar *str = NULL; gchar *ModelName = GetInfo_cpu (); str = g_strdup_printf ( "\n" "GTK+ implementation of the GNU shell command.\n" "version %s\n\n" "%d CPU %d bits\n%s\n", VERSION, HostConf.NbCpu,HostConf.TypeCpu,ModelName); gtk_label_set_justify (GTK_LABEL(widget), GTK_JUSTIFY_CENTER); gtk_label_set_markup (GTK_LABEL(widget), str); g_free (str); str = NULL; g_free (ModelName); ModelName = NULL; } // // void on_image_gpl_xcfa_about_realize (GtkWidget *widget, gpointer user_data) { gchar *LineCommand = NULL; if( NULL != (LineCommand = xdg_search_data_xdg( "gplv3.png" ))) { gtk_image_set_from_file (GTK_IMAGE (widget), LineCommand); g_free (LineCommand); LineCommand = NULL; } } // // void on_image_about_realize (GtkWidget *widget, gpointer user_data) { gchar *LineCommand = NULL; if( NULL != (LineCommand = xdg_search_data_xdg( "about.png" ))) { gtk_image_set_from_file (GTK_IMAGE (widget), LineCommand); g_free (LineCommand); LineCommand = NULL; } } // // void WinAbout_open (gchar *title) { if (TRUE == VarWinAbout.IsShow) { gdk_window_raise (VarWinAbout.AdrWin->window); } else { if (NULL == VarWinAbout.AdrWin) { VarWinAbout.AdrWin = GTK_WIDGET (GLADE_GET_OBJECT("wind_about")); gtk_builder_connect_signals (GtkXcfaProjet, NULL); } gtk_window_set_transient_for (GTK_WINDOW(VarWinAbout.AdrWin), GTK_WINDOW(WindMain)); gtk_window_set_modal (GTK_WINDOW (VarWinAbout.AdrWin), TRUE); libutils_set_default_icone_to_win (VarWinAbout.AdrWin); gtk_widget_show (VarWinAbout.AdrWin); } VarWinAbout.IsShow = TRUE; if (NULL != title) gtk_window_set_title (GTK_WINDOW (VarWinAbout.AdrWin), title); } xcfa-4.3.6/src/tags_dts.c0000644000175000017500000000440712122563465012144 00000000000000 /* * file : tags_dts.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #include #include #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "tags.h" #include /* *--------------------------------------------------------------------------- * FILE IS DTS ? *--------------------------------------------------------------------------- */ /* $ file * audio.dts: data */ /* *--------------------------------------------------------------------------- * REMOVE HEADER *--------------------------------------------------------------------------- */ INFO_DTS *tagsdts_remove_info (INFO_DTS *info) { if (info) { info->tags = (TAGS *)tags_remove (info->tags); g_free (info); info = NULL; } return ((INFO_DTS *)NULL); } /* *--------------------------------------------------------------------------- * GET HEADER *--------------------------------------------------------------------------- */ INFO_DTS *tagsdts_get_info (DETAIL *detail) { INFO_DTS *ptrinfo = NULL; ptrinfo = (INFO_DTS *)g_malloc0 (sizeof (INFO_DTS)); if (ptrinfo == NULL) return (NULL); ptrinfo->tags = (TAGS *)tags_alloc (FALSE); tags_set (detail->namefile, ptrinfo->tags); return ((INFO_DTS *)ptrinfo); } xcfa-4.3.6/src/tags_ogg.c0000644000175000017500000001034012122563465012117 00000000000000 /* * file : tags_ogg.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #include #include #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "tags.h" #include /* *--------------------------------------------------------------------------- * VARIABLES *--------------------------------------------------------------------------- */ /* *--------------------------------------------------------------------------- * GET HEADER *--------------------------------------------------------------------------- */ INFO_OGG *tagsogg_remove_info (INFO_OGG *info) { if (info) { if (NULL != info->Channels) { g_free (info->Channels); info->Channels = NULL; } if (NULL != info->Rate) { g_free (info->Rate); info->Rate = NULL; } if (NULL != info->Nominal_bitrate) { g_free (info->Nominal_bitrate); info->Nominal_bitrate = NULL; } if (NULL != info->time) { g_free (info->time); info->time = NULL; } if (NULL != info->size) { g_free (info->size); info->size = NULL; } info->tags = (TAGS *)tags_remove (info->tags); g_free (info); info = NULL; } return ((INFO_OGG *)NULL); } INFO_OGG *tagsogg_get_info (DETAIL *detail) { TagLib_File *file; TagLib_Tag *tag; INFO_OGG *ptrinfo = NULL; const TagLib_AudioProperties *properties; gint m; gint s; gint sec; ptrinfo = (INFO_OGG *)g_malloc0 (sizeof (INFO_OGG)); if (ptrinfo == NULL) return (NULL); ptrinfo->tags = (TAGS *)tags_alloc (FALSE); if ((file = taglib_file_new (detail->namefile))) { taglib_set_strings_unicode(FALSE); tag = taglib_file_tag(file); properties = taglib_file_audioproperties(file); ptrinfo->tags->Title = g_strdup (taglib_tag_title(tag)); ptrinfo->tags->Artist = g_strdup (taglib_tag_artist(tag)); ptrinfo->tags->Album = g_strdup (taglib_tag_album(tag)); ptrinfo->tags->IntYear = taglib_tag_year(tag); ptrinfo->tags->Year = g_strdup_printf ("%d", ptrinfo->tags->IntYear); ptrinfo->tags->Comment = g_strdup (taglib_tag_comment(tag)); ptrinfo->tags->IntNumber = taglib_tag_track(tag); ptrinfo->tags->Number = g_strdup_printf ("%d", ptrinfo->tags->IntNumber); ptrinfo->tags->Genre = g_strdup (taglib_tag_genre(tag)); ptrinfo->tags->IntGenre = tags_get_genre_by_value (ptrinfo->tags->Genre); ptrinfo->Channels = g_strdup_printf ("%d", taglib_audioproperties_channels (properties)); ptrinfo->Rate = g_strdup_printf ("%d", taglib_audioproperties_samplerate (properties)); ptrinfo->Nominal_bitrate = g_strdup_printf ("%d", taglib_audioproperties_bitrate (properties)); ptrinfo->SecTime = sec = taglib_audioproperties_length(properties); s = sec % 60; sec /= 60; m = sec % 60; sec /= 60; if (sec > 0) ptrinfo->time = g_strdup_printf ("%02d:%02d:%02d", sec, m, s); else ptrinfo->time = g_strdup_printf ("%02d:%02d", m, s); ptrinfo->size = g_strdup_printf ("%d Ko", (gint)libutils_get_size_file (detail->namefile) / 1024); taglib_tag_free_strings(); taglib_file_free (file); } /* ptrinfo->level = level_get_from (FILE_IS_OGG, namefile); g_print ("%s\t%d\n", namefile, ptrinfo->level); */ ptrinfo->LevelDbfs.level = -1; ptrinfo->LevelDbfs.NewLevel = -1; return (ptrinfo); } xcfa-4.3.6/src/dvd.h0000644000175000017500000001602212122563437011111 00000000000000 /* * file : dvd.h * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifndef dvd_audio_h #define dvd_audio_h 1 typedef enum { _DVD_NAME=0, // Le nom du DVD _DVD_TITLE, // Le titre _DVD_CHAPTER, // Le chapitre _DVD_DATA, // Les datas pour une extraction partielle _DVD_DATA_ALL // Les datas pour une extraction complete } TYPE_LIST_DVD; typedef enum { _INCONNU_ = 0, // _DTS_, // _AC3_ // } FORMAT_ID; typedef enum { _COCHE_ = 0, // Pret a etre selectionne _SELECTED_, // En selection avec le canal d'origine _CH_2_ // En selection avec le canal 2 } ETAT_CHOIX; typedef struct { TYPE_LIST_DVD type_list_dvd; // Le type gchar *def; // La chaine d'info gchar *time; // La duree guint GUINT_TempsTotal; // Duree totale en secondes gchar *name_file; // Le nom du fichier qui pourra etre modifie gchar *StaticNameFile; // Le nom du fichier original FORMAT_ID format_id; // _INCONNU_, _DTS_ ou _AC3_ gchar *StrNumerateTitle; // Le numero du titre gint NumerateTitle; // Le numero du titre gchar *StrNumerateChapter; // Le numero du chapitre gint NumerateChapter; // Le numero du chapitre gchar *StrNumberChannel; // Le nombre de canaux gchar *StrNumerateStreamId; // La langue gint OldChannels; // Le canal d'origine gint NewChannels; // Le nouveau canal ETAT_CHOIX EtatChoix; // _COCHE_, _SELECTED_, _CH_2_ gint NumStruct; // Numero pour dvd_event gboolean BoolDvdPlay; // TRUE = Play, FALSE = NONE gint DebutLecture; // gboolean EtatNormalise; // } VAR; typedef enum { _DVDAUDIO_DVD_ = 0, // La source = DVD _DVDAUDIO_FILE_ // La source = dossier (DVD) } DVDAUDIO_SOURCE; typedef struct { gboolean bool_dvd; // gchar *path; // } INFO_DVDAUDIO; typedef struct { gdouble double_TempsTotal; // guint guint_TempsTotal; // GList *list; // } PLAY_DVDAUDIO; typedef struct { GtkComboBox *Adr_combobox_normalise_dvd; // Adresse GtkTreeModel *Adr_Tree_Model; // GtkWidget *Adr_TreeView; // GtkWidget *Adr_scroll; // Adresse GtkTreeSelection *Adr_Line_Selected; // Adresse GdkPixbuf *Pixbuf_FilePlay; // GdkPixbuf *Pixbuf_FileStop; // GdkPixbuf *Pixbuf_Coche; // GdkPixbuf *Pixbuf_Coche_Exist; // GdkPixbuf *Pixbuf_Selected; // GdkPixbuf *Pixbuf_2ch; // GtkButton *Adr_button_destination_dvd; // GtkComboBox *Adr_ComboBox_Reader; // GtkComboBox *Adr_combobox_sub_dvd; // GtkComboBox *Adr_combobox_ambiance_dvd; // gboolean bool_click; // gint total_selected_2ch; // gint total_selected; // gboolean bool_selected; // gboolean bool_sa; // guint Handler_Timeout; // gboolean bool_end_pthread; // gboolean bool_read_dvd; // gboolean bool_halt; // gint int_temp; // INFO_DVDAUDIO from; // gint NumStruct; // Numero pour dvdaudio_event gboolean bool_dedans; // gint bool_err; // GtkTreeViewColumn *Adr_Column_Titres; // GtkTreeViewColumn *Adr_Column_Play; // GtkTreeViewColumn *Adr_Column_Temps; // GtkTreeViewColumn *Adr_Column_Format; // GtkTreeViewColumn *Adr_Column_Choix; // GtkTreeViewColumn *Adr_Column_Normalise; // GtkCellRenderer *Renderer; // GtkTreeViewColumn *Adr_Column_Nom; // guint GUINT_TempsTotal; // Duree totale en secondes PLAY_DVDAUDIO PlayDvdAudio; // gint TTNormPeak; // Nombre total de Peak gint TTNormPeakCollectif; // Nombre total de Peak Collectif gboolean BoolNormIsSelected; gchar *PathDvd; } VAR_DVD; extern VAR_DVD var_dvd; // extern GList *GlistDvd; // typedef struct { VAR *Var; // gboolean EtatNormalise; gchar *Path; // Nom du fichier final GList *list; // Glist pour l'extraction } NEW_DVD_EXTRACT; extern GList *GlistDvdExtract; typedef enum { // SELECTION ou DESELECTION POUR LA NORMALISATION CD_NORMALISE_SELECT_V = 0, CD_NORMALISE_DESELECT_V } TYPE_SET_FROM_POPUP_DVD; /* *--------------------------------------------------------------------------- * DVD_EXTRACT.C *--------------------------------------------------------------------------- */ void dvdextract_dvd_to_file (void); /* *--------------------------------------------------------------------------- * DVD_READ.C *--------------------------------------------------------------------------- */ void dvdread_create_list (TYPE_LIST_DVD type_list_dvd, gchar *def, gchar *time, gchar *name_file, gint format_id, gint NumerateTitle, gint NumerateChapter, gint NumberChannel, gchar *StrNumerateStreamId); void dvdread_remove_list (void); gboolean dvdread_dvd_found (void); gboolean dvdread_dvd_read (void); /* *--------------------------------------------------------------------------- * DVD.C *--------------------------------------------------------------------------- */ void dvd_make_scrolledwindow_realize (GtkWidget *widget); void dvd_combobox_peripherique_dvd_realize (GtkWidget *widget); void dvd_reffresh_list_dvd (void); void dvd_button_destination_dvd_realize (GtkWidget *widget); void dvd_button_destination_dvd_clicked (void); void dvd_button_extraction_dvd_clicked (void); void dvd_button_annuler_lecture_dvd_clicked (void); void dvd_set_flag_buttons_dvd (void); void dvd_remove_GtkTree (void); void dvd_combobox_sub_dvd_realize (GtkWidget *widget); void dvd_combobox_ambiance_dvd_realize (GtkWidget *widget); gboolean dvd_bool_read_dvd_from_directory (void); void dvd_pixbuf_stop_play (void); void dvd_set_etat_music_pixbuf (gboolean *PtrBoolDvdPlay, gboolean p_BoolDvdPlay); void dvd_set_flag_normalise (gboolean EtatNormalise); void dvd_update (void); void dvd_combobox_normalise_dvd_realize (GtkWidget *widget); gint dvd_get_value_normalise_dvd (void); void dvd_button_eject_dvd_clicked (void); void dvd_from_popup (TYPE_SET_FROM_POPUP_DVD TypeSetFromPopup, gboolean EtatNormalise); /* *--------------------------------------------------------------------------- * DVD_TABLE.C *--------------------------------------------------------------------------- */ gchar *dvdtable_get (gint channel, gint pan); #endif xcfa-4.3.6/src/dvd.c0000644000175000017500000014615212122563465011115 00000000000000 /* * file : dvd.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #include #include #include #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "configuser.h" #include "fileselect.h" #include "scan.h" #include "win_scan.h" #include "win_reader.h" #include "mplayer.h" #include "popup.h" #include "win_info.h" #include "dvd.h" #include "statusbar.h" /* *--------------------------------------------------------------------------- * VARIABLES *--------------------------------------------------------------------------- */ enum { DVD_TITLE_COLUMN = 0, DVD_PIXBUF_COLUMN_PLAY, DVD_TIME_COLUMN, DVD_CHANNELS_COLUMN, DVD_PIXBUF_CHOICE_COLUMN, DVD_PIXBUF_FILE_NORMALIZE, DVD_NAME_COLUMN, DVD_NAME_EDITABLE_COLUMN, DVD_POINTER_STRUCT_COLUMN, DVD_NUM_COLUMNS }; VAR_DVD var_dvd; GList *GlistDvdExtract = NULL; GList *GlistDvd = NULL; enum { NUM_TREE_Titres = 0, NUM_TREE_Play, NUM_TREE_Temps, NUM_TREE_Format, NUM_TREE_Choix, NUM_TREE_Normalise, NUM_TREE_Nom, NUM_TREE_ALL_COLUMN }; // // gboolean dvd_foreach_remove_GtkTree (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer user_data) { VAR *var = NULL; gtk_tree_model_get (model, iter, DVD_POINTER_STRUCT_COLUMN, &var, -1); if (NULL != var) { g_free (var->def); g_free (var->time); g_free (var->name_file); g_free (var->StrNumerateTitle); g_free (var->StrNumerateChapter); g_free (var->StrNumberChannel); g_free (var->StrNumerateStreamId); g_free (var); var = NULL; } /* continuer à parcourir l'arbre */ return FALSE; } // // void dvd_remove_GtkTree (void) { gtk_tree_model_foreach (GTK_TREE_MODEL(var_dvd.Adr_Tree_Model), dvd_foreach_remove_GtkTree, NULL); gtk_tree_store_clear ((GtkTreeStore *)var_dvd.Adr_Tree_Model); } // // gchar *dvd_get_channels (VAR *var) { /* 1: Original 2: 2ch: stéréo 3: 3ch 4: 4ch 5: 5ch 6: 6ch: surround 5.1 */ switch (atoi (var->StrNumberChannel)) { case 1 : return ("1ch"); case 2 : return ("2ch"); case 3 : return ("3ch"); case 4 : return ("4ch"); case 5 : return ("5ch"); case 6 : return ("6ch"); default : break; } return ("???"); } // // GdkPixbuf *dvd_get_pixbuf_normalise (gboolean EtatNormaliseCd) { if (EtatNormaliseCd == FALSE) return (var_dvd.Pixbuf_Coche); return (var_dvd.Pixbuf_Selected); } // // gchar *dvd_get_name_to_treview (VAR *var) { gboolean BoolIdem = FALSE; gchar *NameSrc = NULL; BoolIdem = (strlen(var->name_file) == strlen(var->StaticNameFile) && 0 == strcmp (var->name_file, var->StaticNameFile)) ? TRUE : FALSE; if (TRUE == BoolIdem) NameSrc = g_strdup (var->name_file); else NameSrc = g_strdup_printf ("%s", var->name_file); return ((gchar *)NameSrc); } // // void dvd_affiche_list (void) { GtkTreeIter piter0 = {0,NULL,NULL,NULL}; GtkTreeIter piter1 = {0,NULL,NULL,NULL}; GtkTreeIter piter2 = {0,NULL,NULL,NULL}; GtkTreeIter piter3 = {0,NULL,NULL,NULL}; GtkTreeIter piter4 = {0,NULL,NULL,NULL}; GtkTreeStore *model = (GtkTreeStore *)var_dvd.Adr_Tree_Model; GList *list = NULL; VAR *var = NULL; gchar *time = NULL; gchar *str = NULL; gint NumStruct = 1; GtkAdjustment *Adj = NULL; gdouble AdjValue; gchar *NameDest = NULL; // COORDONNEES DU SCROLL VERTICAL Adj = gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (var_dvd.Adr_scroll)); AdjValue = gtk_adjustment_get_value (Adj); // VIDER DE TREEVIEW gtk_tree_store_clear ((GtkTreeStore *)var_dvd.Adr_Tree_Model); list = g_list_first (GlistDvd); while (list) { if (NULL != (var = (VAR *)list->data)) { var->NumStruct = NumStruct ++; var->BoolDvdPlay = FALSE; var->EtatNormalise = FALSE; switch (var->type_list_dvd) { case _DVD_NAME : str = g_strdup_printf ("%s", var->def); gtk_tree_store_append (model, &piter0, NULL); gtk_tree_store_set (model, &piter0, DVD_TITLE_COLUMN, str, DVD_PIXBUF_COLUMN_PLAY, NULL, DVD_TIME_COLUMN, "", DVD_CHANNELS_COLUMN, "", DVD_PIXBUF_CHOICE_COLUMN, NULL, DVD_PIXBUF_FILE_NORMALIZE, NULL, DVD_NAME_COLUMN, "", DVD_NAME_EDITABLE_COLUMN, FALSE, DVD_POINTER_STRUCT_COLUMN, var, -1); g_free (str); str = NULL; break; case _DVD_TITLE : str = g_strdup_printf ("%s", var->def); gtk_tree_store_append (model, &piter1, &piter0); gtk_tree_store_set (model, &piter1, DVD_TITLE_COLUMN, str, DVD_PIXBUF_COLUMN_PLAY, NULL, DVD_TIME_COLUMN, "", DVD_CHANNELS_COLUMN, "", DVD_PIXBUF_CHOICE_COLUMN, NULL, DVD_PIXBUF_FILE_NORMALIZE, NULL, DVD_NAME_COLUMN, "", DVD_NAME_EDITABLE_COLUMN, FALSE, DVD_POINTER_STRUCT_COLUMN, var, -1); g_free (str); str = NULL; break; case _DVD_DATA_ALL : var->OldChannels = var->NewChannels = (gint)atoi (var->StrNumberChannel); NameDest = dvd_get_name_to_treview (var); time = g_strdup_printf ("%s", var->time); gtk_tree_store_append (model, &piter4, &piter1); gtk_tree_store_set (model, &piter4, DVD_TITLE_COLUMN, var->def, DVD_PIXBUF_COLUMN_PLAY, var_dvd.Pixbuf_FilePlay, DVD_TIME_COLUMN, time, DVD_CHANNELS_COLUMN, dvd_get_channels (var), DVD_PIXBUF_CHOICE_COLUMN, var_dvd.Pixbuf_Coche, DVD_PIXBUF_FILE_NORMALIZE, var_dvd.Pixbuf_Coche, DVD_NAME_COLUMN, NameDest, DVD_NAME_EDITABLE_COLUMN, TRUE, DVD_POINTER_STRUCT_COLUMN, var, -1); g_free (time); time = NULL; g_free (NameDest); NameDest = NULL; break; case _DVD_CHAPTER : str = g_strdup_printf ("%s", var->def); gtk_tree_store_append (model, &piter2, &piter1); gtk_tree_store_set (model, &piter2, DVD_TITLE_COLUMN, str, DVD_PIXBUF_COLUMN_PLAY, NULL, DVD_TIME_COLUMN, "", DVD_CHANNELS_COLUMN, "", DVD_PIXBUF_CHOICE_COLUMN, NULL, DVD_PIXBUF_FILE_NORMALIZE, NULL, DVD_NAME_COLUMN, "", DVD_NAME_EDITABLE_COLUMN, FALSE, DVD_POINTER_STRUCT_COLUMN, var, -1); g_free (str); str = NULL; break; case _DVD_DATA : var->OldChannels = var->NewChannels = (gint)atoi (var->StrNumberChannel); NameDest = dvd_get_name_to_treview (var); time = g_strdup_printf ("%s", var->time); gtk_tree_store_append (model, &piter3, &piter2); gtk_tree_store_set (model, &piter3, DVD_TITLE_COLUMN, var->def, DVD_PIXBUF_COLUMN_PLAY, var_dvd.Pixbuf_FilePlay, DVD_TIME_COLUMN, time, DVD_CHANNELS_COLUMN, dvd_get_channels (var), DVD_PIXBUF_CHOICE_COLUMN, var_dvd.Pixbuf_Coche, DVD_PIXBUF_FILE_NORMALIZE, var_dvd.Pixbuf_Coche, DVD_NAME_COLUMN, NameDest, DVD_NAME_EDITABLE_COLUMN, TRUE, DVD_POINTER_STRUCT_COLUMN, var, -1); g_free (time); time = NULL; g_free (NameDest); NameDest = NULL; break; } } /* Détacher le pointeur de la structure */ list->data = NULL; /* Liste suivante */ list = g_list_next (list); } // AJUSTEMENT DU SCROLL VERTICAL gtk_adjustment_set_value (Adj, AdjValue); gtk_scrolled_window_set_vadjustment (GTK_SCROLLED_WINDOW (var_dvd.Adr_scroll), Adj); } // // gboolean dvd_foreach_normalise (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer user_data) { gint value = GPOINTER_TO_INT (user_data); VAR *var = NULL; gtk_tree_model_get (model, iter, DVD_POINTER_STRUCT_COLUMN, &var, -1); if (var->type_list_dvd == _DVD_DATA_ALL || var->type_list_dvd == _DVD_DATA) { var->EtatNormalise = value; gtk_tree_store_set ( GTK_TREE_STORE (model), iter, DVD_PIXBUF_FILE_NORMALIZE, dvd_get_pixbuf_normalise (var->EtatNormalise), -1 ); } /* continuer à parcourir l'arbre */ return FALSE; } // // void dvd_set_flag_normalise (gboolean EtatNormalise) { gtk_tree_model_foreach (GTK_TREE_MODEL(var_dvd.Adr_Tree_Model), dvd_foreach_normalise, (gpointer)(glong)EtatNormalise); } // // gboolean dvd_foreach_func_if (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer user_data) { VAR *var = NULL; gtk_tree_model_get (model, iter, DVD_POINTER_STRUCT_COLUMN, &var, -1); if (var && (var->type_list_dvd == _DVD_DATA || var->type_list_dvd == _DVD_DATA_ALL)) { if (var->EtatChoix == _SELECTED_ || var->EtatChoix == _CH_2_) { var_dvd.bool_selected = TRUE; var_dvd.total_selected ++; } if (var->EtatChoix == _CH_2_) { if (var->OldChannels > 3) var_dvd.bool_sa = TRUE; var_dvd.bool_selected = TRUE; var_dvd.total_selected_2ch ++; } } /* continuer à parcourir l'arbre */ return FALSE; } // // gboolean dvd_foreach_is_norm_selected (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer user_data) { VAR *var = NULL; gtk_tree_model_get (model, iter, DVD_POINTER_STRUCT_COLUMN, &var, -1); if (var->type_list_dvd == _DVD_DATA_ALL || var->type_list_dvd == _DVD_DATA) { if (var->EtatNormalise == TRUE) var_dvd.BoolNormIsSelected = TRUE; } return FALSE; } // // gboolean dvd_get_is_norm_selected (void) { var_dvd.BoolNormIsSelected = FALSE; gtk_tree_model_foreach (GTK_TREE_MODEL(var_dvd.Adr_Tree_Model), dvd_foreach_is_norm_selected, NULL); return (var_dvd.BoolNormIsSelected); } /* gchar *str = NULL; if (GlistDvd == NULL) { str = g_strdup (" "); } else { if (var_dvd.bool_err == 0) { str = g_strdup_printf (_("Total selection%s: %d, 2ch: %d"), var_dvd.total_selected > 1 ? _("s") : "", var_dvd.total_selected, var_dvd.total_selected_2ch ); } else { str = g_strdup(_("Ce fichier ne peut etre extrait !")); var_dvd.bool_err --; } } StatusBar_set_mess( NOTEBOOK_DVD_AUDIO, _STATUSBAR_SIMPLE_, str ); g_free (str); str = NULL; */ // // void dvd_set_flag_buttons_dvd (void) { var_dvd.bool_selected = FALSE; var_dvd.bool_sa = FALSE; var_dvd.total_selected_2ch = 0; var_dvd.total_selected = 0; if (GlistDvd == NULL) { gtk_widget_set_sensitive (GTK_WIDGET (GLADE_GET_OBJECT("button_deplier_dvd")), FALSE); gtk_widget_set_sensitive (GTK_WIDGET (GLADE_GET_OBJECT("button_replier_dvd")), FALSE); gtk_widget_set_sensitive (GTK_WIDGET (GLADE_GET_OBJECT("button_extraction_dvd")), FALSE); gtk_widget_set_sensitive (GTK_WIDGET (GLADE_GET_OBJECT("frame187")), FALSE); gtk_widget_set_sensitive (GTK_WIDGET (GLADE_GET_OBJECT("frame110")), FALSE); if (var_dvd.Adr_combobox_normalise_dvd != NULL) gtk_widget_set_sensitive (GTK_WIDGET (GTK_COMBO_BOX (var_dvd.Adr_combobox_normalise_dvd)), FALSE); } else { gtk_widget_set_sensitive (GTK_WIDGET (GLADE_GET_OBJECT("button_deplier_dvd")), TRUE); gtk_widget_set_sensitive (GTK_WIDGET (GLADE_GET_OBJECT("button_replier_dvd")), TRUE); gtk_tree_model_foreach (GTK_TREE_MODEL(var_dvd.Adr_Tree_Model), dvd_foreach_func_if, NULL); gtk_widget_set_sensitive (GTK_WIDGET (GLADE_GET_OBJECT("button_extraction_dvd")), var_dvd.total_selected > 0); gtk_widget_set_sensitive (GTK_WIDGET (GLADE_GET_OBJECT("frame187")), TRUE); gtk_widget_set_sensitive (GTK_WIDGET (GLADE_GET_OBJECT("frame110")), var_dvd.bool_sa); gtk_widget_set_sensitive (GTK_WIDGET (GTK_COMBO_BOX (var_dvd.Adr_combobox_normalise_dvd)), dvd_get_is_norm_selected ()); } StatusBar_puts(); } // // gboolean dvd_foreach_stop_play (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer user_data) { VAR *var = NULL; gtk_tree_model_get (model, iter, DVD_POINTER_STRUCT_COLUMN, &var, -1); if (var) { if (var->type_list_dvd == _DVD_DATA_ALL || var->type_list_dvd == _DVD_DATA) { var->BoolDvdPlay = FALSE; gtk_tree_store_set (GTK_TREE_STORE (model), iter, DVD_PIXBUF_COLUMN_PLAY, var_dvd.Pixbuf_FilePlay, -1); } } /* continuer à parcourir l'arbre */ return FALSE; } // // gboolean dvd_foreach_affiche_play (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer user_data) { VAR *var = NULL; gtk_tree_model_get (model, iter, DVD_POINTER_STRUCT_COLUMN, &var, -1); if (var) { if (var->type_list_dvd == _DVD_DATA_ALL || var->type_list_dvd == _DVD_DATA) { if (var->BoolDvdPlay == FALSE) gtk_tree_store_set (GTK_TREE_STORE (model), iter, DVD_PIXBUF_COLUMN_PLAY, var_dvd.Pixbuf_FilePlay, -1); else gtk_tree_store_set (GTK_TREE_STORE (model), iter, DVD_PIXBUF_COLUMN_PLAY, var_dvd.Pixbuf_FileStop, -1); } } /* continuer à parcourir l'arbre */ return FALSE; } // // void dvd_set_etat_music_pixbuf (gboolean *PtrBoolDvdPlay, gboolean p_BoolDvdPlay) { static gboolean *BoolDvdPlay = NULL; gtk_tree_model_foreach (GTK_TREE_MODEL(var_dvd.Adr_Tree_Model), dvd_foreach_stop_play, NULL); if (PtrBoolDvdPlay != NULL) BoolDvdPlay = PtrBoolDvdPlay; if (BoolDvdPlay != NULL) { *BoolDvdPlay = p_BoolDvdPlay; } gtk_tree_model_foreach (GTK_TREE_MODEL(var_dvd.Adr_Tree_Model), dvd_foreach_affiche_play, NULL); } // // void dvd_set_icone_stop (void) { dvd_set_etat_music_pixbuf (NULL, FALSE); } // // void dvd_set_etat_music_pixbuf_with_detail (VAR *p_var, gboolean EtatPlay) { /* Tous les flags et widget sur FILE_ETAT_PLAY_ATTENTE */ if (EtatPlay == TRUE) { } } // // void dvd_pixbuf_stop_play (void) { gtk_tree_model_foreach (GTK_TREE_MODEL(var_dvd.Adr_Tree_Model), dvd_foreach_stop_play, NULL); } // // gboolean dvd_event_click_mouse (GtkWidget *treeview, GdkEventButton *event, gpointer data) { gint Pos_X = 0, Pos_Y = 0; GtkTreePath *path; GtkTreeViewColumn *column; GtkTreeViewColumn *ColumnDum; gint i; // guint button; GtkTreeModel *model = (GtkTreeModel *)data; GtkTreeIter iter; VAR *var = NULL; GdkPixbuf *Pixbuf = NULL; gboolean bool_key_Control = (keys.keyval == GDK_Control_L || keys.keyval == GDK_Control_R); gboolean bool_key_Shift = (keys.keyval == GDK_Shift_L || keys.keyval == GDK_Shift_R); gboolean bool_key_Release = (bool_key_Control == FALSE && bool_key_Shift == FALSE); gboolean bool_click_gauche = (event->button == 1); gboolean bool_click_droit = (event->button == 3); gboolean BoolSelectColTitres = FALSE; gboolean BoolSelectColPlay = FALSE; gboolean BoolSelectColTemps = FALSE; gboolean BoolSelectColFormat = FALSE; gboolean BoolSelectColChoix = FALSE; gboolean BoolSelectColNormalise = FALSE; gboolean BoolSelectColNom = FALSE; // Mise a jour du scroll vertical GtkAdjustment *Adj = NULL; gdouble AdjValue; // COORDONNEES DU SCROLL VERTICAL Adj = gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (var_dvd.Adr_scroll)); AdjValue = gtk_adjustment_get_value (Adj); var_dvd.bool_click = FALSE; /* Single clicks only */ if (event->type != GDK_BUTTON_PRESS) return (FALSE); /*if (bool_key_Release == FALSE || bool_click_gauche == FALSE) return (FALSE);*/ if (bool_key_Release == FALSE) return (FALSE); /* Si pas de selection a cet endroit retour */ if (FALSE == gtk_tree_view_get_path_at_pos (GTK_TREE_VIEW(treeview), (gint)event->x, (gint)event->y, &path, &column, &Pos_X, &Pos_Y)) return (FALSE); /* IDEE POUR REMPLACER LES COMPARAISON PAR NOMS. EXEMPLES: * PLAY = 0 * TRASH = 1 * TYPE = 2 * etc ... * NOTA: * CET ALGO PERMET DE RENOMMER AISEMENT LES ENTETES DE COLONNES DANS TOUTES LES LANGUES: FR, EN, DE, ... */ for (i = 0; i < NUM_TREE_ALL_COLUMN; i ++) { ColumnDum = gtk_tree_view_get_column (GTK_TREE_VIEW(treeview), i); if (ColumnDum == column) { /* g_print ("\tNUM IS: %d\n", i); */ switch ( i ) { case NUM_TREE_Titres : BoolSelectColTitres = TRUE; break; case NUM_TREE_Play : BoolSelectColPlay = TRUE; break; case NUM_TREE_Temps : BoolSelectColTemps = TRUE; break; case NUM_TREE_Format : BoolSelectColFormat = TRUE; break; case NUM_TREE_Choix : BoolSelectColChoix = TRUE; break; case NUM_TREE_Normalise : BoolSelectColNormalise = TRUE; break; case NUM_TREE_Nom : BoolSelectColNom = TRUE; break; default: return (FALSE); } /* La colonne est trouvee ... sortie de la boucle */ break; } } gtk_tree_model_get_iter (model, &iter, path); gtk_tree_model_get (model, &iter, DVD_POINTER_STRUCT_COLUMN, &var, -1); if (var && (var->type_list_dvd == _DVD_DATA || var->type_list_dvd == _DVD_DATA_ALL)) { // button = ((GdkEventButton*)event)->button; if (bool_click_droit && BoolSelectColNormalise == TRUE) { popup_normalise_dvd (); } else if (bool_click_gauche && BoolSelectColNormalise == TRUE) { var->EtatNormalise = (var->EtatNormalise == TRUE) ? FALSE : TRUE; gtk_tree_store_set ( GTK_TREE_STORE (model), &iter, DVD_PIXBUF_FILE_NORMALIZE, dvd_get_pixbuf_normalise (var->EtatNormalise), -1 ); dvd_set_flag_buttons_dvd (); } else if (bool_click_gauche && BoolSelectColChoix == TRUE) { if (var->OldChannels == 2) { switch (var->EtatChoix) { case _COCHE_ : var->EtatChoix = _CH_2_; Pixbuf = var_dvd.Pixbuf_2ch; var->NewChannels = 2; break; case _CH_2_ : var->EtatChoix = _COCHE_; Pixbuf = var_dvd.Pixbuf_Coche; var->NewChannels = -1; break; case _SELECTED_ : break; } } else if (var->OldChannels > 2) { switch (var->EtatChoix) { case _COCHE_ : var->EtatChoix = _CH_2_; Pixbuf = var_dvd.Pixbuf_2ch; var->NewChannels = 2; break; case _CH_2_ : var->EtatChoix = _SELECTED_; Pixbuf = var_dvd.Pixbuf_Selected; var->NewChannels = var->OldChannels; break; case _SELECTED_ : var->EtatChoix = _COCHE_; Pixbuf = var_dvd.Pixbuf_Coche; var->NewChannels = -1; break; } } gtk_tree_store_set (GTK_TREE_STORE (model), &iter, DVD_PIXBUF_CHOICE_COLUMN, Pixbuf, -1); dvd_set_flag_buttons_dvd (); } else if (bool_click_gauche && BoolSelectColPlay == TRUE) { if (TRUE == mplayer_is_used ()) { wininfo_create ( WindMain, _("MPLAYER deja en action"), _("MPLAYER est deja utilise !!"), ""); } else { GList *list = NULL; // APPEL DE mplayer_init AVANT WinReader_open () mplayer_init (LIST_MPLAYER_FROM_DVD, (gdouble)var->GUINT_TempsTotal, var_dvd.GUINT_TempsTotal, WinReader_close, WinReader_set_value, dvd_set_icone_stop, WinReader_is_close); WinReader_open ("Dvd Read"); WinReader_set_pause (); list = g_list_append (list, g_strdup ("-vo")); list = g_list_append (list, g_strdup ("null")); list = g_list_append (list, g_strdup ("-chapter")); if (*var->StrNumerateChapter == '0') list = g_list_append (list, g_strdup ("1")); else list = g_list_append (list, g_strdup_printf ("%s-%s", var->StrNumerateChapter, var->StrNumerateChapter)); list = g_list_append (list, g_strdup_printf ("dvd://%d", var->NumerateTitle)); list = g_list_append (list, g_strdup ("-dvd-device")); list = g_list_append (list, g_strdup (scan_get_text_combo_cd (_DVD_))); list = g_list_append (list, g_strdup ("-aid")); list = g_list_append (list, g_strdup_printf ("%d",libutils_hexa_to_int (var->StrNumerateStreamId))); mplayer_set_list (list); list = libutils_remove_glist (list); gtk_tree_model_get (model, &iter, DVD_PIXBUF_COLUMN_PLAY, &Pixbuf, -1); // AFFICHE L ICONE DE PLAY dvd_set_etat_music_pixbuf (&var->BoolDvdPlay, TRUE); } } /* position du curseur a l'instant du click */ if (Pos_X < 10 || Pos_X > 22) return (FALSE); if (Pos_Y < 6 || Pos_Y > 18) return (FALSE); var_dvd.bool_click = TRUE; } // AJUSTEMENT DU SCROLL VERTICAL gtk_adjustment_set_value (Adj, AdjValue); gtk_scrolled_window_set_vadjustment (GTK_SCROLLED_WINDOW (var_dvd.Adr_scroll), Adj); while (gtk_events_pending()) gtk_main_iteration(); return (FALSE); } // // static void dvd_cell_edited_namefile (GtkCellRendererText *cell, gchar *path_string, gchar *new_text, gpointer data) { GtkTreeModel *model = (GtkTreeModel *)data; GtkTreePath *path = gtk_tree_path_new_from_string (path_string); GtkTreeIter iter; gint column = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (cell), "column")); VAR *var = NULL; gtk_tree_model_get_iter (model, &iter, path); if (column == DVD_NAME_COLUMN) { gchar *old_text; gchar *NameDest = NULL; gtk_tree_model_get (model, &iter, DVD_NAME_COLUMN, &old_text, -1); g_free (old_text); old_text = NULL; gtk_tree_model_get (model, &iter, DVD_POINTER_STRUCT_COLUMN, &var, -1); g_free (var->name_file); var->name_file = NULL; // UN CHAMPS VIDE ACTUALISE LE NOM D ORIGINE if (0 == strlen (new_text)) var->name_file = g_strdup (var->StaticNameFile); else var->name_file = g_strdup (new_text); // actualise le nom NameDest = dvd_get_name_to_treview (var); gtk_tree_store_set (GTK_TREE_STORE (model), &iter, column, NameDest, -1); g_free (NameDest); NameDest = NULL; } gtk_tree_path_free (path); } // // gboolean dvd_event (GtkWidget *treeview, GdkEvent *event, gpointer user_data) { gint x, y; GdkModifierType state; GtkTreeIter iter; gint Pos_X = 0, Pos_Y = 0; GtkTreePath *path; GtkTreeViewColumn *column; GtkTreeViewColumn *ColumnDum; gint i; GtkTreeModel *model = (GtkTreeModel *)user_data; VAR *var = NULL; gchar *str = NULL; GdkPixbuf *Pixbuf = NULL; gboolean BoolSelectColTitres = FALSE; gboolean BoolSelectColPlay = FALSE; gboolean BoolSelectColTemps = FALSE; gboolean BoolSelectColFormat = FALSE; gboolean BoolSelectColChoix = FALSE; gboolean BoolSelectColNormalise = FALSE; gboolean BoolSelectColNom = FALSE; if (keys.keyval == GDK_KEY_PRESS) { return (FALSE); } if (event->type == GDK_ENTER_NOTIFY) { var_dvd.NumStruct = 0; var_dvd.bool_dedans = TRUE; } else if (event->type == GDK_LEAVE_NOTIFY) { var_dvd.NumStruct = 0; var_dvd.bool_dedans = FALSE; dvd_set_flag_buttons_dvd (); return (FALSE); } else if (event->type == GDK_MOTION_NOTIFY) { var_dvd.bool_dedans = TRUE; } if (var_dvd.bool_dedans == FALSE) { var_dvd.NumStruct = 0; dvd_set_flag_buttons_dvd (); return (FALSE); } /* Si pas de selection a cet endroit retour */ gdk_window_get_pointer (((GdkEventButton*)event)->window, &x, &y, &state); if (FALSE == gtk_tree_view_get_path_at_pos (GTK_TREE_VIEW(treeview), x, y, &path, &column, &Pos_X, &Pos_Y)) { dvd_set_flag_buttons_dvd (); return (FALSE); } /* Recuperation de la structure */ gtk_tree_model_get_iter (model, &iter, path); gtk_tree_model_get (var_dvd.Adr_Tree_Model, &iter, DVD_POINTER_STRUCT_COLUMN, &var, -1); if (var == NULL) return (FALSE); /* IDEE POUR REMPLACER LES COMPARAISON PAR NOMS. EXEMPLES: * PLAY = 0 * TRASH = 1 * TYPE = 2 * etc ... * NOTA: * CET ALGO PERMET DE RENOMMER AISEMENT LES ENTETES DE COLONNES DANS TOUTES LES LANGUES: FR, EN, DE, ... */ for (i = 0; i < NUM_TREE_ALL_COLUMN; i ++) { ColumnDum = gtk_tree_view_get_column (GTK_TREE_VIEW(treeview), i); if (ColumnDum == column) { /* g_print ("\tNUM IS: %d\n", i); */ switch ( i ) { case NUM_TREE_Titres : BoolSelectColTitres = TRUE; break; case NUM_TREE_Play : BoolSelectColPlay = TRUE; break; case NUM_TREE_Temps : BoolSelectColTemps = TRUE; break; case NUM_TREE_Format : BoolSelectColFormat = TRUE; break; case NUM_TREE_Choix : BoolSelectColChoix = TRUE; break; case NUM_TREE_Normalise : BoolSelectColNormalise = TRUE; break; case NUM_TREE_Nom : BoolSelectColNom = TRUE; break; default: return (FALSE); } /* La colonne est trouvee ... sortie de la boucle */ break; } } if (BoolSelectColNormalise == TRUE) { if (var->EtatNormalise == TRUE) { switch (dvd_get_value_normalise_dvd ()) { case 0 : StatusBar_set_mess( NOTEBOOK_DVD_AUDIO, _STATUSBAR_SIMPLE_, _("(Click Droit = Menu) / PEAK-ALBUM: Amplification maximale du volume pour un groupe de fichiers en respectant les ecarts de niveau entre chacun d'eux.")); break; case 1 : StatusBar_set_mess( NOTEBOOK_DVD_AUDIO, _STATUSBAR_SIMPLE_, _("(Click Droit = Menu) / PEAK: Amplification maximale du volume pour chaque de fichier.")); break; } } else { StatusBar_set_mess( NOTEBOOK_DVD_AUDIO, _STATUSBAR_SIMPLE_, _("(Click Droit = Menu) / En attente de selection.")); } } else if (BoolSelectColNom == TRUE) { if (var_dvd.NumStruct == var->NumStruct) return (FALSE); var_dvd.NumStruct = var->NumStruct; if (var->name_file && *var->name_file) { str = g_strdup_printf ("%s.wav", var->name_file); StatusBar_set_mess( NOTEBOOK_DVD_AUDIO, _STATUSBAR_SIMPLE_, str ); g_free (str); str = NULL; } else { StatusBar_set_mess( NOTEBOOK_DVD_AUDIO, _STATUSBAR_SIMPLE_, " " ); } } else if (BoolSelectColChoix == TRUE) { if (var->name_file && *var->name_file == '\0' )return (FALSE); /* position du curseur a l'instant du click */ if (Pos_X < 10 || Pos_X > 38 || Pos_Y < 6 || Pos_Y > 22) { dvd_set_flag_buttons_dvd (); return (FALSE); } if (var->OldChannels == 2) { switch (var->EtatChoix) { case _COCHE_ : str = g_strdup (_("En attente de selection. Un click activera la conversion vers 2 canaux.")); StatusBar_set_mess( NOTEBOOK_DVD_AUDIO, _STATUSBAR_SIMPLE_, str ); break; case _SELECTED_ : /* str = g_strdup_printf (_("Conversion vers %s canaux."), var->StrNumberChannel); // main_puts_statusbar_global (str); StatusBar_set_mess( NOTEBOOK_DVD_AUDIO, _STATUSBAR_SIMPLE_, str ); PRINT("SELECTED"); */ break; case _CH_2_ : str = g_strdup_printf (_("Conversion vers 2 canaux.")); StatusBar_set_mess( NOTEBOOK_DVD_AUDIO, _STATUSBAR_SIMPLE_, str ); break; } } else if (var->OldChannels > 2) { switch (var->EtatChoix) { case _COCHE_ : str = g_strdup (_("En attente de selection. Un click activera la conversion vers 2 canaux.")); StatusBar_set_mess( NOTEBOOK_DVD_AUDIO, _STATUSBAR_SIMPLE_, str ); break; case _SELECTED_ : str = g_strdup_printf (_("Conversion vers %s canaux."), var->StrNumberChannel); StatusBar_set_mess( NOTEBOOK_DVD_AUDIO, _STATUSBAR_SIMPLE_, str ); break; case _CH_2_ : str = g_strdup_printf ( _("Conversion vers 2 canaux. Un second click activera la conversion vers %s canaux."), var->StrNumberChannel); StatusBar_set_mess( NOTEBOOK_DVD_AUDIO, _STATUSBAR_SIMPLE_, str ); break; } } if (str != NULL) { g_free (str); str = NULL; } } else if (BoolSelectColPlay == TRUE) { gtk_tree_model_get (model, &iter, DVD_PIXBUF_COLUMN_PLAY, &Pixbuf, -1); if (Pixbuf == var_dvd.Pixbuf_FileStop) { StatusBar_set_mess( NOTEBOOK_DVD_AUDIO, _STATUSBAR_SIMPLE_, _("Musique en ecoute.")); } else if (Pixbuf == var_dvd.Pixbuf_FilePlay) { StatusBar_set_mess( NOTEBOOK_DVD_AUDIO, _STATUSBAR_SIMPLE_, _("Musique en attente.")); } else { StatusBar_set_mess( NOTEBOOK_DVD_AUDIO, _STATUSBAR_SIMPLE_, " "); } } else { gchar *str = NULL; if (GlistDvd == NULL) { str = g_strdup (" "); } else { if (var_dvd.bool_err == 0) { str = g_strdup_printf (_("Total selection%s: %d, 2ch: %d"), var_dvd.total_selected > 1 ? _("s") : "", var_dvd.total_selected, var_dvd.total_selected_2ch ); } else { str = g_strdup(_("Ce fichier ne peut etre extrait !")); var_dvd.bool_err --; } } StatusBar_set_mess( NOTEBOOK_DVD_AUDIO, _STATUSBAR_SIMPLE_, str ); g_free (str); str = NULL; dvd_set_flag_buttons_dvd (); } StatusBar_puts( ); return (FALSE); } // // void dvd_changed_selection_row_file_dvd (GtkTreeSelection *selection, gpointer data) { var_dvd.Adr_Line_Selected = selection; } // // gboolean dvd_foreach_normalise_column (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer user_data) { VAR *var = NULL; gtk_tree_model_get (model, iter, DVD_POINTER_STRUCT_COLUMN, &var, -1); if (var->type_list_dvd == _DVD_DATA_ALL || var->type_list_dvd == _DVD_DATA) { var->EtatNormalise = (var->EtatNormalise == TRUE) ? FALSE : TRUE; gtk_tree_store_set ( GTK_TREE_STORE (model), iter, DVD_PIXBUF_FILE_NORMALIZE, dvd_get_pixbuf_normalise (var->EtatNormalise), -1 ); } /* continuer à parcourir l'arbre */ return FALSE; } // // void dvd_selected_column (GtkTreeViewColumn *treeviewcolumn, gpointer user_data) { gtk_tree_model_foreach (GTK_TREE_MODEL(var_dvd.Adr_Tree_Model), dvd_foreach_normalise_column, NULL); } // // gboolean dvd_foreach_update (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer user_data) { VAR *var = NULL; GdkPixbuf *Pixbuf = NULL; gtk_tree_model_get (model, iter, DVD_POINTER_STRUCT_COLUMN, &var, -1); if (var->type_list_dvd == _DVD_DATA_ALL || var->type_list_dvd == _DVD_DATA) { /* Raffraihcissement COCHE */ switch (var->EtatChoix) { case _COCHE_ : Pixbuf = var_dvd.Pixbuf_Coche; var->NewChannels = -1; break; case _CH_2_ : Pixbuf = var_dvd.Pixbuf_2ch; var->NewChannels = 2; break; case _SELECTED_ : Pixbuf = var_dvd.Pixbuf_Selected; var->NewChannels = var->OldChannels; break; } gtk_tree_store_set (GTK_TREE_STORE (model), iter, DVD_PIXBUF_CHOICE_COLUMN, Pixbuf, -1); /* Raffraihcissement NORMALISE */ gtk_tree_store_set (GTK_TREE_STORE (model), iter, DVD_PIXBUF_FILE_NORMALIZE, dvd_get_pixbuf_normalise (var->EtatNormalise), -1); } /* continuer à parcourir l'arbre */ return FALSE; } // // void dvd_update (void) { gtk_tree_model_foreach (GTK_TREE_MODEL(var_dvd.Adr_Tree_Model), dvd_foreach_update, NULL); } // INIT TREVIEW // static void dvd_add_columns (GtkTreeView *treeview) { gint col_offset; GtkCellRenderer *renderer; GtkTreeViewColumn *column; GtkTreeModel *model = gtk_tree_view_get_model (treeview); var_dvd.NumStruct = 0; var_dvd.bool_dedans = FALSE; // SIGNAL : 'event' g_signal_connect(G_OBJECT(treeview), "event", (GCallback) dvd_event, model); // SIGNAL : 'button-press-event' g_signal_connect(G_OBJECT(treeview), "button-press-event", (GCallback) dvd_event_click_mouse, model); // SIGNAL : Ligne actuellement selectionnee 'changed' var_dvd.Adr_Line_Selected = gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)); g_signal_connect(G_OBJECT(var_dvd.Adr_Line_Selected), "changed", G_CALLBACK(dvd_changed_selection_row_file_dvd), "1"); /* DVD_TITLE_COLUMN */ renderer = gtk_cell_renderer_text_new (); g_object_set (renderer, "xalign", 0.0, NULL); col_offset = gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview), -1, _("Titres"), renderer, "markup", DVD_TITLE_COLUMN, NULL); var_dvd.Adr_Column_Titres = column = gtk_tree_view_get_column (GTK_TREE_VIEW (treeview), col_offset - 1); gtk_tree_view_column_set_alignment (GTK_TREE_VIEW_COLUMN (column), 0.5); /* DVD_PIXBUF_COLUMN_PLAY */ renderer = gtk_cell_renderer_pixbuf_new (); g_object_set (renderer, "xalign", 0.5, NULL); col_offset = gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview), -1, _("Play"), renderer, "pixbuf", DVD_PIXBUF_COLUMN_PLAY, NULL); var_dvd.Adr_Column_Play = column = gtk_tree_view_get_column (GTK_TREE_VIEW (treeview), col_offset - 1); gtk_tree_view_column_set_alignment (GTK_TREE_VIEW_COLUMN (column), 0.5); /* DVD_TIME_COLUMN */ renderer = gtk_cell_renderer_text_new (); g_object_set (renderer, "xalign", 0.5, NULL); col_offset = gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview), -1, _("Temps"), renderer, "markup", DVD_TIME_COLUMN, NULL); var_dvd.Adr_Column_Temps = column = gtk_tree_view_get_column (GTK_TREE_VIEW (treeview), col_offset - 1); gtk_tree_view_column_set_alignment (GTK_TREE_VIEW_COLUMN (column), 0.5); /* DVD_CHANNELS_COLUMN */ renderer = gtk_cell_renderer_text_new (); g_object_set (renderer, "xalign", 0.5, NULL); col_offset = gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview), -1, _("Format"), renderer, "markup", DVD_CHANNELS_COLUMN, NULL); var_dvd.Adr_Column_Format = column = gtk_tree_view_get_column (GTK_TREE_VIEW (treeview), col_offset - 1); gtk_tree_view_column_set_alignment (GTK_TREE_VIEW_COLUMN (column), 0.5); /* DVD_PIXBUF_CHOICE_COLUMN */ renderer = gtk_cell_renderer_pixbuf_new (); g_object_set (renderer, "xalign", 0.5, NULL); col_offset = gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview), -1, _("Choix"), renderer, "pixbuf", DVD_PIXBUF_CHOICE_COLUMN, NULL); var_dvd.Adr_Column_Choix = column = gtk_tree_view_get_column (GTK_TREE_VIEW (treeview), col_offset - 1); gtk_tree_view_column_set_alignment (GTK_TREE_VIEW_COLUMN (column), 0.5); /* ITEM_WAV_SELECT_COLUMN */ /* renderer = gtk_cell_renderer_toggle_new (); g_object_set (renderer, "xalign", 0.5, NULL); g_object_set_data (G_OBJECT (renderer), "column", (gint *)ITEM_WAV_SELECT_COLUMN); g_signal_connect (renderer, "toggled", G_CALLBACK (dvd_item_toggled_wav), model); col_offset = gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview), -1, "Wav", renderer, "active", ITEM_WAV_SELECT_COLUMN, "visible", VISIBLE_COLUMN, "activatable", WORLD_COLUMN, NULL); column = gtk_tree_view_get_column (GTK_TREE_VIEW (treeview), col_offset - 1); gtk_tree_view_column_set_alignment (GTK_TREE_VIEW_COLUMN (column), 0.5); */ /* DVD_PIXBUF_FILE_NORMALIZE */ renderer = gtk_cell_renderer_pixbuf_new (); g_object_set (renderer, "xalign", 0.5, NULL); col_offset = gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview), -1, _("Normalise"), renderer, "pixbuf", DVD_PIXBUF_FILE_NORMALIZE, NULL); var_dvd.Adr_Column_Normalise = column = gtk_tree_view_get_column (GTK_TREE_VIEW (treeview), col_offset - 1); gtk_tree_view_column_set_alignment (GTK_TREE_VIEW_COLUMN (column), 0.5); gtk_tree_view_column_set_clickable (GTK_TREE_VIEW_COLUMN (column), TRUE); g_signal_connect (G_OBJECT(GTK_TREE_VIEW_COLUMN (column)), "clicked", G_CALLBACK (dvd_selected_column), GINT_TO_POINTER(0)); /* DVD_NAME_COLUMN */ var_dvd.Renderer = renderer = gtk_cell_renderer_text_new (); g_object_set (renderer, "xalign", 0.0, NULL); g_object_set_data (G_OBJECT (renderer), "column", (gint *)DVD_NAME_COLUMN); g_signal_connect (renderer, "edited", G_CALLBACK (dvd_cell_edited_namefile), model); col_offset = gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview), -1, _("Nom"), renderer, "markup", DVD_NAME_COLUMN, "editable", DVD_NAME_EDITABLE_COLUMN, NULL); var_dvd.Adr_Column_Nom = column = gtk_tree_view_get_column (GTK_TREE_VIEW (treeview), col_offset - 1); gtk_tree_view_column_set_alignment (GTK_TREE_VIEW_COLUMN (column), 0.5); } // // void on_scrolledwindow_dvd_audio_realize (GtkWidget *widget, gpointer user_data) { /* Chargement des PIXBUF */ var_dvd.Pixbuf_FilePlay = libutils_init_pixbufs ("xcfa/no_play.png"); var_dvd.Pixbuf_FileStop = libutils_init_pixbufs ("xcfa/sol.png"); var_dvd.Pixbuf_Coche = libutils_init_pixbufs ("xcfa/coche.png"); var_dvd.Pixbuf_Coche_Exist = libutils_init_pixbufs ("xcfa/coche_exist.png"); var_dvd.Pixbuf_Selected = libutils_init_pixbufs ("xcfa/selected.png"); var_dvd.Pixbuf_2ch = libutils_init_pixbufs ("xcfa/2ch.png"); var_dvd.Adr_scroll = widget; var_dvd.Adr_Tree_Model = (GtkTreeModel *) gtk_tree_store_new (DVD_NUM_COLUMNS, G_TYPE_STRING, /* DVD_TITLE_COLUMN */ GDK_TYPE_PIXBUF, /* DVD_PIXBUF_COLUMN_PLAY */ G_TYPE_STRING, /* DVD_TIME_COLUMN */ G_TYPE_STRING, /* DVD_CHANNELS_COLUMN */ GDK_TYPE_PIXBUF, /* DVD_PIXBUF_CHOICE_COLUMN */ GDK_TYPE_PIXBUF, /* DVD_PIXBUF_FILE_NORMALIZE */ G_TYPE_STRING, /* DVD_NAME_COLUMN */ G_TYPE_BOOLEAN, /* DVD_NAME_EDITABLE_COLUMN */ G_TYPE_POINTER /* DVD_POINTER_STRUCT_COLUMN */ ); /* create tree view */ var_dvd.Adr_TreeView = gtk_tree_view_new_with_model (var_dvd.Adr_Tree_Model); g_object_unref (var_dvd.Adr_Tree_Model); gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (var_dvd.Adr_TreeView), TRUE); dvd_add_columns (GTK_TREE_VIEW (var_dvd.Adr_TreeView)); gtk_container_add (GTK_CONTAINER (widget), var_dvd.Adr_TreeView); gtk_widget_show_all (widget); } // // void on_combobox_peripherique_dvd_realize (GtkWidget *widget, gpointer user_data) { GList *List = NULL; MEDIA *Media = NULL; libcombo_alloc (GTK_COMBO_BOX (widget)); List = g_list_first (scan_get_glist ()); while (List) { if ((Media = (MEDIA *)List->data)) { gtk_combo_box_append_text (GTK_COMBO_BOX (widget), (gchar *)Media->Full_Name); } List = g_list_next(List); } gtk_combo_box_append_text (GTK_COMBO_BOX (widget), _("Fichier structure DVD")); if( Config.NumSelectComboBoxDvd < 0 ) Config.NumSelectComboBoxDvd = 0; gtk_combo_box_set_active (GTK_COMBO_BOX (widget), Config.NumSelectComboBoxDvd); var_dvd.Adr_ComboBox_Reader = GTK_COMBO_BOX (widget); } // // void dvd_pthread_reffresh_list (void *data) { var_dvd.bool_end_pthread = FALSE; var_dvd.bool_read_dvd = TRUE; dvdread_remove_list (); if (dvdread_dvd_found () == FALSE) { var_dvd.bool_read_dvd = FALSE; } else { if (var_dvd.bool_halt == FALSE) { if (dvdread_dvd_read () == TRUE) { var_dvd.bool_read_dvd = TRUE; } else { var_dvd.bool_read_dvd = FALSE; } } } var_dvd.bool_end_pthread = TRUE; pthread_exit (0); } // // static gint dvd_timeout (gpointer data) { if (var_dvd.bool_end_pthread == TRUE) { if (var_dvd.bool_halt == TRUE) { // main_puts_statusbar_global (_("Arret par l'utilisateur")); } else { if (var_dvd.bool_read_dvd == TRUE) { dvd_affiche_list (); gtk_tree_view_expand_all ( (GtkTreeView *)var_dvd.Adr_TreeView); } } dvd_set_flag_buttons_dvd (); if (var_dvd.bool_read_dvd == FALSE) { StatusBar_set_mess( NOTEBOOK_DVD_AUDIO, _STATUSBAR_SIMPLE_, _("Le DVD est absent du lecteur.")); } else { StatusBar_set_mess( NOTEBOOK_DVD_AUDIO, _STATUSBAR_SIMPLE_, "" ); } gtk_timeout_remove (var_dvd.Handler_Timeout); WindScan_close (); } else if (var_dvd.bool_halt == TRUE) { // conv_stop_conversion (); } return (TRUE); } // // void dvd_reffresh_list_dvd_action (void) { pthread_t nmr_tid; if (TRUE == mplayer_is_used ()) { wininfo_create ( WindMain, _("MPLAYER deja en action"), _("MPLAYER est deja utilise !!"), ""); return; } dvd_remove_GtkTree (); var_dvd.PathDvd = scan_get_text_combo_cd (_DVD_); // g_print("---------------> var_dvd.PathDvd = %s\n",var_dvd.PathDvd ); WindScan_open (_("Scan ..."), WINDSCAN_PULSE); var_dvd.bool_read_dvd = TRUE; var_dvd.bool_halt = FALSE; var_dvd.bool_end_pthread = FALSE; var_dvd.Handler_Timeout = gtk_timeout_add (100, dvd_timeout, 0); pthread_create (&nmr_tid, NULL ,(void *)dvd_pthread_reffresh_list, (void *)NULL); // pthread_detach (nmr_tid); } // // void dvd_reffresh_list_directory_dvd (gchar *path) { gchar *Ptr = NULL; var_dvd.from.bool_dvd = FALSE; if( NULL != var_dvd.from.path ) { g_free (var_dvd.from.path); var_dvd.from.path = NULL; } var_dvd.from.path = g_strdup (path); if( NULL != Config.PathChoiceFileDVD ) { g_free (Config.PathChoiceFileDVD); Config.PathChoiceFileDVD = NULL; } Config.PathChoiceFileDVD = g_strdup (path); if (NULL != (Ptr = strrchr (Config.PathChoiceFileDVD, '/'))) { *Ptr = '\0'; } dvd_reffresh_list_dvd_action (); } // // gboolean dvd_bool_read_dvd_from_directory (void) { guint nbr = g_list_length (scan_get_glist ()); gint Nmr_Combo_Actif = gtk_combo_box_get_active (var_dvd.Adr_ComboBox_Reader); return (Nmr_Combo_Actif >= nbr ? TRUE : FALSE); } // // void dvd_reffresh_list_dvd (void) { if (NULL == var_dvd.Adr_ComboBox_Reader) return; if (libutils_find_file ("lsdvd") == FALSE) { wininfo_create ( WindMain, _("lsdvd est absent !"), _("Il faut installer le programme: lsdvd"), ""); // g_print("VEUILLEZ INSTALLER L APPLICATION [ LSDVD ]\n"); return; } if (dvd_bool_read_dvd_from_directory () == TRUE) { fileselect_create (_PATH_LOAD_ONE_FILE_, Config.PathChoiceFileDVD, dvd_reffresh_list_directory_dvd); } else { var_dvd.from.bool_dvd = TRUE; g_free (var_dvd.from.path); var_dvd.from.path = NULL; // mplayer_fifo_quit (); dvd_reffresh_list_dvd_action (); } } // // void on_button_destination_dvd_realize (GtkWidget *widget, gpointer user_data) { var_dvd.bool_selected = FALSE; dvd_set_flag_buttons_dvd (); var_dvd.Adr_button_destination_dvd = GTK_BUTTON (widget); gtk_button_set_use_underline (GTK_BUTTON (var_dvd.Adr_button_destination_dvd), FALSE); gtk_button_set_label (GTK_BUTTON (var_dvd.Adr_button_destination_dvd), Config.PathDestinationDVD); } // // void dvd_maj_destination_DVD (gchar *path) { if (libutils_test_write (path) == TRUE) { g_free (Config.PathDestinationDVD); Config.PathDestinationDVD = NULL; Config.PathDestinationDVD = g_strdup (path); gtk_button_set_label (GTK_BUTTON (var_dvd.Adr_button_destination_dvd), Config.PathDestinationDVD); } } // // void on_button_destination_dvd_clicked (GtkButton *button, gpointer user_data) { fileselect_create (_PATH_CHOICE_DESTINATION_, Config.PathDestinationDVD, dvd_maj_destination_DVD); } // // void dvd_button_annuler_lecture_dvd_clicked (void) { var_dvd.bool_halt = TRUE; } // // gboolean dvd_foreach_func (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer user_data) { VAR *var = NULL; gchar *chapter = NULL; gchar *param = NULL; gchar *ptr = NULL; NEW_DVD_EXTRACT *StructDvdExtract = NULL; gchar **Larrbuf = NULL; gint cpt; gtk_tree_model_get (model, iter, DVD_POINTER_STRUCT_COLUMN, &var, -1); if (var && (var->type_list_dvd == _DVD_DATA || var->type_list_dvd == _DVD_DATA_ALL)) { if (var->EtatChoix == _SELECTED_ || var->EtatChoix == _CH_2_) { if (*var->StrNumerateChapter == '0') chapter = g_strdup ("-chapter 1"); else chapter = g_strdup_printf ("-chapter %s-%s", var->StrNumerateChapter, var->StrNumerateChapter); if (var->format_id == _AC3_) { ptr = dvdtable_get (var->OldChannels, var->NewChannels); param = g_strdup_printf ("-rawaudio format=0x0100 -demuxer -rawaudio -channels %d -af pan=%d:%s", var->OldChannels, var->NewChannels, ptr); /* param = g_strdup_printf ("-rawaudio format=0x2000 -channels %d -af pan=%d:%s", var->OldChannels, var->NewChannels, ptr); */ g_free (ptr); ptr = NULL; } else if (var->format_id == _DTS_) { if (var->OldChannels == var->NewChannels) { param = g_strdup_printf ("-af channels=%d", var->OldChannels); } else { ptr = dvdtable_get (var->OldChannels, var->NewChannels); param = g_strdup_printf ("-channels %d -af pan=%d:%s", var->OldChannels, var->NewChannels, ptr); g_free (ptr); ptr = NULL; } } else if (var->format_id == _INCONNU_) { if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("\nFORMAT == _INCONNU_\n\tExtraction comme AC3\n"); ptr = dvdtable_get (var->OldChannels, var->NewChannels); param = g_strdup_printf ("-channels %d -af pan=%d:%s", var->OldChannels, var->NewChannels, ptr); g_free (ptr); ptr = NULL; } /* Allocate Structure DVD_EXTRACT */ /* dvd_extract = (DVD_EXTRACT *)g_malloc0 (sizeof (DVD_EXTRACT)); */ /* And set datas */ /* dvd_extract->Name = g_strdup_printf ("%s/%s.wav", Config.PathDestinationDVD, var->name_file); dvd_extract->NameTemp = g_strdup_printf ("%s/_%04d_tmp_xcfa.wav", Config.PathDestinationDVD, var_dvd.int_temp); var_dvd.int_temp ++; dvd_extract->LineCommand = g_strdup_printf ("nice -n %s mplayer -vo null -ao pcm:file=%s %s dvd://%s -dvd-device %s -aid %d %s", conv.valuenice, dvd_extract->NameTemp, chapter, var->StrNumerateTitle, scancd_get_text_combo_cd (_DVD_), utils_hexa_to_int (var->StrNumerateStreamId), param ); g_print ("dvd_extract->LineCommand =%s\n", dvd_extract->LineCommand); GlistDvdExtract = g_list_append (GlistDvdExtract, dvd_extract); */ /* NOUVEAU */ StructDvdExtract = (NEW_DVD_EXTRACT *)g_malloc0 (sizeof (NEW_DVD_EXTRACT)); StructDvdExtract->Path = g_strdup_printf ("%s/%s.wav", Config.PathDestinationDVD, var->name_file); StructDvdExtract->Var = var; StructDvdExtract->EtatNormalise = var->EtatNormalise; if (var->EtatNormalise == TRUE) { switch (dvd_get_value_normalise_dvd ()) { case 0 : var_dvd.TTNormPeakCollectif ++; break; case 1 : var_dvd.TTNormPeak ++; break; } } StructDvdExtract->list = g_list_append (StructDvdExtract->list, g_strdup ("nice")); StructDvdExtract->list = g_list_append (StructDvdExtract->list, g_strdup ("-n")); // StructDvdExtract->list = g_list_append (StructDvdExtract->list, g_strdup ("0")); StructDvdExtract->list = g_list_append (StructDvdExtract->list, g_strdup_printf ("%d", Config.Nice)); StructDvdExtract->list = g_list_append (StructDvdExtract->list, g_strdup ("mplayer")); StructDvdExtract->list = g_list_append (StructDvdExtract->list, g_strdup ("-nojoystick")); StructDvdExtract->list = g_list_append (StructDvdExtract->list, g_strdup ("-nolirc")); StructDvdExtract->list = g_list_append (StructDvdExtract->list, g_strdup ("-vo")); StructDvdExtract->list = g_list_append (StructDvdExtract->list, g_strdup ("null")); StructDvdExtract->list = g_list_append (StructDvdExtract->list, g_strdup ("-ao")); StructDvdExtract->list = g_list_append (StructDvdExtract->list, g_strdup_printf ("pcm:file=%s/%s.wav", Config.PathDestinationDVD, var->name_file)); Larrbuf = g_strsplit (chapter, " ", 0); for (cpt=0; Larrbuf[cpt]; cpt++) { StructDvdExtract->list = g_list_append (StructDvdExtract->list, g_strdup (Larrbuf[cpt])); } g_strfreev(Larrbuf); StructDvdExtract->list = g_list_append (StructDvdExtract->list, g_strdup_printf ("dvd://%s", var->StrNumerateTitle)); StructDvdExtract->list = g_list_append (StructDvdExtract->list, g_strdup ("-dvd-device")); StructDvdExtract->list = g_list_append (StructDvdExtract->list, g_strdup (scan_get_text_combo_cd (_DVD_))); StructDvdExtract->list = g_list_append (StructDvdExtract->list, g_strdup ("-aid")); StructDvdExtract->list = g_list_append (StructDvdExtract->list, g_strdup_printf ("%d",libutils_hexa_to_int (var->StrNumerateStreamId))); Larrbuf = g_strsplit (param, " ", 0); for (cpt=0; Larrbuf[cpt]; cpt++) { StructDvdExtract->list = g_list_append (StructDvdExtract->list, g_strdup (Larrbuf[cpt])); } g_strfreev(Larrbuf); GlistDvdExtract = g_list_append (GlistDvdExtract, StructDvdExtract); g_free (param); param = NULL; } else { var->EtatNormalise = FALSE; } } /* continuer à parcourir l'arbre */ return FALSE; } // // void on_button_extraction_dvd_clicked (GtkButton *button, gpointer user_data) { var_dvd.int_temp = 0; var_dvd.TTNormPeak = 0; var_dvd.TTNormPeakCollectif = 0; gtk_tree_model_foreach (GTK_TREE_MODEL(var_dvd.Adr_Tree_Model), dvd_foreach_func, NULL); // mplayer_fifo_quit (); dvdextract_dvd_to_file (); } // // void on_combobox_sub_dvd_realize (GtkWidget *widget, gpointer user_data) { libcombo_alloc (GTK_COMBO_BOX (widget)); var_dvd.Adr_combobox_sub_dvd = GTK_COMBO_BOX (widget); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "Normal"); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "-3dB"); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "-6dB"); gtk_combo_box_set_active (GTK_COMBO_BOX (widget), 0); } // // void on_combobox_ambiance_dvd_realize (GtkWidget *widget, gpointer user_data) { libcombo_alloc (GTK_COMBO_BOX (widget)); var_dvd.Adr_combobox_ambiance_dvd = GTK_COMBO_BOX (widget); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "Normal"); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "-3dB"); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "-6dB"); gtk_combo_box_set_active (GTK_COMBO_BOX (widget), 0); } // // void on_combobox_normalise_dvd_realize (GtkWidget *widget, gpointer user_data) { libcombo_alloc (GTK_COMBO_BOX (widget)); var_dvd.Adr_combobox_normalise_dvd = GTK_COMBO_BOX (widget); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "Peak/Album"); gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "Peak"); gtk_combo_box_set_active (GTK_COMBO_BOX (widget), 0); } // // gint dvd_get_value_normalise_dvd (void) { if (var_dvd.Adr_combobox_normalise_dvd == NULL) return (-1); return (gtk_combo_box_get_active (var_dvd.Adr_combobox_normalise_dvd)); } // // SOLVED // Debian Bug report logs - #673640 // xcfa: XCFA crashes when the CD is ejected // http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=673640 // void on_button_eject_dvd_realize( GtkWidget *widget, gpointer user_data ) { // g_print( "on_button_eject_dvd_realize\n" ); // g_print( "\tscan_get_glist() = %p\n", scan_get_glist () ); gtk_widget_set_sensitive( widget, scan_get_glist() == NULL ? FALSE : TRUE ); } void on_button_eject_dvd_clicked (GtkButton *button, gpointer user_data) { dvd_remove_GtkTree (); dvdread_remove_list (); dvd_set_flag_buttons_dvd (); scan_eject_media (_DVD_); } // // void on_combobox_peripherique_dvd_changed (GtkComboBox *combobox, gpointer user_data) { if( NULL != var_dvd.Adr_ComboBox_Reader ) { Config.NumSelectComboBoxDvd = gtk_combo_box_get_active (GTK_COMBO_BOX (var_dvd.Adr_ComboBox_Reader)); dvd_reffresh_list_dvd (); } } // // void on_button_rafraichir_dvd_clicked (GtkButton *button, gpointer user_data) { dvd_reffresh_list_dvd (); } // // void on_button_deplier_dvd_clicked (GtkButton *button, gpointer user_data) { gtk_tree_view_expand_all ( (GtkTreeView *)var_dvd.Adr_TreeView); } // // void on_button_replier_dvd_clicked (GtkButton *button, gpointer user_data) { gtk_tree_view_collapse_all ( (GtkTreeView *)var_dvd.Adr_TreeView); } // // void dvd_from_popup (TYPE_SET_FROM_POPUP_DVD TypeSetFromPopup, gboolean EtatNormalise) { switch (TypeSetFromPopup) { // SELECTION ou DESELECTION POUR LES ICONES DE CONVERSIONS case CD_NORMALISE_SELECT_V : // Deselection verticale dvd_set_flag_normalise (FALSE); break; case CD_NORMALISE_DESELECT_V : // Selection verticale dvd_set_flag_normalise (TRUE); break; } } xcfa-4.3.6/src/file_analyze.c0000644000175000017500000006164512123551616013001 00000000000000 /* * file : file_analyse.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #include #include #include #include #include #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "configuser.h" #include "win_scan.h" #include "get_info.h" #include "tags.h" #include "win_scan.h" #include "prg_init.h" #include "win_info.h" #include "file.h" typedef struct { gchar *Name; // TYPE_FILESELECTION TypeFileIs; TYPE_FILE_IS TypeFileIs; } VAR_LIST_FILES; typedef struct { GList *ListReceive; GList *ListFiles; // VAR_LIST_FILES TYPE_FILESELECTION TypeFileselection; // RECHERCHE RECURSIVE DES FICHIERS // INDIQUE LE NOMBRE TOTAL DANS: VarAnalyze.RecTotalFile // gchar *RecPtrDir; gchar *RecName; gint RecTotalFile; gint RecActivate; double percent; VAR_LIST_FILES *VarListFiles; gboolean BoolInThread; gboolean BoolSetPercent; guint HandlerTimeoutDo; gboolean BoolNoFindCheckMp3; } VAR_ANALYZE; VAR_ANALYZE VarAnalyze = {NULL, NULL, -1, NULL, NULL, 0, 0, 0.0, NULL, FALSE, FALSE, -1 }; GList *entetefile = NULL; /* pointeur sur DETAIL */ // SUPPRESSION DU CONTENU DE entetefile SI BoolRemove==TRUE ET DU GLIST // void fileanalyze_remove_entetefile_detail( void ) { GList *list = NULL; DETAIL *detail = NULL; if( NULL != ( list = g_list_first( entetefile ))) { while (list) { if( NULL != (detail = (DETAIL *)list->data) ) { if( TRUE == detail->BoolRemove ) { if( NULL != detail->namefile ) { g_free( detail->namefile ); detail->namefile = NULL; } if( NULL != detail->NameDest ) { g_free( detail->NameDest ); detail->NameDest = NULL; } if( NULL != detail->NameFileCopyFromNormalizate ) { g_free( detail->NameFileCopyFromNormalizate ); detail->NameFileCopyFromNormalizate = NULL; } if (detail->type_infosong_file_is == FILE_IS_FLAC) { INFO_FLAC *info = (INFO_FLAC *)detail->info; detail->info = (INFO_FLAC *)tagsflac_remove_info (info); } else if (detail->type_infosong_file_is == FILE_IS_WAV) { INFO_WAV *info = (INFO_WAV *)detail->info; // LevelDbfs = info->LevelDbfs; detail->info = (INFO_WAV *)tagswav_remove_info (info); } else if (detail->type_infosong_file_is == FILE_IS_MP3) { INFO_MP3 *info = (INFO_MP3 *)detail->info; // LevelDbfs = info->LevelDbfs; detail->info = (INFO_MP3 *)tagsmp3_remove_info (info); } else if (detail->type_infosong_file_is == FILE_IS_OGG) { INFO_OGG *info = (INFO_OGG *)detail->info; // LevelDbfs = info->LevelDbfs; detail->info = (INFO_OGG *)tagsogg_remove_info (info); } else if (detail->type_infosong_file_is == FILE_IS_M4A) { INFO_M4A *info = (INFO_M4A *)detail->info; detail->info = (INFO_M4A *)tagsm4a_remove_info (info); } else if (detail->type_infosong_file_is == FILE_IS_VID_M4A) { INFO_M4A *info = (INFO_M4A *)detail->info; detail->info = (INFO_M4A *)tagsm4a_remove_info (info); } else if (detail->type_infosong_file_is == FILE_IS_AAC) { INFO_AAC *info = (INFO_AAC *)detail->info; detail->info = (INFO_AAC *)tagsaac_remove_info (info); } else if (detail->type_infosong_file_is == FILE_IS_SHN) { INFO_SHN *info = (INFO_SHN *)detail->info; detail->info = (INFO_SHN *)tagsshn_remove_info (info); } else if (detail->type_infosong_file_is == FILE_IS_WMA) { INFO_WMA *info = (INFO_WMA *)detail->info; detail->info = (INFO_WMA *)tagswma_remove_info (info); } else if (detail->type_infosong_file_is == FILE_IS_RM) { INFO_RM *info = (INFO_RM *)detail->info; detail->info = (INFO_RM *)tagsrm_remove_info (info); } else if (detail->type_infosong_file_is == FILE_IS_DTS) { INFO_DTS *info = (INFO_DTS *)detail->info; detail->info = (INFO_DTS *)tagsdts_remove_info (info); } else if (detail->type_infosong_file_is == FILE_IS_AIFF) { INFO_AIFF *info = (INFO_AIFF *)detail->info; detail->info = (INFO_AIFF *)tagsaiff_remove_info (info); } else if (detail->type_infosong_file_is == FILE_IS_MPC) { INFO_MPC *info = (INFO_MPC *)detail->info; detail->info = (INFO_MPC *)tagsmpc_remove_info (info); } else if (detail->type_infosong_file_is == FILE_IS_APE) { INFO_APE *info = (INFO_APE *)detail->info; detail->info = (INFO_APE *)tagsape_remove_info (info); } else if (detail->type_infosong_file_is == FILE_IS_WAVPACK) { INFO_WAVPACK *info = (INFO_WAVPACK *)detail->info; detail->info = (INFO_WAVPACK *)tagswavpack_remove_info (info); } else if (detail->type_infosong_file_is == FILE_IS_AC3) { INFO_AC3 *info = (INFO_AC3 *)detail->info; detail->info = (INFO_AC3 *)tagsac3_remove_info (info); } g_free( detail ); detail = NULL; } } list->data = NULL; list = g_list_next (list); } g_list_free( entetefile ); } entetefile = NULL; } // SUPPRESSION DU CONTENU DE entetefile ET DU GLIST // void fileanalyze_remove_entetefile (void) { GList *list = NULL; DETAIL *detail = NULL; gint NbList = 0; if( NULL != ( list = g_list_first( entetefile ))) { while (list) { if (NULL != (detail = (DETAIL *)list->data)) { // fileanalyze_remove_entetefile_detail( &detail ); if( NULL != detail->namefile ) { g_free( detail->namefile ); detail->namefile = NULL; } if( NULL != detail->NameDest ) { g_free( detail->NameDest ); detail->NameDest = NULL; } if( NULL != detail->NameFileCopyFromNormalizate ) { g_free( detail->NameFileCopyFromNormalizate ); detail->NameFileCopyFromNormalizate = NULL; } if (detail->type_infosong_file_is == FILE_IS_FLAC) { INFO_FLAC *info = (INFO_FLAC *)detail->info; detail->info = (INFO_FLAC *)tagsflac_remove_info (info); } else if (detail->type_infosong_file_is == FILE_IS_WAV) { INFO_WAV *info = (INFO_WAV *)detail->info; // LevelDbfs = info->LevelDbfs; detail->info = (INFO_WAV *)tagswav_remove_info (info); } else if (detail->type_infosong_file_is == FILE_IS_MP3) { INFO_MP3 *info = (INFO_MP3 *)detail->info; // LevelDbfs = info->LevelDbfs; detail->info = (INFO_MP3 *)tagsmp3_remove_info (info); } else if (detail->type_infosong_file_is == FILE_IS_OGG) { INFO_OGG *info = (INFO_OGG *)detail->info; // LevelDbfs = info->LevelDbfs; detail->info = (INFO_OGG *)tagsogg_remove_info (info); } else if (detail->type_infosong_file_is == FILE_IS_M4A) { INFO_M4A *info = (INFO_M4A *)detail->info; detail->info = (INFO_M4A *)tagsm4a_remove_info (info); } else if (detail->type_infosong_file_is == FILE_IS_VID_M4A) { INFO_M4A *info = (INFO_M4A *)detail->info; detail->info = (INFO_M4A *)tagsm4a_remove_info (info); } else if (detail->type_infosong_file_is == FILE_IS_AAC) { INFO_AAC *info = (INFO_AAC *)detail->info; detail->info = (INFO_AAC *)tagsaac_remove_info (info); } else if (detail->type_infosong_file_is == FILE_IS_SHN) { INFO_SHN *info = (INFO_SHN *)detail->info; detail->info = (INFO_SHN *)tagsshn_remove_info (info); } else if (detail->type_infosong_file_is == FILE_IS_WMA) { INFO_WMA *info = (INFO_WMA *)detail->info; detail->info = (INFO_WMA *)tagswma_remove_info (info); } else if (detail->type_infosong_file_is == FILE_IS_RM) { INFO_RM *info = (INFO_RM *)detail->info; detail->info = (INFO_RM *)tagsrm_remove_info (info); } else if (detail->type_infosong_file_is == FILE_IS_DTS) { INFO_DTS *info = (INFO_DTS *)detail->info; detail->info = (INFO_DTS *)tagsdts_remove_info (info); } else if (detail->type_infosong_file_is == FILE_IS_AIFF) { INFO_AIFF *info = (INFO_AIFF *)detail->info; detail->info = (INFO_AIFF *)tagsaiff_remove_info (info); } else if (detail->type_infosong_file_is == FILE_IS_MPC) { INFO_MPC *info = (INFO_MPC *)detail->info; detail->info = (INFO_MPC *)tagsmpc_remove_info (info); } else if (detail->type_infosong_file_is == FILE_IS_APE) { INFO_APE *info = (INFO_APE *)detail->info; detail->info = (INFO_APE *)tagsape_remove_info (info); } else if (detail->type_infosong_file_is == FILE_IS_WAVPACK) { INFO_WAVPACK *info = (INFO_WAVPACK *)detail->info; detail->info = (INFO_WAVPACK *)tagswavpack_remove_info (info); } else if (detail->type_infosong_file_is == FILE_IS_AC3) { INFO_AC3 *info = (INFO_AC3 *)detail->info; detail->info = (INFO_AC3 *)tagsac3_remove_info (info); } detail = list->data = NULL; NbList ++; } list = g_list_next (list); } g_list_free( entetefile ); entetefile = NULL; } if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("\tRemove: %d\n", NbList); } // // gboolean fileanalyze_exist (DETAIL *detail, gchar *NewExt) { gchar *Name = NULL; gboolean bool_exist = FALSE; if (NULL == (Name = file_get_pathname_dest (detail, NewExt))) return (FALSE); bool_exist = libutils_access_mode (Name); g_free (Name); Name = NULL; return (bool_exist); } // RECHERCHE RECURSIVE DES FICHIERS // INDIQUE LE NOMBRE TOTAL DANS: VarAnalyze.RecTotalFile // // // void fileanalyze_recherche_recursive (gchar *Directory) { DIR *dp; struct dirent *entry; struct stat statbuf; // PRINT_FUNC_LF(); if (NULL == (dp = opendir (Directory))) { if (TRUE == libutils_test_file_exist (Directory) && libutils_get_size_file (Directory) > 100) { VarAnalyze.VarListFiles = (VAR_LIST_FILES *)g_malloc0 (sizeof (VAR_LIST_FILES)); VarAnalyze.VarListFiles->Name = g_strdup (Directory); VarAnalyze.VarListFiles->TypeFileIs = FILE_IS_NONE; VarAnalyze.ListFiles = g_list_append (VarAnalyze.ListFiles, VarAnalyze.VarListFiles); VarAnalyze.RecTotalFile ++; } return; } chdir (Directory); while ((entry = readdir (dp)) != NULL) { if (WindScan_close_request () == TRUE) break; lstat (entry->d_name, &statbuf); if (S_ISDIR (statbuf.st_mode)) { if (strcmp (".", entry->d_name) == 0 || strcmp ("..", entry->d_name) == 0) continue; fileanalyze_recherche_recursive (entry->d_name); } else { // VarAnalyze.RecPtrDir = g_get_current_dir (); // VarAnalyze.RecPtrDir = get_current_dir_name(); // Comme une extension du standard POSIX.1-2001, la version Linux (libc4, libc5, glibc) de getcwd() alloue le // tampon dynamiquement avec malloc(3), si buf est NULL. Dans ce cas, le tampon alloué a la longueur size à moins // que size soit égal à zéro, auquel cas buf est alloué avec la taille nécessaire. // L'appelant doit libérer avec free(3) le tampon renvoyé. if ((VarAnalyze.RecPtrDir = getcwd(VarAnalyze.RecPtrDir, 0)) != NULL) { VarAnalyze.RecName = g_strdup_printf ("%s/%s", VarAnalyze.RecPtrDir, entry->d_name); free (VarAnalyze.RecPtrDir); VarAnalyze.RecPtrDir = NULL; // LA TAILLE DU FICHIER DOIT ETRE POSITIVE if (libutils_get_size_file (VarAnalyze.RecName) > 100) { // ALIMENTE LA LISTE AVEC LE NOM COMPLET DE FICHIER: PATH + NAMEFILE VarAnalyze.VarListFiles = (VAR_LIST_FILES *)g_malloc0 (sizeof (VAR_LIST_FILES)); VarAnalyze.VarListFiles->Name = VarAnalyze.RecName; VarAnalyze.VarListFiles->TypeFileIs = FILE_IS_NONE; VarAnalyze.ListFiles = g_list_append (VarAnalyze.ListFiles, VarAnalyze.VarListFiles); VarAnalyze.RecTotalFile ++; } else { g_free (VarAnalyze.RecName); VarAnalyze.RecName = NULL; } } } } chdir (".."); closedir (dp); } // // RETOURNE UN TYPE [ TYPE_FILE_IS ] OU -1 // TYPE_FILE_IS fileanalyze_is_valid (gchar *PathName, TYPE_FILESELECTION p_TypeFileselection) { gint TypeTabFileAll[] = { FILE_IS_FLAC, FILE_IS_WAV, FILE_IS_MP3, FILE_IS_OGG, FILE_IS_M4A, FILE_IS_VID_M4A, // FILE_IS_AAC, FILE_IS_SHN, FILE_IS_WMA, FILE_IS_RM, FILE_IS_DTS, FILE_IS_AIFF, FILE_IS_MPC, FILE_IS_APE, FILE_IS_WAVPACK, FILE_IS_AC3, -1}; gint TypeTabFileWav[] = { FILE_IS_WAV, -1}; gint TypeTabFileMp3Ogg[] = { FILE_IS_MP3, FILE_IS_OGG, -1}; gint TypeTabFileTags[] = { FILE_IS_FLAC, FILE_IS_MP3, FILE_IS_OGG, FILE_IS_MPC, -1}; gint Cpt; TYPE_FILE_IS TypeFileIs = -1; if (_PATH_LOAD_FILE_ALL_ == p_TypeFileselection) { TypeFileIs = GetInfo_file_is (PathName); for (Cpt = 0; TypeTabFileAll[ Cpt ] != -1; Cpt ++) { if (TypeFileIs == TypeTabFileAll[ Cpt ]) return (TypeFileIs); } } else if (_PATH_LOAD_FILE_WAV_ == p_TypeFileselection) { TypeFileIs = GetInfo_file_is (PathName); for (Cpt = 0; TypeTabFileWav[ Cpt ] != -1; Cpt ++) { if (TypeFileIs == TypeTabFileWav[ Cpt ]) return (TypeFileIs); } } else if (_PATH_LOAD_FILE_MP3OGG_ == p_TypeFileselection) { TypeFileIs = GetInfo_file_is (PathName); for (Cpt = 0; TypeTabFileMp3Ogg[ Cpt ] != -1; Cpt ++) { if (TypeFileIs == TypeTabFileMp3Ogg[ Cpt ]) return (TypeFileIs); } } else if (_PATH_LOAD_FILE_TAGS_ == p_TypeFileselection) { TypeFileIs = GetInfo_file_is (PathName); for (Cpt = 0; TypeTabFileTags[ Cpt ] != -1; Cpt ++) { if (TypeFileIs == TypeTabFileTags[ Cpt ]) return (TypeFileIs); } } return (-1); } // VERIFIE LA VALIDITE DU FICHIER // gboolean fileanalyze_is_dupply (gchar *namefile) { GList *list = NULL; DETAIL *detail = NULL; list = g_list_first (entetefile); while (list) { if (NULL != (detail = (DETAIL *)list->data)) { if (*detail->namefile == *namefile) if (strcmp (namefile, detail->namefile) == 0) return (TRUE); } list = g_list_next (list); } return (FALSE); } // VERIFIE LA VALIDITE DU FICHIER // void fileanalyze_verif_validity_files (void) { GList *List = NULL; VAR_LIST_FILES *VarListFiles = NULL; TYPE_FILE_IS TypeFileIs = FILE_IS_NONE; List = g_list_first (VarAnalyze.ListFiles); while (List) { VarAnalyze.RecActivate ++; VarAnalyze.BoolSetPercent = TRUE; if (WindScan_close_request () == TRUE) break; if (NULL != ((VarListFiles = (VAR_LIST_FILES *)List->data))) { if (TRUE == fileanalyze_is_dupply (VarListFiles->Name)) { // g_print("TRUE == fileanalyze_is_dupply (%s)\n", VarListFiles->Name); g_free (VarListFiles->Name); VarListFiles->Name = NULL; g_free (VarListFiles); VarListFiles = List->data = NULL; } else if (_PATH_LOAD_FILE_ALL_ == VarAnalyze.TypeFileselection) { if (-1 == ((TypeFileIs = fileanalyze_is_valid (VarListFiles->Name, _PATH_LOAD_FILE_ALL_)))) { // g_print("NIL _PATH_LOAD_FILE_ALL_ : %s\n", VarListFiles->Name); g_free (VarListFiles->Name); VarListFiles->Name = NULL; g_free (VarListFiles); VarListFiles = List->data = NULL; } // PROGRAM checkmp3 (mp3check) NOT FOUND else if (FILE_IS_MP3 == TypeFileIs && FALSE == PrgInit.bool_checkmp3) { VarAnalyze.BoolNoFindCheckMp3 = TRUE; g_free (VarListFiles->Name); VarListFiles->Name = NULL; g_free (VarListFiles); VarListFiles = List->data = NULL; } } else if (_PATH_LOAD_FILE_WAV_ == VarAnalyze.TypeFileselection) { if (-1 == ((TypeFileIs = fileanalyze_is_valid (VarListFiles->Name,_PATH_LOAD_FILE_WAV_)))) { // g_print("NIL _PATH_LOAD_FILE_WAV_ : %s\n", VarListFiles->Name); g_free (VarListFiles->Name); VarListFiles->Name = NULL; g_free (VarListFiles); VarListFiles = List->data = NULL; } } else if (_PATH_LOAD_FILE_MP3OGG_ == VarAnalyze.TypeFileselection) { if (-1 == ((TypeFileIs = fileanalyze_is_valid (VarListFiles->Name,_PATH_LOAD_FILE_MP3OGG_)))) { // g_print("NIL _PATH_LOAD_FILE_MP3OGG_ : %s\n", VarListFiles->Name); g_free (VarListFiles->Name); VarListFiles->Name = NULL; g_free (VarListFiles); VarListFiles = List->data = NULL; } // PROGRAM checkmp3 (mp3check) NOT FOUND else if (FILE_IS_MP3 == TypeFileIs && FALSE == PrgInit.bool_checkmp3) { VarAnalyze.BoolNoFindCheckMp3 = TRUE; g_free (VarListFiles->Name); VarListFiles->Name = NULL; g_free (VarListFiles); VarListFiles = List->data = NULL; } } else if (_PATH_LOAD_FILE_TAGS_ == VarAnalyze.TypeFileselection) { if (-1 == ((TypeFileIs = fileanalyze_is_valid (VarListFiles->Name,_PATH_LOAD_FILE_TAGS_)))) { // g_print("NIL _PATH_LOAD_FILE_TAGS_ : %s\n", VarListFiles->Name); g_free (VarListFiles->Name); VarListFiles->Name = NULL; g_free (VarListFiles); VarListFiles = List->data = NULL; } // PROGRAM checkmp3 (mp3check) NOT FOUND else if (FILE_IS_MP3 == TypeFileIs && FALSE == PrgInit.bool_checkmp3) { VarAnalyze.BoolNoFindCheckMp3 = TRUE; g_free (VarListFiles->Name); VarListFiles->Name = NULL; g_free (VarListFiles); VarListFiles = List->data = NULL; } } // STOCKE LE TYPE DE FICHIER if (NULL != VarListFiles) { // g_print("%s\n", VarListFiles->Name); VarListFiles->TypeFileIs = TypeFileIs; } } List = g_list_next (List); } } // // void fileanalyze_set_in_list (void) { GList *List = NULL; DETAIL *detail = NULL; VAR_LIST_FILES *VarListFiles = NULL; List = g_list_first (VarAnalyze.ListFiles); while (List) { if (NULL != ((VarListFiles = (VAR_LIST_FILES *)List->data))) { VarAnalyze.RecActivate ++; VarAnalyze.BoolSetPercent = TRUE; detail = (DETAIL *)g_malloc0 (sizeof (DETAIL)); detail->namefile = g_strdup (VarListFiles->Name); detail->NameFileCopyFromNormalizate = NULL; detail->NameDest = libutils_get_name_without_ext( VarListFiles->Name ); detail->type_infosong_file_is = VarListFiles->TypeFileIs; detail->EtatTrash = FILE_TRASH_NONE; detail->EtatSelection_Wav = ETAT_ATTENTE; detail->EtatSelection_Flac = ETAT_ATTENTE; detail->EtatSelection_Ape = ETAT_ATTENTE; detail->EtatSelection_WavPack = ETAT_ATTENTE; detail->EtatSelection_Ogg = ETAT_ATTENTE; detail->EtatSelection_M4a = ETAT_ATTENTE; detail->EtatSelection_Aac = ETAT_ATTENTE; detail->EtatSelection_Mpc = ETAT_ATTENTE; detail->EtatSelection_Mp3 = ETAT_ATTENTE; detail->BoolRemove = STRUCT_NO_REMOVE; detail->Etat_Normalise = NORM_NONE; if (detail->type_infosong_file_is == FILE_IS_MP3 || detail->type_infosong_file_is == FILE_IS_OGG || detail->type_infosong_file_is == FILE_IS_WAV) { detail->Etat_Normalise = NORM_READY_FOR_SELECT; } detail->Etat_Scan = ETAT_SCAN_NONE; detail->LevelMix = -14; detail->PConv = NULL; detail->PConvWav = NULL; detail->PConvMp3Ogg = NULL; detail->Etat_ReplayGain = RPG_NONE; if (detail->type_infosong_file_is == FILE_IS_MP3 || detail->type_infosong_file_is == FILE_IS_OGG || detail->type_infosong_file_is == FILE_IS_FLAC || detail->type_infosong_file_is == FILE_IS_WAVPACK) { detail->Etat_ReplayGain = RPG_ATTENTE; } // MP3: DEBIT MODE detail->Mp3_Debit = -1; detail->Mp3_Mode = -1; // OGG: DEBIT MANAGED DOWNMIX detail->Ogg_Debit = -1; detail->Ogg_Managed = -1; detail->Ogg_Downmix = -1; detail->BoolChanged = FALSE; if (VarListFiles->TypeFileIs == FILE_IS_FLAC) detail->info = tagsflac_get_info (detail); else if (VarListFiles->TypeFileIs == FILE_IS_WAV) detail->info = tagswav_get_info (detail->namefile); else if (VarListFiles->TypeFileIs == FILE_IS_MP3) detail->info = tagsmp3_get_info (detail); else if (VarListFiles->TypeFileIs == FILE_IS_OGG) detail->info = tagsogg_get_info (detail); else if (VarListFiles->TypeFileIs == FILE_IS_SHN) detail->info = tagsshn_get_info (detail); else if (VarListFiles->TypeFileIs == FILE_IS_WMA) detail->info = tagswma_get_info (detail); else if (VarListFiles->TypeFileIs == FILE_IS_RM) detail->info = tagsrm_get_info (detail); else if (VarListFiles->TypeFileIs == FILE_IS_DTS) detail->info = tagsdts_get_info (detail); else if (VarListFiles->TypeFileIs == FILE_IS_AIFF) detail->info = tagsaiff_get_info (detail); else if (VarListFiles->TypeFileIs == FILE_IS_M4A) detail->info = tagsm4a_get_info (detail); else if (VarListFiles->TypeFileIs == FILE_IS_VID_M4A) detail->info = tagsm4a_get_info (detail); else if (VarListFiles->TypeFileIs == FILE_IS_MPC) detail->info = tagsmpc_get_info (detail); else if (VarListFiles->TypeFileIs == FILE_IS_APE) detail->info = tagsape_get_info (detail); else if (VarListFiles->TypeFileIs == FILE_IS_WAVPACK) detail->info = tagswavpack_get_info (detail); else if (VarListFiles->TypeFileIs == FILE_IS_AC3) detail->info = tagsac3_get_info (detail); else detail->info = NULL; // // CONDITION AJOUTEE SUITE A POST DEPUIS: // http://forum.ubuntu-fr.org/viewtopic.php?pid=4018344#p4018344 // if (NULL != detail->info) { // INSERTION DE LA STRUCTURE DETAIL DANS LA LISTE ENTETEFILE entetefile = g_list_append (entetefile, detail); } g_free (VarListFiles->Name); VarListFiles->Name = NULL; g_free (VarListFiles); VarListFiles = List->data = NULL; } List = g_list_next (List); } } // // static void fileanalyze_thread (void *arg) { gchar *Ptr = NULL; GList *List = NULL; VarAnalyze.BoolInThread = TRUE; // CONSTRUIT UNE LISTE DE TOUS LES FICHIERS SANS LES DOSSIERS List = g_list_first (VarAnalyze.ListReceive); while (List) { if ((Ptr = (gchar *)List->data) != NULL) { // RECHERCHE RECURSIVE DES FICHIERS // INDIQUE LE NOMBRE TOTAL DANS: VarAnalyze.RecTotalFile fileanalyze_recherche_recursive (Ptr); } List = g_list_next (List); } // SUPPRESISON DE LA COPIE DU GSLIST VarAnalyze.ListReceive = libutils_remove_glist (VarAnalyze.ListReceive); VarAnalyze.RecTotalFile *= 2; // VERIFIE LA VALIDITE DU FICHIER VarAnalyze.RecActivate = 0; fileanalyze_verif_validity_files (); // ALIMENTATION DE LA LISTE fileanalyze_set_in_list (); // REMOVE COPIE DU GLIST VarAnalyze.ListFiles = libutils_remove_glist (VarAnalyze.ListFiles); VarAnalyze.BoolInThread = FALSE; VarAnalyze.BoolSetPercent = FALSE; pthread_exit(0); } // // static gint fileanalyze_timeout (gpointer data) { if (TRUE == VarAnalyze.BoolSetPercent) { gchar *Str = NULL; VarAnalyze.BoolSetPercent = FALSE; VarAnalyze.percent = (double)VarAnalyze.RecActivate / (double)VarAnalyze.RecTotalFile; Str = g_strdup_printf ("%d%%", (int)(VarAnalyze.percent*100)); WindScan_set_progress (Str, VarAnalyze.percent); g_free (Str); Str = NULL; } else if (FALSE == VarAnalyze.BoolInThread) { WindScan_close (); gtk_timeout_remove (VarAnalyze.HandlerTimeoutDo); file_affiche_glist (); FileWav_affiche_glist (); FileMp3Ogg_affiche_glist (); FileTags_affiche_glist (); if (TRUE == VarAnalyze.BoolNoFindCheckMp3) { wininfo_create ( WindMain, _("Package checkmp3 (mp3check) NOT FOUND !"), _("Veuillez installer checkmp3 ou mp3check pour\nla prise en compte des fichiers mp3"), ""); } } return (TRUE); } // // void fileanalyze_add_file_to_treeview (TYPE_FILESELECTION p_TypeFileselection, GSList *p_list) { gchar *Ptr = NULL; GSList *gs_List = p_list; pthread_t nmr_tid_1; // PRINT_FUNC_LF(); if (NULL == p_list) return; WindScan_open ("Files scan", WINDSCAN_PULSE); WindScan_set_label ("Scan directory, verify and load ..."); // TYPE DE FICHIER EN RECHERCHE VarAnalyze.TypeFileselection = p_TypeFileselection; // COPIE DE LA GSlist TRANSMISE PAR LE FILESELECT ET QUI DEVRA ETRE SUPRIMEE while (gs_List) { if ((Ptr = (gchar *)gs_List->data) != NULL) { VarAnalyze.ListReceive = g_list_append (VarAnalyze.ListReceive, g_strdup (Ptr)); } gs_List = g_slist_next (gs_List); } VarAnalyze.RecActivate = 0; VarAnalyze.RecTotalFile = 0; // CALL THREAD VarAnalyze.BoolInThread = TRUE; VarAnalyze.BoolSetPercent = FALSE; VarAnalyze.BoolNoFindCheckMp3 = FALSE; pthread_create (&nmr_tid_1, NULL ,(void *)fileanalyze_thread, (void *)NULL); VarAnalyze.HandlerTimeoutDo = gtk_timeout_add (100, fileanalyze_timeout, 0); } xcfa-4.3.6/src/bacon.c0000644000175000017500000002373312122563465011421 00000000000000 /* * file : bacon.h * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * Code from : bacon-message-connection.h * Copyright (C) 2003 * By : Bastien Nocera * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #include #include #include #include #include #include #include #include /* For the workspace/viewport stuff */ #ifdef GDK_WINDOWING_X11 #include #include #include #include #endif #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "bacon.h" #ifndef UNIX_PATH_MAX #define UNIX_PATH_MAX 108 #endif struct BaconMessageConnection { // A server accepts connections gboolean is_server; // The socket path itself char *path; // File descriptor of the socket int fd; // Channel to watch GIOChannel *chan; // Event id returned by g_io_add_watch() int conn_id; // Connections accepted by this connection GSList *accepted_connections; // callback void (*func) (const char *message, gpointer user_data); gpointer data; }; // // static gboolean test_is_socket( const char *path ) { struct stat s; if (stat (path, &s) == -1) return FALSE; if (S_ISSOCK (s.st_mode)) return TRUE; return FALSE; } // // static gboolean is_owned_by_user_and_socket( const char *path ) { struct stat s; if (stat (path, &s) == -1) return FALSE; if (s.st_uid != geteuid ()) return FALSE; if ((s.st_mode & S_IFSOCK) != S_IFSOCK) return FALSE; return TRUE; } // // static gboolean server_cb( GIOChannel *source, GIOCondition condition, gpointer data ); // // static gboolean setup_connection( BaconMessageConnection *conn ) { g_return_val_if_fail (conn->chan == NULL, FALSE); conn->chan = g_io_channel_unix_new (conn->fd); if (!conn->chan) { return FALSE; } g_io_channel_set_line_term (conn->chan, "\n", 1); conn->conn_id = g_io_add_watch (conn->chan, G_IO_IN, server_cb, conn); return TRUE; } // // static void accept_new_connection( BaconMessageConnection *server_conn ) { BaconMessageConnection *conn; int alen; g_return_if_fail (server_conn->is_server); conn = g_new0 (BaconMessageConnection, 1); conn->is_server = FALSE; conn->func = server_conn->func; conn->data = server_conn->data; conn->fd = accept (server_conn->fd, NULL, (guint *)&alen); server_conn->accepted_connections = g_slist_prepend (server_conn->accepted_connections, conn); setup_connection (conn); } // // static gboolean server_cb( GIOChannel *source, GIOCondition condition, gpointer data ) { BaconMessageConnection *conn = (BaconMessageConnection *)data; char *message, *subs, buf; int cd, rc, offset; gboolean finished; offset = 0; if (conn->is_server && conn->fd == g_io_channel_unix_get_fd (source)) { accept_new_connection (conn); return TRUE; } message = g_malloc (1); cd = conn->fd; rc = read (cd, &buf, 1); while (rc > 0 && buf != '\n') { message = g_realloc (message, rc + offset + 1); message[offset] = buf; offset = offset + rc; rc = read (cd, &buf, 1); } if (rc <= 0) { g_io_channel_shutdown (conn->chan, FALSE, NULL); g_io_channel_unref (conn->chan); conn->chan = NULL; close (conn->fd); conn->fd = -1; g_free (message); conn->conn_id = 0; return FALSE; } message[offset] = '\0'; subs = message; finished = FALSE; while (finished == FALSE && *subs != '\0') { if (conn->func != NULL) (*conn->func) (subs, conn->data); subs += strlen (subs) + 1; if (subs - message >= offset) finished = TRUE; } g_free (message); return TRUE; } // // static char *find_file_with_pattern( const char *dir, const char *pattern ) { GDir *filedir; char *found_filename; const char *filename; GPatternSpec *pat; filedir = g_dir_open (dir, 0, NULL); if (filedir == NULL) return NULL; pat = g_pattern_spec_new (pattern); if (pat == NULL) { g_dir_close (filedir); return NULL; } found_filename = NULL; while ((filename = g_dir_read_name (filedir))) { if (g_pattern_match_string (pat, filename)) { char *tmp = g_build_filename (dir, filename, NULL); if (is_owned_by_user_and_socket (tmp)) found_filename = g_strdup (filename); g_free (tmp); } if (found_filename != NULL) break; } g_pattern_spec_free (pat); g_dir_close (filedir); return found_filename; } // // static char *socket_filename( const char *prefix ) { char *pattern, *newfile, *path, *filename; const char *tmpdir; pattern = g_strdup_printf ("%s.%s.*", prefix, g_get_user_name ()); tmpdir = g_get_tmp_dir (); filename = find_file_with_pattern (tmpdir, pattern); if (filename == NULL) { newfile = g_strdup_printf ("%s.%s.%u", prefix, g_get_user_name (), g_random_int ()); path = g_build_filename (tmpdir, newfile, NULL); g_free (newfile); } else { path = g_build_filename (tmpdir, filename, NULL); g_free (filename); } g_free (pattern); return path; } // // static gboolean try_server( BaconMessageConnection *conn ) { struct sockaddr_un uaddr; uaddr.sun_family = AF_UNIX; strncpy (uaddr.sun_path, conn->path, MIN (strlen(conn->path)+1, UNIX_PATH_MAX)); conn->fd = socket (PF_UNIX, SOCK_STREAM, 0); if (bind (conn->fd, (struct sockaddr *) &uaddr, sizeof (uaddr)) == -1) { conn->fd = -1; return FALSE; } listen (conn->fd, 5); if (!setup_connection (conn)) return FALSE; return TRUE; } // // static gboolean try_client( BaconMessageConnection *conn ) { struct sockaddr_un uaddr; uaddr.sun_family = AF_UNIX; strncpy (uaddr.sun_path, conn->path, MIN(strlen(conn->path)+1, UNIX_PATH_MAX)); conn->fd = socket (PF_UNIX, SOCK_STREAM, 0); if (connect (conn->fd, (struct sockaddr *) &uaddr, sizeof (uaddr)) == -1) { conn->fd = -1; return FALSE; } return setup_connection (conn); } // // BaconMessageConnection *bacon_message_connection_new( const char *prefix ) { BaconMessageConnection *conn; g_return_val_if_fail (prefix != NULL, NULL); conn = g_new0 (BaconMessageConnection, 1); conn->path = socket_filename (prefix); if (test_is_socket (conn->path) == FALSE) { if (!try_server (conn)) { bacon_message_connection_free (conn ); return NULL; } conn->is_server = TRUE; return conn; } if (try_client (conn) == FALSE) { unlink (conn->path); try_server (conn); if (conn->fd == -1) { bacon_message_connection_free (conn ); return NULL; } conn->is_server = TRUE; return conn; } conn->is_server = FALSE; return conn; } // // void bacon_message_connection_free( BaconMessageConnection *conn ) { GSList *child_conn; g_return_if_fail (conn != NULL); /* Only servers can accept other connections */ g_return_if_fail (conn->is_server != FALSE || conn->accepted_connections == NULL); child_conn = conn->accepted_connections; while (child_conn != NULL) { bacon_message_connection_free( child_conn->data ); child_conn = g_slist_next (child_conn); } g_slist_free (conn->accepted_connections); if (conn->conn_id) { g_source_remove (conn->conn_id); conn->conn_id = 0; } if (conn->chan) { g_io_channel_shutdown (conn->chan, FALSE, NULL); g_io_channel_unref (conn->chan); } if (conn->is_server != FALSE) { unlink (conn->path); } if (conn->fd != -1) { close (conn->fd); } g_free (conn->path); g_free (conn); } // // void bacon_message_connection_set_callback( BaconMessageConnection *conn, BaconMessageReceivedFunc func, gpointer user_data ) { g_return_if_fail (conn != NULL); conn->func = func; conn->data = user_data; } // // void bacon_message_connection_send( BaconMessageConnection *conn, GList *p_GListFile ) { GList *list = NULL; gchar *PtrName = NULL; g_return_if_fail (conn != NULL); g_return_if_fail (p_GListFile != NULL); list = g_list_first( p_GListFile ); while( list ) { if (NULL != (PtrName = (gchar *)list->data)) { g_io_channel_write_chars( conn->chan, PtrName, strlen (PtrName), NULL, NULL ); g_io_channel_write_chars( conn->chan, "\n", 1, NULL, NULL ); g_io_channel_flush( conn->chan, NULL ); } list = g_list_next( list ); } } // // gboolean bacon_message_connection_get_is_server( BaconMessageConnection *conn ) { g_return_val_if_fail (conn != NULL, FALSE); return conn->is_server; } // // guint bacon_utils_get_current_workspace( void ) { GdkWindow *root_win; GdkDisplay *display; Atom type; gint format; gulong nitems; gulong bytes_after; guint *current_desktop; gint err, result; guint ret = 0; GdkScreen *screen = gdk_screen_get_default (); g_return_val_if_fail (GDK_IS_SCREEN (screen), 0); root_win = gdk_screen_get_root_window (screen); display = gdk_screen_get_display (screen); gdk_error_trap_push (); result = XGetWindowProperty (GDK_DISPLAY_XDISPLAY (display), GDK_WINDOW_XID (root_win), gdk_x11_get_xatom_by_name_for_display (display, "_NET_CURRENT_DESKTOP"), 0, G_MAXLONG, False, XA_CARDINAL, &type, &format, &nitems, &bytes_after, (gpointer) ¤t_desktop); err = gdk_error_trap_pop (); if (err != Success || result != Success) return ret; if (type == XA_CARDINAL && format == 32 && nitems > 0) ret = current_desktop[0]; XFree (current_desktop); return ret; } xcfa-4.3.6/src/poche_web.c0000644000175000017500000002421712122563465012270 00000000000000 /* * file : poche_web.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #include #include #include #include #include #include #include #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "win_scan.h" #include "win_info.h" #include "configuser.h" #include "poche.h" /* *--------------------------------------------------------------------------- * VARIABLES *--------------------------------------------------------------------------- */ #define BUFFER_SIZE 1024 typedef struct { gboolean EndThread; gboolean EndTimeout; gchar *name; guint timeout; pthread_t nmr_tid; guint pocheweb_tt_glist; gchar *name_index_html; } POCHEWEB_EVENT; POCHEWEB_EVENT pocheweb_event; /* *--------------------------------------------------------------------------- * FONCTIONS *--------------------------------------------------------------------------- */ /* Recuperation sur le web du fichier image et sauvegarde */ gchar *pocheweb_get_on_web_file_img (gchar *filename) { gchar *name_file = NULL; gint num; gchar *LineCommand = NULL; PRINT_FUNC_LF(); // NEW NAME IF IMAGE EXIST num = 1; while (TRUE) { name_file = g_strdup_printf ("%s/%03d.jpg", Config.PathPochette, num); if (libutils_test_file_exist (name_file) == FALSE) { /*g_print ("NOUVEAU NOM: %s\n", name_file);*/ break; } num ++; g_free (name_file); name_file = NULL; } // IMAGE IMPORT LineCommand = g_strdup_printf ("wget --user-agent=\"Mozilla 22.0\" -O %s %s", name_file, filename); system (LineCommand); g_free (LineCommand); LineCommand = NULL; // L'IMPORT EST IL CORRECT ? if (libutils_test_file_exist (name_file) == FALSE) { g_free(name_file); name_file = NULL; if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print( " ******************************BAD IMPORT ******************************\n"); } // IMAGE FILE ? if( NULL != name_file ) { if( FALSE == FileIs_image( name_file )) { g_unlink (name_file); g_free (name_file); name_file = NULL; if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print( " ******************************BAD IMAGE ******************************\n"); } } return ((gchar *)name_file); } // Le fichier NAME_INDEX_HTML est analyse: // Tous les noms de fichiers seront passes en parametre a: pocheget_get_file (char *filename, int cpt) // pour recuperation et seront sauvegardes // void pocheweb_analyze_file_html (void) { size_t lenfile = 0; gchar *buffer = NULL; gchar *result = NULL; FILE *fp; gchar *PtrBegin = NULL; gchar *PtrEnd = NULL; gchar *PtrName = NULL; gint NumFile = 1; PRINT_FUNC_LF(); pocheweb_event.name_index_html = g_strdup_printf ("%s/index.html", Config.PathPochette); lenfile = libutils_get_size_file (pocheweb_event.name_index_html); if (lenfile <= 100) { if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("ERREUR TAILLE DE %s = %d\n", pocheweb_event.name_index_html, (gint)lenfile); g_free (pocheweb_event.name_index_html); pocheweb_event.name_index_html = NULL; return; } buffer = g_malloc0 (sizeof (char) * (lenfile + 1024)); fp = fopen (pocheweb_event.name_index_html, "r"); fread (buffer, 1, lenfile, fp); fclose (fp); // // RECHERCHE D'UNE SEQUENCE: // .jpg // ... PRECEDEE D'UNE SEQUENCE: // http:// // PtrEnd = buffer; // BOUCLE while( (PtrEnd - buffer) < lenfile ) { // SEARCH END STRING '.jpg' if( NULL != ( PtrEnd = strstr( PtrEnd, ".jpg" ))) { PtrBegin = PtrEnd; PtrBegin --; PtrEnd += 4; // SEARCH BEGIN STRING 'http:' while( PtrBegin > buffer ) { if( *(PtrBegin + 0) == 'h' && *(PtrBegin + 1) == 't' && *(PtrBegin + 2) == 't' && *(PtrBegin + 3) == 'p' && *(PtrBegin + 4) == ':' ) { // MAKE STRING result = g_strnfill( (PtrEnd - PtrBegin) + 10, '\0' ); // GET STRING strncpy( result, PtrBegin, PtrEnd - PtrBegin ); if( TRUE == OptionsCommandLine.BoolVerboseMode ) { g_print( "NumFile = %d\n", NumFile ); g_print( "result = %s\n", result ); } NumFile ++; if ((PtrName = pocheweb_get_on_web_file_img (result))) { if (pocheweb_event.name) { g_free (pocheweb_event.name); pocheweb_event.name = NULL; } pocheweb_event.name = g_strdup( PtrName ); pochedir_make_glist( PtrName ); g_free( PtrName ); PtrName = NULL; } g_free( result ); result = NULL; break; } else { PtrBegin --; } } if (WindScan_close_request ()) { if( TRUE == OptionsCommandLine.BoolVerboseMode ) { g_print ("DEMANDE D'ANNULATION DEPUIS: "); PRINT_FUNC_LF(); } break; } } PtrEnd ++; if ((PtrEnd - buffer) >= lenfile -100) break; } g_free (buffer); buffer = NULL; g_unlink (pocheweb_event.name_index_html); g_free (pocheweb_event.name_index_html); pocheweb_event.name_index_html = NULL; } /* Recuperation du fichier *.html et sauvegarde */ gboolean pocheweb_recup_file_html (gchar *cd_name) { /*FILE *index;*/ gchar *name = NULL; gchar *ptrname = NULL; gboolean bool_ret = FALSE; gchar *PtrNew = NULL; gchar *Ptr = NULL; gchar *LineCommand = NULL; PRINT_FUNC_LF(); /* Construction du path */ Ptr = PtrNew = g_strdup_printf ("http://images.google.com/images?q=%s", cd_name); /* Chaine de transformation du nom */ name = g_strnfill (2048, '\0'); ptrname = name; /* http://images.google.com/images?q=Dire Straits Brothers In Arms+Dire Straits Brothers in arms http://images.google.com/images?q=Dire%20Straits%20Brothers%20In%20Arms+Dire%20Straits%20Brothers%20in%20arms */ while (*Ptr) { if (*Ptr == ' ') { *ptrname ++ = '%'; *ptrname ++ = '2'; *ptrname ++ = '0'; Ptr ++; } else { *ptrname ++ = *Ptr ++; } } g_free (PtrNew); PtrNew = Ptr = NULL; /*g_print ("\n---------NAME = %s\n\n", name);*/ pocheweb_event.name_index_html = g_strdup_printf ("%s/index.html", Config.PathPochette); LineCommand = g_strdup_printf ("wget --user-agent=\"Mozilla 22.0\" -O %s %s", pocheweb_event.name_index_html, name); if( TRUE == OptionsCommandLine.BoolVerboseMode ) { g_print( "pocheweb_event.name_index_html = %s\n", pocheweb_event.name_index_html ); // /tmp/XcfaPochette/index.html g_print( "name = %s\n", name ); // http://images.google.com/images?q= g_print( "LineCommand=%s\n", LineCommand ); // wget --user-agent="Mozilla 22.0" -O /tmp/XcfaPochette/index.html http://images.google.com/images?q= } system (LineCommand); g_free (LineCommand); LineCommand = NULL; bool_ret = (libutils_test_file_exist (pocheweb_event.name_index_html) && libutils_get_size_file (pocheweb_event.name_index_html) > 0); if( TRUE == OptionsCommandLine.BoolVerboseMode ) { g_print( "bool_ret = %s\n", TRUE == bool_ret ? "TRUE" : "FALSE" ); } g_free (name); name = NULL; return (bool_ret); } static void pocheweb_thread (void *arg) { gchar *ptr_cdname = NULL; // PRINT_FUNC_LF(); // ptr_cdname = pocheevnt_get_comboboxentry_cdaudio (); ptr_cdname = pochetxt_get_ptr_entry_img_web(); if (pocheweb_recup_file_html (ptr_cdname) == TRUE) { pocheweb_analyze_file_html (); } pocheweb_event.EndTimeout = TRUE; pocheweb_event.EndThread = TRUE; pthread_exit(0); } gboolean pocheweb_bool_file_add (void) { return( pocheweb_event.pocheweb_tt_glist < g_list_length (view.glist ) ? TRUE : FALSE ); } static gint pocheweb_timeout (gpointer data) { if (pocheweb_event.name) { gchar *Str = g_strdup_printf ("%s", pocheweb_event.name); WindScan_set_label (Str); g_free (pocheweb_event.name); pocheweb_event.name = NULL; g_free (Str); Str = NULL; } else if (pocheweb_event.EndThread == TRUE) { pochedir_table_add_images (); // pocheevnt_set_flag_buttons_recto (); // pocheevnt_set_flag_buttons_verso (); gtk_timeout_remove (pocheweb_event.timeout); WindScan_close (); if (pocheweb_bool_file_add () == FALSE) { wininfo_create ( WindMain, _("Aucun fichier trouve !"), _("Pour resoudre ce probleme:"), "\n", "-----------------------------------\n", _("Modifiez la chaine de recherche et"), "\n", _("recommencez."), ""); } } return (TRUE); } void pocheweb_get (void) { gchar *StrEntryWeb = pochetxt_get_ptr_entry_img_web(); // PRINT_FUNC_LF(); if( NULL == StrEntryWeb || '\0' == *StrEntryWeb ) { wininfo_create ( WindMain, _("Critere de recherche absent !!"), _("Pour resoudre ce probleme:"), "\n", "-----------------------------------\n", _("Saisissez une chaine de recherche et"), "\n", _("recommencez."), ""); return; } pocheweb_event.pocheweb_tt_glist = g_list_length (view.glist); WindScan_open ("Recherche des fichiers images", WINDSCAN_PULSE); WindScan_set_label ("Recherche des fichiers images ..."); pocheweb_event.name = g_strdup (_("[Recherche des fichiers images]")); pocheweb_event.name = NULL; pocheweb_event.EndThread = FALSE; pocheweb_event.EndTimeout = FALSE; pocheweb_event.timeout = gtk_timeout_add (10, pocheweb_timeout, 0); pthread_create (&pocheweb_event.nmr_tid, NULL ,(void *)pocheweb_thread, (void *)NULL); } xcfa-4.3.6/src/win_reader.h0000644000175000017500000000221512122563437012452 00000000000000 /* * file : win_reader.h * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifndef win_reader_h #define win_reader_h 1 void WinReader_open (gchar *title); void WinReader_set_pause (void); void WinReader_set_lecture (void); void WinReader_close (void); void WinReader_set_value (gdouble p_value); gboolean WinReader_is_close (void); #endif xcfa-4.3.6/src/notify_send.h0000644000175000017500000000204212122563437012652 00000000000000 /* * file : notify_send.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifndef notify_send_h #define notify_send_h 1 void NotifySend_msg( gchar *Title, gchar *Str, gboolean p_BoolStopByUser ); void NotifySend_remove (void); #endif xcfa-4.3.6/src/web.h0000644000175000017500000000175012122563437011113 00000000000000 /* * file : web.h * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifndef web_h #define web_h 1 void web_remove_temporary_rep (void); void web_goto_url (gchar *str_web); #endif xcfa-4.3.6/src/configuser.h0000644000175000017500000001211012122563437012472 00000000000000 /* * file : configuser.h * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifndef configuser_h #define configuser_h 1 typedef struct { gint Bitrate_type_Lame; // Bitrate Lame gint If_abr; // SI ABR est defini gint If_cbr; // SI CBR est defini gint If_vbr; // SI VBR est defini gint If_vbr_new; // SI VBR_NEW est defini gint Mode_Lame; // Mode Lame gint Bitrate_Oggenc; // Bitrate Oggenc gint Managed_Oggenc; // Managed Oggenc gint Downmix_Oggenc; // Downmix Oggenc } RATE_MP3OGG; typedef struct { gboolean BoolConfigOk; // Attendre la fin de la config.: Voir main.c gulong UsesOfXcfa; // 0 to G_MAXULONG ( 18446744073709551615 ) gint WinPos_X; // gint WinPos_Y; // gint WinWidth; // gint WinHeight; // gint Nice; // gchar *PathLoadFileAll; // gchar *PathLoadFileWav; // gchar *PathLoadFileMp3Ogg; // gchar *PathLoadFileTags; // gint TabIndiceComboDestFile[4]; // gchar *PathDestinationFileAll; // gchar *PathDestinationFileWav; // gchar *PathDestinationFileMp3Ogg; // gchar *PathDestinationFileTags; // gchar *PathDestinationDVD; // gchar *PathChoiceFileDVD; // gchar *PathDestinationCD; // gchar *PathChoiceFileCD; // gchar *PathDestinationSplit; // gchar *PathLoadSplit; // gchar *PathnameTMP; // gchar *PathStockeImagesPochette; // gchar *PathDestFilePostScript; // gchar *PathLoadImages; // gint NotebookGeneral; // gint NotebookExpanderCd; // gint NotebookFile; // gint NotebookOptions; // gint NotebookAppExterns; // gint ExtractCdWith; // EXTRACT_WITH_CDPARANOIA = 0, EXTRACT_WITH_CDPARANOIA_EXPERT, EXTRACT_WITH_CDDA2WAV gint BitrateLameIndice; // abr .. vbr_new gint TabBitrateLame[4]; // [ abr | cbr | vbr | vbr_new ] gint TabModeLame[4]; // [ ModeAbr | ModeCbr | ModeVbr | ModeVbrNew ] gint BitrateOggenc; // gint ManagedOggenc; // gint DownmixOggenc; // gint CompressionLevelFlac; // gint CompressionLevelApeMac; // gint CompressionWavpack; // gint SoundWavpack; // gint ModeHybrideWavpack; // gint CorrectionFileWavpack; // gint CompressionMaximumWavpack; // gint SignatureMd5Wavpack; // gint ExtraEncodingWavpack; // gint QualityMppenc; // gint ConteneurFacc; // gint AbrVbrFacc; // gint AbrFaccIndice; // gint VbrFaccIndice; // gint ChoiceMonoAacplusenc; // gint ChoiceStereoAacplusenc; // gboolean BoolArtistTag; // gboolean BoolTitleTag; // gboolean BoolAlbumTag; // gboolean BoolNumerateTag; // gboolean BoolGenreTag; // gboolean BoolYearTag; // gboolean BoolCommentTag; // gboolean BoolEtatExpanderCd; // gchar *StringExpanderLame; // Lignes de saisie: options pour les geeks gchar *StringExpanderOggenc; // gchar *StringExpanderFlac; // gchar *StringExpanderFaac; // gchar *StringExpanderMppenc; // gchar *StringExpanderMac; // gchar *StringExpanderWavpack; // gint ServeurCddb; // SERVER_CDDB_DEFAULT = 0 OR SERVER_CDDB_PARAM gchar *StringNameFile_m3u_xspf; // gchar *Templates_title_cdaudio; // Format titres cdaudio gchar *Templates_rep_cdaudio; // Dossier de sauvegarde des fichiers cdaudio gchar *StringNameNavigateur; // gchar *StringParamNameNavigateur; // gchar *StringNameLecteurPostScript; // gchar *StringNameLecteurAudio; // gchar *StringParamNameLecteurAudio; // gchar *StringBoolFieldsIsVisible; // FIELDS DVD,CD,FILES: FALSE or HIDE = 0, TRUE or SHOW = 1 gchar *StringPosFieldsName; // POS NAME OF DVD,CD,FILES: 0 = LEFT, 1 = CENTER, 2 = RIGHT gint NumSelectComboBoxDvd; // gint NumSelectComboBoxCd; // gchar *entry_cddp_server; // gchar *entry_proxy_server; // gchar *entry_proxy_port; // gchar *NameImg; // NEW gchar *PathLoadImg; // gchar *PathSaveImg; // gchar *PathPochette; // gboolean BoolCheckbuttonEndOfConvert; // gchar *PathMusicFileEndOfConvert; // gchar *FileMusicFileEndOfConvert; // gchar *StringCommentCD; // gboolean BoolLogCdparanoiaModeExpert; // } VAR_CONFIG; extern VAR_CONFIG Config; extern VAR_CONFIG ConfigSaveToRest; void config_read(void); void config_save (void); void config_remove (void); #endif xcfa-4.3.6/src/alsa_audio.c0000644000175000017500000002246012122563465012434 00000000000000 /* * file : alsa_audio.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . * * --- * * Code de lecture audio pour fichiers de type WAV reprit et retravaille * depuis: * Analyse code depuis: wavbreaker * par Timothy Robinson et Thomas Perl * http://wavbreaker.sourceforge.net/ * */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "alsa_audio.h" VAR_ALSA VarAlsa = { NULL, // snd_pcm_t *playback_handle; // Handle 0, // guint bytesPerFrame; // 8, 16, 24, 32, 64 ... 0, // guint channels; // 1, 2, 4 ... 0, // gint SampleRate; // Frequence: 44100 ... 0, // gint TotalChunckSize; // NULL, // guchar *buffer; // Pointeur de buffer 0, // guint SizeBuffer; // Taille requise du buffer 0, // gint Sec; // Duree total en secondes 0.0, // gdouble Percent; // Poucentage en retour sur la duree total 0.0, // gdouble PercentSel; // Poucentage en retour depuis la selection 0.0, // gdouble PercentBegin; // 0.0, // gdouble PercentEnd; // FALSE, // gboolean BoolThreadEnd; // 0, // guint HandlerTimeout; // TRUE, // gboolean StopPlay; // TRUE, // gboolean PauseAlsa; // NULL, // void (*FuncSetValueTime) (gdouble p_value); // NULL, // void (*FuncIconeStop) (void); // NULL // FILE *pFile; // Handler du fichier ouvert }; void AlsaAudio_close_device (void) { if (VarAlsa.playback_handle != NULL ) { snd_pcm_close (VarAlsa.playback_handle); } VarAlsa.playback_handle = NULL; } gboolean AlsaAudio_write(int size) { gint err; snd_pcm_uframes_t uframes; /* * Alsa takes a short value for each sample. Also, the size parameter * is the number of frames. So, I divide the size by the number * of channels multiplied by 2. The 2 is the difference between * the size of a char and a short. */ uframes = size / ( VarAlsa.channels * VarAlsa.bytesPerFrame ); err = snd_pcm_writei( VarAlsa.playback_handle, VarAlsa.buffer, uframes ); if (err < 0 ) { /* * This code should let us recover from a buffer underrun in ALSA. * This happens, for example, when the user backgrounds (^Z) the * wavbreaker process while playing back audio or if the machine is * too slow to keep up with normal playback speed. * * After every error, we have to call "snd_pcm_prepare" and hope * that ALSA recovers. If not, we have a problem, so spit out an * error message to let the user know something's wrong. */ // // TODO ESTRPIPE // Mon, 06 Dec 2010 23:59:33 +0100 // // ESTRPIPE is not define under KFreeBSD :/ // MODIF POUR COMPIL CORRECTE DANS KFreeBSD suite a un mail de Christian Marillat: // // Christian Marillat a écrit : // Il ne vaut pas mieux utiliser BSM_ERRNO_ESTRPIPE à la place de 92 ? // Pour Kfreebsd c'est '__FreeBSD_kernel__' // Christian // #ifdef __FreeBSD_kernel__ #include if( err == -BSM_ERRNO_ESTRPIPE ) { while( (err = snd_pcm_resume (VarAlsa.playback_handle)) == -EAGAIN ) { sleep( 1); } } err = snd_pcm_prepare (VarAlsa.playback_handle); if( err != 0 ) { fprintf( stderr, "write to audio interface failed (%s)\n", snd_strerror( err)); } #else // // FIXME // // ESTRPIPE is not define under HURD :/ // https://buildd.debian.org/fetch.cgi?pkg=xcfa;ver=4.0.5~beta2-1;arch=hurd-i386;stamp=1301412239 // ESTRPIPE undeclared (first use in this function) // #ifdef ESTRPIPE if( err == -ESTRPIPE ) { while( (err = snd_pcm_resume (VarAlsa.playback_handle)) == -EAGAIN ) { sleep( 1); } } err = snd_pcm_prepare (VarAlsa.playback_handle); if( err != 0 ) { fprintf( stderr, "write to audio interface failed (%s)\n", snd_strerror( err)); } #endif #endif } return ( ( err == 0 ) ? TRUE : FALSE ); } gboolean AlsaAudio_open_device( const gchar *audio_dev, // "default" gint p_bitsPerSample, // 8, 16, 24, ... gint p_channels, // 1, 2, 4, , ... guint p_samplesPerSec, // 44100, ... guint *p_bufferSize // Taille buffer retournee ) { gint err; gint dir; guint rate; guint rrate; snd_pcm_format_t format; snd_pcm_hw_params_t *hw_params; snd_pcm_uframes_t buffer_size; snd_pcm_uframes_t period_size; guint buffer_time = 500000; /* ring buffer length in us */ guint period_time = 100000; /* period time in us */ VarAlsa.bytesPerFrame = 2; format = SND_PCM_FORMAT_S16_LE; if (p_bitsPerSample == 8 ) { VarAlsa.bytesPerFrame = 1; format = SND_PCM_FORMAT_U8; } else if (p_bitsPerSample == 16 ) { VarAlsa.bytesPerFrame = 2; format = SND_PCM_FORMAT_S16_LE; } else if (p_bitsPerSample == 24 ) { VarAlsa.bytesPerFrame = 3; format = SND_PCM_FORMAT_S24_3LE; } else if (p_bitsPerSample == 32 ) { VarAlsa.bytesPerFrame = 4; format = SND_PCM_FORMAT_S32; } else { PRINT_FUNC_LF(); if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print("Format de bitrate [ %d ] non prit en charge\n", p_bitsPerSample); return (FALSE); } VarAlsa.SampleRate = p_samplesPerSec; rate = p_samplesPerSec; VarAlsa.channels = p_channels; /* setup dsp device */ err = snd_pcm_open(&VarAlsa.playback_handle, audio_dev, SND_PCM_STREAM_PLAYBACK, 0); if (err < 0 ) { if( TRUE == OptionsCommandLine.BoolVerboseMode ) fprintf(stderr, "cannot open audio device %s (%s)\n", audio_dev, snd_strerror(err)); return (FALSE); } err = snd_pcm_hw_params_malloc(&hw_params); if (err < 0 ) { if( TRUE == OptionsCommandLine.BoolVerboseMode ) fprintf(stderr, "cannot allocate hardware parameter structure (%s)\n", snd_strerror(err)); return (FALSE); } err = snd_pcm_hw_params_any(VarAlsa.playback_handle, hw_params); if (err < 0 ) { if( TRUE == OptionsCommandLine.BoolVerboseMode ) fprintf(stderr, "cannot initialize hardware parameter structure (%s)\n", snd_strerror(err)); return (FALSE); } err = snd_pcm_hw_params_set_access(VarAlsa.playback_handle, hw_params, SND_PCM_ACCESS_RW_INTERLEAVED); if (err < 0 ) { fprintf(stderr, "cannot set access type (%s)\n", snd_strerror(err)); return (FALSE); } /* set format */ err = snd_pcm_hw_params_set_format(VarAlsa.playback_handle, hw_params, format); if (err < 0 ) { if( TRUE == OptionsCommandLine.BoolVerboseMode ) fprintf(stderr, "cannot set sample format (%s)\n", snd_strerror(err)); return (FALSE); } /* set sample rate */ rrate = rate; err = snd_pcm_hw_params_set_rate_near(VarAlsa.playback_handle, hw_params, &rrate, 0); if (err < 0 ) { if( TRUE == OptionsCommandLine.BoolVerboseMode ) fprintf(stderr, "cannot set sample rate (%s)\n", snd_strerror(err)); return (FALSE); } /* set channels */ err = snd_pcm_hw_params_set_channels(VarAlsa.playback_handle, hw_params, VarAlsa.channels); if (err < 0 ) { if( TRUE == OptionsCommandLine.BoolVerboseMode ) fprintf(stderr, "cannot set channel count (%s)\n", snd_strerror(err)); return (FALSE); } /* set the buffer time */ err = snd_pcm_hw_params_set_buffer_time_near(VarAlsa.playback_handle, hw_params, &buffer_time, &dir); if (err < 0 ) { if( TRUE == OptionsCommandLine.BoolVerboseMode ) printf("Unable to set buffer time %i for playback: %s\n", buffer_time, snd_strerror(err)); return (FALSE); } /* set the period time */ err = snd_pcm_hw_params_set_period_time_near(VarAlsa.playback_handle, hw_params, &period_time, &dir); if (err < 0 ) { if( TRUE == OptionsCommandLine.BoolVerboseMode ) printf("Unable to set period time %i for playback: %s\n", period_time, snd_strerror(err)); return (FALSE); } /* commit parameters */ err = snd_pcm_hw_params(VarAlsa.playback_handle, hw_params); if (err < 0 ) { if( TRUE == OptionsCommandLine.BoolVerboseMode ) fprintf(stderr, "cannot set parameters (%s)\n", snd_strerror(err)); return (FALSE); } err = snd_pcm_hw_params_get_buffer_size(hw_params, &buffer_size); if (err < 0 ) { if( TRUE == OptionsCommandLine.BoolVerboseMode ) printf("Unable to get buffer size for playback: %s\n", snd_strerror(err)); return (FALSE); } err = snd_pcm_hw_params_get_period_size(hw_params, &period_size, 0); if (err < 0 ) { if( TRUE == OptionsCommandLine.BoolVerboseMode ) printf("Unable to get period size for playback: %s\n", snd_strerror(err)); return (FALSE); } *p_bufferSize = snd_pcm_frames_to_bytes(VarAlsa.playback_handle, period_size); snd_pcm_hw_params_free(hw_params); err = snd_pcm_prepare(VarAlsa.playback_handle); if (err < 0 ) { if( TRUE == OptionsCommandLine.BoolVerboseMode ) fprintf(stderr, "cannot prepare audio interface for use (%s)\n", snd_strerror(err)); return (FALSE); } return (TRUE); } xcfa-4.3.6/src/poche_draw.c0000644000175000017500000004611212122563577012452 00000000000000 /* * file : poche_draw.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #include #include #include #include #include // M_PI #include #include #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "cursor.h" #include "dragNdrop.h" #include "fileselect.h" #include "configuser.h" #include "poche.h" // // gdouble pochedraw_get_scale_adjust( void ) { gdouble return_scale = 1.0; if( TRUE == view.BoolScaleAdjust ) { gdouble scale_width = 1.0; gdouble scale_height = 1.0; gdouble new_scale = 1.0; // La definition SCALE_MIN correspond au pourcentage de representation le plus petit de l'image de fond // SCALE_MIN doit etre adaptee suivant la taille la plus petite de la fenetre if( view.scale > SCALE_MIN ) { view.scale = SCALE_MIN; poche_set_size_request(); } scale_width = (gdouble)view.AdrDrawingarea->allocation.width / (gdouble)view.image_width; scale_height = (gdouble)view.AdrDrawingarea->allocation.height / (gdouble)view.image_height; new_scale = MIN(scale_width, scale_height); return_scale = new_scale; } else { return_scale = view.scale; } poche_print_zoom_changed( return_scale ); return( return_scale ); } // // ECRITURE TEXTE // void pochedraw_print_cairo_text( cairo_t *cr, IMAGE *p_Image ) { gchar **Larrbuf = g_strsplit( p_Image->Texte, "\n", 0 ); gdouble LineY = 0.0 + (gdouble)p_Image->SizeFontName; gint i; gchar *Ptr = NULL; GString *gstr = NULL; cairo_font_slant_t Param_3; cairo_font_weight_t Param_4; gchar *StrOne = NULL; gchar *StrTwo = NULL; gchar *PtrStr = NULL; cairo_text_extents_t extents; // PARAM 3 // // CAIRO_FONT_SLANT_NORMAL Upright font style // CAIRO_FONT_SLANT_ITALIC Italic font style // CAIRO_FONT_SLANT_OBLIQUE Oblique font style if( TRUE == p_Image->BoolFontItalic ) Param_3 = CAIRO_FONT_SLANT_ITALIC; else Param_3 = CAIRO_FONT_SLANT_NORMAL; // PARAM 4 // // CAIRO_FONT_WEIGHT_NORMAL Normal font weight // CAIRO_FONT_WEIGHT_BOLD Bold font weight if( TRUE == p_Image->BoolFontBold ) Param_4 = CAIRO_FONT_WEIGHT_BOLD; else Param_4 = CAIRO_FONT_WEIGHT_NORMAL; cairo_select_font_face( cr, p_Image->FontName, Param_3, Param_4 ); cairo_set_font_size( cr, ((gdouble)p_Image->SizeFontName )); cairo_set_source_rgb( cr, 0.0, 0.0, 0.0 ); cairo_text_extents( cr, "0", &extents ); for( i = 0; Larrbuf [ i ]; i++ ) { gstr = g_string_new (NULL); for( Ptr = Larrbuf [ i ]; *Ptr; Ptr ++ ) { if( *Ptr == '\t' ) { gstr = g_string_append (gstr, " "); } else { g_string_append_printf (gstr, "%c", *Ptr); } } // TEST SI PRESENCE OPTION DE DECOUPE: ][ if( NULL != strstr( gstr->str, "][" )) { StrOne = g_strdup( gstr->str ); PtrStr = strstr( StrOne, "][" ); *PtrStr = '\0'; PtrStr += 2; while( *PtrStr == ' ' ) PtrStr++; StrTwo = g_strdup( PtrStr ); cairo_move_to( cr, 0.0, LineY ); cairo_show_text( cr, StrOne ); // cairo_move_to( cr, p_Image->image_width - (3 *((gdouble)p_Image->SizeFontName)) - 2, LineY ); cairo_move_to( cr, p_Image->image_width - (extents.width * 7), LineY ); cairo_show_text( cr, StrTwo ); g_free( StrOne ); StrOne = NULL; g_free(StrTwo ); StrTwo = NULL; } else { cairo_move_to( cr, 0.0, LineY ); cairo_show_text( cr, gstr->str ); } g_string_free( gstr, TRUE ); LineY += (gdouble)p_Image->SizeFontName; LineY += 2; } g_strfreev( Larrbuf ); } // // void pochedraw_print_cairo_title_text( cairo_t *cr, IMAGE *p_Image ) { gdouble LocateX; gdouble LocateY; LocateX = MM(18); LocateY = MM(172); cairo_save( cr ); cairo_scale( cr, view.scale, view.scale ); cairo_translate( cr, view.x0, view.y0 ); cairo_select_font_face( cr, "Sans", CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_BOLD ); cairo_set_font_size( cr, 6); cairo_set_source_rgb( cr, 0.0, 0.0, 0.0 ); cairo_move_to( cr, LocateX, LocateY ); cairo_rotate( cr, -M_PI / 2.0 ); cairo_show_text( cr, p_Image->Texte ); cairo_restore (cr); LocateX = MM(111); LocateY = MM(172); cairo_save( cr ); cairo_scale( cr, view.scale, view.scale ); cairo_translate( cr, view.x0, view.y0 ); cairo_select_font_face( cr, "Sans", CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_BOLD ); cairo_set_font_size( cr, 6); cairo_set_source_rgb( cr, 0.0, 0.0, 0.0 ); cairo_move_to( cr, LocateX, LocateY ); cairo_rotate( cr, -M_PI / 2.0 ); cairo_show_text( cr, p_Image->Texte ); cairo_restore (cr); } // // void pochedraw_object( cairo_t *cr, IMAGE *p_Image ) { if( _TYPE_IMAGE_ == p_Image->TypeImage ) { if( NULL != p_Image->Pixbuf ) { g_object_unref( p_Image->Pixbuf ); p_Image->Pixbuf = NULL; } p_Image->Pixbuf = gdk_pixbuf_scale_simple( p_Image->PixbufOriginal, p_Image->image_width, p_Image->image_height, 2 ); // GDK_INTERP_NEAREST if( TRUE == p_Image->BoolFlipVertical ) { GdkPixbuf *PixBuf = gdk_pixbuf_flip( p_Image->Pixbuf, FALSE ); g_object_unref( p_Image->Pixbuf ); p_Image->Pixbuf = NULL; p_Image->Pixbuf = PixBuf; } if( TRUE == p_Image->BoolFlipHorizontal ) { GdkPixbuf *PixBuf = gdk_pixbuf_flip( p_Image->Pixbuf, TRUE ); g_object_unref( p_Image->Pixbuf ); p_Image->Pixbuf = NULL; p_Image->Pixbuf = PixBuf; } p_Image->image_width = gdk_pixbuf_get_width (p_Image->Pixbuf); p_Image->image_height = gdk_pixbuf_get_height (p_Image->Pixbuf); cairo_scale( cr, view.scale, view.scale ); cairo_translate( cr, view.x0 + p_Image->x0, view.y0 + p_Image->y0 ); gdk_cairo_set_source_pixbuf (cr, (GdkPixbuf *)p_Image->Pixbuf, 0., 0. ); cairo_paint( cr ); } else if( _TYPE_TEXT_ == p_Image->TypeImage ) { cairo_scale( cr, view.scale, view.scale ); cairo_translate( cr, view.x0 + p_Image->x0, view.y0 + p_Image->y0 ); // LA SELECTION DU TEXTE EST DANS UNE BOITE if( TRUE == p_Image->BoolIsSelected ) { cairo_set_source_rgba( cr, 0.7, 0.7, 0.7, 0.30 ); cairo_set_line_width( cr, 0.1 ); cairo_rectangle( cr, 0, 0, p_Image->image_width, p_Image->image_height ); cairo_clip (cr); cairo_new_path (cr); cairo_fill( cr ); } // BOITE TRANSPARENTE NECESSAIRE POUR LE CLIP else { cairo_set_source_rgba( cr, 0.0, 0.0, 0.0, 0.0 ); cairo_set_line_width( cr, 0.1 ); cairo_rectangle( cr, 0, 0, p_Image->image_width, p_Image->image_height ); cairo_clip (cr); cairo_new_path (cr); } // PRINT TEXTE pochedraw_print_cairo_text( cr, p_Image ); } else if( _TYPE_TEXT_TITLE_ == p_Image->TypeImage ) { pochedraw_print_cairo_title_text( cr, p_Image ); } } // // void pochedraw_get_handle_move( IMAGE *p_Image, gboolean p_BoolTestCursor ) { if( TRUE == p_BoolTestCursor ) { // POUR LES TESTS CURSEUR SOURIS view.HandleMove.zone [ IMG_HAUT_GAUCHE ] .x = p_Image->x0 -3; view.HandleMove.zone [ IMG_HAUT_GAUCHE ] .y = p_Image->y0 -3; view.HandleMove.zone [ IMG_HAUT_GAUCHE ] .width = 6; view.HandleMove.zone [ IMG_HAUT_GAUCHE ] .height = 6; view.HandleMove.zone [ IMG_HAUT ] .x = (p_Image->x0 + (p_Image->image_width / 2)) -3; view.HandleMove.zone [ IMG_HAUT ] .y = p_Image->y0 -3; view.HandleMove.zone [ IMG_HAUT ] .width = 6; view.HandleMove.zone [ IMG_HAUT ] .height = 6; view.HandleMove.zone [ IMG_HAUT_DROIT ] .x = (p_Image->x0 + p_Image->image_width) -3; view.HandleMove.zone [ IMG_HAUT_DROIT ] .y = p_Image->y0 -3; view.HandleMove.zone [ IMG_HAUT_DROIT ] .width = 6; view.HandleMove.zone [ IMG_HAUT_DROIT ] .height = 6; view.HandleMove.zone [ IMG_DROIT ] .x = (p_Image->x0 + p_Image->image_width) -3; view.HandleMove.zone [ IMG_DROIT ] .y = (p_Image->y0 + (p_Image->image_height / 2)) -3; view.HandleMove.zone [ IMG_DROIT ] .width = 6; view.HandleMove.zone [ IMG_DROIT ] .height = 6; view.HandleMove.zone [ IMG_BAS_DROIT ] .x = (p_Image->x0 + p_Image->image_width) -3; view.HandleMove.zone [ IMG_BAS_DROIT ] .y = (p_Image->y0 + p_Image->image_height) -3; view.HandleMove.zone [ IMG_BAS_DROIT ] .width = 6; view.HandleMove.zone [ IMG_BAS_DROIT ] .height = 6; view.HandleMove.zone [ IMG_BAS ] .x = (p_Image->x0 + (p_Image->image_width / 2)) -3; view.HandleMove.zone [ IMG_BAS ] .y = (p_Image->y0 + p_Image->image_height) -3; view.HandleMove.zone [ IMG_BAS ] .width = 6; view.HandleMove.zone [ IMG_BAS ] .height = 6; view.HandleMove.zone [ IMG_BAS_GAUCHE ] .x = p_Image->x0 -3; view.HandleMove.zone [ IMG_BAS_GAUCHE ] .y = (p_Image->y0 + p_Image->image_height) -3; view.HandleMove.zone [ IMG_BAS_GAUCHE ] .width = 6; view.HandleMove.zone [ IMG_BAS_GAUCHE ] .height = 6; view.HandleMove.zone [ IMG_GAUCHE ] .x = p_Image->x0 -3; view.HandleMove.zone [ IMG_GAUCHE ] .y = (p_Image->y0 + (p_Image->image_height / 2)) -3; view.HandleMove.zone [ IMG_GAUCHE ] .width = 6; view.HandleMove.zone [ IMG_GAUCHE ] .height = 6; view.HandleMove.zone [ IMG_MOVE ] .x = p_Image->x0; view.HandleMove.zone [ IMG_MOVE ] .y = p_Image->y0; view.HandleMove.zone [ IMG_MOVE ] .width = p_Image->image_width; view.HandleMove.zone [ IMG_MOVE ] .height = p_Image->image_height; } else { // POUR L AFFICHAGE DES RECTANGLES DE SAISIES view.HandleMove.zone [ IMG_HAUT_GAUCHE ] .x = -3; view.HandleMove.zone [ IMG_HAUT_GAUCHE ] .y = -3; view.HandleMove.zone [ IMG_HAUT_GAUCHE ] .width = 6; view.HandleMove.zone [ IMG_HAUT_GAUCHE ] .height = 6; view.HandleMove.zone [ IMG_HAUT ] .x = (p_Image->image_width / 2) -3; view.HandleMove.zone [ IMG_HAUT ] .y = -3; view.HandleMove.zone [ IMG_HAUT ] .width = 6; view.HandleMove.zone [ IMG_HAUT ] .height = 6; view.HandleMove.zone [ IMG_HAUT_DROIT ] .x = p_Image->image_width -3; view.HandleMove.zone [ IMG_HAUT_DROIT ] .y = -3; view.HandleMove.zone [ IMG_HAUT_DROIT ] .width = 6; view.HandleMove.zone [ IMG_HAUT_DROIT ] .height = 6; view.HandleMove.zone [ IMG_DROIT ] .x = p_Image->image_width -3; view.HandleMove.zone [ IMG_DROIT ] .y = (p_Image->image_height / 2) -3; view.HandleMove.zone [ IMG_DROIT ] .width = 6; view.HandleMove.zone [ IMG_DROIT ] .height = 6; view.HandleMove.zone [ IMG_BAS_DROIT ] .x = p_Image->image_width -3; view.HandleMove.zone [ IMG_BAS_DROIT ] .y = p_Image->image_height -3; view.HandleMove.zone [ IMG_BAS_DROIT ] .width = 6; view.HandleMove.zone [ IMG_BAS_DROIT ] .height = 6; view.HandleMove.zone [ IMG_BAS ] .x = (p_Image->image_width / 2) -3; view.HandleMove.zone [ IMG_BAS ] .y = p_Image->image_height -3; view.HandleMove.zone [ IMG_BAS ] .width = 6; view.HandleMove.zone [ IMG_BAS ] .height = 6; view.HandleMove.zone [ IMG_BAS_GAUCHE ] .x = -3; view.HandleMove.zone [ IMG_BAS_GAUCHE ] .y = p_Image->image_height -3; view.HandleMove.zone [ IMG_BAS_GAUCHE ] .width = 6; view.HandleMove.zone [ IMG_BAS_GAUCHE ] .height = 6; view.HandleMove.zone [ IMG_GAUCHE ] .x = -3; view.HandleMove.zone [ IMG_GAUCHE ] .y = (p_Image->image_height / 2) -3; view.HandleMove.zone [ IMG_GAUCHE ] .width = 6; view.HandleMove.zone [ IMG_GAUCHE ] .height = 6; view.HandleMove.zone [ IMG_MOVE ] .x = 0; view.HandleMove.zone [ IMG_MOVE ] .y = 0; view.HandleMove.zone [ IMG_MOVE ] .width = p_Image->image_width; view.HandleMove.zone [ IMG_MOVE ] .height = p_Image->image_height; } } // // void pochedraw_set_handle( cairo_t *cr ) { gint i; // EPAISSEUR DU TRAIT cairo_set_line_width( cr, 0.3 ); // SET RECTANGLES TO GREEN COLOR cairo_set_source_rgba( cr, 0.0, 1.0, 0.0, 0.30 ); for( i = 0; i < IMG_SIZE -1; i ++ ) { cairo_rectangle( cr, view.HandleMove.zone [ i ] .x, view.HandleMove.zone [ i ] .y, view.HandleMove.zone [ i ] .width, view.HandleMove.zone [ i ] .height ); } // FILL IN GREEN COLOR cairo_fill( cr ); // SET RECTANGLES TO BLACK COLOR cairo_set_source_rgb( cr, 0, 0, 0 ); for( i = 0; i < IMG_SIZE -1; i ++ ) { cairo_rectangle( cr, view.HandleMove.zone [ i ] .x, view.HandleMove.zone [ i ] .y, view.HandleMove.zone [ i ] .width, view.HandleMove.zone [ i ] .height ); } // SET RECTANGLE AROUND TO BLACK COLOR cairo_set_source_rgb( cr, 0, 0, 0 ); cairo_rectangle( cr, view.HandleMove.zone [ i ] .x, view.HandleMove.zone [ i ] .y, view.HandleMove.zone [ i ] .width, view.HandleMove.zone [ i ] .height ); } /* HAUT RECTO !-----------! ! ! GAUCHE RECTO ! ! DROITE RECTO ! ! ! ! !-----------! BAS RECTO HAUT VERSO !--!-----------!--!---! ! ! ! ! ! V1 ! ! ! ! ! V2 ! ! ! ! ! V3 ! ! ! ! ! V4 ! ! ! ! ! V5 ! ! ! ! ! !--!-----------!--!---! BAS VERSO */ void pochedraw_set_format( cairo_t *cr ) { gdouble LocateX; gdouble LocateY; gchar *PackageVersion = NULL; cairo_scale( cr, view.scale, view.scale ); cairo_translate( cr, view.x0, view.y0 ); cairo_set_source_rgb( cr, 0.0, 0.0, 0.0 ); // cairo_set_source_rgb( cr, red/255.0, green/255.0, blue/255.0 ); if( FALSE == view.BoolSaveToFile ) { // CONTOUR DE LA FEUILLE // EPAISSEUR cairo_set_line_width( cr, 0.5 ); // HAUT cairo_move_to( cr, 0.0, 0.0 ); cairo_rel_line_to( cr, view.image_width, 0.0 ); // GAUCHE cairo_move_to( cr, 0.0, 0.0 ); cairo_rel_line_to( cr, 0.0, view.image_height ); cairo_stroke ( cr ); // EPAISSEUR cairo_set_line_width( cr, 1.5 ); // DROITE cairo_move_to( cr, view.image_width -1, 0.0 ); cairo_rel_line_to( cr, 0.0, view.image_height ); // BAS cairo_move_to( cr, 0.0, view.image_height -1 ); cairo_rel_line_to( cr, view.image_width, 0.0 ); cairo_stroke ( cr ); // EPAISSEUR cairo_set_line_width( cr, 0.3 ); } else { cairo_set_line_width( cr, 0.1 ); } // HAUT RECTO cairo_move_to( cr, MM(17), MM(10) ); cairo_rel_line_to( cr, MM(83), 0 ); // GAUCHE RECTO cairo_move_to( cr, MM(19), MM(7) ); cairo_rel_line_to( cr, 0, MM(84) ); // DROITE RECTO cairo_move_to( cr, MM(97), MM(7) ); cairo_rel_line_to( cr, 0, MM(84) ); // BAS RECTO cairo_move_to( cr, MM(17), MM(88) ); cairo_rel_line_to( cr, MM(83), 0 ); // HAUT VERSO cairo_move_to( cr, MM(13), MM(98) ); cairo_rel_line_to( cr, MM(107), 0 ); // V1 VERSO cairo_move_to( cr, MM(15), MM(95) ); cairo_rel_line_to( cr, 0, MM(82) ); // V2 VERSO cairo_move_to( cr, MM(19), MM(95) ); cairo_rel_line_to( cr, 0, MM(82) ); // V3 VERSO cairo_move_to( cr, MM(108), MM(95) ); cairo_rel_line_to( cr, 0, MM(82) ); // V4 VERSO cairo_move_to( cr, MM(112), MM(95) ); cairo_rel_line_to( cr, 0, MM(82) ); // V5 VERSO cairo_move_to( cr, MM(118), MM(95) ); cairo_rel_line_to( cr, 0, MM(82) ); // BAS VERSO cairo_move_to( cr, MM(13), MM(174) ); cairo_rel_line_to( cr, MM(107), 0 ); cairo_stroke ( cr ); cairo_save( cr ); cairo_select_font_face( cr, "Sans", CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_NORMAL ); cairo_set_font_size( cr, 4.5); cairo_set_source_rgb( cr, 0.0, 0.0, 0.0 ); LocateX = MM(112); LocateY = MM(93); cairo_move_to( cr, LocateX, LocateY ); cairo_rotate( cr, -M_PI / 2.0 ); cairo_show_text( cr, "<-- cut here, if you don't need a tongue --- Couper ici si vous n'avez pas besoin de cette bordure" ); cairo_restore (cr); cairo_save( cr ); cairo_select_font_face( cr, "Sans", CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_NORMAL ); cairo_set_font_size( cr, 5); cairo_set_source_rgb( cr, 0.0, 0.0, 0.0 ); LocateX = MM(21); LocateY = MM(177); cairo_move_to( cr, LocateX, LocateY ); PackageVersion = g_strdup_printf ("X Convert File Audio %s - GNU General Public License - 2003..2013, Claude Bulin - fr", VERSION); cairo_show_text( cr, PackageVersion ); // cairo_show_text( cr, "ZoomC 0.0.19 GNU General Public License - 2003 - 2013, Claude Bulin - fr" ); g_free( PackageVersion ); PackageVersion = NULL; cairo_restore (cr); } void pochedraw_paint( cairo_surface_t *cs ) { cairo_t *cr; gint canvas_w, canvas_h; GList *List = NULL; IMAGE *Image = NULL; IMAGE *ImageSelected = NULL; if( FALSE == view.BoolSaveToFile ) { cr = gdk_cairo_create( view.AdrDrawingarea->window ); } else { cr = cairo_create( cs ); } cairo_save (cr); view.scale = pochedraw_get_scale_adjust(); // gdk_drawable_get_size (view.AdrDrawingarea->window, &canvas_w, &canvas_h ); canvas_w = view.AdrDrawingarea->allocation.width; canvas_h = view.AdrDrawingarea->allocation.height; view.x0 = ((canvas_w / view.scale) - view.image_width) / 2.0; view.y0 = ((canvas_h / view.scale) - view.image_height) / 2.0; cairo_scale( cr, view.scale, view.scale ); cairo_translate( cr, view.x0, view.y0 ); cairo_set_source_surface( cr, view.image, 0.0, 0.0 ); cairo_paint( cr ); // PAINT PREVIEW SURFACE cairo_set_source_rgb( cr, 1.0, 1.0, 1.0 ); cairo_rectangle( cr, 0, 0, view.image_width, view.image_height ); cairo_fill( cr ); cairo_restore (cr); // // Image[ n ] image en dessous / image below // Image[ n +1 ] // Image[ n +2 ] // Image[ n +3 ] // Image[ n +4 ] image au dessus / image above // cairo_save (cr); List = g_list_first( view.ListImage ); while( List ) { if( NULL != (Image = (IMAGE *)List->data ) && FALSE == Image->BoolStructRemove ) { cairo_save (cr); pochedraw_object( cr , Image ); if( TRUE == Image->BoolIsSelected ) ImageSelected = Image; cairo_restore (cr); } List = g_list_next( List ); } if( NULL != ImageSelected && TRUE == ImageSelected->BoolIsSelected && FALSE == view.BoolSaveToFile ) { cairo_scale( cr, view.scale, view.scale ); cairo_translate( cr, view.x0 + ImageSelected->x0, view.y0 + ImageSelected->y0 ); cairo_set_source_rgba( cr, 0.0, 0.0, 0.0, 0.30 ); cairo_translate( cr, 0.0, 0.0 ); pochedraw_get_handle_move( ImageSelected, FALSE ); pochedraw_set_handle( cr ); cairo_stroke ( cr ); } cairo_restore (cr); pochedraw_set_format( cr ); cairo_destroy( cr ); } xcfa-4.3.6/src/file_lc.c0000644000175000017500000007705612163060666011743 00000000000000 /* * file : file_lc.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "configuser.h" #include "conv.h" #include "prg_init.h" #include "options.h" #include "tags.h" #include "cd_cue.h" #include "file.h" // // Allocate Tab Args // gchar **filelc_AllocTabArgs( void ) { gchar **PtrTab = (gchar **)g_malloc0( sizeof(gchar **) * 50 ); PtrTab [ 0 ] = g_strdup( "nice" ); PtrTab [ 1 ] = g_strdup( "-n" ); PtrTab [ 2 ] = g_strdup_printf( "%d", Config.Nice ); return( (gchar **)PtrTab ); } // // Remove Tab Args // gchar **filelc_RevoveTab( gchar **p_PtrTabArgs ) { gint i; for( i = 0; p_PtrTabArgs[ i ] != NULL; i ++ ) { g_free( p_PtrTabArgs[ i ] ); p_PtrTabArgs[ i ] = NULL; } g_free( p_PtrTabArgs ); p_PtrTabArgs = NULL; return( (gchar **)NULL ); } // // gint filelc_analyse_line( gchar **p_PtrTabArgs, gchar *entry, gint *pos, TAGS *tags ) { gchar **Larrbuf = NULL; gchar *ptr = entry; GString *gstr = NULL; gboolean bool_tag = FALSE; gboolean bool_open = FALSE; gint i; while (ptr && *ptr) { if (*ptr == '\"') { if (bool_open == TRUE) { p_PtrTabArgs[(*pos) ++ ] = g_strdup (gstr->str); g_string_free (gstr, TRUE); gstr = NULL; ptr ++; bool_open = FALSE; continue; } else { ptr ++; bool_open = TRUE; continue; } } if (bool_open == TRUE) { if (gstr == NULL) gstr = g_string_new (NULL); g_string_append_printf (gstr, "%c", *ptr); ptr ++; continue; } if (*ptr == ' ') { if (gstr != NULL && *gstr->str) { p_PtrTabArgs[(*pos) ++ ] = g_strdup (gstr->str); g_string_free (gstr, TRUE); gstr = NULL; } ptr ++; continue; } else if (*ptr != '%') { if (gstr == NULL) gstr = g_string_new (NULL); g_string_append_printf (gstr, "%c", *ptr); ptr ++; continue; } if (*ptr == '%') { ptr ++; if ( *ptr == 'b' || *ptr == 'a' || *ptr == 't' || *ptr == 'l' || *ptr == 'N' || *ptr == 'G' || *ptr == 'c' || *ptr == 'd') { if (gstr == NULL) gstr = g_string_new (NULL); } /* OGGENC_WAV_TO_OGG | OGGENC_FLAC_TO_OGG */ if (*ptr == 'b' && (*(ptr+1) == ' ' || *(ptr+1) == '\0')) { p_PtrTabArgs[(*pos) ++ ] = g_strdup_printf ("%s", optionsOggenc_get_val_bitrate_oggenc ()); ptr ++; } /* LAME_WAV_TO_MP3 */ else if (*ptr == 'b' && *(ptr+1) == 'l' && (*(ptr+2) == ' ' || *(ptr+2) == '\0')) { Larrbuf = g_strsplit (optionsLame_get_str_val_bitrate_abr_vbr_lame (), " ", 0); for (i=0; Larrbuf[i]; i++) { p_PtrTabArgs[(*pos) ++ ] = g_strdup (Larrbuf[i]); } g_strfreev(Larrbuf); ptr ++; ptr ++; } else if (*ptr == 'a' && (*(ptr+1) == ' ' || *(ptr+1) == '\0')) { bool_tag = TRUE == Config.BoolArtistTag && NULL != tags && NULL != tags->Artist && '\0' != *tags->Artist; g_string_append_printf (gstr, "%s", bool_tag ? tags->Artist : "*"); ptr ++; } else if (*ptr == 't' && (*(ptr+1) == ' ' || *(ptr+1) == '\0')) { bool_tag = TRUE == Config.BoolTitleTag && NULL != tags && NULL != tags->Title && '\0' != *tags->Title; g_string_append_printf (gstr, "%s", bool_tag ? tags->Title : "*"); ptr ++; } else if (*ptr == 'l' && (*(ptr+1) == ' ' || *(ptr+1) == '\0')) { bool_tag = TRUE == Config.BoolAlbumTag && NULL != tags && NULL != tags->Album && '\0' != *tags->Album; g_string_append_printf (gstr, "%s", bool_tag ? tags->Album : "Album"); ptr ++; } else if (*ptr == 'N' && (*(ptr+1) == ' ' || *(ptr+1) == '\0')) { bool_tag = TRUE == Config.BoolNumerateTag && NULL != tags && NULL != tags->Number && '\0' != *tags->Number; g_string_append_printf (gstr, "%s", bool_tag ? tags->Number : "1"); ptr ++; } else if (*ptr == 'G' && (*(ptr+1) == ' ' || *(ptr+1) == '\0')) { bool_tag = TRUE == Config.BoolGenreTag && NULL != tags && NULL != tags->Genre && '\0' != *tags->Genre; g_string_append_printf (gstr, "%s", bool_tag ? tags->Genre : "100"); ptr ++; } else if (*ptr == 'c' && (*(ptr+1) == ' ' || *(ptr+1) == '\0')) { bool_tag = TRUE == Config.BoolCommentTag && NULL != tags && NULL != tags->Comment && '\0' != *tags->Comment; g_string_append_printf (gstr, "%s", bool_tag ? tags->Comment : "Comment"); ptr ++; } else if (*ptr == 'd' && (*(ptr+1) == ' ' || *(ptr+1) == '\0')) { bool_tag = TRUE == Config.BoolYearTag && NULL != tags && NULL != tags->Year && '\0' != *tags->Year; g_string_append_printf (gstr, "%s", bool_tag ? tags->Year : "2007"); ptr ++; } else { while (ptr && *ptr != ' ') ptr ++; } } } if (gstr != NULL && *gstr->str) { p_PtrTabArgs[(*pos) ++ ] = g_strdup (gstr->str); g_string_free (gstr, TRUE); gstr = NULL; } return( *pos ); } gchar **filelc_analyse_command_line( PARAM_FILELC *param_filelc, gchar *entry ) { gint pos = 0; gchar **PtrTabArgs = NULL; if (param_filelc->type_conv == LAME_WAV_TO_MP3) { PtrTabArgs = filelc_AllocTabArgs(); pos = 3; PtrTabArgs[ pos++ ] = g_strdup ("lame"); pos = filelc_analyse_line( PtrTabArgs, entry, &pos, param_filelc->tags ); PtrTabArgs[ pos++ ] = g_strdup (param_filelc->filesrc); PtrTabArgs[ pos++ ] = g_strdup ("-o"); PtrTabArgs[ pos++ ] = g_strdup (param_filelc->filedest); PtrTabArgs[ pos++ ] = NULL; } else if (param_filelc->type_conv == OGGENC_WAV_TO_OGG || param_filelc->type_conv == OGGENC_FLAC_TO_OGG) { PtrTabArgs = filelc_AllocTabArgs(); pos = 3; PtrTabArgs[ pos++ ] = g_strdup ("oggenc"); PtrTabArgs[ pos++ ] = g_strdup (param_filelc->filesrc); pos = filelc_analyse_line (PtrTabArgs, entry, &pos, param_filelc->tags); PtrTabArgs[ pos++ ] = g_strdup ("-o"); PtrTabArgs[ pos++ ] = g_strdup (param_filelc->filedest); PtrTabArgs[ pos++ ] = NULL; } else if (param_filelc->type_conv == FLAC_WAV_TO_FLAC) { PtrTabArgs = filelc_AllocTabArgs(); pos = 3; PtrTabArgs[ pos++ ] = g_strdup ("flac"); pos = filelc_analyse_line (PtrTabArgs, entry, &pos, param_filelc->tags); PtrTabArgs[ pos++ ] = g_strdup ("-f"); PtrTabArgs[ pos++ ] = g_strdup (param_filelc->filesrc); PtrTabArgs[ pos++ ] = g_strdup ("-o"); PtrTabArgs[ pos++ ] = g_strdup (param_filelc->filedest); PtrTabArgs[ pos++ ] = NULL; } else if (param_filelc->type_conv == FAAC_WAV_TO_M4A) { PtrTabArgs = filelc_AllocTabArgs(); pos = 3; PtrTabArgs[ pos++ ] = g_strdup ("faac"); pos = filelc_analyse_line (PtrTabArgs, entry, &pos, param_filelc->tags); PtrTabArgs[ pos++ ] = g_strdup ("-o"); PtrTabArgs[ pos++ ] = g_strdup (param_filelc->filedest); PtrTabArgs[ pos++ ] = g_strdup (param_filelc->filesrc); PtrTabArgs[ pos++ ] = NULL; } else if (param_filelc->type_conv == MPPENC_WAV_TO_MPC) { PtrTabArgs = filelc_AllocTabArgs(); pos = 3; PtrTabArgs[ pos++ ] = g_strdup (prginit_get_name (NMR_musepack_tools_mppenc)); pos = filelc_analyse_line (PtrTabArgs, entry, &pos, param_filelc->tags); PtrTabArgs[ pos++ ] = g_strdup (param_filelc->filesrc); PtrTabArgs[ pos++ ] = g_strdup (param_filelc->filedest); PtrTabArgs[ pos++ ] = NULL; } else if (param_filelc->type_conv == MAC_WAV_TO_APE || param_filelc->type_conv == MAC_APE_TO_WAV) { PtrTabArgs = filelc_AllocTabArgs(); pos = 3; PtrTabArgs[ pos++ ] = g_strdup (prginit_get_name (NMR_mac)); PtrTabArgs[ pos++ ] = g_strdup (param_filelc->filesrc); PtrTabArgs[ pos++ ] = g_strdup (param_filelc->filedest); PtrTabArgs[ pos++ ] = NULL; } else if (param_filelc->type_conv == WAVPACK_WAV_TO_WAVPACK) { PtrTabArgs = filelc_AllocTabArgs(); pos = 3; PtrTabArgs[ pos++ ] = g_strdup ("wavpack"); pos = filelc_analyse_line (PtrTabArgs, entry, &pos, param_filelc->tags); PtrTabArgs[ pos++ ] = g_strdup (param_filelc->filesrc); PtrTabArgs[ pos++ ] = g_strdup ("-o"); PtrTabArgs[ pos++ ] = g_strdup (param_filelc->filedest); PtrTabArgs[ pos++ ] = NULL; } else if (param_filelc->type_conv == CDPARANOIA_CD_TO_WAV) { PtrTabArgs = filelc_AllocTabArgs(); pos = 3; PtrTabArgs[ pos++ ] = g_strdup ("cdparanoia"); PtrTabArgs[ pos++ ] = g_strdup ("-e"); PtrTabArgs[ pos++ ] = g_strdup ("-d"); PtrTabArgs[ pos++ ] = g_strdup (param_filelc->cdrom); PtrTabArgs[ pos++ ] = g_strdup (param_filelc->num_track); pos = filelc_analyse_line (PtrTabArgs, entry, &pos, param_filelc->tags); PtrTabArgs[ pos++ ] = g_strdup (param_filelc->filedest); PtrTabArgs[ pos++ ] = NULL; } else if (param_filelc->type_conv == CDDA2WAV_CD_TO_WAV) { PtrTabArgs = filelc_AllocTabArgs(); pos = 3; PtrTabArgs[ pos++ ] = g_strdup ("cdda2wav"); PtrTabArgs[ pos++ ] = g_strdup ("-D"); PtrTabArgs[ pos++ ] = g_strdup (param_filelc->cdrom); PtrTabArgs[ pos++ ] = g_strdup ("-O"); PtrTabArgs[ pos++ ] = g_strdup ("wav"); PtrTabArgs[ pos++ ] = g_strdup ("-t"); PtrTabArgs[ pos++ ] = g_strdup (param_filelc->num_track); PtrTabArgs[ pos++ ] = NULL; } return( (gchar **)PtrTabArgs ); } // // gboolean filelc_bool_add_line_command (TYPE_CONV p_type_conv, gchar **entry) { GtkWidget *wd = NULL; switch (p_type_conv) { case FLAC_WAV_TO_FLAC : wd = var_options.Adr_entry_flac_flac; break; case LAME_WAV_TO_MP3 : wd = var_options.Adr_entry_lame_mp3; break; case OGGENC_WAV_TO_OGG : wd = var_options.Adr_entry_oggenc_ogg; break; case FAAC_WAV_TO_M4A : wd = var_options.Adr_entry_faac_m4a; break; case MPPENC_WAV_TO_MPC : wd = var_options.Adr_entry_musepack_mpc; break; case MAC_WAV_TO_APE : wd = var_options.Adr_entry_mac_ape; break; case WAVPACK_WAV_TO_WAVPACK : wd = var_options.Adr_entry_wavpack_wv; break; case CDPARANOIA_CD_TO_WAV_EXPERT : case CDPARANOIA_CD_TO_WAV : case CDDA2WAV_CD_TO_WAV : return (FALSE); default : return (FALSE); } if (wd == NULL) return (FALSE); *entry = (gchar *)gtk_entry_get_text (GTK_ENTRY(wd)); return ((entry != NULL && **entry != '\0' && **entry != ' ') ? TRUE : FALSE); } // // gchar **filelc_get_command_line( PARAM_FILELC *param_filelc ) { gint pos = 0; gchar *entry = NULL; gchar **PtrTabArgs = NULL; // OPTIONS LIGNE DE SAISIE UTILISATEUR if (TRUE == param_filelc->With_CommandLineUser && TRUE == filelc_bool_add_line_command (param_filelc->type_conv, &entry)) { PtrTabArgs = filelc_analyse_command_line( param_filelc, entry ); return( (gchar **)PtrTabArgs ); } param_filelc->With_CommandLineUser = FALSE; PtrTabArgs = filelc_AllocTabArgs(); if (param_filelc->type_conv == LAME_WAV_TO_MP3) { gchar **Larrbuf = NULL; gint i; pos = 3; PtrTabArgs [ pos++ ] = g_strdup ("lame"); PtrTabArgs [ pos++ ] = g_strdup ("-h"); PtrTabArgs [ pos++ ] = g_strdup ("--nohist"); PtrTabArgs [ pos++ ] = g_strdup ("--noreplaygain"); if (param_filelc->PtrStrBitrate != NULL) { Larrbuf = g_strsplit (param_filelc->PtrStrBitrate, " ", 0); for (i=0; Larrbuf[i]; i++) { PtrTabArgs [ pos++ ] = g_strdup (Larrbuf[i]); } g_strfreev(Larrbuf); g_free (param_filelc->PtrStrBitrate); param_filelc->PtrStrBitrate = NULL; } if (Config.BoolArtistTag || Config.BoolTitleTag || Config.BoolAlbumTag || Config.BoolNumerateTag || Config.BoolGenreTag || Config.BoolYearTag || Config.BoolCommentTag) { PtrTabArgs [ pos++ ] = g_strdup ("--add-id3v2"); } if (Config.BoolArtistTag && param_filelc->tags && param_filelc->tags->Artist && *param_filelc->tags->Artist) { PtrTabArgs [ pos++ ] = g_strdup ("--ta"); PtrTabArgs [ pos++ ] = g_strdup (param_filelc->tags->Artist); } if (Config.BoolTitleTag && param_filelc->tags && param_filelc->tags->Title && *param_filelc->tags->Title) { PtrTabArgs [ pos++ ] = g_strdup ("--tt"); PtrTabArgs [ pos++ ] = g_strdup (param_filelc->tags->Title); } if (Config.BoolAlbumTag && param_filelc->tags && param_filelc->tags->Album && *param_filelc->tags->Album) { PtrTabArgs [ pos++ ] = g_strdup ("--tl"); PtrTabArgs [ pos++ ] = g_strdup (param_filelc->tags->Album); } if (Config.BoolNumerateTag && param_filelc->tags && param_filelc->tags->Number && *param_filelc->tags->Number) { PtrTabArgs [ pos++ ] = g_strdup ("--tn"); PtrTabArgs [ pos++ ] = g_strdup (param_filelc->tags->Number); } if (Config.BoolGenreTag && param_filelc->tags && param_filelc->tags->Genre && *param_filelc->tags->Genre) { gint value = 147; if (param_filelc->tags->bool_tag_cd == FALSE) { value = tags_get_genre_by_value (param_filelc->tags->Genre); } else { value = param_filelc->tags->IntGenre; } if (value < 0 || value > 147) value = 147; /*New = g_list_append (New, g_strdup ("--tg")); New = g_list_append (New, g_strdup_printf ("%d", value));*/ PtrTabArgs [ pos++ ] = g_strdup ("--tg"); PtrTabArgs [ pos++ ] = g_strdup_printf ("%d", value); } if (Config.BoolYearTag && param_filelc->tags && param_filelc->tags->Year && *param_filelc->tags->Year) { PtrTabArgs [ pos++ ] = g_strdup ("--ty"); PtrTabArgs [ pos++ ] = g_strdup (param_filelc->tags->Year); } if (Config.BoolCommentTag && param_filelc->tags && param_filelc->tags->Comment && *param_filelc->tags->Comment) { PtrTabArgs [ pos++ ] = g_strdup ("--tc"); PtrTabArgs [ pos++ ] = g_strdup (param_filelc->tags->Comment); } PtrTabArgs [ pos++ ] = g_strdup (param_filelc->filesrc); PtrTabArgs [ pos++ ] = g_strdup ("-o"); PtrTabArgs [ pos++ ] = g_strdup (param_filelc->filedest); PtrTabArgs [ pos++ ] = NULL; } else if (param_filelc->type_conv == OGGENC_WAV_TO_OGG || param_filelc->type_conv == OGGENC_FLAC_TO_OGG) { gchar **Larrbuf = NULL; gint i; pos = 3; PtrTabArgs[ pos++ ] = g_strdup ("oggenc"); PtrTabArgs[ pos++ ] = g_strdup (param_filelc->filesrc); if (param_filelc->PtrStrBitrate != NULL) { Larrbuf = g_strsplit (param_filelc->PtrStrBitrate, " ", 0); for (i=0; Larrbuf[i]; i++) { PtrTabArgs[ pos++ ] = g_strdup (Larrbuf[i]); } g_strfreev(Larrbuf); g_free (param_filelc->PtrStrBitrate); param_filelc->PtrStrBitrate = NULL; } if (Config.BoolArtistTag && param_filelc->tags && param_filelc->tags->Artist && *param_filelc->tags->Artist) { PtrTabArgs[ pos++ ] = g_strdup ("-a"); PtrTabArgs[ pos++ ] = g_strdup ("-a"); } if (Config.BoolTitleTag && param_filelc->tags && param_filelc->tags->Title && *param_filelc->tags->Title) { PtrTabArgs[ pos++ ] = g_strdup ("-t"); PtrTabArgs[ pos++ ] = g_strdup (param_filelc->tags->Title); } if (Config.BoolAlbumTag && param_filelc->tags && param_filelc->tags->Album && *param_filelc->tags->Album) { PtrTabArgs[ pos++ ] = g_strdup ("-l"); PtrTabArgs[ pos++ ] = g_strdup (param_filelc->tags->Album); } if (Config.BoolNumerateTag && param_filelc->tags && param_filelc->tags->Number && *param_filelc->tags->Number) { PtrTabArgs[ pos++ ] = g_strdup ("-N"); PtrTabArgs[ pos++ ] = g_strdup (param_filelc->tags->Number); } if (Config.BoolGenreTag && param_filelc->tags && param_filelc->tags->Genre && *param_filelc->tags->Genre) { PtrTabArgs[ pos++ ] = g_strdup ("-G"); PtrTabArgs[ pos++ ] = g_strdup (param_filelc->tags->Genre); } if (Config.BoolYearTag && param_filelc->tags && param_filelc->tags->Year && *param_filelc->tags->Year) { PtrTabArgs[ pos++ ] = g_strdup ("--date"); PtrTabArgs[ pos++ ] = g_strdup (param_filelc->tags->Year); } if (Config.BoolCommentTag && param_filelc->tags && param_filelc->tags->Comment && *param_filelc->tags->Comment) { PtrTabArgs[ pos++ ] = g_strdup ("-c"); PtrTabArgs[ pos++ ] = g_strdup (param_filelc->tags->Comment); } PtrTabArgs[ pos++ ] = g_strdup ("-o"); PtrTabArgs[ pos++ ] = g_strdup (param_filelc->filedest); PtrTabArgs[ pos++ ] = NULL; } else if (param_filelc->type_conv == FLAC_WAV_TO_FLAC || param_filelc->type_conv == FLAC_FLAC_TO_WAV) { pos = 3; PtrTabArgs[ pos++ ] = g_strdup ("flac"); PtrTabArgs[ pos++ ] = g_strdup_printf ("%s", optionsFlac_get_compression_level_flac ()); if (Config.BoolArtistTag && param_filelc->tags && param_filelc->tags->Artist && *param_filelc->tags->Artist) { PtrTabArgs[ pos++ ] = g_strdup ("-T"); PtrTabArgs[ pos++ ] = g_strdup_printf ("artist=%s",param_filelc->tags->Artist); } if (Config.BoolTitleTag && param_filelc->tags && param_filelc->tags->Title && *param_filelc->tags->Title) { PtrTabArgs[ pos++ ] = g_strdup ("-T"); PtrTabArgs[ pos++ ] = g_strdup_printf ("title=%s", param_filelc->tags->Title); } if (Config.BoolAlbumTag && param_filelc->tags && param_filelc->tags->Album && *param_filelc->tags->Album) { PtrTabArgs[ pos++ ] = g_strdup ("-T"); PtrTabArgs[ pos++ ] = g_strdup_printf ("album=%s", param_filelc->tags->Album); } if (Config.BoolNumerateTag && param_filelc->tags && param_filelc->tags->IntNumber > -1) { PtrTabArgs[ pos++ ] = g_strdup ("-T"); PtrTabArgs[ pos++ ] = g_strdup_printf ("tracknumber=%d", param_filelc->tags->IntNumber); } if (Config.BoolGenreTag && param_filelc->tags && param_filelc->tags->Genre && *param_filelc->tags->Genre) { PtrTabArgs[ pos++ ] = g_strdup ("-T"); PtrTabArgs[ pos++ ] = g_strdup_printf ("genre=%s", param_filelc->tags->Genre); } if (Config.BoolYearTag && param_filelc->tags && param_filelc->tags->Year && *param_filelc->tags->Year) { PtrTabArgs[ pos++ ] = g_strdup ("-T"); PtrTabArgs[ pos++ ] = g_strdup_printf ("date=%s", param_filelc->tags->Year); } if (Config.BoolCommentTag && param_filelc->tags && param_filelc->tags->Comment && *param_filelc->tags->Comment) { PtrTabArgs[ pos++ ] = g_strdup ("-T"); PtrTabArgs[ pos++ ] = g_strdup_printf ("Description=%s",param_filelc->tags->Comment); } if (param_filelc->type_conv == FLAC_FLAC_TO_WAV) PtrTabArgs [ pos++ ] = g_strdup ("-d"); PtrTabArgs[ pos++ ] = g_strdup ("-f"); PtrTabArgs[ pos++ ] = g_strdup (param_filelc->filesrc); PtrTabArgs[ pos++ ] = g_strdup ("-o"); PtrTabArgs[ pos++ ] = g_strdup (param_filelc->filedest); PtrTabArgs[ pos++ ] = NULL; } else if (param_filelc->type_conv == FAAC_WAV_TO_M4A) { gchar *Ptr = NULL; pos = 3; PtrTabArgs [ pos++ ] = g_strdup ("faac"); // filelc_analyse_line (entry, New, param_filelc->tags); // ----------------------------------------------------- if ('-' == *OptionsFaac_get_faac_conteneur ()) { PtrTabArgs [ pos++ ] = g_strdup (OptionsFaac_get_faac_conteneur ()); } Ptr = OptionsFaac_get_faac_set_choice_vbr_abr (); if ( *(Ptr + 1) == 'b') { PtrTabArgs [ pos++ ] = g_strdup ("-b"); } else { PtrTabArgs [ pos++ ] = g_strdup ("-q"); } PtrTabArgs [ pos++ ] = g_strdup_printf ("%s", (Ptr +3)); if (Config.BoolArtistTag && param_filelc->tags && param_filelc->tags->Artist && *param_filelc->tags->Artist) { PtrTabArgs [ pos++ ] = g_strdup ("--artist"); PtrTabArgs [ pos++ ] = g_strdup (param_filelc->tags->Artist); } if (Config.BoolTitleTag && param_filelc->tags && param_filelc->tags->Title && *param_filelc->tags->Title) { PtrTabArgs [ pos++ ] = g_strdup ("--title"); PtrTabArgs [ pos++ ] = g_strdup (param_filelc->tags->Title); } if (Config.BoolAlbumTag && param_filelc->tags && param_filelc->tags->Album && *param_filelc->tags->Album) { PtrTabArgs [ pos++ ] = g_strdup ("--album"); PtrTabArgs [ pos++ ] = g_strdup (param_filelc->tags->Album); } if (Config.BoolGenreTag && param_filelc->tags && param_filelc->tags->Genre && *param_filelc->tags->Genre) { PtrTabArgs [ pos++ ] = g_strdup ("--genre"); PtrTabArgs [ pos++ ] = g_strdup (param_filelc->tags->Genre); } if (Config.BoolYearTag && param_filelc->tags && param_filelc->tags->Year && *param_filelc->tags->Year) { PtrTabArgs [ pos++ ] = g_strdup ("--year"); PtrTabArgs [ pos++ ] = g_strdup (param_filelc->tags->Year); } if (Config.BoolNumerateTag && param_filelc->tags && param_filelc->tags->IntNumber > -1) { PtrTabArgs [ pos++ ] = g_strdup ("--track"); PtrTabArgs [ pos++ ] = g_strdup_printf ("%d", param_filelc->tags->IntNumber); } if (Config.BoolCommentTag && param_filelc->tags && param_filelc->tags->Comment && *param_filelc->tags->Comment) { PtrTabArgs [ pos++ ] = g_strdup ("--comment"); PtrTabArgs [ pos++ ] = g_strdup (param_filelc->tags->Comment); } // ----------------- PtrTabArgs [ pos++ ] = g_strdup ("-o"); PtrTabArgs [ pos++ ] = g_strdup (param_filelc->filedest); PtrTabArgs [ pos++ ] = g_strdup (param_filelc->filesrc); PtrTabArgs [ pos++ ] = NULL; } else if (param_filelc->type_conv == MPPENC_WAV_TO_MPC) { pos = 3; PtrTabArgs[ pos++ ] = g_strdup (prginit_get_name (NMR_musepack_tools_mppenc)); PtrTabArgs[ pos++ ] = g_strdup ("--verbose"); PtrTabArgs[ pos++ ] = g_strdup ("--overwrite"); PtrTabArgs[ pos++ ] = g_strdup (optionsMusepack_get_quality_mppenc ()); if (Config.BoolArtistTag && param_filelc->tags && param_filelc->tags->Artist && *param_filelc->tags->Artist) { PtrTabArgs[ pos++ ] = g_strdup ("--artist"); PtrTabArgs[ pos++ ] = g_strdup (param_filelc->tags->Artist); } if (Config.BoolTitleTag && param_filelc->tags && param_filelc->tags->Title && *param_filelc->tags->Title) { PtrTabArgs[ pos++ ] = g_strdup ("--title"); PtrTabArgs[ pos++ ] = g_strdup (param_filelc->tags->Title); } if (Config.BoolAlbumTag && param_filelc->tags && param_filelc->tags->Album && *param_filelc->tags->Album) { PtrTabArgs[ pos++ ] = g_strdup ("--album"); PtrTabArgs[ pos++ ] = g_strdup (param_filelc->tags->Album); } if (Config.BoolGenreTag && param_filelc->tags && param_filelc->tags->Genre && *param_filelc->tags->Genre) { PtrTabArgs[ pos++ ] = g_strdup ("--genre"); PtrTabArgs[ pos++ ] = g_strdup (param_filelc->tags->Genre); } if (Config.BoolYearTag && param_filelc->tags && param_filelc->tags->Year && *param_filelc->tags->Year) { PtrTabArgs[ pos++ ] = g_strdup ("--year"); PtrTabArgs[ pos++ ] = g_strdup (param_filelc->tags->Year); } if (Config.BoolNumerateTag && param_filelc->tags && param_filelc->tags->Number && *param_filelc->tags->Number) { PtrTabArgs[ pos++ ] = g_strdup ("--track"); PtrTabArgs[ pos++ ] = g_strdup (param_filelc->tags->Number); } if (Config.BoolCommentTag && param_filelc->tags && param_filelc->tags->Comment && *param_filelc->tags->Comment) { PtrTabArgs[ pos++ ] = g_strdup ("--comment"); PtrTabArgs[ pos++ ] = g_strdup (param_filelc->tags->Comment); } PtrTabArgs[ pos++ ] = g_strdup (param_filelc->filesrc); PtrTabArgs[ pos++ ] = g_strdup (param_filelc->filedest); PtrTabArgs[ pos++ ] = NULL; } else if (param_filelc->type_conv == MAC_WAV_TO_APE || param_filelc->type_conv == MAC_APE_TO_WAV) { pos = 3; PtrTabArgs[ pos++ ] = g_strdup (prginit_get_name (NMR_mac)); PtrTabArgs[ pos++ ] = g_strdup (param_filelc->filesrc); PtrTabArgs[ pos++ ] = g_strdup (param_filelc->filedest); if (param_filelc->type_conv == MAC_APE_TO_WAV) { PtrTabArgs[ pos++ ] = g_strdup ("-d"); } else if (param_filelc->type_conv == MAC_WAV_TO_APE) { PtrTabArgs[ pos++ ] = g_strdup (optionsApe_get_compression_level_ape ()); } PtrTabArgs[ pos++ ] = NULL; } else if (param_filelc->type_conv == WAVPACK_WAV_TO_WAVPACK) { pos = 3; PtrTabArgs[ pos++ ] = g_strdup ("wavpack"); PtrTabArgs[ pos++ ] = g_strdup ("-y"); if (*optionsWavpack_get_wavpack_compression () != '\0') PtrTabArgs[ pos++ ] = g_strdup (optionsWavpack_get_wavpack_compression ()); PtrTabArgs[ pos++ ] = g_strdup (optionsWavpack_get_wavpack_sound ()); if (*optionsWavpac_get_wavpack_hybride () != '\0') { PtrTabArgs[ pos++ ] = g_strdup (optionsWavpac_get_wavpack_hybride ()); if (*optionsWavpack_get_wavpack_correction_file () != '\0') { PtrTabArgs[ pos++ ] = g_strdup (optionsWavpack_get_wavpack_correction_file ()); } if (*optionsWavpack_get_wavpack_maximum_compression () != '\0') { PtrTabArgs[ pos++ ] = g_strdup (optionsWavpack_get_wavpack_maximum_compression ()); } } if (*optionsWavpack_get_wavpack_signature_md5 () != '\0') { PtrTabArgs[ pos++ ] = g_strdup (optionsWavpack_get_wavpack_signature_md5 ()); } if (*optionsWavpack_get_wavpack_extra_encoding () != '\0') { PtrTabArgs[ pos++ ] = g_strdup (optionsWavpack_get_wavpack_extra_encoding ()); } if (Config.BoolArtistTag && param_filelc->tags && param_filelc->tags->Artist && *param_filelc->tags->Artist) { PtrTabArgs[ pos++ ] = g_strdup ("-w"); PtrTabArgs[ pos++ ] = g_strdup_printf ("Artist=%s", param_filelc->tags->Artist); } if (Config.BoolTitleTag && param_filelc->tags && param_filelc->tags->Title && *param_filelc->tags->Title) { PtrTabArgs[ pos++ ] = g_strdup ("-w"); PtrTabArgs[ pos++ ] = g_strdup_printf ("Title=%s", param_filelc->tags->Title); } if (Config.BoolAlbumTag && param_filelc->tags && param_filelc->tags->Album && *param_filelc->tags->Album) { PtrTabArgs[ pos++ ] = g_strdup ("-w"); PtrTabArgs[ pos++ ] = g_strdup_printf ("Album=%s", param_filelc->tags->Album); } if (Config.BoolGenreTag && param_filelc->tags && param_filelc->tags->Genre && *param_filelc->tags->Genre) { PtrTabArgs[ pos++ ] = g_strdup ("-w"); PtrTabArgs[ pos++ ] = g_strdup_printf ("Genre=%s", param_filelc->tags->Genre); } if (Config.BoolYearTag && param_filelc->tags && param_filelc->tags->Year && *param_filelc->tags->Year) { PtrTabArgs[ pos++ ] = g_strdup ("-w"); PtrTabArgs[ pos++ ] = g_strdup_printf ("Year=%s", param_filelc->tags->Year); } if (Config.BoolNumerateTag && param_filelc->tags && param_filelc->tags->Number && *param_filelc->tags->Number) { PtrTabArgs[ pos++ ] = g_strdup ("-w"); PtrTabArgs[ pos++ ] = g_strdup_printf ("Track=%s", param_filelc->tags->Number); } if (Config.BoolCommentTag && param_filelc->tags &¶m_filelc->tags->Comment && *param_filelc->tags->Comment) { PtrTabArgs[ pos++ ] = g_strdup ("-w"); PtrTabArgs[ pos++ ] = g_strdup_printf ("Comment=%s", param_filelc->tags->Comment); } PtrTabArgs[ pos++ ] = g_strdup (param_filelc->filesrc); PtrTabArgs[ pos++ ] = g_strdup ("-o"); PtrTabArgs[ pos++ ] = g_strdup (param_filelc->filedest); PtrTabArgs[ pos++ ] = NULL; } else if (param_filelc->type_conv == CDPARANOIA_CD_TO_WAV) { pos = 3; PtrTabArgs[ pos++ ] = g_strdup ("cdparanoia"); PtrTabArgs[ pos++ ] = g_strdup ("-e"); PtrTabArgs[ pos++ ] = g_strdup ("-d"); PtrTabArgs[ pos++ ] = g_strdup (param_filelc->cdrom); PtrTabArgs[ pos++ ] = g_strdup (param_filelc->num_track); PtrTabArgs[ pos++ ] = g_strdup (param_filelc->filedest); PtrTabArgs[ pos++ ] = NULL; } else if (param_filelc->type_conv == CDDA2WAV_CD_TO_WAV) { // cdda2wav -D /dev/hda -O wav -t 7 pos = 3; PtrTabArgs[ pos++ ] = g_strdup ("cdda2wav"); PtrTabArgs[ pos++ ] = g_strdup ("-D"); PtrTabArgs[ pos++ ] = g_strdup (param_filelc->cdrom); PtrTabArgs[ pos++ ] = g_strdup ("-O"); PtrTabArgs[ pos++ ] = g_strdup ("wav"); PtrTabArgs[ pos++ ] = g_strdup ("-t"); PtrTabArgs[ pos++ ] = g_strdup (param_filelc->num_track); PtrTabArgs[ pos++ ] = NULL; } else if (param_filelc->type_conv == AACPLUSENC_WAV_TO_AAC) { pos = 3; PtrTabArgs[ pos++ ] = g_strdup ("aacplusenc"); PtrTabArgs[ pos++ ] = g_strdup (param_filelc->filesrc); PtrTabArgs[ pos++ ] = g_strdup (param_filelc->filedest); if( NULL != param_filelc->tags && TRUE == param_filelc->tags->bool_tag_cd ) { PtrTabArgs[ pos++ ] = g_strdup_printf ("%d", optionsaacplusenc_get_bitrate_stereo ()); } else { if (tagswav_file_is_mono (param_filelc->filesrc) == TRUE) { PtrTabArgs[ pos++ ] = g_strdup_printf ("%d", optionsaacplusenc_get_bitrate_mono ()); } else { PtrTabArgs[ pos++ ] = g_strdup_printf ("%d", optionsaacplusenc_get_bitrate_stereo ()); } } PtrTabArgs[ pos++ ] = NULL; } return( (gchar **)PtrTabArgs ); } // // void filelc_get_command_line_extract_elem (gint Elem, gchar *Dev, gchar *Dest) { gint pos = 0; for (pos = 0; conv.ArgExtract [ pos ] != NULL; pos ++) { g_free (conv.ArgExtract [ pos ]); conv.ArgExtract [ pos ] = NULL; } pos = 0; conv.ArgExtract [ pos++ ] = g_strdup ("nice"); conv.ArgExtract [ pos++ ] = g_strdup ("-n"); conv.ArgExtract [ pos++ ] = g_strdup_printf ("%d", Config.Nice); conv.ArgExtract [ pos++ ] = g_strdup ("cdparanoia"); conv.ArgExtract [ pos++ ] = g_strdup_printf ("[.%d]-[.0]", Elem); conv.ArgExtract [ pos++ ] = g_strdup ("-e"); conv.ArgExtract [ pos++ ] = g_strdup ("-d"); conv.ArgExtract [ pos++ ] = g_strdup (Dev); conv.ArgExtract [ pos++ ] = g_strdup ("-O"); conv.ArgExtract [ pos++ ] = g_strdup ("0"); conv.ArgExtract [ pos++ ] = g_strdup (Dest); conv.ArgExtract [ pos++ ] = NULL; } // // void filelc_get_command_line_extract (PARAM_FILELC *param_filelc) { gint pos = 0; for (pos = 0; conv.ArgExtract [ pos ] != NULL; pos ++) { g_free (conv.ArgExtract [ pos ]); conv.ArgExtract [ pos ] = NULL; } pos = 0; if (param_filelc->type_conv == CDPARANOIA_CD_TO_WAV) { conv.ArgExtract [ pos++ ] = g_strdup ("nice"); conv.ArgExtract [ pos++ ] = g_strdup ("-n"); conv.ArgExtract [ pos++ ] = g_strdup_printf ("%d", Config.Nice); conv.ArgExtract [ pos++ ] = g_strdup ("cdparanoia"); conv.ArgExtract [ pos++ ] = g_strdup ("-e"); conv.ArgExtract [ pos++ ] = g_strdup ("-d"); conv.ArgExtract [ pos++ ] = g_strdup (param_filelc->cdrom); conv.ArgExtract [ pos++ ] = g_strdup (param_filelc->num_track); conv.ArgExtract [ pos++ ] = g_strdup (param_filelc->filedest); conv.ArgExtract [ pos++ ] = NULL; } else if (param_filelc->type_conv == CDPARANOIA_CD_TO_WAV_EXPERT) { gint NumTrack = atoi(param_filelc->num_track) -1; conv.ArgExtract [ pos++ ] = g_strdup ("nice"); conv.ArgExtract [ pos++ ] = g_strdup ("-n"); conv.ArgExtract [ pos++ ] = g_strdup_printf ("%d", Config.Nice); conv.ArgExtract [ pos++ ] = g_strdup ("cdparanoia"); conv.ArgExtract [ pos++ ] = g_strdup_printf ("[.%d]-[.%d]", BaseIoctl.Datas[ NumTrack ].begin < 44 ? 0 : BaseIoctl.Datas[ NumTrack ].begin, NumTrack == 0 ? (BaseIoctl.Datas[ NumTrack ].length + BaseIoctl.Datas[ NumTrack ].begin) -1 : BaseIoctl.Datas[ NumTrack ].length -1 ); conv.ArgExtract [ pos++ ] = g_strdup ("-e"); conv.ArgExtract [ pos++ ] = g_strdup ("-d"); conv.ArgExtract [ pos++ ] = g_strdup (param_filelc->cdrom); conv.ArgExtract [ pos++ ] = g_strdup ("-O"); conv.ArgExtract [ pos++ ] = g_strdup ("0"); conv.ArgExtract [ pos++ ] = g_strdup (param_filelc->filedest); conv.ArgExtract [ pos++ ] = NULL; } else if (param_filelc->type_conv == CDDA2WAV_CD_TO_WAV) { conv.ArgExtract [ pos++ ] = g_strdup ("nice"); conv.ArgExtract [ pos++ ] = g_strdup ("-n"); conv.ArgExtract [ pos++ ] = g_strdup_printf ("%d", Config.Nice); conv.ArgExtract [ pos++ ] = g_strdup (prginit_get_name (NMR_icedax)); conv.ArgExtract [ pos++ ] = g_strdup ("-D"); conv.ArgExtract [ pos++ ] = g_strdup (param_filelc->cdrom); conv.ArgExtract [ pos++ ] = g_strdup ("-O"); conv.ArgExtract [ pos++ ] = g_strdup ("wav"); conv.ArgExtract [ pos++ ] = g_strdup ("-t"); conv.ArgExtract [ pos++ ] = g_strdup (param_filelc->num_track); conv.ArgExtract [ pos++ ] = g_strdup ("--no-infofile"); conv.ArgExtract [ pos++ ] = NULL; } } // // GList *filelc_remove_glist (GList *New) { GList *list = NULL; gchar *ptr = NULL; if (New != NULL) { list = g_list_first (New); while (list) { if ((ptr = (gchar*)list->data)) { g_free (ptr); ptr = list->data = NULL; } list = g_list_next(list); } g_list_free (New); New = NULL; } return ((GList *)NULL); } xcfa-4.3.6/src/tags_m4a.c0000644000175000017500000001026412122563465012031 00000000000000 /* * file : tags_m4a.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * XCFA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * at your option) any later version. * * XCFA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XCFA. If not, see . */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #include #include #include #include #include #ifdef ENABLE_STATIC_LIBRARY #include "../lib/lib.h" #endif #include "global.h" #include "get_info.h" #include "tags.h" #include /* *--------------------------------------------------------------------------- * REMOVE *--------------------------------------------------------------------------- */ INFO_M4A *tagsm4a_remove_info (INFO_M4A *info) { if (info) { if (NULL != info->time) { g_free (info->time); info->time = NULL; } if (NULL != info->hertz) { g_free (info->hertz);info->hertz = NULL; } info->tags = (TAGS *)tags_remove (info->tags); g_free (info); info = NULL; } return ((INFO_M4A *)NULL); } /* *--------------------------------------------------------------------------- * GET INFO *--------------------------------------------------------------------------- */ INFO_M4A *tagsm4a_get_info (DETAIL *detail) { gchar **Larrbuf = NULL; GString *gstr = NULL; gint cpt; gchar *ptr = NULL; INFO_M4A *ptrinfo = NULL; gint m; gint s; gint sec; gstr = GetInfo_faad (detail->namefile); Larrbuf = g_strsplit (gstr->str, "\n", 0); ptrinfo = (INFO_M4A *)g_malloc0 (sizeof (INFO_M4A)); if (ptrinfo == NULL) { g_strfreev(Larrbuf); g_string_free (gstr, TRUE); return (NULL); } ptrinfo->tags = (TAGS *)tags_alloc (FALSE); for (cpt=0; Larrbuf[cpt]; cpt++) { // LC AAC 181.287 secs, 2 ch, 44100 Hz // LC AAC 7169.049 secs, 2 ch, 44100 Hz if ((ptr = strstr (Larrbuf[cpt], "LC AAC"))) { // --> 181.287 secs, 2 ch, 44100 Hz // --> 7169.049 secs, 2 ch, 44100 Hz ptr = strstr (ptr, " secs,"); ptr --; while (*ptr != ' ' && *ptr != '\t') ptr --; ptr ++; sec = atoi (ptr); s = sec % 60; sec /= 60; m = sec % 60; sec /= 60; if (sec > 0) ptrinfo->time = g_strdup_printf ("%02d:%02d:%02d", sec, m, s); else ptrinfo->time = g_strdup_printf ("%02d:%02d", m, s); ptrinfo->SecTime = sec; /* --> 44100 Hz */ ptr = strstr (ptr, " Hz"); ptr --; while (*ptr != ' ' && *ptr != '\t') ptr --; ptr ++; ptrinfo->hertz = g_strdup_printf ("%d", atoi(ptr)); } else if ((ptr = strstr (Larrbuf[cpt], "artist:"))) { if ((ptr = strchr (ptr, ' '))) { ptr ++; ptrinfo->tags->Artist = g_strdup (ptr); } } else if ((ptr = strstr (Larrbuf[cpt], "title:"))) { if ((ptr = strchr (ptr, ' '))) { ptr ++; ptrinfo->tags->Title = g_strdup (ptr); } } else if ((ptr = strstr (Larrbuf[cpt], "album:"))) { if ((ptr = strchr (ptr, ' '))) { ptr ++; ptrinfo->tags->Album = g_strdup (ptr); } } else if ((ptr = strstr (Larrbuf[cpt], "date:"))) { if ((ptr = strchr (ptr, ' '))) { ptr ++; ptrinfo->tags->Year = g_strdup (ptr); } } else if ((ptr = strstr (Larrbuf[cpt], "genre:"))) { if ((ptr = strchr (ptr, ' '))) { ptr ++; ptrinfo->tags->Genre = g_strdup (ptr); } } else if ((ptr = strstr (Larrbuf[cpt], "comment:"))) { if ((ptr = strchr (ptr, ' '))) { ptr ++; ptrinfo->tags->Comment = g_strdup (ptr); } } } g_strfreev(Larrbuf); g_string_free (gstr, TRUE); tags_set (detail->namefile, ptrinfo->tags); return ((INFO_M4A *)ptrinfo); } xcfa-4.3.6/Makefile.am0000644000175000017500000000022511707334430011423 00000000000000# # Makefile.am # SUBDIRS = po lib src man pixmaps menu mime glade desktop ACLOCAL_AMFLAGS = -I m4 EXTRA_DIST = config.rpath m4/ChangeLog autogen.sh xcfa-4.3.6/man/0000755000175000017500000000000012224542444010224 500000000000000xcfa-4.3.6/man/Makefile.am0000644000175000017500000000026611521251533012177 00000000000000# # man/Makefile.am # AUTOMAKE_OPTIONS= gnu man1_MANS = xcfa.gz EXTRA_DIST = compilate_manpage.txt xcfa.gz all: @true uninstall: rm -f "$(DESTDIR)$(datadir)/man/man1/xcfa.1"; xcfa-4.3.6/man/xcfa.gz0000644000175000017500000000273011765376043011442 00000000000000#OxcfaVr6}bJ.-M2Y҈rM@˜$X~|wi2p`܇+y͡M)#fNS^ ҧO?mRQEU*-~!.AجEQ"#M)AD2xch#,, Ex }̱)E*Cs 4b *W"ر+EH_J:/a5Jv$ -A,yL7 |iQ^T_Yi Jc\uLޟ^ngޝLtvAfWŒYJ&+J yB&5鸗^h.nƷ(9 iA؆2V(, )!RN};\E*OP*)EvzG-)7a?\:KIIcXE~:uxHC"Dh@P1DӬå҆D~tnZV2nwkm͙^ C ^0pT.T/8m:y%s@\н%1П|fan,Ḁ̈̄ UF9[`6?xq 8vvk8&4Uk@xoJNK*jR*]N*g-V0M)Hճ[% ԉΩLWuȊNb;ˌ֧7i) |<&x78q֙a2lr~FRV$6Ys )PS㋹P) M$wu#WdYys<uE SOSC}s5C2eEy0>R56Kbϻ¥4cYjCiZ!UevM FvPip;Fv͢vz^vaz݃z7޳]9Ya7u''?OS"Qerp~qpR3qǢSo {#<J)kUFvްɊYNC[*;61ȁKHt欯\xS$O>9f:kvWk'x_r+.J_?-PN^ `Zs&"2>$G8A؉uHK$#}.*?tk~y3+";ol~,:;{cgh+顴o2a ot3nz㽣Lr^ۿxȬ ڮx0i zi#vI%#/dev/null; then \ echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \ grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/ /' >&2; \ echo " to fix them, install help2man, remove and regenerate the man pages;" >&2; \ echo " typically \`make maintainer-clean' will remove them" >&2; \ exit 1; \ else :; fi; \ else :; fi @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(MANS) installdirs: for dir in "$(DESTDIR)$(man1dir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-man install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-man1 install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-man uninstall-man: uninstall-man1 .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic distclean \ distclean-generic distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-man1 install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic pdf pdf-am ps ps-am uninstall \ uninstall-am uninstall-man uninstall-man1 all: @true uninstall: rm -f "$(DESTDIR)$(datadir)/man/man1/xcfa.1"; # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: xcfa-4.3.6/config.sub0000755000175000017500000010115311400750713011350 00000000000000#! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 # Free Software Foundation, Inc. timestamp='2008-01-16' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software # can handle that machine. It does not imply ALL GNU software can. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis | -knuth | -cray) os= basic_machine=$1 ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco6) os=-sco5v6 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | mcore | mep \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64vr | mips64vrel \ | mips64orion | mips64orionel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | mt \ | msp430 \ | nios | nios2 \ | ns16k | ns32k \ | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ | score \ | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | spu | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ | v850 | v850e \ | we32k \ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ | z8k) basic_machine=$basic_machine-unknown ;; m6811 | m68hc11 | m6812 | m68hc12) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-unknown ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64vr-* | mips64vrel-* \ | mips64orion-* | mips64orionel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tron-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ | xstormy16-* | xtensa*-* \ | ymp-* \ | z8k-*) ;; # Recognize the basic CPU types without company name, with glob match. xtensa*) basic_machine=$basic_machine-unknown ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; abacus) basic_machine=abacus-unknown ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; blackfin) basic_machine=bfin-unknown os=-linux ;; blackfin-*) basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; c90) basic_machine=c90-cray os=-unicos ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16) basic_machine=cr16-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; crisv32 | crisv32-* | etraxfs*) basic_machine=crisv32-axis ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; # I'm not sure what "Sysv32" means. Should this be sysv3.2? i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m68knommu) basic_machine=m68k-unknown os=-linux ;; m68knommu-*) basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; mingw32ce) basic_machine=arm-unknown os=-mingw32ce ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; msdos) basic_machine=i386-pc os=-msdos ;; ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; mvs) basic_machine=i370-ibm os=-mvs ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; os400) basic_machine=powerpc-ibm os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; parisc) basic_machine=hppa-unknown os=-linux ;; parisc-*) basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pc98) basic_machine=i386-pc ;; pc98-*) basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc) basic_machine=powerpc-unknown ;; ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rdos) basic_machine=i386-pc os=-rdos ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sde) basic_machine=mipsisa32-sde os=-elf ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh5el) basic_machine=sh5le-unknown ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tic54x | c54x*) basic_machine=tic54x-unknown os=-coff ;; tic55x | c55x*) basic_machine=tic55x-unknown os=-coff ;; tic6x | c6x*) basic_machine=tic6x-unknown os=-coff ;; tile*) basic_machine=tile-unknown os=-linux-gnu ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xbox) basic_machine=i686-pc os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ | -openbsd* | -solidbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -os400*) os=-os400 ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -syllable*) os=-syllable ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -tpf*) os=-tpf ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -kaos*) os=-kaos ;; -zvmoe) os=-zvmoe ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in score-*) os=-elf ;; spu-*) os=-elf ;; *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 # This also exists in the configure program, but was not the # default. # os=-sunos4 ;; m68*-cisco) os=-aout ;; mep-*) os=-elf ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-haiku) os=-haiku ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; -tpf*) vendor=ibm ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: xcfa-4.3.6/lib/0000755000175000017500000000000012224542444010217 500000000000000xcfa-4.3.6/lib/lib.c0000644000175000017500000003223012122667603011053 00000000000000 /* * file : lib/lib.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - Creation d'une base de programmation en langage C de type GNU avec les autotools * GNU General Public License * * This file is part of XCFA. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * OLD ADRESS: * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * NEW ADRESS: * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #ifdef ENABLE_NLS #include #define _(String) gettext (String) #endif #include #include #include #include #include #include #include #include "lib.h" OPTIONS_COMMAND_LINE OptionsCommandLine = { FALSE, // gboolean BoolVerboseMode FALSE, // gboolean BoolVersionMode FALSE // gboolean BoolHelpMode }; /* typedef struct { guint32 pixel; guint16 red; guint16 green; guint16 blue; } GdkColor; */ GdkColor YellowColor = { 0, 63479,63479,48830 }; // // gchar *libutils_dup_chomp( gchar *p_str ) { gchar *StrNew = g_strdup( p_str ); gchar *Ptr = StrNew; while( *Ptr ) { if( '\n' == *Ptr ) *Ptr = '\0'; if( '\r' == *Ptr ) *Ptr = '\0'; Ptr ++; } return( StrNew ); } // // gchar *libutils_chomp( gchar *p_str ) { gchar *Ptr = p_str; while( *Ptr ) { if( '\n' == *Ptr ) *Ptr = '\0'; if( '\r' == *Ptr ) *Ptr = '\0'; Ptr ++; } return( p_str ); } // // gchar *libutils_get_prefix (gchar *PathNameFile) { gchar *Prefix = g_strdup (PathNameFile); gchar *Ptr = NULL; if (NULL != (Ptr = strrchr (Prefix, '/'))) { *Ptr = '\0'; } return (Prefix); } // // gboolean libutils_access_mode (gchar *PathNameFile) { gboolean FileAccessModeFileExist = access (PathNameFile, F_OK) == -1 ? FALSE : TRUE; return (FileAccessModeFileExist); } // CREATION D UN DOSSIER TEMPORAIRE // gchar *libutils_create_temporary_rep (gchar *SrcTmp, gchar *NewRepTmp) { //gchar *LineCommand = NULL; gchar *Path = NULL; if (NewRepTmp != NULL) { Path = g_strdup_printf ("%s/%s", SrcTmp, NewRepTmp); if (FALSE == libutils_test_dir_exist (Path)) { if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("CREATE TEMPORARY REP:\n\t%s\n", Path); g_mkdir_with_parents (Path, 0700); // LineCommand = g_strdup_printf ("mkdir -p %s", Path); // Dummy = system (LineCommand); // g_free (LineCommand); // LineCommand = NULL; } } return ((gchar *)Path); } // SUPPRESSION D UN DOSSIER TEMPORAIRE // gchar *libutils_remove_temporary_rep (gchar *path_tmprep) { pid_t pid; if (path_tmprep != NULL) { if ((pid = fork ()) == 0) { execlp ( "rm", "rm", "-rf", path_tmprep, NULL ); } if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("REMOVE TEMPORARY REP:\n\t%s\n", path_tmprep); g_free (path_tmprep); path_tmprep = NULL; } return ((gchar *)NULL); } // TRUE SI LE FICHIER EXISTE SINON FALSE // gboolean libutils_test_file_exist (gchar *File) { /*struct stat status; gint ret; ret = stat (File, &status); return (ret > -1 && S_ISREG (status.st_mode));*/ return (g_file_test (File, G_FILE_TEST_IS_REGULAR)); } // RENVOIE LE PAHTNAME AVEC LA NOUVELLE EXTENTION // gchar *libutils_get_pathname_with_new_ext (gchar *PathName, gchar *NewExt) { gchar *NewPathName = g_strdup_printf ("%s0123456789", PathName); gchar *Ptr = strrchr (NewPathName, '.'); if (NULL == Ptr) { for (Ptr = NewPathName; *Ptr; Ptr ++); *Ptr ++ = '.'; *Ptr = '\0'; } else { Ptr ++; } strcpy (Ptr, NewExt); return (NewPathName); } // RENVOIE TRUE SI LE FICHIER EXISTE SINON FALSE // gboolean libutils_test_file_with_new_ext_exist (gchar *PathName, gchar *NewExt) { gchar *NewPathName = libutils_get_pathname_with_new_ext (PathName, NewExt); gboolean BoolFileExist; BoolFileExist = libutils_test_file_exist (NewPathName); g_free (NewPathName); NewPathName = NULL; return (BoolFileExist); } // TRUE SI LE DOSSIER EXISTE SINON FALSE // gboolean libutils_test_dir_exist (gchar *File) { /*struct stat status; gint ret; ret = stat (File, &status); return (ret > -1 && S_ISDIR (status.st_mode));*/ return (g_file_test (File, G_FILE_TEST_IS_DIR)); } // AFFICHE L ICONE A GAUCHE DANS LA BARRE DE TITRE // gchar *libutils_get_pathname_pixmaps (gchar *p_name_pixmap) { gchar *LineCommand = NULL; LineCommand = xdg_search_data_xdg( p_name_pixmap ); return (LineCommand); } // AFFICHE L ICONE A GAUCHE DANS LA BARRE DE TITRE // void libutils_set_default_icone_to_win (GtkWidget *win) { gchar *LineCommand = NULL; GError *error = NULL; if( NULL != (LineCommand = xdg_search_data_xdg( "xcfa.png" ))) { gtk_window_set_icon_from_file (GTK_WINDOW(win), LineCommand, &error); if (error) { GDK_PIXBUF_ERROR; g_critical ("Could not load pixbuf: %s\n", error->message); g_error_free (error); } } g_free (LineCommand); LineCommand = NULL; } // Execute WHICH Name_Prg et si 'gchar **Pathname_Prg' est non null retourne le resultat // gchar *g_find_program_in_path( const gchar *program ); // gboolean libutils_find_file (gchar *p_find_file) { gchar *PathName = NULL; if( NULL != p_find_file ) { if( NULL != (PathName = g_find_program_in_path( p_find_file ))) { g_free( PathName ); PathName = NULL; return( TRUE ); } } return( FALSE ); } /* utils_hexa_to_int : convertit en entier la chaine pointee par 'gchar *Ptr_Hexa' en hexa * La chaine doit commencer par 0x.. * VALUES A = 65 et a = 97 */ gint libutils_hexa_to_int (gchar *Ptr_Hexa) { gint chiffre_hexa = 0; /*gint cpt = 0;*/ gint Gint_Ret = 0; gboolean Bool_dans_hexa = FALSE; /* PRINT_FUNC_LF(); */ if (NULL == Ptr_Hexa) return (0); if ('\0' == *(Ptr_Hexa) || '\0' == *(Ptr_Hexa+1) || '\0' == *(Ptr_Hexa+2) || '\0' == *(Ptr_Hexa+3)) return (0); if (*Ptr_Hexa == '0' && (*(Ptr_Hexa+1) == 'x' || *(Ptr_Hexa+1) == 'X')) { Ptr_Hexa += 2; Bool_dans_hexa = TRUE; } Gint_Ret = 0; while (Bool_dans_hexa) { if (g_ascii_isdigit (*Ptr_Hexa)) { chiffre_hexa = *Ptr_Hexa - '0'; } else if (g_ascii_isxdigit (*Ptr_Hexa)) { if ((gint)*Ptr_Hexa >= 'a') chiffre_hexa = *Ptr_Hexa - 'a' + 10; else chiffre_hexa = *Ptr_Hexa - 'A' + 10; } else Bool_dans_hexa = FALSE; if (Bool_dans_hexa) { Gint_Ret = 16 * Gint_Ret + chiffre_hexa; Ptr_Hexa ++; } } return (Gint_Ret); } // SUPPRESSION SIMPLE ALLOC POINTEE PAR LE GLIST ANSI QUE LE GLIST // GList *libutils_remove_glist (GList *New) { GList *list = NULL; gchar *ptr = NULL; if (New != NULL) { list = g_list_first (New); while (list) { if ((ptr = (gchar*)list->data)) { g_free (ptr); ptr = NULL; list->data = NULL; } list = g_list_next(list); } g_list_free (New); New = NULL; } return ((GList *)NULL); } // SUPPRESSION SIMPLE ALLOC POINTEE PAR LE GSLIST ANSI QUE LE GSLIST // GSList *libutils_remove_gslist (GSList *New) { GSList *gslist = NULL; if (NULL != (gslist = New)) { while (gslist) { if (NULL != (gchar*)gslist->data) { g_free (gslist->data); gslist->data = NULL; } gslist = g_slist_next (gslist); } g_slist_free (New); gslist = New = NULL; } return ((GSList *)NULL); } // RETOURNE LA TAILLE DU FICHIER EN OCTETS // size_t libutils_get_size_file (gchar *PathName) { FILE *fp; size_t size = 0; if ((fp = fopen (PathName, "r"))) { fseek (fp, 0, SEEK_END); size = ftell (fp); fclose (fp); } return (size); } // Ecriture de datas sur disk, recuperation puis effacement du fichier // void libutils_add_datas_on_disk (gchar *data) { FILE *fp = NULL; fp = fopen ("/tmp/data_xcfa.txt", "a"); fprintf (fp, "%s", data); fclose (fp); } gchar *libutils_get_datas_on_disk (void) { FILE *fp = NULL; gchar *buf = NULL; size_t size; size = libutils_get_size_file ("/tmp/data_xcfa.txt"); buf = (gchar *)g_malloc0 (sizeof(gchar) * (size + 10)); if ((fp = fopen ("/tmp/data_xcfa.txt", "r")) != NULL) { size = fread (buf, 1, size, fp); fclose (fp); } else { g_free (buf); buf = NULL; } g_unlink ("/tmp/data_xcfa.txt"); return ((gchar *)buf); } // TRUE SI ECRITURE OK SINON FALSE // gboolean libutils_test_write (gchar *path) { gboolean BoolWriteOk = FALSE; FILE *fp = NULL; gchar *str = NULL; if (path[ 0 ] == '/' && path[ 1 ] != '\0') { str = g_strdup_printf ("%s/xcfa_tst_write.txt", path); fp = fopen (str, "w"); if (fp) { BoolWriteOk = TRUE; fclose (fp); g_unlink (str); } g_free (str); str = NULL; } return (BoolWriteOk); } // INIT PIXBUF // GdkPixbuf *libutils_init_pixbufs (gchar *NameFilePixbuf) { GdkPixbuf *NewPixbuf = NULL; GError *error = NULL; gchar *Pathname_Pixbuf = NULL; Pathname_Pixbuf = libutils_get_pathname_pixmaps (NameFilePixbuf); NewPixbuf = gdk_pixbuf_new_from_file(Pathname_Pixbuf, &error); if (error) { GDK_PIXBUF_ERROR; g_critical ("Could not load pixbuf: %s\n", error->message); g_error_free (error); g_free (Pathname_Pixbuf); Pathname_Pixbuf = NULL; return (NULL); } g_free (Pathname_Pixbuf); Pathname_Pixbuf = NULL; return (NewPixbuf); } // // typedef enum { // TYPE_ALL_FILE = 0, // TYPE_WAV_FILE, // TYPE_MP3_OGG_FILE, // TYPE_TAG_FILE // } TYPE_FILE; // gint libutils_get_first_line_is_selected( GtkTreeSelection *AdrLine, GtkTreeModel *AdrTreeModel ) { gboolean valid; GtkTreeIter iter; gint Cpt = -1; if (NULL != AdrLine && NULL != AdrTreeModel ) { valid = gtk_tree_model_get_iter_first( AdrTreeModel, &iter ); while (valid) { if (TRUE == gtk_tree_selection_iter_is_selected( AdrLine, &iter) ) { Cpt ++; return( Cpt ); } valid = gtk_tree_model_iter_next( AdrTreeModel, &iter ); if( TRUE == valid ) Cpt ++; } } return( -1 ); } // // gchar *libutils_get_name_without_ext_with_amp( gchar *p_PathNameFile ) { gchar *NewName = g_strnfill (strlen(p_PathNameFile) * 4, '\0'); gchar *NewPtr = NewName; gchar *NameRet = NULL; gchar *ptr = NULL; // POINTEUR SUR LE DEBUT DU NOM REEL if (NULL != (ptr = strrchr (p_PathNameFile, '/'))) ptr ++; else ptr = p_PathNameFile; // COPIE DE p_PathNameFile VERS NewName while (*ptr) { if (*ptr == '&') { *NewPtr ++ = *ptr ++; *NewPtr ++ = 'a'; *NewPtr ++ = 'm'; *NewPtr ++ = 'p'; *NewPtr ++ = ';'; } else { *NewPtr ++ = *ptr ++; } } // DUPLIQUER NewName VERS name NameRet = g_strdup (NewName); g_free (NewName); NewName = NULL; // CACHER L EXTENTION SI ELLE EXISTE DANS name if (NULL != (ptr = strrchr (NameRet, '.'))) *ptr = '\0'; return ((gchar *)NameRet); } // // gchar *libutils_get_name_without_ext( gchar *p_PathNameFile ) { gchar *NewName = NULL; gchar *Ptr = NULL; // POINTEUR SUR LE DEBUT DU NOM REEL if( NULL != (Ptr = strrchr (p_PathNameFile, '/' ))) Ptr ++; else Ptr = p_PathNameFile; // COPIE NewName = g_strdup( Ptr ); // CACHER L EXTENTION SI ELLE EXISTE DANS NewName if( NULL != ( Ptr = strrchr( NewName, '.' ))) *Ptr = '\0'; return( (gchar *)NewName ); } // // RETOURNE LE NOMBRE DE PROCESSUS ACTIF POUR: p_NameFile // EX: // if( libutils_getNbProcess( "xcfa" ) > 1 ) // if( libutils_getNbProcess( "tm" ) > 1 ) // gint libutils_getNbProcess( gchar *p_NameFile ) { size_t SizeFile; gchar *Buffer = NULL; FILE *fp = NULL; gchar **LarrbufLine = NULL; gchar **LarrbufWord = NULL; gint Cpt = 0; gchar *CommandLine = NULL; gchar *PathNameFile = NULL; if( TRUE == libutils_find_file( "pidof" ) ) { PathNameFile = g_strdup_printf( "/tmp/process_%s", p_NameFile ); CommandLine = g_strdup_printf( "pidof %s > %s", p_NameFile, PathNameFile ); system( CommandLine ); g_free( CommandLine ); CommandLine = NULL; // g_print( "getpid(void) = %d\n", getpid() ); if(( SizeFile = libutils_get_size_file( PathNameFile )) > 0 ) { if( NULL != ( fp = fopen( PathNameFile, "r" ))) { Buffer = (gchar *)g_malloc0( sizeof(gchar) * ( SizeFile +10 )); SizeFile = fread( Buffer, SizeFile, 1, fp ); fclose( fp ); LarrbufLine = g_strsplit( Buffer, "\n", 0 ); g_free( Buffer ); Buffer = NULL; LarrbufWord = g_strsplit( LarrbufLine[ 0 ], " ", 0 ); for( Cpt = 0; LarrbufWord[ Cpt ]; Cpt++ ); g_strfreev( LarrbufWord ); LarrbufWord = NULL; g_strfreev( LarrbufLine ); LarrbufLine = NULL; } } g_unlink( PathNameFile ); g_free( PathNameFile ); PathNameFile = NULL; } return( Cpt ); } // // gchar *libutils_string_toupper( gchar *p_str ) { gchar *Str = g_strdup( p_str ); gchar *Ptr = Str; while( Ptr && *Ptr ) { *Ptr = g_ascii_toupper( *Ptr ); Ptr ++; } return( Str ); } xcfa-4.3.6/lib/Makefile.am0000644000175000017500000000072612110457147012177 00000000000000# # lib/Makefile.am # AUTOMAKE_OPTIONS= gnu AM_CPPFLAGS = \ -DPACKAGE_DATA_DIR=\""$(datadir)"\" \ -DPACKAGE_LOCALE_DIR=\""$(prefix)/$(DATADIRNAME)/locale"\" \ -DPIXMAPS_DIR=\""$(datadir)/pixmaps/xcfa"\" \ @PACKAGE_CFLAGS@ AM_CFLAGS = @PACKAGE_CFLAGS@ \ -DDATA_DIR=\""$(datadir)"\" \ -DLOCALE_DIR=\""$(datadir)/locale"\" \ -DPIXMAPS_DIR=\""$(datadir)/pixmaps/xcfa"\" noinst_LIBRARIES=lib.a lib_a_SOURCES=lib.c combo.c file_is.c utf8.c xdg.c lib.h xcfa-4.3.6/lib/utf8.c0000644000175000017500000001260712122564065011177 00000000000000 /* * file : lib/utf8.h * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - Creation d'une base de programmation en langage C de type GNU avec les autotools * GNU General Public License * * This file is part of XCFA. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * OLD ADRESS: * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * NEW ADRESS: * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #ifdef ENABLE_NLS #include #define _(String) gettext (String) #endif #include #include #include "lib.h" gchar *utf8_convert_from_utf8 (const char *string) { gchar *ptr = NULL; GError *error = NULL; gchar *output = NULL; gsize bytes_written; if (NULL == string) return ((gchar *)NULL); /* Suppression des ESPACES de fin de chaine */ for (ptr = (gchar *)string; *ptr; ptr ++); ptr --; while (ptr >= string && *ptr == ' ') ptr --; ptr ++; *ptr = '\0'; output = g_convert(string, -1, "iso-8859-1", "utf-8", NULL, &bytes_written, &error); if (NULL == output) { return ((gchar *)g_strdup(string)); } else if (NULL != output) { /* Patch from Alexey Illarionov: g_convert returns null-terminated string only with one \0 at the end. It can cause some garbage at the end of a string for UTF-16. The second \0 should be set manually. */ output = g_realloc(output, bytes_written + 2); if (NULL != output) output[bytes_written] = output[bytes_written + 1] = 0; } return ((gchar *)output); } /* Fonctions reprises (et adaptees) depuis EasyTag v1.99.12 * * Main part of code, written by: * Copyright (C) 1999-2001 Håvard Kvålen * * Length must be passed, as the string might be Unicode, in which case we can't * count zeroes (see strlen call below). */ gchar *utf8_convert_to_utf8 (const gchar *string) { gchar *ptr = NULL; GError *error = NULL; gchar *output = NULL; gsize bytes_written; if (!string) return ((gchar *)NULL); /* Suppression des ESPACES de fin de chaine */ for (ptr = (gchar *)string; *ptr; ptr ++); ptr --; while (ptr >= string && *ptr == ' ') ptr --; ptr ++; *ptr = '\0'; /* Si transformation deja faite quit */ if (g_utf8_validate(string, -1, NULL)) return ((gchar *)g_strdup(string)); output = g_convert(string, -1, "utf-8", "iso-8859-1", NULL, &bytes_written, &error); if (output == NULL) { gchar *escaped_str = g_strescape(string, NULL); g_warning("convert_string(): Failed conversion from charset 'iso-8859-1' to 'utf-8'. String '%s'. Errcode %d (%s).\n", escaped_str, error->code, error->message); g_free(escaped_str); g_error_free(error); /* Return the input string without converting it. If the string is displayed in the UI, it must be in UTF-8! */ if ((g_ascii_strcasecmp("utf-8", "UTF-8")) || (g_utf8_validate(string, -1, NULL)) ) { return ((gchar *)g_strdup(string)); } } else { /* Patch from Alexey Illarionov: g_convert returns null-terminated string only with one \0 at the end. It can cause some garbage at the end of a string for UTF-16. The second \0 should be set manually. */ output = g_realloc(output, bytes_written + 2); if (output != NULL) output[bytes_written] = output[bytes_written + 1] = 0; } return ((gchar *)output); } // // UNACCENT: // http://freetuxtv.blogspot.com/ // http://freetuxtv.blogspot.com/2010/12/ignorer-les-diacritiques-accent-trema.html // gchar *utf8_removediacritics( const gchar *str, gssize len ) { gchar *szNormalizedString; GString *szStringBuilder; gchar *szRes = NULL; gunichar c; gchar *szPtr = NULL; if( NULL != str ) { szNormalizedString = g_utf8_normalize( str, len, G_NORMALIZE_NFD ); szStringBuilder = g_string_new( "" ); szPtr = szNormalizedString; while( szPtr ){ c = g_utf8_get_char( szPtr ); if( c != '\0' ) { if( !g_unichar_ismark( c )) { g_string_append_unichar( szStringBuilder, c ); } szPtr = g_utf8_next_char( szPtr ); } else { szPtr = NULL; } } szRes = g_string_free( szStringBuilder, FALSE ); g_free( szNormalizedString ); } return szRes; } // & // gchar *utf8_eperluette_name( gchar *p_name ) { gchar *NewName = NULL; gchar *PtrNew = NULL; gchar *Ptr = NULL; if( NULL != p_name ) { NewName = g_strnfill( strlen( p_name ) * 4, '\0' ); PtrNew = NewName; Ptr = p_name; while( *Ptr ) { if( *Ptr == '&' && *(Ptr+1) != 'a' ) { *PtrNew ++ = *Ptr ++; *PtrNew ++ = 'a'; *PtrNew ++ = 'm'; *PtrNew ++ = 'p'; *PtrNew ++ = ';'; } else { *PtrNew ++ = *Ptr ++; } } } return( NewName ); } xcfa-4.3.6/lib/xdg.c0000644000175000017500000003273412122564065011076 00000000000000 /* * file : lib/xdg.h * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - Creation d'une base de programmation en langage C de type GNU avec les autotools * GNU General Public License * * This file is part of XCFA. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * OLD ADRESS: * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * NEW ADRESS: * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * * !--------------------------------------------- * ! FreeDesktop integration * !--------------------------------------------- * ! http://www.freedesktop.org/wiki/ * ! http://fr.wikipedia.org/wiki/Freedesktop.org * !--------------------------------------------- * * Pour les applications conformes aux spécifications freedesktop.org * XDG_CONFIG_HOME ~/.config). ~/.local/share Celui-ci permet aux applications de trouver ces dossiers. Indique aux applications où placer les informations de configuration de l'utilisateur. En général cette variable n'est pas définie puisqu'une valeur de secours par défaut est implémentée dans les spécifications Si cette variable est vide ou non remplie, un répertoire équivalent à $HOME/.config devra être utilisé. XDG_DATA_HOME ~/.local/share Indique aux applications où placer les données de l'utilisateur. En général cette variable n'est pas définie puisqu'une valeur de secours par défaut est implémentée dans les spécifications. Si cette variable est vide ou non remplie, un répertoire par défaut équivalent à $HOME/.local/share devra être utilisé. XDG_DATA_DIRS /usr/local/share : /usr/share Une liste de dossiers séparés par deux-points (similaire à PATH) indiquant aux applications où chercher les données. En général cette variable n'est pas définie puisqu'une valeur de secours par défaut est implémentée dans les spécifications Si cette variable est vide ou non remplie, une valeur égale à /usr/local/share/:/usr/share/ devra être utilisée XDG_CACHE_HOME ~/.cache un emplacement utilisé par les applications pour mettre en cache les données temporaires. En général cette variable n'est pas définie puisqu'une valeur de secours par défaut est implémentée dans les spécifications Par défaut sous xcfa: /tmp XDG_CONFIG_DIRS /etc/xdg Une liste de dossiers séparés par deux points (similaire à PATH) indiquant aux applications où chercher les informations de configuration. En général cette variable n'est pas définie puisqu'une valeur de secours par défaut est implémentée dans les spécifications Si cette variable est vide ou non remplie, une valeur égale à /etc/xdg devra être utilisée * */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #ifdef ENABLE_NLS #include #define _(String) gettext (String) #endif #include #include #include #include #include #include "lib.h" // ------------------------------------------------------------------------ // ************************************************************************ // // XDG_DATA_HOME // HOME // XDG_DATA_DIRS // // ************************************************************************ // ------------------------------------------------------------------------ // // GSList *xdg_remove_gslist( GSList *gslist ) { GSList *Lthemesemp = gslist; GSList *Lcur; // if( TRUE == OptionsCommandLine.BoolVerboseMode ) // g_print ("%s :: %s (line = %d)\n", __FILE__, __FUNCTION__, __LINE__); for (Lcur = Lthemesemp; Lcur && Lcur->data; Lcur = Lcur->next) { g_free( Lcur->data ); Lcur->data = NULL; } // if( TRUE == OptionsCommandLine.BoolVerboseMode ) // g_print( "\n" ); g_slist_free(Lthemesemp); return( (GSList *)NULL ); } // // FROM GRAVEMAN // // on regarde si un fichier de configuration existe // tel que definie par http://standards.freedesktop.org/basedir-spec/latest/ // // construction de la liste des PATH dans lequel on va chercher la configuration // GSList *xdg_get_data_path( void ) { GSList *Lnewlist = NULL; const gchar *Lenv; gchar *Lpath; gchar **Llistpath; gint i; // gchar *Ptr = NULL; // if( TRUE == OptionsCommandLine.BoolVerboseMode ) { // g_print( "\n" ); // g_print ("%s :: %s (line = %d)\n", __FILE__, __FUNCTION__, __LINE__); // } if ((Lenv=g_getenv("XDG_DATA_HOME"))) { Lpath = g_strdup_printf("%s/%s", Lenv, PACKAGE); Lnewlist = g_slist_append(Lnewlist, Lpath); } else if ((Lenv=g_getenv("HOME"))) { Lpath = g_strdup_printf("%s/.local/share/%s", Lenv, PACKAGE); Lnewlist = g_slist_append(Lnewlist, Lpath); } if ((Lenv = g_getenv("XDG_DATA_DIRS"))) { Llistpath = g_strsplit(Lenv, ":", 0); for (i=0; Llistpath[i]; i++) { // // FROM GRAVEMAN // // Lcurlist->data = /home/cat/.config/graveman/graveman.conf // Lcurlist->data = /etc/xdg/graveman/graveman.conf // // Lcurlist->data = /home/cat/.local/share/graveman // Lcurlist->data = /usr/share/gnome/graveman // Lcurlist->data = /usr/share/gdm//graveman // Lcurlist->data = /usr/local/share//graveman // Lcurlist->data = /usr/share//graveman // Lcurlist->data = /usr/local/share/graveman // Lcurlist->data = /usr/share/graveman // Lcurlist->data = /usr/share/graveman // // FROM FREEDESKTOP: BEFORE // // Lcur->data = /home/cat/.config/freedesktop/freedesktop.conf // Lcur->data = /etc/xdg/freedesktop/freedesktop.conf // // Lcur->data = /home/cat/.local/share/freedesktop // Lcur->data = /usr/share/gnome/freedesktop // Lcur->data = /usr/share/gdm//freedesktop // Lcur->data = /usr/local/share//freedesktop // Lcur->data = /usr/share//freedesktop // Lcur->data = /usr/local/share/freedesktop // Lcur->data = /usr/share/freedesktop // Lcur->data = /usr/share/freedesktop/glade // Lcur->data = /usr/share/freedesktop // Lcur->data = /usr/share/pixmaps // Lcur->data = /usr/share/pixmaps/freedesktop // // REMOVE END CAR: // /usr/share/gdm/ // /usr/local/share/ // /******************************* if( NULL != (Ptr = strrchr( Llistpath[i], '/' ))) { *Ptr = '\0'; } *******************************/ // FROM FREEDESKTOP: AFTER // // Lcur->data = /home/cat/.config/freedesktop/freedesktop.conf // Lcur->data = /etc/xdg/freedesktop/freedesktop.conf // // Lcur->data = /home/cat/.local/share/freedesktop // Lcur->data = /usr/share/freedesktop // Lcur->data = /usr/share/gdm/freedesktop // Lcur->data = /usr/local/share/freedesktop // Lcur->data = /usr/share/freedesktop // Lcur->data = /usr/local/share/freedesktop // Lcur->data = /usr/share/freedesktop // Lcur->data = /usr/share/freedesktop/glade // Lcur->data = /usr/share/freedesktop // Lcur->data = /usr/share/pixmaps // Lcur->data = /usr/share/pixmaps/freedesktop // Lpath = g_strdup_printf("%s/%s", Llistpath[i], PACKAGE); Lnewlist = g_slist_append(Lnewlist, Lpath); } g_strfreev(Llistpath); } Lpath = g_strdup_printf("/usr/local/share/%s", PACKAGE); Lnewlist = g_slist_append(Lnewlist, Lpath); Lpath = g_strdup_printf("/usr/share/%s", PACKAGE); Lnewlist = g_slist_append(Lnewlist, Lpath); Lpath = g_strdup_printf("/usr/share/%s/glade", PACKAGE); Lnewlist = g_slist_append(Lnewlist, Lpath); Lpath = g_strdup_printf("%s/%s", DATA_DIR, PACKAGE); Lnewlist = g_slist_append(Lnewlist, Lpath); Lpath = g_strdup("/usr/share/pixmaps"); Lnewlist = g_slist_append(Lnewlist, Lpath); Lpath = g_strdup_printf("/usr/share/pixmaps/%s", PACKAGE); Lnewlist = g_slist_append(Lnewlist, Lpath); return Lnewlist; } // // gchar *xdg_search_data_xdg( gchar *NameFile ) { GSList *Lthemesemp = xdg_get_data_path(); GSList *Lcur; gchar *Name = NULL; gboolean BoolExist = FALSE; // if( TRUE == OptionsCommandLine.BoolVerboseMode ) { // g_print( "\n" ); // g_print ("%s :: %s (line = %d)\n", __FILE__, __FUNCTION__, __LINE__); // } for (Lcur = Lthemesemp; Lcur && Lcur->data; Lcur = Lcur->next) { Name = g_strdup_printf( "%s/%s", (gchar *)Lcur->data, NameFile ); BoolExist = libutils_test_file_exist( Name ); // g_print( "\t%s NameSearch = %s\n", BoolExist ? "TRUE " : "FALSE", Name ); if( TRUE == BoolExist ) break; g_free( Name ); Name = NULL; } // if( TRUE == OptionsCommandLine.BoolVerboseMode ) // g_print( "\n" ); Lthemesemp = xdg_remove_gslist( Lthemesemp ); return( (gchar *)Name ); } // // void xdg_print_list_data_path( void ) { if( TRUE == OptionsCommandLine.BoolVerboseMode ) { GSList *Lthemesemp = xdg_get_data_path(); GSList *Lcur; g_print( "\n" ); g_print ("%s :: %s (line = %d)\n", __FILE__, __FUNCTION__, __LINE__); g_print( "!---------------------------------------------\n" ); g_print( "! FreeDesktop integration\n" ); g_print( "!---------------------------------------------\n" ); g_print( "! http://www.freedesktop.org/wiki/\n" ); g_print( "! http://fr.wikipedia.org/wiki/Freedesktop.org\n" ); g_print( "!---------------------------------------------\n" ); for (Lcur = Lthemesemp; Lcur && Lcur->data; Lcur = Lcur->next) { g_print( "\tLcur->data = %s\n", (gchar *)Lcur->data ); } Lthemesemp = xdg_remove_gslist( Lthemesemp ); } } // ------------------------------------------------------------------------ // ************************************************************************ // // XDG_CONFIG_HOME // HOME // XDG_CONFIG_DIRS // // ************************************************************************ // ------------------------------------------------------------------------ // // FROM GRAVEMAN // // on regarde si un repertoire de donnée existe // tel que definie par http://standards.freedesktop.org/basedir-spec/latest/ // on regarde de + en dernier dans le DATADIR definie a la compilation // // construction de la liste des PATH dans lequel on va chercher la configuration // GSList *xdg_get_config_path( void ) { GSList *Lnewlist = NULL; const gchar *Lenv; gchar *Lpath; gchar **Llistpath; gint i; // if( TRUE == OptionsCommandLine.BoolVerboseMode ) { // g_print( "\n" ); // g_print ("%s :: %s (line = %d)\n", __FILE__, __FUNCTION__, __LINE__); // } if ((Lenv=g_getenv("XDG_CONFIG_HOME"))) { Lpath = g_strdup_printf("%s/%s/%s.conf", Lenv, PACKAGE, PACKAGE); Lnewlist = g_slist_append(Lnewlist, Lpath); } else if ((Lenv=g_getenv("HOME"))) { Lpath = g_strdup_printf("%s/.config/%s/%s.conf", Lenv, PACKAGE, PACKAGE); Lnewlist = g_slist_append(Lnewlist, Lpath); } if ((Lenv = g_getenv("XDG_CONFIG_DIRS"))) { Llistpath = g_strsplit(Lenv, ":", 0); for (i=0; Llistpath[i]; i++) { if (!*Llistpath[i]) continue; // on ignore les entrees vides Lpath = g_strdup_printf("%s/%s/%s.conf", Llistpath[i], PACKAGE, PACKAGE); Lnewlist = g_slist_append(Lnewlist, Lpath); // if( TRUE == OptionsCommandLine.BoolVerboseMode ) // g_print( "Lpath = %s\n", Lpath ); } g_strfreev(Llistpath); } else { Lpath = g_strdup_printf("/etc/xdg/%s/%s.conf", PACKAGE, PACKAGE); Lnewlist = g_slist_append(Lnewlist, Lpath); } return Lnewlist; } // // gchar *xdg_search_config_xdg( void ) { GSList *Lthemesemp = xdg_get_config_path(); GSList *Lcur; gchar *Name = NULL; gboolean BoolExist = FALSE; // if( TRUE == OptionsCommandLine.BoolVerboseMode ) { // g_print( "\n" ); // g_print ("%s :: %s (line = %d)\n", __FILE__, __FUNCTION__, __LINE__); // } for (Lcur = Lthemesemp; Lcur && Lcur->data; Lcur = Lcur->next) { Name = g_strdup( (gchar *)Lcur->data ); BoolExist = libutils_test_file_exist( Name ); // if( TRUE == OptionsCommandLine.BoolVerboseMode ) // g_print( "\t%s NameSearch = %s\n", BoolExist ? "TRUE " : "FALSE", Name ); if( TRUE == BoolExist ) break; g_free( Name ); Name = NULL; } // SI NameFile N'EXISTE PAS ALORS SELECTION DE LA PREMIERE ENTREE if( FALSE == BoolExist ) { Lcur = Lthemesemp; Name = g_strdup( (gchar *)Lcur->data ); } // if( TRUE == OptionsCommandLine.BoolVerboseMode ) // g_print( "\n" ); Lthemesemp = xdg_remove_gslist( Lthemesemp ); return( (gchar *)Name ); } // // void xdg_print_list_config_path( void ) { if( TRUE == OptionsCommandLine.BoolVerboseMode ) { GSList *Lcur; GSList *Lthemesemp = xdg_get_config_path(); g_print( "\n" ); g_print( "%s :: %s (line = %d)\n", __FILE__, __FUNCTION__, __LINE__); g_print( "!---------------------------------------------\n" ); g_print( "! FreeDesktop integration\n" ); g_print( "!---------------------------------------------\n" ); g_print( "! http://www.freedesktop.org/wiki/\n" ); g_print( "! http://fr.wikipedia.org/wiki/Freedesktop.org\n" ); g_print( "!---------------------------------------------\n" ); for (Lcur = Lthemesemp; Lcur && Lcur->data; Lcur = Lcur->next) { g_print( "\tLcur->data = %s\n", (gchar *)Lcur->data ); } Lthemesemp = xdg_remove_gslist( Lthemesemp ); } } xcfa-4.3.6/lib/file_is.c0000644000175000017500000004470412122564065011726 00000000000000 /* * file : lib/file_is.c * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - Creation d'une base de programmation en langage C de type GNU avec les autotools * GNU General Public License * * This file is part of XCFA. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * OLD ADRESS: * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * NEW ADRESS: * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #ifdef ENABLE_NLS #include #define _(String) gettext (String) #endif #include #include #include #include #include #include "lib.h" /* SAUF AAC DTS M4A WMA */ // FILE IS VIDM4A ? // gboolean FileIs_vidm4a( gchar *namefile ) { FILE *fp = NULL; gchar *buf = NULL; gint cpt; gboolean bool_signature = FALSE; if( (buf = (gchar *)g_malloc0 (sizeof(gchar) * 2048)) == NULL ) return (FALSE); if( (fp = fopen (namefile, "rb")) != NULL ) { fread( buf, 1, 2000, fp ); fclose (fp); } for (cpt = 0; cpt < 2000; cpt ++ ) { if( buf [ cpt + 0 ] == 0x6D && // m buf [ cpt + 1 ] == 0x6F && // o buf [ cpt + 2 ] == 0x6F && // o buf [ cpt + 3 ] == 0x76 && // v buf [ cpt + 4 ] == 0x00 && // \0 buf [ cpt + 5 ] == 0x00 && // \0 buf [ cpt + 6 ] == 0x00 && // \0 buf [ cpt + 7 ] == 0x6C && // l buf [ cpt + 8 ] == 0x6D && // m buf [ cpt + 9 ] == 0x76 && // v buf [ cpt + 10 ] == 0x68 && // h buf [ cpt + 11 ] == 0x64 ) { // d bool_signature = TRUE; break; } } return( bool_signature ); } // FILE IS M4A ? // gboolean FileIs_m4a( gchar *namefile ) { FILE *fp = NULL; gchar *buf = NULL; gint cpt; gboolean bool_signature = FALSE; if( (buf = (gchar *)g_malloc0 (sizeof(gchar) * 2048)) == NULL ) return (FALSE); if( (fp = fopen (namefile, "rb")) != NULL ) { fread( buf, 1, 2000, fp ); fclose (fp); } for (cpt = 0; cpt < 2000; cpt ++ ) { if( buf [ cpt + 0 ] == 'l' && buf [ cpt + 1 ] == 'i' && buf [ cpt + 2 ] == 'b' && buf [ cpt + 3 ] == 'f' && buf [ cpt + 4 ] == 'a' && buf [ cpt + 5 ] == 'a' && buf [ cpt + 6 ] == 'c' ){ bool_signature = TRUE; break; } } return( bool_signature ); } // FILE IS WAV ? // gboolean FileIs_wavpack (gchar *namefile) { FILE *fp = NULL; gchar str [ 42 ] = {'\0','\0','\0','\0','\0','\0','\0','\0'}; if ((fp = fopen (namefile, "rb")) != NULL) { fread (&str[0], 1, 40, fp); fclose (fp); } if (str [0] == 'w' && str [1] == 'v' && str [2] == 'p' && str [3] == 'k' && str [34] == 'R' && str [35] == 'I' && str [36] == 'F' && str [37] == 'F') return (TRUE); return (FALSE); } // FILE IS WAV ? // typedef struct { // entete fichier WAV */ gchar tag1[ 5 ]; // ( 4 octets) : Constante "RIFF" guint32 size1; // ( 4 octets) : Taille du fichier gchar tag2 [ 15 ]; // (14 octets) : Constante "WAVEfmt " guint16 mode; // ( 2 octets) : Mode (1 pour mono ou 2 pour stereo) guint32 freq; // ( 4 octets) : Frequence d'échantillonage (en Hertz) guint32 bytepersec; // ( 4 octets) : Nombre de bits par seconde de musique guint16 nbrbyte; // ( 2 octets) : Nombre d'octets par échantillon guint16 format; // ( 2 octets) : Nombre de bits par donnée guint32 tag3; // ( 4 octets) : Constante "data" guint32 size2; // ( 4 octets) : Taille du fichier moins 116 octets } HEADER_WAV; gboolean FileIs_wav (gchar *namefile) { FILE *fp = NULL; HEADER_WAV buf; if ((fp = fopen (namefile, "r")) == NULL) return (FALSE); fread(&buf.tag1, 1, 4, fp); buf.tag1 [ 4 ] = '\0'; fread(&buf.tag2, 1, 4, fp); fread(&buf.tag2, 1, 14, fp); fclose (fp); if ((buf.tag1 [ 0 ] == 'R' && buf.tag1 [ 1 ] == 'I' && buf.tag1 [ 2 ] == 'F' && buf.tag1 [ 3 ] == 'F') && (buf.tag2 [ 0 ] == 'W' && buf.tag2 [ 1 ] == 'A' && buf.tag2 [ 2 ] == 'V' && buf.tag2 [ 3 ] == 'E')) return (TRUE); return (FALSE); } // FILE IS SHN ? // gboolean FileIs_shn (gchar *namefile) { FILE *fp = NULL; gchar str [ 8 ] = {'\0','\0','\0','\0','\0','\0','\0','\0'}; if ((fp = fopen (namefile, "rb")) != NULL) { fread (&str[0], 1, 4, fp); fclose (fp); } if (str [0] == 'a' && str [1] == 'j' && str [2] == 'k' && str [3] == 'g') return (TRUE); return (FALSE); } // FILE IS RM ? // /* $ file *.rm audio01.rm: RealMedia file audio02.rm: RealMedia file en tête fichier RM --- DEC --- --- HEX --- [ 00 01 02 03 ] 2e 52 4d 46 = .RMF [ 18 19 20 21 ] 50 52 4f 50 = PROP */ gboolean FileIs_rm (gchar *namefile) { FILE *fp = NULL; gchar *buf = NULL; gboolean bool_signature = FALSE; /*PRINT_FUNC_LF();*/ buf = (gchar *)g_malloc0 (sizeof(gchar) * 512); if ((fp = fopen (namefile, "rb")) != NULL) { fread (buf, 1, 500, fp); fclose (fp); if (buf [ 0 ] == 0x2e && // . buf [ 1 ] == 0x52 && // R buf [ 2 ] == 0x4d && // M buf [ 3 ] == 0x46 && // F buf [ 18 ] == 0x50 && // P buf [ 19 ] == 0x52 && // R buf [ 20 ] == 0x4f && // O buf [ 21 ] == 0x50) { // P bool_signature = TRUE; } } g_free (buf); buf = NULL; return (bool_signature); } // FILE IS OGG ? // gboolean FileIs_ogg (gchar *namefile) { FILE *fp = NULL; gchar *buf = NULL; gint cpt; gboolean bool_signature = FALSE; if ((buf = (gchar *)g_malloc0 (sizeof(gchar) * 2048)) == NULL) return (FALSE); if ((fp = fopen (namefile, "rb")) != NULL) { fread (buf, 1, 2000, fp); fclose (fp); } for (cpt = 0; cpt < 2000; cpt ++) { if (buf [ cpt + 0 ] == 'O' && buf [ cpt + 1 ] == 'g' && buf [ cpt + 2 ] == 'g' && buf [ cpt + 3 ] == 'S') { bool_signature = TRUE; break; } } if (bool_signature == TRUE) { bool_signature = FALSE; for (cpt = 0; cpt < 2000; cpt ++) { if (buf [ cpt + 3 ] == 'v' && buf [ cpt + 4 ] == 'o' && buf [ cpt + 5 ] == 'r' && buf [ cpt + 6 ] == 'b' && buf [ cpt + 7 ] == 'i' && buf [ cpt + 8 ] == 's'){ bool_signature = TRUE; break; } } } g_free (buf); buf = NULL; return (bool_signature); } // FILE IS MPC ? // gboolean FileIs_mpc (gchar *namefile) { FILE *fp = NULL; gchar *buf = NULL; gint cpt; gboolean bool_signature = FALSE; /*PRINT_FUNC_LF();*/ buf = (gchar *)g_malloc0 (sizeof(gchar) * 1034); if((fp = fopen (namefile, "rb")) != NULL) { fread (buf, 1, 1024, fp); fclose (fp); } // // MPCKSH // for (cpt = 0; cpt < 1024; cpt ++) { if ( buf [ cpt + 0 ] == 0x4d && // M buf [ cpt + 1 ] == 0x50 && // P buf [ cpt + 2 ] == 0x2b // + ) { bool_signature = TRUE; break; } } if (FALSE == bool_signature) { for (cpt = 0; cpt < 1024; cpt ++) { if ( buf [ cpt + 0 ] == 0x4d && // M buf [ cpt + 1 ] == 0x50 && // P buf [ cpt + 2 ] == 0x43 && // C buf [ cpt + 3 ] == 0x4b && // K buf [ cpt + 4 ] == 0x53 && // S buf [ cpt + 5 ] == 0x48 // H ) { bool_signature = TRUE; break; } } } g_free (buf); buf = NULL; return (bool_signature); } // FILE IS AC3 ? // gboolean FileIs_ac3 (gchar *namefile) { FILE *fp = NULL; gchar *buf = NULL; gboolean BoolSignature = FALSE; /*PRINT_FUNC_LF();*/ buf = (gchar *)g_malloc0 (sizeof(gchar) * 100); if((fp = fopen (namefile, "rb")) != NULL) { fread (buf, 1, 50, fp); fclose (fp); } if (buf[0] == 0x0b && buf[1] == 0x77) { BoolSignature = TRUE; } g_free (buf); buf = NULL; return (BoolSignature); } // FILE IS MP3 ? // typedef struct { gchar magic[ 3 ]; gchar songname[ 30 ]; gchar artist[ 30 ]; gchar album[ 30 ]; gchar year[ 4 ]; gchar note[ 28 ]; unsigned char nnull; unsigned char track; unsigned char style; } ID3TAG; gboolean FileIs_mp3 (gchar *namefile) { FILE *fp = NULL; gchar *buf = NULL; ID3TAG begin; ID3TAG end; gboolean bool_signature = FALSE; gint i; size_t size; // PRINT_FUNC_LF(); fp = fopen (namefile, "rb"); if (NULL == fp) return (FALSE); fread ( &begin, 128, 1, fp ); fseek ( fp, 0, SEEK_END ); fseek ( fp, ftell( fp ) - 128, SEEK_SET ); fread ( &end, 128, 1, fp ); fclose (fp); // TEST SI FICHIER EST: AC3 // OCTET 0 OCTET 1 // 76543210 76543210 // 00001011 01110111 // 0b 77 // 11 119 if (begin.magic[0] == 0x0b && begin.magic[1] == 0x77) { return (FALSE); } if (begin.magic[0] == 'I' && begin.magic[1] == 'D' && begin.magic[2] == '3') return (TRUE); if (end.magic[0] == 'T' && end.magic[1] == 'A' && end.magic[2] == 'G') return (TRUE); size = libutils_get_size_file (namefile); buf = g_malloc0 (sizeof (gchar) * (size + 10)); if ((fp = fopen (namefile, "rb"))) { fread (buf, 1, size, fp); fclose (fp); for (i = 0; i < size; i ++) { if (buf[i+0] == 'L' && buf[i+1] == 'A' && buf[i+2] == 'M' && buf[i+3] == 'E') { bool_signature = TRUE; break; } } } // // http://mgc99.free.fr/InfoMP3.html // // // La partie "audio" du MP3 commence par un entête de 4 octets. Ces 4 octets donnent des informations sur le type de MP3. // Cet entête se trouve après les tag ID3 v2 s'il y en a. Il n'a pas de position précise dans le fichier, il faut le chercher. // Il commence toujours par une série de 11 bits à 1 (FF Ex xx xx ou FF Fx xx xx). // 1111 1111 - 111B BCCD - EEEE FFGH - IIJJ KLMM // BB version de MPEG (11-v1, 10-v2, 01-reserved, 00-v2.5) // CC numéro de layer (11-layer 1, 10-layer 2, 01-layer 3, 00-reserved) // D protection bit (0 protection par CRC, 2 octets suive l'entête. 1 pas de protection) // EEEE bitrate index. // FF sampling rate frequency index. // G padding bit. // H private bit. // II chanel mode (11-single channel, 10-dual channel, 01-joint stéréo, 00-stéréo) // JJ mode extention seulement si "joint stéréo" // K copyright (1 copyright, 0 pas de copyright). // L original (1 original, 0 copie) // MM emphasis (11-CCIT J.17, 10-reserved, 01-50/15ms, 00-none) // /* if (FALSE == bool_signature) { for (i = 0; i < size; i ++) { Dummy = buf[i+0] + buf[i+1]; Dummy &= 0x011111111111; if (0x011111111111 == Dummy) { bool_signature = TRUE; g_print("ICI EST MP3\n"); g_print("\tsize = %lu\n", size ); g_print("\ti = %d\n", i ); break; } } } */ g_free (buf); buf = NULL; return (bool_signature); } // FILE IS FLAC ? // gboolean FileIs_flac (gchar *namefile) { FILE *fp = NULL; gchar *buf = NULL; gint cpt; gboolean bool_signature = FALSE; /*PRINT_FUNC_LF();*/ buf = (gchar *)g_malloc0 (sizeof(gchar) * 5124); if ((fp = fopen (namefile, "rb")) != NULL) { fread (buf, 1, 5120, fp); fclose (fp); } for (cpt = 0; cpt < 5120; cpt ++) { if (buf [ cpt + 0 ] == 0x66 && /* 'f' */ buf [ cpt + 1 ] == 0x4c && /* 'L' */ buf [ cpt + 2 ] == 0x61 && /* 'a' */ buf [ cpt + 3 ] == 0x43) { /* 'C' */ bool_signature = TRUE; break; } } g_free (buf); buf = NULL; return (bool_signature); } /***************************************************************************************** APE header that all APE files have in common (old and new) ***************************************************************************************** struct APE_COMMON_HEADER { char cID[4]; should equal 'MAC ' uint16 nVersion; version number * 1000 (3.81 = 3810) }; ***************************************************************************************** APE header structure for old APE files (3.97 and earlier) ***************************************************************************************** struct APE_HEADER_OLD { char cID[4]; should equal 'MAC ' uint16 nVersion; version number * 1000 (3.81 = 3810) uint16 nCompressionLevel; the compression level uint16 nFormatFlags; any format flags (for future use) uint16 nChannels; the number of channels (1 or 2) uint32 nSampleRate; the sample rate (typically 44100) uint32 nHeaderBytes; the bytes after the MAC header that compose the WAV header uint32 nTerminatingBytes; the bytes after that raw data (for extended info) uint32 nTotalFrames; the number of frames in the file uint32 nFinalFrameBlocks; the number of samples in the final frame }; *****************************************************************************************/ // FILE IS APE ? // // le prg 'file' est leurré par un tag id3 et ne reconnait qu'un mp3 !!! // il faut lire 05 ko de datas // bug signalé par @patachonf depuis: // http://forum.ubuntu-fr.org/viewtopic.php?pid=3739121#p3739121 // [ resolu ] gboolean FileIs_ape (gchar *namefile) { FILE *fp = NULL; gchar *buf = NULL; gint cpt; gboolean bool_signature = FALSE; /*PRINT_FUNC_LF();*/ buf = (gchar *)g_malloc0 (sizeof(gchar) * 5120); if ((fp = fopen (namefile, "rb")) != NULL) { fread (buf, 1, 5000, fp); fclose (fp); for (cpt = 0; cpt < 5000; cpt ++) { if (buf [ cpt + 0 ] == 0x4d && /* 'M' */ buf [ cpt + 1 ] == 0x41 && /* 'A' */ buf [ cpt + 2 ] == 0x43 && /* 'C' */ buf [ cpt + 3 ] == 0x20) { /* ' ' */ bool_signature = TRUE; break; } } } g_free (buf); buf = NULL; return (bool_signature); } // FILE IS AIFF ? // /* POS ASCII HEXA 00 F 46 01 O 4f 02 R 52 03 M 4d 04 05 06 07 08 A 41 09 I 49 10 F 46 11 F 46 12 C 43 13 O 4f 14 M 4d 15 M 4d */ gboolean FileIs_aiff (gchar *namefile) { FILE *fp = NULL; gchar *buf = NULL; gboolean bool_signature = FALSE; /*PRINT_FUNC_LF();*/ buf = (gchar *)g_malloc0 (sizeof(gchar) * 512); if ((fp = fopen (namefile, "rb")) != NULL) { fread (buf, 1, 500, fp); fclose (fp); if (buf [ 0 ] == 0x46 && // F buf [ 1 ] == 0x4f && // O buf [ 2 ] == 0x52 && // R buf [ 3 ] == 0x4d && // M buf [ 8 ] == 0x41 && // A buf [ 9 ] == 0x49 && // I buf [ 10 ] == 0x46 && // F buf [ 11 ] == 0x46 && // F buf [ 12 ] == 0x43 && // C buf [ 13 ] == 0x4f && // O buf [ 14 ] == 0x4d && // M buf [ 15 ] == 0x4d) { // M bool_signature = TRUE; } } g_free (buf); buf = NULL; return (bool_signature); } // FILE IS DTS ? // gboolean FileIs_dts (gchar *namefile) { gboolean bool_signature = FALSE; gchar Ext [ 8 ] = {'\0','\0','\0','\0','\0','\0','\0','\0',}; gchar *Ptr; /* PRINT_FUNC_LF(); */ Ptr = strrchr (namefile, '/'); if (Ptr) { Ptr = strrchr (Ptr, '.'); if (Ptr) { Ptr++; if (*Ptr) Ext [0] = toupper (*Ptr++); if (*Ptr) Ext [1] = toupper (*Ptr++); if (*Ptr) Ext [2] = toupper (*Ptr++); if (*Ptr) Ext [3] = toupper (*Ptr); Ext [4] = '\0'; if (Ext[0] == 'D' && Ext[1] == 'T' && Ext[2] == 'S' && Ext[3] == '\0') bool_signature = TRUE; } } return (bool_signature); } // FILE IS "gchar *Suffixe" // gboolean FileIs_g_str_has_suffix (gchar *NameSong, gchar *Suffixe) { gchar *Ptr; gchar *Name = NULL; gchar *Ext = NULL; gboolean BoolRet = FALSE; /* PRINT_FUNC_LF(); */ if (NameSong == NULL || Suffixe == NULL) return (FALSE); Ptr = strrchr (NameSong, '/'); if (Ptr) { Ptr = strrchr (Ptr, '.'); if (Ptr) { Name = g_strdup (NameSong); Ptr = strrchr (Name, '.'); Ptr ++; while (*Ptr) { *Ptr = toupper (*Ptr); Ptr ++; } Ext = g_strdup (Suffixe); for (Ptr = Ext; *Ptr; Ptr ++) *Ptr = toupper (*Ptr); BoolRet = g_str_has_suffix (Name, Ext); g_free (Ext); Ext = NULL; g_free (Name); Name = NULL; } } return (BoolRet); } // FILE IS PNG ? // gboolean FileIs_png (gchar *namefile) { FILE *fp = NULL; gchar *buf = NULL; gint cpt; gboolean bool_signature = FALSE; /*PRINT_FUNC_LF();*/ buf = (gchar *)g_malloc0 (sizeof(gchar) * 5124); if ((fp = fopen (namefile, "rb")) != NULL) { fread (buf, 1, 5120, fp); fclose (fp); } for (cpt = 0; cpt < 5120; cpt ++) { if( buf [ cpt + 0 ] == 0x50 && // 'P' buf [ cpt + 1 ] == 0x4E && // 'N' buf [ cpt + 2 ] == 0x47 // 'G' ) { bool_signature = TRUE; break; } } g_free (buf); buf = NULL; return (bool_signature); } // // gboolean FileIs_image( gchar *PathNameFile ) { GdkPixbuf *PixBuf = NULL; if( NULL != PathNameFile ) { if( NULL != ( PixBuf = gdk_pixbuf_new_from_file( PathNameFile, NULL ))) { g_object_unref( PixBuf ); return( TRUE ); } } return( FALSE ); } // // FILE IS JPG / JPEG ? // L'EXTENTION 'JPG' OU 'JPEG' OBLIGATOIRE // ([ BYTE 00 ] & 0xd8ff ) == 0xd8ff // gboolean FileIs_jpg( gchar *p_PathName ) { gchar *PtrExtPathName = NULL; gchar *StrExtPathName = NULL; FILE *fp = NULL; guint buf[ 4 ] = { 0,0,0,0 }; gboolean BoolRet = FALSE; // TEST PARAMETRE if( NULL != p_PathName && NULL != ( PtrExtPathName = strrchr( p_PathName, '.' ))) { PtrExtPathName ++; if( strlen( PtrExtPathName ) >= 3 ) { StrExtPathName = g_strdup( PtrExtPathName ); PtrExtPathName = StrExtPathName; // EXTENTIONS TO UPPER while( *PtrExtPathName ) { *PtrExtPathName = g_unichar_toupper( *PtrExtPathName ); PtrExtPathName ++; } if( 0 == g_ascii_strncasecmp( StrExtPathName, "JPG", 3 ) || 0 == g_ascii_strncasecmp( StrExtPathName, "JPEG", 4 ) ) { if( NULL != ( fp = g_fopen( p_PathName, "rb" ))) { fread (buf, 1, 2, fp); fclose( fp ); if( (buf [ 0 ] & 0xd8ff ) == 0xd8ff ) BoolRet = TRUE; } } g_free( StrExtPathName ); StrExtPathName = NULL; } } return( BoolRet ); } xcfa-4.3.6/lib/Makefile.in0000644000175000017500000003475312224542373012221 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = lib DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LIBRARIES = $(noinst_LIBRARIES) AR = ar ARFLAGS = cru AM_V_AR = $(am__v_AR_$(V)) am__v_AR_ = $(am__v_AR_$(AM_DEFAULT_VERBOSITY)) am__v_AR_0 = @echo " AR " $@; AM_V_at = $(am__v_at_$(V)) am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) am__v_at_0 = @ lib_a_AR = $(AR) $(ARFLAGS) lib_a_LIBADD = am_lib_a_OBJECTS = lib.$(OBJEXT) combo.$(OBJEXT) file_is.$(OBJEXT) \ utf8.$(OBJEXT) xdg.$(OBJEXT) lib_a_OBJECTS = $(am_lib_a_OBJECTS) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_$(V)) am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) am__v_CC_0 = @echo " CC " $@; CCLD = $(CC) LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_$(V)) am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) am__v_CCLD_0 = @echo " CCLD " $@; AM_V_GEN = $(am__v_GEN_$(V)) am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(lib_a_SOURCES) DIST_SOURCES = $(lib_a_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PREFIX = @INSTALL_PREFIX@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_CFLAGS = @PACKAGE_CFLAGS@ PACKAGE_LIBS = @PACKAGE_LIBS@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ # # lib/Makefile.am # AUTOMAKE_OPTIONS = gnu AM_CPPFLAGS = \ -DPACKAGE_DATA_DIR=\""$(datadir)"\" \ -DPACKAGE_LOCALE_DIR=\""$(prefix)/$(DATADIRNAME)/locale"\" \ -DPIXMAPS_DIR=\""$(datadir)/pixmaps/xcfa"\" \ @PACKAGE_CFLAGS@ AM_CFLAGS = @PACKAGE_CFLAGS@ \ -DDATA_DIR=\""$(datadir)"\" \ -DLOCALE_DIR=\""$(datadir)/locale"\" \ -DPIXMAPS_DIR=\""$(datadir)/pixmaps/xcfa"\" noinst_LIBRARIES = lib.a lib_a_SOURCES = lib.c combo.c file_is.c utf8.c xdg.c lib.h all: all-am .SUFFIXES: .SUFFIXES: .c .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu lib/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu lib/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstLIBRARIES: -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES) $(AM_V_at)-rm -f lib.a $(AM_V_AR)$(lib_a_AR) lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD) $(AM_V_at)$(RANLIB) lib.a mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/combo.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file_is.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/utf8.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xdg.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LIBRARIES) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-noinstLIBRARIES ctags distclean distclean-compile \ distclean-generic distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: xcfa-4.3.6/lib/combo.c0000644000175000017500000000746612122564065011417 00000000000000 /* * file : lib/combo.h * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - Creation d'une base de programmation en langage C de type GNU avec les autotools * GNU General Public License * * This file is part of XCFA. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * OLD ADRESS: * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * NEW ADRESS: * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #ifdef ENABLE_NLS #include #define _(String) gettext (String) #endif #include #include #include #include #include #include #include #include #include "lib.h" typedef struct { GtkComboBox *combo; gboolean Bool; } ALLOC; GList *ListAlloc = NULL; // REMOVE ALLOC COMBO // void libcombo_remove (void) { GList *list = NULL; ALLOC *New = NULL; gint NbList = 0; list = g_list_first (ListAlloc); while (list) { if (NULL != (New = (ALLOC *)list->data)) { g_free (New); New = NULL; list->data = NULL; NbList ++; } list = g_list_next (list); } g_list_free (ListAlloc); ListAlloc = NULL; if( TRUE == OptionsCommandLine.BoolVerboseMode ) g_print ("\tRemove: %d\n", NbList); } // ALLOC COMBO // void libcombo_alloc (GtkComboBox *p_combo) { GtkListStore *store = NULL; GtkCellRenderer *renderer = NULL; GList *list = NULL; ALLOC *New = NULL; gboolean BoolInListe = FALSE; // CHERCHE SI PAS DANS LA LISTE list = g_list_first (ListAlloc); while (list) { if ((New = (ALLOC *)list->data) != NULL) { if (New->combo == p_combo) { BoolInListe = TRUE; break; } } list = g_list_next (list); } // SI PAS DANS LA LISTE ALORS INSERTION if (BoolInListe == FALSE) { New = (ALLOC *)g_malloc0 (sizeof(ALLOC)); New->combo = p_combo; New->Bool = FALSE; ListAlloc = g_list_append (ListAlloc, New); } // RECUP OU CREATION DE store list = g_list_first (ListAlloc); while (list) { if ((New = (ALLOC *)list->data) != NULL) { if (New->combo == p_combo) { if (New->Bool == FALSE) { store = gtk_list_store_new (1, G_TYPE_STRING); gtk_combo_box_set_model (GTK_COMBO_BOX(p_combo), GTK_TREE_MODEL(store)); renderer = gtk_cell_renderer_text_new (); gtk_cell_layout_pack_start (GTK_CELL_LAYOUT(p_combo), renderer, TRUE); gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT(p_combo), renderer, "text", 0, NULL); New->Bool = TRUE; } else { store = GTK_LIST_STORE (gtk_combo_box_get_model(p_combo)); gtk_list_store_clear (store); } break; } } list = g_list_next (list); } } // OPTIONS REMOVE COMBO // libcombo_remove_options (GTK_COMBO_BOX ()); // void libcombo_remove_options (GtkComboBox *p_combo) { gint Index; while (TRUE) { Index = gtk_combo_box_get_active (GTK_COMBO_BOX (p_combo)); if (Index == -1) break; gtk_combo_box_remove_text (GTK_COMBO_BOX (p_combo), Index); gtk_combo_box_set_active (GTK_COMBO_BOX (p_combo), 0); } } xcfa-4.3.6/lib/lib.h0000644000175000017500000001032512122564067011061 00000000000000 /* * file : lib/lib.h * project : xcfa * with : Gtk-2 * * copyright : (C) 2003 - 2013 by Claude Bulin * * xcfa - GTK+ implementation of the GNU shell command * GNU General Public License * * This file is part of XCFA. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * OLD ADRESS: * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * NEW ADRESS: * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * */ #ifndef libH_h #define libH_h 1 // /usr/include/gtk-2.0/gdk/gdkkeysyms.h typedef struct { gboolean BoolVerboseMode; gboolean BoolVersionMode; gboolean BoolHelpMode; } OPTIONS_COMMAND_LINE; extern OPTIONS_COMMAND_LINE OptionsCommandLine; extern GdkColor YellowColor; // FILE_IS.C // gboolean FileIs_vidm4a( gchar *namefile ); gboolean FileIs_m4a( gchar *namefile ); gboolean FileIs_wavpack (gchar *namefile); gboolean FileIs_wav (gchar *namefile); gboolean FileIs_shn (gchar *namefile); gboolean FileIs_rm (gchar *namefile); gboolean FileIs_ogg (gchar *namefile); gboolean FileIs_mpc (gchar *namefile); gboolean FileIs_ac3 (gchar *namefile); gboolean FileIs_mp3 (gchar *namefile); gboolean FileIs_flac (gchar *namefile); gboolean FileIs_ape (gchar *namefile); gboolean FileIs_aiff (gchar *namefile); gboolean FileIs_dts (gchar *namefile); gboolean FileIs_g_str_has_suffix (gchar *NameSong, gchar *Suffixe); gboolean FileIs_png( gchar *namefile ); gboolean FileIs_jpg( gchar *namefile ); gboolean FileIs_image( gchar *PathNameFile ); // LIB.C // gchar *libutils_dup_chomp( gchar *p_str ); gchar *libutils_chomp( gchar *p_str ); gchar *libutils_get_prefix (gchar *PathNameFile); gboolean libutils_access_mode (gchar *PathNameFile); gboolean libutils_test_file_exist (gchar *File); gboolean libutils_test_dir_exist (gchar *File); void libutils_set_default_icone_to_win (GtkWidget *win); gboolean libutils_find_file (gchar *p_find_file); gchar *libutils_get_pathname_pixmaps (gchar *p_name_pixmap); gint libutils_hexa_to_int (gchar *Ptr_Hexa); GList *libutils_remove_glist (GList *New); GSList *libutils_remove_gslist (GSList *New); size_t libutils_get_size_file (gchar *PathName); void libutils_add_datas_on_disk (gchar *data); gchar *libutils_get_datas_on_disk (void); gboolean libutils_test_write (gchar *path); GdkPixbuf *libutils_init_pixbufs (gchar *NameFilePixbuf); gchar *libutils_get_pathname_with_new_ext (gchar *PathName, gchar *NewExt); gboolean libutils_test_file_with_new_ext_exist (gchar *PathName, gchar *NewExt); gint libutils_get_first_line_is_selected( GtkTreeSelection *AdrLine, GtkTreeModel *AdrTreeModel ); gchar *libutils_get_name_without_ext_with_amp( gchar *p_PathNameFile ); gchar *libutils_get_name_without_ext( gchar *p_PathNameFile ); gchar *libutils_create_temporary_rep (gchar *SrcTmp, gchar *NewRepTmp); gchar *libutils_remove_temporary_rep (gchar *path_tmprep); gint libutils_getNbProcess( gchar *p_NameFile ); gchar *libutils_string_toupper( gchar *p_str ); // COMBO.C // void libcombo_remove (void); void libcombo_alloc (GtkComboBox *p_combo); void libcombo_remove_options (GtkComboBox *p_combo); // UTF8.C // gchar *utf8_convert_from_utf8 (const char *string); gchar *utf8_convert_to_utf8 (const gchar *string); gchar *utf8_removediacritics( const gchar *str, gssize len ); gchar *utf8_eperluette_name( gchar *p_name ); // XDG.C // void xdg_print_list_config_path( void ); void xdg_print_list_data_path( void ); gchar *xdg_search_config_xdg( void ); gchar *xdg_search_data_xdg( gchar *NameFile ); #endif xcfa-4.3.6/mime/0000755000175000017500000000000012224542445010401 500000000000000xcfa-4.3.6/mime/Makefile.am0000644000175000017500000000017012223606365012354 00000000000000# # mime/Makefile.am # AUTOMAKE_OPTIONS= gnu EXTRA_DIST = xcfa mime_DATA = xcfa mimedir = $(prefix)/lib/mime/packages xcfa-4.3.6/mime/Makefile.in0000644000175000017500000002722712224542373012400 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = mime DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_GEN = $(am__v_GEN_$(V)) am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) am__v_GEN_0 = @echo " GEN " $@; AM_V_at = $(am__v_at_$(V)) am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) am__v_at_0 = @ SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(mimedir)" DATA = $(mime_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PREFIX = @INSTALL_PREFIX@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_CFLAGS = @PACKAGE_CFLAGS@ PACKAGE_LIBS = @PACKAGE_LIBS@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ # # mime/Makefile.am # AUTOMAKE_OPTIONS = gnu EXTRA_DIST = xcfa mime_DATA = xcfa mimedir = $(prefix)/lib/mime/packages all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu mime/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu mime/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-mimeDATA: $(mime_DATA) @$(NORMAL_INSTALL) test -z "$(mimedir)" || $(MKDIR_P) "$(DESTDIR)$(mimedir)" @list='$(mime_DATA)'; test -n "$(mimedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(mimedir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(mimedir)" || exit $$?; \ done uninstall-mimeDATA: @$(NORMAL_UNINSTALL) @list='$(mime_DATA)'; test -n "$(mimedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(mimedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(mimedir)" && rm -f $$files tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(mimedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-mimeDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-mimeDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic distclean \ distclean-generic distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-mimeDATA install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic pdf pdf-am ps ps-am uninstall \ uninstall-am uninstall-mimeDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: xcfa-4.3.6/mime/xcfa0000644000175000017500000000120511730643614011164 00000000000000application/ogg; xcfa '%s'; edit=xcfa '%s'; test=test "$DISPLAY" != ""; priority=2 audio/basic; xcfa '%s'; edit=xcfa '%s'; test=test "$DISPLAY" != ""; priority=2 audio/mpeg; xcfa '%s'; edit=xcfa '%s'; test=test "$DISPLAY" != ""; priority=2 audio/x-aiff; xcfa '%s'; edit=xcfa '%s'; test=test "$DISPLAY" != ""; priority=2 audio/x-wav; xcfa '%s'; edit=xcfa '%s'; test=test "$DISPLAY" != ""; priority=2 application/x-flac; xcfa '%s'; edit=xcfa '%s'; test=test "$DISPLAY" != ""; priority=2 audio/x-flac; xcfa '%s'; edit=xcfa '%s'; test=test "$DISPLAY" != ""; priority=2 audio/x-mp3; xcfa '%s'; edit=xcfa '%s'; test=test "$DISPLAY" != ""; priority=2 xcfa-4.3.6/m4/0000755000175000017500000000000012224542443007770 500000000000000xcfa-4.3.6/m4/ChangeLog0000644000175000017500000000061511400750707011463 000000000000002010-05-31 gettextize * gettext.m4: New file, from gettext-0.17. * iconv.m4: New file, from gettext-0.17. * lib-ld.m4: New file, from gettext-0.17. * lib-link.m4: New file, from gettext-0.17. * lib-prefix.m4: New file, from gettext-0.17. * nls.m4: New file, from gettext-0.17. * po.m4: New file, from gettext-0.17. * progtest.m4: New file, from gettext-0.17. xcfa-4.3.6/po/0000755000175000017500000000000012224542444010067 500000000000000xcfa-4.3.6/po/it.po0000644000175000017500000021333012224542443010764 00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Free Software Foundation, Inc. # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: xcfa 4.2.8\n" "Report-Msgid-Bugs-To: xcfa@tuxfamily.org\n" "POT-Creation-Date: 2013-10-07 16:28+0200\n" "PO-Revision-Date: 2010-08-29 13:04+0200\n" "Last-Translator: BULIN Claude xcfa@tuxfamily.org\n" "Language-Team: French <>\n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: src/cd_audio.c:812 src/dvd.c:680 src/dvd.c:1324 msgid "MPLAYER deja en action" msgstr "MPLAYER già in azione" #: src/cd_audio.c:813 src/dvd.c:681 src/dvd.c:1325 msgid "MPLAYER est deja utilise !!" msgstr "MPlayer è già in uso !!" #: src/cd_audio.c:1224 src/cd_audio.c:1230 src/dvd.c:867 src/file.c:2829 msgid "(Click Droit = Menu) / En attente de selection." msgstr "(Clic Destro = Menu) / In attesa di selezione." #: src/cd_audio.c:1227 src/file.c:2826 msgid "Le programme externe d'extraction est absent." msgstr "Il programma esterno per l'estrazione non è installato" #: src/cd_audio.c:1233 src/file.c:2832 msgid "(Click Droit = Menu) / En attente de selection. Le fichier existe." msgstr "(Clic Destro = Menu) / In attesa di selezione. Il file esiste già." #: src/cd_audio.c:1236 src/file.c:2835 msgid "(Click Droit = Menu) / En selection." msgstr "(Clic Destro = Menu) / Selezionato." #: src/cd_audio.c:1239 src/file.c:2841 msgid "(Click Droit = Menu) / Selection avec options expert." msgstr "(Clic Destro = Menu) / Selezione con opzioni da esperto." #: src/cd_audio.c:1242 src/file.c:2838 msgid "(Click Droit = Menu) / En selection. Le fichier existe." msgstr "(Clic Destro = Menu) / Selezionato. Il file esiste già. " #: src/cd_audio.c:1245 src/file.c:2844 msgid "" "(Click Droit = Menu) / Selection avec options expert. Le fichier existe." msgstr "" "(Clic Destro = Menu) / Selezione con opzioni da esperto. Il file esiste già. " #: src/cd_audio.c:1254 msgid "" "(Click Droit = Menu) / Possibilite d'ajustement INDIVIDUEL ou COLLECTIF " "maximal du volume" msgstr "" "(Clic Destro = Menu) / Possibilità di regolazione INDIVIDUALE o COLLETTIVAal " "massimo del volume" #: src/cd_audio.c:1259 msgid "(Click Droit = Menu) / Ajustement INDIVIDUEL maximal du volume" msgstr "(Clic Destro = Menu) / Regolazione INDIVIDUALE al massimo del volume" #: src/cd_audio.c:1262 msgid "(Click Droit = Menu) / Ajustement COLLECTIF maximal du volume" msgstr "(Clic Destro = Menu) / Regolazione COLLETTIVA al massimo del volume" #: src/cd_audio.c:1502 src/dvd.c:1099 src/file.c:3139 src/translate.c:331 #: src/translate.c:342 src/translate.c:361 msgid "Play" msgstr "Play" #: src/cd_audio.c:1543 src/file.c:3204 src/translate.c:343 src/translate.c:364 msgid "Wav" msgstr "Wav" #: src/cd_audio.c:1564 src/file.c:3223 src/translate.c:344 src/translate.c:365 msgid "Flac" msgstr "Flac" #: src/cd_audio.c:1584 src/file.c:3242 src/translate.c:345 src/translate.c:366 msgid "Ape" msgstr "Ape" #: src/cd_audio.c:1604 src/file.c:3261 msgid "WavP" msgstr "WavP" #: src/cd_audio.c:1624 src/file.c:3280 src/translate.c:347 src/translate.c:368 msgid "Ogg" msgstr "Ogg" #: src/cd_audio.c:1645 src/file.c:3299 src/translate.c:348 src/translate.c:369 msgid "M4a" msgstr "M4a" #: src/cd_audio.c:1666 src/file.c:3318 src/translate.c:349 src/translate.c:370 msgid "Aac" msgstr "Aac" #: src/cd_audio.c:1686 src/file.c:3337 msgid "Mpc" msgstr "Mpc" #: src/cd_audio.c:1706 src/file.c:3356 src/translate.c:351 src/translate.c:372 msgid "Mp3" msgstr "Mp3" #: src/cd_audio.c:1727 src/translate.c:352 msgid "Num" msgstr "Num" #: src/cd_audio.c:1742 src/translate.c:353 src/translate.c:373 #: src/translate.c:398 src/translate.c:406 msgid "Time" msgstr "Tempo" #: src/cd_audio.c:1757 src/dvd.c:1167 src/file.c:3392 src/translate.c:335 #: src/translate.c:354 src/translate.c:374 msgid "Normalise" msgstr "Normalizza" #: src/cd_audio.c:1782 src/dvd.c:1187 src/file.c:3434 src/file_mp3ogg.c:958 #: src/file_tags.c:1191 src/file_wav.c:824 src/prg_init.c:609 #: src/translate.c:336 src/translate.c:355 src/translate.c:376 #: src/translate.c:388 src/translate.c:399 src/translate.c:407 msgid "Nom" msgstr "Nome" #: src/cd_audio.c:2511 msgid " Parametrage CDDB: [ Nom du serveur ]" msgstr " Impostazione CDDB: [ Nome server ]" #: src/cd_audio.c:2520 msgid " Parametrage PROXY: [ serveur ] [ port ]" msgstr " Impostazioni PROXY: [ server ] [ porta ]" #: src/cd_audio.c:2530 src/translate.c:95 msgid " Serveur " msgstr " Server " #: src/cd_audio_extract.c:673 #, c-format msgid "" "[Erreur du segment numero: %d]\n" "%d) Lecture PASS 1/2\n" msgstr "" "[Errore del segmento numero: %d]\n" "%d) Lettura PASS 1/2\n" #: src/cd_audio_extract.c:680 #, c-format msgid "" "--> Deja %d fois 2 lectures du segment %d!\n" " Abandon :/\n" msgstr "" "--> Segmento %d\n" " già letto %d volte 2 volte! Abbandono :/\n" #: src/cd_audio_extract.c:700 #, c-format msgid "%d) Lecture PASS 2/2\n" msgstr "%d) Lettura PASS 2/2\n" #: src/cd_audio_extract.c:780 #, c-format msgid "" "\n" "[Piste: %d]\n" msgstr "" "\n" "[Traccia: %d]\n" #: src/cd_audio_extract.c:784 msgid "Extraction mode expert PASS 1/2\n" msgstr "Estrazione modo esperto PASS 1/2\n" #: src/cd_audio_extract.c:795 msgid "Extraction mode expert PASS 2/2\n" msgstr "Estrazione modo esperto PASS 2/2\n" #: src/cd_audio_extract.c:803 msgid "Controle du contenu des fichiers extraits\n" msgstr "Verifica del contenuto dei files estratti\n" #: src/cd_audio_extract.c:1710 src/cd_audio_extract.c:1712 msgid "XCFA: Extraction CD" msgstr "XCFA: Estrazione CD" #: src/cd_audio_extract.c:1710 src/dvd_extract.c:412 src/file_action.c:183 #: src/file_mp3ogg_conv.c:329 src/file_wav_conv.c:343 msgid "Ok" msgstr "Ok" #: src/cd_audio_extract.c:1712 src/dvd_extract.c:414 src/file_action.c:185 #: src/file_mp3ogg_conv.c:331 src/file_wav_conv.c:345 msgid "Arret par l'utilisateur" msgstr "Fermato dall'utente" #: src/cd_audio_extract.c:1983 msgid "Nom de fichier unique absent" msgstr "Manca il nome unico del file" #: src/cd_audio_extract.c:1984 msgid "Veuillez saisir un nom pour le fichier unique" msgstr "Siete pregati di inserire un nome unico per il file" #: src/cd_audio_toc.c:156 msgid "cdda2wav and icedax NOT FOUND" msgstr "cdda2wav e icedax NON TROVATO" #: src/cd_audio_toc.c:157 msgid "Please, install packages [ icedax, cdda2wav ]" msgstr "Per favore, installare i pacchetti [icedax, cdda2wav]" #: src/cd_audio_toc.c:163 msgid "icedax NOT FOUND" msgstr "icedax NON TROVATO!" #: src/cd_audio_toc.c:164 msgid "Please, install package [ icedax ]" msgstr "Per favore, installare il pacchetto [icedax]" #: src/cd_audio_toc.c:170 msgid "cdda2wav NOT FOUND" msgstr "cdda2wav NON TROVATO" #: src/cd_audio_toc.c:171 msgid "Please, install package [ cdda2wav ]" msgstr "Per favore, installare il pacchetto [ cdda2wav ]" #: src/cd_audio_toc.c:180 msgid "cdparanoia NOT FOUND" msgstr "cdparanoia NON TROVATO!" #: src/cd_audio_toc.c:181 msgid "Please, install package [ cdparanoia ]" msgstr "Per favore, installare il pacchetto [ cdparanoia ]" #: src/cd_audio_toc.c:188 msgid "cd-discid NOT FOUND" msgstr "cd-discid NON TROVATO!" #: src/cd_audio_toc.c:189 msgid "Please, install packages [ cd-discid ]" msgstr "Per favore, installare il pacchetto [ cd-discid ]" #: src/cd_audio_toc.c:203 msgid "ERREUR datas proxy" msgstr "ERRORE dati proxy" #: src/cd_audio_toc.c:204 msgid "Veuillez renseigner les champs du proxy" msgstr "Si prega di inserire tutti i campi per il proxy" #: src/cd_curl.c:734 src/web.c:187 msgid "La liaison internet est absente" msgstr "La connessione Internet non è attiva" #: src/cd_curl.c:1204 msgid "Couldn't find CD" msgstr "Impossibile trovare il CD" #: src/cd_curl.c:1267 msgid "No Audio CD" msgstr "Nessun CD Audio" #: src/dvd.c:859 msgid "" "(Click Droit = Menu) / PEAK-ALBUM: Amplification maximale du volume pour un " "groupe de fichiers en respectant les ecarts de niveau entre chacun d'eux." msgstr "" "(Clic Destro = Menu) / PEAK-ALBUM: Amplificazione massima del volume per un " "grupo di files rispettando le differenze di livello tra ognuno di loro." #: src/dvd.c:862 msgid "" "(Click Droit = Menu) / PEAK: Amplification maximale du volume pour chaque de " "fichier." msgstr "" "(Clic Destro = Menu) / PEAK: Amplificazione massima del volume per ogni " "file. " #: src/dvd.c:900 src/dvd.c:920 msgid "En attente de selection. Un click activera la conversion vers 2 canaux." msgstr "In attesa di selezione. Un clic attiverà la conversione a 2 canali" #: src/dvd.c:912 msgid "Conversion vers 2 canaux." msgstr "Conversione a 2 canali" #: src/dvd.c:924 #, c-format msgid "Conversion vers %s canaux." msgstr "Conversione a %s canali." #: src/dvd.c:929 #, c-format msgid "" "Conversion vers 2 canaux. Un second click activera la conversion vers %s " "canaux." msgstr "" "Conversione a 2 canali. Un secondo clic attiverà la conversione verso %s " "canali. " #: src/dvd.c:944 msgid "Musique en ecoute." msgstr "Musica in riproduzione" #: src/dvd.c:947 msgid "Musique en attente." msgstr "Musica in pausa" #: src/dvd.c:962 #, c-format msgid "Total selection%s: %d, 2ch: %d" msgstr "Totale selezionato%s: %d, 2ch: %d" #: src/dvd.c:963 msgid "s" msgstr "s" #: src/dvd.c:969 msgid "Ce fichier ne peut etre extrait !" msgstr "Questo file non può essere estratto !" #: src/dvd.c:1087 msgid "Titres" msgstr "Titoli" #: src/dvd.c:1111 src/file.c:3375 src/file_mp3ogg.c:943 src/file_tags.c:1175 #: src/translate.c:332 msgid "Temps" msgstr "Tempo" #: src/dvd.c:1123 src/translate.c:333 msgid "Format" msgstr "Formato" #: src/dvd.c:1135 src/translate.c:334 msgid "Choix" msgstr "Scelta" #: src/dvd.c:1249 msgid "Fichier structure DVD" msgstr "File struttura DVD" #: src/dvd.c:1299 msgid "Le DVD est absent du lecteur." msgstr "Il lettore DVD è assente." #: src/dvd.c:1335 msgid "Scan ..." msgstr "Analisi ..." #: src/dvd.c:1385 msgid "lsdvd est absent !" msgstr "lsdvd è assente" #: src/dvd.c:1386 msgid "Il faut installer le programme: lsdvd" msgstr "È necessario installare il programma: lsdvd" #: src/dvd_extract.c:412 src/dvd_extract.c:414 msgid "XCFA: Extraction DVD" msgstr "XCFA: Estrazione DVD" #: src/dvd_read.c:263 #, c-format msgid "Titre [%02d ** ]" msgstr "Titolo [%02d ** ]" #: src/dvd_read.c:266 #, c-format msgid "Titre [%02d]" msgstr "Titolo [%02d]" #: src/dvd_read.c:310 #, c-format msgid "Fichier_complet_%02d_%s" msgstr "File_completo_%02d_%s" #: src/dvd_read.c:355 #, c-format msgid "Chapitre: [%02d]" msgstr "Capitolo: [%02d]" #: src/dvd_read.c:401 #, c-format msgid "Titre_%02d_Chapitre_%02d_audio_%02d_%s" msgstr "Titolo_%02d_Capitolo_%02d_audio_%02d_%s" #: src/file_action.c:183 src/file_action.c:185 msgid "XCFA: Traitement fichiers" msgstr "XCFA: Elaborazione file" #: src/file_analyze.c:731 msgid "Package checkmp3 (mp3check) NOT FOUND !" msgstr "Pacchetto checkmp3 (mp3check) NON TROVAO !" #: src/file_analyze.c:732 msgid "" "Veuillez installer checkmp3 ou mp3check pour\n" "la prise en compte des fichiers mp3" msgstr "" "Si prega di installare o checkmp3 mp3check per\n" "poter gestire i file mp3" #: src/file.c:328 #, c-format msgid "Total fichiers: %d, Selections: %d" msgstr "File totali: %d, File selezionati: %d" #: src/file.c:442 msgid "CAPACITE DOSSIER TEMPORAIRE TROP FAIBLE" msgstr "CAPACITA' INSUFFICIENTE DELLA DIRECTORY TEMPORANEA" #: src/file.c:443 msgid "Pas assez de place dans le dossier temporaire" msgstr "Capacità insufficiente della directory temporanea" #: src/file.c:449 msgid "Veuillez deselectionner des PeakGroup." msgstr "Si prega di deselezionare PeakGroup" #: src/file.c:1433 msgid "Conversion(s) vers la source" msgstr "Conversione(i) nella directory di origine" #: src/file.c:1434 msgid "Choix d'une nouvelle destination" msgstr "Selezionare una nuova directory di destinazione" #: src/file.c:1504 msgid "Select type: --" msgstr "Seleziona il tipo: --" #: src/file.c:1589 msgid "Peak/album" msgstr "Peak/album" #: src/file.c:1590 msgid "Peak" msgstr "Peak" #: src/file.c:1591 msgid "Mix (scan)Rms/album" msgstr "Mix (scan)Rms/album" #: src/file.c:1592 msgid "Fix (scan)Rms" msgstr "Fix (scan)Rms" #: src/file.c:2853 #, c-format msgid "MAX FICHIERS ATTEINT = %d" msgstr "RAGIUNTO IL NUMERO MASSIMO DI FILE = %d" #: src/file.c:2863 msgid "Normalise: En attente de selection." msgstr "Normalizzazione: In attesa di selezione." #: src/file.c:2867 msgid "ATTENTION: Pas assez de place dans le dossier temporaire." msgstr "ATTENZIONE: Capacità della directory temporanea insufficiente." #: src/file.c:2870 msgid "" "PEAK-ALBUM: Amplification maximale du volume pour un groupe de fichiers en " "respectant les ecarts de niveau entre chacun d'eux." msgstr "" "PEAK-ALBUM: Amplificazione massima del volume per un gruppo di file " "rispettando le differenze di livello tra ognuno di loro." #: src/file.c:2874 msgid "PEAK: Amplification maximale du volume pour chaque de fichier." msgstr "PEAK: Amplificazione massima del volume di ogni file." #: src/file.c:2877 msgid "" "RMS-ALBUM: Ajustement du volume moyen pour un groupe de fichiers en " "respectant les ecarts de niveau moyen entre chacun d'eux." msgstr "" "RMS-ALBUM: Regolazione del volume medio per un gruppo di file rispettando le " "variazione di livello medio tra ognuno di loro." #: src/file.c:2880 msgid "RMS: Ajustement du volume moyen de chaque de fichier." msgstr "RMS: Regolazione del volume medio di ogni file." #: src/file.c:2894 msgid "(Click Droit = Menu) / ReplayGain: En attente de selection." msgstr "(Clic Destro = Menu) / ReplayGain: In attesa di selezione." #: src/file.c:2897 msgid "(Click Droit = Menu) / Mode piste." msgstr "(Clic Destro = Menu) / Modo traccia." #: src/file.c:2900 msgid "(Click Droit = Menu) / Mode album." msgstr "(Clic Destro = Menu) / Modo album." #: src/file.c:2903 msgid "(Click Droit = Menu) / Mode effacer." msgstr "(Clic Destro = Menu) / Modo cancellazione." #: src/file.c:3015 msgid "" "(Click Droit = Menu) / Cliquez ici pour envoyer ce fichier apres traitement " "a la corbeille" msgstr "" "(Clic Destro = Menu) / Cliccare qui per spostare il file nel cestino dopo il " "trattamento." #: src/file.c:3018 msgid "" "(Click Droit = Menu) / Ce fichier sera dirige apres traitement vers la " "corbeille" msgstr "" "(Clic Destro = Menu) / Questo file sarà spostato nel cestino dopo il " "trattamento." #: src/file.c:3152 src/file_trash.c:359 src/translate.c:362 msgid "Trash" msgstr "Cestino" #: src/file.c:3172 src/file_mp3ogg.c:883 src/file_tags.c:1160 #: src/translate.c:363 src/translate.c:394 src/translate.c:405 msgid "Type" msgstr "Tipo" #: src/file.c:3411 msgid "ReplayGain" msgstr "ReplayGain" #: src/file_conv.c:2835 src/file_mp3ogg_conv.c:336 msgid "Erreur depuis MPLAYER !" msgstr "Errore da MPLAYER !" #: src/file_conv.c:2836 src/file_conv.c:2848 src/file_mp3ogg_conv.c:337 #: src/file_mp3ogg_conv.c:349 msgid "Vous pouvez activer XCFA en ligne de commande avec: " msgstr "È possibile attivare XFCA da linea di comando con: " #: src/file_conv.c:2838 src/file_conv.c:2850 src/file_mp3ogg_conv.c:339 #: src/file_mp3ogg_conv.c:351 msgid "$ xcfa -verbose" msgstr "$ xcfa -verbose" #: src/file_conv.c:2840 src/file_mp3ogg_conv.c:341 msgid "pour consulter le type d'erreur renvoye par mplayer." msgstr "per vedere il tipo di errore riportato da mplayer." #: src/file_conv.c:2847 src/file_mp3ogg_conv.c:348 msgid "Erreur depuis SOX !" msgstr "Errore da SOX !" #: src/file_conv.c:2852 src/file_mp3ogg_conv.c:353 msgid "pour consulter le type d'erreur renvoye par sox." msgstr "per vedere il tipo di errore riportato da sox." #: src/file_mp3ogg.c:668 msgid "Click droit: acces popup" msgstr "Click destro del mouse: accedere al popup" #: src/file_mp3ogg.c:899 src/translate.c:395 msgid "Bitrate" msgstr "Bitrate" #: src/file_mp3ogg.c:915 msgid "Nouveau bitrate" msgstr "Nuovo bitrate" #: src/file_mp3ogg.c:929 msgid "Taille" msgstr "Dimensione" #: src/file_mp3ogg_conv.c:329 src/file_mp3ogg_conv.c:331 msgid "XCFA: Modification bitrate" msgstr "XCFA: Modificazione del bitrate" #: src/file_mp3ogg_conv.c:432 #, c-format msgid " ATTENTION: Il faut installer %s%s%s" msgstr " ATTENZIONE: bisogna installare %s%s%s" #: src/file_mp3ogg_conv.c:440 #, c-format msgid " ATTENTION: Il faut installer %s%s" msgstr " ATTENZIONE: bisogna installare %s%s" #: src/file_mp3ogg_conv.c:447 #, c-format msgid " ATTENTION: Il faut installer %s" msgstr " ATTENZIONE: bisogna installare %s" #: src/file_mp3ogg_conv.c:454 msgid "Package NOT FOUND !" msgstr "Pacchetto NON TROVATO!" #: src/fileselect.c:105 msgid "Choix d'un dossier de destination" msgstr "Scelta della cartella di destinazione" #: src/fileselect.c:106 msgid "Choix d'un fichier CUE WAV FLAC OGG MP3 APE WMA" msgstr "Selezionare un file di tipo CUE, WAV, MP3, OGG, FLAC, APE, WMA" #: src/fileselect.c:107 msgid "Choix d'un fichier musical" msgstr "Selezionare un file musicale" #: src/fileselect.c:108 msgid "Choix d'un fichier" msgstr "Selezionare un file" #: src/fileselect.c:109 msgid "Choix de fichiers" msgstr "Selezionare dei file" #: src/fileselect.c:110 msgid "Choix de fichiers WAV" msgstr "Selezionare dei file WAV" #: src/fileselect.c:111 msgid "Choix de fichiers MP3/OGG" msgstr "Selezionare dei file MP3/OGG" #: src/fileselect.c:112 msgid "Choix de fichiers FLAC MPC OGG MP3" msgstr "Selezionare ei file FLAC MPC OGG MP3" #: src/fileselect.c:113 msgid "Importer des images pour la pochette" msgstr "Importare delle imagini per la copertina" #: src/fileselect.c:114 msgid "Choix d'un chemin de stockage des images" msgstr "Selezionare un percorso per salvare le immagini" #: src/fileselect.c:115 msgid "Choix d'un lieu de sauvegarde" msgstr "Scelta di una cartella per il salvataggio" #: src/fileselect.c:472 src/fileselect.c:595 src/fileselect.c:605 #: src/fileselect.c:628 msgid "All Files (*.*)" msgstr "Tutti file (*.*)" #: src/file_trash.c:360 msgid "Trash files ..." msgstr "Mettere file nel cestino ..." #: src/file_wav.c:483 msgid "(Click Droit = Menu) / Choix de la frequence" msgstr "(Clic Destro = Menu) / Scelta della frequenza" #: src/file_wav.c:486 msgid "(Click Droit = Menu) / Choix du nombre de pistes (voies)" msgstr "(Clic Destro = Menu) / Scelta del numero di tracce (vie)" #: src/file_wav.c:489 msgid "(Click Droit = Menu) / Choix du codage en nombre de bits" msgstr "(Clic Destro = Menu) / Scelta del numero di bit per la codifica" #: src/file_wav.c:733 msgid "Frequence" msgstr "Frequenza" #: src/file_wav.c:749 msgid "FREQUENCE" msgstr "FREQUENZA" #: src/file_wav.c:763 msgid "Piste" msgstr "Traccia" #: src/file_wav.c:779 msgid "PISTE" msgstr "TRACCIA" #: src/file_wav.c:793 msgid "Quantification" msgstr "Quantificazione" #: src/file_wav.c:809 msgid "QUANTIFICATION" msgstr "QUANTIFICAZIONE" #: src/file_wav_conv.c:261 #, c-format msgid "%s Copie fichier: %d%%" msgstr "%s Copia file: %d%%" #: src/file_wav_conv.c:271 #, c-format msgid "%s Restitution fichier: %d%%" msgstr "%s Produzione del file: %d%%" #: src/file_wav_conv.c:281 #, c-format msgid "%s Traitement Sox: %d%%" msgstr "%s Trattamento Sox: %d%%" #: src/file_wav_conv.c:298 #, c-format msgid "%s Traitement Mplayer: %d%%" msgstr "%s Trattamento Mplayer: %d%%" #: src/file_wav_conv.c:343 src/file_wav_conv.c:345 msgid "XCFA: Conversions WAV TO WAV" msgstr "XCFA: Conversione WAV TO WAV" #: src/main.c:398 msgid "= Adressage memoire invalide\n" msgstr "= Indirizzi di memoria non validi\n" #: src/main.c:401 msgid "= Vous avez probablement trouve un bug dans XCFA\n" msgstr "= Avete probabilmente trovato un bug in XCFA\n" #: src/main.c:786 msgid "MODE ADMINISTRATEUR" msgstr "MODALITA' AMMINISTRATORE" #: src/main.c:788 msgid " Vous ne devriez pas utiliser " msgstr " Non si deve usare " #: src/main.c:790 msgid " XCFA sous ROOT !" msgstr " XCFA come ROOT !" #: src/options.c:171 msgid "ERREUR: Lieu de stockage non autorise !" msgstr "ERRORE: Directory di memorizzazione non autorizzato !" #: src/options.c:172 msgid "Veuillez recommencer." msgstr "Siete pregati di ricominciare." #: src/options_cd.c:122 msgid "Pour evaluer les templates, vous devez activer une lecture de cdaudio" msgstr "Per valutare i modelli, è necessario attivare una lettura cdaudio" #: src/options_faac.c:96 msgid "Transport Stream (ADTS) - Extension .aac" msgstr "Transport Stream (ADTS) - Estensione .aac" #: src/options_faac.c:97 msgid "MPEG-4 File Format (MP4) - Extension .m4a" msgstr "Formato file MPEG-4 (MP4) - Estensione .m4a" #: src/options_flac.c:67 msgid "0 (Rapide)" msgstr "0 (Veloce)" #: src/options_flac.c:75 msgid "8 (Lent)" msgstr "8 (Lento)" #: src/options_mp3.c:279 msgid "V0 (meilleure qualite)" msgstr "V0 (qualità migliore)" #: src/options_mp3.c:288 msgid "V9 (moins bonne qualite)" msgstr "V9 (qualità peggiore)" #: src/options_musepack.c:70 msgid "telephone: lowest quality : 32 .. 48 kbit/s" msgstr "telefono: qualità peggiore : 32 .. 48 kbit/s" #: src/options_musepack.c:71 msgid "thumb : low quality/internet : 58 .. 86 kbit/s" msgstr "thumb : qualità bassa/Internet : 58 .. 86 kbit/s" #: src/options_musepack.c:72 msgid "radio : medium (MP3) quality : 112 .. 152 kbit/s" msgstr "radio : qualità media (MP3) : 112 .. 152 kbit/s" #: src/options_musepack.c:73 msgid "standard : high quality (dflt) : 142 .. 184 kbit/s" msgstr "standard : alta qualità (dflt) : 142 .. 184 kbit/s" #: src/options_musepack.c:74 msgid "xtreme : extreme high quality : 168 .. 212 kbit/s" msgstr "estremo : qualità molto alta : 168 .. 212 kbit/s" #: src/options_musepack.c:75 msgid "insane : extreme high quality : 232 .. 268 kbit/s" msgstr "insane : qualità estremamente alta: 232 .. 268 kbit/s" #: src/options_musepack.c:76 msgid "braindead : extreme high quality : 232 .. 278 kbit/s" msgstr "braindead : qualità estremamente alta : 232 .. 278 kbit/s" #: src/options_oggenc.c:138 msgid "Qualite -1 (Moins bonne qualite)" msgstr "Qualità -1 (Qualità peggiore)" #: src/options_oggenc.c:139 src/popup.c:1219 msgid "Qualite 0" msgstr "Qualità 0" #: src/options_oggenc.c:140 src/popup.c:1219 msgid "Qualite 1" msgstr "Qualità 1" #: src/options_oggenc.c:141 src/popup.c:1219 msgid "Qualite 2" msgstr "Qualità 2" #: src/options_oggenc.c:142 msgid "Qualite 3" msgstr "Qualità 3" #: src/options_oggenc.c:143 src/popup.c:1220 msgid "Qualite 4" msgstr "Qualità 4" #: src/options_oggenc.c:144 src/popup.c:1220 msgid "Qualite 5" msgstr "Qualità 5" #: src/options_oggenc.c:145 src/popup.c:1220 msgid "Qualite 6" msgstr "Qualità 6" #: src/options_oggenc.c:146 src/popup.c:1220 msgid "Qualite 7" msgstr "Qualità 7" #: src/options_oggenc.c:147 src/popup.c:1221 msgid "Qualite 8" msgstr "Qualità 8" #: src/options_oggenc.c:148 src/popup.c:1221 msgid "Qualite 9" msgstr "Qualità 9" #: src/options_oggenc.c:149 msgid "Qualite 10 (Meilleure qualite)" msgstr "Qualità 10 (Qualità migliore)" #: src/options_oggenc.c:179 src/options_wavpack.c:181 #: src/options_wavpack.c:204 src/options_wavpack.c:227 src/popup.c:1223 msgid "Oui" msgstr "Sì" #: src/options_oggenc.c:180 src/options_wavpack.c:148 #: src/options_wavpack.c:180 src/options_wavpack.c:203 #: src/options_wavpack.c:226 src/options_wavpack.c:247 src/popup.c:1223 msgid "Non" msgstr "No" #: src/options_oggenc.c:201 msgid "Mono force" msgstr "Mono obbligato " #: src/options_oggenc.c:202 msgid "Stereo" msgstr "Stereo" #: src/options_wavpack.c:100 msgid "Mode normal" msgstr "Modo normale" #: src/options_wavpack.c:101 msgid "Mode rapide de compression" msgstr "Modo di compressione rapido" #: src/options_wavpack.c:102 msgid "Bonne qualite de compression" msgstr "Buona qualità di compressione" #: src/options_wavpack.c:103 msgid "Meilleure qualite de compression" msgstr "Migliore qualità di compressione" #: src/options_wavpack.c:129 msgid "stereo left/right" msgstr "Stereo sinistra/destra" #: src/options_wavpack.c:130 msgid "stereo mid/side" msgstr "Stereo centro/lati " #: src/options_wavpack.c:248 msgid "1 (fast / rapide)" msgstr "1 (fast / veloce)" #: src/options_wavpack.c:253 msgid "6 (very slow / tres lent)" msgstr "6 (very slow / molto lento)" #: src/play_file.c:108 msgid "PAS de lecteur audio present" msgstr "NESSUN lettore audio presente" #: src/play_file.c:109 msgid "Veuillez installez un lecteur audio." msgstr "Siete pregati di installare un lettore audio." #: src/poche_dir.c:430 msgid "" "Utilisez le glisser / deplacer - Effacer une image avec Ctrl + " "Click" msgstr "" "Usa drag / drop - Cancellare un'immagine con Ctrl + Click" #: src/poche_save.c:111 msgid "Nom de fichier absent !!" msgstr "Nome di file mancante !!" #: src/poche_save.c:112 src/poche_web.c:353 src/poche_web.c:375 msgid "Pour resoudre ce probleme:" msgstr "Per risolvere questo problema:" #: src/poche_save.c:115 msgid "Saisissez un nom de fichier sans extention" msgstr "Inserire un nome di file senza estensione" #: src/poche_save.c:126 msgid "Sauvegarde aux formats PDF et PostScript" msgstr "Salvataggio in formato PDF e PostScript" #: src/poche_save.c:151 msgid "Sauvegarde au format PNG" msgstr "Salvataggio in formato PNG" #: src/poche_web.c:352 msgid "Aucun fichier trouve !" msgstr "Nessun file trovato!" #: src/poche_web.c:356 msgid "Modifiez la chaine de recherche et" msgstr "Modificate la stringa di ricerca " #: src/poche_web.c:358 src/poche_web.c:380 msgid "recommencez." msgstr "e ricominciate." #: src/poche_web.c:374 msgid "Critere de recherche absent !!" msgstr "Criteri di ricerca mancanti !!" #: src/poche_web.c:378 msgid "Saisissez une chaine de recherche et" msgstr "Immettere una stringa di ricerca e" #: src/poche_web.c:387 msgid "[Recherche des fichiers images]" msgstr "[Ricerca dei file imagine]" #: src/popup.c:81 src/popup.c:100 msgid " Deselection globale" msgstr " Deselezione globale" #: src/popup.c:82 src/popup.c:101 src/popup.c:162 msgid " Deselection verticale" msgstr " Deselezione verticale" #: src/popup.c:83 src/popup.c:102 msgid " Deselection horizontale" msgstr " Deselezione orizzontale" #: src/popup.c:84 src/popup.c:87 src/popup.c:103 src/popup.c:106 #: src/popup.c:120 src/popup.c:133 src/popup.c:147 msgid " ---" msgstr " ---" #: src/popup.c:85 src/popup.c:104 msgid " Selection verticale" msgstr " Selezione verticale" #: src/popup.c:86 src/popup.c:105 msgid " Selection Expert verticale" msgstr " Selezione verticale da esperti" #: src/popup.c:88 src/popup.c:107 msgid " Selection horizontale" msgstr " Selezione orizzontale" #: src/popup.c:89 src/popup.c:108 msgid " Selection Expert horizontale " msgstr " Selezione orizzontale da esperti" #: src/popup.c:119 src/popup.c:132 msgid " Deselection verticale " msgstr " Deselezione verticale " #: src/popup.c:121 src/popup.c:134 msgid " Selection verticale " msgstr " Selezione verticale " #: src/popup.c:145 msgid "---SELECTION VERTICALE-----" msgstr "---SELEZIONE VERTICALE-----" #: src/popup.c:146 msgid " Deselection verticale " msgstr " Deselezione verticale " #: src/popup.c:148 msgid " Selection PISTE " msgstr " Selezione TRACCIA " #: src/popup.c:149 msgid " Selection ALBUM " msgstr " Selezione ALBUM " #: src/popup.c:150 msgid " Selection NETTOYER " msgstr " Selezione di PULIZIA " #: src/popup.c:161 msgid "---MENU TRASH--------------" msgstr "---MENU CESTINO--------------" #: src/popup.c:163 msgid " Selection verticale " msgstr " Selezione verticale " #: src/popup.c:489 msgid "1 piste" msgstr "1 traccia" #: src/popup.c:492 msgid "2 pistes" msgstr "2 tracce" #: src/popup.c:495 msgid "4 pistes" msgstr "4 tracce" #: src/popup.c:498 msgid "6 pistes" msgstr "6 tracce" #: src/popup.c:504 src/popup.c:619 src/popup.c:716 msgid "Valeur d'origine" msgstr "Valore originale" #: src/popup.c:592 msgid " 8000 Hertz" msgstr " 8000 Hertz" #: src/popup.c:595 msgid "22000 Hertz" msgstr "22000 Hertz" #: src/popup.c:598 msgid "32000 Hertz" msgstr "32000 Hertz" #: src/popup.c:601 msgid "44056 Hertz" msgstr "44056 Hertz" #: src/popup.c:604 msgid "44100 Hertz" msgstr "44100 Hertz" #: src/popup.c:607 msgid "48000 Hertz" msgstr "48000 Hertz" #: src/popup.c:610 msgid "88200 Hertz" msgstr "88200 Hertz" #: src/popup.c:613 msgid "96000 Hertz" msgstr "96000 Hertz" #: src/popup.c:698 msgid " 8 bits" msgstr " 8 bit" #: src/popup.c:701 msgid "16 bits" msgstr "16 bit" #: src/popup.c:704 msgid "24 bits" msgstr "24 bit" #: src/popup.c:707 msgid "32 bits" msgstr "32 bit" #: src/popup.c:710 msgid "64 bits" msgstr "64 bit" #: src/popup.c:765 msgid "Selecteur suivant" msgstr "Selettore seguente" #: src/popup.c:769 msgid "Selecteur precedant" msgstr "Selettore precedente" #: src/popup.c:777 msgid "Supprimer la plage active" msgstr "Eliminare il campo attivo" #: src/popup.c:849 msgid "Retourner horizontalement" msgstr "Capovolgi orizzontalmente" #: src/popup.c:853 msgid "Retourner verticalement" msgstr "Capovolgi verticalmente" #: src/popup.c:861 msgid "Image au premier plan" msgstr "Immagine in primo piano" #: src/popup.c:865 msgid "Image au dessus" msgstr "Immagine sopra" #: src/popup.c:869 msgid "Image en dessous" msgstr "Immagine sotto" #: src/popup.c:873 msgid "Image au dernier plan" msgstr "Immagine sullo sfondo" #: src/popup.c:881 msgid "Effacer l'image" msgstr "Cancellare l'immagine" #: src/popup.c:918 msgid "Supprimer l'image de la liste" msgstr "Rimuovere l'immagine dalla lista" #: src/popup.c:1036 msgid "V0 [ meilleure qualite ]" msgstr "V0 [ qualità migliore ]" #: src/popup.c:1036 src/popup.c:1039 msgid "V4 [ defaut ]" msgstr "V4 [ default ]" #: src/popup.c:1036 msgid "V9 [ moins bonne qualite ]" msgstr "V9 [ qualità peggiore ]" #: src/popup.c:1219 msgid "Qualite -1 [ Moins bonne qualite ]" msgstr "Qualità -1 [ Qualità peggiore ]" #: src/popup.c:1220 msgid "Qualite 3 [ Defaut ]" msgstr "Qualità 3 [ default ]" #: src/popup.c:1221 msgid "Qualite 10 [ Meilleure qualite ]" msgstr "Qualità 10 [ Qualità migliore ]" #: src/prg_init.c:85 msgid " Decode ATSC A/52 audio streams" msgstr " Decode ATSC A/52 audio streams" #: src/prg_init.c:96 msgid " AAC+ encoder" msgstr " AAC+ encoder" #: src/prg_init.c:107 src/prg_init.c:173 msgid " Extracteur cd audio" msgstr " Estrattore di cd audio" #: src/prg_init.c:118 msgid " Read CD and get CDDB discid information" msgstr " Leggi il CD ed estrai l'informazione discid per CDDB" #: src/prg_init.c:129 msgid " Cherche des renseignements sur les formats mp3" msgstr " Ricerca di informazioni sui formati mp3" #: src/prg_init.c:140 msgid " Audio Codeur freeware" msgstr " Codec audio gratuito" #: src/prg_init.c:151 msgid " MPEG-4 AAC decodeur" msgstr " MPEG-4 AAC decoder" #: src/prg_init.c:162 msgid " Conversion wav : flac" msgstr " Conversione wav : flac" #: src/prg_init.c:184 msgid " Conversion wav : mp3" msgstr " Conversione wav : mp3" #: src/prg_init.c:195 msgid " Cherche les informations d'un dvd" msgstr " Ricerca di informazioni di un dvd" #: src/prg_init.c:207 msgid " Monkey's Audio Console Front End : APE" msgstr " Monkey's Audio Console Front End : APE" #: src/prg_init.c:219 src/prg_init.c:230 msgid " MusePack commandline utilities" msgstr " Utilità a riga di comando per MusePack" #: src/prg_init.c:241 msgid " Lecteur et extracteur" msgstr " Lettore e estrattore" #: src/prg_init.c:252 msgid " Normaliseur de fichier mp3" msgstr " Normalizzatore di file mp3" #: src/prg_init.c:263 msgid " Normaliseur de fichier wav" msgstr " Normalizzatore di file wav" #: src/prg_init.c:274 msgid " A program to send desktop notifications" msgstr " Un programma per mandare le notifiche al desktop" #: src/prg_init.c:285 msgid " Forte compression au format wave" msgstr " Alta compressione al formato wave" #: src/prg_init.c:296 msgid " Decoupage de fichiers sans decodage" msgstr " Taglia i file senza prima decodificare" #: src/prg_init.c:307 msgid " Transformation universelle de fichiers son" msgstr " Trasformazione universale di audio file" #: src/prg_init.c:318 msgid " Conversion wav : ogg" msgstr " Conversione wav : ogg" #: src/prg_init.c:329 msgid " Normaliseur de fichier ogg" msgstr " Normalizzatore di file ogg" #: src/prg_init.c:340 msgid " WAVPACK Hybrid Lossless Audio Compressor" msgstr " WAVPACK Hybrid Lossless Audio Compressor" #: src/prg_init.c:357 msgid " ... les paquets: deb " msgstr " ... i pacchetti: deb " #: src/prg_init.c:363 msgid " ... les paquets: tgz " msgstr " ... i pacchetti: tgz " #: src/prg_init.c:369 msgid " ... les paquets: fpm " msgstr " ... i pacchetti: fpm " #: src/prg_init.c:375 msgid " ... les paquets: rpm " msgstr " ... i pacchetti: rpm " #: src/prg_init.c:381 msgid " ... les paquets: pkg.tar.xz " msgstr " ... i pacchetti: pkg.tar.xz " #: src/prg_init.c:387 msgid " ... les paquets: ? " msgstr " ... i pacchetti: ? " #: src/prg_init.c:623 msgid "Status" msgstr "Stato" #: src/prg_init.c:637 msgid "Paquet" msgstr "Pacchetti" #: src/prg_init.c:652 msgid "Action" msgstr "Azione" #: src/scan.c:259 msgid "PACKAGE dvd+rw-tools ABSENT" msgstr "PACCHETTO dvd+rw-tools ASSENTE" #: src/scan.c:260 msgid "Le package 'dvd+rw-tools' est absent" msgstr "Pacchetto 'dvd+rw-tools' non è installato" #: src/scan.c:262 msgid "de votre systeme !" msgstr "sul vostro sistema!" #: src/scan.c:264 msgid "Veuillez l'installer car j'ai besoin de" msgstr "Siete pregati di installarlo e di ricominciare" #: src/scan.c:266 msgid "'dvd+rw-mediainfo' pour identifier le(s)" msgstr "'dvd+rw-mediainfo' per identificare i(l)" #: src/scan.c:268 msgid "lecteur(s) de cd / dvd." msgstr "lettore(i) di cd / dvd." # #: src/split.c:279 msgid "" "Menu: Click droit / Ajout plage: Click bouton centre / Zoom: Ctrl+Scroll" msgstr "" "Menu: Tasto destro del mouse / Aggiunta di pista: Fare clic sul pulsante / " "Zoom: Ctrl+Scrollcentrale" # #: src/split.c:282 msgid "Ajout plage: Click bouton centre / Zoom: Ctrl+Scroll" msgstr "" "Aggiunta di pista: Fare clic sul pulsante centrale / Zoom: Ctrl+Scroll" #: src/split.c:286 msgid "" "Pret pour l'import d'un fichier CUE, WAV, FLAC, OGG, MP3, APE, WMA" msgstr "" "Pronto per l'import di un file CUE, WAV, FLAC, OGG, MP3, APE, WMA" #: src/split.c:356 src/split.c:385 msgid "Ce fichier appartient a XCFA" msgstr "Questo file appartiene a XCFA" #: src/split.c:357 src/split.c:386 msgid "Selectionnez un autre fichier." msgstr "Selezionare un altro file." #: src/split.c:365 msgid "Fichier vide" msgstr "File vuoto" #: src/split.c:366 msgid "Le fichier ne contient aucune donnee !!!" msgstr "Il file non contiene dati !!!" #: src/split.c:411 msgid "Sox et Mplayer absents" msgstr "Sox e Mplayer assenti" #: src/split.c:412 msgid "Sox et Mplayer sont absents de votre" msgstr "Sox e Mplayer sono assenti nella vostra" #: src/split.c:414 msgid "configuration." msgstr "configurazione." #: src/split.c:416 msgid "Veuillez les installer pour pouvoir continuer." msgstr "Si prega di installarli per continuare." #: src/split.c:467 msgid "Erreur de choix de fichier" msgstr "Errore nella scelta di file" #: src/split.c:468 msgid "Veuillez selectionner un fichier de type WAV FLAC MP3 OGG APE" msgstr "Si prega di selezionare un file di tipo MP3 WAV OGG FLAC APE" #: src/split.c:505 src/split.c:579 msgid "Mauvais type de fichier" msgstr "Tipo di file errato" #: src/split.c:506 src/split.c:580 msgid "" "Les types de fichiers acceptes\n" "sont: WAV FLAC MP3 OGG APE WMA CUE" msgstr "" "I tipi di file accettati sono:\n" "WAV FLAC MP3 OGG APE WMA CUE" #: src/split_conv.c:313 src/split_conv.c:330 msgid "Erreur SOX" msgstr "Errore di SOX" #: src/split_conv.c:314 src/split_conv.c:331 msgid "Le programme SOX de votre distribution" msgstr "Il programma SOX della vostra distribuzione" #: src/split_conv.c:316 src/split_conv.c:333 msgid "a generer une erreur pendant la conversion." msgstr "ha generato un errore durante la conversione." #: src/split_cue.c:116 msgid "Erreur de lecture !" msgstr "Errore di lettura !" #: src/split_cue.c:177 src/split_cue.c:187 src/split_cue.c:197 msgid "Erreur" msgstr "Errore" #: src/split_cue.c:178 msgid "Aucun fichier de musique associe au cue-file !" msgstr "Nessun file musicale associato al file cue !" #: src/split_cue.c:188 msgid "Pas de fichier WAV dans le cue-file !" msgstr "Nessun file WAV nel file cue !" #: src/split_cue.c:198 msgid "Aucun fichier de musique associe dans le dossier" msgstr "Nessun file musicale nella directory associata" #: src/split_cue.c:200 msgid "du cue-file" msgstr "al file cue" #: src/split_cue.c:294 msgid "Erreur de donnees dans le fichier CUE" msgstr "Errori nei dati del file CUE" #: src/split_cue.c:295 msgid "La solution est d'importer le fichier de" msgstr "La soluzione è quella di importare il file" #: src/split_cue.c:297 msgid "musique qui sera reconnu et pre-decoupe" msgstr "musicale che sarà riconosciuto e pre-sezionato" #: src/split_cue.c:299 msgid "dans le module Split." msgstr "nel modulo Split." #: src/split_cue.c:301 msgid "Il ne restera qu'a ajuster les plages pour" msgstr "Ci sarà solo da regolare i range per" #: src/split_cue.c:303 msgid "generer un nouveau cue-file ou des decoupes" msgstr "generare un nuovo file cue o i tagli" #: src/split_cue.c:305 msgid "correspondant aux plages." msgstr "corrispondenti ai range." #: src/split_selector.c:136 msgid "Suppression pendant la lecture impossible" msgstr "L'eliminazione durante la riproduzione non è consentita" #: src/split_selector.c:229 src/split_selector.c:235 src/split_selector.c:289 #: src/split_selector.c:295 src/split_selector.c:352 src/split_selector.c:359 #: src/split_selector.c:429 src/split_selector.c:435 msgid "Temps inferieur a 5 secondes entre marqueur et curseur !" msgstr "Tempo inferiore a 5 secondi tra il marker e il cursore!" #: src/translate.c:51 msgid "Fichier" msgstr "File" #: src/translate.c:52 msgid "Quitter" msgstr "Uscire" #: src/translate.c:53 msgid "Outils" msgstr "Strumenti" #: src/translate.c:54 msgid "Visibilite des champs" msgstr "Visibilità dei campi" #: src/translate.c:55 msgid "Aide" msgstr "Aiuto" #: src/translate.c:56 msgid "A propos" msgstr "A proposito" #: src/translate.c:57 src/translate.c:67 msgid "Lecture" msgstr "Lettura" #: src/translate.c:58 msgid " Choix du peripherique / Lecture du DVD " msgstr " Scelta della periferica / Lettura del DVD " #: src/translate.c:59 src/translate.c:69 src/translate.c:125 msgid " Destination des fichiers " msgstr " Destinazione dei file " #: src/translate.c:60 src/translate.c:70 msgid " Eject " msgstr " Eject " #: src/translate.c:61 src/translate.c:92 msgid " Normaliser " msgstr " Normalizzare " #: src/translate.c:62 msgid "Deplier" msgstr "Spiegare" #: src/translate.c:63 msgid "Replier" msgstr "Ripiegare" #: src/translate.c:64 msgid " Vers 2CH: Sub / Ambiance " msgstr " Verso 2CH: Sub / Ambiente " #: src/translate.c:65 src/translate.c:98 msgid "Extraire" msgstr "Estrarre" #: src/translate.c:66 msgid " DVD " msgstr " DVD " #: src/translate.c:68 msgid " Choix du peripherique / Lecture du CD " msgstr " Scelta della periferica / Lettura del CD " #: src/translate.c:71 msgid "Titre:" msgstr "Titolo:" #: src/translate.c:72 msgid "Album:" msgstr "Album:" #: src/translate.c:73 msgid "Artiste:" msgstr "Artista:" #: src/translate.c:74 msgid " Annee:" msgstr " Anno:" #: src/translate.c:75 msgid " Genre:" msgstr " Genere:" #: src/translate.c:76 msgid " Piste:" msgstr " Traccia:" #: src/translate.c:77 msgid " *.m3u et xspf: " msgstr " *.m3u e xspf: " #: src/translate.c:78 msgid "Commentaire:" msgstr "Commento:" #: src/translate.c:79 msgid " Modification des tags Freedb " msgstr " Modifica dei tag Freedb " #: src/translate.c:80 msgid "" "%a [ %a=\"Artist\" ]\n" "\n" "%b [ %b=\"Album\" ]\n" "\n" "%Tl - Tetsumaki lower\n" "\n" "Transforme la chaine en minuscule sauf le premier caractere.\n" "\n" "Dans le champs 'Titre' depuis [ Modification des tags FreeDB ],\n" "le ou les caracteres devant etre conserves doivent etre precedes par le " "caractere %" msgstr "" "%a [ %a=\"Artista\" ]\n" "\n" "%b [ %b=\"Album\" ]\n" "\n" "%Tl - Tetsumaki lower\n" "\n" "Converte la stringa in caratteri minuscoli, tranne per il primo carattere.\n" "\n" "Nel campo 'Titolo' in [Modifica dei tag FreeDB]\n" "il carattere o i caratteri da mantenere invariati devono essere preceduti " "dal carattere %" #: src/translate.c:81 msgid "" "%a - artiste %b - titre " "de l'album %c - numero de la piste\n" "%d - titre de la chanson %e - " "annee %g - genre\n" "%f - creation d'un fichier *.m3u et *." "xspf %na - no accent\n" "%u - remplacement de caracteres: %u(AB=C) %u( =_) %Tl - Tetsumaki lower" msgstr "" "%a - artista %b - titolo " "dell'album %c - numero della traccia\n" "%d - titolo della canzone %e - " "anno %g - genere\n" "%f - creazione di un file *.m3u e *." "xspf %na - niente accenti\n" "%u - sostituzione di caratteri: %u(AB=C) %u( =_) %Tl " "- Tetsumaki lower" #: src/translate.c:82 msgid " Arrangement des titres du CD " msgstr " Ordinamento delle tracce del CD " #: src/translate.c:83 msgid "Creation d'un fichier unique au format: " msgstr "Creazione di un solo file nel formato: " #: src/translate.c:84 msgid " et dont le nom sera: " msgstr " e il cui nome sarà: " #: src/translate.c:85 msgid "Ecriture du fichier cue" msgstr "Scrittura del file cue" #: src/translate.c:86 msgid " Au moins deux selections colonne Wav " msgstr " Almeno due selezioni di colonna Wav " #: src/translate.c:87 msgid "" "Creation d'un fichier cue\n" "unique depuis une lecture\n" "du cd audio" msgstr "" "Creazione di un solo file\n" "cue dalla lettura del\n" "cd audio" #: src/translate.c:88 msgid "Creation fichier cue uniquement" msgstr "Creazione del solo file cue" #: src/translate.c:89 msgid " Creation Cue cd " msgstr " Creazione Cue cd " #: src/translate.c:90 msgid " Creation d'un fichier unique " msgstr " Creazione di un file unico" #: src/translate.c:91 msgid "Gestion des tags, titres et fichiers cue" msgstr "Gestione dei tags, dei titoli e dei file cue" #: src/translate.c:93 msgid "definit le serveur a contacter pour les recherches titre" msgstr "definisce il server da contattare per la ricerca dei titoli" #: src/translate.c:94 msgid "Parametres par defaut" msgstr "I parametri di default" #: src/translate.c:96 msgid "Choix parmis les differentes bases de donnees pour le CD." msgstr "Scelta tra i diversi database per il CD." #: src/translate.c:97 msgid "DiscId" msgstr "DiscId" #: src/translate.c:99 msgid " CD " msgstr " CD " #: src/translate.c:100 src/translate.c:124 msgid " Importer " msgstr " Importare " #: src/translate.c:101 msgid " Destination des conversions " msgstr " Destinazione delle conversioni " #: src/translate.c:102 msgid " Nettoyer " msgstr " Pulire " #: src/translate.c:103 src/translate.c:107 msgid "Appliquer les modifications" msgstr "Applicare le modifiche" #: src/translate.c:104 msgid " Normalise: " msgstr " Normalizza: " #: src/translate.c:105 msgid " Choix niveau dBFS: " msgstr " Scelta del livello dBFS " #: src/translate.c:106 src/translate.c:123 msgid " Fichiers " msgstr " File " #: src/translate.c:108 msgid " Wav " msgstr " Wav " #: src/translate.c:109 src/translate.c:121 msgid "Appliquer" msgstr "Applicare" #: src/translate.c:110 msgid "Effacer" msgstr "Cancellare" #: src/translate.c:111 msgid " Mp3-Ogg " msgstr " Mp3-Ogg " #: src/translate.c:112 msgid "Titre:" msgstr "Titolo:" #: src/translate.c:113 msgid "Album:" msgstr "Album:" #: src/translate.c:114 msgid "Artiste:" msgstr "Artista:" #: src/translate.c:115 msgid "Commentaire:" msgstr "Commento:" #: src/translate.c:116 msgid " Annee:" msgstr " Anno:" #: src/translate.c:117 msgid " Genre:" msgstr " Genere:" #: src/translate.c:118 msgid " Piste:" msgstr " Traccia:" #: src/translate.c:119 msgid " Modif.:" msgstr " Modif.:" #: src/translate.c:120 msgid "0" msgstr "0" #: src/translate.c:122 src/translate.c:309 msgid " Tags " msgstr " Tags " #: src/translate.c:126 msgid "Lecture de 5 secondes apres le marqueur de debut" msgstr "Lettura di 5 secondi dopo il marker di inizio" #: src/translate.c:127 msgid "Index de debut" msgstr "Indice iniziale" #: src/translate.c:128 src/translate.c:135 src/translate.c:138 msgid "00h00m00s" msgstr "00h00m00s" #: src/translate.c:129 msgid "lecture" msgstr "Lettura" #: src/translate.c:130 msgid "Pause" msgstr "Pausa" #: src/translate.c:131 msgid "Index de lecture" msgstr "Indice di lettura" #: src/translate.c:132 src/translate.c:171 msgid "label" msgstr "label" #: src/translate.c:133 msgid "Lecture de 5 secondes avant le marqueur de fin" msgstr "Lettura di 5 secondi prima del marker di fine" #: src/translate.c:134 msgid "Index de fin" msgstr "Fine indice" #: src/translate.c:136 msgid "Plage" msgstr "Range" #: src/translate.c:137 msgid "Duree de la plage active" msgstr "Durata del range attivo" #: src/translate.c:139 msgid "Suprimer tous les marqueurs pour les remplacer par un marqueur unique" msgstr "Eliminare tutti i marker e sostituirli con un singolo marker" #: src/translate.c:140 msgid "Le fichier CUE sera enregistre vers 'Destination des fichiers'." msgstr "Il file CUE sarà memorizzato nella directory 'Destinazione dei file'." #: src/translate.c:141 msgid "Production fichier Cue" msgstr "Generazione del file Cue" #: src/translate.c:142 msgid "Le resultat du Split sera dirige vers 'Destination des fichiers'." msgstr "" "Il risultato dello split sarà memorizzato nella diretory 'Destinazione dei " "file'." #: src/translate.c:143 msgid "Split" msgstr "Split" #: src/translate.c:144 msgid " Split " msgstr " Split " #: src/translate.c:145 msgid "Importation du titre du CD." msgstr "Importazione del titolo del CD." #: src/translate.c:146 msgid "Titre CD" msgstr "Titolo CD" #: src/translate.c:147 msgid "Choix d'une nouvelle police." msgstr "Scelta di un nuovo font." #: src/translate.c:148 msgid "Texte gras." msgstr "Testo in grassetto." #: src/translate.c:149 msgid "Texte italique." msgstr "Testo in corsivo." #: src/translate.c:150 msgid "" "Apres une lecture de CD et un ajout d'etiquette, ce menu permet la mise en " "forme des titres, auteurs ..." msgstr "" "Dopo la lettura di un CD e l'aggiunta di un'etichetta, questo menu permette " "la formattazione di titoli, autori ..." #: src/translate.c:151 msgid "Ajouter du texte editable." msgstr "Aggiunta di testo modificabile." #: src/translate.c:152 msgid "Texte" msgstr "Testo" #: src/translate.c:153 msgid "Saisissez ici un critere de recherche d'images." msgstr "Inserisci qui un criterio di ricerca di immagini." #: src/translate.c:154 msgid "Importation des images depuis le Web." msgstr "Importazione di immagini dal web." #: src/translate.c:155 msgid "Import images web" msgstr "Importare immagini dal web" #: src/translate.c:156 msgid "Supprimer l'image en selection" msgstr "Eliminare l'iimagine selezionsnata" #: src/translate.c:157 msgid "AJouter de nouvelles images." msgstr "Aggiungere nuove immagini." #: src/translate.c:158 msgid "Ouvre un fichier" msgstr "Aprire un file" #: src/translate.c:159 msgid "Enregistrer la page au format png." msgstr "Salva la pagina in formato png." #: src/translate.c:160 msgid "Sauvegarde le fichier" msgstr "Salvare il file" #: src/translate.c:161 msgid "Diminution de l'echelle." msgstr "Riduzione della scala." #: src/translate.c:162 msgid "Reduit l'agrandissement" msgstr "Riduci l'ingrandimento" #: src/translate.c:163 msgid "Echelle a 100%." msgstr "Scala al 100%." #: src/translate.c:164 msgid "Remet l'echelle a 100%" msgstr "Ripristina la scala al 100%" #: src/translate.c:165 msgid "Augmentation de l'echelle." msgstr "Aumento della scala." #: src/translate.c:166 msgid "Augmente l'agrandissement" msgstr "Aumenta l'ingrandimento" #: src/translate.c:167 msgid "Echelle compatible avec la taille de la fenetre." msgstr "Scala compatibile con le dimensioni della finestra." #: src/translate.c:168 msgid "Adapte l'echelle a la taille de la fenetre" msgstr "Adatta la scala alle dimensioni della finestra" #: src/translate.c:169 msgid "Emplacement de sauvegarde des fichiers." msgstr "Posizione dei file di backup." #: src/translate.c:170 #, fuzzy msgid "Nom (sans extention) du fichier a sauvegarder." msgstr "Il nome (senza estensione) del file è mantenuto." #: src/translate.c:172 msgid " Pochette " msgstr " Copertina " #: src/translate.c:173 msgid "Nice" msgstr "Nice" #: src/translate.c:174 msgid " Priorite systeme " msgstr " Priorità di sistema " #: src/translate.c:175 msgid "" "Indiquez ici le dossier sur votre systeme qui servira de lieu\n" "de stockage provisoire pendant les differentes conversions.\n" msgstr "" "Indicaee qui la diretory del vostro sistema che servirà per\n" "la memorizzazione temporanea per le diverse conversioni.\n" #: src/translate.c:176 msgid " Dossier provisoire des conversions " msgstr " Directory temporanea per le conversioni " #: src/translate.c:177 msgid "button" msgstr "bottone" #: src/translate.c:178 msgid " Jouer une musique en fin de tache " msgstr " Riproduzione dei brani al termine del processo " #: src/translate.c:179 msgid " General " msgstr " Generale" #: src/translate.c:180 msgid "cdparanoia" msgstr "cdparanoia" #: src/translate.c:181 msgid "cdparanoia mode expert" msgstr "cdparanoia modalità da esperti" #: src/translate.c:182 msgid "cdparanoia mode expert multi passes" msgstr "cdparanoia modalità da esperti a passi multipli" #: src/translate.c:183 msgid "cdda2wav / icedax" msgstr "cdda2wav / icedax" #: src/translate.c:184 msgid " Extraction cd-audio avec: " msgstr " Estrazione CD audio con: " #: src/translate.c:185 msgid "HomePage" msgstr "HomePage" #: src/translate.c:186 msgid "ManPage " msgstr "ManPage " #: src/translate.c:187 msgid " Web cdparanoia " msgstr " Web cdparanoia " #: src/translate.c:188 msgid "" "Le fichier LogExpertMode.txt sera cree dans le dossier des " "extractions" msgstr "" "Il file LogExpertMode.txt verrà creato nella directory delle " "estrazioni" #: src/translate.c:189 msgid "" "Generation d'un rapport pour: cdparanoia mode expert multi passes" msgstr "" "Generazione di un report per: modalità da esperti cdparanoia a passi " "multipli" #: src/translate.c:190 msgid "" "%a - artiste %b - titre " "de l'album %c - numero de la piste\n" "%d - titre de la chanson %e - " "annee %g - genre\n" "%na - no accent %Tl " "- Tetsumaki lower\n" "%u - remplacement de caracteres: %u(AB=C) %u( =_)" msgstr "" "%a - artista %b - titolo " "dell'album %c - numero della traccia\n" "%d - titolo del brano %e - " "anno %g - genere\n" "- Tetsumaki lower\n" "%u - caratteri di sostituzione: %u(AB=C) %u( =_)" #: src/translate.c:191 msgid " Dossier de stockage " msgstr " Directory di salvataggio " #: src/translate.c:192 msgid " CD " msgstr " CD " #: src/translate.c:193 msgid "ABR / CBR / VBR / VBR-NEW" msgstr "ABR / CBR / VBR / VBR-NEW" #: src/translate.c:194 msgid "Debit" msgstr "Compressione" #: src/translate.c:195 msgid "Mode" msgstr "Modo" #: src/translate.c:196 msgid " Lame (fichier mp3): " msgstr " Lame (file mp3): " #: src/translate.c:197 src/translate.c:213 src/translate.c:225 #: src/translate.c:238 src/translate.c:255 src/translate.c:266 #: src/translate.c:280 src/translate.c:294 msgid "Par defaut" msgstr "Di default" #: src/translate.c:198 msgid " Options LAME " msgstr " Opzioni LAME " #: src/translate.c:199 src/translate.c:227 src/translate.c:268 msgid "Site officiel" msgstr "Sito ufficiale" #: src/translate.c:200 msgid "Wiki mp3 " msgstr "Wiki mp3 " #: src/translate.c:201 msgid "Wiki " msgstr "Wiki " #: src/translate.c:202 msgid "ManPage " msgstr "ManPage " #: src/translate.c:203 msgid " Web Lame " msgstr " Web Lame " #: src/translate.c:204 src/translate.c:218 src/translate.c:231 #: src/translate.c:242 src/translate.c:260 src/translate.c:271 #: src/translate.c:286 msgid "[" msgstr "[" # VR dubious #: src/translate.c:205 src/translate.c:219 src/translate.c:232 #: src/translate.c:243 src/translate.c:261 src/translate.c:272 #: src/translate.c:287 msgid "string option interne" msgstr "string opzione interna" #: src/translate.c:206 src/translate.c:220 src/translate.c:233 #: src/translate.c:244 src/translate.c:262 src/translate.c:273 #: src/translate.c:288 msgid "]" msgstr "]" #: src/translate.c:207 msgid "" " Options experts, definies par l'utilisateur - lame (wav -> mp3) " msgstr " Opzioni da esperti, definite dall'utente - lame (wav -> mp3) " #: src/translate.c:208 msgid " Mp3 " msgstr " Mp3 " #: src/translate.c:209 msgid " Mode" msgstr " Modo" #: src/translate.c:210 msgid " Mode flux (streaming)" msgstr " Modo flusso (streaming)" #: src/translate.c:211 msgid " Debit" msgstr " Compressione" #: src/translate.c:212 msgid " Oggenc (fichier ogg): " msgstr " Oggenc (file ogg): " #: src/translate.c:214 msgid " Options OGGENC " msgstr " Opzioni OGGENC " #: src/translate.c:215 msgid "Wiki " msgstr "Wiki " #: src/translate.c:216 src/translate.c:258 src/translate.c:284 #: src/translate.c:298 msgid "ManPage" msgstr "ManPage" #: src/translate.c:217 msgid " Web Oggenc " msgstr " Web Oggenc " #: src/translate.c:221 msgid "" " Options experts, definies par l'utilisateur - oggenc (wav -> ogg) " msgstr "" " Opzioni da esperti, definite dall'utente - oggenc (wav -> ogg) " #: src/translate.c:222 msgid " Oggenc " msgstr " Oggenc " #: src/translate.c:223 msgid "Taux de compression" msgstr "Tasso di compressione" #: src/translate.c:224 msgid " Flac (fichier flac): " msgstr " Flac (file flac): " #: src/translate.c:226 msgid " Options FLAC " msgstr " Opzioni FLAC " #: src/translate.c:228 src/translate.c:269 msgid "Framasoft " msgstr "Framasoft " #: src/translate.c:229 msgid "ManPage " msgstr "ManPage " #: src/translate.c:230 msgid " Web Flac " msgstr " Web Flac " #: src/translate.c:234 msgid "" " Options experts, definies par l'utilisateur - flac (wav -> flac) " msgstr " Opzioni da esperti, definite dall'utente - flac (wav -> flac) " #: src/translate.c:235 msgid " Flac " msgstr " Flac " #: src/translate.c:236 msgid " Qualite" msgstr " Qualità" #: src/translate.c:237 msgid " Mac (fichier ape): " msgstr " Mac (file ape): " #: src/translate.c:239 msgid " Options MAC " msgstr " Opzioni MAC " #: src/translate.c:240 msgid "Wiki" msgstr "Wiki" #: src/translate.c:241 msgid " Web Mac " msgstr " Web Mac " #: src/translate.c:245 msgid " Options experts, definies par l'utilisateur - mac (wav -> ape) " msgstr " Opzioni da esperti, definite dall'utente - mac (wav -> ape) " #: src/translate.c:246 msgid " Mac " msgstr " Mac " #: src/translate.c:247 msgid "Compression" msgstr "Compressione" #: src/translate.c:248 msgid "Son" msgstr "Suono" #: src/translate.c:249 msgid "Mode hybride" msgstr "Modo ibrido" #: src/translate.c:250 msgid "Fichier de correction" msgstr "File di correzione" #: src/translate.c:251 msgid "Compression maximum" msgstr "Compressione massima" #: src/translate.c:252 msgid "Signature MD5" msgstr "Firma MD5" #: src/translate.c:253 msgid "Extra encode processing" msgstr "Elaborazione extra per la codifica" #: src/translate.c:254 msgid " WavPack (fichier wv): " msgstr " WavPack (file wv): " #: src/translate.c:256 msgid " Options WAVPACK " msgstr " Opzioni WAVPACK " #: src/translate.c:257 msgid "Wiki " msgstr "Wiki " #: src/translate.c:259 msgid " Web Wavpack " msgstr " Web Wavpack " #: src/translate.c:263 msgid "" " Options experts, definies par l'utilisateur - wavpack (wav -> wv) " msgstr "" " Opzioni da esperti, definite dall'utente - wavpack (wav -> wv) " #: src/translate.c:264 msgid " Wavpack " msgstr " Wavpack " #: src/translate.c:265 msgid " MusePack (fichier mpc): " msgstr " MusePack (file mpc): " #: src/translate.c:267 msgid " Options MUSEPACK " msgstr " Opzioni MUSEPACK " #: src/translate.c:270 msgid " Web Musepack " msgstr " Web Musepack " #: src/translate.c:274 msgid "" " Options experts, definies par l'utilisateur - musepack (wav -> mpc) " msgstr "" " Opzioni da esperti, definite dall'utente - musepack (wav -> mpc) " #: src/translate.c:275 msgid " Musepack " msgstr " Musepack " #: src/translate.c:276 msgid " Qualite VBR / Debit ABR" msgstr " Qualità VBR / Compressione ABR" #: src/translate.c:277 msgid " VBR / ABR" msgstr " VBR / ABR" #: src/translate.c:278 msgid " Conteneur" msgstr " Contenitore" #: src/translate.c:279 msgid " Faac (fichier .m4a): " msgstr " Faac (file .m4a): " #: src/translate.c:281 msgid " Options FAAC " msgstr " Opzioni FAAC " #: src/translate.c:282 src/translate.c:296 msgid "Site officiel " msgstr "Sito ufficiale " #: src/translate.c:283 src/translate.c:297 msgid "Web Info " msgstr "Web Info " #: src/translate.c:285 msgid " Web Faac " msgstr " Web Faac " #: src/translate.c:289 msgid "" " Options experts, definies par l'utilisateur - faac (wav -> m4a) " msgstr " Opzioni da esperti, definite dall'utente - faac (wav -> m4a) " #: src/translate.c:290 msgid " Faac " msgstr " Faac " #: src/translate.c:291 msgid " Stereo: Qualite en kbit/s" msgstr " Stereo: Qualità in kbit/s" #: src/translate.c:292 msgid " Mono: Qualite en kbit/s" msgstr " Mono: Qualità in kbit/s" #: src/translate.c:293 msgid " AacplusEnc (fichier .aac): " msgstr " AacplusEnc (file .aac): " #: src/translate.c:295 msgid " Options AacPlusEnc " msgstr " Opzioni di AacPlusEnc " #: src/translate.c:299 msgid " Web AacPlusEnc " msgstr " Web AacPlusEnc " #: src/translate.c:300 msgid " AacplusEnc " msgstr " AacplusEnc " #: src/translate.c:301 msgid "Artiste" msgstr "Artista" #: src/translate.c:302 src/translate.c:330 msgid "Titre" msgstr "Titolo" #: src/translate.c:303 msgid "Album" msgstr "Album" #: src/translate.c:304 msgid "Numero" msgstr "Numero" #: src/translate.c:305 msgid "Genre" msgstr "Genere" #: src/translate.c:306 msgid "Annee" msgstr "Anno" #: src/translate.c:307 msgid "Commentaire" msgstr "Commento" #: src/translate.c:308 msgid " Exportation de " msgstr " Esportazione di " #: src/translate.c:310 msgid " Preferences " msgstr " Preferenze " #: src/translate.c:311 msgid "SCAN" msgstr "CERCA E ANALIZZA" #: src/translate.c:312 msgid " Installation " msgstr " Installazione " #: src/translate.c:313 msgid " Votre systeme utilise ... " msgstr " Il vostro sistema utilizza ... " #: src/translate.c:314 msgid "" "\n" "Pour installer les programmes externes requis,\n" "veuillez utiliser l'installateur de votre distribution Gnu/Linux.\n" msgstr "" "\n" "Per installare i programmi esterni necessari,\n" "siete pregati di utilizare il gestore di pacchetti della vostra " "distribuzione Gnu/Linux.\n" #: src/translate.c:315 msgid "" "Le programme XCFA_INSTALL_ALL ecrit en Perl vous sera utile en ligne de " "commande pour une installation des programmes complementaire." msgstr "" "Il programma XCFA_INSTALL_ALL scritto in Perl sarà utile sulla riga di " "comando per l'installazione di programmi complementari." #: src/translate.c:316 msgid " Informations " msgstr " Informazioni " #: src/translate.c:317 msgid " Application externes " msgstr "Applicazioni esterne" #: src/translate.c:318 src/translate.c:321 msgid "parametres:" msgstr "parametri:" #: src/translate.c:319 msgid "" "\n" " konqueror : newTab\n" " iceweasel : -new-window -new-tab \n" msgstr "" "\n" " konqueror : newTab\n" " iceweasel : -new-window -new-tab \n" #: src/translate.c:320 msgid "Navigateur" msgstr "Browser" #: src/translate.c:322 msgid "Lecteurs audio" msgstr "Lettori audio" #: src/translate.c:323 msgid " Navigateurs / Lecteurs audio " msgstr " Browser / Lettori audio " #: src/translate.c:324 msgid " Applications externes " msgstr " Applicazioni esterne " #: src/translate.c:325 msgid "Scan en cours ..." msgstr "Analisi in corso ..." #: src/translate.c:326 msgid "Scan du support en cours ..." msgstr "Analisi del supporto in corso ..." #: src/translate.c:327 msgid "Detail extraction mode expert" msgstr "Detagli estrazione modo esperto" #: src/translate.c:328 msgid "Modification des champs" msgstr "Modifica dei campi" #: src/translate.c:329 msgid "" "\n" "Modification des champs\n" msgstr "" "\n" "Modifica dei campi\n" #: src/translate.c:337 src/translate.c:356 src/translate.c:377 #: src/translate.c:389 src/translate.c:400 src/translate.c:408 msgid " Visibilite " msgstr " Visibilità " #: src/translate.c:338 src/translate.c:357 src/translate.c:378 #: src/translate.c:390 src/translate.c:401 src/translate.c:409 msgid "Nom a gauche" msgstr "Nome a sinistra" #: src/translate.c:339 src/translate.c:358 src/translate.c:379 #: src/translate.c:391 src/translate.c:402 src/translate.c:410 msgid "Nom au centre" msgstr "Nome al centro" #: src/translate.c:340 src/translate.c:359 src/translate.c:380 #: src/translate.c:392 src/translate.c:403 src/translate.c:411 msgid "Nom a droite" msgstr "Nome a destra" #: src/translate.c:341 msgid "DVD" msgstr "DVD" #: src/translate.c:346 src/translate.c:367 msgid "Wavpack" msgstr "Wavpack" #: src/translate.c:350 src/translate.c:371 msgid "Musepack" msgstr "Musepack" #: src/translate.c:360 msgid "CD" msgstr "CD" #: src/translate.c:375 msgid "Replaygain" msgstr "Replaygain" #: src/translate.c:381 msgid "CONVERSIONS" msgstr "CONVERSIONE" #: src/translate.c:382 msgid "Hertz" msgstr "Frequenza in Hertz" #: src/translate.c:383 msgid "New Hertz" msgstr "Nuova frequenza in Hertz" #: src/translate.c:384 msgid "Voie" msgstr "Modo" #: src/translate.c:385 msgid "New Voie" msgstr "Nuovo modo" #: src/translate.c:386 msgid "Bits" msgstr "Bits" #: src/translate.c:387 msgid "New Bits" msgstr "Nuovi Bits" #: src/translate.c:393 msgid "WAV" msgstr "WAV" #: src/translate.c:396 msgid "New Bitrate" msgstr "Nuovo Bitrate" #: src/translate.c:397 msgid "Size" msgstr "Dimensione" #: src/translate.c:404 msgid "MP3-OGG" msgstr "MP3-OGG" #: src/translate.c:412 msgid "TAGS" msgstr "TAGS" #: src/translate.c:413 msgid "Selection globale" msgstr "Selezione globale" #: src/translate.c:414 msgid "Deselection globale" msgstr "Deselezione globale" #: src/translate.c:415 msgid "Retour" msgstr "Ritorno" #: src/translate.c:416 msgid "About X Convert File Audio" msgstr "A proposito di X Convert File Audio" #: src/translate.c:417 msgid "Author" msgstr "Autore" #: src/translate.c:418 msgid "Licence" msgstr "Licenza" #: src/translate.c:419 msgid " Informations " msgstr " Informazioni " #: src/translate.c:420 msgid " Machine " msgstr "Macchina" #: src/translate.c:421 msgid "Ingenieurs du son\n" msgstr "Ingegnere del suono\n" #: src/translate.c:422 msgid "" "\n" "Graphisme\n" msgstr "" "\n" "Grafismo\n" #: src/translate.c:423 msgid "" "Traduction Anglaise\n" "\n" "\n" msgstr "" "Traduzione Inglese\n" "\n" "\n" #: src/translate.c:424 msgid "" "\n" "Traduction Allemande" msgstr "" "\n" "Traduzione Tedesca" #: src/translate.c:425 msgid "" "\n" "Codeur Xcfa" msgstr "" "\n" "Programmatore Xcfa" #: src/translate.c:426 msgid "" "\n" "ElementSpeak pour Xcfa " msgstr "" "\n" "ElementSpeak per Xcfa " #: src/translate.c:427 msgid "" "\n" "Codeur pages Web" msgstr "" "\n" "Programmatore delle pagine Web" #: src/translate.c:428 msgid "" "\n" "Traduction Italienne" msgstr "" "\n" "Traduzione Italiana" #: src/translate.c:429 msgid "" "\n" "\n" "Pages a visiter\n" msgstr "" "\n" "\n" "Pagine Web da visitare\n" #: src/translate.c:430 msgid "Linux On The Root" msgstr "Linux On The Root" #: src/translate.c:431 msgid "Frugalware" msgstr "Frugalware" #: src/translate.c:432 msgid "Road2Mayotte" msgstr "Road2Mayotte" #: src/translate.c:433 msgid "La Linuxerie" msgstr "La Linuxerie" #: src/translate.c:434 msgid "Audioptimisation by Dzef" msgstr "Audioptimisation by Dzef" #: src/translate.c:435 msgid "Tuxfamily" msgstr "Tuxfamily" #: src/translate.c:436 msgid "Framasoft" msgstr "Framasoft" #: src/translate.c:437 msgid "Ekd (EnKoDeur-Mixeur)" msgstr "Ekd (EnKoDeur-Mixeur)" #: src/translate.c:438 msgid "Bishop's page" msgstr "Bishop's page" #: src/translate.c:439 msgid "Je suis libre" msgstr "Io sono libero" #: src/translate.c:440 msgid "Debian Multimedia" msgstr "Debian Multimedia" #: src/translate.c:441 msgid "" "\n" "Forum\n" msgstr "" "\n" "Forum\n" #: src/translate.c:442 msgid "XCFA Vorstellung " msgstr "XCFA Idea " #: src/translate.c:443 msgid "XCFA LinuxForen.de" msgstr "XCFA LinuxForen.de" #: src/translate.c:444 msgid "Forum Xcfa" msgstr "Forum Xcfa" #: src/translate.c:445 msgid "" "\n" "Documentation\n" msgstr "" "\n" "Documentazione\n" #: src/translate.c:446 msgid "Wiki Xcfa par Shankarius" msgstr "Wiki Xcfa da Shankarius" #: src/translate.c:447 msgid "Doc Xcfa par Patachon" msgstr "Doc Xcfa da Patachon" #: src/translate.c:448 msgid "Ogg Vorbis explique par Shankarius" msgstr "Ogg Vorbis spiegato da Shankarius" #: src/translate.c:449 msgid "La normalisation expliquee par Dzef" msgstr "La normalizzazione spiegata da Dzef" #: src/translate.c:450 msgid "Xcfa sur Linux On The Root" msgstr "Xcfa in Linux On The Root" #: src/translate.c:451 msgid " Contributions " msgstr " Contributi " #: src/translate.c:452 msgid " License " msgstr " Licenza " #: src/translate.c:453 msgid "OK" msgstr "OK" #: src/web.c:173 src/web.c:234 msgid "PAS de navigateur present" msgstr "Nessun browser installato" #: src/web.c:174 msgid "L'acces au web est impossible car aucun navigateur" msgstr "L'accesso al Web non è possibile perché non risulta" #: src/web.c:176 msgid "n'est present dans votre configuration." msgstr "disponibile un browser nel vostro sistema. " #: src/web.c:178 msgid "Veuillez installez un navigateur." msgstr "Siete pregati di installare un browser." #: src/web.c:188 msgid "Vous devez ouvrir l'acces internet" msgstr "Dovete accendere una connessione a Internet" #: src/web.c:236 msgid " L'acces au web est impossible car aucun navigateur" msgstr " L'accesso al Web non è possibile perché non risulta" #: src/web.c:238 msgid " n'est present dans votre configuration." msgstr " disponibile un browser nel vostro sistema. " #: src/web.c:240 msgid " Veuillez installez un navigateur." msgstr " Siete pregati di installare un browser." #: src/web.c:250 msgid "L'application est absente." msgstr "L'applicazione è assente." #: src/web.c:251 msgid "Veuillez installer : " msgstr "Si prega di installare : " #: src/win_about.c:130 msgid " Xcfa sur le web" msgstr " Xcfa nel Web" #: src/win_about.c:180 msgid "" "\n" "Au tout debut:\n" "\n" "Serres Patrick, Hamann Regis, Fabien Gregis, @Dzef, @alteo_gange, \n" "@Leonux, @zarer, @Shankarius, @bishop, @Ludo, @Patachonf,\n" "... ;-)\n" "\n" "" msgstr "" "\n" "All'inizio:\n" "\n" "Serres Patrick, Hamann Regis, Fabien Gregis, @Dzef, @alteo_gange, \n" "@Leonux, @zarer, @Shankarius, @bishop, @Ludo, @Patachonf,\n" "... ;-)\n" "\n" "" #: src/win_scan.c:161 msgid "Waiting ..." msgstr "In attesa ... " #~ msgid "Quantification" #~ msgstr "Quantizzazione" #~ msgid "Voie" #~ msgstr "Canale" #~ msgid " Frequence - Hertz " #~ msgstr " Frequenza - Hertz " #~ msgid "Cellule" #~ msgstr "Cella" #~ msgid "Colonne" #~ msgstr "Colonna" #~ msgid " Cacher Xcfa " #~ msgstr " Nascondi Xcfa " #~ msgid " Montrer Xcfa " #~ msgstr " Mostra Xcfa " #~ msgid " Quitter Xcfa " #~ msgstr " Esci Xcfa " #~ msgid "" #~ "XCFA\n" #~ "Programme pour convertir les fichiers audio." #~ msgstr "" #~ "XCFA\n" #~ "Programma per la conversione di file audio." #~ msgid "128 -defaut" #~ msgstr "128 -di base" #~ msgid "V0 -meilleure qualite" #~ msgstr "V0 - migliore qualita" #~ msgid "V4 -defaut" #~ msgstr "V4 -di base" #~ msgid "V9 -moins bonne qualite" #~ msgstr "V9 -qualita meno buona" #~ msgid "Defaut" #~ msgstr "Di base" #~ msgid "Qualite -1 -Moins bonne qualite" #~ msgstr "Qualita -1 - Qualita meno buona" #~ msgid "Qualite 3 -Defaut" #~ msgstr "Qualita 3 - Di base" #~ msgid "Qualite 10 -Meilleure qualite" #~ msgstr "Qualita 10 - Migliore qualita" xcfa-4.3.6/po/boldquot.sed0000644000175000017500000000033111400750706012327 00000000000000s/"\([^"]*\)"/“\1”/g s/`\([^`']*\)'/‘\1’/g s/ '\([^`']*\)' / ‘\1’ /g s/ '\([^`']*\)'$/ ‘\1’/g s/^'\([^`']*\)' /‘\1’ /g s/“”/""/g s/“/“/g s/”/”/g s/‘/‘/g s/’/’/g xcfa-4.3.6/po/en_GB.po0000644000175000017500000020532412224542443011326 00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Free Software Foundation, Inc. # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: xcfa 4.2.8\n" "Report-Msgid-Bugs-To: xcfa@tuxfamily.org\n" "POT-Creation-Date: 2013-10-07 16:28+0200\n" "PO-Revision-Date: 2010-08-21 18:45+0100\n" "Last-Translator: Gerry Butler \n" "Language-Team: English \n" "Language: en\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: src/cd_audio.c:812 src/dvd.c:680 src/dvd.c:1324 msgid "MPLAYER deja en action" msgstr "MPLAYER already in action" #: src/cd_audio.c:813 src/dvd.c:681 src/dvd.c:1325 msgid "MPLAYER est deja utilise !!" msgstr "MPLAYER is already in use !!" #: src/cd_audio.c:1224 src/cd_audio.c:1230 src/dvd.c:867 src/file.c:2829 msgid "(Click Droit = Menu) / En attente de selection." msgstr "(Right click = Menu) / Waiting for selection." #: src/cd_audio.c:1227 src/file.c:2826 msgid "Le programme externe d'extraction est absent." msgstr "The external ripping program is missing" #: src/cd_audio.c:1233 src/file.c:2832 msgid "(Click Droit = Menu) / En attente de selection. Le fichier existe." msgstr "(Right click = Menu) / Waiting for Selection. File exists." #: src/cd_audio.c:1236 src/file.c:2835 msgid "(Click Droit = Menu) / En selection." msgstr "(Right click = Menu) / Selected files" #: src/cd_audio.c:1239 src/file.c:2841 msgid "(Click Droit = Menu) / Selection avec options expert." msgstr "(Right click = Menu) / Selection - expert mode." #: src/cd_audio.c:1242 src/file.c:2838 msgid "(Click Droit = Menu) / En selection. Le fichier existe." msgstr "(Right click = Menu) / Selected files. File exists." #: src/cd_audio.c:1245 src/file.c:2844 msgid "" "(Click Droit = Menu) / Selection avec options expert. Le fichier existe." msgstr "(Right click = Menu) / Selection - expert mode. File exists." #: src/cd_audio.c:1254 msgid "" "(Click Droit = Menu) / Possibilite d'ajustement INDIVIDUEL ou COLLECTIF " "maximal du volume" msgstr "" "(Right click = Menu) / Possibilities for individual adaptation or maximum " "collection volume" #: src/cd_audio.c:1259 msgid "(Click Droit = Menu) / Ajustement INDIVIDUEL maximal du volume" msgstr "(Click Droit = Menu) / INDIVIDUAL maximum volume adjustment" #: src/cd_audio.c:1262 msgid "(Click Droit = Menu) / Ajustement COLLECTIF maximal du volume" msgstr "(Click Droit = Menu) / COLLECTIVE maximum volume adjustment" #: src/cd_audio.c:1502 src/dvd.c:1099 src/file.c:3139 src/translate.c:331 #: src/translate.c:342 src/translate.c:361 msgid "Play" msgstr "Play" #: src/cd_audio.c:1543 src/file.c:3204 src/translate.c:343 src/translate.c:364 msgid "Wav" msgstr "Wav" #: src/cd_audio.c:1564 src/file.c:3223 src/translate.c:344 src/translate.c:365 msgid "Flac" msgstr "Flac" #: src/cd_audio.c:1584 src/file.c:3242 src/translate.c:345 src/translate.c:366 msgid "Ape" msgstr "Ape" #: src/cd_audio.c:1604 src/file.c:3261 msgid "WavP" msgstr "WavP" #: src/cd_audio.c:1624 src/file.c:3280 src/translate.c:347 src/translate.c:368 msgid "Ogg" msgstr "Ogg" #: src/cd_audio.c:1645 src/file.c:3299 src/translate.c:348 src/translate.c:369 msgid "M4a" msgstr "M4a" #: src/cd_audio.c:1666 src/file.c:3318 src/translate.c:349 src/translate.c:370 msgid "Aac" msgstr "Aac" #: src/cd_audio.c:1686 src/file.c:3337 msgid "Mpc" msgstr "Mpc" #: src/cd_audio.c:1706 src/file.c:3356 src/translate.c:351 src/translate.c:372 msgid "Mp3" msgstr "Mp3" #: src/cd_audio.c:1727 src/translate.c:352 msgid "Num" msgstr "Num" #: src/cd_audio.c:1742 src/translate.c:353 src/translate.c:373 #: src/translate.c:398 src/translate.c:406 msgid "Time" msgstr "Time" #: src/cd_audio.c:1757 src/dvd.c:1167 src/file.c:3392 src/translate.c:335 #: src/translate.c:354 src/translate.c:374 msgid "Normalise" msgstr "Normalise" #: src/cd_audio.c:1782 src/dvd.c:1187 src/file.c:3434 src/file_mp3ogg.c:958 #: src/file_tags.c:1191 src/file_wav.c:824 src/prg_init.c:609 #: src/translate.c:336 src/translate.c:355 src/translate.c:376 #: src/translate.c:388 src/translate.c:399 src/translate.c:407 msgid "Nom" msgstr "Name" #: src/cd_audio.c:2511 msgid " Parametrage CDDB: [ Nom du serveur ]" msgstr " Setting up CDDB: [ Server name ]" #: src/cd_audio.c:2520 msgid " Parametrage PROXY: [ serveur ] [ port ]" msgstr " Proxy settings: [ server ] [ port ] " #: src/cd_audio.c:2530 src/translate.c:95 msgid " Serveur " msgstr " Server " #: src/cd_audio_extract.c:673 #, c-format msgid "" "[Erreur du segment numero: %d]\n" "%d) Lecture PASS 1/2\n" msgstr "" "[Error on segment #%d]\n" "%d) Playing PASS 1/2\n" #: src/cd_audio_extract.c:680 #, c-format msgid "" "--> Deja %d fois 2 lectures du segment %d!\n" " Abandon :/\n" msgstr "" "--> Segment %d already read two %d times!\n" " Abandon :/\n" #: src/cd_audio_extract.c:700 #, c-format msgid "%d) Lecture PASS 2/2\n" msgstr "%d) Read PASS 2/2\n" #: src/cd_audio_extract.c:780 #, c-format msgid "" "\n" "[Piste: %d]\n" msgstr "" "\n" "[Track: %d]\n" #: src/cd_audio_extract.c:784 msgid "Extraction mode expert PASS 1/2\n" msgstr "Ripping expert mode PASS 1/2\n" #: src/cd_audio_extract.c:795 msgid "Extraction mode expert PASS 2/2\n" msgstr "Ripping expert mode PASS 2/2\n" #: src/cd_audio_extract.c:803 msgid "Controle du contenu des fichiers extraits\n" msgstr "Control the content of the extracted files\n" #: src/cd_audio_extract.c:1710 src/cd_audio_extract.c:1712 msgid "XCFA: Extraction CD" msgstr "XCFA: CD Ripping" #: src/cd_audio_extract.c:1710 src/dvd_extract.c:412 src/file_action.c:183 #: src/file_mp3ogg_conv.c:329 src/file_wav_conv.c:343 msgid "Ok" msgstr "Okay" #: src/cd_audio_extract.c:1712 src/dvd_extract.c:414 src/file_action.c:185 #: src/file_mp3ogg_conv.c:331 src/file_wav_conv.c:345 msgid "Arret par l'utilisateur" msgstr "Stopped by user" #: src/cd_audio_extract.c:1983 msgid "Nom de fichier unique absent" msgstr "File name not found" #: src/cd_audio_extract.c:1984 msgid "Veuillez saisir un nom pour le fichier unique" msgstr "Please enter a file name" #: src/cd_audio_toc.c:156 msgid "cdda2wav and icedax NOT FOUND" msgstr "cdda2wav and icedax NOT FOUND" #: src/cd_audio_toc.c:157 msgid "Please, install packages [ icedax, cdda2wav ]" msgstr "Please, install packages [ icedax, cdda2wav ]" #: src/cd_audio_toc.c:163 msgid "icedax NOT FOUND" msgstr "icedax NOT FOUND" #: src/cd_audio_toc.c:164 msgid "Please, install package [ icedax ]" msgstr "Please, install package [ icedax ]" #: src/cd_audio_toc.c:170 msgid "cdda2wav NOT FOUND" msgstr "cdda2wav NOT FOUND" #: src/cd_audio_toc.c:171 msgid "Please, install package [ cdda2wav ]" msgstr "Please, install package [ cdda2wav ]" #: src/cd_audio_toc.c:180 msgid "cdparanoia NOT FOUND" msgstr "cdparanoia NOT FOUND" #: src/cd_audio_toc.c:181 msgid "Please, install package [ cdparanoia ]" msgstr "Please, install package [ cdparanoia ]" #: src/cd_audio_toc.c:188 msgid "cd-discid NOT FOUND" msgstr "cd-discid NOT FOUND" #: src/cd_audio_toc.c:189 msgid "Please, install packages [ cd-discid ]" msgstr "Please, install package [ cd-discid ]" #: src/cd_audio_toc.c:203 msgid "ERREUR datas proxy" msgstr "ERROR datas proxy" #: src/cd_audio_toc.c:204 msgid "Veuillez renseigner les champs du proxy" msgstr "Please complete all fields proxy" #: src/cd_curl.c:734 src/web.c:187 msgid "La liaison internet est absente" msgstr "A web connection is missing" #: src/cd_curl.c:1204 msgid "Couldn't find CD" msgstr "Couldn't find CD" #: src/cd_curl.c:1267 msgid "No Audio CD" msgstr "No Audio CD" #: src/dvd.c:859 msgid "" "(Click Droit = Menu) / PEAK-ALBUM: Amplification maximale du volume pour un " "groupe de fichiers en respectant les ecarts de niveau entre chacun d'eux." msgstr "" "(Right click = Menu) / Maximum volume amplification of a group of files " "keeping the level difference between each of them" #: src/dvd.c:862 msgid "" "(Click Droit = Menu) / PEAK: Amplification maximale du volume pour chaque de " "fichier." msgstr "" "(Right click = Menu) / PEAK: Maximum volume amplification for each file" #: src/dvd.c:900 src/dvd.c:920 msgid "En attente de selection. Un click activera la conversion vers 2 canaux." msgstr "" "Waiting for selection. A click will activate the conversion to 2 channels." #: src/dvd.c:912 msgid "Conversion vers 2 canaux." msgstr "Conversion to 2 channels." #: src/dvd.c:924 #, c-format msgid "Conversion vers %s canaux." msgstr "Conversion to %s channels." #: src/dvd.c:929 #, c-format msgid "" "Conversion vers 2 canaux. Un second click activera la conversion vers %s " "canaux." msgstr "" "Conversion to 2 channels. A second click will activate the conversion to %s " "channels." #: src/dvd.c:944 msgid "Musique en ecoute." msgstr "Playing music." #: src/dvd.c:947 msgid "Musique en attente." msgstr "Music paused." #: src/dvd.c:962 #, c-format msgid "Total selection%s: %d, 2ch: %d" msgstr "Total selection%s: %d, 2ch: %d" #: src/dvd.c:963 msgid "s" msgstr "s" #: src/dvd.c:969 msgid "Ce fichier ne peut etre extrait !" msgstr "This file can not be ripped !" #: src/dvd.c:1087 msgid "Titres" msgstr "Titls" #: src/dvd.c:1111 src/file.c:3375 src/file_mp3ogg.c:943 src/file_tags.c:1175 #: src/translate.c:332 msgid "Temps" msgstr "Time" #: src/dvd.c:1123 src/translate.c:333 msgid "Format" msgstr "Format" #: src/dvd.c:1135 src/translate.c:334 msgid "Choix" msgstr "Choice" #: src/dvd.c:1249 msgid "Fichier structure DVD" msgstr "DVD file structure" #: src/dvd.c:1299 msgid "Le DVD est absent du lecteur." msgstr "The DVD player is absent." #: src/dvd.c:1335 msgid "Scan ..." msgstr "Scan ..." #: src/dvd.c:1385 msgid "lsdvd est absent !" msgstr "lsdvd is missing !" #: src/dvd.c:1386 msgid "Il faut installer le programme: lsdvd" msgstr "You must install the program: lsdvd" #: src/dvd_extract.c:412 src/dvd_extract.c:414 msgid "XCFA: Extraction DVD" msgstr "XCFA: DVD rip" #: src/dvd_read.c:263 #, c-format msgid "Titre [%02d ** ]" msgstr "Title [%02d ** ]" #: src/dvd_read.c:266 #, c-format msgid "Titre [%02d]" msgstr "Title [%02d]" #: src/dvd_read.c:310 #, c-format msgid "Fichier_complet_%02d_%s" msgstr "Completed_file_%02d_%s" #: src/dvd_read.c:355 #, c-format msgid "Chapitre: [%02d]" msgstr "Chapter: [%02d]" #: src/dvd_read.c:401 #, c-format msgid "Titre_%02d_Chapitre_%02d_audio_%02d_%s" msgstr "Title_%02d_Chapter_%02d_audio_%02d_%s" #: src/file_action.c:183 src/file_action.c:185 msgid "XCFA: Traitement fichiers" msgstr "XCFA: Processing files" #: src/file_analyze.c:731 msgid "Package checkmp3 (mp3check) NOT FOUND !" msgstr "Package checkmp3 (mp3check) NOT FOUND !" #: src/file_analyze.c:732 msgid "" "Veuillez installer checkmp3 ou mp3check pour\n" "la prise en compte des fichiers mp3" msgstr "" "Please install or checkmp3 mp3check for\n" "consideration of mp3 files" #: src/file.c:328 #, c-format msgid "Total fichiers: %d, Selections: %d" msgstr "Total files: %d, Selected: %d" #: src/file.c:442 msgid "CAPACITE DOSSIER TEMPORAIRE TROP FAIBLE" msgstr "TEMPORARY CAPACITY TOO LOW" #: src/file.c:443 msgid "Pas assez de place dans le dossier temporaire" msgstr "WARNING: Not enough space available in the temp folder." #: src/file.c:449 msgid "Veuillez deselectionner des PeakGroup." msgstr "Please deselect PeakGroup." #: src/file.c:1433 msgid "Conversion(s) vers la source" msgstr "Conversion(s) to source" #: src/file.c:1434 msgid "Choix d'une nouvelle destination" msgstr "Select a new destination" #: src/file.c:1504 msgid "Select type: --" msgstr "Select type: -" #: src/file.c:1589 msgid "Peak/album" msgstr "Peak/album" #: src/file.c:1590 msgid "Peak" msgstr "Peak" #: src/file.c:1591 msgid "Mix (scan)Rms/album" msgstr "Mix (scan)Rms/album" #: src/file.c:1592 msgid "Fix (scan)Rms" msgstr "Fix (scan)Rms" #: src/file.c:2853 #, c-format msgid "MAX FICHIERS ATTEINT = %d" msgstr "MAX FILES REACHED = %d" #: src/file.c:2863 msgid "Normalise: En attente de selection." msgstr "Normalise: Waiting for selection." #: src/file.c:2867 msgid "ATTENTION: Pas assez de place dans le dossier temporaire." msgstr "WARNING: Not enough space available in the temp folder." #: src/file.c:2870 msgid "" "PEAK-ALBUM: Amplification maximale du volume pour un groupe de fichiers en " "respectant les ecarts de niveau entre chacun d'eux." msgstr "" "PEAK-ALBUM: Maximum volume amplification for a group of files according to " "the deviations in level between them" #: src/file.c:2874 msgid "PEAK: Amplification maximale du volume pour chaque de fichier." msgstr "PEAK: Maximum volume amplification of each file." #: src/file.c:2877 msgid "" "RMS-ALBUM: Ajustement du volume moyen pour un groupe de fichiers en " "respectant les ecarts de niveau moyen entre chacun d'eux." msgstr "" "RMS-ALBUM: Adjusting the average volume for a group of files according to " "the average level of deviation between them." #: src/file.c:2880 msgid "RMS: Ajustement du volume moyen de chaque de fichier." msgstr "RMS: Average volume amplification of each file." #: src/file.c:2894 msgid "(Click Droit = Menu) / ReplayGain: En attente de selection." msgstr "(Click Droit = Menu) / ReplayGain: Waiting for selection." #: src/file.c:2897 msgid "(Click Droit = Menu) / Mode piste." msgstr "(Click Droit = Menu) / Track mode." #: src/file.c:2900 msgid "(Click Droit = Menu) / Mode album." msgstr "(Click Droit = Menu) / Album mode." #: src/file.c:2903 msgid "(Click Droit = Menu) / Mode effacer." msgstr "(Click Droit = Menu) / Erase mode." #: src/file.c:3015 msgid "" "(Click Droit = Menu) / Cliquez ici pour envoyer ce fichier apres traitement " "a la corbeille" msgstr "" "(Click Droit = Menu) / Click here to send the processed file to the trash" #: src/file.c:3018 msgid "" "(Click Droit = Menu) / Ce fichier sera dirige apres traitement vers la " "corbeille" msgstr "" "(Right Click = Menu) / This file will be sent to the trash after processing" #: src/file.c:3152 src/file_trash.c:359 src/translate.c:362 msgid "Trash" msgstr "Trash" #: src/file.c:3172 src/file_mp3ogg.c:883 src/file_tags.c:1160 #: src/translate.c:363 src/translate.c:394 src/translate.c:405 msgid "Type" msgstr "Type" #: src/file.c:3411 msgid "ReplayGain" msgstr "ReplayGain" #: src/file_conv.c:2835 src/file_mp3ogg_conv.c:336 msgid "Erreur depuis MPLAYER !" msgstr "Error since MPLAYER !" #: src/file_conv.c:2836 src/file_conv.c:2848 src/file_mp3ogg_conv.c:337 #: src/file_mp3ogg_conv.c:349 msgid "Vous pouvez activer XCFA en ligne de commande avec: " msgstr "You can enable XCFA command line with: " #: src/file_conv.c:2838 src/file_conv.c:2850 src/file_mp3ogg_conv.c:339 #: src/file_mp3ogg_conv.c:351 msgid "$ xcfa -verbose" msgstr "$ xcfa -verbose" #: src/file_conv.c:2840 src/file_mp3ogg_conv.c:341 msgid "pour consulter le type d'erreur renvoye par mplayer." msgstr "to see the type of error returned by mplayer." #: src/file_conv.c:2847 src/file_mp3ogg_conv.c:348 msgid "Erreur depuis SOX !" msgstr "Error since SOX !" #: src/file_conv.c:2852 src/file_mp3ogg_conv.c:353 msgid "pour consulter le type d'erreur renvoye par sox." msgstr "to see the type of error returned by sox." #: src/file_mp3ogg.c:668 msgid "Click droit: acces popup" msgstr "Right click: access popup" #: src/file_mp3ogg.c:899 src/translate.c:395 msgid "Bitrate" msgstr "Bitrate" #: src/file_mp3ogg.c:915 msgid "Nouveau bitrate" msgstr "New bitrate" #: src/file_mp3ogg.c:929 msgid "Taille" msgstr "Size" #: src/file_mp3ogg_conv.c:329 src/file_mp3ogg_conv.c:331 msgid "XCFA: Modification bitrate" msgstr "XCFA: Bitrate change" #: src/file_mp3ogg_conv.c:432 #, c-format msgid " ATTENTION: Il faut installer %s%s%s" msgstr " WARNING : you need to install %s%s%s" #: src/file_mp3ogg_conv.c:440 #, c-format msgid " ATTENTION: Il faut installer %s%s" msgstr " WARNING : you need to install %s%s" #: src/file_mp3ogg_conv.c:447 #, c-format msgid " ATTENTION: Il faut installer %s" msgstr " WARNING : you need to install %s" #: src/file_mp3ogg_conv.c:454 msgid "Package NOT FOUND !" msgstr "Package NOT FOUND !" #: src/fileselect.c:105 msgid "Choix d'un dossier de destination" msgstr "Select a destination folder" #: src/fileselect.c:106 msgid "Choix d'un fichier CUE WAV FLAC OGG MP3 APE WMA" msgstr "Select CUE WAV FLAC OGG MP3 APE WMA files" #: src/fileselect.c:107 msgid "Choix d'un fichier musical" msgstr "Selecting a music file" #: src/fileselect.c:108 msgid "Choix d'un fichier" msgstr "Select a file" #: src/fileselect.c:109 msgid "Choix de fichiers" msgstr "Select files" #: src/fileselect.c:110 msgid "Choix de fichiers WAV" msgstr "Select a WAV file" #: src/fileselect.c:111 msgid "Choix de fichiers MP3/OGG" msgstr "Select MP3/OGG file" #: src/fileselect.c:112 msgid "Choix de fichiers FLAC MPC OGG MP3" msgstr "Select FLAC MPC OGG MP3 files" #: src/fileselect.c:113 msgid "Importer des images pour la pochette" msgstr "Import images for the cover" #: src/fileselect.c:114 msgid "Choix d'un chemin de stockage des images" msgstr "Select location for image storage" #: src/fileselect.c:115 msgid "Choix d'un lieu de sauvegarde" msgstr "Select a backup location" #: src/fileselect.c:472 src/fileselect.c:595 src/fileselect.c:605 #: src/fileselect.c:628 msgid "All Files (*.*)" msgstr "All Files (*.*)" #: src/file_trash.c:360 msgid "Trash files ..." msgstr "Trash files ..." #: src/file_wav.c:483 msgid "(Click Droit = Menu) / Choix de la frequence" msgstr "(Right Click = Menu) / Select frequency" #: src/file_wav.c:486 msgid "(Click Droit = Menu) / Choix du nombre de pistes (voies)" msgstr "(Right Click = Menu) / Select number of tracks (channels)" #: src/file_wav.c:489 msgid "(Click Droit = Menu) / Choix du codage en nombre de bits" msgstr "(Right Click = Menu) / Encoding selection in number of bits" #: src/file_wav.c:733 msgid "Frequence" msgstr "Frequency" #: src/file_wav.c:749 msgid "FREQUENCE" msgstr "FREQUENCY" #: src/file_wav.c:763 msgid "Piste" msgstr "Track" #: src/file_wav.c:779 msgid "PISTE" msgstr "TRACK" #: src/file_wav.c:793 msgid "Quantification" msgstr "Quantification" #: src/file_wav.c:809 msgid "QUANTIFICATION" msgstr "QUANTIFICATION" #: src/file_wav_conv.c:261 #, c-format msgid "%s Copie fichier: %d%%" msgstr "%s Copy file: %d%%" #: src/file_wav_conv.c:271 #, c-format msgid "%s Restitution fichier: %d%%" msgstr "%s Return file: %d%%" #: src/file_wav_conv.c:281 #, c-format msgid "%s Traitement Sox: %d%%" msgstr "%s Use Sox: %d%%" #: src/file_wav_conv.c:298 #, c-format msgid "%s Traitement Mplayer: %d%%" msgstr "%s Use Mplayer: %d%%" #: src/file_wav_conv.c:343 src/file_wav_conv.c:345 msgid "XCFA: Conversions WAV TO WAV" msgstr "XCFA: Conversions WAV TO WAV" #: src/main.c:398 msgid "= Adressage memoire invalide\n" msgstr "= Invalid memory address\n" #: src/main.c:401 msgid "= Vous avez probablement trouve un bug dans XCFA\n" msgstr "= You've probably found a bug in XCFA\n" #: src/main.c:786 msgid "MODE ADMINISTRATEUR" msgstr "ADMINISTRATOR MODE" #: src/main.c:788 msgid " Vous ne devriez pas utiliser " msgstr " You should not use " #: src/main.c:790 msgid " XCFA sous ROOT !" msgstr " XCFA under ROOT !" #: src/options.c:171 msgid "ERREUR: Lieu de stockage non autorise !" msgstr "ERROR : storage location not permitted !" #: src/options.c:172 msgid "Veuillez recommencer." msgstr "Please start again." #: src/options_cd.c:122 msgid "Pour evaluer les templates, vous devez activer une lecture de cdaudio" msgstr "To assess the templates, you must enable a reading cdaudio" #: src/options_faac.c:96 msgid "Transport Stream (ADTS) - Extension .aac" msgstr "Transport Stream (ADTS) - Extension .aac" #: src/options_faac.c:97 msgid "MPEG-4 File Format (MP4) - Extension .m4a" msgstr "MPEG-4 File Format (MP4) - Extension .m4a" #: src/options_flac.c:67 msgid "0 (Rapide)" msgstr "0 (Fast)" #: src/options_flac.c:75 msgid "8 (Lent)" msgstr "8 (Slow)" #: src/options_mp3.c:279 msgid "V0 (meilleure qualite)" msgstr "V0·····(Best quality)" #: src/options_mp3.c:288 msgid "V9 (moins bonne qualite)" msgstr "V9·····(Poor quality)" #: src/options_musepack.c:70 msgid "telephone: lowest quality : 32 .. 48 kbit/s" msgstr "Phone: (Lowest quality) : 32 .. 48 kbit/s" #: src/options_musepack.c:71 msgid "thumb : low quality/internet : 58 .. 86 kbit/s" msgstr "thumb : low quality/internet : 58 .. 86 kbit/s" #: src/options_musepack.c:72 msgid "radio : medium (MP3) quality : 112 .. 152 kbit/s" msgstr "radio : medium (MP3) quality : 112 .. 152 kbit/s" #: src/options_musepack.c:73 msgid "standard : high quality (dflt) : 142 .. 184 kbit/s" msgstr "standard : high quality (dflt) : 142 .. 184 kbit/s" #: src/options_musepack.c:74 msgid "xtreme : extreme high quality : 168 .. 212 kbit/s" msgstr "xtreme : extreme high quality : 168 .. 212 kbit/s" #: src/options_musepack.c:75 msgid "insane : extreme high quality : 232 .. 268 kbit/s" msgstr "insane : extreme high quality : 232 .. 268 kbit/s" #: src/options_musepack.c:76 msgid "braindead : extreme high quality : 232 .. 278 kbit/s" msgstr "braindead : extreme high quality : 232 .. 278 kbit/s" #: src/options_oggenc.c:138 msgid "Qualite -1 (Moins bonne qualite)" msgstr "Quality -1 (Poor quality)" #: src/options_oggenc.c:139 src/popup.c:1219 msgid "Qualite 0" msgstr "Quality 0" #: src/options_oggenc.c:140 src/popup.c:1219 msgid "Qualite 1" msgstr "Quality 1" #: src/options_oggenc.c:141 src/popup.c:1219 msgid "Qualite 2" msgstr "Quality 2" #: src/options_oggenc.c:142 msgid "Qualite 3" msgstr "Quality 3" #: src/options_oggenc.c:143 src/popup.c:1220 msgid "Qualite 4" msgstr "Quality 4" #: src/options_oggenc.c:144 src/popup.c:1220 msgid "Qualite 5" msgstr "Quality 5" #: src/options_oggenc.c:145 src/popup.c:1220 msgid "Qualite 6" msgstr "Quality 6" #: src/options_oggenc.c:146 src/popup.c:1220 msgid "Qualite 7" msgstr "Quality 7" #: src/options_oggenc.c:147 src/popup.c:1221 msgid "Qualite 8" msgstr "Quality 8" #: src/options_oggenc.c:148 src/popup.c:1221 msgid "Qualite 9" msgstr "Quality 9" #: src/options_oggenc.c:149 msgid "Qualite 10 (Meilleure qualite)" msgstr "Quality 10 (Best quality)" #: src/options_oggenc.c:179 src/options_wavpack.c:181 #: src/options_wavpack.c:204 src/options_wavpack.c:227 src/popup.c:1223 msgid "Oui" msgstr "Yes" #: src/options_oggenc.c:180 src/options_wavpack.c:148 #: src/options_wavpack.c:180 src/options_wavpack.c:203 #: src/options_wavpack.c:226 src/options_wavpack.c:247 src/popup.c:1223 msgid "Non" msgstr "No" #: src/options_oggenc.c:201 msgid "Mono force" msgstr "Force mono" #: src/options_oggenc.c:202 msgid "Stereo" msgstr "Stereo" #: src/options_wavpack.c:100 msgid "Mode normal" msgstr "Standard" #: src/options_wavpack.c:101 msgid "Mode rapide de compression" msgstr "Fast (Faster encode and decode)" #: src/options_wavpack.c:102 msgid "Bonne qualite de compression" msgstr "High quality (Better compression ratio)" #: src/options_wavpack.c:103 msgid "Meilleure qualite de compression" msgstr "Very high quality (Best compression but slowest)" #: src/options_wavpack.c:129 msgid "stereo left/right" msgstr "stereo left/right" #: src/options_wavpack.c:130 msgid "stereo mid/side" msgstr "stereo mid/side" #: src/options_wavpack.c:248 msgid "1 (fast / rapide)" msgstr "1 (fast)" #: src/options_wavpack.c:253 msgid "6 (very slow / tres lent)" msgstr "6 (very slow)" #: src/play_file.c:108 msgid "PAS de lecteur audio present" msgstr "NO audio player present" #: src/play_file.c:109 msgid "Veuillez installez un lecteur audio." msgstr "Please install an audio player" #: src/poche_dir.c:430 msgid "" "Utilisez le glisser / deplacer - Effacer une image avec Ctrl + " "Click" msgstr "" "Use drag / drop - delete an image with Ctrl +Click" #: src/poche_save.c:111 msgid "Nom de fichier absent !!" msgstr "File name not found !!" #: src/poche_save.c:112 src/poche_web.c:353 src/poche_web.c:375 msgid "Pour resoudre ce probleme:" msgstr "To solve this problem :" #: src/poche_save.c:115 msgid "Saisissez un nom de fichier sans extention" msgstr "Enter a file name without extension" #: src/poche_save.c:126 msgid "Sauvegarde aux formats PDF et PostScript" msgstr "Saving to PDF and PostScript" #: src/poche_save.c:151 msgid "Sauvegarde au format PNG" msgstr "Saving as PNG" #: src/poche_web.c:352 msgid "Aucun fichier trouve !" msgstr "No file found !" #: src/poche_web.c:356 msgid "Modifiez la chaine de recherche et" msgstr "Modify the search parameters and" #: src/poche_web.c:358 src/poche_web.c:380 msgid "recommencez." msgstr "start again" #: src/poche_web.c:374 msgid "Critere de recherche absent !!" msgstr "Search criteria away !!" #: src/poche_web.c:378 msgid "Saisissez une chaine de recherche et" msgstr "Enter a search string and" #: src/poche_web.c:387 msgid "[Recherche des fichiers images]" msgstr "[Search images files]" #: src/popup.c:81 src/popup.c:100 msgid " Deselection globale" msgstr " Deselect all" #: src/popup.c:82 src/popup.c:101 src/popup.c:162 msgid " Deselection verticale" msgstr " Vertically deselect" #: src/popup.c:83 src/popup.c:102 msgid " Deselection horizontale" msgstr " Horizontally deselect" #: src/popup.c:84 src/popup.c:87 src/popup.c:103 src/popup.c:106 #: src/popup.c:120 src/popup.c:133 src/popup.c:147 msgid " ---" msgstr " ---" #: src/popup.c:85 src/popup.c:104 msgid " Selection verticale" msgstr " Vertically select" #: src/popup.c:86 src/popup.c:105 msgid " Selection Expert verticale" msgstr " Vertical expert select" #: src/popup.c:88 src/popup.c:107 msgid " Selection horizontale" msgstr " Horizontally select" #: src/popup.c:89 src/popup.c:108 msgid " Selection Expert horizontale " msgstr " Horizontal expert select" #: src/popup.c:119 src/popup.c:132 msgid " Deselection verticale " msgstr " Vertically deselect " #: src/popup.c:121 src/popup.c:134 msgid " Selection verticale " msgstr " Vertically select " #: src/popup.c:145 msgid "---SELECTION VERTICALE-----" msgstr "---VERTICAL SELECTION------" #: src/popup.c:146 msgid " Deselection verticale " msgstr " Vertically deselect " #: src/popup.c:148 msgid " Selection PISTE " msgstr " TRACK selection " #: src/popup.c:149 msgid " Selection ALBUM " msgstr " ALBUM selection " #: src/popup.c:150 msgid " Selection NETTOYER " msgstr " ERASE selection " #: src/popup.c:161 msgid "---MENU TRASH--------------" msgstr "---TRASH MENU--------------" #: src/popup.c:163 msgid " Selection verticale " msgstr " Vertically select " #: src/popup.c:489 msgid "1 piste" msgstr "1 track" #: src/popup.c:492 msgid "2 pistes" msgstr "2 track" #: src/popup.c:495 msgid "4 pistes" msgstr "4 track" #: src/popup.c:498 msgid "6 pistes" msgstr "6 track" #: src/popup.c:504 src/popup.c:619 src/popup.c:716 msgid "Valeur d'origine" msgstr "Original value" #: src/popup.c:592 msgid " 8000 Hertz" msgstr " 8000 Hertz" #: src/popup.c:595 msgid "22000 Hertz" msgstr "22000 Hertz" #: src/popup.c:598 msgid "32000 Hertz" msgstr "32000 Hertz" #: src/popup.c:601 msgid "44056 Hertz" msgstr "44056 Hertz" #: src/popup.c:604 msgid "44100 Hertz" msgstr "44100 Hertz" #: src/popup.c:607 msgid "48000 Hertz" msgstr "48000 Hertz" #: src/popup.c:610 msgid "88200 Hertz" msgstr "88200 Hertz" #: src/popup.c:613 msgid "96000 Hertz" msgstr "96000 Hertz" #: src/popup.c:698 msgid " 8 bits" msgstr " 8 bits" #: src/popup.c:701 msgid "16 bits" msgstr "16 bits" #: src/popup.c:704 msgid "24 bits" msgstr "24 bits" #: src/popup.c:707 msgid "32 bits" msgstr "32 bits" #: src/popup.c:710 msgid "64 bits" msgstr "64 bits" #: src/popup.c:765 msgid "Selecteur suivant" msgstr "Following selector" #: src/popup.c:769 msgid "Selecteur precedant" msgstr "Previous selector" #: src/popup.c:777 msgid "Supprimer la plage active" msgstr "Delete the active range" #: src/popup.c:849 msgid "Retourner horizontalement" msgstr "Flip Horizontal" #: src/popup.c:853 msgid "Retourner verticalement" msgstr "Flip Vertical" #: src/popup.c:861 msgid "Image au premier plan" msgstr "Foreground image" #: src/popup.c:865 msgid "Image au dessus" msgstr "Image above" #: src/popup.c:869 msgid "Image en dessous" msgstr "Image below" #: src/popup.c:873 msgid "Image au dernier plan" msgstr "Image to the background" #: src/popup.c:881 msgid "Effacer l'image" msgstr "Clear image" #: src/popup.c:918 msgid "Supprimer l'image de la liste" msgstr "Remove image from the list" #: src/popup.c:1036 msgid "V0 [ meilleure qualite ]" msgstr "V0 [ best quality ]" #: src/popup.c:1036 src/popup.c:1039 msgid "V4 [ defaut ]" msgstr "V4 [ default ]" #: src/popup.c:1036 msgid "V9 [ moins bonne qualite ]" msgstr "V9 [ worst quality ]" #: src/popup.c:1219 msgid "Qualite -1 [ Moins bonne qualite ]" msgstr "Quality -1 [ worst quality ]" #: src/popup.c:1220 msgid "Qualite 3 [ Defaut ]" msgstr "Quality 3 [ Default ]" #: src/popup.c:1221 msgid "Qualite 10 [ Meilleure qualite ]" msgstr "Quality 10 [ Best quality ]" #: src/prg_init.c:85 msgid " Decode ATSC A/52 audio streams" msgstr " Decode ATSC A/52 audio streams" #: src/prg_init.c:96 msgid " AAC+ encoder" msgstr " AAC+ encoder" #: src/prg_init.c:107 src/prg_init.c:173 msgid " Extracteur cd audio" msgstr " InCrEdible Digital Audio eXtractor" #: src/prg_init.c:118 msgid " Read CD and get CDDB discid information" msgstr " Read CD and get CDDB discid information" #: src/prg_init.c:129 msgid " Cherche des renseignements sur les formats mp3" msgstr " Check validity of mp3s" #: src/prg_init.c:140 msgid " Audio Codeur freeware" msgstr " MPEG-4 and MPEG-2 AAC encoder" #: src/prg_init.c:151 msgid " MPEG-4 AAC decodeur" msgstr " MPEG-4 AAC decoder" #: src/prg_init.c:162 msgid " Conversion wav : flac" msgstr " Create wav to flac" #: src/prg_init.c:184 msgid " Conversion wav : mp3" msgstr " Create mp3 audio files" #: src/prg_init.c:195 msgid " Cherche les informations d'un dvd" msgstr " Read the contents of a DVD" #: src/prg_init.c:207 msgid " Monkey's Audio Console Front End : APE" msgstr " Monkey's Audio Console Front End : APE" #: src/prg_init.c:219 src/prg_init.c:230 msgid " MusePack commandline utilities" msgstr " MusePack commandline utilities" #: src/prg_init.c:241 msgid " Lecteur et extracteur" msgstr " Video and audio player" #: src/prg_init.c:252 msgid " Normaliseur de fichier mp3" msgstr " Lossless mp3 normaliser" #: src/prg_init.c:263 msgid " Normaliseur de fichier wav" msgstr " wav file normaliser" #: src/prg_init.c:274 msgid " A program to send desktop notifications" msgstr " A program to send desktop notifications" #: src/prg_init.c:285 msgid " Forte compression au format wave" msgstr " High compression for waveform files" #: src/prg_init.c:296 msgid " Decoupage de fichiers sans decodage" msgstr " Split mp3/ogg without decoding" #: src/prg_init.c:307 msgid " Transformation universelle de fichiers son" msgstr " Sound eXchange, the Swiss Army knife of audio manipulation" #: src/prg_init.c:318 msgid " Conversion wav : ogg" msgstr " Convert wav : ogg" #: src/prg_init.c:329 msgid " Normaliseur de fichier ogg" msgstr " ogg file normaliser" #: src/prg_init.c:340 msgid " WAVPACK Hybrid Lossless Audio Compressor" msgstr " Wavpack Hybrid Lossless Audio Compressor" #: src/prg_init.c:357 msgid " ... les paquets: deb " msgstr " ... Packets: deb " #: src/prg_init.c:363 msgid " ... les paquets: tgz " msgstr " ... Packets: tgz " #: src/prg_init.c:369 msgid " ... les paquets: fpm " msgstr " ... Packets: fpm " #: src/prg_init.c:375 msgid " ... les paquets: rpm " msgstr " ... Packets: rpm " #: src/prg_init.c:381 msgid " ... les paquets: pkg.tar.xz " msgstr " ... Packets: pkg.tar.xz " #: src/prg_init.c:387 msgid " ... les paquets: ? " msgstr " ... Packets: ?" #: src/prg_init.c:623 msgid "Status" msgstr "Status" #: src/prg_init.c:637 msgid "Paquet" msgstr "Packets" #: src/prg_init.c:652 msgid "Action" msgstr "Action" #: src/scan.c:259 msgid "PACKAGE dvd+rw-tools ABSENT" msgstr "PACKAGE dvd+rw-tools is missing" #: src/scan.c:260 msgid "Le package 'dvd+rw-tools' est absent" msgstr "The package 'imagemagick' is missing" #: src/scan.c:262 msgid "de votre systeme !" msgstr "on your system !" #: src/scan.c:264 msgid "Veuillez l'installer car j'ai besoin de" msgstr "Please install it and resume" #: src/scan.c:266 msgid "'dvd+rw-mediainfo' pour identifier le(s)" msgstr "'Dvd + rw-mediainfo' to identify the" #: src/scan.c:268 msgid "lecteur(s) de cd / dvd." msgstr "reader of cd / dvd." #: src/split.c:279 msgid "" "Menu: Click droit / Ajout plage: Click bouton centre / Zoom: Ctrl+Scroll" msgstr "" "Menu: right click / Adding track: Click the center button / Zoom: Ctrl" "+Scroll" #: src/split.c:282 msgid "Ajout plage: Click bouton centre / Zoom: Ctrl+Scroll" msgstr "Adding track: Click the center button / Zoom: Ctrl+Scroll" #: src/split.c:286 msgid "" "Pret pour l'import d'un fichier CUE, WAV, FLAC, OGG, MP3, APE, WMA" msgstr "Ready for imports and a CUE file, WAV, FLAC, OGG, MP3, APE, WMA" #: src/split.c:356 src/split.c:385 msgid "Ce fichier appartient a XCFA" msgstr "This file belongs XCFA" #: src/split.c:357 src/split.c:386 msgid "Selectionnez un autre fichier." msgstr "Select another file." #: src/split.c:365 msgid "Fichier vide" msgstr "Empty file" #: src/split.c:366 msgid "Le fichier ne contient aucune donnee !!!" msgstr "The file contains no data !!!" #: src/split.c:411 msgid "Sox et Mplayer absents" msgstr "Sox and Mplayer is missing" #: src/split.c:412 msgid "Sox et Mplayer sont absents de votre" msgstr "Sox and Mplayer is missing" #: src/split.c:414 msgid "configuration." msgstr "configuration." #: src/split.c:416 msgid "Veuillez les installer pour pouvoir continuer." msgstr "Please install it and resume" #: src/split.c:467 msgid "Erreur de choix de fichier" msgstr "Error file select" #: src/split.c:468 msgid "Veuillez selectionner un fichier de type WAV FLAC MP3 OGG APE" msgstr "Please select a file type of MP3 WAV OGG FLAC APE" #: src/split.c:505 src/split.c:579 msgid "Mauvais type de fichier" msgstr "Wrong type of file" #: src/split.c:506 src/split.c:580 msgid "" "Les types de fichiers acceptes\n" "sont: WAV FLAC MP3 OGG APE WMA CUE" msgstr "" "File types accepted\n" "are: WAV FLAC MP3 OGG APE WMA CUE" #: src/split_conv.c:313 src/split_conv.c:330 msgid "Erreur SOX" msgstr "SOX Error" #: src/split_conv.c:314 src/split_conv.c:331 msgid "Le programme SOX de votre distribution" msgstr "The SOX program on your distribution" #: src/split_conv.c:316 src/split_conv.c:333 msgid "a generer une erreur pendant la conversion." msgstr "has generated an error during conversion" #: src/split_cue.c:116 msgid "Erreur de lecture !" msgstr "Misreading !" #: src/split_cue.c:177 src/split_cue.c:187 src/split_cue.c:197 msgid "Erreur" msgstr "Error" #: src/split_cue.c:178 msgid "Aucun fichier de musique associe au cue-file !" msgstr "No music file associated with the cue-file" #: src/split_cue.c:188 msgid "Pas de fichier WAV dans le cue-file !" msgstr "No WAV file in the cue-file" #: src/split_cue.c:198 msgid "Aucun fichier de musique associe dans le dossier" msgstr "No music file in the folder associated" #: src/split_cue.c:200 msgid "du cue-file" msgstr "of cue-file" #: src/split_cue.c:294 msgid "Erreur de donnees dans le fichier CUE" msgstr "Data errors in the CUE file" #: src/split_cue.c:295 msgid "La solution est d'importer le fichier de" msgstr "The solution is to import the file" #: src/split_cue.c:297 msgid "musique qui sera reconnu et pre-decoupe" msgstr "music that will be recognized and pre-cutting" #: src/split_cue.c:299 msgid "dans le module Split." msgstr "Split in the module." #: src/split_cue.c:301 msgid "Il ne restera qu'a ajuster les plages pour" msgstr "We will just adjust to the beaches" #: src/split_cue.c:303 msgid "generer un nouveau cue-file ou des decoupes" msgstr "generate a new cue-file or cuts" #: src/split_cue.c:305 msgid "correspondant aux plages." msgstr "corresponding to the beaches." #: src/split_selector.c:136 msgid "Suppression pendant la lecture impossible" msgstr "Deleting not during playback" #: src/split_selector.c:229 src/split_selector.c:235 src/split_selector.c:289 #: src/split_selector.c:295 src/split_selector.c:352 src/split_selector.c:359 #: src/split_selector.c:429 src/split_selector.c:435 msgid "Temps inferieur a 5 secondes entre marqueur et curseur !" msgstr "Time of less than 5 seconds between marker and cursor !" #: src/translate.c:51 msgid "Fichier" msgstr "File" #: src/translate.c:52 msgid "Quitter" msgstr "Quit" #: src/translate.c:53 msgid "Outils" msgstr "Tools" #: src/translate.c:54 msgid "Visibilite des champs" msgstr "Visible fields" #: src/translate.c:55 msgid "Aide" msgstr "Help" #: src/translate.c:56 msgid "A propos" msgstr "About" #: src/translate.c:57 src/translate.c:67 msgid "Lecture" msgstr "Play" #: src/translate.c:58 msgid " Choix du peripherique / Lecture du DVD " msgstr " DVD player / Import files " #: src/translate.c:59 src/translate.c:69 src/translate.c:125 msgid " Destination des fichiers " msgstr " Save location: " #: src/translate.c:60 src/translate.c:70 msgid " Eject " msgstr " Eject " #: src/translate.c:61 src/translate.c:92 msgid " Normaliser " msgstr " Normalise " #: src/translate.c:62 msgid "Deplier" msgstr "Unfold" #: src/translate.c:63 msgid "Replier" msgstr "Fold" #: src/translate.c:64 msgid " Vers 2CH: Sub / Ambiance " msgstr " 2CH: Sub / Ambiance " #: src/translate.c:65 src/translate.c:98 msgid "Extraire" msgstr "Rip" #: src/translate.c:66 msgid " DVD " msgstr " DVD " #: src/translate.c:68 msgid " Choix du peripherique / Lecture du CD " msgstr " CD player " #: src/translate.c:71 msgid "Titre:" msgstr "Title:" #: src/translate.c:72 msgid "Album:" msgstr "Album:" #: src/translate.c:73 msgid "Artiste:" msgstr "Artist:" #: src/translate.c:74 msgid " Annee:" msgstr "Year :" #: src/translate.c:75 msgid " Genre:" msgstr "Genre :" #: src/translate.c:76 msgid " Piste:" msgstr "Track:" #: src/translate.c:77 msgid " *.m3u et xspf: " msgstr "m3u and xspf: " #: src/translate.c:78 msgid "Commentaire:" msgstr "Comment:" #: src/translate.c:79 msgid " Modification des tags Freedb " msgstr " Freedb tags modification " #: src/translate.c:80 msgid "" "%a [ %a=\"Artist\" ]\n" "\n" "%b [ %b=\"Album\" ]\n" "\n" "%Tl - Tetsumaki lower\n" "\n" "Transforme la chaine en minuscule sauf le premier caractere.\n" "\n" "Dans le champs 'Titre' depuis [ Modification des tags FreeDB ],\n" "le ou les caracteres devant etre conserves doivent etre precedes par le " "caractere %" msgstr "" "%a [ %a=\"Artist\" ]\n" "\n" "%b [ %b=\"Album\" ]\n" "\n" "TI% - Tetsumaki lower\n" "\n" "Converts the string to lowercase except for the first character\n" "\n" "In the fields 'Title' since [Changing FreeDB tag]\n" "the character or characters to be retained must be preceded bycharacter %" #: src/translate.c:81 msgid "" "%a - artiste %b - titre " "de l'album %c - numero de la piste\n" "%d - titre de la chanson %e - " "annee %g - genre\n" "%f - creation d'un fichier *.m3u et *." "xspf %na - no accent\n" "%u - remplacement de caracteres: %u(AB=C) %u( =_) %Tl - Tetsumaki lower" msgstr "" "%a - artist %b - album " "title %c - track number\n" "%d - track title %e - " "year %g - genre\n" "%f - create an m3u and xspf file %na - no accent\n" "%u - replace special characters: %u(AB=C) %u( =_) %Tl - Tetsumaki lower" #: src/translate.c:82 msgid " Arrangement des titres du CD " msgstr " Arrangement of CD titles " #: src/translate.c:83 msgid "Creation d'un fichier unique au format: " msgstr "Create a single file in the format: " #: src/translate.c:84 msgid " et dont le nom sera: " msgstr " Named: " #: src/translate.c:85 msgid "Ecriture du fichier cue" msgstr "Write cue file" #: src/translate.c:86 msgid " Au moins deux selections colonne Wav " msgstr " Make at least two selections in the Wav column " #: src/translate.c:87 msgid "" "Creation d'un fichier cue\n" "unique depuis une lecture\n" "du cd audio" msgstr "" "Create a single cue\n" "file from an audio-CD" #: src/translate.c:88 msgid "Creation fichier cue uniquement" msgstr "Create cue file" #: src/translate.c:89 msgid " Creation Cue cd " msgstr " CD cue file creation " #: src/translate.c:90 msgid " Creation d'un fichier unique " msgstr " Creating a single file " #: src/translate.c:91 msgid "Gestion des tags, titres et fichiers cue" msgstr "Tags, titles and cue files management" #: src/translate.c:93 msgid "definit le serveur a contacter pour les recherches titre" msgstr "Sets the server to be contacted for title lookups" #: src/translate.c:94 msgid "Parametres par defaut" msgstr "Default parameters" #: src/translate.c:96 msgid "Choix parmis les differentes bases de donnees pour le CD." msgstr "Choice among different databases for the CD." #: src/translate.c:97 msgid "DiscId" msgstr "DiscId" #: src/translate.c:99 msgid " CD " msgstr " CD " #: src/translate.c:100 src/translate.c:124 msgid " Importer " msgstr " Import " #: src/translate.c:101 msgid " Destination des conversions " msgstr " Export converted files: " #: src/translate.c:102 msgid " Nettoyer " msgstr " Clear " #: src/translate.c:103 src/translate.c:107 msgid "Appliquer les modifications" msgstr "Apply the changes" #: src/translate.c:104 msgid " Normalise: " msgstr " Normalise: " #: src/translate.c:105 msgid " Choix niveau dBFS: " msgstr " dBFS level: " #: src/translate.c:106 src/translate.c:123 msgid " Fichiers " msgstr " Files " #: src/translate.c:108 msgid " Wav " msgstr " Wav " #: src/translate.c:109 src/translate.c:121 msgid "Appliquer" msgstr "Apply" #: src/translate.c:110 msgid "Effacer" msgstr "Clear" #: src/translate.c:111 msgid " Mp3-Ogg " msgstr " Mp3-Ogg " #: src/translate.c:112 msgid "Titre:" msgstr "Title:" #: src/translate.c:113 msgid "Album:" msgstr "Album:" #: src/translate.c:114 msgid "Artiste:" msgstr "Artist:" #: src/translate.c:115 msgid "Commentaire:" msgstr "Comment:" #: src/translate.c:116 msgid " Annee:" msgstr " Year:" #: src/translate.c:117 msgid " Genre:" msgstr " Genre:" #: src/translate.c:118 msgid " Piste:" msgstr " Track:" #: src/translate.c:119 msgid " Modif.:" msgstr " Edit:" #: src/translate.c:120 msgid "0" msgstr "0" #: src/translate.c:122 src/translate.c:309 msgid " Tags " msgstr " Tags " #: src/translate.c:126 msgid "Lecture de 5 secondes apres le marqueur de debut" msgstr "Reading 5 seconds after the beginning marker" #: src/translate.c:127 msgid "Index de debut" msgstr "Index start" #: src/translate.c:128 src/translate.c:135 src/translate.c:138 msgid "00h00m00s" msgstr "00h00m00s" #: src/translate.c:129 msgid "lecture" msgstr "Play" #: src/translate.c:130 msgid "Pause" msgstr "Pause" #: src/translate.c:131 msgid "Index de lecture" msgstr "Index reading" #: src/translate.c:132 src/translate.c:171 msgid "label" msgstr "label" #: src/translate.c:133 msgid "Lecture de 5 secondes avant le marqueur de fin" msgstr "Reading of 5 seconds before the end marker" #: src/translate.c:134 msgid "Index de fin" msgstr "End index" #: src/translate.c:136 msgid "Plage" msgstr "Plage" #: src/translate.c:137 msgid "Duree de la plage active" msgstr "Length of the active beach" #: src/translate.c:139 msgid "Suprimer tous les marqueurs pour les remplacer par un marqueur unique" msgstr "Wipe all markers and replace them with a single marker" #: src/translate.c:140 msgid "Le fichier CUE sera enregistre vers 'Destination des fichiers'." msgstr "CUE file to be recorded 'Destination file'." #: src/translate.c:141 msgid "Production fichier Cue" msgstr "Generate CUE file" #: src/translate.c:142 msgid "Le resultat du Split sera dirige vers 'Destination des fichiers'." msgstr "The result of the Split will be heading for 'Destination file'." #: src/translate.c:143 msgid "Split" msgstr "Split" #: src/translate.c:144 msgid " Split " msgstr " Split " #: src/translate.c:145 msgid "Importation du titre du CD." msgstr "Import the CD title." #: src/translate.c:146 msgid "Titre CD" msgstr "Title CD" #: src/translate.c:147 msgid "Choix d'une nouvelle police." msgstr "Choosing a new font." #: src/translate.c:148 msgid "Texte gras." msgstr "Bold text." #: src/translate.c:149 msgid "Texte italique." msgstr "Italic text." #: src/translate.c:150 msgid "" "Apres une lecture de CD et un ajout d'etiquette, ce menu permet la mise en " "forme des titres, auteurs ..." msgstr "" "After reading a CD and add a label, this menu allows the formatting of " "titles, authors ..." #: src/translate.c:151 msgid "Ajouter du texte editable." msgstr "Add text editable." #: src/translate.c:152 msgid "Texte" msgstr "Text" #: src/translate.c:153 msgid "Saisissez ici un critere de recherche d'images." msgstr "Enter here a search of images." #: src/translate.c:154 msgid "Importation des images depuis le Web." msgstr "Importing images from the Web." #: src/translate.c:155 msgid "Import images web" msgstr "Import web images" #: src/translate.c:156 msgid "Supprimer l'image en selection" msgstr "Delete the image selection" #: src/translate.c:157 msgid "AJouter de nouvelles images." msgstr "Add new images." #: src/translate.c:158 msgid "Ouvre un fichier" msgstr "Open a file" #: src/translate.c:159 msgid "Enregistrer la page au format png." msgstr "Save Page png." #: src/translate.c:160 msgid "Sauvegarde le fichier" msgstr "Saving the file" #: src/translate.c:161 msgid "Diminution de l'echelle." msgstr "Reduction in the scale." #: src/translate.c:162 msgid "Reduit l'agrandissement" msgstr "Reduced expansion" #: src/translate.c:163 msgid "Echelle a 100%." msgstr "Scale 100%." #: src/translate.c:164 msgid "Remet l'echelle a 100%" msgstr "Gives the scale at 100%" #: src/translate.c:165 msgid "Augmentation de l'echelle." msgstr "Increase in scale." #: src/translate.c:166 msgid "Augmente l'agrandissement" msgstr "Increasing expansion" #: src/translate.c:167 msgid "Echelle compatible avec la taille de la fenetre." msgstr "Scale compatible with the size of the window." #: src/translate.c:168 msgid "Adapte l'echelle a la taille de la fenetre" msgstr "Adjusts the scale to the size of the window" #: src/translate.c:169 msgid "Emplacement de sauvegarde des fichiers." msgstr "Backup location files." #: src/translate.c:170 msgid "Nom (sans extention) du fichier a sauvegarder." msgstr "Name (without extension) file is saved." #: src/translate.c:172 msgid " Pochette " msgstr " CD Cover " #: src/translate.c:173 msgid "Nice" msgstr "Nice" #: src/translate.c:174 msgid " Priorite systeme " msgstr " System priority " #: src/translate.c:175 msgid "" "Indiquez ici le dossier sur votre systeme qui servira de lieu\n" "de stockage provisoire pendant les differentes conversions.\n" msgstr "Enter the location of the temporary folder to be used by XCFA\n" #: src/translate.c:176 msgid " Dossier provisoire des conversions " msgstr " Conversions temporary folder " #: src/translate.c:177 msgid "button" msgstr "button" #: src/translate.c:178 msgid " Jouer une musique en fin de tache " msgstr " Play music at the end of task " #: src/translate.c:179 msgid " General " msgstr " General " #: src/translate.c:180 msgid "cdparanoia" msgstr "cdparanoia" #: src/translate.c:181 msgid "cdparanoia mode expert" msgstr "cdparanoia expert mode" #: src/translate.c:182 msgid "cdparanoia mode expert multi passes" msgstr "cdparanoia expert mode multi pass" #: src/translate.c:183 msgid "cdda2wav / icedax" msgstr "cdda2wav / icedax" #: src/translate.c:184 msgid " Extraction cd-audio avec: " msgstr " Rip audio-CD with: " #: src/translate.c:185 msgid "HomePage" msgstr "Home Page" #: src/translate.c:186 msgid "ManPage " msgstr "Man Page " #: src/translate.c:187 msgid " Web cdparanoia " msgstr " Web cdparanoia " #: src/translate.c:188 msgid "" "Le fichier LogExpertMode.txt sera cree dans le dossier des " "extractions" msgstr "" "LogExpertMode.txt file will be created in the folder extractions" #: src/translate.c:189 msgid "" "Generation d'un rapport pour: cdparanoia mode expert multi passes" msgstr "Generation of a report for: cdparanoia expert mode multi pass" #: src/translate.c:190 msgid "" "%a - artiste %b - titre " "de l'album %c - numero de la piste\n" "%d - titre de la chanson %e - " "annee %g - genre\n" "%na - no accent %Tl " "- Tetsumaki lower\n" "%u - remplacement de caracteres: %u(AB=C) %u( =_)" msgstr "" "%a - artist %b - album " "title %c - track number\n" "%d - track title %e - " "year %g - genre\n" "%na - no accent %Tl " "- Tetsumaki lower\n" "%u - replacing characters: %u(AB=C) %u( =_)" #: src/translate.c:191 msgid " Dossier de stockage " msgstr " File storage " #: src/translate.c:192 msgid " CD " msgstr " CD " #: src/translate.c:193 msgid "ABR / CBR / VBR / VBR-NEW" msgstr "ABR / CBR / VBR / VBR-NEW" #: src/translate.c:194 msgid "Debit" msgstr "Bitrate" #: src/translate.c:195 msgid "Mode" msgstr "Mode" #: src/translate.c:196 msgid " Lame (fichier mp3): " msgstr " Lame (mp3 file): " #: src/translate.c:197 src/translate.c:213 src/translate.c:225 #: src/translate.c:238 src/translate.c:255 src/translate.c:266 #: src/translate.c:280 src/translate.c:294 msgid "Par defaut" msgstr "Default" #: src/translate.c:198 msgid " Options LAME " msgstr " LAME Options " #: src/translate.c:199 src/translate.c:227 src/translate.c:268 msgid "Site officiel" msgstr "Official website" #: src/translate.c:200 msgid "Wiki mp3 " msgstr "mp3 wiki " #: src/translate.c:201 msgid "Wiki " msgstr "Lame wiki " #: src/translate.c:202 msgid "ManPage " msgstr "Man Page " #: src/translate.c:203 msgid " Web Lame " msgstr " Lame " #: src/translate.c:204 src/translate.c:218 src/translate.c:231 #: src/translate.c:242 src/translate.c:260 src/translate.c:271 #: src/translate.c:286 msgid "[" msgstr "[" #: src/translate.c:205 src/translate.c:219 src/translate.c:232 #: src/translate.c:243 src/translate.c:261 src/translate.c:272 #: src/translate.c:287 msgid "string option interne" msgstr "internal string option" #: src/translate.c:206 src/translate.c:220 src/translate.c:233 #: src/translate.c:244 src/translate.c:262 src/translate.c:273 #: src/translate.c:288 msgid "]" msgstr "]" #: src/translate.c:207 msgid "" " Options experts, definies par l'utilisateur - lame (wav -> mp3) " msgstr " User-defined expert options - lame (wav -> mp3) " #: src/translate.c:208 msgid " Mp3 " msgstr " Mp3 " #: src/translate.c:209 msgid " Mode" msgstr " Mode" #: src/translate.c:210 msgid " Mode flux (streaming)" msgstr " Streaming" #: src/translate.c:211 msgid " Debit" msgstr "Bitrate" #: src/translate.c:212 msgid " Oggenc (fichier ogg): " msgstr " Oggenc (ogg file): " #: src/translate.c:214 msgid " Options OGGENC " msgstr " OGGENC Options " #: src/translate.c:215 msgid "Wiki " msgstr "Wiki " #: src/translate.c:216 src/translate.c:258 src/translate.c:284 #: src/translate.c:298 msgid "ManPage" msgstr "Man Page" #: src/translate.c:217 msgid " Web Oggenc " msgstr " Oggenc " #: src/translate.c:221 msgid "" " Options experts, definies par l'utilisateur - oggenc (wav -> ogg) " msgstr " User-defined expert options - oggenc (wav -> ogg) " #: src/translate.c:222 msgid " Oggenc " msgstr " Oggenc " #: src/translate.c:223 msgid "Taux de compression" msgstr "Compression level" #: src/translate.c:224 msgid " Flac (fichier flac): " msgstr " Flac (flac file): " #: src/translate.c:226 msgid " Options FLAC " msgstr " FLAC Options " #: src/translate.c:228 src/translate.c:269 msgid "Framasoft " msgstr "Framasoft " #: src/translate.c:229 msgid "ManPage " msgstr "Man Page " #: src/translate.c:230 msgid " Web Flac " msgstr " Flac " #: src/translate.c:234 msgid "" " Options experts, definies par l'utilisateur - flac (wav -> flac) " msgstr " User-defined expert options - flac (wav -> flac) " #: src/translate.c:235 msgid " Flac " msgstr " Flac " #: src/translate.c:236 msgid " Qualite" msgstr " Quality" #: src/translate.c:237 msgid " Mac (fichier ape): " msgstr " Mac (ape file): " #: src/translate.c:239 msgid " Options MAC " msgstr " MAC Options " #: src/translate.c:240 msgid "Wiki" msgstr "Wiki" #: src/translate.c:241 msgid " Web Mac " msgstr " Mac " #: src/translate.c:245 msgid " Options experts, definies par l'utilisateur - mac (wav -> ape) " msgstr " User-defined expert options - mac (wav -> ape) " #: src/translate.c:246 msgid " Mac " msgstr " Mac " #: src/translate.c:247 msgid "Compression" msgstr "Compression" #: src/translate.c:248 msgid "Son" msgstr "Channel mode" #: src/translate.c:249 msgid "Mode hybride" msgstr "Hybrid mode" #: src/translate.c:250 msgid "Fichier de correction" msgstr "Correction file" #: src/translate.c:251 msgid "Compression maximum" msgstr "Maximum compression" #: src/translate.c:252 msgid "Signature MD5" msgstr "MD5 signature" #: src/translate.c:253 msgid "Extra encode processing" msgstr "Extra encode processing" #: src/translate.c:254 msgid " WavPack (fichier wv): " msgstr " WavPack (wv file): " #: src/translate.c:256 msgid " Options WAVPACK " msgstr " WAVPACK Options " #: src/translate.c:257 msgid "Wiki " msgstr "Wiki " #: src/translate.c:259 msgid " Web Wavpack " msgstr " Wavpack " #: src/translate.c:263 msgid "" " Options experts, definies par l'utilisateur - wavpack (wav -> wv) " msgstr " User-defined expert options - wavpack (wav -> wv) " #: src/translate.c:264 msgid " Wavpack " msgstr " Wavpack " #: src/translate.c:265 msgid " MusePack (fichier mpc): " msgstr " MusePack (mpc file): " #: src/translate.c:267 msgid " Options MUSEPACK " msgstr " MUSEPACK Options " #: src/translate.c:270 msgid " Web Musepack " msgstr " Musepack " #: src/translate.c:274 msgid "" " Options experts, definies par l'utilisateur - musepack (wav -> mpc) " msgstr " User-defined expert options - musepack (wav -> mpc) " #: src/translate.c:275 msgid " Musepack " msgstr " Musepack " #: src/translate.c:276 msgid " Qualite VBR / Debit ABR" msgstr "VBR Quality / ABR rate" #: src/translate.c:277 msgid " VBR / ABR" msgstr " VBR / ABR" #: src/translate.c:278 msgid " Conteneur" msgstr " Container" #: src/translate.c:279 msgid " Faac (fichier .m4a): " msgstr " Faac (file .m4a): " #: src/translate.c:281 msgid " Options FAAC " msgstr " FAAC Options " #: src/translate.c:282 src/translate.c:296 msgid "Site officiel " msgstr "Official website " #: src/translate.c:283 src/translate.c:297 msgid "Web Info " msgstr "Info " #: src/translate.c:285 msgid " Web Faac " msgstr " Faac " #: src/translate.c:289 msgid "" " Options experts, definies par l'utilisateur - faac (wav -> m4a) " msgstr " User-defined expert options - faac (wav -> m4a) " #: src/translate.c:290 msgid " Faac " msgstr " Faac " #: src/translate.c:291 msgid " Stereo: Qualite en kbit/s" msgstr " Stereo: Quality in kbit/s" #: src/translate.c:292 msgid " Mono: Qualite en kbit/s" msgstr " Mono: Quality en kbit/s" #: src/translate.c:293 msgid " AacplusEnc (fichier .aac): " msgstr " AacplusEnc (file .aac): " #: src/translate.c:295 msgid " Options AacPlusEnc " msgstr " AacPlusEnc Options " #: src/translate.c:299 msgid " Web AacPlusEnc " msgstr " AacPlusEnc " #: src/translate.c:300 msgid " AacplusEnc " msgstr " AacplusEnc " #: src/translate.c:301 msgid "Artiste" msgstr "Artist" #: src/translate.c:302 src/translate.c:330 msgid "Titre" msgstr "Title" #: src/translate.c:303 msgid "Album" msgstr "Album" #: src/translate.c:304 msgid "Numero" msgstr "Number" #: src/translate.c:305 msgid "Genre" msgstr "Genre" #: src/translate.c:306 msgid "Annee" msgstr "Year" #: src/translate.c:307 msgid "Commentaire" msgstr "Comment" #: src/translate.c:308 msgid " Exportation de " msgstr " Export " #: src/translate.c:310 msgid " Preferences " msgstr " Preferences " #: src/translate.c:311 msgid "SCAN" msgstr "SCAN" #: src/translate.c:312 msgid " Installation " msgstr " Installation " #: src/translate.c:313 msgid " Votre systeme utilise ... " msgstr " Your system uses ... " #: src/translate.c:314 msgid "" "\n" "Pour installer les programmes externes requis,\n" "veuillez utiliser l'installateur de votre distribution Gnu/Linux.\n" msgstr "" "\n" "To install the required external software,\n" "please use the package manager of your Gnu/Linux distribution.\n" #: src/translate.c:315 msgid "" "Le programme XCFA_INSTALL_ALL ecrit en Perl vous sera utile en ligne de " "commande pour une installation des programmes complementaire." msgstr "" "The program XCFA_INSTALL_ALL written in Perl will be useful on the command " "line for installation of supplementary programs" #: src/translate.c:316 msgid " Informations " msgstr " Informations " #: src/translate.c:317 msgid " Application externes " msgstr " External programs " #: src/translate.c:318 src/translate.c:321 msgid "parametres:" msgstr "parameters:" #: src/translate.c:319 msgid "" "\n" " konqueror : newTab\n" " iceweasel : -new-window -new-tab \n" msgstr "" "\n" " konqueror : newTab\n" " iceweasel : -new-window -new-tab \n" #: src/translate.c:320 msgid "Navigateur" msgstr "browsers" #: src/translate.c:322 msgid "Lecteurs audio" msgstr "Audio player" #: src/translate.c:323 msgid " Navigateurs / Lecteurs audio " msgstr " Browsers / Audio player" #: src/translate.c:324 msgid " Applications externes " msgstr " External programs " #: src/translate.c:325 msgid "Scan en cours ..." msgstr "Scan in progress ..." #: src/translate.c:326 msgid "Scan du support en cours ..." msgstr "Media scan in progress..." #: src/translate.c:327 msgid "Detail extraction mode expert" msgstr "Rip details - expert mode" #: src/translate.c:328 msgid "Modification des champs" msgstr "Modify fields" #: src/translate.c:329 msgid "" "\n" "Modification des champs\n" msgstr "" "\n" "Modify fields\n" #: src/translate.c:337 src/translate.c:356 src/translate.c:377 #: src/translate.c:389 src/translate.c:400 src/translate.c:408 msgid " Visibilite " msgstr " Visibility " #: src/translate.c:338 src/translate.c:357 src/translate.c:378 #: src/translate.c:390 src/translate.c:401 src/translate.c:409 msgid "Nom a gauche" msgstr "Name to left" #: src/translate.c:339 src/translate.c:358 src/translate.c:379 #: src/translate.c:391 src/translate.c:402 src/translate.c:410 msgid "Nom au centre" msgstr "Name centred" #: src/translate.c:340 src/translate.c:359 src/translate.c:380 #: src/translate.c:392 src/translate.c:403 src/translate.c:411 msgid "Nom a droite" msgstr "Name to right" #: src/translate.c:341 msgid "DVD" msgstr "DVD" #: src/translate.c:346 src/translate.c:367 msgid "Wavpack" msgstr "Wavpack" #: src/translate.c:350 src/translate.c:371 msgid "Musepack" msgstr "Musepack" #: src/translate.c:360 msgid "CD" msgstr "CD" #: src/translate.c:375 msgid "Replaygain" msgstr "Replaygain" #: src/translate.c:381 msgid "CONVERSIONS" msgstr "CONVERSIONS" #: src/translate.c:382 msgid "Hertz" msgstr "Hertz" #: src/translate.c:383 msgid "New Hertz" msgstr "New Hertz" #: src/translate.c:384 msgid "Voie" msgstr "Voice" #: src/translate.c:385 msgid "New Voie" msgstr "New Voice" #: src/translate.c:386 msgid "Bits" msgstr "Bits" #: src/translate.c:387 msgid "New Bits" msgstr "New Bits" #: src/translate.c:393 msgid "WAV" msgstr "WAV" #: src/translate.c:396 msgid "New Bitrate" msgstr "New Bitrat" #: src/translate.c:397 msgid "Size" msgstr "Size" #: src/translate.c:404 msgid "MP3-OGG" msgstr "MP3-OGG" #: src/translate.c:412 msgid "TAGS" msgstr "TAGS" #: src/translate.c:413 msgid "Selection globale" msgstr "Select all" #: src/translate.c:414 msgid "Deselection globale" msgstr "Clear all" #: src/translate.c:415 msgid "Retour" msgstr "Return" #: src/translate.c:416 msgid "About X Convert File Audio" msgstr "About X Convert File Audio" #: src/translate.c:417 msgid "Author" msgstr "Author" #: src/translate.c:418 msgid "Licence" msgstr "License" #: src/translate.c:419 msgid " Informations " msgstr " Informations " #: src/translate.c:420 msgid " Machine " msgstr " Computer " #: src/translate.c:421 msgid "Ingenieurs du son\n" msgstr "Sound engineers\n" #: src/translate.c:422 msgid "" "\n" "Graphisme\n" msgstr "" "\n" "Graphics\n" #: src/translate.c:423 msgid "" "Traduction Anglaise\n" "\n" "\n" msgstr "" "English translation\n" "\n" "\n" #: src/translate.c:424 msgid "" "\n" "Traduction Allemande" msgstr "" "\n" "German translation" #: src/translate.c:425 msgid "" "\n" "Codeur Xcfa" msgstr "" "\n" "XCFA programmer" #: src/translate.c:426 msgid "" "\n" "ElementSpeak pour Xcfa " msgstr "" "\n" "ElementSpeak for XCFA··" #: src/translate.c:427 msgid "" "\n" "Codeur pages Web" msgstr "" "\n" "Webmasters" #: src/translate.c:428 msgid "" "\n" "Traduction Italienne" msgstr "" "\n" "Italian translation" #: src/translate.c:429 msgid "" "\n" "\n" "Pages a visiter\n" msgstr "" "\n" "\n" "Useful links\n" #: src/translate.c:430 msgid "Linux On The Root" msgstr "Linux On The Root" #: src/translate.c:431 msgid "Frugalware" msgstr "Frugalware" #: src/translate.c:432 msgid "Road2Mayotte" msgstr "Road2Mayotte" #: src/translate.c:433 msgid "La Linuxerie" msgstr "La Linuxerie" #: src/translate.c:434 msgid "Audioptimisation by Dzef" msgstr "Audioptimisation by Dzef" #: src/translate.c:435 msgid "Tuxfamily" msgstr "Tuxfamily" #: src/translate.c:436 msgid "Framasoft" msgstr "Framasoft" #: src/translate.c:437 msgid "Ekd (EnKoDeur-Mixeur)" msgstr "Ekd (EnKoDeur-Mixeur)" #: src/translate.c:438 msgid "Bishop's page" msgstr "Bishop's page" #: src/translate.c:439 msgid "Je suis libre" msgstr "Je suis libre" #: src/translate.c:440 msgid "Debian Multimedia" msgstr "Debian Multimedia" #: src/translate.c:441 msgid "" "\n" "Forum\n" msgstr "" "\n" "Forum\n" #: src/translate.c:442 msgid "XCFA Vorstellung " msgstr "XCFA Vorstellung " #: src/translate.c:443 msgid "XCFA LinuxForen.de" msgstr "XCFA LinuxForen.de" #: src/translate.c:444 msgid "Forum Xcfa" msgstr "Forum Xcfa" #: src/translate.c:445 msgid "" "\n" "Documentation\n" msgstr "" "\n" "Documentation\n" #: src/translate.c:446 msgid "Wiki Xcfa par Shankarius" msgstr "XCFA wiki by Shankarius" #: src/translate.c:447 msgid "Doc Xcfa par Patachon" msgstr "XCFA doc. by Patachon" #: src/translate.c:448 msgid "Ogg Vorbis explique par Shankarius" msgstr "Ogg Vorbis explained by Shankarius" #: src/translate.c:449 msgid "La normalisation expliquee par Dzef" msgstr "Normalisation explained by Dzef" #: src/translate.c:450 msgid "Xcfa sur Linux On The Root" msgstr "XCFA on Linux On The Root" #: src/translate.c:451 msgid " Contributions " msgstr " Contributions " #: src/translate.c:452 msgid " License " msgstr " Licence " #: src/translate.c:453 msgid "OK" msgstr "OK" #: src/web.c:173 src/web.c:234 msgid "PAS de navigateur present" msgstr "No web browser" #: src/web.c:174 msgid "L'acces au web est impossible car aucun navigateur" msgstr "No Web access: no web browser" #: src/web.c:176 msgid "n'est present dans votre configuration." msgstr "found in your system" #: src/web.c:178 msgid "Veuillez installez un navigateur." msgstr "Please install a web browser" #: src/web.c:188 msgid "Vous devez ouvrir l'acces internet" msgstr "You need to enable web access" #: src/web.c:236 msgid " L'acces au web est impossible car aucun navigateur" msgstr " No Web access: no web browser" #: src/web.c:238 msgid " n'est present dans votre configuration." msgstr " found in your system" #: src/web.c:240 msgid " Veuillez installez un navigateur." msgstr " Please install a web browser" #: src/web.c:250 msgid "L'application est absente." msgstr "Application is missing." #: src/web.c:251 msgid "Veuillez installer : " msgstr "Please install : " #: src/win_about.c:130 msgid " Xcfa sur le web" msgstr " XCFA on the web" #: src/win_about.c:180 msgid "" "\n" "Au tout debut:\n" "\n" "Serres Patrick, Hamann Regis, Fabien Gregis, @Dzef, @alteo_gange, \n" "@Leonux, @zarer, @Shankarius, @bishop, @Ludo, @Patachonf,\n" "... ;-)\n" "\n" "" msgstr "" "\n" "In the beginning:\n" "\n" "Serres Patrick, Hamann Regis, Fabien Gregis, @Dzef, @alteo_gange, \n" "@Leonux, @zarer, @Shankarius, @bishop, @Ludo, @Patachonf,\n" "... ;-)\n" "\n" "" #: src/win_scan.c:161 msgid "Waiting ..." msgstr "Waiting ..." #~ msgid "Quantification" #~ msgstr "Quantification" #~ msgid "Voie" #~ msgstr "Channel" #~ msgid " Frequence - Hertz " #~ msgstr " Frequency -Hertz " #~ msgid "Cellule" #~ msgstr "Cell" #~ msgid "Colonne" #~ msgstr "Column" #~ msgid " Cacher Xcfa " #~ msgstr " Hide Xcfa " #~ msgid " Montrer Xcfa " #~ msgstr " Show Xcfa " #~ msgid " Quitter Xcfa " #~ msgstr " Quit Xcfa " #~ msgid "" #~ "XCFA\n" #~ "Programme pour convertir les fichiers audio." #~ msgstr "" #~ "XCFA\n" #~ "Program for converting audio files." xcfa-4.3.6/po/nl.gmo0000644000175000017500000014044712224542443011135 00000000000000$Y,(55855g6{66 666 67,7I7 "808L8$S8&x8(88889/95L99!9999:/:F:_:$y:"::*: ; ; ;";A;];{;$;;;.;/)<Y<+v<*<<<<=+=@=Z=r=======>>.>C>[>s>>>(> > >>>??:?Q?V?/\?"? ????? @,@2@9@$Y@~@@ @@!@ @@@@ AA%A +A5A;ARA[A'zAAA AA AAB4BPBlBuB }BBBB(BBBC+ C*9CdC jCtCCD(D=D>EPQE,E8E8FZAF/FBF$G74G"lG$G"GGUmHYH;I5YIHIII;J LJ XJbJkJ}J J JJJ J J J J J JJK K $K 1K%>K-dKKK$K!KLL#5LYLyLLLLL"LM)M=M QMHrMIMHNGNNLNJNJ.O,yO/OO!O P"P @PaP8RS&S,T+0T'\TT T(T TTHT/BUrUUUUUUUU V V#2VVVkV VV*VVZVBWSWmW WWWWWWW rXXXTXIX CYQY3dY6YYYYZ9.ZhZlZZ*ZZ6ZZ[[[-[3[ 7[A[h][[[[.[0\O\f\\\ \\\\'\] ]#]@]Q](W]!]]/]]^ ^?^\^"n^^^9^^ _ _ -_9_*M_x__P__`?,`)l````````a,aEa[ata'aa0aabb b'6bG^b"bb bb%bc0cHc\c tc cc cccc c d "d0d5d m[mam'umm mm-m%mnn $n/n5n;n$@n&en"n&n-nEoJoeo|o o o o!o o oo p p &p 1p xTx"Yx<|xx xxxxxxyy7yKy`y{yy4yy+z61zhzozzzz zzz#z!{0{J{`{8s{ {+{{8{.|4|L|T|'h|'|4|0|7} V}c};e}}};}:}7:~\r~8yĀ!ۀ 5Pl H Vd%k') #? ]~Ѓ4Ni"Ä ۄ 0K f"Ѕ% &/VrɆ-B Q _ mzƇ ܇ ( 0 >KRfz׈ ":Mflt#؉߉$ %4 LVj p{ '֊  "-F_t (ԋ!;()d $;;KZ';Ύ9 ID-:%3"Q"t"zG5[}9ّ/<C: " +8A JW ` m z  "˓7&; Yzϔ.D^~8ѕ9 8D7}<::-(h-ϗ<uW"`$$ ͛ $ ?MD_,ќ'6FXk ȝ %#HA  ɞ՞ E3 yNF <J3]+ؠޠ7@D_+f;ӡ Z$*&ɢ, AOW'\ ţգ!ܣ )(Ri ۤ,.HP Ye+yUڥ0H)Y%Ҧ֦ 3Id(v -٧ J'r  ̨ *H LV[k ~  ũ ϩ ٩#"7 O[ lx Ȫ Ԫ ު  0=Y"y+$$%zJ'Ŭ?-,2*_5ҭ֭)2Lj0}O #, L Z {   ȯ үܯ '  ( 5BZn q!{ "ް 1o@0'#+37F~ $&" %0-V:׳ * G R] t  Ҵv/z Ե ߵ  !&#Ei Ƕܶ  0> CPkҷ6<AFX7] 0 %#")(Lu {ȹ"B4wк "1;m|.ϻ ӻ߻/L ]k,޼(6T[o ҽ! 8M1^ 8;  %-9g-|)7Կ ;Vh;x:7w+I/*P\/x8&>);D^Z a_$&Mgc 'n&;.[yTl^U X]}r;|?C 1~b78GWZJO-A <RB2KIp|Y Vs#UF#d"g '6c!FM`S<%m]I+wQ> 0}PD(Lm AO6AFx|GZCf5@"b[hEu"j0T isBtevKz9}f)a{,R `wQ7_%Y]ao7^ r)vC*<2?V=u:!\Hp+_j$l3-1qtx.e1i?.qu2GzPcE4m=`L#5bVi=4[~o0zHyhW8d$e%-3:@k(@jkdMJpn> XoJ!v BQ:*f4~9/TRlWD,X3U6E'q{S 5NOrH({\Nt9YnkhsNL Kg y,S Pages a visiter konqueror : newTab iceweasel : -new-window -new-tab Pour installer les programmes externes requis, veuillez utiliser l'installateur de votre distribution Gnu/Linux. Codeur Xcfa Codeur pages Web Documentation ElementSpeak pour Xcfa Forum Graphisme Modification des champs Traduction Allemande Traduction Italienne Au tout debut: Serres Patrick, Hamann Regis, Fabien Gregis, @Dzef, @alteo_gange, @Leonux, @zarer, @Shankarius, @bishop, @Ludo, @Patachonf, ... ;-) [Piste: %d] et dont le nom sera: --- ATTENTION: Il faut installer %s ATTENTION: Il faut installer %s%s ATTENTION: Il faut installer %s%s%s Deselection globale Deselection horizontale Deselection verticale Deselection verticale Deselection verticale L'acces au web est impossible car aucun navigateur Selection ALBUM Selection Expert horizontale Selection Expert verticale Selection NETTOYER Selection PISTE Selection horizontale Selection verticale Selection verticale Selection verticale Veuillez installez un navigateur. Vous ne devriez pas utiliser XCFA sous ROOT ! n'est present dans votre configuration. VBR / ABR 8 bits 8000 Hertz Lame (fichier mp3): ... les paquets: ? ... les paquets: deb ... les paquets: fpm ... les paquets: pkg.tar.xz ... les paquets: rpm ... les paquets: tgz Choix du peripherique / Lecture du CD Choix du peripherique / Lecture du DVD Dossier de stockage Dossier provisoire des conversions Jouer une musique en fin de tache Options AacPlusEnc Options FAAC Options FLAC Options LAME Options MAC Options MUSEPACK Options OGGENC Options WAVPACK Priorite systeme Web AacPlusEnc Web Faac Web Flac Web Lame Web Mac Web Musepack Web Oggenc Web Wavpack Web cdparanoia *.m3u et xspf: Annee: Genre: Piste: A program to send desktop notifications AAC+ encoder AacplusEnc Annee: Application externes Applications externes Arrangement des titres du CD Audio Codeur freeware CD CD Cherche des renseignements sur les formats mp3 Cherche les informations d'un dvd Conteneur Contributions Conversion wav : flac Conversion wav : mp3 Conversion wav : ogg Creation d'un fichier unique DVD Debit Decode ATSC A/52 audio streams Decoupage de fichiers sans decodage Extracteur cd audio Faac Fichiers Flac Forte compression au format wave General Genre: Informations Lecteur et extracteur License MPEG-4 AAC decodeur Mac Machine Mode Mode flux (streaming) Modif.: Modification des tags Freedb Monkey's Audio Console Front End : APE Mono: Qualite en kbit/s Mp3 Mp3-Ogg MusePack commandline utilities Musepack Navigateurs / Lecteurs audio Normaliseur de fichier mp3 Normaliseur de fichier ogg Normaliseur de fichier wav Oggenc Piste: Pochette Preferences Qualite Qualite VBR / Debit ABR Read CD and get CDDB discid information Split Stereo: Qualite en kbit/s Tags Transformation universelle de fichiers son WAVPACK Hybrid Lossless Audio Compressor Wav Wavpack $ xcfa -verbose%a [ %a="Artist" ] %b [ %b="Album" ] %Tl - Tetsumaki lower Transforme la chaine en minuscule sauf le premier caractere. Dans le champs 'Titre' depuis [ Modification des tags FreeDB ], le ou les caracteres devant etre conserves doivent etre precedes par le caractere %%d) Lecture PASS 2/2 'dvd+rw-mediainfo' pour identifier le(s)(Click Droit = Menu) / Ajustement COLLECTIF maximal du volume(Click Droit = Menu) / Ajustement INDIVIDUEL maximal du volume(Click Droit = Menu) / Ce fichier sera dirige apres traitement vers la corbeille(Click Droit = Menu) / Choix de la frequence(Click Droit = Menu) / Choix du codage en nombre de bits(Click Droit = Menu) / Choix du nombre de pistes (voies)(Click Droit = Menu) / Cliquez ici pour envoyer ce fichier apres traitement a la corbeille(Click Droit = Menu) / En attente de selection.(Click Droit = Menu) / En attente de selection. Le fichier existe.(Click Droit = Menu) / En selection.(Click Droit = Menu) / En selection. Le fichier existe.(Click Droit = Menu) / Mode album.(Click Droit = Menu) / Mode effacer.(Click Droit = Menu) / Mode piste.(Click Droit = Menu) / PEAK-ALBUM: Amplification maximale du volume pour un groupe de fichiers en respectant les ecarts de niveau entre chacun d'eux.(Click Droit = Menu) / PEAK: Amplification maximale du volume pour chaque de fichier.(Click Droit = Menu) / Possibilite d'ajustement INDIVIDUEL ou COLLECTIF maximal du volume(Click Droit = Menu) / ReplayGain: En attente de selection.(Click Droit = Menu) / Selection avec options expert.(Click Droit = Menu) / Selection avec options expert. Le fichier existe.---MENU TRASH-----------------SELECTION VERTICALE-------> Deja %d fois 2 lectures du segment %d! Abandon :/ 0 (Rapide)00h00m00s1 piste1 (fast / rapide)16 bits2 pistes22000 Hertz24 bits32 bits32000 Hertz4 pistes44056 Hertz44100 Hertz48000 Hertz6 pistes6 (very slow / tres lent)64 bits8 (Lent)88200 Hertz96000 Hertz AacplusEnc (fichier .aac): Au moins deux selections colonne Wav Choix niveau dBFS: Creation Cue cd Destination des conversions Destination des fichiers Eject Exportation de Extraction cd-audio avec: Faac (fichier .m4a): Flac (fichier flac): Importer Informations Installation Mac (fichier ape): MusePack (fichier mpc): Nettoyer Normalise: Normaliser Oggenc (fichier ogg): Options experts, definies par l'utilisateur - faac (wav -> m4a) Options experts, definies par l'utilisateur - flac (wav -> flac) Options experts, definies par l'utilisateur - lame (wav -> mp3) Options experts, definies par l'utilisateur - mac (wav -> ape) Options experts, definies par l'utilisateur - musepack (wav -> mpc) Options experts, definies par l'utilisateur - oggenc (wav -> ogg) Options experts, definies par l'utilisateur - wavpack (wav -> wv) Parametrage CDDB: [ Nom du serveur ] Parametrage PROXY: [ serveur ] [ port ] Serveur Vers 2CH: Sub / Ambiance Visibilite Votre systeme utilise ... WavPack (fichier wv): %a - artiste %b - titre de l'album %c - numero de la piste %d - titre de la chanson %e - annee %g - genre %f - creation d'un fichier *.m3u et *.xspf %na - no accent %u - remplacement de caracteres: %u(AB=C) %u( =_) %Tl - Tetsumaki lower%a - artiste %b - titre de l'album %c - numero de la piste %d - titre de la chanson %e - annee %g - genre %na - no accent %Tl - Tetsumaki lower %u - remplacement de caracteres: %u(AB=C) %u( =_)0%s Copie fichier: %d%%%s Restitution fichier: %d%%%s Traitement Mplayer: %d%%%s Traitement Sox: %d%%Trash files ...AuthorCe fichier ne peut etre extrait !DiscIdFramasoft Generation d'un rapport pour: cdparanoia mode expert multi passesGestion des tags, titres et fichiers cueHomePageImport images webIngenieurs du son Lecteurs audioLicenceManPageManPage ManPage ManPage NavigateurScan du support en cours ...Site officielSite officiel TexteTitre CDTotal fichiers: %d, Selections: %dTraduction Anglaise Utilisez le glisser / deplacer - Effacer une image avec Ctrl + ClickWeb Info Wiki Wiki mp3 WikiWiki Wiki []string option interneIndiquez ici le dossier sur votre systeme qui servira de lieu de stockage provisoire pendant les differentes conversions. Album:Artiste:Commentaire:Le fichier LogExpertMode.txt sera cree dans le dossier des extractionsPret pour l'import d'un fichier CUE, WAV, FLAC, OGG, MP3, APE, WMATitre:parametres: Xcfa sur le web= Vous avez probablement trouve un bug dans XCFA = Adressage memoire invalide A proposABR / CBR / VBR / VBR-NEWAJouter de nouvelles images.ATTENTION: Pas assez de place dans le dossier temporaire.AacAbout X Convert File AudioActionAdapte l'echelle a la taille de la fenetreAideAjout plage: Click bouton centre / Zoom: Ctrl+ScrollAjouter du texte editable.AlbumAlbum:All Files (*.*)AnneeApeAppliquerAppliquer les modificationsApres une lecture de CD et un ajout d'etiquette, ce menu permet la mise en forme des titres, auteurs ...Arret par l'utilisateurArtisteArtiste:Aucun fichier de musique associe au cue-file !Aucun fichier de musique associe dans le dossierAucun fichier trouve !Audioptimisation by DzefAugmentation de l'echelle.Augmente l'agrandissementBishop's pageBitrateBitsBonne qualite de compressionCAPACITE DOSSIER TEMPORAIRE TROP FAIBLECDCONVERSIONSCe fichier appartient a XCFAChapitre: [%02d]ChoixChoix d'un chemin de stockage des imagesChoix d'un dossier de destinationChoix d'un fichierChoix d'un fichier CUE WAV FLAC OGG MP3 APE WMAChoix d'un fichier musicalChoix d'un lieu de sauvegardeChoix d'une nouvelle destinationChoix d'une nouvelle police.Choix de fichiersChoix de fichiers FLAC MPC OGG MP3Choix de fichiers MP3/OGGChoix de fichiers WAVChoix parmis les differentes bases de donnees pour le CD.Click droit: acces popupCommentaireCommentaire:CompressionCompression maximumControle du contenu des fichiers extraits Conversion vers %s canaux.Conversion vers 2 canaux.Conversion vers 2 canaux. Un second click activera la conversion vers %s canaux.Conversion(s) vers la sourceCouldn't find CDCreation d'un fichier cue unique depuis une lecture du cd audioCreation d'un fichier unique au format: Creation fichier cue uniquementCritere de recherche absent !!DVDDebian MultimediaDebitDeplierDeselection globaleDetail extraction mode expertDiminution de l'echelle.Doc Xcfa par PatachonDuree de la plage activeERREUR datas proxyERREUR: Lieu de stockage non autorise !Echelle a 100%.Echelle compatible avec la taille de la fenetre.Ecriture du fichier cueEffacerEffacer l'imageEkd (EnKoDeur-Mixeur)Emplacement de sauvegarde des fichiers.En attente de selection. Un click activera la conversion vers 2 canaux.Enregistrer la page au format png.ErreurErreur SOXErreur de choix de fichierErreur de donnees dans le fichier CUEErreur de lecture !Erreur depuis MPLAYER !Erreur depuis SOX !Extra encode processingExtraction mode expert PASS 1/2 Extraction mode expert PASS 2/2 ExtraireFREQUENCEFichierFichier de correctionFichier structure DVDFichier videFichier_complet_%02d_%sFix (scan)RmsFlacFormatForum XcfaFramasoftFrequenceFrugalwareGenreHertzIl faut installer le programme: lsdvdIl ne restera qu'a ajuster les plages pourImage au dernier planImage au dessusImage au premier planImage en dessousImportation des images depuis le Web.Importation du titre du CD.Importer des images pour la pochetteIndex de debutIndex de finIndex de lectureJe suis libreL'acces au web est impossible car aucun navigateurL'application est absente.La LinuxerieLa liaison internet est absenteLa normalisation expliquee par DzefLa solution est d'importer le fichier deLe DVD est absent du lecteur.Le fichier CUE sera enregistre vers 'Destination des fichiers'.Le fichier ne contient aucune donnee !!!Le package 'dvd+rw-tools' est absentLe programme SOX de votre distributionLe programme XCFA_INSTALL_ALL ecrit en Perl vous sera utile en ligne de commande pour une installation des programmes complementaire.Le programme externe d'extraction est absent.Le resultat du Split sera dirige vers 'Destination des fichiers'.LectureLecture de 5 secondes apres le marqueur de debutLecture de 5 secondes avant le marqueur de finLes types de fichiers acceptes sont: WAV FLAC MP3 OGG APE WMA CUELinux On The RootM4aMAX FICHIERS ATTEINT = %dMODE ADMINISTRATEURMP3-OGGMPEG-4 File Format (MP4) - Extension .m4aMPLAYER deja en actionMPLAYER est deja utilise !!Mauvais type de fichierMeilleure qualite de compressionMenu: Click droit / Ajout plage: Click bouton centre / Zoom: Ctrl+ScrollMix (scan)Rms/albumModeMode hybrideMode normalMode rapide de compressionModification des champsModifiez la chaine de recherche etMono forceMp3MpcMusepackMusique en attente.Musique en ecoute.New BitrateNew BitsNew HertzNew VoieNiceNo Audio CDNomNom (sans extention) du fichier a sauvegarder.Nom a droiteNom a gaucheNom au centreNom de fichier absent !!Nom de fichier unique absentNonNormaliseNormalise: En attente de selection.Nouveau bitrateNumNumeroOKOggOgg Vorbis explique par ShankariusOkOuiOutilsOuvre un fichierPACKAGE dvd+rw-tools ABSENTPAS de lecteur audio presentPAS de navigateur presentPEAK-ALBUM: Amplification maximale du volume pour un groupe de fichiers en respectant les ecarts de niveau entre chacun d'eux.PEAK: Amplification maximale du volume pour chaque de fichier.PISTEPackage NOT FOUND !Package checkmp3 (mp3check) NOT FOUND !PaquetPar defautParametres par defautPas assez de place dans le dossier temporairePas de fichier WAV dans le cue-file !PausePeakPeak/albumPistePlagePlayPlease, install package [ cdda2wav ]Please, install package [ cdparanoia ]Please, install package [ icedax ]Please, install packages [ cd-discid ]Please, install packages [ icedax, cdda2wav ]Pour evaluer les templates, vous devez activer une lecture de cdaudioPour resoudre ce probleme:Production fichier CueQUANTIFICATIONQualite 0Qualite 1Qualite 10 (Meilleure qualite)Qualite 10 [ Meilleure qualite ]Qualite 2Qualite 3Qualite 3 [ Defaut ]Qualite 4Qualite 5Qualite 6Qualite 7Qualite 8Qualite 9Qualite -1 (Moins bonne qualite)Qualite -1 [ Moins bonne qualite ]QuantificationQuitterRMS-ALBUM: Ajustement du volume moyen pour un groupe de fichiers en respectant les ecarts de niveau moyen entre chacun d'eux.RMS: Ajustement du volume moyen de chaque de fichier.Reduit l'agrandissementRemet l'echelle a 100%ReplayGainReplaygainReplierRetourRetourner horizontalementRetourner verticalementRoad2MayotteSCANSaisissez ici un critere de recherche d'images.Saisissez un nom de fichier sans extentionSaisissez une chaine de recherche etSauvegarde au format PNGSauvegarde aux formats PDF et PostScriptSauvegarde le fichierScan ...Scan en cours ...Select type: --Selecteur precedantSelecteur suivantSelection globaleSelectionnez un autre fichier.Signature MD5SizeSonSox et Mplayer absentsSox et Mplayer sont absents de votreSplitStatusStereoSuppression pendant la lecture impossibleSupprimer l'image de la listeSupprimer l'image en selectionSupprimer la plage activeSuprimer tous les marqueurs pour les remplacer par un marqueur uniqueTAGSTailleTaux de compressionTempsTemps inferieur a 5 secondes entre marqueur et curseur !Texte gras.Texte italique.TimeTitreTitre [%02d ** ]Titre [%02d]Titre:Titre_%02d_Chapitre_%02d_audio_%02d_%sTitresTotal selection%s: %d, 2ch: %dTransport Stream (ADTS) - Extension .aacTrashTuxfamilyTypeV0 (meilleure qualite)V0 [ meilleure qualite ]V4 [ defaut ]V9 (moins bonne qualite)V9 [ moins bonne qualite ]Valeur d'origineVeuillez deselectionner des PeakGroup.Veuillez installer : Veuillez installer checkmp3 ou mp3check pour la prise en compte des fichiers mp3Veuillez installez un lecteur audio.Veuillez installez un navigateur.Veuillez l'installer car j'ai besoin deVeuillez les installer pour pouvoir continuer.Veuillez recommencer.Veuillez renseigner les champs du proxyVeuillez saisir un nom pour le fichier uniqueVeuillez selectionner un fichier de type WAV FLAC MP3 OGG APEVisibilite des champsVoieVous devez ouvrir l'acces internetVous pouvez activer XCFA en ligne de commande avec: WAVWaiting ...WavWavPWavpackWiki Xcfa par ShankariusXCFA LinuxForen.deXCFA Vorstellung XCFA: Conversions WAV TO WAVXCFA: Extraction CDXCFA: Extraction DVDXCFA: Modification bitrateXCFA: Traitement fichiersXcfa sur Linux On The Root[Erreur du segment numero: %d] %d) Lecture PASS 1/2 [Recherche des fichiers images]a generer une erreur pendant la conversion.braindead : extreme high quality : 232 .. 278 kbit/sbuttoncd-discid NOT FOUNDcdda2wav / icedaxcdda2wav NOT FOUNDcdda2wav and icedax NOT FOUNDcdparanoiacdparanoia NOT FOUNDcdparanoia mode expertcdparanoia mode expert multi passesconfiguration.correspondant aux plages.dans le module Split.de votre systeme !definit le serveur a contacter pour les recherches titredu cue-filegenerer un nouveau cue-file ou des decoupesicedax NOT FOUNDinsane : extreme high quality : 232 .. 268 kbit/slabellecteur(s) de cd / dvd.lecturelsdvd est absent !musique qui sera reconnu et pre-decoupen'est present dans votre configuration.pour consulter le type d'erreur renvoye par mplayer.pour consulter le type d'erreur renvoye par sox.radio : medium (MP3) quality : 112 .. 152 kbit/srecommencez.sstandard : high quality (dflt) : 142 .. 184 kbit/sstereo left/rightstereo mid/sidetelephone: lowest quality : 32 .. 48 kbit/sthumb : low quality/internet : 58 .. 86 kbit/sxtreme : extreme high quality : 168 .. 212 kbit/sProject-Id-Version: xcfa 4.2.8 Report-Msgid-Bugs-To: xcfa@tuxfamily.org POT-Creation-Date: 2013-10-07 16:28+0200 PO-Revision-Date: 2010-08-21 18:45+0100 Last-Translator: Gerry Butler Language-Team: English Language: en MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Useful links konqueror : newTab iceweasel : -new-window -new-tab To install the required external software, please use the package manager of your Gnu/Linux distribution. XCFA programmer Webmasters Documentation ElementSpeak for XCFA·· Forum Graphics Modify fields German translation Italian translation In the beginning: Serres Patrick, Hamann Regis, Fabien Gregis, @Dzef, @alteo_gange, @Leonux, @zarer, @Shankarius, @bishop, @Ludo, @Patachonf, ... ;-) [Track: %d] Named: --- WARNING : you need to install %s WARNING : you need to install %s%s WARNING : you need to install %s%s%s Deselect all Horizontally deselect Vertically deselect Vertically deselect Vertically deselect No Web access: no web browser ALBUM selection Horizontal expert select Vertical expert select ERASE selection TRACK selection Horizontally select Vertically select Vertically select Vertically select Please install a web browser You should not use XCFA under ROOT ! found in your system VBR / ABR 8 bits 8000 Hertz Lame (mp3 file): ... Packets: ? ... Packets: deb ... Packets: fpm ... Packets: pkg.tar.xz ... Packets: rpm ... Packets: tgz CD player DVD player / Import files File storage Conversions temporary folder Play music at the end of task AacPlusEnc Options FAAC Options FLAC Options LAME Options MAC Options MUSEPACK Options OGGENC Options WAVPACK Options System priority AacPlusEnc Faac Flac Lame Mac Musepack Oggenc Wavpack Web cdparanoia m3u and xspf: Year :Genre :Track: A program to send desktop notifications AAC+ encoder AacplusEnc Year: External programs External programs Arrangement of CD titles MPEG-4 and MPEG-2 AAC encoder CD CD Check validity of mp3s Read the contents of a DVD Container Contributions Create wav to flac Create mp3 audio files Convert wav : ogg Creating a single file DVD Bitrate Decode ATSC A/52 audio streams Split mp3/ogg without decoding InCrEdible Digital Audio eXtractor Faac Files Flac High compression for waveform files General Genre: Informations Video and audio player Licence MPEG-4 AAC decoder Mac Computer Mode Streaming Edit: Freedb tags modification Monkey's Audio Console Front End : APE Mono: Quality en kbit/s Mp3 Mp3-Ogg MusePack commandline utilities Musepack Browsers / Audio player Lossless mp3 normaliser ogg file normaliser wav file normaliser Oggenc Track: CD Cover Preferences QualityVBR Quality / ABR rate Read CD and get CDDB discid information Split Stereo: Quality in kbit/s Tags Sound eXchange, the Swiss Army knife of audio manipulation Wavpack Hybrid Lossless Audio Compressor Wav Wavpack $ xcfa -verbose%a [ %a="Artist" ] %b [ %b="Album" ] TI% - Tetsumaki lower Converts the string to lowercase except for the first character In the fields 'Title' since [Changing FreeDB tag] the character or characters to be retained must be preceded bycharacter %%d) Read PASS 2/2 'Dvd + rw-mediainfo' to identify the(Click Droit = Menu) / COLLECTIVE maximum volume adjustment(Click Droit = Menu) / INDIVIDUAL maximum volume adjustment(Right Click = Menu) / This file will be sent to the trash after processing(Right Click = Menu) / Select frequency(Right Click = Menu) / Encoding selection in number of bits(Right Click = Menu) / Select number of tracks (channels)(Click Droit = Menu) / Click here to send the processed file to the trash(Right click = Menu) / Waiting for selection.(Right click = Menu) / Waiting for Selection. File exists.(Right click = Menu) / Selected files(Right click = Menu) / Selected files. File exists.(Click Droit = Menu) / Album mode.(Click Droit = Menu) / Erase mode.(Click Droit = Menu) / Track mode.(Right click = Menu) / Maximum volume amplification of a group of files keeping the level difference between each of them(Right click = Menu) / PEAK: Maximum volume amplification for each file(Right click = Menu) / Possibilities for individual adaptation or maximum collection volume(Click Droit = Menu) / ReplayGain: Waiting for selection.(Right click = Menu) / Selection - expert mode.(Right click = Menu) / Selection - expert mode. File exists.---TRASH MENU-----------------VERTICAL SELECTION--------> Segment %d already read two %d times! Abandon :/ 0 (Fast)00h00m00s1 track1 (fast)16 bits2 track22000 Hertz24 bits32 bits32000 Hertz4 track44056 Hertz44100 Hertz48000 Hertz6 track6 (very slow)64 bits8 (Slow)88200 Hertz96000 Hertz AacplusEnc (file .aac): Make at least two selections in the Wav column dBFS level: CD cue file creation Export converted files: Save location: Eject Export Rip audio-CD with: Faac (file .m4a): Flac (flac file): Import Informations Installation Mac (ape file): MusePack (mpc file): Clear Normalise: Normalise Oggenc (ogg file): User-defined expert options - faac (wav -> m4a) User-defined expert options - flac (wav -> flac) User-defined expert options - lame (wav -> mp3) User-defined expert options - mac (wav -> ape) User-defined expert options - musepack (wav -> mpc) User-defined expert options - oggenc (wav -> ogg) User-defined expert options - wavpack (wav -> wv) Setting up CDDB: [ Server name ] Proxy settings: [ server ] [ port ] Server 2CH: Sub / Ambiance Visibility Your system uses ... WavPack (wv file): %a - artist %b - album title %c - track number %d - track title %e - year %g - genre %f - create an m3u and xspf file %na - no accent %u - replace special characters: %u(AB=C) %u( =_) %Tl - Tetsumaki lower%a - artist %b - album title %c - track number %d - track title %e - year %g - genre %na - no accent %Tl - Tetsumaki lower %u - replacing characters: %u(AB=C) %u( =_)0%s Copy file: %d%%%s Return file: %d%%%s Use Mplayer: %d%%%s Use Sox: %d%%Trash files ...AuthorThis file can not be ripped !DiscIdFramasoft Generation of a report for: cdparanoia expert mode multi passTags, titles and cue files managementHome PageImport web imagesSound engineers Audio playerLicenseMan PageMan Page Man Page Man Page browsersMedia scan in progress...Official websiteOfficial website TextTitle CDTotal files: %d, Selected: %dEnglish translation Use drag / drop - delete an image with Ctrl +ClickInfo Lame wiki mp3 wiki WikiWiki Wiki []internal string optionEnter the location of the temporary folder to be used by XCFA Album:Artist:Comment:LogExpertMode.txt file will be created in the folder extractionsReady for imports and a CUE file, WAV, FLAC, OGG, MP3, APE, WMATitle:parameters: XCFA on the web= You've probably found a bug in XCFA = Invalid memory address AboutABR / CBR / VBR / VBR-NEWAdd new images.WARNING: Not enough space available in the temp folder.AacAbout X Convert File AudioActionAdjusts the scale to the size of the windowHelpAdding track: Click the center button / Zoom: Ctrl+ScrollAdd text editable.AlbumAlbum:All Files (*.*)YearApeApplyApply the changesAfter reading a CD and add a label, this menu allows the formatting of titles, authors ...Stopped by userArtistArtist:No music file associated with the cue-fileNo music file in the folder associatedNo file found !Audioptimisation by DzefIncrease in scale.Increasing expansionBishop's pageBitrateBitsHigh quality (Better compression ratio)TEMPORARY CAPACITY TOO LOWCDCONVERSIONSThis file belongs XCFAChapter: [%02d]ChoiceSelect location for image storageSelect a destination folderSelect a fileSelect CUE WAV FLAC OGG MP3 APE WMA filesSelecting a music fileSelect a backup locationSelect a new destinationChoosing a new font.Select filesSelect FLAC MPC OGG MP3 filesSelect MP3/OGG fileSelect a WAV fileChoice among different databases for the CD.Right click: access popupCommentComment:CompressionMaximum compressionControl the content of the extracted files Conversion to %s channels.Conversion to 2 channels.Conversion to 2 channels. A second click will activate the conversion to %s channels.Conversion(s) to sourceCouldn't find CDCreate a single cue file from an audio-CDCreate a single file in the format: Create cue fileSearch criteria away !!DVDDebian MultimediaBitrateUnfoldClear allRip details - expert modeReduction in the scale.XCFA doc. by PatachonLength of the active beachERROR datas proxyERROR : storage location not permitted !Scale 100%.Scale compatible with the size of the window.Write cue fileClearClear imageEkd (EnKoDeur-Mixeur)Backup location files.Waiting for selection. A click will activate the conversion to 2 channels.Save Page png.ErrorSOX ErrorError file selectData errors in the CUE fileMisreading !Error since MPLAYER !Error since SOX !Extra encode processingRipping expert mode PASS 1/2 Ripping expert mode PASS 2/2 RipFREQUENCYFileCorrection fileDVD file structureEmpty fileCompleted_file_%02d_%sFix (scan)RmsFlacFormatForum XcfaFramasoftFrequencyFrugalwareGenreHertzYou must install the program: lsdvdWe will just adjust to the beachesImage to the backgroundImage aboveForeground imageImage belowImporting images from the Web.Import the CD title.Import images for the coverIndex startEnd indexIndex readingJe suis libreNo Web access: no web browserApplication is missing.La LinuxerieA web connection is missingNormalisation explained by DzefThe solution is to import the fileThe DVD player is absent.CUE file to be recorded 'Destination file'.The file contains no data !!!The package 'imagemagick' is missingThe SOX program on your distributionThe program XCFA_INSTALL_ALL written in Perl will be useful on the command line for installation of supplementary programsThe external ripping program is missingThe result of the Split will be heading for 'Destination file'.PlayReading 5 seconds after the beginning markerReading of 5 seconds before the end markerFile types accepted are: WAV FLAC MP3 OGG APE WMA CUELinux On The RootM4aMAX FILES REACHED = %dADMINISTRATOR MODEMP3-OGGMPEG-4 File Format (MP4) - Extension .m4aMPLAYER already in actionMPLAYER is already in use !!Wrong type of fileVery high quality (Best compression but slowest)Menu: right click / Adding track: Click the center button / Zoom: Ctrl+ScrollMix (scan)Rms/albumModeHybrid modeStandardFast (Faster encode and decode)Modify fieldsModify the search parameters andForce monoMp3MpcMusepackMusic paused.Playing music.New BitratNew BitsNew HertzNew VoiceNiceNo Audio CDNameName (without extension) file is saved.Name to rightName to leftName centredFile name not found !!File name not foundNoNormaliseNormalise: Waiting for selection.New bitrateNumNumberOKOggOgg Vorbis explained by ShankariusOkayYesToolsOpen a filePACKAGE dvd+rw-tools is missingNO audio player presentNo web browserPEAK-ALBUM: Maximum volume amplification for a group of files according to the deviations in level between themPEAK: Maximum volume amplification of each file.TRACKPackage NOT FOUND !Package checkmp3 (mp3check) NOT FOUND !PacketsDefaultDefault parametersWARNING: Not enough space available in the temp folder.No WAV file in the cue-filePausePeakPeak/albumTrackPlagePlayPlease, install package [ cdda2wav ]Please, install package [ cdparanoia ]Please, install package [ icedax ]Please, install package [ cd-discid ]Please, install packages [ icedax, cdda2wav ]To assess the templates, you must enable a reading cdaudioTo solve this problem :Generate CUE fileQUANTIFICATIONQuality 0Quality 1Quality 10 (Best quality)Quality 10 [ Best quality ]Quality 2Quality 3Quality 3 [ Default ]Quality 4Quality 5Quality 6Quality 7Quality 8Quality 9Quality -1 (Poor quality)Quality -1 [ worst quality ]QuantificationQuitRMS-ALBUM: Adjusting the average volume for a group of files according to the average level of deviation between them.RMS: Average volume amplification of each file.Reduced expansionGives the scale at 100%ReplayGainReplaygainFoldReturnFlip HorizontalFlip VerticalRoad2MayotteSCANEnter here a search of images.Enter a file name without extensionEnter a search string andSaving as PNGSaving to PDF and PostScriptSaving the fileScan ...Scan in progress ...Select type: -Previous selectorFollowing selectorSelect allSelect another file.MD5 signatureSizeChannel modeSox and Mplayer is missingSox and Mplayer is missingSplitStatusStereoDeleting not during playbackRemove image from the listDelete the image selectionDelete the active rangeWipe all markers and replace them with a single markerTAGSSizeCompression levelTimeTime of less than 5 seconds between marker and cursor !Bold text.Italic text.TimeTitleTitle [%02d ** ]Title [%02d]Title:Title_%02d_Chapter_%02d_audio_%02d_%sTitlsTotal selection%s: %d, 2ch: %dTransport Stream (ADTS) - Extension .aacTrashTuxfamilyTypeV0·····(Best quality)V0 [ best quality ]V4 [ default ]V9·····(Poor quality)V9 [ worst quality ]Original valuePlease deselect PeakGroup.Please install : Please install or checkmp3 mp3check for consideration of mp3 filesPlease install an audio playerPlease install a web browserPlease install it and resumePlease install it and resumePlease start again.Please complete all fields proxyPlease enter a file namePlease select a file type of MP3 WAV OGG FLAC APEVisible fieldsVoiceYou need to enable web accessYou can enable XCFA command line with: WAVWaiting ...WavWavPWavpackXCFA wiki by ShankariusXCFA LinuxForen.deXCFA Vorstellung XCFA: Conversions WAV TO WAVXCFA: CD RippingXCFA: DVD ripXCFA: Bitrate changeXCFA: Processing filesXCFA on Linux On The Root[Error on segment #%d] %d) Playing PASS 1/2 [Search images files]has generated an error during conversionbraindead : extreme high quality : 232 .. 278 kbit/sbuttoncd-discid NOT FOUNDcdda2wav / icedaxcdda2wav NOT FOUNDcdda2wav and icedax NOT FOUNDcdparanoiacdparanoia NOT FOUNDcdparanoia expert modecdparanoia expert mode multi passconfiguration.corresponding to the beaches.Split in the module.on your system !Sets the server to be contacted for title lookupsof cue-filegenerate a new cue-file or cutsicedax NOT FOUNDinsane : extreme high quality : 232 .. 268 kbit/slabelreader of cd / dvd.Playlsdvd is missing !music that will be recognized and pre-cuttingfound in your systemto see the type of error returned by mplayer.to see the type of error returned by sox.radio : medium (MP3) quality : 112 .. 152 kbit/sstart againsstandard : high quality (dflt) : 142 .. 184 kbit/sstereo left/rightstereo mid/sidePhone: (Lowest quality) : 32 .. 48 kbit/sthumb : low quality/internet : 58 .. 86 kbit/sxtreme : extreme high quality : 168 .. 212 kbit/sxcfa-4.3.6/po/de.gmo0000644000175000017500000014516312224542443011114 00000000000000$Y,(55855g6{66 666 67,7I7 "808L8$S8&x8(88889/95L99!9999:/:F:_:$y:"::*: ; ; ;";A;];{;$;;;.;/)<Y<+v<*<<<<=+=@=Z=r=======>>.>C>[>s>>>(> > >>>??:?Q?V?/\?"? ????? @,@2@9@$Y@~@@ @@!@ @@@@ AA%A +A5A;ARA[A'zAAA AA AAB4BPBlBuB }BBBB(BBBC+ C*9CdC jCtCCD(D=D>EPQE,E8E8FZAF/FBF$G74G"lG$G"GGUmHYH;I5YIHIII;J LJ XJbJkJ}J J JJJ J J J J J JJK K $K 1K%>K-dKKK$K!KLL#5LYLyLLLLL"LM)M=M QMHrMIMHNGNNLNJNJ.O,yO/OO!O P"P @PaP8RS&S,T+0T'\TT T(T TTHT/BUrUUUUUUUU V V#2VVVkV VV*VVZVBWSWmW WWWWWWW rXXXTXIX CYQY3dY6YYYYZ9.ZhZlZZ*ZZ6ZZ[[[-[3[ 7[A[h][[[[.[0\O\f\\\ \\\\'\] ]#]@]Q](W]!]]/]]^ ^?^\^"n^^^9^^ _ _ -_9_*M_x__P__`?,`)l````````a,aEa[ata'aa0aabb b'6bG^b"bb bb%bc0cHc\c tc cc cccc c d "d0d5d m[mam'umm mm-m%mnn $n/n5n;n$@n&en"n&n-nEoJoeo|o o o o!o o oo p p &p 1p xTx"Yx<|xx xxxxxxyy7yKy`y{yy4yy+z61zhzozzzz zzz#z!{0{J{`{8s{ {+{{8{.|4|L|T|'h|'|4|0|7} V}c};e}}};}:}7:~|r~ 8Iހ .O^"q!Ӂ ɂ%Ђ')H[y@Ӄ"-!Pr Ԅ 1"Hk.  …υ!!%(G!p!+," )00ZՇ6PjĈ؈"= V dr, ɉЉ$5:E@& Êފ 28A7a !Nj ? MVj p{'  -8Poƍ ֍3 2=[JaS  *%D8j:_ސ'>=f1e֑3<Dp1Ւ#$+"PsC"_f7Ɣ1B0!sB  " + 7DM V c o |  ɖ ֖!28"R/u&̗ݗ"0N^u Ƙؘ@$Ae@?D(BmB(1N^~͛t&(5-^( ӟ- J..y' (9K_,n Ρڡ' I3} ¢΢+УZPQ3ä<4 OZt4ť ,K lrЦC W a2l*ʧ %3;@/S&ɨ /$Tm Ʃ#٩4/d 'X'tF*$'L`dv ~Ѭ) C#Pt KЭ1 8CV s.Į.")28G _k   ů˯,ѯ.- EO c$n& ذ ="F i#v$)#, ":]#}&)<P%*:"48Pd"l δeH\ b n{%ҵ   " , 6@ET1Y Ŷ޶ " !%,/"3V]`g{((+*Ǹ 0"Gjp u#/+.,A=nɺ ޺#%2Xiz˻ܻ*,) Vdl? J_w  ̽ٽ'޽+#2V h Ҿ ߾ )/?Xx&ӿ L^ci~< 0 ''.V!\~ *%?eF{%.22J}#-5$5,;7h !!5Jj567+cj" #4 CO_;r 15; AKR'a+6,7Qj7l295=w+I/*P\/x8&>);D^Z a_$&Mgc 'n&;.[yTl^U X]}r;|?C 1~b78GWZJO-A <RB2KIp|Y Vs#UF#d"g '6c!FM`S<%m]I+wQ> 0}PD(Lm AO6AFx|GZCf5@"b[hEu"j0T isBtevKz9}f)a{,R `wQ7_%Y]ao7^ r)vC*<2?V=u:!\Hp+_j$l3-1qtx.e1i?.qu2GzPcE4m=`L#5bVi=4[~o0zHyhW8d$e%-3:@k(@jkdMJpn> XoJ!v BQ:*f4~9/TRlWD,X3U6E'q{S 5NOrH({\Nt9YnkhsNL Kg y,S Pages a visiter konqueror : newTab iceweasel : -new-window -new-tab Pour installer les programmes externes requis, veuillez utiliser l'installateur de votre distribution Gnu/Linux. Codeur Xcfa Codeur pages Web Documentation ElementSpeak pour Xcfa Forum Graphisme Modification des champs Traduction Allemande Traduction Italienne Au tout debut: Serres Patrick, Hamann Regis, Fabien Gregis, @Dzef, @alteo_gange, @Leonux, @zarer, @Shankarius, @bishop, @Ludo, @Patachonf, ... ;-) [Piste: %d] et dont le nom sera: --- ATTENTION: Il faut installer %s ATTENTION: Il faut installer %s%s ATTENTION: Il faut installer %s%s%s Deselection globale Deselection horizontale Deselection verticale Deselection verticale Deselection verticale L'acces au web est impossible car aucun navigateur Selection ALBUM Selection Expert horizontale Selection Expert verticale Selection NETTOYER Selection PISTE Selection horizontale Selection verticale Selection verticale Selection verticale Veuillez installez un navigateur. Vous ne devriez pas utiliser XCFA sous ROOT ! n'est present dans votre configuration. VBR / ABR 8 bits 8000 Hertz Lame (fichier mp3): ... les paquets: ? ... les paquets: deb ... les paquets: fpm ... les paquets: pkg.tar.xz ... les paquets: rpm ... les paquets: tgz Choix du peripherique / Lecture du CD Choix du peripherique / Lecture du DVD Dossier de stockage Dossier provisoire des conversions Jouer une musique en fin de tache Options AacPlusEnc Options FAAC Options FLAC Options LAME Options MAC Options MUSEPACK Options OGGENC Options WAVPACK Priorite systeme Web AacPlusEnc Web Faac Web Flac Web Lame Web Mac Web Musepack Web Oggenc Web Wavpack Web cdparanoia *.m3u et xspf: Annee: Genre: Piste: A program to send desktop notifications AAC+ encoder AacplusEnc Annee: Application externes Applications externes Arrangement des titres du CD Audio Codeur freeware CD CD Cherche des renseignements sur les formats mp3 Cherche les informations d'un dvd Conteneur Contributions Conversion wav : flac Conversion wav : mp3 Conversion wav : ogg Creation d'un fichier unique DVD Debit Decode ATSC A/52 audio streams Decoupage de fichiers sans decodage Extracteur cd audio Faac Fichiers Flac Forte compression au format wave General Genre: Informations Lecteur et extracteur License MPEG-4 AAC decodeur Mac Machine Mode Mode flux (streaming) Modif.: Modification des tags Freedb Monkey's Audio Console Front End : APE Mono: Qualite en kbit/s Mp3 Mp3-Ogg MusePack commandline utilities Musepack Navigateurs / Lecteurs audio Normaliseur de fichier mp3 Normaliseur de fichier ogg Normaliseur de fichier wav Oggenc Piste: Pochette Preferences Qualite Qualite VBR / Debit ABR Read CD and get CDDB discid information Split Stereo: Qualite en kbit/s Tags Transformation universelle de fichiers son WAVPACK Hybrid Lossless Audio Compressor Wav Wavpack $ xcfa -verbose%a [ %a="Artist" ] %b [ %b="Album" ] %Tl - Tetsumaki lower Transforme la chaine en minuscule sauf le premier caractere. Dans le champs 'Titre' depuis [ Modification des tags FreeDB ], le ou les caracteres devant etre conserves doivent etre precedes par le caractere %%d) Lecture PASS 2/2 'dvd+rw-mediainfo' pour identifier le(s)(Click Droit = Menu) / Ajustement COLLECTIF maximal du volume(Click Droit = Menu) / Ajustement INDIVIDUEL maximal du volume(Click Droit = Menu) / Ce fichier sera dirige apres traitement vers la corbeille(Click Droit = Menu) / Choix de la frequence(Click Droit = Menu) / Choix du codage en nombre de bits(Click Droit = Menu) / Choix du nombre de pistes (voies)(Click Droit = Menu) / Cliquez ici pour envoyer ce fichier apres traitement a la corbeille(Click Droit = Menu) / En attente de selection.(Click Droit = Menu) / En attente de selection. Le fichier existe.(Click Droit = Menu) / En selection.(Click Droit = Menu) / En selection. Le fichier existe.(Click Droit = Menu) / Mode album.(Click Droit = Menu) / Mode effacer.(Click Droit = Menu) / Mode piste.(Click Droit = Menu) / PEAK-ALBUM: Amplification maximale du volume pour un groupe de fichiers en respectant les ecarts de niveau entre chacun d'eux.(Click Droit = Menu) / PEAK: Amplification maximale du volume pour chaque de fichier.(Click Droit = Menu) / Possibilite d'ajustement INDIVIDUEL ou COLLECTIF maximal du volume(Click Droit = Menu) / ReplayGain: En attente de selection.(Click Droit = Menu) / Selection avec options expert.(Click Droit = Menu) / Selection avec options expert. Le fichier existe.---MENU TRASH-----------------SELECTION VERTICALE-------> Deja %d fois 2 lectures du segment %d! Abandon :/ 0 (Rapide)00h00m00s1 piste1 (fast / rapide)16 bits2 pistes22000 Hertz24 bits32 bits32000 Hertz4 pistes44056 Hertz44100 Hertz48000 Hertz6 pistes6 (very slow / tres lent)64 bits8 (Lent)88200 Hertz96000 Hertz AacplusEnc (fichier .aac): Au moins deux selections colonne Wav Choix niveau dBFS: Creation Cue cd Destination des conversions Destination des fichiers Eject Exportation de Extraction cd-audio avec: Faac (fichier .m4a): Flac (fichier flac): Importer Informations Installation Mac (fichier ape): MusePack (fichier mpc): Nettoyer Normalise: Normaliser Oggenc (fichier ogg): Options experts, definies par l'utilisateur - faac (wav -> m4a) Options experts, definies par l'utilisateur - flac (wav -> flac) Options experts, definies par l'utilisateur - lame (wav -> mp3) Options experts, definies par l'utilisateur - mac (wav -> ape) Options experts, definies par l'utilisateur - musepack (wav -> mpc) Options experts, definies par l'utilisateur - oggenc (wav -> ogg) Options experts, definies par l'utilisateur - wavpack (wav -> wv) Parametrage CDDB: [ Nom du serveur ] Parametrage PROXY: [ serveur ] [ port ] Serveur Vers 2CH: Sub / Ambiance Visibilite Votre systeme utilise ... WavPack (fichier wv): %a - artiste %b - titre de l'album %c - numero de la piste %d - titre de la chanson %e - annee %g - genre %f - creation d'un fichier *.m3u et *.xspf %na - no accent %u - remplacement de caracteres: %u(AB=C) %u( =_) %Tl - Tetsumaki lower%a - artiste %b - titre de l'album %c - numero de la piste %d - titre de la chanson %e - annee %g - genre %na - no accent %Tl - Tetsumaki lower %u - remplacement de caracteres: %u(AB=C) %u( =_)0%s Copie fichier: %d%%%s Restitution fichier: %d%%%s Traitement Mplayer: %d%%%s Traitement Sox: %d%%Trash files ...AuthorCe fichier ne peut etre extrait !DiscIdFramasoft Generation d'un rapport pour: cdparanoia mode expert multi passesGestion des tags, titres et fichiers cueHomePageImport images webIngenieurs du son Lecteurs audioLicenceManPageManPage ManPage ManPage NavigateurScan du support en cours ...Site officielSite officiel TexteTitre CDTotal fichiers: %d, Selections: %dTraduction Anglaise Utilisez le glisser / deplacer - Effacer une image avec Ctrl + ClickWeb Info Wiki Wiki mp3 WikiWiki Wiki []string option interneIndiquez ici le dossier sur votre systeme qui servira de lieu de stockage provisoire pendant les differentes conversions. Album:Artiste:Commentaire:Le fichier LogExpertMode.txt sera cree dans le dossier des extractionsPret pour l'import d'un fichier CUE, WAV, FLAC, OGG, MP3, APE, WMATitre:parametres: Xcfa sur le web= Vous avez probablement trouve un bug dans XCFA = Adressage memoire invalide A proposABR / CBR / VBR / VBR-NEWAJouter de nouvelles images.ATTENTION: Pas assez de place dans le dossier temporaire.AacAbout X Convert File AudioActionAdapte l'echelle a la taille de la fenetreAideAjout plage: Click bouton centre / Zoom: Ctrl+ScrollAjouter du texte editable.AlbumAlbum:All Files (*.*)AnneeApeAppliquerAppliquer les modificationsApres une lecture de CD et un ajout d'etiquette, ce menu permet la mise en forme des titres, auteurs ...Arret par l'utilisateurArtisteArtiste:Aucun fichier de musique associe au cue-file !Aucun fichier de musique associe dans le dossierAucun fichier trouve !Audioptimisation by DzefAugmentation de l'echelle.Augmente l'agrandissementBishop's pageBitrateBitsBonne qualite de compressionCAPACITE DOSSIER TEMPORAIRE TROP FAIBLECDCONVERSIONSCe fichier appartient a XCFAChapitre: [%02d]ChoixChoix d'un chemin de stockage des imagesChoix d'un dossier de destinationChoix d'un fichierChoix d'un fichier CUE WAV FLAC OGG MP3 APE WMAChoix d'un fichier musicalChoix d'un lieu de sauvegardeChoix d'une nouvelle destinationChoix d'une nouvelle police.Choix de fichiersChoix de fichiers FLAC MPC OGG MP3Choix de fichiers MP3/OGGChoix de fichiers WAVChoix parmis les differentes bases de donnees pour le CD.Click droit: acces popupCommentaireCommentaire:CompressionCompression maximumControle du contenu des fichiers extraits Conversion vers %s canaux.Conversion vers 2 canaux.Conversion vers 2 canaux. Un second click activera la conversion vers %s canaux.Conversion(s) vers la sourceCouldn't find CDCreation d'un fichier cue unique depuis une lecture du cd audioCreation d'un fichier unique au format: Creation fichier cue uniquementCritere de recherche absent !!DVDDebian MultimediaDebitDeplierDeselection globaleDetail extraction mode expertDiminution de l'echelle.Doc Xcfa par PatachonDuree de la plage activeERREUR datas proxyERREUR: Lieu de stockage non autorise !Echelle a 100%.Echelle compatible avec la taille de la fenetre.Ecriture du fichier cueEffacerEffacer l'imageEkd (EnKoDeur-Mixeur)Emplacement de sauvegarde des fichiers.En attente de selection. Un click activera la conversion vers 2 canaux.Enregistrer la page au format png.ErreurErreur SOXErreur de choix de fichierErreur de donnees dans le fichier CUEErreur de lecture !Erreur depuis MPLAYER !Erreur depuis SOX !Extra encode processingExtraction mode expert PASS 1/2 Extraction mode expert PASS 2/2 ExtraireFREQUENCEFichierFichier de correctionFichier structure DVDFichier videFichier_complet_%02d_%sFix (scan)RmsFlacFormatForum XcfaFramasoftFrequenceFrugalwareGenreHertzIl faut installer le programme: lsdvdIl ne restera qu'a ajuster les plages pourImage au dernier planImage au dessusImage au premier planImage en dessousImportation des images depuis le Web.Importation du titre du CD.Importer des images pour la pochetteIndex de debutIndex de finIndex de lectureJe suis libreL'acces au web est impossible car aucun navigateurL'application est absente.La LinuxerieLa liaison internet est absenteLa normalisation expliquee par DzefLa solution est d'importer le fichier deLe DVD est absent du lecteur.Le fichier CUE sera enregistre vers 'Destination des fichiers'.Le fichier ne contient aucune donnee !!!Le package 'dvd+rw-tools' est absentLe programme SOX de votre distributionLe programme XCFA_INSTALL_ALL ecrit en Perl vous sera utile en ligne de commande pour une installation des programmes complementaire.Le programme externe d'extraction est absent.Le resultat du Split sera dirige vers 'Destination des fichiers'.LectureLecture de 5 secondes apres le marqueur de debutLecture de 5 secondes avant le marqueur de finLes types de fichiers acceptes sont: WAV FLAC MP3 OGG APE WMA CUELinux On The RootM4aMAX FICHIERS ATTEINT = %dMODE ADMINISTRATEURMP3-OGGMPEG-4 File Format (MP4) - Extension .m4aMPLAYER deja en actionMPLAYER est deja utilise !!Mauvais type de fichierMeilleure qualite de compressionMenu: Click droit / Ajout plage: Click bouton centre / Zoom: Ctrl+ScrollMix (scan)Rms/albumModeMode hybrideMode normalMode rapide de compressionModification des champsModifiez la chaine de recherche etMono forceMp3MpcMusepackMusique en attente.Musique en ecoute.New BitrateNew BitsNew HertzNew VoieNiceNo Audio CDNomNom (sans extention) du fichier a sauvegarder.Nom a droiteNom a gaucheNom au centreNom de fichier absent !!Nom de fichier unique absentNonNormaliseNormalise: En attente de selection.Nouveau bitrateNumNumeroOKOggOgg Vorbis explique par ShankariusOkOuiOutilsOuvre un fichierPACKAGE dvd+rw-tools ABSENTPAS de lecteur audio presentPAS de navigateur presentPEAK-ALBUM: Amplification maximale du volume pour un groupe de fichiers en respectant les ecarts de niveau entre chacun d'eux.PEAK: Amplification maximale du volume pour chaque de fichier.PISTEPackage NOT FOUND !Package checkmp3 (mp3check) NOT FOUND !PaquetPar defautParametres par defautPas assez de place dans le dossier temporairePas de fichier WAV dans le cue-file !PausePeakPeak/albumPistePlagePlayPlease, install package [ cdda2wav ]Please, install package [ cdparanoia ]Please, install package [ icedax ]Please, install packages [ cd-discid ]Please, install packages [ icedax, cdda2wav ]Pour evaluer les templates, vous devez activer une lecture de cdaudioPour resoudre ce probleme:Production fichier CueQUANTIFICATIONQualite 0Qualite 1Qualite 10 (Meilleure qualite)Qualite 10 [ Meilleure qualite ]Qualite 2Qualite 3Qualite 3 [ Defaut ]Qualite 4Qualite 5Qualite 6Qualite 7Qualite 8Qualite 9Qualite -1 (Moins bonne qualite)Qualite -1 [ Moins bonne qualite ]QuantificationQuitterRMS-ALBUM: Ajustement du volume moyen pour un groupe de fichiers en respectant les ecarts de niveau moyen entre chacun d'eux.RMS: Ajustement du volume moyen de chaque de fichier.Reduit l'agrandissementRemet l'echelle a 100%ReplayGainReplaygainReplierRetourRetourner horizontalementRetourner verticalementRoad2MayotteSCANSaisissez ici un critere de recherche d'images.Saisissez un nom de fichier sans extentionSaisissez une chaine de recherche etSauvegarde au format PNGSauvegarde aux formats PDF et PostScriptSauvegarde le fichierScan ...Scan en cours ...Select type: --Selecteur precedantSelecteur suivantSelection globaleSelectionnez un autre fichier.Signature MD5SizeSonSox et Mplayer absentsSox et Mplayer sont absents de votreSplitStatusStereoSuppression pendant la lecture impossibleSupprimer l'image de la listeSupprimer l'image en selectionSupprimer la plage activeSuprimer tous les marqueurs pour les remplacer par un marqueur uniqueTAGSTailleTaux de compressionTempsTemps inferieur a 5 secondes entre marqueur et curseur !Texte gras.Texte italique.TimeTitreTitre [%02d ** ]Titre [%02d]Titre:Titre_%02d_Chapitre_%02d_audio_%02d_%sTitresTotal selection%s: %d, 2ch: %dTransport Stream (ADTS) - Extension .aacTrashTuxfamilyTypeV0 (meilleure qualite)V0 [ meilleure qualite ]V4 [ defaut ]V9 (moins bonne qualite)V9 [ moins bonne qualite ]Valeur d'origineVeuillez deselectionner des PeakGroup.Veuillez installer : Veuillez installer checkmp3 ou mp3check pour la prise en compte des fichiers mp3Veuillez installez un lecteur audio.Veuillez installez un navigateur.Veuillez l'installer car j'ai besoin deVeuillez les installer pour pouvoir continuer.Veuillez recommencer.Veuillez renseigner les champs du proxyVeuillez saisir un nom pour le fichier uniqueVeuillez selectionner un fichier de type WAV FLAC MP3 OGG APEVisibilite des champsVoieVous devez ouvrir l'acces internetVous pouvez activer XCFA en ligne de commande avec: WAVWaiting ...WavWavPWavpackWiki Xcfa par ShankariusXCFA LinuxForen.deXCFA Vorstellung XCFA: Conversions WAV TO WAVXCFA: Extraction CDXCFA: Extraction DVDXCFA: Modification bitrateXCFA: Traitement fichiersXcfa sur Linux On The Root[Erreur du segment numero: %d] %d) Lecture PASS 1/2 [Recherche des fichiers images]a generer une erreur pendant la conversion.braindead : extreme high quality : 232 .. 278 kbit/sbuttoncd-discid NOT FOUNDcdda2wav / icedaxcdda2wav NOT FOUNDcdda2wav and icedax NOT FOUNDcdparanoiacdparanoia NOT FOUNDcdparanoia mode expertcdparanoia mode expert multi passesconfiguration.correspondant aux plages.dans le module Split.de votre systeme !definit le serveur a contacter pour les recherches titredu cue-filegenerer un nouveau cue-file ou des decoupesicedax NOT FOUNDinsane : extreme high quality : 232 .. 268 kbit/slabellecteur(s) de cd / dvd.lecturelsdvd est absent !musique qui sera reconnu et pre-decoupen'est present dans votre configuration.pour consulter le type d'erreur renvoye par mplayer.pour consulter le type d'erreur renvoye par sox.radio : medium (MP3) quality : 112 .. 152 kbit/srecommencez.sstandard : high quality (dflt) : 142 .. 184 kbit/sstereo left/rightstereo mid/sidetelephone: lowest quality : 32 .. 48 kbit/sthumb : low quality/internet : 58 .. 86 kbit/sxtreme : extreme high quality : 168 .. 212 kbit/sProject-Id-Version: xcfa 4.2.8 Report-Msgid-Bugs-To: xcfa@tuxfamily.org POT-Creation-Date: 2013-10-07 16:28+0200 PO-Revision-Date: 2009-08-02 19:09+0100 Last-Translator: BULIN Claude xcfa@tuxfamily.org Language-Team: xcfa-Team Language: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Poedit-Language: German X-Poedit-Country: GERMANY Webseiten-Empfehlungen konqueror : newTab iceweasel : -new-window -new-tab So installieren Sie die benötigten externen Programme: Bitte verwenden Sie das Installationsprogramm Ihrer GNU-/Linux-Distribution. Xcfa-Programmierung Webseitengestaltung Dokumentation ElementSpeak für Xcfa Foren Graphisme Einstellungen für Felder Traduction Allemande Italienische Übersetzung Zuerst: Serres Patrick, Hamann Regis, Fabien Gregis, @Dzef, @alteo_gange, @Leonux, @zarer, @Shankarius, @bishop, @Ludo, @Patachonf, ... ;-) [Track: %d] mit dem Namen: --- ACHTUNG: Bitte installieren Sie %s ACHTUNG: Bitte installieren Sie %s%s ACHTUNG: Bitte installieren Sie %s%s%s Alles abwählen Waagerecht alles abwählen Senkrecht alles abwählen Senkrecht alles abwählen Senkrecht alles abwählen Ein Zugriff auf das Web ist nicht möglich, da ein Webbrowser ALBUM-Auswahl Waagerechte Auswahl (Vorschlag) Senkrechte Auswahl (Vorschlag) Auswahl löschen Track-Auswahl Waagerecht alles auswählen Senkrecht alles auswählen Senkrecht alles auswählen Senkrecht alles auswählen Installieren Sie bitte einen Internet-Browser. Sie sollten nicht XCFA als Root ! nicht in Ihrer Konfiguration vorhanden ist. VBR / ABR 8 bits 8000 Hertz Lame (mp3-Datei): ... Pakete: ? ...folgende Pakete: deb ...folgende Pakete: fpm ...folgende Pakete: pkg.tar.xz ...folgende Pakete: rpm ...folgende Pakete: tgz Laufwerksauswahl / Einlesen der CD Laufwerksauswahl / Einlesen der DVD Verzeichnis zum Speichern Temporärer Konvertierungsordner Abspielen von Musik am Ende der Aufgabe AacPlusEnc-Optionen Faac-Optionen FLAC-Optionen LAME-Optionen MAC-Optionen MUSEPACK-Optionen OGGENC-Optionen WAVPACK-Optionen Systempriorität AacPlusEnc im Web Faac im Web Flac im Web Lame im Web Mac im Web Musepack im Web Oggenc im Web Wavpack im Web cdparanoia im Web *.m3u und xspf: Jahr:Genre: Track: Ein Programm für Desktopbenachrichtigungen AAC+ Encoder AacplusEnc Jahr: Externe Programme Externe Programme Anzeige-/Speicher-Layout beim Rippen Freeware Audio-Encoder CD CD Sucht und Identifiziert mp3-Dateien, die nicht dem MP3-Format folgen Sucht die Informationen auf einer DVD Container Beiträge Konvertierung wav -> flac Konvertierung wav > mp3 Konvertierung wav > ogg Schaffung einer einzigen Datei DVD Bitrate Decode ATSC A/52 audio streams Splitten einer Datei mittels Dekodierungsinformationen Rippen von Audio-CDs Faac Dateien Flac Hohe Komprimierung im wav-Format Allgemein Genre: Informationen Media-Player mit großer Format- und Plattform-Kompatibilität Lizenz MPEG-4 AAC Decoder Mac Computer Modus Flux-Modus (Streaming) Modif.: Bearbeiten der Tags Monkey's Audio Console Front End : APE Mono (Qualität in kbit/s) Mp3 Mp3-Ogg MusePack commandline utilities Musepack Browser / Audio-Player Normalisieren von mp3-Dateien Normalisieren von ogg-Dateien Normalisieren von wav-Dateien Oggenc Track: Cover Einstellungen Qualität VBR-Qualität / ABR-BitrateLesen Sie CD und erhalten CDDB discid Informationen Splitten Stereo (Qualität in kbit/s) Tags Universelles Programm zum Konvertieren von Audiodateien in andere Formate Ein freier quelloffener Codec zur verlustfreien/-behafteten Audiodatenkompression.Wav Wavpack $ xcfa -verbose%a [ %a="Artist" ] %b [ %b="Album" ] %Tl - Tetsumaki lower Konvertiert die Zeichenfolge mit Ausnahme des ersten Zeichens kleinbuchstaben um. In den Feldern 'Titel', da [ Ändern FreeDB tag ] das Zeichen oder Zeichen zu erhalten muss vorangestellt werdenZeichen %%d) Lesedurchang 2 von 2 DVD + RW-mediainfo 'zu identifizieren(Rechtsklick = Menü) / COLLECTIVE maximale Lautstärke(Rechtsklick = Menü) / Individuelle maximale Lautstärke(Rechtsklick = Menü) / Diese Datei wird in den Papierkorb nach der Behandlung gerichtet werden(Rechtsklick = Menü) / Frequenzauswahl(Rechtsklick = Menü) / Auswahl der Kodierung und der Bitrate(Rechtsklick = Menü) / Auswahl der Tracks (Wege)(Rechtsklick = Menü) / Klicken Sie hier, um diese Datei in den Papierkorb senden nach der Behandlung(Rechtsklick = Menü) / Bitte eine Auswahl treffen.(Rechtsklick = Menü) / Bitte eine Auswahl treffen. Datei existiert.(Rechtsklick = Menü) / Auswahl(Rechtsklick = Menü) / Auswahl. Datei existiert.(Rechtsklick = Menü) / Albummodus(Rechtsklick = Menü) / Löschmodus(Rechtsklick = Menü) / Trackmodus(Rechtsklick = Menü) / PEAK-ALBUM: Verstärkung der maximalen Lautstärke für eine Gruppe von Dateien, wobei die Unterschiede zwischen den einzelnen berücksichtigt werden.(Rechtsklick = Menü) / PEAK: Maximale Lautstärke für jede Datei.(Rechtsklick = Menü) / Möglichkeiten zur individuellen Anpassung oder maximale Auffangvolumen(Rechtsklick = Menü) / ReplayGain: Warten auf Auswahl.(Rechtsklick = Menü) / Auswahl im Expertenmodus.(Rechtsklick = Menü) / Auswahl im Expertenmodus. Datei existiert.--- Papierkorbmenü ---------------- Senkrechte Auswahl -------> Bereits %d Mal das Segment %d doppelt gelesen Abbruch :/ 0 (Schnell)00h00m00s1 Tonspur1 (Schnell)16 bits2 Tonspuren22000 Hertz24 bits32 bits32000 Hertz4 Tanspuren44056 Hertz44100 Hertz48000 Hertz6 Tonspuren6 (Sehr langsam)64 bits8 (Langsam)88200 Hertz96000 Hertz AacplusEnc (aac-Datei): Min. zwei Aktivierungen in der Spalte Wav Neuauswahl dBFS: Erstellen der CD-CUE-Date Zielverzeichnis für die Konvertierung Zielverzeichnis der Datei(en) Auswurf Export von Rippen der Audio-CD mit: Faac (m4a-Datei): Flac (flac-Datei): Import Informationen Installation Mac (ape-Datei): Musepack (mpc-Datei): Löschen Normalisiere: Normalisieren Oggenc (ogg-Datei): Benutzerdefinierte Experten-Optionen - faac (wav > m4a) Benutzerdefinierte Experten-Optionen - flac (wav > flac) Benutzerdefinierte Experten-Optionen - lame (wav > mp3) Benutzerdefinierte Experten-Optionen - mac (wav > ape) Benutzerdefinierte Experten-Optionen - musepack (wav > mpc) Benutzerdefinierte Experten-Optionen - oggenc (wav > ogg) Benutzerdefinierte Experten-Optionen - wavpack (wav > wv) Einrichten CDDB: [ Server name ] Proxy-Einstellungen: [ server ] [ port ] Server In 2CH: Sub / Ambiente Sichtbar Ihr System benutzt... Wavpack (wv-Datei): %a - Interpret %b - Albumtitel %c - Tracknummer %d - Tracktitel %e - Jahr %g - Genre %f - Erstellen der *.m3u- u. *.xspf-Datei %na - no accent %u - Ersetzen von Zeichen: %u(AB=C) %u( =_) %Tl - Tetsumaki lower%a - Künstler %b - Albumtitel %c - Titelnummer %d - Song-Titel %e - Jahr %g - Art %na - no accent %Tl - Tetsumaki lower %u - Ersetzung von Zeichen: %u(AB=C) %u( =_)0%s Kopiere Datei: %d%%%s Rückgabe-Datei: %d%%%s Mplayer-Verarbeitung: %d%%%s Sox-Verabeitung: %d%%Trash files ...AutorDiese Datei kann nicht gerippt werden!DiscIdFramasoft Erstellung eines Reports für: cdparanoia Experten-Modus Multi-PassVerwalten der Titel, Tags und CUE-DateiHomepageImport von Bildern auf WebseitenToningenieur Audio-PlayerLicenceHandbuchHandbuch Handbuch Handbuch BrowserScan der aktuellen Unterstützung ... Offizielle Seite Offizielle Seite TextTitel CDGesamte Dateien: %d, Auswahl: %dEnglische Übersetzung Drag / Drop - löschen Sie ein Bild mit Strg +ClickInfos im Web Lame-Wiki mp3-Wiki WikiWiki Wiki []string option interneGeben Sie hier den Ordner auf Ihrem System an, den Xcfa zur temporären Zwischenspeicherung während der Konvertierung benutzen soll. Album: Interpret: Kommentar:Die Datei LogExpertMode.txt werden in dem Ordner erstellt werdenExtraktionenBereit für die Einfuhr und eine CUE Datei, WAV, FLAC, OGG, MP3, APE, WMA Titel:Parameter: xcfa im Web = Sie haben möglicherweise einen Bug in XCFA gefunden = Ungültiger Adressraum Über XcfaABR / CBR / VBR / VBR-NEWFügen Sie neue Bilder.ACHTUNG: Nicht genug Speicher im temporären Ordner.AacÜber X Convert File AudioBeschreibungPasst die Waage, um die Größe des FenstersHilfeHinzufügen Titel: Klicken Sie auf die mittlere Taste / Zoom: Ctrl+ScrollFügen Sie Text editierbar.AlbumAlbum:Alle Dateien (*.*)JahrApeAnwenden Änderungen anwendenNach dem Lesen einer CD und fügen Sie ein Label, ermöglicht dieses Menü die Formatierung der Titel, Autoren ...Vom User angehaltenInterpretInterpret:Keine Musik mit dem Queue-Datei zugeordnet Datei !Keine Musik-Datei in dem Ordner zugeordnetKeine Datei gefunden!Audioptimisation von DzefErhöhung der Skala.Zunehmende AusweitungBishops SeiteBitrateBitsGute KomprimierungKapazität im temporärem Verzeichnis zu geringCDKonvertierungenDiese Datei gehört XCFAAbschnitt: [%02d]AuswahlDie Wahl eines Speicherpfad der BilderDie Wahl eines ZielordnerDurch Auswahl einer DateiImport der Dateien CUE WAV FLAC OGG MP3 APE WMAAuswahl einer MusikdateiDie Wahl eines LagerortNeue Auswahl des VerzeichnissesDie Wahl eines neuen Schriftart.Import der DateienImport der Dateien FLAC MPC OGG MP3Import der Dateien MP3/OGGImport der Dateien WAVWahl zwischen verschiedenen Datenbanken für die CD.Rechte Maustaste: Popup-ZugangKommentarKommentar:KomprimierungMaximale Kompression-- Überprüfung der gerippten Dateien Konvertierung in %s KanäleKonvertierung in 2 KanälenKonvertierung in 2 Kanäle. Ein zweiter Klick aktiviert die Konvertierung in %s Kanäle.Konvertierung(en) von der AusgangsdateiKonnte nicht gefunden CDErstellen einer eindeutigen CUE-Datei durch das Einlesen der Audio-CD.Erstellen der eindeutigen Datei im Format:Erstellen der eindeutigen CUE-Datei Suchkriterien fehltDVDDebian MultimediaBitrateAusklappenAlles abwählenDetail Retrieval Experten-ModusReduction in der Skala.Xcfa-Anleitung von PatachonLänge der aktiven StrandERROR Daten ProxyFEHLER: Speicherort ist nicht zulässig !Mensur 100%.Skala mit der Größe des Fensters.Die Cue-Datei schreibenLöschenKlares BildEkd (EnKoDeur-Mixeur)Backup-Standort-Dateien.Warte auf Ihre Auswahl. Ein Klick aktiviert die Konvertierung in 2 Kanäle.Seite speichern png.FehlerFehler SOXImport der DateienDatenfehler in der CUE-DateiLesefehler !Fehler da MPlayer !Fehler seit SOX !Extra-Kodierungs-Verarbeitung- Rippen im Expertenmodus (Durchgang 1 von 2) - Rippen im Expertenmodus (Durchgang 2 von 2) RippenFREQUENZDateiKorrekturdateiDateienstruktur der DVDLeere DateiDatei_komplett_%02d_%sFix (scan)RmsFlacFormatXcfa-ForumFramasoftFrequenzFrugalwareGenreHertzSie müssen das Programm installieren: lsdvdWir werden nur bis zu den Stränden einstellenBild in den HintergrundBild obenBild im VordergrundBild untenImportieren von Bildern aus dem Web.Importieren Sie die CD-Titel.Bilddateien für das Cover importierenIndex StartEnd-IndexIndex LesungJe suis librEin Zugriff auf das Web ist nicht möglich, da ein WebbrowserDie Anwendung ist nicht vorhanden.La LinuxerieEs besteht keine InternetverbindungDie Normalisierung erklärt von DzefDie Lösung ist, die Datei zu importierenDer DVD-Player ist nicht vorhanden.CUE Datei aufgezeichnet werden 'Ziel-Datei'.Die Datei enthält keine Daten !!!Das Paket »imagemagick« fehltDie SOX-Programm auf Ihrem VertriebDas Programm XCFA_INSTALL_ALL in Perl geschrieben von Nutzen sein wird auf der Kommandozeile für die Installation von ZusatzprogrammenDas externe Programm Extraktion fehlt.Das Ergebnis der Split wird in Richtung 'Destination file '.EinlesenReading 5 Sekunden nach Beginn MarkerReading von 5 Sekunden vor dem Ende MarkerDateitypen werden akzeptiert: WAV FLAC MP3 OGG APE WMA CUELinux On The RootM4aFILES ERREICHT MAX =% dAdministrator-ModusMP3-OGGMPEG-4 Dateienformat (MP4) - *.m4aTrack-AuswahlMPlayer ist bereits im EinsatzFalscher DateitypBeste KomprimierungMenü: Rechter Mausklick / Hinzufügen Titel: Klicken Sie auf die mittlere / Zoom: Ctrl+ScrollTasteMix (scan)Rms/AlbumModusHybridmodusNormal-ModusSchnelle KomprimierungEinstellungen für FelderÄndern Sie bitte die Suchbegriff undMono erzwingenMp3MpcMusepackWarte auf die Datei.Musik hören.Neue BitrateNeue BitsHertz neuNeu VoiceNiceKeine Audio-CDNameName (ohne Verlängerung) Datei gespeichert wird.Name rechtsName linksName zentriertFile Name fehlt !!Dateiname nicht gefundenNeinNormalisierenNormalisierte: Warten auf Auswahl.Neue BitrateNr.NummerOKOggOgg Vorbis erklärt von ShankariusFertigJaExtrasÖffnen einer DateiPaket dvd + rw-tools ABSENTEs ist kein Internet-Browser installiertEs ist kein Internet-Browser installiertPEAK-ALBUM: Verstärkung der maximalen Lautstärke für eine Gruppe von Dateien, wobei die Unterschiede zwischen den einzelnen berücksichtigt werden.PEAK: Maximale Lautstärke für jede Datei.SPURENPackage NOT FOUND !Paket checkmp3 (mp3check) nicht gefunden !Pakete Standard Default-ParameterNicht genügend Platz im temporären VerzeichnisKeine WAV-Datei in der Cue-Datei !PausePeakPeak/AlbumSpurenBeachPlayBitte installieren Paket [cdda2wav]Bitte installieren Sie das Paket [ cdparanoia ]Bitte installieren Sie das Paket [ icedax ]Bitte installieren Sie das Paket [ cd-discid ]Bitte installieren Pakete [icedax, cdda2wav]Zur Beurteilung der Vorlagen, müssen Sie eine Lesung cdaudioUm dieses Problem zu lösen:Produktion Cue-DateiQUANTISIERUNGKlangqualität 0Klangqualität 1Klangqualität 10 (Beste Qualität)Klangqualität 10 [ Beste Qualität ]Klangqualität 2Klangqualität 3Klangqualität 3 [ Standard ]Klangqualität 4Klangqualität 5Klangqualität 6Klangqualität 7Klangqualität 8Klangqualität 9Klangqualität -1 (Weniger gute Qualität)Klangqualität -1 [ Weniger gute Qualität ]QuantisierungBeendenRMS-ALBUM: Einstellen der Lautstärke für eine Gruppe von Dateien, wobei die Abweichungen von der mittleren Lautstärke bei jeder von ihnen respektiert wirdRMS: Einstellen der mittleren Lautstärke jeder einzelnen DateiReduzierte ExpansionGibt die Skala bei 100%LautstärkepegelReplaygainEinklappenZurückHorizontal spiegelnVertikal spiegelnRoad2MayotteSCANGeben Sie hier eine Suche nach Bildern.Geben Sie einen Dateinamen ohne ErweiterungGeben Sie einen Suchbegriff ein undSpeichern als PNGSpeichern als PDF und PostScriptSpeichern Sie die DateiScan ...Scan in progress ...Typ auswählen: --Selector vorNach AuswahlAlles auswählenWählen Sie eine andere Datei.MD5-SignaturDauerKanalaufteilungSox und Mplayer abwesendSox und Mplayer sind aus DeinemSplittenStatusStereoLöschen während der Wiedergabe nichtBild entfernen aus der ListeLöschen Sie die BildauswahlLöschen Sie den aktiven BereichWischen Sie alle Markierungen und ersetzen Sie sie mit einem einzigen MarkerTAGSDauer KomprimierungslevelDauerZeit von weniger als 5 Sekunden zwischen Marker und Cursor !Bold Text.Kursiv gedruckt.DauerTitelTitel [%02d ** ]Titel [%02d]Titel:Titel_%02d_Abschnitt_%02d_Audio_%02d_%sTitelKomplette Auswahl %s: %d, 2ch: %dTransport-Stream (ADTS) - *.aacPapierkorbTuxfamilyTypV0 (Beste Qualität)V0 [ Beste Qualität ]V4 [ Standard ]V9 (Weniger gute Qualität)V9 [ Schlechte Qualität ]Ursprünglicher WertBitte deaktivieren Sie die PeakGroup.Bitte installieren : Bitte installieren oder checkmp3 mp3check zur Prüfung von mp3-DateienBitte deaktivieren Sie die PeakGroup.Installieren Sie bitte einen Internet-Browser.Bitte installieren Sie es und versuchen es erneut.Bitte installieren Sie es und versuchen es erneut.Bitte versuchen Sie es erneut.Bitte füllen Sie alle Felder ProxyBitte geben Sie einen Namen für die Datei anBitte wählen Sie einen Dateityp MP3 WAV OGG FLAC APESichtbare FelderVoiceSie müssen einen Internet-Zugang einstellenSie können XCFA Befehlszeile mit ermöglichen: WAVWarte ...WavWavPWavpackXcfa-Wiki von ShankariusXCFA LinuxForen.deXCFA Vorstellung XCFA: Konvertieren von WAV zu WAVXCFA: Rippen der CDXCFA: Rippen der DVDXCFA: Modifizierung der BitrateXCFA: Verarbeitung von DateienXcfa auf Linux On The Root[Fehler im Segment Nummer: %d] %d) Lesedurchgang 1/2 [Suche nach Bild-Dateien]einen Fehler generiert hat während der Konvertierung.232...278 kbit/s - Brainded: Extrem hohe Klangqualitätbuttoncd-discid nicht gefunden!cdda2wav / icedaxcdda2wav NICHT GEFUNDENcdda2wav und icedax NICHT GEFUNDENcdparanoiacdparanoia nicht gefunden!cdparanoia Expertenmoduscdparanoia Expertenmodus Multi-PassKonfiguration.der Gleise.Split im Modul.auf Ihrem System !Legt die Portnummer für den Titel Lookups verwendet werdendie Cue-DateiWir werden nur bis zu den Stränden einstellen...icedax nicht gefunden!232...268 kbit/s - Insane: Extrem hohe KlangqualitätlabelCD / DVD.Lesunglsdvd fehlt !Musik, die erkannt und Vorzerkleinerungnicht in Ihrer Konfiguration vorhanden ist.auf die Art des Fehlers durch mplayer kehrte zu sehen.auf die Art des Fehlers siehe kehrte von sox112...152 kbit/s - Radio: Mittlere Klangqualität (MP3)versuchen Sie es erneut.s142...184 kbit/s - Standard: Hohe Klangqualität (dflt)Stereo (Links/Rechts)Stereo (Mitte/Seiten)32...48 kbit/s - Telefon: Geringste Klangqualität58...86 kbit/s - Thumb: Geringe Klangqualität (Internet)168...212 kbit/s - Xtreme: Extrem hohe Klangqualitätxcfa-4.3.6/po/insert-header.sin0000644000175000017500000000124011400750706013246 00000000000000# Sed script that inserts the file called HEADER before the header entry. # # At each occurrence of a line starting with "msgid ", we execute the following # commands. At the first occurrence, insert the file. At the following # occurrences, do nothing. The distinction between the first and the following # occurrences is achieved by looking at the hold space. /^msgid /{ x # Test if the hold space is empty. s/m/m/ ta # Yes it was empty. First occurrence. Read the file. r HEADER # Output the file's contents by reading the next line. But don't lose the # current line while doing this. g N bb :a # The hold space was nonempty. Following occurrences. Do nothing. x :b } xcfa-4.3.6/po/fr.gmo0000644000175000017500000014461112224542443011130 00000000000000$Y,(55855g6{66 666 67,7I7 "808L8$S8&x8(88889/95L99!9999:/:F:_:$y:"::*: ; ; ;";A;];{;$;;;.;/)<Y<+v<*<<<<=+=@=Z=r=======>>.>C>[>s>>>(> > >>>??:?Q?V?/\?"? ????? @,@2@9@$Y@~@@ @@!@ @@@@ AA%A +A5A;ARA[A'zAAA AA AAB4BPBlBuB }BBBB(BBBC+ C*9CdC jCtCCD(D=D>EPQE,E8E8FZAF/FBF$G74G"lG$G"GGUmHYH;I5YIHIII;J LJ XJbJkJ}J J JJJ J J J J J JJK K $K 1K%>K-dKKK$K!KLL#5LYLyLLLLL"LM)M=M QMHrMIMHNGNNLNJNJ.O,yO/OO!O P"P @PaP8RS&S,T+0T'\TT T(T TTHT/BUrUUUUUUUU V V#2VVVkV VV*VVZVBWSWmW WWWWWWW rXXXTXIX CYQY3dY6YYYYZ9.ZhZlZZ*ZZ6ZZ[[[-[3[ 7[A[h][[[[.[0\O\f\\\ \\\\'\] ]#]@]Q](W]!]]/]]^ ^?^\^"n^^^9^^ _ _ -_9_*M_x__P__`?,`)l````````a,aEa[ata'aa0aabb b'6bG^b"bb bb%bc0cHc\c tc cc cccc c d "d0d5d m[mam'umm mm-m%mnn $n/n5n;n$@n&en"n&n-nEoJoeo|o o o o!o o oo p p &p 1p xTx"Yx<|xx xxxxxxyy7yKy`y{yy4yy+z61zhzozzzz zzz#z!{0{J{`{8s{ {+{{8{.|4|L|T|'h|'|4|0|7} V}c};e}}};}:}7:~Er~8 Ӏ 7Tq KYu$|&(Ȃ 'B`6"Ӄ2Oi$"ۄ+ >JSc$څ0;1l++/E[qч);Lbvˈڈ(  -6Me/"։ +AWw} &͊ ! (/> U_t z'ɋ  >IhŌ ͌، (7?^+e* ̍܍' =4>rQ;8?8x\0C?%8"$!*LUZ9<6ѓIRm= ǔ Ӕݔ  ! * 7 A N [ hr %.ߕ*$D!i#֖(>T"q ΗIJ9IHΘMKeK-0+\!m# ȚĜb&k,+' 1)? iwJ/ԟ-H^m|#Ġ  +0\[z֡ 4MV_| %V9J ۣ371i9ɤ",)V6[˥ҥ ֥jg/1 $@ Zhpu' ʧ(!'I.\ Ĩ"7Q;g ɩ ֩+"=PWŪ@֪* B c߫)(<e1vȬج'H"_ &֭ . Op y Į ܮ  !'%-+S%̯$3 CP a3o ˰$(9@W)$±&-CIJ2.CArƳʳ)*Cc!{N  9"Q t ŵ εص 0 ' 5 CQk $˶϶׶ڶ#޶ !=[v>5;'Ow ~.%Ѹ  $&C"j&-F)F] l x"# ˺ ׺    + 7$C$h~5#Yq ȼ 0*#$Ns(˽Խ 1 P^cg$~)!E;: 0 :G&Nu#|( #A]'nP$!"'D.l'->F\#a; "?Sh5-6<sz #,;Uk: .8?E]e*y(5175 mz;|;:7Qw+I/*P\/x8&>);D^Z a_$&Mgc 'n&;.[yTl^U X]}r;|?C 1~b78GWZJO-A <RB2KIp|Y Vs#UF#d"g '6c!FM`S<%m]I+wQ> 0}PD(Lm AO6AFx|GZCf5@"b[hEu"j0T isBtevKz9}f)a{,R `wQ7_%Y]ao7^ r)vC*<2?V=u:!\Hp+_j$l3-1qtx.e1i?.qu2GzPcE4m=`L#5bVi=4[~o0zHyhW8d$e%-3:@k(@jkdMJpn> XoJ!v BQ:*f4~9/TRlWD,X3U6E'q{S 5NOrH({\Nt9YnkhsNL Kg y,S Pages a visiter konqueror : newTab iceweasel : -new-window -new-tab Pour installer les programmes externes requis, veuillez utiliser l'installateur de votre distribution Gnu/Linux. Codeur Xcfa Codeur pages Web Documentation ElementSpeak pour Xcfa Forum Graphisme Modification des champs Traduction Allemande Traduction Italienne Au tout debut: Serres Patrick, Hamann Regis, Fabien Gregis, @Dzef, @alteo_gange, @Leonux, @zarer, @Shankarius, @bishop, @Ludo, @Patachonf, ... ;-) [Piste: %d] et dont le nom sera: --- ATTENTION: Il faut installer %s ATTENTION: Il faut installer %s%s ATTENTION: Il faut installer %s%s%s Deselection globale Deselection horizontale Deselection verticale Deselection verticale Deselection verticale L'acces au web est impossible car aucun navigateur Selection ALBUM Selection Expert horizontale Selection Expert verticale Selection NETTOYER Selection PISTE Selection horizontale Selection verticale Selection verticale Selection verticale Veuillez installez un navigateur. Vous ne devriez pas utiliser XCFA sous ROOT ! n'est present dans votre configuration. VBR / ABR 8 bits 8000 Hertz Lame (fichier mp3): ... les paquets: ? ... les paquets: deb ... les paquets: fpm ... les paquets: pkg.tar.xz ... les paquets: rpm ... les paquets: tgz Choix du peripherique / Lecture du CD Choix du peripherique / Lecture du DVD Dossier de stockage Dossier provisoire des conversions Jouer une musique en fin de tache Options AacPlusEnc Options FAAC Options FLAC Options LAME Options MAC Options MUSEPACK Options OGGENC Options WAVPACK Priorite systeme Web AacPlusEnc Web Faac Web Flac Web Lame Web Mac Web Musepack Web Oggenc Web Wavpack Web cdparanoia *.m3u et xspf: Annee: Genre: Piste: A program to send desktop notifications AAC+ encoder AacplusEnc Annee: Application externes Applications externes Arrangement des titres du CD Audio Codeur freeware CD CD Cherche des renseignements sur les formats mp3 Cherche les informations d'un dvd Conteneur Contributions Conversion wav : flac Conversion wav : mp3 Conversion wav : ogg Creation d'un fichier unique DVD Debit Decode ATSC A/52 audio streams Decoupage de fichiers sans decodage Extracteur cd audio Faac Fichiers Flac Forte compression au format wave General Genre: Informations Lecteur et extracteur License MPEG-4 AAC decodeur Mac Machine Mode Mode flux (streaming) Modif.: Modification des tags Freedb Monkey's Audio Console Front End : APE Mono: Qualite en kbit/s Mp3 Mp3-Ogg MusePack commandline utilities Musepack Navigateurs / Lecteurs audio Normaliseur de fichier mp3 Normaliseur de fichier ogg Normaliseur de fichier wav Oggenc Piste: Pochette Preferences Qualite Qualite VBR / Debit ABR Read CD and get CDDB discid information Split Stereo: Qualite en kbit/s Tags Transformation universelle de fichiers son WAVPACK Hybrid Lossless Audio Compressor Wav Wavpack $ xcfa -verbose%a [ %a="Artist" ] %b [ %b="Album" ] %Tl - Tetsumaki lower Transforme la chaine en minuscule sauf le premier caractere. Dans le champs 'Titre' depuis [ Modification des tags FreeDB ], le ou les caracteres devant etre conserves doivent etre precedes par le caractere %%d) Lecture PASS 2/2 'dvd+rw-mediainfo' pour identifier le(s)(Click Droit = Menu) / Ajustement COLLECTIF maximal du volume(Click Droit = Menu) / Ajustement INDIVIDUEL maximal du volume(Click Droit = Menu) / Ce fichier sera dirige apres traitement vers la corbeille(Click Droit = Menu) / Choix de la frequence(Click Droit = Menu) / Choix du codage en nombre de bits(Click Droit = Menu) / Choix du nombre de pistes (voies)(Click Droit = Menu) / Cliquez ici pour envoyer ce fichier apres traitement a la corbeille(Click Droit = Menu) / En attente de selection.(Click Droit = Menu) / En attente de selection. Le fichier existe.(Click Droit = Menu) / En selection.(Click Droit = Menu) / En selection. Le fichier existe.(Click Droit = Menu) / Mode album.(Click Droit = Menu) / Mode effacer.(Click Droit = Menu) / Mode piste.(Click Droit = Menu) / PEAK-ALBUM: Amplification maximale du volume pour un groupe de fichiers en respectant les ecarts de niveau entre chacun d'eux.(Click Droit = Menu) / PEAK: Amplification maximale du volume pour chaque de fichier.(Click Droit = Menu) / Possibilite d'ajustement INDIVIDUEL ou COLLECTIF maximal du volume(Click Droit = Menu) / ReplayGain: En attente de selection.(Click Droit = Menu) / Selection avec options expert.(Click Droit = Menu) / Selection avec options expert. Le fichier existe.---MENU TRASH-----------------SELECTION VERTICALE-------> Deja %d fois 2 lectures du segment %d! Abandon :/ 0 (Rapide)00h00m00s1 piste1 (fast / rapide)16 bits2 pistes22000 Hertz24 bits32 bits32000 Hertz4 pistes44056 Hertz44100 Hertz48000 Hertz6 pistes6 (very slow / tres lent)64 bits8 (Lent)88200 Hertz96000 Hertz AacplusEnc (fichier .aac): Au moins deux selections colonne Wav Choix niveau dBFS: Creation Cue cd Destination des conversions Destination des fichiers Eject Exportation de Extraction cd-audio avec: Faac (fichier .m4a): Flac (fichier flac): Importer Informations Installation Mac (fichier ape): MusePack (fichier mpc): Nettoyer Normalise: Normaliser Oggenc (fichier ogg): Options experts, definies par l'utilisateur - faac (wav -> m4a) Options experts, definies par l'utilisateur - flac (wav -> flac) Options experts, definies par l'utilisateur - lame (wav -> mp3) Options experts, definies par l'utilisateur - mac (wav -> ape) Options experts, definies par l'utilisateur - musepack (wav -> mpc) Options experts, definies par l'utilisateur - oggenc (wav -> ogg) Options experts, definies par l'utilisateur - wavpack (wav -> wv) Parametrage CDDB: [ Nom du serveur ] Parametrage PROXY: [ serveur ] [ port ] Serveur Vers 2CH: Sub / Ambiance Visibilite Votre systeme utilise ... WavPack (fichier wv): %a - artiste %b - titre de l'album %c - numero de la piste %d - titre de la chanson %e - annee %g - genre %f - creation d'un fichier *.m3u et *.xspf %na - no accent %u - remplacement de caracteres: %u(AB=C) %u( =_) %Tl - Tetsumaki lower%a - artiste %b - titre de l'album %c - numero de la piste %d - titre de la chanson %e - annee %g - genre %na - no accent %Tl - Tetsumaki lower %u - remplacement de caracteres: %u(AB=C) %u( =_)0%s Copie fichier: %d%%%s Restitution fichier: %d%%%s Traitement Mplayer: %d%%%s Traitement Sox: %d%%Trash files ...AuthorCe fichier ne peut etre extrait !DiscIdFramasoft Generation d'un rapport pour: cdparanoia mode expert multi passesGestion des tags, titres et fichiers cueHomePageImport images webIngenieurs du son Lecteurs audioLicenceManPageManPage ManPage ManPage NavigateurScan du support en cours ...Site officielSite officiel TexteTitre CDTotal fichiers: %d, Selections: %dTraduction Anglaise Utilisez le glisser / deplacer - Effacer une image avec Ctrl + ClickWeb Info Wiki Wiki mp3 WikiWiki Wiki []string option interneIndiquez ici le dossier sur votre systeme qui servira de lieu de stockage provisoire pendant les differentes conversions. Album:Artiste:Commentaire:Le fichier LogExpertMode.txt sera cree dans le dossier des extractionsPret pour l'import d'un fichier CUE, WAV, FLAC, OGG, MP3, APE, WMATitre:parametres: Xcfa sur le web= Vous avez probablement trouve un bug dans XCFA = Adressage memoire invalide A proposABR / CBR / VBR / VBR-NEWAJouter de nouvelles images.ATTENTION: Pas assez de place dans le dossier temporaire.AacAbout X Convert File AudioActionAdapte l'echelle a la taille de la fenetreAideAjout plage: Click bouton centre / Zoom: Ctrl+ScrollAjouter du texte editable.AlbumAlbum:All Files (*.*)AnneeApeAppliquerAppliquer les modificationsApres une lecture de CD et un ajout d'etiquette, ce menu permet la mise en forme des titres, auteurs ...Arret par l'utilisateurArtisteArtiste:Aucun fichier de musique associe au cue-file !Aucun fichier de musique associe dans le dossierAucun fichier trouve !Audioptimisation by DzefAugmentation de l'echelle.Augmente l'agrandissementBishop's pageBitrateBitsBonne qualite de compressionCAPACITE DOSSIER TEMPORAIRE TROP FAIBLECDCONVERSIONSCe fichier appartient a XCFAChapitre: [%02d]ChoixChoix d'un chemin de stockage des imagesChoix d'un dossier de destinationChoix d'un fichierChoix d'un fichier CUE WAV FLAC OGG MP3 APE WMAChoix d'un fichier musicalChoix d'un lieu de sauvegardeChoix d'une nouvelle destinationChoix d'une nouvelle police.Choix de fichiersChoix de fichiers FLAC MPC OGG MP3Choix de fichiers MP3/OGGChoix de fichiers WAVChoix parmis les differentes bases de donnees pour le CD.Click droit: acces popupCommentaireCommentaire:CompressionCompression maximumControle du contenu des fichiers extraits Conversion vers %s canaux.Conversion vers 2 canaux.Conversion vers 2 canaux. Un second click activera la conversion vers %s canaux.Conversion(s) vers la sourceCouldn't find CDCreation d'un fichier cue unique depuis une lecture du cd audioCreation d'un fichier unique au format: Creation fichier cue uniquementCritere de recherche absent !!DVDDebian MultimediaDebitDeplierDeselection globaleDetail extraction mode expertDiminution de l'echelle.Doc Xcfa par PatachonDuree de la plage activeERREUR datas proxyERREUR: Lieu de stockage non autorise !Echelle a 100%.Echelle compatible avec la taille de la fenetre.Ecriture du fichier cueEffacerEffacer l'imageEkd (EnKoDeur-Mixeur)Emplacement de sauvegarde des fichiers.En attente de selection. Un click activera la conversion vers 2 canaux.Enregistrer la page au format png.ErreurErreur SOXErreur de choix de fichierErreur de donnees dans le fichier CUEErreur de lecture !Erreur depuis MPLAYER !Erreur depuis SOX !Extra encode processingExtraction mode expert PASS 1/2 Extraction mode expert PASS 2/2 ExtraireFREQUENCEFichierFichier de correctionFichier structure DVDFichier videFichier_complet_%02d_%sFix (scan)RmsFlacFormatForum XcfaFramasoftFrequenceFrugalwareGenreHertzIl faut installer le programme: lsdvdIl ne restera qu'a ajuster les plages pourImage au dernier planImage au dessusImage au premier planImage en dessousImportation des images depuis le Web.Importation du titre du CD.Importer des images pour la pochetteIndex de debutIndex de finIndex de lectureJe suis libreL'acces au web est impossible car aucun navigateurL'application est absente.La LinuxerieLa liaison internet est absenteLa normalisation expliquee par DzefLa solution est d'importer le fichier deLe DVD est absent du lecteur.Le fichier CUE sera enregistre vers 'Destination des fichiers'.Le fichier ne contient aucune donnee !!!Le package 'dvd+rw-tools' est absentLe programme SOX de votre distributionLe programme XCFA_INSTALL_ALL ecrit en Perl vous sera utile en ligne de commande pour une installation des programmes complementaire.Le programme externe d'extraction est absent.Le resultat du Split sera dirige vers 'Destination des fichiers'.LectureLecture de 5 secondes apres le marqueur de debutLecture de 5 secondes avant le marqueur de finLes types de fichiers acceptes sont: WAV FLAC MP3 OGG APE WMA CUELinux On The RootM4aMAX FICHIERS ATTEINT = %dMODE ADMINISTRATEURMP3-OGGMPEG-4 File Format (MP4) - Extension .m4aMPLAYER deja en actionMPLAYER est deja utilise !!Mauvais type de fichierMeilleure qualite de compressionMenu: Click droit / Ajout plage: Click bouton centre / Zoom: Ctrl+ScrollMix (scan)Rms/albumModeMode hybrideMode normalMode rapide de compressionModification des champsModifiez la chaine de recherche etMono forceMp3MpcMusepackMusique en attente.Musique en ecoute.New BitrateNew BitsNew HertzNew VoieNiceNo Audio CDNomNom (sans extention) du fichier a sauvegarder.Nom a droiteNom a gaucheNom au centreNom de fichier absent !!Nom de fichier unique absentNonNormaliseNormalise: En attente de selection.Nouveau bitrateNumNumeroOKOggOgg Vorbis explique par ShankariusOkOuiOutilsOuvre un fichierPACKAGE dvd+rw-tools ABSENTPAS de lecteur audio presentPAS de navigateur presentPEAK-ALBUM: Amplification maximale du volume pour un groupe de fichiers en respectant les ecarts de niveau entre chacun d'eux.PEAK: Amplification maximale du volume pour chaque de fichier.PISTEPackage NOT FOUND !Package checkmp3 (mp3check) NOT FOUND !PaquetPar defautParametres par defautPas assez de place dans le dossier temporairePas de fichier WAV dans le cue-file !PausePeakPeak/albumPistePlagePlayPlease, install package [ cdda2wav ]Please, install package [ cdparanoia ]Please, install package [ icedax ]Please, install packages [ cd-discid ]Please, install packages [ icedax, cdda2wav ]Pour evaluer les templates, vous devez activer une lecture de cdaudioPour resoudre ce probleme:Production fichier CueQUANTIFICATIONQualite 0Qualite 1Qualite 10 (Meilleure qualite)Qualite 10 [ Meilleure qualite ]Qualite 2Qualite 3Qualite 3 [ Defaut ]Qualite 4Qualite 5Qualite 6Qualite 7Qualite 8Qualite 9Qualite -1 (Moins bonne qualite)Qualite -1 [ Moins bonne qualite ]QuantificationQuitterRMS-ALBUM: Ajustement du volume moyen pour un groupe de fichiers en respectant les ecarts de niveau moyen entre chacun d'eux.RMS: Ajustement du volume moyen de chaque de fichier.Reduit l'agrandissementRemet l'echelle a 100%ReplayGainReplaygainReplierRetourRetourner horizontalementRetourner verticalementRoad2MayotteSCANSaisissez ici un critere de recherche d'images.Saisissez un nom de fichier sans extentionSaisissez une chaine de recherche etSauvegarde au format PNGSauvegarde aux formats PDF et PostScriptSauvegarde le fichierScan ...Scan en cours ...Select type: --Selecteur precedantSelecteur suivantSelection globaleSelectionnez un autre fichier.Signature MD5SizeSonSox et Mplayer absentsSox et Mplayer sont absents de votreSplitStatusStereoSuppression pendant la lecture impossibleSupprimer l'image de la listeSupprimer l'image en selectionSupprimer la plage activeSuprimer tous les marqueurs pour les remplacer par un marqueur uniqueTAGSTailleTaux de compressionTempsTemps inferieur a 5 secondes entre marqueur et curseur !Texte gras.Texte italique.TimeTitreTitre [%02d ** ]Titre [%02d]Titre:Titre_%02d_Chapitre_%02d_audio_%02d_%sTitresTotal selection%s: %d, 2ch: %dTransport Stream (ADTS) - Extension .aacTrashTuxfamilyTypeV0 (meilleure qualite)V0 [ meilleure qualite ]V4 [ defaut ]V9 (moins bonne qualite)V9 [ moins bonne qualite ]Valeur d'origineVeuillez deselectionner des PeakGroup.Veuillez installer : Veuillez installer checkmp3 ou mp3check pour la prise en compte des fichiers mp3Veuillez installez un lecteur audio.Veuillez installez un navigateur.Veuillez l'installer car j'ai besoin deVeuillez les installer pour pouvoir continuer.Veuillez recommencer.Veuillez renseigner les champs du proxyVeuillez saisir un nom pour le fichier uniqueVeuillez selectionner un fichier de type WAV FLAC MP3 OGG APEVisibilite des champsVoieVous devez ouvrir l'acces internetVous pouvez activer XCFA en ligne de commande avec: WAVWaiting ...WavWavPWavpackWiki Xcfa par ShankariusXCFA LinuxForen.deXCFA Vorstellung XCFA: Conversions WAV TO WAVXCFA: Extraction CDXCFA: Extraction DVDXCFA: Modification bitrateXCFA: Traitement fichiersXcfa sur Linux On The Root[Erreur du segment numero: %d] %d) Lecture PASS 1/2 [Recherche des fichiers images]a generer une erreur pendant la conversion.braindead : extreme high quality : 232 .. 278 kbit/sbuttoncd-discid NOT FOUNDcdda2wav / icedaxcdda2wav NOT FOUNDcdda2wav and icedax NOT FOUNDcdparanoiacdparanoia NOT FOUNDcdparanoia mode expertcdparanoia mode expert multi passesconfiguration.correspondant aux plages.dans le module Split.de votre systeme !definit le serveur a contacter pour les recherches titredu cue-filegenerer un nouveau cue-file ou des decoupesicedax NOT FOUNDinsane : extreme high quality : 232 .. 268 kbit/slabellecteur(s) de cd / dvd.lecturelsdvd est absent !musique qui sera reconnu et pre-decoupen'est present dans votre configuration.pour consulter le type d'erreur renvoye par mplayer.pour consulter le type d'erreur renvoye par sox.radio : medium (MP3) quality : 112 .. 152 kbit/srecommencez.sstandard : high quality (dflt) : 142 .. 184 kbit/sstereo left/rightstereo mid/sidetelephone: lowest quality : 32 .. 48 kbit/sthumb : low quality/internet : 58 .. 86 kbit/sxtreme : extreme high quality : 168 .. 212 kbit/sProject-Id-Version: xcfa 4.2.8 Report-Msgid-Bugs-To: xcfa@tuxfamily.org POT-Creation-Date: 2013-10-07 16:28+0200 PO-Revision-Date: 2010-05-06 16:59+0200 Last-Translator: BULIN Claude xcfa@tuxfamily.org Language-Team: French Language: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Pages à visiter konqueror : newTab iceweasel : -new-window -new-tab Pour installer les programmes externes requis, veuillez utiliser l'installateur de votre distribution Gnu/Linux. Codeur Xcfa Codeur pages Web Documentation ElementSpeak pour Xcfa Forum Graphisme Modification des champs Traduction Allemande Traduction Italienne Au tout début: Serres Patrick, Hamann Regis, Fabien Gregis, @Dzef, @alteo_gange, @Leonux, @zarer, @Shankarius, @bishop, @Ludo, @Patachonf, ... ;-) [Piste: %d] et dont le nom sera: --- ATTENTION: Il faut installer %s ATTENTION: Il faut installer %s%s ATTENTION: Il faut installer %s%s%s Désélection globale Désélection horizontale Désélection verticale Désélection verticale Désélection verticale L'accès au web est impossible car aucun navigateur Sélection ALBUM Sélection Expert horizontale Sélection Expert verticale Sélection NETTOYER Sélection PISTE Sélection horizontale Sélection verticale Sélection verticale Sélection verticale Veuillez installez un navigateur. Vous ne devriez pas utiliser XCFA sous ROOT ! n'est présent dans votre configuration. VBR / ABR 8 bits 8000 Hertz Lame (fichier mp3): ... les paquets: ? ... les paquets: deb ... les paquets: fpm ... les paquets: pkg.tar.xz ... les paquets: rpm ... les paquets: tgz Choix du périphérique / Lecture du CD Choix du périphérique / Lecture du DVD Dossier de stockage Dossier provisoire des conversions Jouer une musique en fin de tâche Options AacPlusEnc Options FAAC Options FLAC Options LAME Options MAC Options MUSEPACK Options OGGENC Options WAVPACK Priorité système Web AacPlusEnc Web Faac Web Flac Web Lame Web Mac Web Musepack Web Oggenc Web Wavpack Web cdparanoia *.m3u et xspf: Année: Genre: Piste: A program to send desktop notifications AAC+ encoder AacplusEnc Année: Application externes Applications externes Arrangement des titres du CD Audio Codeur freeware CD CD Cherche des renseignements sur les formats mp3 Cherche les informations d'un dvd Conteneur Contributions Conversion wav : flac Conversion wav : mp3 Conversion wav : ogg Création d'un fichier unique DVD Débit Décode ATSC A/52 audio streams Découpage de fichiers sans décodage Extracteur cd audio Faac Fichiers Flac Forte compression au format wave Genéral Genre Informations Lecteur et extracteur Licence MPEG-4 AAC decodeur Mac Machine Mode Mode flux (streaming) Modif.: Modification des tags Freedb Monkey's Audio Console Front End : APE Mono: Qualité en kbit/s Mp3 Mp3-Ogg MusePack commandline utilities Musepack Navigateurs / Lecteurs audio Normaliseur de fichier mp3 Normaliseur de fichier ogg Normaliseur de fichier wav Oggenc Piste: Pochette Préférences Qualité Qualité VBR / Débit ABR Read CD and get CDDB discid information Split Stéréo: Qualité en kbit/s Tags Transformation universelle de fichiers son WAVPACK Hybrid Lossless Audio Compressor Wav Wavpack $ xcfa -verbose%a [ %a="Artist" ] %b [ %b="Album" ] %Tl - Tetsumaki lower Transforme la chaine en minuscule sauf le premier caractère. Dans le champs 'Titre' depuis [ Modification des tags FreeDB ], le ou les caractères devant être conservés doivent être précédés par le caractère %%d) Lecture PASS 2/2 'dvd+rw-mediainfo' pour identifier le(s(Click Droit = Menu) / Ajustement COLLECTIF maximal du volume(Click Droit = Menu) / Ajustement INDIVIDUEL maximal du volume(Click Droit = Menu) / Ce fichier sera dirigé apres traitement vers la corbeille(Click Droit = Menu) / Normalise: En attente de sélection.(Click Droit = Menu) / Choix du codage en nombre de bits(Click Droit = Menu) / Choix du nombre de pistes (voies)(Click Droit = Menu) / Cliquez ici pour envoyer ce fichier après traitement à la corbeille(Click Droit = Menu) / En attente de sélection.(Click Droit = Menu) / En attente de sélection. Le fichier existe.(Click Droit = Menu) / En sélection.(Click Droit = Menu) / En sélection. Le fichier existe.(Click Droit = Menu) / Mode album.(Click Droit = Menu) / Mode effacer.(Click Droit = Menu) / Mode piste(Click Droit = Menu) / PEAK-ALBUM: Amplification maximale du volume pour un groupe de fichiers en respectant les écarts de niveau entre chacun d'eux.(Click Droit = Menu) / PEAK: Amplification maximale du volume pour chaque de fichier.(Click Droit = Menu) / Possibilité d'ajustement INDIVIDUEL ou COLLECTIF maximal du volume(Click Droit = Menu) / ReplayGain: En attente de sélection.(Click Droit = Menu) / Sélection avec options expert.(Click Droit = Menu) / Sélection avec options expert. Le fichier existe.---MENU TRASH----------------SELECTION VERTICALE-------> Déjà %d fois 2 lectures du segment %d! Abandon :/ 0 (Rapide)00h00m00s1 piste1 (fast / rapide)16 bits2 pistes22000 Hertz24 bits32 bits32000 Hertz4 pistes44056 Hertz44100 Hertz48000 Hertz6 pistes6 (very slow / tres lent)64 bits8 (Lent)88200 Hertz96000 Hertz AacplusEnc (fichier .aac): Au moins deux sélections colonne Wav Choix niveau dBFS: Création Cue cd Destination des conversions Destination des fichiers Eject Exportation de Extraction cd-audio avec: Faac (fichier .m4a): Flac (fichier flac): Importer Informations Installation Mac (fichier ape): MusePack (fichier mpc): Nettoyer Normalise: Normaliser Oggenc (fichier ogg): Options experts, définies par l'utilisateur - faac (wav -> m4a) Options experts, définies par l'utilisateur - flac (wav -> flac) Options experts, définies par l'utilisateur - lame (wav -> mp3) Options experts, définies par l'utilisateur - mac (wav -> ape) Options experts, définies par l'utilisateur - musepack (wav -> mpc) Options experts, définies par l'utilisateur - oggenc (wav -> ogg) Options experts, définies par l'utilisateur - wavpack (wav -> wv) Paramétrage CDDB: [ Nom du serveur ] Paramétrage PROXY: [ serveur ] [ port ] Serveur Vers 2CH: Sub / Ambiance Visibilité Votre système utilise ... WavPack (fichier wv): %a - artiste %b - titre de l'album %c - numéro de la piste %d - titre de la chanson %e - année %g - genre %f - création d'un fichier *.m3u et *.xspf %na - no accent %u - remplacement de caractères: %u(AB=C) %u( =_) %Tl - Tetsumaki lower%a - artiste %b - titre de l'album %c - numéro de la piste %d - titre de la chanson %e - année %g - genre %na - no accent %Tl - Tetsumaki lower %u - remplacement de caractères: %u(AB=C) %u( =_)0%s Copie fichier: %d%%%s Restitution fichier: %d%%%s Traitement Mplayer: %d%%%s Traitement Sox: %d%%Trash files ...AuthorCe fichier ne peut être extrait !DiscIdFramasoft Génération d'un rapport pour: cdparanoia mode expert multi passesGestion des tags, titres et fichiers cueHomePageImport images webIngénieurs du son Lecteurs audioLicenceManPageManPage ManPage ManPage NavigateurScan du support en cours ...Site officielSite officiel TexteTitre CDTotal fichiers: %d, Sélections: %dTraduction Anglaise Utilisez le glisser / déplacer - Effacer une image avec Ctrl + ClickWeb Info Wiki Wiki mp3 WikiWiki Wiki []string option interneIndiquez ici le dossier sur votre système qui servira de lieu de stockage provisoire pendant les différentes conversions. Album:Artiste:Commentaire:Le fichier LogExpertMode.txt sera créé dans le dossier des extractionsPrêt pour l'import d'un fichier CUE, WAV, FLAC, OGG, MP3, APE, WMATitre:paramètres: Xcfa sur le web= Vous avez probablement trouvé un bug dans XCFA = Adressage mémoire invalide A proposABR / CBR / VBR / VBR-NEWAjouter de nouvelles images.ATTENTION: Pas assez de place dans le dossier temporaire.AacAbout X Convert File AudioActionAdapte l'échelle a la taille de la fenêtreAideAjout plage: Click bouton centre / Zoom: Ctrl+ScrollAjouter du texte éditable.AlbumAlbum:All Files (*.*)AnnéeApeAppliquerAppliquer les modificationsAprès une lecture de CD et un ajout d'étiquette, ce menu permet la mise en forme des titres, auteurs ...Arrêt par l'utilisateurArtisteArtiste:Aucun fichier de musique associé au cue-file !Aucun fichier de musique associé dans le dossierAucun fichier trouvé !Audioptimisation by DzefAugmentation de l'échelle.Augmente l'agrandissementBishop's pageBitrateBitsBonne qualité de compressionCAPACITE DOSSIER TEMPORAIRE TROP FAIBLECDCONVERSIONSCe fichier appartient a XCFAChapitre: [%02d]ChoixChoix d'un chemin de stockage des imagesChoix d'un dossier de destinationChoix d'un fichierChoix de fichiers CUE WAV FLAC OGG MP3 APE WMAChoix d'un fichier musicalChoix d'un lieu de sauvegardeChoix d'une nouvelle destinationChoix d'une nouvelle police.Choix de fichiersChoix de fichiers FLAC MPC OGG MP3Choix de fichiers MP3/OGGChoix de fichiers WAVChoix parmis les différentes bases de données pour le CD.Click droit: accès popupCommentaireCommentaire:CompressionCompression maximumCôntrole du contenu des fichiers extraits Conversion vers %s canaux.Conversion vers 2 canaux.Conversion vers 2 canaux. Un second click activera la conversion vers %s canaux.Conversion(s) vers la sourceCouldn't find CDCréation d'un fichier cue unique depuis une lecture du cd audioCréation d'un fichier unique au format: Création fichier cue uniquementCritère de recherche absent !!DVDDebian MultimediaDébitDéplierDésélection globaleDétail extraction mode expertDiminution de l'échelle.Doc Xcfa par PatachonDurée de la plage activeERREUR datas proxyERREUR: Lieu de stockage non autorisé !Echelle à 100%.Echelle compatible avec la taille de la fenêtre.Ecriture du fichier cueEffacerEffacer l'imageEkd (EnKoDeur-Mixeur)Emplacement de sauvegarde des fichiers.En attente de sélection. Un click activera la conversion vers 2 canaux.Enregistrer la page au format png.ErreurErreur SOXErreur de choix de fichierErreur de données dans le fichier CUEErreur de lecture !Erreur depuis MPLAYER !Erreur depuis SOX !Extra encode processingExtraction mode expert PASS 1/2 Extraction mode expert PASS 2/2 ExtraireFREQUENCEFichierFichier de correctionFichier structure DVDFichier videFichier_complet_%02d_%sFix (scan)RmsFlacFormatForum XcfaFramasoftFréquenceFrugalwareGenreHertzIl faut installer le programme: lsdvdIl ne restera qu'à ajuster les plages pourImage au dernier planImage au dessusImage au premier planImage en dessousImportation des images depuis le Web.Importation du titre du CD.Importer des images pour la pochetteIndex de débutIndex de finIndex de lectureJe suis libreL'accès au web est impossible car aucun navigateurL'application est absente.La LinuxerieLa liaison internet est absenteLa normalisation expliquée par DzefLa solution est d'importer le fichier deLe DVD est absent du lecteur.Le fichier CUE sera enregistré vers 'Destination des fichiers'.Le fichier ne contient aucune donnée !!!Le package 'dvd+rw-tools' est absentLe programme SOX de votre distributionLe programme XCFA_INSTALL_ALL écrit en Perl vous sera utile en ligne de commande pour une installation des programmes complémentaire.Le programme externe d'extraction est absent.Le résultat du Split sera dirigé vers 'Destination des fichiers'.LectureLecture de 5 secondes après le marqueur de débutLecture de 5 secondes avant le marqueur de finLes types de fichiers acceptés sont WAV FLAC MP3 OGG APE WMA CUELinux On The RootM4aMAX FICHIERS ATTEINT = %dMODE ADMINISTRATEURMP3-OGGMPEG-4 File Format (MP4) - Extension .m4aMPLAYER déjà en actionMPLAYER est déjà utilisé !!Mauvais type de fichierMeilleure qualité de compressionMenu: Click droit / Ajout plage: Click bouton centre / Zoom: Ctrl+ScrollMix (scan)Rms/albumModeMode hybrideMode normalMode rapide de compressionModification des champsModifiez la chaine de recherche etMono forcéMp3MpcMusepackMusique en attente.Musique en écoute.New BitrateNew BitsNew HertzNew VoieNiceNo Audio CDNomNom (sans extention) du fichier à sauvegarder.Nom à droiteNom à gaucheNom au centreNom de fichier absent !!Nom de fichier unique absentNonNormaliseNormalise: En attente de sélection.Nouveau bitrateNumNuméroOKOggOgg Vorbis expliqué par ShankariusOkOuiOutilsOuvre un fichierPACKAGE dvd+rw-tools ABSENTPAS de lecteur audio présentPAS de navigateur présentPEAK-ALBUM: Amplification maximale du volume pour un groupe de fichiers en respectant les écarts de niveau entre chacun d'eux.PEAK: Amplification maximale du volume pour chaque de fichier.PISTEPackage NOT FOUND !Package checkmp3 (mp3check) NOT FOUND !PaquetPar défautParamètres par défautPas assez de place dans le dossier temporaire.Pas de fichier WAV dans le cue-file !PausePeakPeak/albumPistePlagePlayPlease, install package [ cdda2wav ]Please, install package [ cdparanoia ]Please, install package [ icedax ]Please, install packages [ cd-discid ]Please, install packages [ icedax, cdda2wav ]Pour évaluer les templates, vous devez activer une lecture de cdaudioPour résoudre ce problème:Production fichier CueQUANTIFICATIONQualité 0Qualité 1Qualité 10 (Meilleure qualité)Qualité 10 [ Meilleure qualité ]Qualité 2Qualité 3Qualité 3 [ Défaut ]Qualité 4Qualité 5Qualité 6Qualité 7Qualité 8Qualité 9Qualité -1 (Moins bonne qualité)Qualité -1 [ Moins bonne qualité ]QuantificationQuitterRMS-ALBUM: Ajustement du volume moyen pour un groupe de fichiers en respectant les écarts de niveau moyen entre chacun d'eux.RMS: Ajustement du volume moyen de chaque de fichier.Reduit l'agrandissementRemet l'echelle à 100%ReplayGainReplaygainReplierRetourRetourner horizontalementRetourner verticalementRoad2MayotteSCANSaisissez ici un critère de recherche d'images.Saisissez un nom de fichier sans extentionSaisissez une chaine de recherche etSauvegarde au format PNGSauvegarde aux formats PDF et PostScriptSauvegarde le fichierScan ...Scan en cours ...Select type: --Sélecteur precedantSélecteur suivantSélection globaleSelectionnez un autre fichier.Signature MD5SizeSonSox et Mplayer absentsSox et Mplayer sont absents de votreSplitStatusStéréoSuppression pendant la lecture impossibleSupprimer l'image de la listeSupprimer l'image en sélectionSupprimer la plage activeSuprimer tous les marqueurs pour les remplacer par un marqueur uniqueTAGSTailleTaux de compressionTempsTemps inférieur à 5 secondes entre marqueur et curseur !Texte gras.Texte italique.TimeTitreTitre [%02d ** ]Titre [%02d]Titre:Titre_%02d_Chapitre_%02d_audio_%02d_%sTitresTotal sélection%s: %d, 2ch: %dTransport Stream (ADTS) - Extension .aacTrashTuxfamilyTypeV0 (meilleure qualité)V0 [ meilleure qualité ]V4 [ défaut ]V9 (moins bonne qualité)V9 [ moins bonne qualité ]Valeur d'origineVeuillez déselectionner des PeakGroup.Veuillez installer : Veuillez installer checkmp3 ou mp3check pour la prise en compte des fichiers mp3Veuillez installez un lecteur audio.Veuillez installez un navigateur.Veuillez l'installer car j'ai besoin deVeuillez les installer pour pouvoir continuer.Veuillez recommencer.Veuillez renseigner les champs du proxyVeuillez saisir un nom pour le fichier uniqueVeuillez sélectionner un fichier de type WAV FLAC MP3 OGG APEVisibilite des champsVoieVous devez ouvrir l'accès internetVous pouvez activer XCFA en ligne de commande avec: WAVWaiting ...WavWavPWavpackWiki Xcfa par ShankariusXCFA LinuxForen.deXCFA Vorstellung XCFA: Conversions WAV TO WAVXCFA: Extraction CDXCFA: Extraction DVDXCFA: Modification bitrateXCFA: Traitement fichiersXcfa sur Linux On The Root[Erreur du segment numéro: %d] %d) Lecture PASS 1/2 [Recherche des fichiers images]a générer une erreur pendant la conversion.braindead : extreme high quality : 232 .. 278 kbit/sbuttoncd-discid NOT FOUNDcdda2wav / icedaxcdda2wav NOT FOUNDcdda2wav and icedax NOT FOUNDcdparanoiacdparanoia NOT FOUNDcdparanoia mode expertcdparanoia mode expert multi passesconfiguration.correspondant aux plages.dans le module Split.de votre système !Définit le serveur à contacter pour les recherches titredu cue-filegénérer un nouveau cue-file ou des découpesicedax NOT FOUNDinsane : extreme high quality : 232 .. 268 kbit/slabellecteur(s) de cd / dvd.lecturelsdvd est absent !musique qui sera reconnu et pré-découpén'est présent dans votre configuration.pour consulter le type d'erreur renvoyé par mplayer.pour consulter le type d'erreur renvoyé par sox.radio : medium (MP3) quality : 112 .. 152 kbit/srecommencez.sstandard : high quality (dflt) : 142 .. 184 kbit/sstereo left/rightstereo mid/sidetelephone: lowest quality : 32 .. 48 kbit/sthumb : low quality/internet : 58 .. 86 kbit/sxtreme : extreme high quality : 168 .. 212 kbit/sxcfa-4.3.6/po/remove-potcdate.sin0000644000175000017500000000066011400750706013617 00000000000000# Sed script that remove the POT-Creation-Date line in the header entry # from a POT file. # # The distinction between the first and the following occurrences of the # pattern is achieved by looking at the hold space. /^"POT-Creation-Date: .*"$/{ x # Test if the hold space is empty. s/P/P/ ta # Yes it was empty. First occurrence. Remove the line. g d bb :a # The hold space was nonempty. Following occurrences. Do nothing. x :b } xcfa-4.3.6/po/quot.sed0000644000175000017500000000023111400750706011465 00000000000000s/"\([^"]*\)"/“\1”/g s/`\([^`']*\)'/‘\1’/g s/ '\([^`']*\)' / ‘\1’ /g s/ '\([^`']*\)'$/ ‘\1’/g s/^'\([^`']*\)' /‘\1’ /g s/“”/""/g xcfa-4.3.6/po/it.gmo0000644000175000017500000014511012224542443011130 00000000000000U(p5q5855G6[6t6 666 66 7)7 88,8$38&X8(8888895,9b9!~99999:&:?:$Y:"~::*: :: :;!;=;[;$y;;;.;/ <9<+V<*<<<<< = =:=R=k========>#>;>S>b>q>(> > >>>>>?1?6?/DP1E,E8E8EZ!F/|FBF$F7G"LG$oG"GGUMHYH;H59IHoIII;I ,J 8JBJKJ]J fJ pJ}JJ J J J J J JJJ J K K%K-DKrKK$K!KKK#L9LYLyLLLL"LL MM 1MHRMIMHMG.NLvNJNJO,YO/OO!OO"O PAPRS&S,S+T'b"bb bb%bbc(cl mm'%mMm Tm_m-um%mmm mmmm$m&n"5t)/$>[(t)ǩ Щ ک*'@RW)Ԫ8('Pl ̫05Bx3 Ҭݬ C'k ٭"!4!Vx   ׮  #,6%cƯ!կ(@ P\n5} ΰ%۰#+%QFl*ѱ+(7R3-;-i;ӳ'*+2^u!fƴ-A F R_{!ĵȵѵ  *5:J O]m| ( ! ,/ 3=Lk|5 V^*u 2̸$ )4<B0G2x,1ع5 B@ ˺ ׺!" ( 4@ X d p | !!»|/x ۼ  5B1S)"ҽ' %1F\q ƾ̾' 8 V"w< 7Ui{1 '%)%O Waf#G+-s'.' /?3o<+<'dhw{ &>6X-:2DY w0&;: v$:/-+]2.7#3;5q7<6](qxK^P(!lfNwWwr7L"` BFyHU<?9IEPSa6tRk8l2o=z?Vi)Xv@@Le$cu_OqH'tHZn@ XN__ `w kRMZ QJS:4k~M[hx"{ d3ggrn=*ZVc2)N17I|%cf5=!OOg#o:CbBq,m6LnmW/&B\;Ry5t\5K)Y<FbU s1s'[2>j YAy3p.j0%G$G,}#?b8p~- h4* [+P TKJ0D"}&.~^-Ef+d4,/eWQ'Q\S#7}{ e+(Fj/lJ0aA`us imI GC.u  >azT;$Yo|hdpV :z^89DC6X1|9-vv&*%xE;r D>MTU!{]i]<3A Pages a visiter konqueror : newTab iceweasel : -new-window -new-tab Pour installer les programmes externes requis, veuillez utiliser l'installateur de votre distribution Gnu/Linux. Codeur Xcfa Codeur pages Web Documentation ElementSpeak pour Xcfa Forum Graphisme Modification des champs Traduction Allemande Traduction Italienne Au tout debut: Serres Patrick, Hamann Regis, Fabien Gregis, @Dzef, @alteo_gange, @Leonux, @zarer, @Shankarius, @bishop, @Ludo, @Patachonf, ... ;-) [Piste: %d] et dont le nom sera: --- ATTENTION: Il faut installer %s ATTENTION: Il faut installer %s%s ATTENTION: Il faut installer %s%s%s Deselection globale Deselection horizontale Deselection verticale Deselection verticale Deselection verticale L'acces au web est impossible car aucun navigateur Selection ALBUM Selection Expert horizontale Selection Expert verticale Selection NETTOYER Selection PISTE Selection horizontale Selection verticale Selection verticale Selection verticale Veuillez installez un navigateur. Vous ne devriez pas utiliser XCFA sous ROOT ! n'est present dans votre configuration. VBR / ABR 8 bits 8000 Hertz Lame (fichier mp3): ... les paquets: ? ... les paquets: deb ... les paquets: fpm ... les paquets: pkg.tar.xz ... les paquets: rpm ... les paquets: tgz Choix du peripherique / Lecture du CD Choix du peripherique / Lecture du DVD Dossier de stockage Dossier provisoire des conversions Jouer une musique en fin de tache Options AacPlusEnc Options FAAC Options FLAC Options LAME Options MAC Options MUSEPACK Options OGGENC Options WAVPACK Priorite systeme Web AacPlusEnc Web Faac Web Flac Web Lame Web Mac Web Musepack Web Oggenc Web Wavpack Web cdparanoia *.m3u et xspf: Annee: Genre: Piste: A program to send desktop notifications AAC+ encoder AacplusEnc Annee: Application externes Applications externes Arrangement des titres du CD Audio Codeur freeware CD CD Cherche des renseignements sur les formats mp3 Cherche les informations d'un dvd Conteneur Contributions Conversion wav : flac Conversion wav : mp3 Conversion wav : ogg Creation d'un fichier unique DVD Debit Decode ATSC A/52 audio streams Decoupage de fichiers sans decodage Extracteur cd audio Faac Fichiers Flac Forte compression au format wave General Genre: Informations Lecteur et extracteur License MPEG-4 AAC decodeur Mac Machine Mode Mode flux (streaming) Modif.: Modification des tags Freedb Monkey's Audio Console Front End : APE Mono: Qualite en kbit/s Mp3 Mp3-Ogg MusePack commandline utilities Musepack Navigateurs / Lecteurs audio Normaliseur de fichier mp3 Normaliseur de fichier ogg Normaliseur de fichier wav Oggenc Piste: Pochette Preferences Qualite Qualite VBR / Debit ABR Read CD and get CDDB discid information Split Stereo: Qualite en kbit/s Tags Transformation universelle de fichiers son WAVPACK Hybrid Lossless Audio Compressor Wav Wavpack $ xcfa -verbose%a [ %a="Artist" ] %b [ %b="Album" ] %Tl - Tetsumaki lower Transforme la chaine en minuscule sauf le premier caractere. Dans le champs 'Titre' depuis [ Modification des tags FreeDB ], le ou les caracteres devant etre conserves doivent etre precedes par le caractere %%d) Lecture PASS 2/2 'dvd+rw-mediainfo' pour identifier le(s)(Click Droit = Menu) / Ajustement COLLECTIF maximal du volume(Click Droit = Menu) / Ajustement INDIVIDUEL maximal du volume(Click Droit = Menu) / Ce fichier sera dirige apres traitement vers la corbeille(Click Droit = Menu) / Choix de la frequence(Click Droit = Menu) / Choix du codage en nombre de bits(Click Droit = Menu) / Choix du nombre de pistes (voies)(Click Droit = Menu) / Cliquez ici pour envoyer ce fichier apres traitement a la corbeille(Click Droit = Menu) / En attente de selection.(Click Droit = Menu) / En attente de selection. Le fichier existe.(Click Droit = Menu) / En selection.(Click Droit = Menu) / En selection. Le fichier existe.(Click Droit = Menu) / Mode album.(Click Droit = Menu) / Mode effacer.(Click Droit = Menu) / Mode piste.(Click Droit = Menu) / PEAK-ALBUM: Amplification maximale du volume pour un groupe de fichiers en respectant les ecarts de niveau entre chacun d'eux.(Click Droit = Menu) / PEAK: Amplification maximale du volume pour chaque de fichier.(Click Droit = Menu) / Possibilite d'ajustement INDIVIDUEL ou COLLECTIF maximal du volume(Click Droit = Menu) / ReplayGain: En attente de selection.(Click Droit = Menu) / Selection avec options expert.(Click Droit = Menu) / Selection avec options expert. Le fichier existe.---MENU TRASH-----------------SELECTION VERTICALE-------> Deja %d fois 2 lectures du segment %d! Abandon :/ 0 (Rapide)00h00m00s1 piste1 (fast / rapide)16 bits2 pistes22000 Hertz24 bits32 bits32000 Hertz4 pistes44056 Hertz44100 Hertz48000 Hertz6 pistes6 (very slow / tres lent)64 bits8 (Lent)88200 Hertz96000 Hertz AacplusEnc (fichier .aac): Au moins deux selections colonne Wav Choix niveau dBFS: Creation Cue cd Destination des conversions Destination des fichiers Eject Exportation de Extraction cd-audio avec: Faac (fichier .m4a): Flac (fichier flac): Importer Informations Installation Mac (fichier ape): MusePack (fichier mpc): Nettoyer Normalise: Normaliser Oggenc (fichier ogg): Options experts, definies par l'utilisateur - faac (wav -> m4a) Options experts, definies par l'utilisateur - flac (wav -> flac) Options experts, definies par l'utilisateur - lame (wav -> mp3) Options experts, definies par l'utilisateur - mac (wav -> ape) Options experts, definies par l'utilisateur - musepack (wav -> mpc) Options experts, definies par l'utilisateur - oggenc (wav -> ogg) Options experts, definies par l'utilisateur - wavpack (wav -> wv) Parametrage CDDB: [ Nom du serveur ] Parametrage PROXY: [ serveur ] [ port ] Serveur Vers 2CH: Sub / Ambiance Visibilite Votre systeme utilise ... WavPack (fichier wv): %a - artiste %b - titre de l'album %c - numero de la piste %d - titre de la chanson %e - annee %g - genre %f - creation d'un fichier *.m3u et *.xspf %na - no accent %u - remplacement de caracteres: %u(AB=C) %u( =_) %Tl - Tetsumaki lower%a - artiste %b - titre de l'album %c - numero de la piste %d - titre de la chanson %e - annee %g - genre %na - no accent %Tl - Tetsumaki lower %u - remplacement de caracteres: %u(AB=C) %u( =_)0%s Copie fichier: %d%%%s Restitution fichier: %d%%%s Traitement Mplayer: %d%%%s Traitement Sox: %d%%Trash files ...AuthorCe fichier ne peut etre extrait !DiscIdFramasoft Generation d'un rapport pour: cdparanoia mode expert multi passesGestion des tags, titres et fichiers cueHomePageImport images webIngenieurs du son Lecteurs audioLicenceManPageManPage ManPage ManPage NavigateurScan du support en cours ...Site officielSite officiel TexteTitre CDTotal fichiers: %d, Selections: %dTraduction Anglaise Utilisez le glisser / deplacer - Effacer une image avec Ctrl + ClickWeb Info Wiki Wiki mp3 WikiWiki Wiki []string option interneIndiquez ici le dossier sur votre systeme qui servira de lieu de stockage provisoire pendant les differentes conversions. Album:Artiste:Commentaire:Le fichier LogExpertMode.txt sera cree dans le dossier des extractionsPret pour l'import d'un fichier CUE, WAV, FLAC, OGG, MP3, APE, WMATitre:parametres: Xcfa sur le web= Vous avez probablement trouve un bug dans XCFA = Adressage memoire invalide A proposABR / CBR / VBR / VBR-NEWAJouter de nouvelles images.ATTENTION: Pas assez de place dans le dossier temporaire.AacAbout X Convert File AudioActionAdapte l'echelle a la taille de la fenetreAideAjout plage: Click bouton centre / Zoom: Ctrl+ScrollAjouter du texte editable.AlbumAlbum:All Files (*.*)AnneeApeAppliquerAppliquer les modificationsApres une lecture de CD et un ajout d'etiquette, ce menu permet la mise en forme des titres, auteurs ...Arret par l'utilisateurArtisteArtiste:Aucun fichier de musique associe au cue-file !Aucun fichier de musique associe dans le dossierAucun fichier trouve !Audioptimisation by DzefAugmentation de l'echelle.Augmente l'agrandissementBishop's pageBitrateBitsBonne qualite de compressionCAPACITE DOSSIER TEMPORAIRE TROP FAIBLECDCONVERSIONSCe fichier appartient a XCFAChapitre: [%02d]ChoixChoix d'un chemin de stockage des imagesChoix d'un dossier de destinationChoix d'un fichierChoix d'un fichier CUE WAV FLAC OGG MP3 APE WMAChoix d'un fichier musicalChoix d'un lieu de sauvegardeChoix d'une nouvelle destinationChoix d'une nouvelle police.Choix de fichiersChoix de fichiers FLAC MPC OGG MP3Choix de fichiers MP3/OGGChoix de fichiers WAVChoix parmis les differentes bases de donnees pour le CD.Click droit: acces popupCommentaireCommentaire:CompressionCompression maximumControle du contenu des fichiers extraits Conversion vers %s canaux.Conversion vers 2 canaux.Conversion vers 2 canaux. Un second click activera la conversion vers %s canaux.Conversion(s) vers la sourceCouldn't find CDCreation d'un fichier cue unique depuis une lecture du cd audioCreation d'un fichier unique au format: Creation fichier cue uniquementCritere de recherche absent !!DVDDebian MultimediaDebitDeplierDeselection globaleDetail extraction mode expertDiminution de l'echelle.Doc Xcfa par PatachonDuree de la plage activeERREUR datas proxyERREUR: Lieu de stockage non autorise !Echelle a 100%.Echelle compatible avec la taille de la fenetre.Ecriture du fichier cueEffacerEffacer l'imageEkd (EnKoDeur-Mixeur)Emplacement de sauvegarde des fichiers.En attente de selection. Un click activera la conversion vers 2 canaux.Enregistrer la page au format png.ErreurErreur SOXErreur de choix de fichierErreur de donnees dans le fichier CUEErreur de lecture !Erreur depuis MPLAYER !Erreur depuis SOX !Extra encode processingExtraction mode expert PASS 1/2 Extraction mode expert PASS 2/2 ExtraireFREQUENCEFichierFichier de correctionFichier structure DVDFichier videFichier_complet_%02d_%sFix (scan)RmsFlacFormatForum XcfaFramasoftFrequenceFrugalwareGenreHertzIl faut installer le programme: lsdvdIl ne restera qu'a ajuster les plages pourImage au dernier planImage au dessusImage au premier planImage en dessousImportation des images depuis le Web.Importation du titre du CD.Importer des images pour la pochetteIndex de debutIndex de finIndex de lectureJe suis libreL'acces au web est impossible car aucun navigateurL'application est absente.La LinuxerieLa liaison internet est absenteLa normalisation expliquee par DzefLa solution est d'importer le fichier deLe DVD est absent du lecteur.Le fichier CUE sera enregistre vers 'Destination des fichiers'.Le fichier ne contient aucune donnee !!!Le package 'dvd+rw-tools' est absentLe programme SOX de votre distributionLe programme XCFA_INSTALL_ALL ecrit en Perl vous sera utile en ligne de commande pour une installation des programmes complementaire.Le programme externe d'extraction est absent.Le resultat du Split sera dirige vers 'Destination des fichiers'.LectureLecture de 5 secondes apres le marqueur de debutLecture de 5 secondes avant le marqueur de finLes types de fichiers acceptes sont: WAV FLAC MP3 OGG APE WMA CUELinux On The RootM4aMAX FICHIERS ATTEINT = %dMODE ADMINISTRATEURMP3-OGGMPEG-4 File Format (MP4) - Extension .m4aMPLAYER deja en actionMPLAYER est deja utilise !!Mauvais type de fichierMeilleure qualite de compressionMenu: Click droit / Ajout plage: Click bouton centre / Zoom: Ctrl+ScrollMix (scan)Rms/albumModeMode hybrideMode normalMode rapide de compressionModification des champsModifiez la chaine de recherche etMono forceMp3MpcMusepackMusique en attente.Musique en ecoute.New BitrateNew BitsNew HertzNew VoieNiceNo Audio CDNomNom a droiteNom a gaucheNom au centreNom de fichier absent !!Nom de fichier unique absentNonNormaliseNormalise: En attente de selection.Nouveau bitrateNumNumeroOKOggOgg Vorbis explique par ShankariusOkOuiOutilsOuvre un fichierPACKAGE dvd+rw-tools ABSENTPAS de lecteur audio presentPAS de navigateur presentPEAK-ALBUM: Amplification maximale du volume pour un groupe de fichiers en respectant les ecarts de niveau entre chacun d'eux.PEAK: Amplification maximale du volume pour chaque de fichier.PISTEPackage NOT FOUND !Package checkmp3 (mp3check) NOT FOUND !PaquetPar defautParametres par defautPas assez de place dans le dossier temporairePas de fichier WAV dans le cue-file !PausePeakPeak/albumPistePlagePlayPlease, install package [ cdda2wav ]Please, install package [ cdparanoia ]Please, install package [ icedax ]Please, install packages [ cd-discid ]Please, install packages [ icedax, cdda2wav ]Pour evaluer les templates, vous devez activer une lecture de cdaudioPour resoudre ce probleme:Production fichier CueQUANTIFICATIONQualite 0Qualite 1Qualite 10 (Meilleure qualite)Qualite 10 [ Meilleure qualite ]Qualite 2Qualite 3Qualite 3 [ Defaut ]Qualite 4Qualite 5Qualite 6Qualite 7Qualite 8Qualite 9Qualite -1 (Moins bonne qualite)Qualite -1 [ Moins bonne qualite ]QuantificationQuitterRMS-ALBUM: Ajustement du volume moyen pour un groupe de fichiers en respectant les ecarts de niveau moyen entre chacun d'eux.RMS: Ajustement du volume moyen de chaque de fichier.Reduit l'agrandissementRemet l'echelle a 100%ReplayGainReplaygainReplierRetourRetourner horizontalementRetourner verticalementRoad2MayotteSCANSaisissez ici un critere de recherche d'images.Saisissez un nom de fichier sans extentionSaisissez une chaine de recherche etSauvegarde au format PNGSauvegarde aux formats PDF et PostScriptSauvegarde le fichierScan ...Scan en cours ...Select type: --Selecteur precedantSelecteur suivantSelection globaleSelectionnez un autre fichier.Signature MD5SizeSonSox et Mplayer absentsSox et Mplayer sont absents de votreSplitStatusStereoSuppression pendant la lecture impossibleSupprimer l'image de la listeSupprimer l'image en selectionSupprimer la plage activeSuprimer tous les marqueurs pour les remplacer par un marqueur uniqueTAGSTailleTaux de compressionTempsTemps inferieur a 5 secondes entre marqueur et curseur !Texte gras.Texte italique.TimeTitreTitre [%02d ** ]Titre [%02d]Titre:Titre_%02d_Chapitre_%02d_audio_%02d_%sTitresTotal selection%s: %d, 2ch: %dTransport Stream (ADTS) - Extension .aacTrashTuxfamilyTypeV0 (meilleure qualite)V0 [ meilleure qualite ]V4 [ defaut ]V9 (moins bonne qualite)V9 [ moins bonne qualite ]Valeur d'origineVeuillez deselectionner des PeakGroup.Veuillez installer : Veuillez installer checkmp3 ou mp3check pour la prise en compte des fichiers mp3Veuillez installez un lecteur audio.Veuillez installez un navigateur.Veuillez l'installer car j'ai besoin deVeuillez les installer pour pouvoir continuer.Veuillez recommencer.Veuillez renseigner les champs du proxyVeuillez saisir un nom pour le fichier uniqueVeuillez selectionner un fichier de type WAV FLAC MP3 OGG APEVisibilite des champsVoieVous devez ouvrir l'acces internetVous pouvez activer XCFA en ligne de commande avec: WAVWaiting ...WavWavPWavpackWiki Xcfa par ShankariusXCFA LinuxForen.deXCFA Vorstellung XCFA: Conversions WAV TO WAVXCFA: Extraction CDXCFA: Extraction DVDXCFA: Modification bitrateXCFA: Traitement fichiersXcfa sur Linux On The Root[Erreur du segment numero: %d] %d) Lecture PASS 1/2 [Recherche des fichiers images]a generer une erreur pendant la conversion.braindead : extreme high quality : 232 .. 278 kbit/sbuttoncd-discid NOT FOUNDcdda2wav / icedaxcdda2wav NOT FOUNDcdda2wav and icedax NOT FOUNDcdparanoiacdparanoia NOT FOUNDcdparanoia mode expertcdparanoia mode expert multi passesconfiguration.correspondant aux plages.dans le module Split.de votre systeme !definit le serveur a contacter pour les recherches titredu cue-filegenerer un nouveau cue-file ou des decoupesicedax NOT FOUNDinsane : extreme high quality : 232 .. 268 kbit/slabellecteur(s) de cd / dvd.lecturelsdvd est absent !musique qui sera reconnu et pre-decoupen'est present dans votre configuration.pour consulter le type d'erreur renvoye par mplayer.pour consulter le type d'erreur renvoye par sox.radio : medium (MP3) quality : 112 .. 152 kbit/srecommencez.sstandard : high quality (dflt) : 142 .. 184 kbit/sstereo left/rightstereo mid/sidetelephone: lowest quality : 32 .. 48 kbit/sthumb : low quality/internet : 58 .. 86 kbit/sxtreme : extreme high quality : 168 .. 212 kbit/sProject-Id-Version: xcfa 4.2.8 Report-Msgid-Bugs-To: xcfa@tuxfamily.org POT-Creation-Date: 2013-10-07 16:28+0200 PO-Revision-Date: 2010-08-29 13:04+0200 Last-Translator: BULIN Claude xcfa@tuxfamily.org Language-Team: French <> Language: fr MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Pagine Web da visitare konqueror : newTab iceweasel : -new-window -new-tab Per installare i programmi esterni necessari, siete pregati di utilizare il gestore di pacchetti della vostra distribuzione Gnu/Linux. Programmatore Xcfa Programmatore delle pagine Web Documentazione ElementSpeak per Xcfa Forum Grafismo Modifica dei campi Traduzione Tedesca Traduzione Italiana All'inizio: Serres Patrick, Hamann Regis, Fabien Gregis, @Dzef, @alteo_gange, @Leonux, @zarer, @Shankarius, @bishop, @Ludo, @Patachonf, ... ;-) [Traccia: %d] e il cui nome sarà: --- ATTENZIONE: bisogna installare %s ATTENZIONE: bisogna installare %s%s ATTENZIONE: bisogna installare %s%s%s Deselezione globale Deselezione orizzontale Deselezione verticale Deselezione verticale Deselezione verticale L'accesso al Web non è possibile perché non risulta Selezione ALBUM Selezione orizzontale da esperti Selezione verticale da esperti Selezione di PULIZIA Selezione TRACCIA Selezione orizzontale Selezione verticale Selezione verticale Selezione verticale Siete pregati di installare un browser. Non si deve usare XCFA come ROOT ! disponibile un browser nel vostro sistema. VBR / ABR 8 bit 8000 Hertz Lame (file mp3): ... i pacchetti: ? ... i pacchetti: deb ... i pacchetti: fpm ... i pacchetti: pkg.tar.xz ... i pacchetti: rpm ... i pacchetti: tgz Scelta della periferica / Lettura del CD Scelta della periferica / Lettura del DVD Directory di salvataggio Directory temporanea per le conversioni Riproduzione dei brani al termine del processo Opzioni di AacPlusEnc Opzioni FAAC Opzioni FLAC Opzioni LAME Opzioni MAC Opzioni MUSEPACK Opzioni OGGENC Opzioni WAVPACK Priorità di sistema Web AacPlusEnc Web Faac Web Flac Web Lame Web Mac Web Musepack Web Oggenc Web Wavpack Web cdparanoia *.m3u e xspf: Anno: Genere: Traccia: Un programma per mandare le notifiche al desktop AAC+ encoder AacplusEnc Anno:Applicazioni esterne Applicazioni esterne Ordinamento delle tracce del CD Codec audio gratuito CD CD Ricerca di informazioni sui formati mp3 Ricerca di informazioni di un dvd Contenitore Contributi Conversione wav : flac Conversione wav : mp3 Conversione wav : ogg Creazione di un file unico DVD Compressione Decode ATSC A/52 audio streams Taglia i file senza prima decodificare Estrattore di cd audio Faac File Flac Alta compressione al formato wave Generale Genere: Informazioni Lettore e estrattore Licenza MPEG-4 AAC decoder Mac Macchina Modo Modo flusso (streaming) Modif.: Modifica dei tag Freedb Monkey's Audio Console Front End : APE Mono: Qualità in kbit/s Mp3 Mp3-Ogg Utilità a riga di comando per MusePack Musepack Browser / Lettori audio Normalizzatore di file mp3 Normalizzatore di file ogg Normalizzatore di file wav Oggenc Traccia: Copertina Preferenze Qualità Qualità VBR / Compressione ABR Leggi il CD ed estrai l'informazione discid per CDDB Split Stereo: Qualità in kbit/s Tags Trasformazione universale di audio file WAVPACK Hybrid Lossless Audio Compressor Wav Wavpack $ xcfa -verbose%a [ %a="Artista" ] %b [ %b="Album" ] %Tl - Tetsumaki lower Converte la stringa in caratteri minuscoli, tranne per il primo carattere. Nel campo 'Titolo' in [Modifica dei tag FreeDB] il carattere o i caratteri da mantenere invariati devono essere preceduti dal carattere %%d) Lettura PASS 2/2 'dvd+rw-mediainfo' per identificare i(l)(Clic Destro = Menu) / Regolazione COLLETTIVA al massimo del volume(Clic Destro = Menu) / Regolazione INDIVIDUALE al massimo del volume(Clic Destro = Menu) / Questo file sarà spostato nel cestino dopo il trattamento.(Clic Destro = Menu) / Scelta della frequenza(Clic Destro = Menu) / Scelta del numero di bit per la codifica(Clic Destro = Menu) / Scelta del numero di tracce (vie)(Clic Destro = Menu) / Cliccare qui per spostare il file nel cestino dopo il trattamento.(Clic Destro = Menu) / In attesa di selezione.(Clic Destro = Menu) / In attesa di selezione. Il file esiste già.(Clic Destro = Menu) / Selezionato.(Clic Destro = Menu) / Selezionato. Il file esiste già. (Clic Destro = Menu) / Modo album.(Clic Destro = Menu) / Modo cancellazione.(Clic Destro = Menu) / Modo traccia.(Clic Destro = Menu) / PEAK-ALBUM: Amplificazione massima del volume per un grupo di files rispettando le differenze di livello tra ognuno di loro.(Clic Destro = Menu) / PEAK: Amplificazione massima del volume per ogni file. (Clic Destro = Menu) / Possibilità di regolazione INDIVIDUALE o COLLETTIVAal massimo del volume(Clic Destro = Menu) / ReplayGain: In attesa di selezione.(Clic Destro = Menu) / Selezione con opzioni da esperto.(Clic Destro = Menu) / Selezione con opzioni da esperto. Il file esiste già. ---MENU CESTINO-----------------SELEZIONE VERTICALE-------> Segmento %d già letto %d volte 2 volte! Abbandono :/ 0 (Veloce)00h00m00s1 traccia1 (fast / veloce)16 bit2 tracce22000 Hertz24 bit32 bit32000 Hertz4 tracce44056 Hertz44100 Hertz48000 Hertz6 tracce6 (very slow / molto lento)64 bit8 (Lento)88200 Hertz96000 Hertz AacplusEnc (file .aac): Almeno due selezioni di colonna Wav Scelta del livello dBFS Creazione Cue cd Destinazione delle conversioni Destinazione dei file Eject Esportazione di Estrazione CD audio con: Faac (file .m4a): Flac (file flac): Importare Informazioni Installazione Mac (file ape): MusePack (file mpc): Pulire Normalizza: Normalizzare Oggenc (file ogg): Opzioni da esperti, definite dall'utente - faac (wav -> m4a) Opzioni da esperti, definite dall'utente - flac (wav -> flac) Opzioni da esperti, definite dall'utente - lame (wav -> mp3) Opzioni da esperti, definite dall'utente - mac (wav -> ape) Opzioni da esperti, definite dall'utente - musepack (wav -> mpc) Opzioni da esperti, definite dall'utente - oggenc (wav -> ogg) Opzioni da esperti, definite dall'utente - wavpack (wav -> wv) Impostazione CDDB: [ Nome server ] Impostazioni PROXY: [ server ] [ porta ] Server Verso 2CH: Sub / Ambiente Visibilità Il vostro sistema utilizza ... WavPack (file wv): %a - artista %b - titolo dell'album %c - numero della traccia %d - titolo della canzone %e - anno %g - genere %f - creazione di un file *.m3u e *.xspf %na - niente accenti %u - sostituzione di caratteri: %u(AB=C) %u( =_) %Tl - Tetsumaki lower%a - artista %b - titolo dell'album %c - numero della traccia %d - titolo del brano %e - anno %g - genere - Tetsumaki lower %u - caratteri di sostituzione: %u(AB=C) %u( =_)0%s Copia file: %d%%%s Produzione del file: %d%%%s Trattamento Mplayer: %d%%%s Trattamento Sox: %d%%Mettere file nel cestino ...AutoreQuesto file non può essere estratto !DiscIdFramasoft Generazione di un report per: modalità da esperti cdparanoia a passi multipliGestione dei tags, dei titoli e dei file cueHomePageImportare immagini dal webIngegnere del suono Lettori audioLicenzaManPageManPage ManPage ManPage BrowserAnalisi del supporto in corso ...Sito ufficialeSito ufficiale TestoTitolo CDFile totali: %d, File selezionati: %dTraduzione Inglese Usa drag / drop - Cancellare un'immagine con Ctrl + ClickWeb Info Wiki Wiki mp3 WikiWiki Wiki []string opzione internaIndicaee qui la diretory del vostro sistema che servirà per la memorizzazione temporanea per le diverse conversioni. Album:Artista:Commento:Il file LogExpertMode.txt verrà creato nella directory delle estrazioniPronto per l'import di un file CUE, WAV, FLAC, OGG, MP3, APE, WMATitolo:parametri: Xcfa nel Web= Avete probabilmente trovato un bug in XCFA = Indirizzi di memoria non validi A propositoABR / CBR / VBR / VBR-NEWAggiungere nuove immagini.ATTENZIONE: Capacità della directory temporanea insufficiente.AacA proposito di X Convert File AudioAzioneAdatta la scala alle dimensioni della finestraAiutoAggiunta di pista: Fare clic sul pulsante centrale / Zoom: Ctrl+ScrollAggiunta di testo modificabile.AlbumAlbum:Tutti file (*.*)AnnoApeApplicareApplicare le modificheDopo la lettura di un CD e l'aggiunta di un'etichetta, questo menu permette la formattazione di titoli, autori ...Fermato dall'utenteArtistaArtista:Nessun file musicale associato al file cue !Nessun file musicale nella directory associataNessun file trovato!Audioptimisation by DzefAumento della scala.Aumenta l'ingrandimentoBishop's pageBitrateBitsBuona qualità di compressioneCAPACITA' INSUFFICIENTE DELLA DIRECTORY TEMPORANEACDCONVERSIONEQuesto file appartiene a XCFACapitolo: [%02d]SceltaSelezionare un percorso per salvare le immaginiScelta della cartella di destinazioneSelezionare un fileSelezionare un file di tipo CUE, WAV, MP3, OGG, FLAC, APE, WMASelezionare un file musicaleScelta di una cartella per il salvataggioSelezionare una nuova directory di destinazioneScelta di un nuovo font.Selezionare dei fileSelezionare ei file FLAC MPC OGG MP3Selezionare dei file MP3/OGGSelezionare dei file WAVScelta tra i diversi database per il CD.Click destro del mouse: accedere al popupCommentoCommento:CompressioneCompressione massimaVerifica del contenuto dei files estratti Conversione a %s canali.Conversione a 2 canaliConversione a 2 canali. Un secondo clic attiverà la conversione verso %s canali. Conversione(i) nella directory di origineImpossibile trovare il CDCreazione di un solo file cue dalla lettura del cd audioCreazione di un solo file nel formato: Creazione del solo file cueCriteri di ricerca mancanti !!DVDDebian MultimediaCompressioneSpiegareDeselezione globaleDetagli estrazione modo espertoRiduzione della scala.Doc Xcfa da PatachonDurata del range attivoERRORE dati proxyERRORE: Directory di memorizzazione non autorizzato !Scala al 100%.Scala compatibile con le dimensioni della finestra.Scrittura del file cueCancellareCancellare l'immagineEkd (EnKoDeur-Mixeur)Posizione dei file di backup.In attesa di selezione. Un clic attiverà la conversione a 2 canaliSalva la pagina in formato png.ErroreErrore di SOXErrore nella scelta di fileErrori nei dati del file CUEErrore di lettura !Errore da MPLAYER !Errore da SOX !Elaborazione extra per la codificaEstrazione modo esperto PASS 1/2 Estrazione modo esperto PASS 2/2 EstrarreFREQUENZAFileFile di correzioneFile struttura DVDFile vuotoFile_completo_%02d_%sFix (scan)RmsFlacFormatoForum XcfaFramasoftFrequenzaFrugalwareGenereFrequenza in HertzÈ necessario installare il programma: lsdvdCi sarà solo da regolare i range perImmagine sullo sfondoImmagine sopraImmagine in primo pianoImmagine sottoImportazione di immagini dal web.Importazione del titolo del CD.Importare delle imagini per la copertinaIndice inizialeFine indiceIndice di letturaIo sono liberoL'accesso al Web non è possibile perché non risultaL'applicazione è assente.La LinuxerieLa connessione Internet non è attivaLa normalizzazione spiegata da DzefLa soluzione è quella di importare il fileIl lettore DVD è assente.Il file CUE sarà memorizzato nella directory 'Destinazione dei file'.Il file non contiene dati !!!Pacchetto 'dvd+rw-tools' non è installatoIl programma SOX della vostra distribuzioneIl programma XCFA_INSTALL_ALL scritto in Perl sarà utile sulla riga di comando per l'installazione di programmi complementari.Il programma esterno per l'estrazione non è installatoIl risultato dello split sarà memorizzato nella diretory 'Destinazione dei file'.LetturaLettura di 5 secondi dopo il marker di inizioLettura di 5 secondi prima del marker di fineI tipi di file accettati sono: WAV FLAC MP3 OGG APE WMA CUELinux On The RootM4aRAGIUNTO IL NUMERO MASSIMO DI FILE = %dMODALITA' AMMINISTRATOREMP3-OGGFormato file MPEG-4 (MP4) - Estensione .m4aMPLAYER già in azioneMPlayer è già in uso !!Tipo di file erratoMigliore qualità di compressioneMenu: Tasto destro del mouse / Aggiunta di pista: Fare clic sul pulsante / Zoom: Ctrl+ScrollcentraleMix (scan)Rms/albumModoModo ibridoModo normaleModo di compressione rapidoModifica dei campiModificate la stringa di ricerca Mono obbligato Mp3MpcMusepackMusica in pausaMusica in riproduzioneNuovo BitrateNuovi BitsNuova frequenza in HertzNuovo modoNiceNessun CD AudioNomeNome a destraNome a sinistraNome al centroNome di file mancante !!Manca il nome unico del fileNoNormalizzaNormalizzazione: In attesa di selezione.Nuovo bitrateNumNumeroOKOggOgg Vorbis spiegato da ShankariusOkSìStrumentiAprire un filePACCHETTO dvd+rw-tools ASSENTENESSUN lettore audio presenteNessun browser installatoPEAK-ALBUM: Amplificazione massima del volume per un gruppo di file rispettando le differenze di livello tra ognuno di loro.PEAK: Amplificazione massima del volume di ogni file.TRACCIAPacchetto NON TROVATO!Pacchetto checkmp3 (mp3check) NON TROVAO !PacchettiDi defaultI parametri di defaultCapacità insufficiente della directory temporaneaNessun file WAV nel file cue !PausaPeakPeak/albumTracciaRangePlayPer favore, installare il pacchetto [ cdda2wav ]Per favore, installare il pacchetto [ cdparanoia ]Per favore, installare il pacchetto [icedax]Per favore, installare il pacchetto [ cd-discid ]Per favore, installare i pacchetti [icedax, cdda2wav]Per valutare i modelli, è necessario attivare una lettura cdaudioPer risolvere questo problema:Generazione del file CueQUANTIFICAZIONEQualità 0Qualità 1Qualità 10 (Qualità migliore)Qualità 10 [ Qualità migliore ]Qualità 2Qualità 3Qualità 3 [ default ]Qualità 4Qualità 5Qualità 6Qualità 7Qualità 8Qualità 9Qualità -1 (Qualità peggiore)Qualità -1 [ Qualità peggiore ]QuantificazioneUscireRMS-ALBUM: Regolazione del volume medio per un gruppo di file rispettando le variazione di livello medio tra ognuno di loro.RMS: Regolazione del volume medio di ogni file.Riduci l'ingrandimentoRipristina la scala al 100%ReplayGainReplaygainRipiegareRitornoCapovolgi orizzontalmenteCapovolgi verticalmenteRoad2MayotteCERCA E ANALIZZAInserisci qui un criterio di ricerca di immagini.Inserire un nome di file senza estensioneImmettere una stringa di ricerca eSalvataggio in formato PNGSalvataggio in formato PDF e PostScriptSalvare il fileAnalisi ...Analisi in corso ...Seleziona il tipo: --Selettore precedenteSelettore seguenteSelezione globaleSelezionare un altro file.Firma MD5DimensioneSuonoSox e Mplayer assentiSox e Mplayer sono assenti nella vostraSplitStatoStereoL'eliminazione durante la riproduzione non è consentitaRimuovere l'immagine dalla listaEliminare l'iimagine selezionsnataEliminare il campo attivoEliminare tutti i marker e sostituirli con un singolo markerTAGSDimensioneTasso di compressioneTempoTempo inferiore a 5 secondi tra il marker e il cursore!Testo in grassetto.Testo in corsivo.TempoTitoloTitolo [%02d ** ]Titolo [%02d]Titolo:Titolo_%02d_Capitolo_%02d_audio_%02d_%sTitoliTotale selezionato%s: %d, 2ch: %dTransport Stream (ADTS) - Estensione .aacCestinoTuxfamilyTipoV0 (qualità migliore)V0 [ qualità migliore ]V4 [ default ]V9 (qualità peggiore)V9 [ qualità peggiore ]Valore originaleSi prega di deselezionare PeakGroupSi prega di installare : Si prega di installare o checkmp3 mp3check per poter gestire i file mp3Siete pregati di installare un lettore audio.Siete pregati di installare un browser.Siete pregati di installarlo e di ricominciareSi prega di installarli per continuare.Siete pregati di ricominciare.Si prega di inserire tutti i campi per il proxySiete pregati di inserire un nome unico per il fileSi prega di selezionare un file di tipo MP3 WAV OGG FLAC APEVisibilità dei campiModoDovete accendere una connessione a InternetÈ possibile attivare XFCA da linea di comando con: WAVIn attesa ... WavWavPWavpackWiki Xcfa da ShankariusXCFA LinuxForen.deXCFA Idea XCFA: Conversione WAV TO WAVXCFA: Estrazione CDXCFA: Estrazione DVDXCFA: Modificazione del bitrateXCFA: Elaborazione fileXcfa in Linux On The Root[Errore del segmento numero: %d] %d) Lettura PASS 1/2 [Ricerca dei file imagine]ha generato un errore durante la conversione.braindead : qualità estremamente alta : 232 .. 278 kbit/sbottonecd-discid NON TROVATO!cdda2wav / icedaxcdda2wav NON TROVATOcdda2wav e icedax NON TROVATOcdparanoiacdparanoia NON TROVATO!cdparanoia modalità da esperticdparanoia modalità da esperti a passi multipliconfigurazione.corrispondenti ai range.nel modulo Split.sul vostro sistema!definisce il server da contattare per la ricerca dei titolial file cuegenerare un nuovo file cue o i tagliicedax NON TROVATO!insane : qualità estremamente alta: 232 .. 268 kbit/slabellettore(i) di cd / dvd.Letturalsdvd è assentemusicale che sarà riconosciuto e pre-sezionatodisponibile un browser nel vostro sistema. per vedere il tipo di errore riportato da mplayer.per vedere il tipo di errore riportato da sox.radio : qualità media (MP3) : 112 .. 152 kbit/se ricominciate.sstandard : alta qualità (dflt) : 142 .. 184 kbit/sStereo sinistra/destraStereo centro/lati telefono: qualità peggiore : 32 .. 48 kbit/sthumb : qualità bassa/Internet : 58 .. 86 kbit/sestremo : qualità molto alta : 168 .. 212 kbit/sxcfa-4.3.6/po/Makefile.in.in0000644000175000017500000003552411517343411012467 00000000000000# Makefile for PO directory in any package using GNU gettext. # Copyright (C) 1995-1997, 2000-2007 by Ulrich Drepper # # This file can be copied and used freely without restrictions. It can # be used in projects which are not available under the GNU General Public # License but which still want to provide support for the GNU gettext # functionality. # Please note that the actual code of GNU gettext is covered by the GNU # General Public License and is *not* in the public domain. # # Origin: gettext-0.17 GETTEXT_MACRO_VERSION = 0.18 PACKAGE = @PACKAGE@ VERSION = @VERSION@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ SHELL = /bin/sh @SET_MAKE@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ datarootdir = @datarootdir@ datadir = @datadir@ localedir = @localedir@ gettextsrcdir = $(datadir)/gettext/po INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ # We use $(mkdir_p). # In automake <= 1.9.x, $(mkdir_p) is defined either as "mkdir -p --" or as # "$(mkinstalldirs)" or as "$(install_sh) -d". For these automake versions, # @install_sh@ does not start with $(SHELL), so we add it. # In automake >= 1.10, @mkdir_p@ is derived from ${MKDIR_P}, which is defined # either as "/path/to/mkdir -p" or ".../install-sh -c -d". For these automake # versions, $(mkinstalldirs) and $(install_sh) are unused. mkinstalldirs = $(SHELL) @install_sh@ -d install_sh = $(SHELL) @install_sh@ MKDIR_P = @MKDIR_P@ mkdir_p = @mkdir_p@ GMSGFMT_ = @GMSGFMT@ GMSGFMT_no = @GMSGFMT@ GMSGFMT_yes = @GMSGFMT_015@ GMSGFMT = $(GMSGFMT_$(USE_MSGCTXT)) MSGFMT_ = @MSGFMT@ MSGFMT_no = @MSGFMT@ MSGFMT_yes = @MSGFMT_015@ MSGFMT = $(MSGFMT_$(USE_MSGCTXT)) XGETTEXT_ = @XGETTEXT@ XGETTEXT_no = @XGETTEXT@ XGETTEXT_yes = @XGETTEXT_015@ XGETTEXT = $(XGETTEXT_$(USE_MSGCTXT)) MSGMERGE = msgmerge MSGMERGE_UPDATE = @MSGMERGE@ --update MSGINIT = msginit MSGCONV = msgconv MSGFILTER = msgfilter POFILES = @POFILES@ GMOFILES = @GMOFILES@ UPDATEPOFILES = @UPDATEPOFILES@ DUMMYPOFILES = @DUMMYPOFILES@ DISTFILES.common = Makefile.in.in remove-potcdate.sin \ $(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3) DISTFILES = $(DISTFILES.common) Makevars POTFILES.in \ $(POFILES) $(GMOFILES) \ $(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3) POTFILES = \ CATALOGS = @CATALOGS@ # Makevars gets inserted here. (Don't remove this line!) .SUFFIXES: .SUFFIXES: .po .gmo .mo .sed .sin .nop .po-create .po-update .po.mo: @echo "$(MSGFMT) -c -o $@ $<"; \ $(MSGFMT) -c -o t-$@ $< && mv t-$@ $@ .po.gmo: @lang=`echo $* | sed -e 's,.*/,,'`; \ test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o $${lang}.gmo $${lang}.po"; \ cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o t-$${lang}.gmo $${lang}.po && mv t-$${lang}.gmo $${lang}.gmo .sin.sed: sed -e '/^#/d' $< > t-$@ mv t-$@ $@ all: check-macro-version all-@USE_NLS@ all-yes: stamp-po all-no: # Ensure that the gettext macros and this Makefile.in.in are in sync. check-macro-version: @test "$(GETTEXT_MACRO_VERSION)" = "@GETTEXT_MACRO_VERSION@" \ || { echo "*** error: gettext infrastructure mismatch: using a Makefile.in.in from gettext version $(GETTEXT_MACRO_VERSION) but the autoconf macros are from gettext version @GETTEXT_MACRO_VERSION@" 1>&2; \ exit 1; \ } # $(srcdir)/$(DOMAIN).pot is only created when needed. When xgettext finds no # internationalized messages, no $(srcdir)/$(DOMAIN).pot is created (because # we don't want to bother translators with empty POT files). We assume that # LINGUAS is empty in this case, i.e. $(POFILES) and $(GMOFILES) are empty. # In this case, stamp-po is a nop (i.e. a phony target). # stamp-po is a timestamp denoting the last time at which the CATALOGS have # been loosely updated. Its purpose is that when a developer or translator # checks out the package via CVS, and the $(DOMAIN).pot file is not in CVS, # "make" will update the $(DOMAIN).pot and the $(CATALOGS), but subsequent # invocations of "make" will do nothing. This timestamp would not be necessary # if updating the $(CATALOGS) would always touch them; however, the rule for # $(POFILES) has been designed to not touch files that don't need to be # changed. stamp-po: $(srcdir)/$(DOMAIN).pot test ! -f $(srcdir)/$(DOMAIN).pot || \ test -z "$(GMOFILES)" || $(MAKE) $(GMOFILES) @test ! -f $(srcdir)/$(DOMAIN).pot || { \ echo "touch stamp-po" && \ echo timestamp > stamp-poT && \ mv stamp-poT stamp-po; \ } # Note: Target 'all' must not depend on target '$(DOMAIN).pot-update', # otherwise packages like GCC can not be built if only parts of the source # have been downloaded. # This target rebuilds $(DOMAIN).pot; it is an expensive operation. # Note that $(DOMAIN).pot is not touched if it doesn't need to be changed. $(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed if LC_ALL=C grep 'GNU @PACKAGE@' $(top_srcdir)/* 2>/dev/null | grep -v 'libtool:' >/dev/null; then \ package_gnu='GNU '; \ else \ package_gnu=''; \ fi; \ if test -n '$(MSGID_BUGS_ADDRESS)' || test '$(PACKAGE_BUGREPORT)' = '@'PACKAGE_BUGREPORT'@'; then \ msgid_bugs_address='$(MSGID_BUGS_ADDRESS)'; \ else \ msgid_bugs_address='$(PACKAGE_BUGREPORT)'; \ fi; \ case `$(XGETTEXT) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].* | 0.16 | 0.16.[0-1]*) \ $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ --files-from=$(srcdir)/POTFILES.in \ --copyright-holder='$(COPYRIGHT_HOLDER)' \ --msgid-bugs-address="$$msgid_bugs_address" \ ;; \ *) \ $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ --files-from=$(srcdir)/POTFILES.in \ --copyright-holder='$(COPYRIGHT_HOLDER)' \ --package-name="$${package_gnu}@PACKAGE@" \ --package-version='@VERSION@' \ --msgid-bugs-address="$$msgid_bugs_address" \ ;; \ esac test ! -f $(DOMAIN).po || { \ if test -f $(srcdir)/$(DOMAIN).pot; then \ sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \ sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \ if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \ rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \ else \ rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \ mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ fi; \ else \ mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ fi; \ } # This rule has no dependencies: we don't need to update $(DOMAIN).pot at # every "make" invocation, only create it when it is missing. # Only "make $(DOMAIN).pot-update" or "make dist" will force an update. $(srcdir)/$(DOMAIN).pot: $(MAKE) $(DOMAIN).pot-update # This target rebuilds a PO file if $(DOMAIN).pot has changed. # Note that a PO file is not touched if it doesn't need to be changed. $(POFILES): $(srcdir)/$(DOMAIN).pot @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \ if test -f "$(srcdir)/$${lang}.po"; then \ test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ echo "$${cdcmd}$(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot"; \ cd $(srcdir) && $(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot; \ else \ $(MAKE) $${lang}.po-create; \ fi install: install-exec install-data install-exec: install-data: install-data-@USE_NLS@ if test "$(PACKAGE)" = "gettext-tools"; then \ $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \ for file in $(DISTFILES.common) Makevars.template; do \ $(INSTALL_DATA) $(srcdir)/$$file \ $(DESTDIR)$(gettextsrcdir)/$$file; \ done; \ for file in Makevars; do \ rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ done; \ else \ : ; \ fi install-data-no: all install-data-yes: all $(mkdir_p) $(DESTDIR)$(datadir) @catalogs='$(CATALOGS)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ dir=$(localedir)/$$lang/LC_MESSAGES; \ $(mkdir_p) $(DESTDIR)$$dir; \ if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \ $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \ echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \ for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ if test -n "$$lc"; then \ if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ for file in *; do \ if test -f $$file; then \ ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ fi; \ done); \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ else \ if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ :; \ else \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ fi; \ fi; \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \ fi; \ done; \ done install-strip: install installdirs: installdirs-exec installdirs-data installdirs-exec: installdirs-data: installdirs-data-@USE_NLS@ if test "$(PACKAGE)" = "gettext-tools"; then \ $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \ else \ : ; \ fi installdirs-data-no: installdirs-data-yes: $(mkdir_p) $(DESTDIR)$(datadir) @catalogs='$(CATALOGS)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ dir=$(localedir)/$$lang/LC_MESSAGES; \ $(mkdir_p) $(DESTDIR)$$dir; \ for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ if test -n "$$lc"; then \ if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ for file in *; do \ if test -f $$file; then \ ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ fi; \ done); \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ else \ if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ :; \ else \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ fi; \ fi; \ fi; \ done; \ done # Define this as empty until I found a useful application. installcheck: uninstall: uninstall-exec uninstall-data uninstall-exec: uninstall-data: uninstall-data-@USE_NLS@ if test "$(PACKAGE)" = "gettext-tools"; then \ for file in $(DISTFILES.common) Makevars.template; do \ rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ done; \ else \ : ; \ fi uninstall-data-no: uninstall-data-yes: catalogs='$(CATALOGS)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ done; \ done check: all info dvi ps pdf html tags TAGS ctags CTAGS ID: mostlyclean: rm -f remove-potcdate.sed rm -f stamp-poT rm -f core core.* $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po rm -fr *.o clean: mostlyclean distclean: clean rm -f Makefile Makefile.in POTFILES *.mo maintainer-clean: distclean @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." rm -f stamp-po $(GMOFILES) distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) dist distdir: $(MAKE) update-po @$(MAKE) dist2 # This is a separate target because 'update-po' must be executed before. dist2: stamp-po $(DISTFILES) dists="$(DISTFILES)"; \ if test "$(PACKAGE)" = "gettext-tools"; then \ dists="$$dists Makevars.template"; \ fi; \ if test -f $(srcdir)/$(DOMAIN).pot; then \ dists="$$dists $(DOMAIN).pot stamp-po"; \ fi; \ if test -f $(srcdir)/ChangeLog; then \ dists="$$dists ChangeLog"; \ fi; \ for i in 0 1 2 3 4 5 6 7 8 9; do \ if test -f $(srcdir)/ChangeLog.$$i; then \ dists="$$dists ChangeLog.$$i"; \ fi; \ done; \ if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \ for file in $$dists; do \ if test -f $$file; then \ cp -p $$file $(distdir) || exit 1; \ else \ cp -p $(srcdir)/$$file $(distdir) || exit 1; \ fi; \ done update-po: Makefile $(MAKE) $(DOMAIN).pot-update test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES) $(MAKE) update-gmo # General rule for creating PO files. .nop.po-create: @lang=`echo $@ | sed -e 's/\.po-create$$//'`; \ echo "File $$lang.po does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \ exit 1 # General rule for updating PO files. .nop.po-update: @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \ if test "$(PACKAGE)" = "gettext-tools"; then PATH=`pwd`/../src:$$PATH; fi; \ tmpdir=`pwd`; \ echo "$$lang:"; \ test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ echo "$${cdcmd}$(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \ cd $(srcdir); \ if $(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$tmpdir/$$lang.new.po; then \ if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ rm -f $$tmpdir/$$lang.new.po; \ else \ if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ :; \ else \ echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ exit 1; \ fi; \ fi; \ else \ echo "msgmerge for $$lang.po failed!" 1>&2; \ rm -f $$tmpdir/$$lang.new.po; \ fi $(DUMMYPOFILES): update-gmo: Makefile $(GMOFILES) @: Makefile: Makefile.in.in Makevars $(top_builddir)/config.status @POMAKEFILEDEPS@ cd $(top_builddir) \ && $(SHELL) ./config.status $(subdir)/$@.in po-directories force: # Tell versions [3.59,3.63) of GNU make not to export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: xcfa-4.3.6/po/en_GB.gmo0000644000175000017500000014044712224542443011476 00000000000000$Y,(55855g6{66 666 67,7I7 "808L8$S8&x8(88889/95L99!9999:/:F:_:$y:"::*: ; ; ;";A;];{;$;;;.;/)<Y<+v<*<<<<=+=@=Z=r=======>>.>C>[>s>>>(> > >>>??:?Q?V?/\?"? ????? @,@2@9@$Y@~@@ @@!@ @@@@ AA%A +A5A;ARA[A'zAAA AA AAB4BPBlBuB }BBBB(BBBC+ C*9CdC jCtCCD(D=D>EPQE,E8E8FZAF/FBF$G74G"lG$G"GGUmHYH;I5YIHIII;J LJ XJbJkJ}J J JJJ J J J J J JJK K $K 1K%>K-dKKK$K!KLL#5LYLyLLLLL"LM)M=M QMHrMIMHNGNNLNJNJ.O,yO/OO!O P"P @PaP8RS&S,T+0T'\TT T(T TTHT/BUrUUUUUUUU V V#2VVVkV VV*VVZVBWSWmW WWWWWWW rXXXTXIX CYQY3dY6YYYYZ9.ZhZlZZ*ZZ6ZZ[[[-[3[ 7[A[h][[[[.[0\O\f\\\ \\\\'\] ]#]@]Q](W]!]]/]]^ ^?^\^"n^^^9^^ _ _ -_9_*M_x__P__`?,`)l````````a,aEa[ata'aa0aabb b'6bG^b"bb bb%bc0cHc\c tc cc cccc c d "d0d5d m[mam'umm mm-m%mnn $n/n5n;n$@n&en"n&n-nEoJoeo|o o o o!o o oo p p &p 1p xTx"Yx<|xx xxxxxxyy7yKy`y{yy4yy+z61zhzozzzz zzz#z!{0{J{`{8s{ {+{{8{.|4|L|T|'h|'|4|0|7} V}c};e}}};}:}7:~\r~8yĀ!ۀ 5Pl H Vd%k') #? ]~Ѓ4Ni"Ä ۄ 0K f"Ѕ% &/VrɆ-B Q _ mzƇ ܇ ( 0 >KRfz׈ ":Mflt#؉߉$ %4 LVj p{ '֊  "-F_t (ԋ!;()d $;;KZ';Ύ9 ID-:%3"Q"t"zG5[}9ّ/<C: " +8A JW ` m z  "˓7&; Yzϔ.D^~8ѕ9 8D7}<::-(h-ϗ<uW"`$$ ͛ $ ?MD_,ќ'6FXk ȝ %#HA  ɞ՞ E3 yNF <J3]+ؠޠ7@D_+f;ӡ Z$*&ɢ, AOW'\ ţգ!ܣ )(Ri ۤ,.HP Ye+yUڥ0H)Y%Ҧ֦ 3Id(v -٧ J'r  ̨ *H LV[k ~  ũ ϩ ٩#"7 O[ lx Ȫ Ԫ ު  0=Y"y+$$%zJ'Ŭ?-,2*_5ҭ֭)2Lj0}O #, L Z {   ȯ үܯ '  ( 5BZn q!{ "ް 1o@0'#+37F~ $&" %0-V:׳ * G R] t  Ҵv/z Ե ߵ  !&#Ei Ƕܶ  0> CPkҷ6<AFX7] 0 %#")(Lu {ȹ"B4wк "1;m|.ϻ ӻ߻/L ]k,޼(6T[o ҽ! 8M1^ 8;  %-9g-|)7Կ ;Vh;x:7w+I/*P\/x8&>);D^Z a_$&Mgc 'n&;.[yTl^U X]}r;|?C 1~b78GWZJO-A <RB2KIp|Y Vs#UF#d"g '6c!FM`S<%m]I+wQ> 0}PD(Lm AO6AFx|GZCf5@"b[hEu"j0T isBtevKz9}f)a{,R `wQ7_%Y]ao7^ r)vC*<2?V=u:!\Hp+_j$l3-1qtx.e1i?.qu2GzPcE4m=`L#5bVi=4[~o0zHyhW8d$e%-3:@k(@jkdMJpn> XoJ!v BQ:*f4~9/TRlWD,X3U6E'q{S 5NOrH({\Nt9YnkhsNL Kg y,S Pages a visiter konqueror : newTab iceweasel : -new-window -new-tab Pour installer les programmes externes requis, veuillez utiliser l'installateur de votre distribution Gnu/Linux. Codeur Xcfa Codeur pages Web Documentation ElementSpeak pour Xcfa Forum Graphisme Modification des champs Traduction Allemande Traduction Italienne Au tout debut: Serres Patrick, Hamann Regis, Fabien Gregis, @Dzef, @alteo_gange, @Leonux, @zarer, @Shankarius, @bishop, @Ludo, @Patachonf, ... ;-) [Piste: %d] et dont le nom sera: --- ATTENTION: Il faut installer %s ATTENTION: Il faut installer %s%s ATTENTION: Il faut installer %s%s%s Deselection globale Deselection horizontale Deselection verticale Deselection verticale Deselection verticale L'acces au web est impossible car aucun navigateur Selection ALBUM Selection Expert horizontale Selection Expert verticale Selection NETTOYER Selection PISTE Selection horizontale Selection verticale Selection verticale Selection verticale Veuillez installez un navigateur. Vous ne devriez pas utiliser XCFA sous ROOT ! n'est present dans votre configuration. VBR / ABR 8 bits 8000 Hertz Lame (fichier mp3): ... les paquets: ? ... les paquets: deb ... les paquets: fpm ... les paquets: pkg.tar.xz ... les paquets: rpm ... les paquets: tgz Choix du peripherique / Lecture du CD Choix du peripherique / Lecture du DVD Dossier de stockage Dossier provisoire des conversions Jouer une musique en fin de tache Options AacPlusEnc Options FAAC Options FLAC Options LAME Options MAC Options MUSEPACK Options OGGENC Options WAVPACK Priorite systeme Web AacPlusEnc Web Faac Web Flac Web Lame Web Mac Web Musepack Web Oggenc Web Wavpack Web cdparanoia *.m3u et xspf: Annee: Genre: Piste: A program to send desktop notifications AAC+ encoder AacplusEnc Annee: Application externes Applications externes Arrangement des titres du CD Audio Codeur freeware CD CD Cherche des renseignements sur les formats mp3 Cherche les informations d'un dvd Conteneur Contributions Conversion wav : flac Conversion wav : mp3 Conversion wav : ogg Creation d'un fichier unique DVD Debit Decode ATSC A/52 audio streams Decoupage de fichiers sans decodage Extracteur cd audio Faac Fichiers Flac Forte compression au format wave General Genre: Informations Lecteur et extracteur License MPEG-4 AAC decodeur Mac Machine Mode Mode flux (streaming) Modif.: Modification des tags Freedb Monkey's Audio Console Front End : APE Mono: Qualite en kbit/s Mp3 Mp3-Ogg MusePack commandline utilities Musepack Navigateurs / Lecteurs audio Normaliseur de fichier mp3 Normaliseur de fichier ogg Normaliseur de fichier wav Oggenc Piste: Pochette Preferences Qualite Qualite VBR / Debit ABR Read CD and get CDDB discid information Split Stereo: Qualite en kbit/s Tags Transformation universelle de fichiers son WAVPACK Hybrid Lossless Audio Compressor Wav Wavpack $ xcfa -verbose%a [ %a="Artist" ] %b [ %b="Album" ] %Tl - Tetsumaki lower Transforme la chaine en minuscule sauf le premier caractere. Dans le champs 'Titre' depuis [ Modification des tags FreeDB ], le ou les caracteres devant etre conserves doivent etre precedes par le caractere %%d) Lecture PASS 2/2 'dvd+rw-mediainfo' pour identifier le(s)(Click Droit = Menu) / Ajustement COLLECTIF maximal du volume(Click Droit = Menu) / Ajustement INDIVIDUEL maximal du volume(Click Droit = Menu) / Ce fichier sera dirige apres traitement vers la corbeille(Click Droit = Menu) / Choix de la frequence(Click Droit = Menu) / Choix du codage en nombre de bits(Click Droit = Menu) / Choix du nombre de pistes (voies)(Click Droit = Menu) / Cliquez ici pour envoyer ce fichier apres traitement a la corbeille(Click Droit = Menu) / En attente de selection.(Click Droit = Menu) / En attente de selection. Le fichier existe.(Click Droit = Menu) / En selection.(Click Droit = Menu) / En selection. Le fichier existe.(Click Droit = Menu) / Mode album.(Click Droit = Menu) / Mode effacer.(Click Droit = Menu) / Mode piste.(Click Droit = Menu) / PEAK-ALBUM: Amplification maximale du volume pour un groupe de fichiers en respectant les ecarts de niveau entre chacun d'eux.(Click Droit = Menu) / PEAK: Amplification maximale du volume pour chaque de fichier.(Click Droit = Menu) / Possibilite d'ajustement INDIVIDUEL ou COLLECTIF maximal du volume(Click Droit = Menu) / ReplayGain: En attente de selection.(Click Droit = Menu) / Selection avec options expert.(Click Droit = Menu) / Selection avec options expert. Le fichier existe.---MENU TRASH-----------------SELECTION VERTICALE-------> Deja %d fois 2 lectures du segment %d! Abandon :/ 0 (Rapide)00h00m00s1 piste1 (fast / rapide)16 bits2 pistes22000 Hertz24 bits32 bits32000 Hertz4 pistes44056 Hertz44100 Hertz48000 Hertz6 pistes6 (very slow / tres lent)64 bits8 (Lent)88200 Hertz96000 Hertz AacplusEnc (fichier .aac): Au moins deux selections colonne Wav Choix niveau dBFS: Creation Cue cd Destination des conversions Destination des fichiers Eject Exportation de Extraction cd-audio avec: Faac (fichier .m4a): Flac (fichier flac): Importer Informations Installation Mac (fichier ape): MusePack (fichier mpc): Nettoyer Normalise: Normaliser Oggenc (fichier ogg): Options experts, definies par l'utilisateur - faac (wav -> m4a) Options experts, definies par l'utilisateur - flac (wav -> flac) Options experts, definies par l'utilisateur - lame (wav -> mp3) Options experts, definies par l'utilisateur - mac (wav -> ape) Options experts, definies par l'utilisateur - musepack (wav -> mpc) Options experts, definies par l'utilisateur - oggenc (wav -> ogg) Options experts, definies par l'utilisateur - wavpack (wav -> wv) Parametrage CDDB: [ Nom du serveur ] Parametrage PROXY: [ serveur ] [ port ] Serveur Vers 2CH: Sub / Ambiance Visibilite Votre systeme utilise ... WavPack (fichier wv): %a - artiste %b - titre de l'album %c - numero de la piste %d - titre de la chanson %e - annee %g - genre %f - creation d'un fichier *.m3u et *.xspf %na - no accent %u - remplacement de caracteres: %u(AB=C) %u( =_) %Tl - Tetsumaki lower%a - artiste %b - titre de l'album %c - numero de la piste %d - titre de la chanson %e - annee %g - genre %na - no accent %Tl - Tetsumaki lower %u - remplacement de caracteres: %u(AB=C) %u( =_)0%s Copie fichier: %d%%%s Restitution fichier: %d%%%s Traitement Mplayer: %d%%%s Traitement Sox: %d%%Trash files ...AuthorCe fichier ne peut etre extrait !DiscIdFramasoft Generation d'un rapport pour: cdparanoia mode expert multi passesGestion des tags, titres et fichiers cueHomePageImport images webIngenieurs du son Lecteurs audioLicenceManPageManPage ManPage ManPage NavigateurScan du support en cours ...Site officielSite officiel TexteTitre CDTotal fichiers: %d, Selections: %dTraduction Anglaise Utilisez le glisser / deplacer - Effacer une image avec Ctrl + ClickWeb Info Wiki Wiki mp3 WikiWiki Wiki []string option interneIndiquez ici le dossier sur votre systeme qui servira de lieu de stockage provisoire pendant les differentes conversions. Album:Artiste:Commentaire:Le fichier LogExpertMode.txt sera cree dans le dossier des extractionsPret pour l'import d'un fichier CUE, WAV, FLAC, OGG, MP3, APE, WMATitre:parametres: Xcfa sur le web= Vous avez probablement trouve un bug dans XCFA = Adressage memoire invalide A proposABR / CBR / VBR / VBR-NEWAJouter de nouvelles images.ATTENTION: Pas assez de place dans le dossier temporaire.AacAbout X Convert File AudioActionAdapte l'echelle a la taille de la fenetreAideAjout plage: Click bouton centre / Zoom: Ctrl+ScrollAjouter du texte editable.AlbumAlbum:All Files (*.*)AnneeApeAppliquerAppliquer les modificationsApres une lecture de CD et un ajout d'etiquette, ce menu permet la mise en forme des titres, auteurs ...Arret par l'utilisateurArtisteArtiste:Aucun fichier de musique associe au cue-file !Aucun fichier de musique associe dans le dossierAucun fichier trouve !Audioptimisation by DzefAugmentation de l'echelle.Augmente l'agrandissementBishop's pageBitrateBitsBonne qualite de compressionCAPACITE DOSSIER TEMPORAIRE TROP FAIBLECDCONVERSIONSCe fichier appartient a XCFAChapitre: [%02d]ChoixChoix d'un chemin de stockage des imagesChoix d'un dossier de destinationChoix d'un fichierChoix d'un fichier CUE WAV FLAC OGG MP3 APE WMAChoix d'un fichier musicalChoix d'un lieu de sauvegardeChoix d'une nouvelle destinationChoix d'une nouvelle police.Choix de fichiersChoix de fichiers FLAC MPC OGG MP3Choix de fichiers MP3/OGGChoix de fichiers WAVChoix parmis les differentes bases de donnees pour le CD.Click droit: acces popupCommentaireCommentaire:CompressionCompression maximumControle du contenu des fichiers extraits Conversion vers %s canaux.Conversion vers 2 canaux.Conversion vers 2 canaux. Un second click activera la conversion vers %s canaux.Conversion(s) vers la sourceCouldn't find CDCreation d'un fichier cue unique depuis une lecture du cd audioCreation d'un fichier unique au format: Creation fichier cue uniquementCritere de recherche absent !!DVDDebian MultimediaDebitDeplierDeselection globaleDetail extraction mode expertDiminution de l'echelle.Doc Xcfa par PatachonDuree de la plage activeERREUR datas proxyERREUR: Lieu de stockage non autorise !Echelle a 100%.Echelle compatible avec la taille de la fenetre.Ecriture du fichier cueEffacerEffacer l'imageEkd (EnKoDeur-Mixeur)Emplacement de sauvegarde des fichiers.En attente de selection. Un click activera la conversion vers 2 canaux.Enregistrer la page au format png.ErreurErreur SOXErreur de choix de fichierErreur de donnees dans le fichier CUEErreur de lecture !Erreur depuis MPLAYER !Erreur depuis SOX !Extra encode processingExtraction mode expert PASS 1/2 Extraction mode expert PASS 2/2 ExtraireFREQUENCEFichierFichier de correctionFichier structure DVDFichier videFichier_complet_%02d_%sFix (scan)RmsFlacFormatForum XcfaFramasoftFrequenceFrugalwareGenreHertzIl faut installer le programme: lsdvdIl ne restera qu'a ajuster les plages pourImage au dernier planImage au dessusImage au premier planImage en dessousImportation des images depuis le Web.Importation du titre du CD.Importer des images pour la pochetteIndex de debutIndex de finIndex de lectureJe suis libreL'acces au web est impossible car aucun navigateurL'application est absente.La LinuxerieLa liaison internet est absenteLa normalisation expliquee par DzefLa solution est d'importer le fichier deLe DVD est absent du lecteur.Le fichier CUE sera enregistre vers 'Destination des fichiers'.Le fichier ne contient aucune donnee !!!Le package 'dvd+rw-tools' est absentLe programme SOX de votre distributionLe programme XCFA_INSTALL_ALL ecrit en Perl vous sera utile en ligne de commande pour une installation des programmes complementaire.Le programme externe d'extraction est absent.Le resultat du Split sera dirige vers 'Destination des fichiers'.LectureLecture de 5 secondes apres le marqueur de debutLecture de 5 secondes avant le marqueur de finLes types de fichiers acceptes sont: WAV FLAC MP3 OGG APE WMA CUELinux On The RootM4aMAX FICHIERS ATTEINT = %dMODE ADMINISTRATEURMP3-OGGMPEG-4 File Format (MP4) - Extension .m4aMPLAYER deja en actionMPLAYER est deja utilise !!Mauvais type de fichierMeilleure qualite de compressionMenu: Click droit / Ajout plage: Click bouton centre / Zoom: Ctrl+ScrollMix (scan)Rms/albumModeMode hybrideMode normalMode rapide de compressionModification des champsModifiez la chaine de recherche etMono forceMp3MpcMusepackMusique en attente.Musique en ecoute.New BitrateNew BitsNew HertzNew VoieNiceNo Audio CDNomNom (sans extention) du fichier a sauvegarder.Nom a droiteNom a gaucheNom au centreNom de fichier absent !!Nom de fichier unique absentNonNormaliseNormalise: En attente de selection.Nouveau bitrateNumNumeroOKOggOgg Vorbis explique par ShankariusOkOuiOutilsOuvre un fichierPACKAGE dvd+rw-tools ABSENTPAS de lecteur audio presentPAS de navigateur presentPEAK-ALBUM: Amplification maximale du volume pour un groupe de fichiers en respectant les ecarts de niveau entre chacun d'eux.PEAK: Amplification maximale du volume pour chaque de fichier.PISTEPackage NOT FOUND !Package checkmp3 (mp3check) NOT FOUND !PaquetPar defautParametres par defautPas assez de place dans le dossier temporairePas de fichier WAV dans le cue-file !PausePeakPeak/albumPistePlagePlayPlease, install package [ cdda2wav ]Please, install package [ cdparanoia ]Please, install package [ icedax ]Please, install packages [ cd-discid ]Please, install packages [ icedax, cdda2wav ]Pour evaluer les templates, vous devez activer une lecture de cdaudioPour resoudre ce probleme:Production fichier CueQUANTIFICATIONQualite 0Qualite 1Qualite 10 (Meilleure qualite)Qualite 10 [ Meilleure qualite ]Qualite 2Qualite 3Qualite 3 [ Defaut ]Qualite 4Qualite 5Qualite 6Qualite 7Qualite 8Qualite 9Qualite -1 (Moins bonne qualite)Qualite -1 [ Moins bonne qualite ]QuantificationQuitterRMS-ALBUM: Ajustement du volume moyen pour un groupe de fichiers en respectant les ecarts de niveau moyen entre chacun d'eux.RMS: Ajustement du volume moyen de chaque de fichier.Reduit l'agrandissementRemet l'echelle a 100%ReplayGainReplaygainReplierRetourRetourner horizontalementRetourner verticalementRoad2MayotteSCANSaisissez ici un critere de recherche d'images.Saisissez un nom de fichier sans extentionSaisissez une chaine de recherche etSauvegarde au format PNGSauvegarde aux formats PDF et PostScriptSauvegarde le fichierScan ...Scan en cours ...Select type: --Selecteur precedantSelecteur suivantSelection globaleSelectionnez un autre fichier.Signature MD5SizeSonSox et Mplayer absentsSox et Mplayer sont absents de votreSplitStatusStereoSuppression pendant la lecture impossibleSupprimer l'image de la listeSupprimer l'image en selectionSupprimer la plage activeSuprimer tous les marqueurs pour les remplacer par un marqueur uniqueTAGSTailleTaux de compressionTempsTemps inferieur a 5 secondes entre marqueur et curseur !Texte gras.Texte italique.TimeTitreTitre [%02d ** ]Titre [%02d]Titre:Titre_%02d_Chapitre_%02d_audio_%02d_%sTitresTotal selection%s: %d, 2ch: %dTransport Stream (ADTS) - Extension .aacTrashTuxfamilyTypeV0 (meilleure qualite)V0 [ meilleure qualite ]V4 [ defaut ]V9 (moins bonne qualite)V9 [ moins bonne qualite ]Valeur d'origineVeuillez deselectionner des PeakGroup.Veuillez installer : Veuillez installer checkmp3 ou mp3check pour la prise en compte des fichiers mp3Veuillez installez un lecteur audio.Veuillez installez un navigateur.Veuillez l'installer car j'ai besoin deVeuillez les installer pour pouvoir continuer.Veuillez recommencer.Veuillez renseigner les champs du proxyVeuillez saisir un nom pour le fichier uniqueVeuillez selectionner un fichier de type WAV FLAC MP3 OGG APEVisibilite des champsVoieVous devez ouvrir l'acces internetVous pouvez activer XCFA en ligne de commande avec: WAVWaiting ...WavWavPWavpackWiki Xcfa par ShankariusXCFA LinuxForen.deXCFA Vorstellung XCFA: Conversions WAV TO WAVXCFA: Extraction CDXCFA: Extraction DVDXCFA: Modification bitrateXCFA: Traitement fichiersXcfa sur Linux On The Root[Erreur du segment numero: %d] %d) Lecture PASS 1/2 [Recherche des fichiers images]a generer une erreur pendant la conversion.braindead : extreme high quality : 232 .. 278 kbit/sbuttoncd-discid NOT FOUNDcdda2wav / icedaxcdda2wav NOT FOUNDcdda2wav and icedax NOT FOUNDcdparanoiacdparanoia NOT FOUNDcdparanoia mode expertcdparanoia mode expert multi passesconfiguration.correspondant aux plages.dans le module Split.de votre systeme !definit le serveur a contacter pour les recherches titredu cue-filegenerer un nouveau cue-file ou des decoupesicedax NOT FOUNDinsane : extreme high quality : 232 .. 268 kbit/slabellecteur(s) de cd / dvd.lecturelsdvd est absent !musique qui sera reconnu et pre-decoupen'est present dans votre configuration.pour consulter le type d'erreur renvoye par mplayer.pour consulter le type d'erreur renvoye par sox.radio : medium (MP3) quality : 112 .. 152 kbit/srecommencez.sstandard : high quality (dflt) : 142 .. 184 kbit/sstereo left/rightstereo mid/sidetelephone: lowest quality : 32 .. 48 kbit/sthumb : low quality/internet : 58 .. 86 kbit/sxtreme : extreme high quality : 168 .. 212 kbit/sProject-Id-Version: xcfa 4.2.8 Report-Msgid-Bugs-To: xcfa@tuxfamily.org POT-Creation-Date: 2013-10-07 16:28+0200 PO-Revision-Date: 2010-08-21 18:45+0100 Last-Translator: Gerry Butler Language-Team: English Language: en MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Useful links konqueror : newTab iceweasel : -new-window -new-tab To install the required external software, please use the package manager of your Gnu/Linux distribution. XCFA programmer Webmasters Documentation ElementSpeak for XCFA·· Forum Graphics Modify fields German translation Italian translation In the beginning: Serres Patrick, Hamann Regis, Fabien Gregis, @Dzef, @alteo_gange, @Leonux, @zarer, @Shankarius, @bishop, @Ludo, @Patachonf, ... ;-) [Track: %d] Named: --- WARNING : you need to install %s WARNING : you need to install %s%s WARNING : you need to install %s%s%s Deselect all Horizontally deselect Vertically deselect Vertically deselect Vertically deselect No Web access: no web browser ALBUM selection Horizontal expert select Vertical expert select ERASE selection TRACK selection Horizontally select Vertically select Vertically select Vertically select Please install a web browser You should not use XCFA under ROOT ! found in your system VBR / ABR 8 bits 8000 Hertz Lame (mp3 file): ... Packets: ? ... Packets: deb ... Packets: fpm ... Packets: pkg.tar.xz ... Packets: rpm ... Packets: tgz CD player DVD player / Import files File storage Conversions temporary folder Play music at the end of task AacPlusEnc Options FAAC Options FLAC Options LAME Options MAC Options MUSEPACK Options OGGENC Options WAVPACK Options System priority AacPlusEnc Faac Flac Lame Mac Musepack Oggenc Wavpack Web cdparanoia m3u and xspf: Year :Genre :Track: A program to send desktop notifications AAC+ encoder AacplusEnc Year: External programs External programs Arrangement of CD titles MPEG-4 and MPEG-2 AAC encoder CD CD Check validity of mp3s Read the contents of a DVD Container Contributions Create wav to flac Create mp3 audio files Convert wav : ogg Creating a single file DVD Bitrate Decode ATSC A/52 audio streams Split mp3/ogg without decoding InCrEdible Digital Audio eXtractor Faac Files Flac High compression for waveform files General Genre: Informations Video and audio player Licence MPEG-4 AAC decoder Mac Computer Mode Streaming Edit: Freedb tags modification Monkey's Audio Console Front End : APE Mono: Quality en kbit/s Mp3 Mp3-Ogg MusePack commandline utilities Musepack Browsers / Audio player Lossless mp3 normaliser ogg file normaliser wav file normaliser Oggenc Track: CD Cover Preferences QualityVBR Quality / ABR rate Read CD and get CDDB discid information Split Stereo: Quality in kbit/s Tags Sound eXchange, the Swiss Army knife of audio manipulation Wavpack Hybrid Lossless Audio Compressor Wav Wavpack $ xcfa -verbose%a [ %a="Artist" ] %b [ %b="Album" ] TI% - Tetsumaki lower Converts the string to lowercase except for the first character In the fields 'Title' since [Changing FreeDB tag] the character or characters to be retained must be preceded bycharacter %%d) Read PASS 2/2 'Dvd + rw-mediainfo' to identify the(Click Droit = Menu) / COLLECTIVE maximum volume adjustment(Click Droit = Menu) / INDIVIDUAL maximum volume adjustment(Right Click = Menu) / This file will be sent to the trash after processing(Right Click = Menu) / Select frequency(Right Click = Menu) / Encoding selection in number of bits(Right Click = Menu) / Select number of tracks (channels)(Click Droit = Menu) / Click here to send the processed file to the trash(Right click = Menu) / Waiting for selection.(Right click = Menu) / Waiting for Selection. File exists.(Right click = Menu) / Selected files(Right click = Menu) / Selected files. File exists.(Click Droit = Menu) / Album mode.(Click Droit = Menu) / Erase mode.(Click Droit = Menu) / Track mode.(Right click = Menu) / Maximum volume amplification of a group of files keeping the level difference between each of them(Right click = Menu) / PEAK: Maximum volume amplification for each file(Right click = Menu) / Possibilities for individual adaptation or maximum collection volume(Click Droit = Menu) / ReplayGain: Waiting for selection.(Right click = Menu) / Selection - expert mode.(Right click = Menu) / Selection - expert mode. File exists.---TRASH MENU-----------------VERTICAL SELECTION--------> Segment %d already read two %d times! Abandon :/ 0 (Fast)00h00m00s1 track1 (fast)16 bits2 track22000 Hertz24 bits32 bits32000 Hertz4 track44056 Hertz44100 Hertz48000 Hertz6 track6 (very slow)64 bits8 (Slow)88200 Hertz96000 Hertz AacplusEnc (file .aac): Make at least two selections in the Wav column dBFS level: CD cue file creation Export converted files: Save location: Eject Export Rip audio-CD with: Faac (file .m4a): Flac (flac file): Import Informations Installation Mac (ape file): MusePack (mpc file): Clear Normalise: Normalise Oggenc (ogg file): User-defined expert options - faac (wav -> m4a) User-defined expert options - flac (wav -> flac) User-defined expert options - lame (wav -> mp3) User-defined expert options - mac (wav -> ape) User-defined expert options - musepack (wav -> mpc) User-defined expert options - oggenc (wav -> ogg) User-defined expert options - wavpack (wav -> wv) Setting up CDDB: [ Server name ] Proxy settings: [ server ] [ port ] Server 2CH: Sub / Ambiance Visibility Your system uses ... WavPack (wv file): %a - artist %b - album title %c - track number %d - track title %e - year %g - genre %f - create an m3u and xspf file %na - no accent %u - replace special characters: %u(AB=C) %u( =_) %Tl - Tetsumaki lower%a - artist %b - album title %c - track number %d - track title %e - year %g - genre %na - no accent %Tl - Tetsumaki lower %u - replacing characters: %u(AB=C) %u( =_)0%s Copy file: %d%%%s Return file: %d%%%s Use Mplayer: %d%%%s Use Sox: %d%%Trash files ...AuthorThis file can not be ripped !DiscIdFramasoft Generation of a report for: cdparanoia expert mode multi passTags, titles and cue files managementHome PageImport web imagesSound engineers Audio playerLicenseMan PageMan Page Man Page Man Page browsersMedia scan in progress...Official websiteOfficial website TextTitle CDTotal files: %d, Selected: %dEnglish translation Use drag / drop - delete an image with Ctrl +ClickInfo Lame wiki mp3 wiki WikiWiki Wiki []internal string optionEnter the location of the temporary folder to be used by XCFA Album:Artist:Comment:LogExpertMode.txt file will be created in the folder extractionsReady for imports and a CUE file, WAV, FLAC, OGG, MP3, APE, WMATitle:parameters: XCFA on the web= You've probably found a bug in XCFA = Invalid memory address AboutABR / CBR / VBR / VBR-NEWAdd new images.WARNING: Not enough space available in the temp folder.AacAbout X Convert File AudioActionAdjusts the scale to the size of the windowHelpAdding track: Click the center button / Zoom: Ctrl+ScrollAdd text editable.AlbumAlbum:All Files (*.*)YearApeApplyApply the changesAfter reading a CD and add a label, this menu allows the formatting of titles, authors ...Stopped by userArtistArtist:No music file associated with the cue-fileNo music file in the folder associatedNo file found !Audioptimisation by DzefIncrease in scale.Increasing expansionBishop's pageBitrateBitsHigh quality (Better compression ratio)TEMPORARY CAPACITY TOO LOWCDCONVERSIONSThis file belongs XCFAChapter: [%02d]ChoiceSelect location for image storageSelect a destination folderSelect a fileSelect CUE WAV FLAC OGG MP3 APE WMA filesSelecting a music fileSelect a backup locationSelect a new destinationChoosing a new font.Select filesSelect FLAC MPC OGG MP3 filesSelect MP3/OGG fileSelect a WAV fileChoice among different databases for the CD.Right click: access popupCommentComment:CompressionMaximum compressionControl the content of the extracted files Conversion to %s channels.Conversion to 2 channels.Conversion to 2 channels. A second click will activate the conversion to %s channels.Conversion(s) to sourceCouldn't find CDCreate a single cue file from an audio-CDCreate a single file in the format: Create cue fileSearch criteria away !!DVDDebian MultimediaBitrateUnfoldClear allRip details - expert modeReduction in the scale.XCFA doc. by PatachonLength of the active beachERROR datas proxyERROR : storage location not permitted !Scale 100%.Scale compatible with the size of the window.Write cue fileClearClear imageEkd (EnKoDeur-Mixeur)Backup location files.Waiting for selection. A click will activate the conversion to 2 channels.Save Page png.ErrorSOX ErrorError file selectData errors in the CUE fileMisreading !Error since MPLAYER !Error since SOX !Extra encode processingRipping expert mode PASS 1/2 Ripping expert mode PASS 2/2 RipFREQUENCYFileCorrection fileDVD file structureEmpty fileCompleted_file_%02d_%sFix (scan)RmsFlacFormatForum XcfaFramasoftFrequencyFrugalwareGenreHertzYou must install the program: lsdvdWe will just adjust to the beachesImage to the backgroundImage aboveForeground imageImage belowImporting images from the Web.Import the CD title.Import images for the coverIndex startEnd indexIndex readingJe suis libreNo Web access: no web browserApplication is missing.La LinuxerieA web connection is missingNormalisation explained by DzefThe solution is to import the fileThe DVD player is absent.CUE file to be recorded 'Destination file'.The file contains no data !!!The package 'imagemagick' is missingThe SOX program on your distributionThe program XCFA_INSTALL_ALL written in Perl will be useful on the command line for installation of supplementary programsThe external ripping program is missingThe result of the Split will be heading for 'Destination file'.PlayReading 5 seconds after the beginning markerReading of 5 seconds before the end markerFile types accepted are: WAV FLAC MP3 OGG APE WMA CUELinux On The RootM4aMAX FILES REACHED = %dADMINISTRATOR MODEMP3-OGGMPEG-4 File Format (MP4) - Extension .m4aMPLAYER already in actionMPLAYER is already in use !!Wrong type of fileVery high quality (Best compression but slowest)Menu: right click / Adding track: Click the center button / Zoom: Ctrl+ScrollMix (scan)Rms/albumModeHybrid modeStandardFast (Faster encode and decode)Modify fieldsModify the search parameters andForce monoMp3MpcMusepackMusic paused.Playing music.New BitratNew BitsNew HertzNew VoiceNiceNo Audio CDNameName (without extension) file is saved.Name to rightName to leftName centredFile name not found !!File name not foundNoNormaliseNormalise: Waiting for selection.New bitrateNumNumberOKOggOgg Vorbis explained by ShankariusOkayYesToolsOpen a filePACKAGE dvd+rw-tools is missingNO audio player presentNo web browserPEAK-ALBUM: Maximum volume amplification for a group of files according to the deviations in level between themPEAK: Maximum volume amplification of each file.TRACKPackage NOT FOUND !Package checkmp3 (mp3check) NOT FOUND !PacketsDefaultDefault parametersWARNING: Not enough space available in the temp folder.No WAV file in the cue-filePausePeakPeak/albumTrackPlagePlayPlease, install package [ cdda2wav ]Please, install package [ cdparanoia ]Please, install package [ icedax ]Please, install package [ cd-discid ]Please, install packages [ icedax, cdda2wav ]To assess the templates, you must enable a reading cdaudioTo solve this problem :Generate CUE fileQUANTIFICATIONQuality 0Quality 1Quality 10 (Best quality)Quality 10 [ Best quality ]Quality 2Quality 3Quality 3 [ Default ]Quality 4Quality 5Quality 6Quality 7Quality 8Quality 9Quality -1 (Poor quality)Quality -1 [ worst quality ]QuantificationQuitRMS-ALBUM: Adjusting the average volume for a group of files according to the average level of deviation between them.RMS: Average volume amplification of each file.Reduced expansionGives the scale at 100%ReplayGainReplaygainFoldReturnFlip HorizontalFlip VerticalRoad2MayotteSCANEnter here a search of images.Enter a file name without extensionEnter a search string andSaving as PNGSaving to PDF and PostScriptSaving the fileScan ...Scan in progress ...Select type: -Previous selectorFollowing selectorSelect allSelect another file.MD5 signatureSizeChannel modeSox and Mplayer is missingSox and Mplayer is missingSplitStatusStereoDeleting not during playbackRemove image from the listDelete the image selectionDelete the active rangeWipe all markers and replace them with a single markerTAGSSizeCompression levelTimeTime of less than 5 seconds between marker and cursor !Bold text.Italic text.TimeTitleTitle [%02d ** ]Title [%02d]Title:Title_%02d_Chapter_%02d_audio_%02d_%sTitlsTotal selection%s: %d, 2ch: %dTransport Stream (ADTS) - Extension .aacTrashTuxfamilyTypeV0·····(Best quality)V0 [ best quality ]V4 [ default ]V9·····(Poor quality)V9 [ worst quality ]Original valuePlease deselect PeakGroup.Please install : Please install or checkmp3 mp3check for consideration of mp3 filesPlease install an audio playerPlease install a web browserPlease install it and resumePlease install it and resumePlease start again.Please complete all fields proxyPlease enter a file namePlease select a file type of MP3 WAV OGG FLAC APEVisible fieldsVoiceYou need to enable web accessYou can enable XCFA command line with: WAVWaiting ...WavWavPWavpackXCFA wiki by ShankariusXCFA LinuxForen.deXCFA Vorstellung XCFA: Conversions WAV TO WAVXCFA: CD RippingXCFA: DVD ripXCFA: Bitrate changeXCFA: Processing filesXCFA on Linux On The Root[Error on segment #%d] %d) Playing PASS 1/2 [Search images files]has generated an error during conversionbraindead : extreme high quality : 232 .. 278 kbit/sbuttoncd-discid NOT FOUNDcdda2wav / icedaxcdda2wav NOT FOUNDcdda2wav and icedax NOT FOUNDcdparanoiacdparanoia NOT FOUNDcdparanoia expert modecdparanoia expert mode multi passconfiguration.corresponding to the beaches.Split in the module.on your system !Sets the server to be contacted for title lookupsof cue-filegenerate a new cue-file or cutsicedax NOT FOUNDinsane : extreme high quality : 232 .. 268 kbit/slabelreader of cd / dvd.Playlsdvd is missing !music that will be recognized and pre-cuttingfound in your systemto see the type of error returned by mplayer.to see the type of error returned by sox.radio : medium (MP3) quality : 112 .. 152 kbit/sstart againsstandard : high quality (dflt) : 142 .. 184 kbit/sstereo left/rightstereo mid/sidePhone: (Lowest quality) : 32 .. 48 kbit/sthumb : low quality/internet : 58 .. 86 kbit/sxtreme : extreme high quality : 168 .. 212 kbit/sxcfa-4.3.6/po/en@boldquot.header0000644000175000017500000000247111400750706013436 00000000000000# All this catalog "translates" are quotation characters. # The msgids must be ASCII and therefore cannot contain real quotation # characters, only substitutes like grave accent (0x60), apostrophe (0x27) # and double quote (0x22). These substitutes look strange; see # http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html # # This catalog translates grave accent (0x60) and apostrophe (0x27) to # left single quotation mark (U+2018) and right single quotation mark (U+2019). # It also translates pairs of apostrophe (0x27) to # left single quotation mark (U+2018) and right single quotation mark (U+2019) # and pairs of quotation mark (0x22) to # left double quotation mark (U+201C) and right double quotation mark (U+201D). # # When output to an UTF-8 terminal, the quotation characters appear perfectly. # When output to an ISO-8859-1 terminal, the single quotation marks are # transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to # grave/acute accent (by libiconv), and the double quotation marks are # transliterated to 0x22. # When output to an ASCII terminal, the single quotation marks are # transliterated to apostrophes, and the double quotation marks are # transliterated to 0x22. # # This catalog furthermore displays the text between the quotation marks in # bold face, assuming the VT100/XTerm escape sequences. # xcfa-4.3.6/po/fr.po0000644000175000017500000021160112224542443010756 00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Free Software Foundation, Inc. # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: xcfa 4.2.8\n" "Report-Msgid-Bugs-To: xcfa@tuxfamily.org\n" "POT-Creation-Date: 2013-10-07 16:28+0200\n" "PO-Revision-Date: 2010-05-06 16:59+0200\n" "Last-Translator: BULIN Claude xcfa@tuxfamily.org\n" "Language-Team: French\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: src/cd_audio.c:812 src/dvd.c:680 src/dvd.c:1324 msgid "MPLAYER deja en action" msgstr "MPLAYER déjà en action" #: src/cd_audio.c:813 src/dvd.c:681 src/dvd.c:1325 msgid "MPLAYER est deja utilise !!" msgstr "MPLAYER est déjà utilisé !!" #: src/cd_audio.c:1224 src/cd_audio.c:1230 src/dvd.c:867 src/file.c:2829 msgid "(Click Droit = Menu) / En attente de selection." msgstr "(Click Droit = Menu) / En attente de sélection." #: src/cd_audio.c:1227 src/file.c:2826 msgid "Le programme externe d'extraction est absent." msgstr "Le programme externe d'extraction est absent." #: src/cd_audio.c:1233 src/file.c:2832 msgid "(Click Droit = Menu) / En attente de selection. Le fichier existe." msgstr "(Click Droit = Menu) / En attente de sélection. Le fichier existe." #: src/cd_audio.c:1236 src/file.c:2835 msgid "(Click Droit = Menu) / En selection." msgstr "(Click Droit = Menu) / En sélection." #: src/cd_audio.c:1239 src/file.c:2841 msgid "(Click Droit = Menu) / Selection avec options expert." msgstr "(Click Droit = Menu) / Sélection avec options expert." #: src/cd_audio.c:1242 src/file.c:2838 msgid "(Click Droit = Menu) / En selection. Le fichier existe." msgstr "(Click Droit = Menu) / En sélection. Le fichier existe." #: src/cd_audio.c:1245 src/file.c:2844 msgid "" "(Click Droit = Menu) / Selection avec options expert. Le fichier existe." msgstr "" "(Click Droit = Menu) / Sélection avec options expert. Le fichier existe." #: src/cd_audio.c:1254 msgid "" "(Click Droit = Menu) / Possibilite d'ajustement INDIVIDUEL ou COLLECTIF " "maximal du volume" msgstr "" "(Click Droit = Menu) / Possibilité d'ajustement INDIVIDUEL ou COLLECTIF " "maximal du volume" #: src/cd_audio.c:1259 msgid "(Click Droit = Menu) / Ajustement INDIVIDUEL maximal du volume" msgstr "(Click Droit = Menu) / Ajustement INDIVIDUEL maximal du volume" #: src/cd_audio.c:1262 msgid "(Click Droit = Menu) / Ajustement COLLECTIF maximal du volume" msgstr "(Click Droit = Menu) / Ajustement COLLECTIF maximal du volume" #: src/cd_audio.c:1502 src/dvd.c:1099 src/file.c:3139 src/translate.c:331 #: src/translate.c:342 src/translate.c:361 msgid "Play" msgstr "Play" #: src/cd_audio.c:1543 src/file.c:3204 src/translate.c:343 src/translate.c:364 msgid "Wav" msgstr "Wav" #: src/cd_audio.c:1564 src/file.c:3223 src/translate.c:344 src/translate.c:365 msgid "Flac" msgstr "Flac" #: src/cd_audio.c:1584 src/file.c:3242 src/translate.c:345 src/translate.c:366 msgid "Ape" msgstr "Ape" #: src/cd_audio.c:1604 src/file.c:3261 msgid "WavP" msgstr "WavP" #: src/cd_audio.c:1624 src/file.c:3280 src/translate.c:347 src/translate.c:368 msgid "Ogg" msgstr "Ogg" #: src/cd_audio.c:1645 src/file.c:3299 src/translate.c:348 src/translate.c:369 msgid "M4a" msgstr "M4a" #: src/cd_audio.c:1666 src/file.c:3318 src/translate.c:349 src/translate.c:370 msgid "Aac" msgstr "Aac" #: src/cd_audio.c:1686 src/file.c:3337 msgid "Mpc" msgstr "Mpc" #: src/cd_audio.c:1706 src/file.c:3356 src/translate.c:351 src/translate.c:372 msgid "Mp3" msgstr "Mp3" #: src/cd_audio.c:1727 src/translate.c:352 msgid "Num" msgstr "Num" #: src/cd_audio.c:1742 src/translate.c:353 src/translate.c:373 #: src/translate.c:398 src/translate.c:406 msgid "Time" msgstr "Time" #: src/cd_audio.c:1757 src/dvd.c:1167 src/file.c:3392 src/translate.c:335 #: src/translate.c:354 src/translate.c:374 msgid "Normalise" msgstr "Normalise" #: src/cd_audio.c:1782 src/dvd.c:1187 src/file.c:3434 src/file_mp3ogg.c:958 #: src/file_tags.c:1191 src/file_wav.c:824 src/prg_init.c:609 #: src/translate.c:336 src/translate.c:355 src/translate.c:376 #: src/translate.c:388 src/translate.c:399 src/translate.c:407 msgid "Nom" msgstr "Nom" #: src/cd_audio.c:2511 msgid " Parametrage CDDB: [ Nom du serveur ]" msgstr " Paramétrage CDDB: [ Nom du serveur ]" #: src/cd_audio.c:2520 msgid " Parametrage PROXY: [ serveur ] [ port ]" msgstr " Paramétrage PROXY: [ serveur ] [ port ]" #: src/cd_audio.c:2530 src/translate.c:95 msgid " Serveur " msgstr " Serveur " #: src/cd_audio_extract.c:673 #, c-format msgid "" "[Erreur du segment numero: %d]\n" "%d) Lecture PASS 1/2\n" msgstr "" "[Erreur du segment numéro: %d]\n" "%d) Lecture PASS 1/2\n" #: src/cd_audio_extract.c:680 #, c-format msgid "" "--> Deja %d fois 2 lectures du segment %d!\n" " Abandon :/\n" msgstr "" "--> Déjà %d fois 2 lectures du segment %d!\n" " Abandon :/\n" #: src/cd_audio_extract.c:700 #, c-format msgid "%d) Lecture PASS 2/2\n" msgstr "%d) Lecture PASS 2/2\n" #: src/cd_audio_extract.c:780 #, c-format msgid "" "\n" "[Piste: %d]\n" msgstr "" "\n" "[Piste: %d]\n" #: src/cd_audio_extract.c:784 msgid "Extraction mode expert PASS 1/2\n" msgstr "Extraction mode expert PASS 1/2\n" #: src/cd_audio_extract.c:795 msgid "Extraction mode expert PASS 2/2\n" msgstr "Extraction mode expert PASS 2/2\n" #: src/cd_audio_extract.c:803 msgid "Controle du contenu des fichiers extraits\n" msgstr "Côntrole du contenu des fichiers extraits\n" #: src/cd_audio_extract.c:1710 src/cd_audio_extract.c:1712 msgid "XCFA: Extraction CD" msgstr "XCFA: Extraction CD" #: src/cd_audio_extract.c:1710 src/dvd_extract.c:412 src/file_action.c:183 #: src/file_mp3ogg_conv.c:329 src/file_wav_conv.c:343 msgid "Ok" msgstr "Ok" #: src/cd_audio_extract.c:1712 src/dvd_extract.c:414 src/file_action.c:185 #: src/file_mp3ogg_conv.c:331 src/file_wav_conv.c:345 msgid "Arret par l'utilisateur" msgstr "Arrêt par l'utilisateur" #: src/cd_audio_extract.c:1983 msgid "Nom de fichier unique absent" msgstr "Nom de fichier unique absent" #: src/cd_audio_extract.c:1984 msgid "Veuillez saisir un nom pour le fichier unique" msgstr "Veuillez saisir un nom pour le fichier unique" #: src/cd_audio_toc.c:156 msgid "cdda2wav and icedax NOT FOUND" msgstr "cdda2wav and icedax NOT FOUND" #: src/cd_audio_toc.c:157 msgid "Please, install packages [ icedax, cdda2wav ]" msgstr "Please, install packages [ icedax, cdda2wav ]" #: src/cd_audio_toc.c:163 msgid "icedax NOT FOUND" msgstr "icedax NOT FOUND" #: src/cd_audio_toc.c:164 msgid "Please, install package [ icedax ]" msgstr "Please, install package [ icedax ]" #: src/cd_audio_toc.c:170 msgid "cdda2wav NOT FOUND" msgstr "cdda2wav NOT FOUND" #: src/cd_audio_toc.c:171 msgid "Please, install package [ cdda2wav ]" msgstr "Please, install package [ cdda2wav ]" #: src/cd_audio_toc.c:180 msgid "cdparanoia NOT FOUND" msgstr "cdparanoia NOT FOUND" #: src/cd_audio_toc.c:181 msgid "Please, install package [ cdparanoia ]" msgstr "Please, install package [ cdparanoia ]" #: src/cd_audio_toc.c:188 msgid "cd-discid NOT FOUND" msgstr "cd-discid NOT FOUND" #: src/cd_audio_toc.c:189 msgid "Please, install packages [ cd-discid ]" msgstr "Please, install packages [ cd-discid ]" #: src/cd_audio_toc.c:203 msgid "ERREUR datas proxy" msgstr "ERREUR datas proxy" #: src/cd_audio_toc.c:204 msgid "Veuillez renseigner les champs du proxy" msgstr "Veuillez renseigner les champs du proxy" #: src/cd_curl.c:734 src/web.c:187 msgid "La liaison internet est absente" msgstr "La liaison internet est absente" #: src/cd_curl.c:1204 msgid "Couldn't find CD" msgstr "Couldn't find CD" #: src/cd_curl.c:1267 msgid "No Audio CD" msgstr "No Audio CD" #: src/dvd.c:859 msgid "" "(Click Droit = Menu) / PEAK-ALBUM: Amplification maximale du volume pour un " "groupe de fichiers en respectant les ecarts de niveau entre chacun d'eux." msgstr "" "(Click Droit = Menu) / PEAK-ALBUM: Amplification maximale du volume pour un " "groupe de fichiers en respectant les écarts de niveau entre chacun d'eux." #: src/dvd.c:862 msgid "" "(Click Droit = Menu) / PEAK: Amplification maximale du volume pour chaque de " "fichier." msgstr "" "(Click Droit = Menu) / PEAK: Amplification maximale du volume pour chaque de " "fichier." #: src/dvd.c:900 src/dvd.c:920 msgid "En attente de selection. Un click activera la conversion vers 2 canaux." msgstr "" "En attente de sélection. Un click activera la conversion vers 2 canaux." #: src/dvd.c:912 msgid "Conversion vers 2 canaux." msgstr "Conversion vers 2 canaux." #: src/dvd.c:924 #, c-format msgid "Conversion vers %s canaux." msgstr "Conversion vers %s canaux." #: src/dvd.c:929 #, c-format msgid "" "Conversion vers 2 canaux. Un second click activera la conversion vers %s " "canaux." msgstr "" "Conversion vers 2 canaux. Un second click activera la conversion vers %s " "canaux." #: src/dvd.c:944 msgid "Musique en ecoute." msgstr "Musique en écoute." #: src/dvd.c:947 msgid "Musique en attente." msgstr "Musique en attente." #: src/dvd.c:962 #, c-format msgid "Total selection%s: %d, 2ch: %d" msgstr "Total sélection%s: %d, 2ch: %d" #: src/dvd.c:963 msgid "s" msgstr "s" #: src/dvd.c:969 msgid "Ce fichier ne peut etre extrait !" msgstr "Ce fichier ne peut être extrait !" #: src/dvd.c:1087 msgid "Titres" msgstr "Titres" #: src/dvd.c:1111 src/file.c:3375 src/file_mp3ogg.c:943 src/file_tags.c:1175 #: src/translate.c:332 msgid "Temps" msgstr "Temps" #: src/dvd.c:1123 src/translate.c:333 msgid "Format" msgstr "Format" #: src/dvd.c:1135 src/translate.c:334 msgid "Choix" msgstr "Choix" #: src/dvd.c:1249 msgid "Fichier structure DVD" msgstr "Fichier structure DVD" #: src/dvd.c:1299 msgid "Le DVD est absent du lecteur." msgstr "Le DVD est absent du lecteur." #: src/dvd.c:1335 msgid "Scan ..." msgstr "Scan ..." #: src/dvd.c:1385 msgid "lsdvd est absent !" msgstr "lsdvd est absent !" #: src/dvd.c:1386 msgid "Il faut installer le programme: lsdvd" msgstr "Il faut installer le programme: lsdvd" #: src/dvd_extract.c:412 src/dvd_extract.c:414 msgid "XCFA: Extraction DVD" msgstr "XCFA: Extraction DVD" #: src/dvd_read.c:263 #, c-format msgid "Titre [%02d ** ]" msgstr "Titre [%02d ** ]" #: src/dvd_read.c:266 #, c-format msgid "Titre [%02d]" msgstr "Titre [%02d]" #: src/dvd_read.c:310 #, c-format msgid "Fichier_complet_%02d_%s" msgstr "Fichier_complet_%02d_%s" #: src/dvd_read.c:355 #, c-format msgid "Chapitre: [%02d]" msgstr "Chapitre: [%02d]" #: src/dvd_read.c:401 #, c-format msgid "Titre_%02d_Chapitre_%02d_audio_%02d_%s" msgstr "Titre_%02d_Chapitre_%02d_audio_%02d_%s" #: src/file_action.c:183 src/file_action.c:185 msgid "XCFA: Traitement fichiers" msgstr "XCFA: Traitement fichiers" #: src/file_analyze.c:731 msgid "Package checkmp3 (mp3check) NOT FOUND !" msgstr "Package checkmp3 (mp3check) NOT FOUND !" #: src/file_analyze.c:732 msgid "" "Veuillez installer checkmp3 ou mp3check pour\n" "la prise en compte des fichiers mp3" msgstr "" "Veuillez installer checkmp3 ou mp3check pour\n" "la prise en compte des fichiers mp3" #: src/file.c:328 #, c-format msgid "Total fichiers: %d, Selections: %d" msgstr "Total fichiers: %d, Sélections: %d" #: src/file.c:442 msgid "CAPACITE DOSSIER TEMPORAIRE TROP FAIBLE" msgstr "CAPACITE DOSSIER TEMPORAIRE TROP FAIBLE" #: src/file.c:443 msgid "Pas assez de place dans le dossier temporaire" msgstr "Pas assez de place dans le dossier temporaire." #: src/file.c:449 msgid "Veuillez deselectionner des PeakGroup." msgstr "Veuillez déselectionner des PeakGroup." #: src/file.c:1433 msgid "Conversion(s) vers la source" msgstr "Conversion(s) vers la source" #: src/file.c:1434 msgid "Choix d'une nouvelle destination" msgstr "Choix d'une nouvelle destination" #: src/file.c:1504 msgid "Select type: --" msgstr "Select type: --" #: src/file.c:1589 msgid "Peak/album" msgstr "Peak/album" #: src/file.c:1590 msgid "Peak" msgstr "Peak" #: src/file.c:1591 msgid "Mix (scan)Rms/album" msgstr "Mix (scan)Rms/album" #: src/file.c:1592 msgid "Fix (scan)Rms" msgstr "Fix (scan)Rms" #: src/file.c:2853 #, c-format msgid "MAX FICHIERS ATTEINT = %d" msgstr "MAX FICHIERS ATTEINT = %d" #: src/file.c:2863 msgid "Normalise: En attente de selection." msgstr "Normalise: En attente de sélection." #: src/file.c:2867 msgid "ATTENTION: Pas assez de place dans le dossier temporaire." msgstr "ATTENTION: Pas assez de place dans le dossier temporaire." #: src/file.c:2870 msgid "" "PEAK-ALBUM: Amplification maximale du volume pour un groupe de fichiers en " "respectant les ecarts de niveau entre chacun d'eux." msgstr "" "PEAK-ALBUM: Amplification maximale du volume pour un groupe de fichiers en " "respectant les écarts de niveau entre chacun d'eux." #: src/file.c:2874 msgid "PEAK: Amplification maximale du volume pour chaque de fichier." msgstr "PEAK: Amplification maximale du volume pour chaque de fichier." #: src/file.c:2877 msgid "" "RMS-ALBUM: Ajustement du volume moyen pour un groupe de fichiers en " "respectant les ecarts de niveau moyen entre chacun d'eux." msgstr "" "RMS-ALBUM: Ajustement du volume moyen pour un groupe de fichiers en " "respectant les écarts de niveau moyen entre chacun d'eux." #: src/file.c:2880 msgid "RMS: Ajustement du volume moyen de chaque de fichier." msgstr "RMS: Ajustement du volume moyen de chaque de fichier." #: src/file.c:2894 msgid "(Click Droit = Menu) / ReplayGain: En attente de selection." msgstr "(Click Droit = Menu) / ReplayGain: En attente de sélection." #: src/file.c:2897 msgid "(Click Droit = Menu) / Mode piste." msgstr "(Click Droit = Menu) / Mode piste" #: src/file.c:2900 msgid "(Click Droit = Menu) / Mode album." msgstr "(Click Droit = Menu) / Mode album." #: src/file.c:2903 msgid "(Click Droit = Menu) / Mode effacer." msgstr "(Click Droit = Menu) / Mode effacer." #: src/file.c:3015 msgid "" "(Click Droit = Menu) / Cliquez ici pour envoyer ce fichier apres traitement " "a la corbeille" msgstr "" "(Click Droit = Menu) / Cliquez ici pour envoyer ce fichier après traitement " "à la corbeille" #: src/file.c:3018 msgid "" "(Click Droit = Menu) / Ce fichier sera dirige apres traitement vers la " "corbeille" msgstr "" "(Click Droit = Menu) / Ce fichier sera dirigé apres traitement vers la " "corbeille" #: src/file.c:3152 src/file_trash.c:359 src/translate.c:362 msgid "Trash" msgstr "Trash" #: src/file.c:3172 src/file_mp3ogg.c:883 src/file_tags.c:1160 #: src/translate.c:363 src/translate.c:394 src/translate.c:405 msgid "Type" msgstr "Type" #: src/file.c:3411 msgid "ReplayGain" msgstr "ReplayGain" #: src/file_conv.c:2835 src/file_mp3ogg_conv.c:336 msgid "Erreur depuis MPLAYER !" msgstr "Erreur depuis MPLAYER !" #: src/file_conv.c:2836 src/file_conv.c:2848 src/file_mp3ogg_conv.c:337 #: src/file_mp3ogg_conv.c:349 msgid "Vous pouvez activer XCFA en ligne de commande avec: " msgstr "Vous pouvez activer XCFA en ligne de commande avec: " #: src/file_conv.c:2838 src/file_conv.c:2850 src/file_mp3ogg_conv.c:339 #: src/file_mp3ogg_conv.c:351 msgid "$ xcfa -verbose" msgstr "$ xcfa -verbose" #: src/file_conv.c:2840 src/file_mp3ogg_conv.c:341 msgid "pour consulter le type d'erreur renvoye par mplayer." msgstr "pour consulter le type d'erreur renvoyé par mplayer." #: src/file_conv.c:2847 src/file_mp3ogg_conv.c:348 msgid "Erreur depuis SOX !" msgstr "Erreur depuis SOX !" #: src/file_conv.c:2852 src/file_mp3ogg_conv.c:353 msgid "pour consulter le type d'erreur renvoye par sox." msgstr "pour consulter le type d'erreur renvoyé par sox." #: src/file_mp3ogg.c:668 msgid "Click droit: acces popup" msgstr "Click droit: accès popup" #: src/file_mp3ogg.c:899 src/translate.c:395 msgid "Bitrate" msgstr "Bitrate" #: src/file_mp3ogg.c:915 msgid "Nouveau bitrate" msgstr "Nouveau bitrate" #: src/file_mp3ogg.c:929 msgid "Taille" msgstr "Taille" #: src/file_mp3ogg_conv.c:329 src/file_mp3ogg_conv.c:331 msgid "XCFA: Modification bitrate" msgstr "XCFA: Modification bitrate" #: src/file_mp3ogg_conv.c:432 #, c-format msgid " ATTENTION: Il faut installer %s%s%s" msgstr " ATTENTION: Il faut installer %s%s%s" #: src/file_mp3ogg_conv.c:440 #, c-format msgid " ATTENTION: Il faut installer %s%s" msgstr " ATTENTION: Il faut installer %s%s" #: src/file_mp3ogg_conv.c:447 #, c-format msgid " ATTENTION: Il faut installer %s" msgstr " ATTENTION: Il faut installer %s" #: src/file_mp3ogg_conv.c:454 msgid "Package NOT FOUND !" msgstr "Package NOT FOUND !" #: src/fileselect.c:105 msgid "Choix d'un dossier de destination" msgstr "Choix d'un dossier de destination" #: src/fileselect.c:106 msgid "Choix d'un fichier CUE WAV FLAC OGG MP3 APE WMA" msgstr "Choix de fichiers CUE WAV FLAC OGG MP3 APE WMA" #: src/fileselect.c:107 msgid "Choix d'un fichier musical" msgstr "Choix d'un fichier musical" #: src/fileselect.c:108 msgid "Choix d'un fichier" msgstr "Choix d'un fichier" #: src/fileselect.c:109 msgid "Choix de fichiers" msgstr "Choix de fichiers" #: src/fileselect.c:110 msgid "Choix de fichiers WAV" msgstr "Choix de fichiers WAV" #: src/fileselect.c:111 msgid "Choix de fichiers MP3/OGG" msgstr "Choix de fichiers MP3/OGG" #: src/fileselect.c:112 msgid "Choix de fichiers FLAC MPC OGG MP3" msgstr "Choix de fichiers FLAC MPC OGG MP3" #: src/fileselect.c:113 msgid "Importer des images pour la pochette" msgstr "Importer des images pour la pochette" #: src/fileselect.c:114 msgid "Choix d'un chemin de stockage des images" msgstr "Choix d'un chemin de stockage des images" #: src/fileselect.c:115 msgid "Choix d'un lieu de sauvegarde" msgstr "Choix d'un lieu de sauvegarde" #: src/fileselect.c:472 src/fileselect.c:595 src/fileselect.c:605 #: src/fileselect.c:628 msgid "All Files (*.*)" msgstr "All Files (*.*)" #: src/file_trash.c:360 msgid "Trash files ..." msgstr "Trash files ..." #: src/file_wav.c:483 msgid "(Click Droit = Menu) / Choix de la frequence" msgstr "(Click Droit = Menu) / Normalise: En attente de sélection." #: src/file_wav.c:486 msgid "(Click Droit = Menu) / Choix du nombre de pistes (voies)" msgstr "(Click Droit = Menu) / Choix du nombre de pistes (voies)" #: src/file_wav.c:489 msgid "(Click Droit = Menu) / Choix du codage en nombre de bits" msgstr "(Click Droit = Menu) / Choix du codage en nombre de bits" #: src/file_wav.c:733 msgid "Frequence" msgstr "Fréquence" #: src/file_wav.c:749 msgid "FREQUENCE" msgstr "FREQUENCE" #: src/file_wav.c:763 msgid "Piste" msgstr "Piste" #: src/file_wav.c:779 msgid "PISTE" msgstr "PISTE" #: src/file_wav.c:793 msgid "Quantification" msgstr "Quantification" #: src/file_wav.c:809 msgid "QUANTIFICATION" msgstr "QUANTIFICATION" #: src/file_wav_conv.c:261 #, c-format msgid "%s Copie fichier: %d%%" msgstr "%s Copie fichier: %d%%" #: src/file_wav_conv.c:271 #, c-format msgid "%s Restitution fichier: %d%%" msgstr "%s Restitution fichier: %d%%" #: src/file_wav_conv.c:281 #, c-format msgid "%s Traitement Sox: %d%%" msgstr "%s Traitement Sox: %d%%" #: src/file_wav_conv.c:298 #, c-format msgid "%s Traitement Mplayer: %d%%" msgstr "%s Traitement Mplayer: %d%%" #: src/file_wav_conv.c:343 src/file_wav_conv.c:345 msgid "XCFA: Conversions WAV TO WAV" msgstr "XCFA: Conversions WAV TO WAV" #: src/main.c:398 msgid "= Adressage memoire invalide\n" msgstr "= Adressage mémoire invalide\n" #: src/main.c:401 msgid "= Vous avez probablement trouve un bug dans XCFA\n" msgstr "= Vous avez probablement trouvé un bug dans XCFA\n" #: src/main.c:786 msgid "MODE ADMINISTRATEUR" msgstr "MODE ADMINISTRATEUR" #: src/main.c:788 msgid " Vous ne devriez pas utiliser " msgstr " Vous ne devriez pas utiliser " #: src/main.c:790 msgid " XCFA sous ROOT !" msgstr " XCFA sous ROOT !" #: src/options.c:171 msgid "ERREUR: Lieu de stockage non autorise !" msgstr "ERREUR: Lieu de stockage non autorisé !" #: src/options.c:172 msgid "Veuillez recommencer." msgstr "Veuillez recommencer." #: src/options_cd.c:122 msgid "Pour evaluer les templates, vous devez activer une lecture de cdaudio" msgstr "Pour évaluer les templates, vous devez activer une lecture de cdaudio" #: src/options_faac.c:96 msgid "Transport Stream (ADTS) - Extension .aac" msgstr "Transport Stream (ADTS) - Extension .aac" #: src/options_faac.c:97 msgid "MPEG-4 File Format (MP4) - Extension .m4a" msgstr "MPEG-4 File Format (MP4) - Extension .m4a" #: src/options_flac.c:67 msgid "0 (Rapide)" msgstr "0 (Rapide)" #: src/options_flac.c:75 msgid "8 (Lent)" msgstr "8 (Lent)" #: src/options_mp3.c:279 msgid "V0 (meilleure qualite)" msgstr "V0 (meilleure qualité)" #: src/options_mp3.c:288 msgid "V9 (moins bonne qualite)" msgstr "V9 (moins bonne qualité)" #: src/options_musepack.c:70 msgid "telephone: lowest quality : 32 .. 48 kbit/s" msgstr "telephone: lowest quality : 32 .. 48 kbit/s" #: src/options_musepack.c:71 msgid "thumb : low quality/internet : 58 .. 86 kbit/s" msgstr "thumb : low quality/internet : 58 .. 86 kbit/s" #: src/options_musepack.c:72 msgid "radio : medium (MP3) quality : 112 .. 152 kbit/s" msgstr "radio : medium (MP3) quality : 112 .. 152 kbit/s" #: src/options_musepack.c:73 msgid "standard : high quality (dflt) : 142 .. 184 kbit/s" msgstr "standard : high quality (dflt) : 142 .. 184 kbit/s" #: src/options_musepack.c:74 msgid "xtreme : extreme high quality : 168 .. 212 kbit/s" msgstr "xtreme : extreme high quality : 168 .. 212 kbit/s" #: src/options_musepack.c:75 msgid "insane : extreme high quality : 232 .. 268 kbit/s" msgstr "insane : extreme high quality : 232 .. 268 kbit/s" #: src/options_musepack.c:76 msgid "braindead : extreme high quality : 232 .. 278 kbit/s" msgstr "braindead : extreme high quality : 232 .. 278 kbit/s" #: src/options_oggenc.c:138 msgid "Qualite -1 (Moins bonne qualite)" msgstr "Qualité -1 (Moins bonne qualité)" #: src/options_oggenc.c:139 src/popup.c:1219 msgid "Qualite 0" msgstr "Qualité 0" #: src/options_oggenc.c:140 src/popup.c:1219 msgid "Qualite 1" msgstr "Qualité 1" #: src/options_oggenc.c:141 src/popup.c:1219 msgid "Qualite 2" msgstr "Qualité 2" #: src/options_oggenc.c:142 msgid "Qualite 3" msgstr "Qualité 3" #: src/options_oggenc.c:143 src/popup.c:1220 msgid "Qualite 4" msgstr "Qualité 4" #: src/options_oggenc.c:144 src/popup.c:1220 msgid "Qualite 5" msgstr "Qualité 5" #: src/options_oggenc.c:145 src/popup.c:1220 msgid "Qualite 6" msgstr "Qualité 6" #: src/options_oggenc.c:146 src/popup.c:1220 msgid "Qualite 7" msgstr "Qualité 7" #: src/options_oggenc.c:147 src/popup.c:1221 msgid "Qualite 8" msgstr "Qualité 8" #: src/options_oggenc.c:148 src/popup.c:1221 msgid "Qualite 9" msgstr "Qualité 9" #: src/options_oggenc.c:149 msgid "Qualite 10 (Meilleure qualite)" msgstr "Qualité 10 (Meilleure qualité)" #: src/options_oggenc.c:179 src/options_wavpack.c:181 #: src/options_wavpack.c:204 src/options_wavpack.c:227 src/popup.c:1223 msgid "Oui" msgstr "Oui" #: src/options_oggenc.c:180 src/options_wavpack.c:148 #: src/options_wavpack.c:180 src/options_wavpack.c:203 #: src/options_wavpack.c:226 src/options_wavpack.c:247 src/popup.c:1223 msgid "Non" msgstr "Non" #: src/options_oggenc.c:201 msgid "Mono force" msgstr "Mono forcé" #: src/options_oggenc.c:202 msgid "Stereo" msgstr "Stéréo" #: src/options_wavpack.c:100 msgid "Mode normal" msgstr "Mode normal" #: src/options_wavpack.c:101 msgid "Mode rapide de compression" msgstr "Mode rapide de compression" #: src/options_wavpack.c:102 msgid "Bonne qualite de compression" msgstr "Bonne qualité de compression" #: src/options_wavpack.c:103 msgid "Meilleure qualite de compression" msgstr "Meilleure qualité de compression" #: src/options_wavpack.c:129 msgid "stereo left/right" msgstr "stereo left/right" #: src/options_wavpack.c:130 msgid "stereo mid/side" msgstr "stereo mid/side" #: src/options_wavpack.c:248 msgid "1 (fast / rapide)" msgstr "1 (fast / rapide)" #: src/options_wavpack.c:253 msgid "6 (very slow / tres lent)" msgstr "6 (very slow / tres lent)" #: src/play_file.c:108 msgid "PAS de lecteur audio present" msgstr "PAS de lecteur audio présent" #: src/play_file.c:109 msgid "Veuillez installez un lecteur audio." msgstr "Veuillez installez un lecteur audio." #: src/poche_dir.c:430 msgid "" "Utilisez le glisser / deplacer - Effacer une image avec Ctrl + " "Click" msgstr "" "Utilisez le glisser / déplacer - Effacer une image avec Ctrl + " "Click" #: src/poche_save.c:111 msgid "Nom de fichier absent !!" msgstr "Nom de fichier absent !!" #: src/poche_save.c:112 src/poche_web.c:353 src/poche_web.c:375 msgid "Pour resoudre ce probleme:" msgstr "Pour résoudre ce problème:" #: src/poche_save.c:115 msgid "Saisissez un nom de fichier sans extention" msgstr "Saisissez un nom de fichier sans extention" #: src/poche_save.c:126 msgid "Sauvegarde aux formats PDF et PostScript" msgstr "Sauvegarde aux formats PDF et PostScript" #: src/poche_save.c:151 msgid "Sauvegarde au format PNG" msgstr "Sauvegarde au format PNG" #: src/poche_web.c:352 msgid "Aucun fichier trouve !" msgstr "Aucun fichier trouvé !" #: src/poche_web.c:356 msgid "Modifiez la chaine de recherche et" msgstr "Modifiez la chaine de recherche et" #: src/poche_web.c:358 src/poche_web.c:380 msgid "recommencez." msgstr "recommencez." #: src/poche_web.c:374 msgid "Critere de recherche absent !!" msgstr "Critère de recherche absent !!" #: src/poche_web.c:378 msgid "Saisissez une chaine de recherche et" msgstr "Saisissez une chaine de recherche et" #: src/poche_web.c:387 msgid "[Recherche des fichiers images]" msgstr "[Recherche des fichiers images]" #: src/popup.c:81 src/popup.c:100 msgid " Deselection globale" msgstr " Désélection globale" #: src/popup.c:82 src/popup.c:101 src/popup.c:162 msgid " Deselection verticale" msgstr " Désélection verticale" #: src/popup.c:83 src/popup.c:102 msgid " Deselection horizontale" msgstr " Désélection horizontale" #: src/popup.c:84 src/popup.c:87 src/popup.c:103 src/popup.c:106 #: src/popup.c:120 src/popup.c:133 src/popup.c:147 msgid " ---" msgstr " ---" #: src/popup.c:85 src/popup.c:104 msgid " Selection verticale" msgstr " Sélection verticale" #: src/popup.c:86 src/popup.c:105 msgid " Selection Expert verticale" msgstr " Sélection Expert verticale" #: src/popup.c:88 src/popup.c:107 msgid " Selection horizontale" msgstr " Sélection horizontale" #: src/popup.c:89 src/popup.c:108 msgid " Selection Expert horizontale " msgstr " Sélection Expert horizontale " #: src/popup.c:119 src/popup.c:132 msgid " Deselection verticale " msgstr " Désélection verticale " #: src/popup.c:121 src/popup.c:134 msgid " Selection verticale " msgstr " Sélection verticale " #: src/popup.c:145 msgid "---SELECTION VERTICALE-----" msgstr "---SELECTION VERTICALE-----" #: src/popup.c:146 msgid " Deselection verticale " msgstr " Désélection verticale " #: src/popup.c:148 msgid " Selection PISTE " msgstr " Sélection PISTE " #: src/popup.c:149 msgid " Selection ALBUM " msgstr " Sélection ALBUM " #: src/popup.c:150 msgid " Selection NETTOYER " msgstr " Sélection NETTOYER " #: src/popup.c:161 msgid "---MENU TRASH--------------" msgstr "---MENU TRASH-------------" #: src/popup.c:163 msgid " Selection verticale " msgstr " Sélection verticale " #: src/popup.c:489 msgid "1 piste" msgstr "1 piste" #: src/popup.c:492 msgid "2 pistes" msgstr "2 pistes" #: src/popup.c:495 msgid "4 pistes" msgstr "4 pistes" #: src/popup.c:498 msgid "6 pistes" msgstr "6 pistes" #: src/popup.c:504 src/popup.c:619 src/popup.c:716 msgid "Valeur d'origine" msgstr "Valeur d'origine" #: src/popup.c:592 msgid " 8000 Hertz" msgstr " 8000 Hertz " #: src/popup.c:595 msgid "22000 Hertz" msgstr "22000 Hertz" #: src/popup.c:598 msgid "32000 Hertz" msgstr "32000 Hertz" #: src/popup.c:601 msgid "44056 Hertz" msgstr "44056 Hertz" #: src/popup.c:604 msgid "44100 Hertz" msgstr "44100 Hertz" #: src/popup.c:607 msgid "48000 Hertz" msgstr "48000 Hertz" #: src/popup.c:610 msgid "88200 Hertz" msgstr "88200 Hertz" #: src/popup.c:613 msgid "96000 Hertz" msgstr "96000 Hertz" #: src/popup.c:698 msgid " 8 bits" msgstr " 8 bits" #: src/popup.c:701 msgid "16 bits" msgstr "16 bits" #: src/popup.c:704 msgid "24 bits" msgstr "24 bits" #: src/popup.c:707 msgid "32 bits" msgstr "32 bits" #: src/popup.c:710 msgid "64 bits" msgstr "64 bits" #: src/popup.c:765 msgid "Selecteur suivant" msgstr "Sélecteur suivant" #: src/popup.c:769 msgid "Selecteur precedant" msgstr "Sélecteur precedant" #: src/popup.c:777 msgid "Supprimer la plage active" msgstr "Supprimer la plage active" #: src/popup.c:849 msgid "Retourner horizontalement" msgstr "Retourner horizontalement" #: src/popup.c:853 msgid "Retourner verticalement" msgstr "Retourner verticalement" #: src/popup.c:861 msgid "Image au premier plan" msgstr "Image au premier plan" #: src/popup.c:865 msgid "Image au dessus" msgstr "Image au dessus" #: src/popup.c:869 msgid "Image en dessous" msgstr "Image en dessous" #: src/popup.c:873 msgid "Image au dernier plan" msgstr "Image au dernier plan" #: src/popup.c:881 msgid "Effacer l'image" msgstr "Effacer l'image" #: src/popup.c:918 msgid "Supprimer l'image de la liste" msgstr "Supprimer l'image de la liste" #: src/popup.c:1036 msgid "V0 [ meilleure qualite ]" msgstr "V0 [ meilleure qualité ]" #: src/popup.c:1036 src/popup.c:1039 msgid "V4 [ defaut ]" msgstr "V4 [ défaut ]" #: src/popup.c:1036 msgid "V9 [ moins bonne qualite ]" msgstr "V9 [ moins bonne qualité ]" #: src/popup.c:1219 msgid "Qualite -1 [ Moins bonne qualite ]" msgstr "Qualité -1 [ Moins bonne qualité ]" #: src/popup.c:1220 msgid "Qualite 3 [ Defaut ]" msgstr "Qualité 3 [ Défaut ]" #: src/popup.c:1221 msgid "Qualite 10 [ Meilleure qualite ]" msgstr "Qualité 10 [ Meilleure qualité ]" #: src/prg_init.c:85 msgid " Decode ATSC A/52 audio streams" msgstr " Décode ATSC A/52 audio streams" #: src/prg_init.c:96 msgid " AAC+ encoder" msgstr " AAC+ encoder" #: src/prg_init.c:107 src/prg_init.c:173 msgid " Extracteur cd audio" msgstr " Extracteur cd audio" #: src/prg_init.c:118 msgid " Read CD and get CDDB discid information" msgstr " Read CD and get CDDB discid information" #: src/prg_init.c:129 msgid " Cherche des renseignements sur les formats mp3" msgstr " Cherche des renseignements sur les formats mp3" #: src/prg_init.c:140 msgid " Audio Codeur freeware" msgstr " Audio Codeur freeware" #: src/prg_init.c:151 msgid " MPEG-4 AAC decodeur" msgstr " MPEG-4 AAC decodeur" #: src/prg_init.c:162 msgid " Conversion wav : flac" msgstr " Conversion wav : flac" #: src/prg_init.c:184 msgid " Conversion wav : mp3" msgstr " Conversion wav : mp3" #: src/prg_init.c:195 msgid " Cherche les informations d'un dvd" msgstr " Cherche les informations d'un dvd" #: src/prg_init.c:207 msgid " Monkey's Audio Console Front End : APE" msgstr " Monkey's Audio Console Front End : APE" #: src/prg_init.c:219 src/prg_init.c:230 msgid " MusePack commandline utilities" msgstr " MusePack commandline utilities" #: src/prg_init.c:241 msgid " Lecteur et extracteur" msgstr " Lecteur et extracteur" #: src/prg_init.c:252 msgid " Normaliseur de fichier mp3" msgstr " Normaliseur de fichier mp3" #: src/prg_init.c:263 msgid " Normaliseur de fichier wav" msgstr " Normaliseur de fichier wav" #: src/prg_init.c:274 msgid " A program to send desktop notifications" msgstr " A program to send desktop notifications" #: src/prg_init.c:285 msgid " Forte compression au format wave" msgstr " Forte compression au format wave" #: src/prg_init.c:296 msgid " Decoupage de fichiers sans decodage" msgstr " Découpage de fichiers sans décodage" #: src/prg_init.c:307 msgid " Transformation universelle de fichiers son" msgstr " Transformation universelle de fichiers son" #: src/prg_init.c:318 msgid " Conversion wav : ogg" msgstr " Conversion wav : ogg" #: src/prg_init.c:329 msgid " Normaliseur de fichier ogg" msgstr " Normaliseur de fichier ogg" #: src/prg_init.c:340 msgid " WAVPACK Hybrid Lossless Audio Compressor" msgstr " WAVPACK Hybrid Lossless Audio Compressor" #: src/prg_init.c:357 msgid " ... les paquets: deb " msgstr " ... les paquets: deb " #: src/prg_init.c:363 msgid " ... les paquets: tgz " msgstr " ... les paquets: tgz " #: src/prg_init.c:369 msgid " ... les paquets: fpm " msgstr " ... les paquets: fpm " #: src/prg_init.c:375 msgid " ... les paquets: rpm " msgstr " ... les paquets: rpm " #: src/prg_init.c:381 msgid " ... les paquets: pkg.tar.xz " msgstr " ... les paquets: pkg.tar.xz " #: src/prg_init.c:387 msgid " ... les paquets: ? " msgstr " ... les paquets: ? " #: src/prg_init.c:623 msgid "Status" msgstr "Status" #: src/prg_init.c:637 msgid "Paquet" msgstr "Paquet" #: src/prg_init.c:652 msgid "Action" msgstr "Action" #: src/scan.c:259 msgid "PACKAGE dvd+rw-tools ABSENT" msgstr "PACKAGE dvd+rw-tools ABSENT" #: src/scan.c:260 msgid "Le package 'dvd+rw-tools' est absent" msgstr "Le package 'dvd+rw-tools' est absent" #: src/scan.c:262 msgid "de votre systeme !" msgstr "de votre système !" #: src/scan.c:264 msgid "Veuillez l'installer car j'ai besoin de" msgstr "Veuillez l'installer car j'ai besoin de" #: src/scan.c:266 msgid "'dvd+rw-mediainfo' pour identifier le(s)" msgstr "'dvd+rw-mediainfo' pour identifier le(s" #: src/scan.c:268 msgid "lecteur(s) de cd / dvd." msgstr "lecteur(s) de cd / dvd." #: src/split.c:279 msgid "" "Menu: Click droit / Ajout plage: Click bouton centre / Zoom: Ctrl+Scroll" msgstr "" "Menu: Click droit / Ajout plage: Click bouton centre / Zoom: Ctrl" "+Scroll" #: src/split.c:282 msgid "Ajout plage: Click bouton centre / Zoom: Ctrl+Scroll" msgstr "Ajout plage: Click bouton centre / Zoom: Ctrl+Scroll" #: src/split.c:286 msgid "" "Pret pour l'import d'un fichier CUE, WAV, FLAC, OGG, MP3, APE, WMA" msgstr "" "Prêt pour l'import d'un fichier CUE, WAV, FLAC, OGG, MP3, APE, WMA" #: src/split.c:356 src/split.c:385 msgid "Ce fichier appartient a XCFA" msgstr "Ce fichier appartient a XCFA" #: src/split.c:357 src/split.c:386 msgid "Selectionnez un autre fichier." msgstr "Selectionnez un autre fichier." #: src/split.c:365 msgid "Fichier vide" msgstr "Fichier vide" #: src/split.c:366 msgid "Le fichier ne contient aucune donnee !!!" msgstr "Le fichier ne contient aucune donnée !!!" #: src/split.c:411 msgid "Sox et Mplayer absents" msgstr "Sox et Mplayer absents" #: src/split.c:412 msgid "Sox et Mplayer sont absents de votre" msgstr "Sox et Mplayer sont absents de votre" #: src/split.c:414 msgid "configuration." msgstr "configuration." #: src/split.c:416 msgid "Veuillez les installer pour pouvoir continuer." msgstr "Veuillez les installer pour pouvoir continuer." #: src/split.c:467 msgid "Erreur de choix de fichier" msgstr "Erreur de choix de fichier" #: src/split.c:468 msgid "Veuillez selectionner un fichier de type WAV FLAC MP3 OGG APE" msgstr "Veuillez sélectionner un fichier de type WAV FLAC MP3 OGG APE" #: src/split.c:505 src/split.c:579 msgid "Mauvais type de fichier" msgstr "Mauvais type de fichier" #: src/split.c:506 src/split.c:580 msgid "" "Les types de fichiers acceptes\n" "sont: WAV FLAC MP3 OGG APE WMA CUE" msgstr "" "Les types de fichiers acceptés sont\n" "WAV FLAC MP3 OGG APE WMA CUE" #: src/split_conv.c:313 src/split_conv.c:330 msgid "Erreur SOX" msgstr "Erreur SOX" #: src/split_conv.c:314 src/split_conv.c:331 msgid "Le programme SOX de votre distribution" msgstr "Le programme SOX de votre distribution" #: src/split_conv.c:316 src/split_conv.c:333 msgid "a generer une erreur pendant la conversion." msgstr "a générer une erreur pendant la conversion." #: src/split_cue.c:116 msgid "Erreur de lecture !" msgstr "Erreur de lecture !" #: src/split_cue.c:177 src/split_cue.c:187 src/split_cue.c:197 msgid "Erreur" msgstr "Erreur" #: src/split_cue.c:178 msgid "Aucun fichier de musique associe au cue-file !" msgstr "Aucun fichier de musique associé au cue-file !" #: src/split_cue.c:188 msgid "Pas de fichier WAV dans le cue-file !" msgstr "Pas de fichier WAV dans le cue-file !" #: src/split_cue.c:198 msgid "Aucun fichier de musique associe dans le dossier" msgstr "Aucun fichier de musique associé dans le dossier" #: src/split_cue.c:200 msgid "du cue-file" msgstr "du cue-file" #: src/split_cue.c:294 msgid "Erreur de donnees dans le fichier CUE" msgstr "Erreur de données dans le fichier CUE" #: src/split_cue.c:295 msgid "La solution est d'importer le fichier de" msgstr "La solution est d'importer le fichier de" #: src/split_cue.c:297 msgid "musique qui sera reconnu et pre-decoupe" msgstr "musique qui sera reconnu et pré-découpé" #: src/split_cue.c:299 msgid "dans le module Split." msgstr "dans le module Split." #: src/split_cue.c:301 msgid "Il ne restera qu'a ajuster les plages pour" msgstr "Il ne restera qu'à ajuster les plages pour" #: src/split_cue.c:303 msgid "generer un nouveau cue-file ou des decoupes" msgstr "générer un nouveau cue-file ou des découpes" #: src/split_cue.c:305 msgid "correspondant aux plages." msgstr "correspondant aux plages." #: src/split_selector.c:136 msgid "Suppression pendant la lecture impossible" msgstr "Suppression pendant la lecture impossible" #: src/split_selector.c:229 src/split_selector.c:235 src/split_selector.c:289 #: src/split_selector.c:295 src/split_selector.c:352 src/split_selector.c:359 #: src/split_selector.c:429 src/split_selector.c:435 msgid "Temps inferieur a 5 secondes entre marqueur et curseur !" msgstr "Temps inférieur à 5 secondes entre marqueur et curseur !" #: src/translate.c:51 msgid "Fichier" msgstr "Fichier" #: src/translate.c:52 msgid "Quitter" msgstr "Quitter" #: src/translate.c:53 msgid "Outils" msgstr "Outils" #: src/translate.c:54 msgid "Visibilite des champs" msgstr "Visibilite des champs" #: src/translate.c:55 msgid "Aide" msgstr "Aide" #: src/translate.c:56 msgid "A propos" msgstr "A propos" #: src/translate.c:57 src/translate.c:67 msgid "Lecture" msgstr "Lecture" #: src/translate.c:58 msgid " Choix du peripherique / Lecture du DVD " msgstr " Choix du périphérique / Lecture du DVD " #: src/translate.c:59 src/translate.c:69 src/translate.c:125 msgid " Destination des fichiers " msgstr " Destination des fichiers " #: src/translate.c:60 src/translate.c:70 msgid " Eject " msgstr " Eject " #: src/translate.c:61 src/translate.c:92 msgid " Normaliser " msgstr " Normaliser " #: src/translate.c:62 msgid "Deplier" msgstr "Déplier" #: src/translate.c:63 msgid "Replier" msgstr "Replier" #: src/translate.c:64 msgid " Vers 2CH: Sub / Ambiance " msgstr " Vers 2CH: Sub / Ambiance " #: src/translate.c:65 src/translate.c:98 msgid "Extraire" msgstr "Extraire" #: src/translate.c:66 msgid " DVD " msgstr " DVD " #: src/translate.c:68 msgid " Choix du peripherique / Lecture du CD " msgstr " Choix du périphérique / Lecture du CD " #: src/translate.c:71 msgid "Titre:" msgstr "Titre:" #: src/translate.c:72 msgid "Album:" msgstr "Album:" #: src/translate.c:73 msgid "Artiste:" msgstr "Artiste:" #: src/translate.c:74 msgid " Annee:" msgstr " Année:" #: src/translate.c:75 msgid " Genre:" msgstr " Genre:" #: src/translate.c:76 msgid " Piste:" msgstr " Piste:" #: src/translate.c:77 msgid " *.m3u et xspf: " msgstr " *.m3u et xspf: " #: src/translate.c:78 msgid "Commentaire:" msgstr "Commentaire:" #: src/translate.c:79 msgid " Modification des tags Freedb " msgstr " Modification des tags Freedb " #: src/translate.c:80 msgid "" "%a [ %a=\"Artist\" ]\n" "\n" "%b [ %b=\"Album\" ]\n" "\n" "%Tl - Tetsumaki lower\n" "\n" "Transforme la chaine en minuscule sauf le premier caractere.\n" "\n" "Dans le champs 'Titre' depuis [ Modification des tags FreeDB ],\n" "le ou les caracteres devant etre conserves doivent etre precedes par le " "caractere %" msgstr "" "%a [ %a=\"Artist\" ]\n" "\n" "%b [ %b=\"Album\" ]\n" "\n" "%Tl - Tetsumaki lower\n" "\n" "Transforme la chaine en minuscule sauf le premier caractère.\n" "\n" "Dans le champs 'Titre' depuis [ Modification des tags FreeDB ],\n" "le ou les caractères devant être conservés doivent être précédés par le " "caractère %" #: src/translate.c:81 msgid "" "%a - artiste %b - titre " "de l'album %c - numero de la piste\n" "%d - titre de la chanson %e - " "annee %g - genre\n" "%f - creation d'un fichier *.m3u et *." "xspf %na - no accent\n" "%u - remplacement de caracteres: %u(AB=C) %u( =_) %Tl - Tetsumaki lower" msgstr "" "%a - artiste %b - titre " "de l'album %c - numéro de la piste\n" "%d - titre de la chanson %e - " "année %g - genre\n" "%f - création d'un fichier *.m3u et *." "xspf %na - no accent\n" "%u - remplacement de caractères: %u(AB=C) %u( =_) %Tl - Tetsumaki lower" #: src/translate.c:82 msgid " Arrangement des titres du CD " msgstr " Arrangement des titres du CD " #: src/translate.c:83 msgid "Creation d'un fichier unique au format: " msgstr "Création d'un fichier unique au format: " #: src/translate.c:84 msgid " et dont le nom sera: " msgstr " et dont le nom sera: " #: src/translate.c:85 msgid "Ecriture du fichier cue" msgstr "Ecriture du fichier cue" #: src/translate.c:86 msgid " Au moins deux selections colonne Wav " msgstr " Au moins deux sélections colonne Wav " #: src/translate.c:87 msgid "" "Creation d'un fichier cue\n" "unique depuis une lecture\n" "du cd audio" msgstr "" "Création d'un fichier cue\n" "unique depuis une lecture\n" "du cd audio" #: src/translate.c:88 msgid "Creation fichier cue uniquement" msgstr "Création fichier cue uniquement" #: src/translate.c:89 msgid " Creation Cue cd " msgstr " Création Cue cd " #: src/translate.c:90 msgid " Creation d'un fichier unique " msgstr " Création d'un fichier unique " #: src/translate.c:91 msgid "Gestion des tags, titres et fichiers cue" msgstr "Gestion des tags, titres et fichiers cue" #: src/translate.c:93 msgid "definit le serveur a contacter pour les recherches titre" msgstr "Définit le serveur à contacter pour les recherches titre" #: src/translate.c:94 msgid "Parametres par defaut" msgstr "Paramètres par défaut" #: src/translate.c:96 msgid "Choix parmis les differentes bases de donnees pour le CD." msgstr "Choix parmis les différentes bases de données pour le CD." #: src/translate.c:97 msgid "DiscId" msgstr "DiscId" #: src/translate.c:99 msgid " CD " msgstr " CD " #: src/translate.c:100 src/translate.c:124 msgid " Importer " msgstr " Importer " #: src/translate.c:101 msgid " Destination des conversions " msgstr " Destination des conversions " #: src/translate.c:102 msgid " Nettoyer " msgstr " Nettoyer " #: src/translate.c:103 src/translate.c:107 msgid "Appliquer les modifications" msgstr "Appliquer les modifications" #: src/translate.c:104 msgid " Normalise: " msgstr " Normalise: " #: src/translate.c:105 msgid " Choix niveau dBFS: " msgstr " Choix niveau dBFS: " #: src/translate.c:106 src/translate.c:123 msgid " Fichiers " msgstr " Fichiers " #: src/translate.c:108 msgid " Wav " msgstr " Wav " #: src/translate.c:109 src/translate.c:121 msgid "Appliquer" msgstr "Appliquer" #: src/translate.c:110 msgid "Effacer" msgstr "Effacer" #: src/translate.c:111 msgid " Mp3-Ogg " msgstr " Mp3-Ogg " #: src/translate.c:112 msgid "Titre:" msgstr "Titre:" #: src/translate.c:113 msgid "Album:" msgstr "Album:" #: src/translate.c:114 msgid "Artiste:" msgstr "Artiste:" #: src/translate.c:115 msgid "Commentaire:" msgstr "Commentaire:" #: src/translate.c:116 msgid " Annee:" msgstr " Année:" #: src/translate.c:117 msgid " Genre:" msgstr " Genre" #: src/translate.c:118 msgid " Piste:" msgstr " Piste:" #: src/translate.c:119 msgid " Modif.:" msgstr " Modif.:" #: src/translate.c:120 msgid "0" msgstr "0" #: src/translate.c:122 src/translate.c:309 msgid " Tags " msgstr " Tags " #: src/translate.c:126 msgid "Lecture de 5 secondes apres le marqueur de debut" msgstr "Lecture de 5 secondes après le marqueur de début" #: src/translate.c:127 msgid "Index de debut" msgstr "Index de début" #: src/translate.c:128 src/translate.c:135 src/translate.c:138 msgid "00h00m00s" msgstr "00h00m00s" #: src/translate.c:129 msgid "lecture" msgstr "lecture" #: src/translate.c:130 msgid "Pause" msgstr "Pause" #: src/translate.c:131 msgid "Index de lecture" msgstr "Index de lecture" #: src/translate.c:132 src/translate.c:171 msgid "label" msgstr "label" #: src/translate.c:133 msgid "Lecture de 5 secondes avant le marqueur de fin" msgstr "Lecture de 5 secondes avant le marqueur de fin" #: src/translate.c:134 msgid "Index de fin" msgstr "Index de fin" #: src/translate.c:136 msgid "Plage" msgstr "Plage" #: src/translate.c:137 msgid "Duree de la plage active" msgstr "Durée de la plage active" #: src/translate.c:139 msgid "Suprimer tous les marqueurs pour les remplacer par un marqueur unique" msgstr "Suprimer tous les marqueurs pour les remplacer par un marqueur unique" #: src/translate.c:140 msgid "Le fichier CUE sera enregistre vers 'Destination des fichiers'." msgstr "Le fichier CUE sera enregistré vers 'Destination des fichiers'." #: src/translate.c:141 msgid "Production fichier Cue" msgstr "Production fichier Cue" #: src/translate.c:142 msgid "Le resultat du Split sera dirige vers 'Destination des fichiers'." msgstr "Le résultat du Split sera dirigé vers 'Destination des fichiers'." #: src/translate.c:143 msgid "Split" msgstr "Split" #: src/translate.c:144 msgid " Split " msgstr " Split " #: src/translate.c:145 msgid "Importation du titre du CD." msgstr "Importation du titre du CD." #: src/translate.c:146 msgid "Titre CD" msgstr "Titre CD" #: src/translate.c:147 msgid "Choix d'une nouvelle police." msgstr "Choix d'une nouvelle police." #: src/translate.c:148 msgid "Texte gras." msgstr "Texte gras." #: src/translate.c:149 msgid "Texte italique." msgstr "Texte italique." #: src/translate.c:150 msgid "" "Apres une lecture de CD et un ajout d'etiquette, ce menu permet la mise en " "forme des titres, auteurs ..." msgstr "" "Après une lecture de CD et un ajout d'étiquette, ce menu permet la mise en " "forme des titres, auteurs ..." #: src/translate.c:151 msgid "Ajouter du texte editable." msgstr "Ajouter du texte éditable." #: src/translate.c:152 msgid "Texte" msgstr "Texte" #: src/translate.c:153 msgid "Saisissez ici un critere de recherche d'images." msgstr "Saisissez ici un critère de recherche d'images." #: src/translate.c:154 msgid "Importation des images depuis le Web." msgstr "Importation des images depuis le Web." #: src/translate.c:155 msgid "Import images web" msgstr "Import images web" #: src/translate.c:156 msgid "Supprimer l'image en selection" msgstr "Supprimer l'image en sélection" #: src/translate.c:157 msgid "AJouter de nouvelles images." msgstr "Ajouter de nouvelles images." #: src/translate.c:158 msgid "Ouvre un fichier" msgstr "Ouvre un fichier" #: src/translate.c:159 msgid "Enregistrer la page au format png." msgstr "Enregistrer la page au format png." #: src/translate.c:160 msgid "Sauvegarde le fichier" msgstr "Sauvegarde le fichier" #: src/translate.c:161 msgid "Diminution de l'echelle." msgstr "Diminution de l'échelle." #: src/translate.c:162 msgid "Reduit l'agrandissement" msgstr "Reduit l'agrandissement" #: src/translate.c:163 msgid "Echelle a 100%." msgstr "Echelle à 100%." #: src/translate.c:164 msgid "Remet l'echelle a 100%" msgstr "Remet l'echelle à 100%" #: src/translate.c:165 msgid "Augmentation de l'echelle." msgstr "Augmentation de l'échelle." #: src/translate.c:166 msgid "Augmente l'agrandissement" msgstr "Augmente l'agrandissement" #: src/translate.c:167 msgid "Echelle compatible avec la taille de la fenetre." msgstr "Echelle compatible avec la taille de la fenêtre." #: src/translate.c:168 msgid "Adapte l'echelle a la taille de la fenetre" msgstr "Adapte l'échelle a la taille de la fenêtre" #: src/translate.c:169 msgid "Emplacement de sauvegarde des fichiers." msgstr "Emplacement de sauvegarde des fichiers." #: src/translate.c:170 msgid "Nom (sans extention) du fichier a sauvegarder." msgstr "Nom (sans extention) du fichier à sauvegarder." #: src/translate.c:172 msgid " Pochette " msgstr " Pochette " #: src/translate.c:173 msgid "Nice" msgstr "Nice" #: src/translate.c:174 msgid " Priorite systeme " msgstr " Priorité système " #: src/translate.c:175 msgid "" "Indiquez ici le dossier sur votre systeme qui servira de lieu\n" "de stockage provisoire pendant les differentes conversions.\n" msgstr "" "Indiquez ici le dossier sur votre système qui servira de lieu\n" "de stockage provisoire pendant les différentes conversions.\n" #: src/translate.c:176 msgid " Dossier provisoire des conversions " msgstr " Dossier provisoire des conversions " #: src/translate.c:177 msgid "button" msgstr "button" #: src/translate.c:178 msgid " Jouer une musique en fin de tache " msgstr " Jouer une musique en fin de tâche " #: src/translate.c:179 msgid " General " msgstr " Genéral " #: src/translate.c:180 msgid "cdparanoia" msgstr "cdparanoia" #: src/translate.c:181 msgid "cdparanoia mode expert" msgstr "cdparanoia mode expert" #: src/translate.c:182 msgid "cdparanoia mode expert multi passes" msgstr "cdparanoia mode expert multi passes" #: src/translate.c:183 msgid "cdda2wav / icedax" msgstr "cdda2wav / icedax" #: src/translate.c:184 msgid " Extraction cd-audio avec: " msgstr " Extraction cd-audio avec: " #: src/translate.c:185 msgid "HomePage" msgstr "HomePage" #: src/translate.c:186 msgid "ManPage " msgstr "ManPage " #: src/translate.c:187 msgid " Web cdparanoia " msgstr " Web cdparanoia " #: src/translate.c:188 msgid "" "Le fichier LogExpertMode.txt sera cree dans le dossier des " "extractions" msgstr "" "Le fichier LogExpertMode.txt sera créé dans le dossier des " "extractions" #: src/translate.c:189 msgid "" "Generation d'un rapport pour: cdparanoia mode expert multi passes" msgstr "" "Génération d'un rapport pour: cdparanoia mode expert multi passes" #: src/translate.c:190 msgid "" "%a - artiste %b - titre " "de l'album %c - numero de la piste\n" "%d - titre de la chanson %e - " "annee %g - genre\n" "%na - no accent %Tl " "- Tetsumaki lower\n" "%u - remplacement de caracteres: %u(AB=C) %u( =_)" msgstr "" "%a - artiste %b - titre " "de l'album %c - numéro de la piste\n" "%d - titre de la chanson %e - " "année %g - genre\n" "%na - no accent %Tl " "- Tetsumaki lower\n" "%u - remplacement de caractères: %u(AB=C) %u( =_)" #: src/translate.c:191 msgid " Dossier de stockage " msgstr " Dossier de stockage " #: src/translate.c:192 msgid " CD " msgstr " CD " #: src/translate.c:193 msgid "ABR / CBR / VBR / VBR-NEW" msgstr "ABR / CBR / VBR / VBR-NEW" #: src/translate.c:194 msgid "Debit" msgstr "Débit" #: src/translate.c:195 msgid "Mode" msgstr "Mode" #: src/translate.c:196 msgid " Lame (fichier mp3): " msgstr " Lame (fichier mp3): " #: src/translate.c:197 src/translate.c:213 src/translate.c:225 #: src/translate.c:238 src/translate.c:255 src/translate.c:266 #: src/translate.c:280 src/translate.c:294 msgid "Par defaut" msgstr "Par défaut" #: src/translate.c:198 msgid " Options LAME " msgstr " Options LAME " #: src/translate.c:199 src/translate.c:227 src/translate.c:268 msgid "Site officiel" msgstr "Site officiel" #: src/translate.c:200 msgid "Wiki mp3 " msgstr "Wiki mp3 " #: src/translate.c:201 msgid "Wiki " msgstr "Wiki " #: src/translate.c:202 msgid "ManPage " msgstr "ManPage " #: src/translate.c:203 msgid " Web Lame " msgstr " Web Lame " #: src/translate.c:204 src/translate.c:218 src/translate.c:231 #: src/translate.c:242 src/translate.c:260 src/translate.c:271 #: src/translate.c:286 msgid "[" msgstr "[" #: src/translate.c:205 src/translate.c:219 src/translate.c:232 #: src/translate.c:243 src/translate.c:261 src/translate.c:272 #: src/translate.c:287 msgid "string option interne" msgstr "string option interne" #: src/translate.c:206 src/translate.c:220 src/translate.c:233 #: src/translate.c:244 src/translate.c:262 src/translate.c:273 #: src/translate.c:288 msgid "]" msgstr "]" #: src/translate.c:207 msgid "" " Options experts, definies par l'utilisateur - lame (wav -> mp3) " msgstr "" " Options experts, définies par l'utilisateur - lame (wav -> mp3) " #: src/translate.c:208 msgid " Mp3 " msgstr " Mp3 " #: src/translate.c:209 msgid " Mode" msgstr " Mode" #: src/translate.c:210 msgid " Mode flux (streaming)" msgstr " Mode flux (streaming)" #: src/translate.c:211 msgid " Debit" msgstr " Débit" #: src/translate.c:212 msgid " Oggenc (fichier ogg): " msgstr " Oggenc (fichier ogg): " #: src/translate.c:214 msgid " Options OGGENC " msgstr " Options OGGENC " #: src/translate.c:215 msgid "Wiki " msgstr "Wiki " #: src/translate.c:216 src/translate.c:258 src/translate.c:284 #: src/translate.c:298 msgid "ManPage" msgstr "ManPage" #: src/translate.c:217 msgid " Web Oggenc " msgstr " Web Oggenc " #: src/translate.c:221 msgid "" " Options experts, definies par l'utilisateur - oggenc (wav -> ogg) " msgstr "" " Options experts, définies par l'utilisateur - oggenc (wav -> ogg) " #: src/translate.c:222 msgid " Oggenc " msgstr " Oggenc " #: src/translate.c:223 msgid "Taux de compression" msgstr "Taux de compression" #: src/translate.c:224 msgid " Flac (fichier flac): " msgstr " Flac (fichier flac): " #: src/translate.c:226 msgid " Options FLAC " msgstr " Options FLAC " #: src/translate.c:228 src/translate.c:269 msgid "Framasoft " msgstr "Framasoft " #: src/translate.c:229 msgid "ManPage " msgstr "ManPage " #: src/translate.c:230 msgid " Web Flac " msgstr " Web Flac " #: src/translate.c:234 msgid "" " Options experts, definies par l'utilisateur - flac (wav -> flac) " msgstr "" " Options experts, définies par l'utilisateur - flac (wav -> flac) " #: src/translate.c:235 msgid " Flac " msgstr " Flac " #: src/translate.c:236 msgid " Qualite" msgstr " Qualité" #: src/translate.c:237 msgid " Mac (fichier ape): " msgstr " Mac (fichier ape): " #: src/translate.c:239 msgid " Options MAC " msgstr " Options MAC " #: src/translate.c:240 msgid "Wiki" msgstr "Wiki" #: src/translate.c:241 msgid " Web Mac " msgstr " Web Mac " #: src/translate.c:245 msgid " Options experts, definies par l'utilisateur - mac (wav -> ape) " msgstr "" " Options experts, définies par l'utilisateur - mac (wav -> ape) " #: src/translate.c:246 msgid " Mac " msgstr " Mac " #: src/translate.c:247 msgid "Compression" msgstr "Compression" #: src/translate.c:248 msgid "Son" msgstr "Son" #: src/translate.c:249 msgid "Mode hybride" msgstr "Mode hybride" #: src/translate.c:250 msgid "Fichier de correction" msgstr "Fichier de correction" #: src/translate.c:251 msgid "Compression maximum" msgstr "Compression maximum" #: src/translate.c:252 msgid "Signature MD5" msgstr "Signature MD5" #: src/translate.c:253 msgid "Extra encode processing" msgstr "Extra encode processing" #: src/translate.c:254 msgid " WavPack (fichier wv): " msgstr " WavPack (fichier wv): " #: src/translate.c:256 msgid " Options WAVPACK " msgstr " Options WAVPACK " #: src/translate.c:257 msgid "Wiki " msgstr "Wiki " #: src/translate.c:259 msgid " Web Wavpack " msgstr " Web Wavpack " #: src/translate.c:263 msgid "" " Options experts, definies par l'utilisateur - wavpack (wav -> wv) " msgstr "" " Options experts, définies par l'utilisateur - wavpack (wav -> wv) " #: src/translate.c:264 msgid " Wavpack " msgstr " Wavpack " #: src/translate.c:265 msgid " MusePack (fichier mpc): " msgstr " MusePack (fichier mpc): " #: src/translate.c:267 msgid " Options MUSEPACK " msgstr " Options MUSEPACK " #: src/translate.c:270 msgid " Web Musepack " msgstr " Web Musepack " #: src/translate.c:274 msgid "" " Options experts, definies par l'utilisateur - musepack (wav -> mpc) " msgstr "" " Options experts, définies par l'utilisateur - musepack (wav -> mpc) " #: src/translate.c:275 msgid " Musepack " msgstr " Musepack " #: src/translate.c:276 msgid " Qualite VBR / Debit ABR" msgstr " Qualité VBR / Débit ABR" #: src/translate.c:277 msgid " VBR / ABR" msgstr " VBR / ABR" #: src/translate.c:278 msgid " Conteneur" msgstr " Conteneur" #: src/translate.c:279 msgid " Faac (fichier .m4a): " msgstr " Faac (fichier .m4a): " #: src/translate.c:281 msgid " Options FAAC " msgstr " Options FAAC " #: src/translate.c:282 src/translate.c:296 msgid "Site officiel " msgstr "Site officiel " #: src/translate.c:283 src/translate.c:297 msgid "Web Info " msgstr "Web Info " #: src/translate.c:285 msgid " Web Faac " msgstr " Web Faac " #: src/translate.c:289 msgid "" " Options experts, definies par l'utilisateur - faac (wav -> m4a) " msgstr "" " Options experts, définies par l'utilisateur - faac (wav -> m4a) " #: src/translate.c:290 msgid " Faac " msgstr " Faac " #: src/translate.c:291 msgid " Stereo: Qualite en kbit/s" msgstr " Stéréo: Qualité en kbit/s" #: src/translate.c:292 msgid " Mono: Qualite en kbit/s" msgstr " Mono: Qualité en kbit/s" #: src/translate.c:293 msgid " AacplusEnc (fichier .aac): " msgstr " AacplusEnc (fichier .aac): " #: src/translate.c:295 msgid " Options AacPlusEnc " msgstr " Options AacPlusEnc " #: src/translate.c:299 msgid " Web AacPlusEnc " msgstr " Web AacPlusEnc " #: src/translate.c:300 msgid " AacplusEnc " msgstr " AacplusEnc " #: src/translate.c:301 msgid "Artiste" msgstr "Artiste" #: src/translate.c:302 src/translate.c:330 msgid "Titre" msgstr "Titre" #: src/translate.c:303 msgid "Album" msgstr "Album" #: src/translate.c:304 msgid "Numero" msgstr "Numéro" #: src/translate.c:305 msgid "Genre" msgstr "Genre" #: src/translate.c:306 msgid "Annee" msgstr "Année" #: src/translate.c:307 msgid "Commentaire" msgstr "Commentaire" #: src/translate.c:308 msgid " Exportation de " msgstr " Exportation de " #: src/translate.c:310 msgid " Preferences " msgstr " Préférences " #: src/translate.c:311 msgid "SCAN" msgstr "SCAN" #: src/translate.c:312 msgid " Installation " msgstr " Installation " #: src/translate.c:313 msgid " Votre systeme utilise ... " msgstr " Votre système utilise ... " #: src/translate.c:314 msgid "" "\n" "Pour installer les programmes externes requis,\n" "veuillez utiliser l'installateur de votre distribution Gnu/Linux.\n" msgstr "" "\n" "Pour installer les programmes externes requis,\n" "veuillez utiliser l'installateur de votre distribution Gnu/Linux.\n" #: src/translate.c:315 msgid "" "Le programme XCFA_INSTALL_ALL ecrit en Perl vous sera utile en ligne de " "commande pour une installation des programmes complementaire." msgstr "" "Le programme XCFA_INSTALL_ALL écrit en Perl vous sera utile en ligne de " "commande pour une installation des programmes complémentaire." #: src/translate.c:316 msgid " Informations " msgstr " Informations " #: src/translate.c:317 msgid " Application externes " msgstr " Application externes " #: src/translate.c:318 src/translate.c:321 msgid "parametres:" msgstr "paramètres:" #: src/translate.c:319 msgid "" "\n" " konqueror : newTab\n" " iceweasel : -new-window -new-tab \n" msgstr "" "\n" " konqueror : newTab\n" " iceweasel : -new-window -new-tab \n" #: src/translate.c:320 msgid "Navigateur" msgstr "Navigateur" #: src/translate.c:322 msgid "Lecteurs audio" msgstr "Lecteurs audio" #: src/translate.c:323 msgid " Navigateurs / Lecteurs audio " msgstr " Navigateurs / Lecteurs audio " #: src/translate.c:324 msgid " Applications externes " msgstr " Applications externes " #: src/translate.c:325 msgid "Scan en cours ..." msgstr "Scan en cours ..." #: src/translate.c:326 msgid "Scan du support en cours ..." msgstr "Scan du support en cours ..." #: src/translate.c:327 msgid "Detail extraction mode expert" msgstr "Détail extraction mode expert" #: src/translate.c:328 msgid "Modification des champs" msgstr "Modification des champs" #: src/translate.c:329 msgid "" "\n" "Modification des champs\n" msgstr "" "\n" "Modification des champs\n" #: src/translate.c:337 src/translate.c:356 src/translate.c:377 #: src/translate.c:389 src/translate.c:400 src/translate.c:408 msgid " Visibilite " msgstr " Visibilité " #: src/translate.c:338 src/translate.c:357 src/translate.c:378 #: src/translate.c:390 src/translate.c:401 src/translate.c:409 msgid "Nom a gauche" msgstr "Nom à gauche" #: src/translate.c:339 src/translate.c:358 src/translate.c:379 #: src/translate.c:391 src/translate.c:402 src/translate.c:410 msgid "Nom au centre" msgstr "Nom au centre" #: src/translate.c:340 src/translate.c:359 src/translate.c:380 #: src/translate.c:392 src/translate.c:403 src/translate.c:411 msgid "Nom a droite" msgstr "Nom à droite" #: src/translate.c:341 msgid "DVD" msgstr "DVD" #: src/translate.c:346 src/translate.c:367 msgid "Wavpack" msgstr "Wavpack" #: src/translate.c:350 src/translate.c:371 msgid "Musepack" msgstr "Musepack" #: src/translate.c:360 msgid "CD" msgstr "CD" #: src/translate.c:375 msgid "Replaygain" msgstr "Replaygain" #: src/translate.c:381 msgid "CONVERSIONS" msgstr "CONVERSIONS" #: src/translate.c:382 msgid "Hertz" msgstr "Hertz" #: src/translate.c:383 msgid "New Hertz" msgstr "New Hertz" #: src/translate.c:384 msgid "Voie" msgstr "Voie" #: src/translate.c:385 msgid "New Voie" msgstr "New Voie" #: src/translate.c:386 msgid "Bits" msgstr "Bits" #: src/translate.c:387 msgid "New Bits" msgstr "New Bits" #: src/translate.c:393 msgid "WAV" msgstr "WAV" #: src/translate.c:396 msgid "New Bitrate" msgstr "New Bitrate" #: src/translate.c:397 msgid "Size" msgstr "Size" #: src/translate.c:404 msgid "MP3-OGG" msgstr "MP3-OGG" #: src/translate.c:412 msgid "TAGS" msgstr "TAGS" #: src/translate.c:413 msgid "Selection globale" msgstr "Sélection globale" #: src/translate.c:414 msgid "Deselection globale" msgstr "Désélection globale" #: src/translate.c:415 msgid "Retour" msgstr "Retour" #: src/translate.c:416 msgid "About X Convert File Audio" msgstr "About X Convert File Audio" #: src/translate.c:417 msgid "Author" msgstr "Author" #: src/translate.c:418 msgid "Licence" msgstr "Licence" #: src/translate.c:419 msgid " Informations " msgstr " Informations " #: src/translate.c:420 msgid " Machine " msgstr " Machine " #: src/translate.c:421 msgid "Ingenieurs du son\n" msgstr "Ingénieurs du son\n" #: src/translate.c:422 msgid "" "\n" "Graphisme\n" msgstr "" "\n" "Graphisme\n" #: src/translate.c:423 msgid "" "Traduction Anglaise\n" "\n" "\n" msgstr "" "Traduction Anglaise\n" "\n" "\n" #: src/translate.c:424 msgid "" "\n" "Traduction Allemande" msgstr "" "\n" "Traduction Allemande" #: src/translate.c:425 msgid "" "\n" "Codeur Xcfa" msgstr "" "\n" "Codeur Xcfa" #: src/translate.c:426 msgid "" "\n" "ElementSpeak pour Xcfa " msgstr "" "\n" "ElementSpeak pour Xcfa " #: src/translate.c:427 msgid "" "\n" "Codeur pages Web" msgstr "" "\n" "Codeur pages Web" #: src/translate.c:428 msgid "" "\n" "Traduction Italienne" msgstr "" "\n" "Traduction Italienne" #: src/translate.c:429 msgid "" "\n" "\n" "Pages a visiter\n" msgstr "" "\n" "\n" "Pages à visiter\n" #: src/translate.c:430 msgid "Linux On The Root" msgstr "Linux On The Root" #: src/translate.c:431 msgid "Frugalware" msgstr "Frugalware" #: src/translate.c:432 msgid "Road2Mayotte" msgstr "Road2Mayotte" #: src/translate.c:433 msgid "La Linuxerie" msgstr "La Linuxerie" #: src/translate.c:434 msgid "Audioptimisation by Dzef" msgstr "Audioptimisation by Dzef" #: src/translate.c:435 msgid "Tuxfamily" msgstr "Tuxfamily" #: src/translate.c:436 msgid "Framasoft" msgstr "Framasoft" #: src/translate.c:437 msgid "Ekd (EnKoDeur-Mixeur)" msgstr "Ekd (EnKoDeur-Mixeur)" #: src/translate.c:438 msgid "Bishop's page" msgstr "Bishop's page" #: src/translate.c:439 msgid "Je suis libre" msgstr "Je suis libre" #: src/translate.c:440 msgid "Debian Multimedia" msgstr "Debian Multimedia" #: src/translate.c:441 msgid "" "\n" "Forum\n" msgstr "" "\n" "Forum\n" #: src/translate.c:442 msgid "XCFA Vorstellung " msgstr "XCFA Vorstellung " #: src/translate.c:443 msgid "XCFA LinuxForen.de" msgstr "XCFA LinuxForen.de" #: src/translate.c:444 msgid "Forum Xcfa" msgstr "Forum Xcfa" #: src/translate.c:445 msgid "" "\n" "Documentation\n" msgstr "" "\n" "Documentation\n" #: src/translate.c:446 msgid "Wiki Xcfa par Shankarius" msgstr "Wiki Xcfa par Shankarius" #: src/translate.c:447 msgid "Doc Xcfa par Patachon" msgstr "Doc Xcfa par Patachon" #: src/translate.c:448 msgid "Ogg Vorbis explique par Shankarius" msgstr "Ogg Vorbis expliqué par Shankarius" #: src/translate.c:449 msgid "La normalisation expliquee par Dzef" msgstr "La normalisation expliquée par Dzef" #: src/translate.c:450 msgid "Xcfa sur Linux On The Root" msgstr "Xcfa sur Linux On The Root" #: src/translate.c:451 msgid " Contributions " msgstr " Contributions " #: src/translate.c:452 msgid " License " msgstr " Licence " #: src/translate.c:453 msgid "OK" msgstr "OK" #: src/web.c:173 src/web.c:234 msgid "PAS de navigateur present" msgstr "PAS de navigateur présent" #: src/web.c:174 msgid "L'acces au web est impossible car aucun navigateur" msgstr "L'accès au web est impossible car aucun navigateur" #: src/web.c:176 msgid "n'est present dans votre configuration." msgstr "n'est présent dans votre configuration." #: src/web.c:178 msgid "Veuillez installez un navigateur." msgstr "Veuillez installez un navigateur." #: src/web.c:188 msgid "Vous devez ouvrir l'acces internet" msgstr "Vous devez ouvrir l'accès internet" #: src/web.c:236 msgid " L'acces au web est impossible car aucun navigateur" msgstr " L'accès au web est impossible car aucun navigateur" #: src/web.c:238 msgid " n'est present dans votre configuration." msgstr " n'est présent dans votre configuration." #: src/web.c:240 msgid " Veuillez installez un navigateur." msgstr " Veuillez installez un navigateur." #: src/web.c:250 msgid "L'application est absente." msgstr "L'application est absente." #: src/web.c:251 msgid "Veuillez installer : " msgstr "Veuillez installer : " #: src/win_about.c:130 msgid " Xcfa sur le web" msgstr " Xcfa sur le web" #: src/win_about.c:180 msgid "" "\n" "Au tout debut:\n" "\n" "Serres Patrick, Hamann Regis, Fabien Gregis, @Dzef, @alteo_gange, \n" "@Leonux, @zarer, @Shankarius, @bishop, @Ludo, @Patachonf,\n" "... ;-)\n" "\n" "" msgstr "" "\n" "Au tout début:\n" "\n" "Serres Patrick, Hamann Regis, Fabien Gregis, @Dzef, @alteo_gange, \n" "@Leonux, @zarer, @Shankarius, @bishop, @Ludo, @Patachonf,\n" "... ;-)\n" "\n" "" #: src/win_scan.c:161 msgid "Waiting ..." msgstr "Waiting ..." #~ msgid "Quantification" #~ msgstr "Quantification" #~ msgid "Voie" #~ msgstr "Voie" #~ msgid " Frequence - Hertz " #~ msgstr " Fréquence - Hertz " #~ msgid "Cellule" #~ msgstr "Cellule" #~ msgid "Colonne" #~ msgstr "Colonne" #~ msgid " Cacher Xcfa " #~ msgstr " Cacher Xcfa " #~ msgid " Montrer Xcfa " #~ msgstr " Montrer Xcfa " #~ msgid " Quitter Xcfa " #~ msgstr " Quitter Xcfa " #~ msgid "" #~ "XCFA\n" #~ "Programme pour convertir les fichiers audio." #~ msgstr "" #~ "XCFA\n" #~ "Programme pour convertir les fichiers audio." xcfa-4.3.6/po/stamp-po0000644000175000017500000000001212224542443011462 00000000000000timestamp xcfa-4.3.6/po/Rules-quot0000644000175000017500000000337611400750706012020 00000000000000# Special Makefile rules for English message catalogs with quotation marks. DISTFILES.common.extra1 = quot.sed boldquot.sed en@quot.header en@boldquot.header insert-header.sin Rules-quot .SUFFIXES: .insert-header .po-update-en en@quot.po-create: $(MAKE) en@quot.po-update en@boldquot.po-create: $(MAKE) en@boldquot.po-update en@quot.po-update: en@quot.po-update-en en@boldquot.po-update: en@boldquot.po-update-en .insert-header.po-update-en: @lang=`echo $@ | sed -e 's/\.po-update-en$$//'`; \ if test "$(PACKAGE)" = "gettext"; then PATH=`pwd`/../src:$$PATH; GETTEXTLIBDIR=`cd $(top_srcdir)/src && pwd`; export GETTEXTLIBDIR; fi; \ tmpdir=`pwd`; \ echo "$$lang:"; \ ll=`echo $$lang | sed -e 's/@.*//'`; \ LC_ALL=C; export LC_ALL; \ cd $(srcdir); \ if $(MSGINIT) -i $(DOMAIN).pot --no-translator -l $$ll -o - 2>/dev/null | sed -f $$tmpdir/$$lang.insert-header | $(MSGCONV) -t UTF-8 | $(MSGFILTER) sed -f `echo $$lang | sed -e 's/.*@//'`.sed 2>/dev/null > $$tmpdir/$$lang.new.po; then \ if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ rm -f $$tmpdir/$$lang.new.po; \ else \ if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ :; \ else \ echo "creation of $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ exit 1; \ fi; \ fi; \ else \ echo "creation of $$lang.po failed!" 1>&2; \ rm -f $$tmpdir/$$lang.new.po; \ fi en@quot.insert-header: insert-header.sin sed -e '/^#/d' -e 's/HEADER/en@quot.header/g' $(srcdir)/insert-header.sin > en@quot.insert-header en@boldquot.insert-header: insert-header.sin sed -e '/^#/d' -e 's/HEADER/en@boldquot.header/g' $(srcdir)/insert-header.sin > en@boldquot.insert-header mostlyclean: mostlyclean-quot mostlyclean-quot: rm -f *.insert-header xcfa-4.3.6/po/en.gmo0000644000175000017500000014044712224542443011126 00000000000000$Y,(55855g6{66 666 67,7I7 "808L8$S8&x8(88889/95L99!9999:/:F:_:$y:"::*: ; ; ;";A;];{;$;;;.;/)<Y<+v<*<<<<=+=@=Z=r=======>>.>C>[>s>>>(> > >>>??:?Q?V?/\?"? ????? @,@2@9@$Y@~@@ @@!@ @@@@ AA%A +A5A;ARA[A'zAAA AA AAB4BPBlBuB }BBBB(BBBC+ C*9CdC jCtCCD(D=D>EPQE,E8E8FZAF/FBF$G74G"lG$G"GGUmHYH;I5YIHIII;J LJ XJbJkJ}J J JJJ J J J J J JJK K $K 1K%>K-dKKK$K!KLL#5LYLyLLLLL"LM)M=M QMHrMIMHNGNNLNJNJ.O,yO/OO!O P"P @PaP8RS&S,T+0T'\TT T(T TTHT/BUrUUUUUUUU V V#2VVVkV VV*VVZVBWSWmW WWWWWWW rXXXTXIX CYQY3dY6YYYYZ9.ZhZlZZ*ZZ6ZZ[[[-[3[ 7[A[h][[[[.[0\O\f\\\ \\\\'\] ]#]@]Q](W]!]]/]]^ ^?^\^"n^^^9^^ _ _ -_9_*M_x__P__`?,`)l````````a,aEa[ata'aa0aabb b'6bG^b"bb bb%bc0cHc\c tc cc cccc c d "d0d5d m[mam'umm mm-m%mnn $n/n5n;n$@n&en"n&n-nEoJoeo|o o o o!o o oo p p &p 1p xTx"Yx<|xx xxxxxxyy7yKy`y{yy4yy+z61zhzozzzz zzz#z!{0{J{`{8s{ {+{{8{.|4|L|T|'h|'|4|0|7} V}c};e}}};}:}7:~\r~8yĀ!ۀ 5Pl H Vd%k') #? ]~Ѓ4Ni"Ä ۄ 0K f"Ѕ% &/VrɆ-B Q _ mzƇ ܇ ( 0 >KRfz׈ ":Mflt#؉߉$ %4 LVj p{ '֊  "-F_t (ԋ!;()d $;;KZ';Ύ9 ID-:%3"Q"t"zG5[}9ّ/<C: " +8A JW ` m z  "˓7&; Yzϔ.D^~8ѕ9 8D7}<::-(h-ϗ<uW"`$$ ͛ $ ?MD_,ќ'6FXk ȝ %#HA  ɞ՞ E3 yNF <J3]+ؠޠ7@D_+f;ӡ Z$*&ɢ, AOW'\ ţգ!ܣ )(Ri ۤ,.HP Ye+yUڥ0H)Y%Ҧ֦ 3Id(v -٧ J'r  ̨ *H LV[k ~  ũ ϩ ٩#"7 O[ lx Ȫ Ԫ ު  0=Y"y+$$%zJ'Ŭ?-,2*_5ҭ֭)2Lj0}O #, L Z {   ȯ үܯ '  ( 5BZn q!{ "ް 1o@0'#+37F~ $&" %0-V:׳ * G R] t  Ҵv/z Ե ߵ  !&#Ei Ƕܶ  0> CPkҷ6<AFX7] 0 %#")(Lu {ȹ"B4wк "1;m|.ϻ ӻ߻/L ]k,޼(6T[o ҽ! 8M1^ 8;  %-9g-|)7Կ ;Vh;x:7w+I/*P\/x8&>);D^Z a_$&Mgc 'n&;.[yTl^U X]}r;|?C 1~b78GWZJO-A <RB2KIp|Y Vs#UF#d"g '6c!FM`S<%m]I+wQ> 0}PD(Lm AO6AFx|GZCf5@"b[hEu"j0T isBtevKz9}f)a{,R `wQ7_%Y]ao7^ r)vC*<2?V=u:!\Hp+_j$l3-1qtx.e1i?.qu2GzPcE4m=`L#5bVi=4[~o0zHyhW8d$e%-3:@k(@jkdMJpn> XoJ!v BQ:*f4~9/TRlWD,X3U6E'q{S 5NOrH({\Nt9YnkhsNL Kg y,S Pages a visiter konqueror : newTab iceweasel : -new-window -new-tab Pour installer les programmes externes requis, veuillez utiliser l'installateur de votre distribution Gnu/Linux. Codeur Xcfa Codeur pages Web Documentation ElementSpeak pour Xcfa Forum Graphisme Modification des champs Traduction Allemande Traduction Italienne Au tout debut: Serres Patrick, Hamann Regis, Fabien Gregis, @Dzef, @alteo_gange, @Leonux, @zarer, @Shankarius, @bishop, @Ludo, @Patachonf, ... ;-) [Piste: %d] et dont le nom sera: --- ATTENTION: Il faut installer %s ATTENTION: Il faut installer %s%s ATTENTION: Il faut installer %s%s%s Deselection globale Deselection horizontale Deselection verticale Deselection verticale Deselection verticale L'acces au web est impossible car aucun navigateur Selection ALBUM Selection Expert horizontale Selection Expert verticale Selection NETTOYER Selection PISTE Selection horizontale Selection verticale Selection verticale Selection verticale Veuillez installez un navigateur. Vous ne devriez pas utiliser XCFA sous ROOT ! n'est present dans votre configuration. VBR / ABR 8 bits 8000 Hertz Lame (fichier mp3): ... les paquets: ? ... les paquets: deb ... les paquets: fpm ... les paquets: pkg.tar.xz ... les paquets: rpm ... les paquets: tgz Choix du peripherique / Lecture du CD Choix du peripherique / Lecture du DVD Dossier de stockage Dossier provisoire des conversions Jouer une musique en fin de tache Options AacPlusEnc Options FAAC Options FLAC Options LAME Options MAC Options MUSEPACK Options OGGENC Options WAVPACK Priorite systeme Web AacPlusEnc Web Faac Web Flac Web Lame Web Mac Web Musepack Web Oggenc Web Wavpack Web cdparanoia *.m3u et xspf: Annee: Genre: Piste: A program to send desktop notifications AAC+ encoder AacplusEnc Annee: Application externes Applications externes Arrangement des titres du CD Audio Codeur freeware CD CD Cherche des renseignements sur les formats mp3 Cherche les informations d'un dvd Conteneur Contributions Conversion wav : flac Conversion wav : mp3 Conversion wav : ogg Creation d'un fichier unique DVD Debit Decode ATSC A/52 audio streams Decoupage de fichiers sans decodage Extracteur cd audio Faac Fichiers Flac Forte compression au format wave General Genre: Informations Lecteur et extracteur License MPEG-4 AAC decodeur Mac Machine Mode Mode flux (streaming) Modif.: Modification des tags Freedb Monkey's Audio Console Front End : APE Mono: Qualite en kbit/s Mp3 Mp3-Ogg MusePack commandline utilities Musepack Navigateurs / Lecteurs audio Normaliseur de fichier mp3 Normaliseur de fichier ogg Normaliseur de fichier wav Oggenc Piste: Pochette Preferences Qualite Qualite VBR / Debit ABR Read CD and get CDDB discid information Split Stereo: Qualite en kbit/s Tags Transformation universelle de fichiers son WAVPACK Hybrid Lossless Audio Compressor Wav Wavpack $ xcfa -verbose%a [ %a="Artist" ] %b [ %b="Album" ] %Tl - Tetsumaki lower Transforme la chaine en minuscule sauf le premier caractere. Dans le champs 'Titre' depuis [ Modification des tags FreeDB ], le ou les caracteres devant etre conserves doivent etre precedes par le caractere %%d) Lecture PASS 2/2 'dvd+rw-mediainfo' pour identifier le(s)(Click Droit = Menu) / Ajustement COLLECTIF maximal du volume(Click Droit = Menu) / Ajustement INDIVIDUEL maximal du volume(Click Droit = Menu) / Ce fichier sera dirige apres traitement vers la corbeille(Click Droit = Menu) / Choix de la frequence(Click Droit = Menu) / Choix du codage en nombre de bits(Click Droit = Menu) / Choix du nombre de pistes (voies)(Click Droit = Menu) / Cliquez ici pour envoyer ce fichier apres traitement a la corbeille(Click Droit = Menu) / En attente de selection.(Click Droit = Menu) / En attente de selection. Le fichier existe.(Click Droit = Menu) / En selection.(Click Droit = Menu) / En selection. Le fichier existe.(Click Droit = Menu) / Mode album.(Click Droit = Menu) / Mode effacer.(Click Droit = Menu) / Mode piste.(Click Droit = Menu) / PEAK-ALBUM: Amplification maximale du volume pour un groupe de fichiers en respectant les ecarts de niveau entre chacun d'eux.(Click Droit = Menu) / PEAK: Amplification maximale du volume pour chaque de fichier.(Click Droit = Menu) / Possibilite d'ajustement INDIVIDUEL ou COLLECTIF maximal du volume(Click Droit = Menu) / ReplayGain: En attente de selection.(Click Droit = Menu) / Selection avec options expert.(Click Droit = Menu) / Selection avec options expert. Le fichier existe.---MENU TRASH-----------------SELECTION VERTICALE-------> Deja %d fois 2 lectures du segment %d! Abandon :/ 0 (Rapide)00h00m00s1 piste1 (fast / rapide)16 bits2 pistes22000 Hertz24 bits32 bits32000 Hertz4 pistes44056 Hertz44100 Hertz48000 Hertz6 pistes6 (very slow / tres lent)64 bits8 (Lent)88200 Hertz96000 Hertz AacplusEnc (fichier .aac): Au moins deux selections colonne Wav Choix niveau dBFS: Creation Cue cd Destination des conversions Destination des fichiers Eject Exportation de Extraction cd-audio avec: Faac (fichier .m4a): Flac (fichier flac): Importer Informations Installation Mac (fichier ape): MusePack (fichier mpc): Nettoyer Normalise: Normaliser Oggenc (fichier ogg): Options experts, definies par l'utilisateur - faac (wav -> m4a) Options experts, definies par l'utilisateur - flac (wav -> flac) Options experts, definies par l'utilisateur - lame (wav -> mp3) Options experts, definies par l'utilisateur - mac (wav -> ape) Options experts, definies par l'utilisateur - musepack (wav -> mpc) Options experts, definies par l'utilisateur - oggenc (wav -> ogg) Options experts, definies par l'utilisateur - wavpack (wav -> wv) Parametrage CDDB: [ Nom du serveur ] Parametrage PROXY: [ serveur ] [ port ] Serveur Vers 2CH: Sub / Ambiance Visibilite Votre systeme utilise ... WavPack (fichier wv): %a - artiste %b - titre de l'album %c - numero de la piste %d - titre de la chanson %e - annee %g - genre %f - creation d'un fichier *.m3u et *.xspf %na - no accent %u - remplacement de caracteres: %u(AB=C) %u( =_) %Tl - Tetsumaki lower%a - artiste %b - titre de l'album %c - numero de la piste %d - titre de la chanson %e - annee %g - genre %na - no accent %Tl - Tetsumaki lower %u - remplacement de caracteres: %u(AB=C) %u( =_)0%s Copie fichier: %d%%%s Restitution fichier: %d%%%s Traitement Mplayer: %d%%%s Traitement Sox: %d%%Trash files ...AuthorCe fichier ne peut etre extrait !DiscIdFramasoft Generation d'un rapport pour: cdparanoia mode expert multi passesGestion des tags, titres et fichiers cueHomePageImport images webIngenieurs du son Lecteurs audioLicenceManPageManPage ManPage ManPage NavigateurScan du support en cours ...Site officielSite officiel TexteTitre CDTotal fichiers: %d, Selections: %dTraduction Anglaise Utilisez le glisser / deplacer - Effacer une image avec Ctrl + ClickWeb Info Wiki Wiki mp3 WikiWiki Wiki []string option interneIndiquez ici le dossier sur votre systeme qui servira de lieu de stockage provisoire pendant les differentes conversions. Album:Artiste:Commentaire:Le fichier LogExpertMode.txt sera cree dans le dossier des extractionsPret pour l'import d'un fichier CUE, WAV, FLAC, OGG, MP3, APE, WMATitre:parametres: Xcfa sur le web= Vous avez probablement trouve un bug dans XCFA = Adressage memoire invalide A proposABR / CBR / VBR / VBR-NEWAJouter de nouvelles images.ATTENTION: Pas assez de place dans le dossier temporaire.AacAbout X Convert File AudioActionAdapte l'echelle a la taille de la fenetreAideAjout plage: Click bouton centre / Zoom: Ctrl+ScrollAjouter du texte editable.AlbumAlbum:All Files (*.*)AnneeApeAppliquerAppliquer les modificationsApres une lecture de CD et un ajout d'etiquette, ce menu permet la mise en forme des titres, auteurs ...Arret par l'utilisateurArtisteArtiste:Aucun fichier de musique associe au cue-file !Aucun fichier de musique associe dans le dossierAucun fichier trouve !Audioptimisation by DzefAugmentation de l'echelle.Augmente l'agrandissementBishop's pageBitrateBitsBonne qualite de compressionCAPACITE DOSSIER TEMPORAIRE TROP FAIBLECDCONVERSIONSCe fichier appartient a XCFAChapitre: [%02d]ChoixChoix d'un chemin de stockage des imagesChoix d'un dossier de destinationChoix d'un fichierChoix d'un fichier CUE WAV FLAC OGG MP3 APE WMAChoix d'un fichier musicalChoix d'un lieu de sauvegardeChoix d'une nouvelle destinationChoix d'une nouvelle police.Choix de fichiersChoix de fichiers FLAC MPC OGG MP3Choix de fichiers MP3/OGGChoix de fichiers WAVChoix parmis les differentes bases de donnees pour le CD.Click droit: acces popupCommentaireCommentaire:CompressionCompression maximumControle du contenu des fichiers extraits Conversion vers %s canaux.Conversion vers 2 canaux.Conversion vers 2 canaux. Un second click activera la conversion vers %s canaux.Conversion(s) vers la sourceCouldn't find CDCreation d'un fichier cue unique depuis une lecture du cd audioCreation d'un fichier unique au format: Creation fichier cue uniquementCritere de recherche absent !!DVDDebian MultimediaDebitDeplierDeselection globaleDetail extraction mode expertDiminution de l'echelle.Doc Xcfa par PatachonDuree de la plage activeERREUR datas proxyERREUR: Lieu de stockage non autorise !Echelle a 100%.Echelle compatible avec la taille de la fenetre.Ecriture du fichier cueEffacerEffacer l'imageEkd (EnKoDeur-Mixeur)Emplacement de sauvegarde des fichiers.En attente de selection. Un click activera la conversion vers 2 canaux.Enregistrer la page au format png.ErreurErreur SOXErreur de choix de fichierErreur de donnees dans le fichier CUEErreur de lecture !Erreur depuis MPLAYER !Erreur depuis SOX !Extra encode processingExtraction mode expert PASS 1/2 Extraction mode expert PASS 2/2 ExtraireFREQUENCEFichierFichier de correctionFichier structure DVDFichier videFichier_complet_%02d_%sFix (scan)RmsFlacFormatForum XcfaFramasoftFrequenceFrugalwareGenreHertzIl faut installer le programme: lsdvdIl ne restera qu'a ajuster les plages pourImage au dernier planImage au dessusImage au premier planImage en dessousImportation des images depuis le Web.Importation du titre du CD.Importer des images pour la pochetteIndex de debutIndex de finIndex de lectureJe suis libreL'acces au web est impossible car aucun navigateurL'application est absente.La LinuxerieLa liaison internet est absenteLa normalisation expliquee par DzefLa solution est d'importer le fichier deLe DVD est absent du lecteur.Le fichier CUE sera enregistre vers 'Destination des fichiers'.Le fichier ne contient aucune donnee !!!Le package 'dvd+rw-tools' est absentLe programme SOX de votre distributionLe programme XCFA_INSTALL_ALL ecrit en Perl vous sera utile en ligne de commande pour une installation des programmes complementaire.Le programme externe d'extraction est absent.Le resultat du Split sera dirige vers 'Destination des fichiers'.LectureLecture de 5 secondes apres le marqueur de debutLecture de 5 secondes avant le marqueur de finLes types de fichiers acceptes sont: WAV FLAC MP3 OGG APE WMA CUELinux On The RootM4aMAX FICHIERS ATTEINT = %dMODE ADMINISTRATEURMP3-OGGMPEG-4 File Format (MP4) - Extension .m4aMPLAYER deja en actionMPLAYER est deja utilise !!Mauvais type de fichierMeilleure qualite de compressionMenu: Click droit / Ajout plage: Click bouton centre / Zoom: Ctrl+ScrollMix (scan)Rms/albumModeMode hybrideMode normalMode rapide de compressionModification des champsModifiez la chaine de recherche etMono forceMp3MpcMusepackMusique en attente.Musique en ecoute.New BitrateNew BitsNew HertzNew VoieNiceNo Audio CDNomNom (sans extention) du fichier a sauvegarder.Nom a droiteNom a gaucheNom au centreNom de fichier absent !!Nom de fichier unique absentNonNormaliseNormalise: En attente de selection.Nouveau bitrateNumNumeroOKOggOgg Vorbis explique par ShankariusOkOuiOutilsOuvre un fichierPACKAGE dvd+rw-tools ABSENTPAS de lecteur audio presentPAS de navigateur presentPEAK-ALBUM: Amplification maximale du volume pour un groupe de fichiers en respectant les ecarts de niveau entre chacun d'eux.PEAK: Amplification maximale du volume pour chaque de fichier.PISTEPackage NOT FOUND !Package checkmp3 (mp3check) NOT FOUND !PaquetPar defautParametres par defautPas assez de place dans le dossier temporairePas de fichier WAV dans le cue-file !PausePeakPeak/albumPistePlagePlayPlease, install package [ cdda2wav ]Please, install package [ cdparanoia ]Please, install package [ icedax ]Please, install packages [ cd-discid ]Please, install packages [ icedax, cdda2wav ]Pour evaluer les templates, vous devez activer une lecture de cdaudioPour resoudre ce probleme:Production fichier CueQUANTIFICATIONQualite 0Qualite 1Qualite 10 (Meilleure qualite)Qualite 10 [ Meilleure qualite ]Qualite 2Qualite 3Qualite 3 [ Defaut ]Qualite 4Qualite 5Qualite 6Qualite 7Qualite 8Qualite 9Qualite -1 (Moins bonne qualite)Qualite -1 [ Moins bonne qualite ]QuantificationQuitterRMS-ALBUM: Ajustement du volume moyen pour un groupe de fichiers en respectant les ecarts de niveau moyen entre chacun d'eux.RMS: Ajustement du volume moyen de chaque de fichier.Reduit l'agrandissementRemet l'echelle a 100%ReplayGainReplaygainReplierRetourRetourner horizontalementRetourner verticalementRoad2MayotteSCANSaisissez ici un critere de recherche d'images.Saisissez un nom de fichier sans extentionSaisissez une chaine de recherche etSauvegarde au format PNGSauvegarde aux formats PDF et PostScriptSauvegarde le fichierScan ...Scan en cours ...Select type: --Selecteur precedantSelecteur suivantSelection globaleSelectionnez un autre fichier.Signature MD5SizeSonSox et Mplayer absentsSox et Mplayer sont absents de votreSplitStatusStereoSuppression pendant la lecture impossibleSupprimer l'image de la listeSupprimer l'image en selectionSupprimer la plage activeSuprimer tous les marqueurs pour les remplacer par un marqueur uniqueTAGSTailleTaux de compressionTempsTemps inferieur a 5 secondes entre marqueur et curseur !Texte gras.Texte italique.TimeTitreTitre [%02d ** ]Titre [%02d]Titre:Titre_%02d_Chapitre_%02d_audio_%02d_%sTitresTotal selection%s: %d, 2ch: %dTransport Stream (ADTS) - Extension .aacTrashTuxfamilyTypeV0 (meilleure qualite)V0 [ meilleure qualite ]V4 [ defaut ]V9 (moins bonne qualite)V9 [ moins bonne qualite ]Valeur d'origineVeuillez deselectionner des PeakGroup.Veuillez installer : Veuillez installer checkmp3 ou mp3check pour la prise en compte des fichiers mp3Veuillez installez un lecteur audio.Veuillez installez un navigateur.Veuillez l'installer car j'ai besoin deVeuillez les installer pour pouvoir continuer.Veuillez recommencer.Veuillez renseigner les champs du proxyVeuillez saisir un nom pour le fichier uniqueVeuillez selectionner un fichier de type WAV FLAC MP3 OGG APEVisibilite des champsVoieVous devez ouvrir l'acces internetVous pouvez activer XCFA en ligne de commande avec: WAVWaiting ...WavWavPWavpackWiki Xcfa par ShankariusXCFA LinuxForen.deXCFA Vorstellung XCFA: Conversions WAV TO WAVXCFA: Extraction CDXCFA: Extraction DVDXCFA: Modification bitrateXCFA: Traitement fichiersXcfa sur Linux On The Root[Erreur du segment numero: %d] %d) Lecture PASS 1/2 [Recherche des fichiers images]a generer une erreur pendant la conversion.braindead : extreme high quality : 232 .. 278 kbit/sbuttoncd-discid NOT FOUNDcdda2wav / icedaxcdda2wav NOT FOUNDcdda2wav and icedax NOT FOUNDcdparanoiacdparanoia NOT FOUNDcdparanoia mode expertcdparanoia mode expert multi passesconfiguration.correspondant aux plages.dans le module Split.de votre systeme !definit le serveur a contacter pour les recherches titredu cue-filegenerer un nouveau cue-file ou des decoupesicedax NOT FOUNDinsane : extreme high quality : 232 .. 268 kbit/slabellecteur(s) de cd / dvd.lecturelsdvd est absent !musique qui sera reconnu et pre-decoupen'est present dans votre configuration.pour consulter le type d'erreur renvoye par mplayer.pour consulter le type d'erreur renvoye par sox.radio : medium (MP3) quality : 112 .. 152 kbit/srecommencez.sstandard : high quality (dflt) : 142 .. 184 kbit/sstereo left/rightstereo mid/sidetelephone: lowest quality : 32 .. 48 kbit/sthumb : low quality/internet : 58 .. 86 kbit/sxtreme : extreme high quality : 168 .. 212 kbit/sProject-Id-Version: xcfa 4.2.8 Report-Msgid-Bugs-To: xcfa@tuxfamily.org POT-Creation-Date: 2013-10-07 16:28+0200 PO-Revision-Date: 2010-08-21 18:45+0100 Last-Translator: Gerry Butler Language-Team: English Language: en MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Useful links konqueror : newTab iceweasel : -new-window -new-tab To install the required external software, please use the package manager of your Gnu/Linux distribution. XCFA programmer Webmasters Documentation ElementSpeak for XCFA·· Forum Graphics Modify fields German translation Italian translation In the beginning: Serres Patrick, Hamann Regis, Fabien Gregis, @Dzef, @alteo_gange, @Leonux, @zarer, @Shankarius, @bishop, @Ludo, @Patachonf, ... ;-) [Track: %d] Named: --- WARNING : you need to install %s WARNING : you need to install %s%s WARNING : you need to install %s%s%s Deselect all Horizontally deselect Vertically deselect Vertically deselect Vertically deselect No Web access: no web browser ALBUM selection Horizontal expert select Vertical expert select ERASE selection TRACK selection Horizontally select Vertically select Vertically select Vertically select Please install a web browser You should not use XCFA under ROOT ! found in your system VBR / ABR 8 bits 8000 Hertz Lame (mp3 file): ... Packets: ? ... Packets: deb ... Packets: fpm ... Packets: pkg.tar.xz ... Packets: rpm ... Packets: tgz CD player DVD player / Import files File storage Conversions temporary folder Play music at the end of task AacPlusEnc Options FAAC Options FLAC Options LAME Options MAC Options MUSEPACK Options OGGENC Options WAVPACK Options System priority AacPlusEnc Faac Flac Lame Mac Musepack Oggenc Wavpack Web cdparanoia m3u and xspf: Year :Genre :Track: A program to send desktop notifications AAC+ encoder AacplusEnc Year: External programs External programs Arrangement of CD titles MPEG-4 and MPEG-2 AAC encoder CD CD Check validity of mp3s Read the contents of a DVD Container Contributions Create wav to flac Create mp3 audio files Convert wav : ogg Creating a single file DVD Bitrate Decode ATSC A/52 audio streams Split mp3/ogg without decoding InCrEdible Digital Audio eXtractor Faac Files Flac High compression for waveform files General Genre: Informations Video and audio player Licence MPEG-4 AAC decoder Mac Computer Mode Streaming Edit: Freedb tags modification Monkey's Audio Console Front End : APE Mono: Quality en kbit/s Mp3 Mp3-Ogg MusePack commandline utilities Musepack Browsers / Audio player Lossless mp3 normaliser ogg file normaliser wav file normaliser Oggenc Track: CD Cover Preferences QualityVBR Quality / ABR rate Read CD and get CDDB discid information Split Stereo: Quality in kbit/s Tags Sound eXchange, the Swiss Army knife of audio manipulation Wavpack Hybrid Lossless Audio Compressor Wav Wavpack $ xcfa -verbose%a [ %a="Artist" ] %b [ %b="Album" ] TI% - Tetsumaki lower Converts the string to lowercase except for the first character In the fields 'Title' since [Changing FreeDB tag] the character or characters to be retained must be preceded bycharacter %%d) Read PASS 2/2 'Dvd + rw-mediainfo' to identify the(Click Droit = Menu) / COLLECTIVE maximum volume adjustment(Click Droit = Menu) / INDIVIDUAL maximum volume adjustment(Right Click = Menu) / This file will be sent to the trash after processing(Right Click = Menu) / Select frequency(Right Click = Menu) / Encoding selection in number of bits(Right Click = Menu) / Select number of tracks (channels)(Click Droit = Menu) / Click here to send the processed file to the trash(Right click = Menu) / Waiting for selection.(Right click = Menu) / Waiting for Selection. File exists.(Right click = Menu) / Selected files(Right click = Menu) / Selected files. File exists.(Click Droit = Menu) / Album mode.(Click Droit = Menu) / Erase mode.(Click Droit = Menu) / Track mode.(Right click = Menu) / Maximum volume amplification of a group of files keeping the level difference between each of them(Right click = Menu) / PEAK: Maximum volume amplification for each file(Right click = Menu) / Possibilities for individual adaptation or maximum collection volume(Click Droit = Menu) / ReplayGain: Waiting for selection.(Right click = Menu) / Selection - expert mode.(Right click = Menu) / Selection - expert mode. File exists.---TRASH MENU-----------------VERTICAL SELECTION--------> Segment %d already read two %d times! Abandon :/ 0 (Fast)00h00m00s1 track1 (fast)16 bits2 track22000 Hertz24 bits32 bits32000 Hertz4 track44056 Hertz44100 Hertz48000 Hertz6 track6 (very slow)64 bits8 (Slow)88200 Hertz96000 Hertz AacplusEnc (file .aac): Make at least two selections in the Wav column dBFS level: CD cue file creation Export converted files: Save location: Eject Export Rip audio-CD with: Faac (file .m4a): Flac (flac file): Import Informations Installation Mac (ape file): MusePack (mpc file): Clear Normalise: Normalise Oggenc (ogg file): User-defined expert options - faac (wav -> m4a) User-defined expert options - flac (wav -> flac) User-defined expert options - lame (wav -> mp3) User-defined expert options - mac (wav -> ape) User-defined expert options - musepack (wav -> mpc) User-defined expert options - oggenc (wav -> ogg) User-defined expert options - wavpack (wav -> wv) Setting up CDDB: [ Server name ] Proxy settings: [ server ] [ port ] Server 2CH: Sub / Ambiance Visibility Your system uses ... WavPack (wv file): %a - artist %b - album title %c - track number %d - track title %e - year %g - genre %f - create an m3u and xspf file %na - no accent %u - replace special characters: %u(AB=C) %u( =_) %Tl - Tetsumaki lower%a - artist %b - album title %c - track number %d - track title %e - year %g - genre %na - no accent %Tl - Tetsumaki lower %u - replacing characters: %u(AB=C) %u( =_)0%s Copy file: %d%%%s Return file: %d%%%s Use Mplayer: %d%%%s Use Sox: %d%%Trash files ...AuthorThis file can not be ripped !DiscIdFramasoft Generation of a report for: cdparanoia expert mode multi passTags, titles and cue files managementHome PageImport web imagesSound engineers Audio playerLicenseMan PageMan Page Man Page Man Page browsersMedia scan in progress...Official websiteOfficial website TextTitle CDTotal files: %d, Selected: %dEnglish translation Use drag / drop - delete an image with Ctrl +ClickInfo Lame wiki mp3 wiki WikiWiki Wiki []internal string optionEnter the location of the temporary folder to be used by XCFA Album:Artist:Comment:LogExpertMode.txt file will be created in the folder extractionsReady for imports and a CUE file, WAV, FLAC, OGG, MP3, APE, WMATitle:parameters: XCFA on the web= You've probably found a bug in XCFA = Invalid memory address AboutABR / CBR / VBR / VBR-NEWAdd new images.WARNING: Not enough space available in the temp folder.AacAbout X Convert File AudioActionAdjusts the scale to the size of the windowHelpAdding track: Click the center button / Zoom: Ctrl+ScrollAdd text editable.AlbumAlbum:All Files (*.*)YearApeApplyApply the changesAfter reading a CD and add a label, this menu allows the formatting of titles, authors ...Stopped by userArtistArtist:No music file associated with the cue-fileNo music file in the folder associatedNo file found !Audioptimisation by DzefIncrease in scale.Increasing expansionBishop's pageBitrateBitsHigh quality (Better compression ratio)TEMPORARY CAPACITY TOO LOWCDCONVERSIONSThis file belongs XCFAChapter: [%02d]ChoiceSelect location for image storageSelect a destination folderSelect a fileSelect CUE WAV FLAC OGG MP3 APE WMA filesSelecting a music fileSelect a backup locationSelect a new destinationChoosing a new font.Select filesSelect FLAC MPC OGG MP3 filesSelect MP3/OGG fileSelect a WAV fileChoice among different databases for the CD.Right click: access popupCommentComment:CompressionMaximum compressionControl the content of the extracted files Conversion to %s channels.Conversion to 2 channels.Conversion to 2 channels. A second click will activate the conversion to %s channels.Conversion(s) to sourceCouldn't find CDCreate a single cue file from an audio-CDCreate a single file in the format: Create cue fileSearch criteria away !!DVDDebian MultimediaBitrateUnfoldClear allRip details - expert modeReduction in the scale.XCFA doc. by PatachonLength of the active beachERROR datas proxyERROR : storage location not permitted !Scale 100%.Scale compatible with the size of the window.Write cue fileClearClear imageEkd (EnKoDeur-Mixeur)Backup location files.Waiting for selection. A click will activate the conversion to 2 channels.Save Page png.ErrorSOX ErrorError file selectData errors in the CUE fileMisreading !Error since MPLAYER !Error since SOX !Extra encode processingRipping expert mode PASS 1/2 Ripping expert mode PASS 2/2 RipFREQUENCYFileCorrection fileDVD file structureEmpty fileCompleted_file_%02d_%sFix (scan)RmsFlacFormatForum XcfaFramasoftFrequencyFrugalwareGenreHertzYou must install the program: lsdvdWe will just adjust to the beachesImage to the backgroundImage aboveForeground imageImage belowImporting images from the Web.Import the CD title.Import images for the coverIndex startEnd indexIndex readingJe suis libreNo Web access: no web browserApplication is missing.La LinuxerieA web connection is missingNormalisation explained by DzefThe solution is to import the fileThe DVD player is absent.CUE file to be recorded 'Destination file'.The file contains no data !!!The package 'imagemagick' is missingThe SOX program on your distributionThe program XCFA_INSTALL_ALL written in Perl will be useful on the command line for installation of supplementary programsThe external ripping program is missingThe result of the Split will be heading for 'Destination file'.PlayReading 5 seconds after the beginning markerReading of 5 seconds before the end markerFile types accepted are: WAV FLAC MP3 OGG APE WMA CUELinux On The RootM4aMAX FILES REACHED = %dADMINISTRATOR MODEMP3-OGGMPEG-4 File Format (MP4) - Extension .m4aMPLAYER already in actionMPLAYER is already in use !!Wrong type of fileVery high quality (Best compression but slowest)Menu: right click / Adding track: Click the center button / Zoom: Ctrl+ScrollMix (scan)Rms/albumModeHybrid modeStandardFast (Faster encode and decode)Modify fieldsModify the search parameters andForce monoMp3MpcMusepackMusic paused.Playing music.New BitratNew BitsNew HertzNew VoiceNiceNo Audio CDNameName (without extension) file is saved.Name to rightName to leftName centredFile name not found !!File name not foundNoNormaliseNormalise: Waiting for selection.New bitrateNumNumberOKOggOgg Vorbis explained by ShankariusOkayYesToolsOpen a filePACKAGE dvd+rw-tools is missingNO audio player presentNo web browserPEAK-ALBUM: Maximum volume amplification for a group of files according to the deviations in level between themPEAK: Maximum volume amplification of each file.TRACKPackage NOT FOUND !Package checkmp3 (mp3check) NOT FOUND !PacketsDefaultDefault parametersWARNING: Not enough space available in the temp folder.No WAV file in the cue-filePausePeakPeak/albumTrackPlagePlayPlease, install package [ cdda2wav ]Please, install package [ cdparanoia ]Please, install package [ icedax ]Please, install package [ cd-discid ]Please, install packages [ icedax, cdda2wav ]To assess the templates, you must enable a reading cdaudioTo solve this problem :Generate CUE fileQUANTIFICATIONQuality 0Quality 1Quality 10 (Best quality)Quality 10 [ Best quality ]Quality 2Quality 3Quality 3 [ Default ]Quality 4Quality 5Quality 6Quality 7Quality 8Quality 9Quality -1 (Poor quality)Quality -1 [ worst quality ]QuantificationQuitRMS-ALBUM: Adjusting the average volume for a group of files according to the average level of deviation between them.RMS: Average volume amplification of each file.Reduced expansionGives the scale at 100%ReplayGainReplaygainFoldReturnFlip HorizontalFlip VerticalRoad2MayotteSCANEnter here a search of images.Enter a file name without extensionEnter a search string andSaving as PNGSaving to PDF and PostScriptSaving the fileScan ...Scan in progress ...Select type: -Previous selectorFollowing selectorSelect allSelect another file.MD5 signatureSizeChannel modeSox and Mplayer is missingSox and Mplayer is missingSplitStatusStereoDeleting not during playbackRemove image from the listDelete the image selectionDelete the active rangeWipe all markers and replace them with a single markerTAGSSizeCompression levelTimeTime of less than 5 seconds between marker and cursor !Bold text.Italic text.TimeTitleTitle [%02d ** ]Title [%02d]Title:Title_%02d_Chapter_%02d_audio_%02d_%sTitlsTotal selection%s: %d, 2ch: %dTransport Stream (ADTS) - Extension .aacTrashTuxfamilyTypeV0·····(Best quality)V0 [ best quality ]V4 [ default ]V9·····(Poor quality)V9 [ worst quality ]Original valuePlease deselect PeakGroup.Please install : Please install or checkmp3 mp3check for consideration of mp3 filesPlease install an audio playerPlease install a web browserPlease install it and resumePlease install it and resumePlease start again.Please complete all fields proxyPlease enter a file namePlease select a file type of MP3 WAV OGG FLAC APEVisible fieldsVoiceYou need to enable web accessYou can enable XCFA command line with: WAVWaiting ...WavWavPWavpackXCFA wiki by ShankariusXCFA LinuxForen.deXCFA Vorstellung XCFA: Conversions WAV TO WAVXCFA: CD RippingXCFA: DVD ripXCFA: Bitrate changeXCFA: Processing filesXCFA on Linux On The Root[Error on segment #%d] %d) Playing PASS 1/2 [Search images files]has generated an error during conversionbraindead : extreme high quality : 232 .. 278 kbit/sbuttoncd-discid NOT FOUNDcdda2wav / icedaxcdda2wav NOT FOUNDcdda2wav and icedax NOT FOUNDcdparanoiacdparanoia NOT FOUNDcdparanoia expert modecdparanoia expert mode multi passconfiguration.corresponding to the beaches.Split in the module.on your system !Sets the server to be contacted for title lookupsof cue-filegenerate a new cue-file or cutsicedax NOT FOUNDinsane : extreme high quality : 232 .. 268 kbit/slabelreader of cd / dvd.Playlsdvd is missing !music that will be recognized and pre-cuttingfound in your systemto see the type of error returned by mplayer.to see the type of error returned by sox.radio : medium (MP3) quality : 112 .. 152 kbit/sstart againsstandard : high quality (dflt) : 142 .. 184 kbit/sstereo left/rightstereo mid/sidePhone: (Lowest quality) : 32 .. 48 kbit/sthumb : low quality/internet : 58 .. 86 kbit/sxtreme : extreme high quality : 168 .. 212 kbit/sxcfa-4.3.6/po/es.po0000644000175000017500000021351212224542443010761 00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Free Software Foundation, Inc. # This file is distributed under the same license as the PACKAGE package. # Claude BULIN , 2011. msgid "" msgstr "" "Project-Id-Version: xcfa 4.2.8\n" "Report-Msgid-Bugs-To: xcfa@tuxfamily.org\n" "POT-Creation-Date: 2013-10-07 16:28+0200\n" "PO-Revision-Date: 2011-09-06 22:12+0200\n" "Last-Translator: Claude BULIN \n" "Language-Team: Spain\n" "Language: Spain\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Generator: Virtaal 0.6.1\n" #: src/cd_audio.c:812 src/dvd.c:680 src/dvd.c:1324 msgid "MPLAYER deja en action" msgstr "MPLAYER ya está en acción" #: src/cd_audio.c:813 src/dvd.c:681 src/dvd.c:1325 msgid "MPLAYER est deja utilise !!" msgstr "MPLAYER ya está en uso!" #: src/cd_audio.c:1224 src/cd_audio.c:1230 src/dvd.c:867 src/file.c:2829 msgid "(Click Droit = Menu) / En attente de selection." msgstr "(Clic derecho = Menú) / espera para la selección." #: src/cd_audio.c:1227 src/file.c:2826 msgid "Le programme externe d'extraction est absent." msgstr "La extracción de un programa externo está ausente." #: src/cd_audio.c:1233 src/file.c:2832 msgid "(Click Droit = Menu) / En attente de selection. Le fichier existe." msgstr "(Clic derecho = Menú) / espera para la selección. Existe el archivo." #: src/cd_audio.c:1236 src/file.c:2835 msgid "(Click Droit = Menu) / En selection." msgstr "(Clic derecho = Menú) / selección." #: src/cd_audio.c:1239 src/file.c:2841 msgid "(Click Droit = Menu) / Selection avec options expert." msgstr "(Clic derecho = Menú) / Selección con el experto en opciones." #: src/cd_audio.c:1242 src/file.c:2838 msgid "(Click Droit = Menu) / En selection. Le fichier existe." msgstr "(Clic derecho = Menú) / selección. Existe el archivo." #: src/cd_audio.c:1245 src/file.c:2844 msgid "" "(Click Droit = Menu) / Selection avec options expert. Le fichier existe." msgstr "" "(Clic derecho = Menú) / Selección con el experto en opciones. Existe el " "archivo." #: src/cd_audio.c:1254 msgid "" "(Click Droit = Menu) / Possibilite d'ajustement INDIVIDUEL ou COLLECTIF " "maximal du volume" msgstr "" "(Clic derecho = Menú) / Posibilidad de ajuste individual o GROUP volumen " "máximo " #: src/cd_audio.c:1259 msgid "(Click Droit = Menu) / Ajustement INDIVIDUEL maximal du volume" msgstr "(Clic derecho = Menú) / ajuste de volumen individual máximo" #: src/cd_audio.c:1262 msgid "(Click Droit = Menu) / Ajustement COLLECTIF maximal du volume" msgstr "(Clic derecho = Menú) / Colecciones máximo volumen ajustable" #: src/cd_audio.c:1502 src/dvd.c:1099 src/file.c:3139 src/translate.c:331 #: src/translate.c:342 src/translate.c:361 msgid "Play" msgstr "Juego" #: src/cd_audio.c:1543 src/file.c:3204 src/translate.c:343 src/translate.c:364 msgid "Wav" msgstr "Wav" #: src/cd_audio.c:1564 src/file.c:3223 src/translate.c:344 src/translate.c:365 msgid "Flac" msgstr "Flac" #: src/cd_audio.c:1584 src/file.c:3242 src/translate.c:345 src/translate.c:366 msgid "Ape" msgstr "Ape" #: src/cd_audio.c:1604 src/file.c:3261 msgid "WavP" msgstr "WavP" #: src/cd_audio.c:1624 src/file.c:3280 src/translate.c:347 src/translate.c:368 msgid "Ogg" msgstr "Ogg" #: src/cd_audio.c:1645 src/file.c:3299 src/translate.c:348 src/translate.c:369 msgid "M4a" msgstr "M4a" #: src/cd_audio.c:1666 src/file.c:3318 src/translate.c:349 src/translate.c:370 msgid "Aac" msgstr "Aac" #: src/cd_audio.c:1686 src/file.c:3337 msgid "Mpc" msgstr "Mpc" #: src/cd_audio.c:1706 src/file.c:3356 src/translate.c:351 src/translate.c:372 msgid "Mp3" msgstr "Mp3" #: src/cd_audio.c:1727 src/translate.c:352 msgid "Num" msgstr "Num" #: src/cd_audio.c:1742 src/translate.c:353 src/translate.c:373 #: src/translate.c:398 src/translate.c:406 msgid "Time" msgstr "Tiempo" #: src/cd_audio.c:1757 src/dvd.c:1167 src/file.c:3392 src/translate.c:335 #: src/translate.c:354 src/translate.c:374 msgid "Normalise" msgstr "Normaliza" #: src/cd_audio.c:1782 src/dvd.c:1187 src/file.c:3434 src/file_mp3ogg.c:958 #: src/file_tags.c:1191 src/file_wav.c:824 src/prg_init.c:609 #: src/translate.c:336 src/translate.c:355 src/translate.c:376 #: src/translate.c:388 src/translate.c:399 src/translate.c:407 msgid "Nom" msgstr "Nom" #: src/cd_audio.c:2511 msgid " Parametrage CDDB: [ Nom du serveur ]" msgstr " Configuración de CDDB: [nombre del servidor]" #: src/cd_audio.c:2520 msgid " Parametrage PROXY: [ serveur ] [ port ]" msgstr " Instalación del Servidor Proxy: [servidor] [puerto]" #: src/cd_audio.c:2530 src/translate.c:95 msgid " Serveur " msgstr " servidor " #: src/cd_audio_extract.c:673 #, c-format msgid "" "[Erreur du segment numero: %d]\n" "%d) Lecture PASS 1/2\n" msgstr "" "[Error número de segmento: %d]\n" "%d) lectura PASS 1/2\n" #: src/cd_audio_extract.c:680 #, c-format msgid "" "--> Deja %d fois 2 lectures du segment %d!\n" " Abandon :/\n" msgstr "" "--> Deja %d fois 2 lectures du segment %d!\n" " Abandon :/\n" #: src/cd_audio_extract.c:700 #, c-format msgid "%d) Lecture PASS 2/2\n" msgstr "%d) Lectura PASS 2/2\n" #: src/cd_audio_extract.c:780 #, c-format msgid "" "\n" "[Piste: %d]\n" msgstr "" "\n" "[Pista: %d]\n" #: src/cd_audio_extract.c:784 msgid "Extraction mode expert PASS 1/2\n" msgstr "Modo de extracción de expertos pasada 1/2\n" #: src/cd_audio_extract.c:795 msgid "Extraction mode expert PASS 2/2\n" msgstr "Experto en la extracción de modo de pase de 2/2\n" #: src/cd_audio_extract.c:803 msgid "Controle du contenu des fichiers extraits\n" msgstr "Controlar el contenido de los archivos extraídos\n" #: src/cd_audio_extract.c:1710 src/cd_audio_extract.c:1712 msgid "XCFA: Extraction CD" msgstr "XCFA: Extracción de CD" #: src/cd_audio_extract.c:1710 src/dvd_extract.c:412 src/file_action.c:183 #: src/file_mp3ogg_conv.c:329 src/file_wav_conv.c:343 msgid "Ok" msgstr "Ok" #: src/cd_audio_extract.c:1712 src/dvd_extract.c:414 src/file_action.c:185 #: src/file_mp3ogg_conv.c:331 src/file_wav_conv.c:345 msgid "Arret par l'utilisateur" msgstr "Pase por el usuario" #: src/cd_audio_extract.c:1983 msgid "Nom de fichier unique absent" msgstr "Nombre de archivo único que falta" #: src/cd_audio_extract.c:1984 msgid "Veuillez saisir un nom pour le fichier unique" msgstr "Por favor, introduzca un nombre para el archivo único" #: src/cd_audio_toc.c:156 msgid "cdda2wav and icedax NOT FOUND" msgstr "cdda2wav y icedax NO SE ENCUENTRA" #: src/cd_audio_toc.c:157 msgid "Please, install packages [ icedax, cdda2wav ]" msgstr "Por favor, instalar paquetes [ icedax, cdda2wav ]" #: src/cd_audio_toc.c:163 msgid "icedax NOT FOUND" msgstr "icedax NOT FOUND" #: src/cd_audio_toc.c:164 msgid "Please, install package [ icedax ]" msgstr "Please, install package [ icedax ]" #: src/cd_audio_toc.c:170 msgid "cdda2wav NOT FOUND" msgstr "cdda2wav NOT FOUND" #: src/cd_audio_toc.c:171 msgid "Please, install package [ cdda2wav ]" msgstr "Please, install package [ cdda2wav ]" #: src/cd_audio_toc.c:180 msgid "cdparanoia NOT FOUND" msgstr "cdparanoia NOT FOUND" #: src/cd_audio_toc.c:181 msgid "Please, install package [ cdparanoia ]" msgstr "Please, install package [ cdparanoia ]" #: src/cd_audio_toc.c:188 msgid "cd-discid NOT FOUND" msgstr "cd-discid NOT FOUND" #: src/cd_audio_toc.c:189 msgid "Please, install packages [ cd-discid ]" msgstr "Please, install packages [ cd-discid ]" #: src/cd_audio_toc.c:203 msgid "ERREUR datas proxy" msgstr "ERROR datas del proxy" #: src/cd_audio_toc.c:204 msgid "Veuillez renseigner les champs du proxy" msgstr "Por favor, complete todos los campos del proxy" #: src/cd_curl.c:734 src/web.c:187 msgid "La liaison internet est absente" msgstr "La conexión a Internet está ausente" #: src/cd_curl.c:1204 msgid "Couldn't find CD" msgstr "Couldn't find CD" #: src/cd_curl.c:1267 msgid "No Audio CD" msgstr "No Audio CD" #: src/dvd.c:859 msgid "" "(Click Droit = Menu) / PEAK-ALBUM: Amplification maximale du volume pour un " "groupe de fichiers en respectant les ecarts de niveau entre chacun d'eux." msgstr "" "(Clic = derecho = Menú) / PEAK-álbum: amplificación del volumen máximo de un " "grupo de archivos de acuerdo con la diferencia de nivel entre cada uno de " "ellos." #: src/dvd.c:862 msgid "" "(Click Droit = Menu) / PEAK: Amplification maximale du volume pour chaque de " "fichier." msgstr "" "(Clic derecho = Menú) / PEAK: La amplificación de volumen máximo para cada " "uno de archivo." #: src/dvd.c:900 src/dvd.c:920 msgid "En attente de selection. Un click activera la conversion vers 2 canaux." msgstr "" "De espera para la selección. Con un clic se activa la conversión de 2 " "canales." #: src/dvd.c:912 msgid "Conversion vers 2 canaux." msgstr "La conversión a 2 canales." #: src/dvd.c:924 #, c-format msgid "Conversion vers %s canaux." msgstr "La conversión a %s canales." #: src/dvd.c:929 #, c-format msgid "" "Conversion vers 2 canaux. Un second click activera la conversion vers %s " "canaux." msgstr "" "Conversion vers 2 canaux. Un second click activera la conversion vers %s " "canaux." #: src/dvd.c:944 msgid "Musique en ecoute." msgstr "Música escuchando" #: src/dvd.c:947 msgid "Musique en attente." msgstr "Música en espera." #: src/dvd.c:962 #, c-format msgid "Total selection%s: %d, 2ch: %d" msgstr "Total selection%s: %d, 2ch: %d" #: src/dvd.c:963 msgid "s" msgstr "s" #: src/dvd.c:969 msgid "Ce fichier ne peut etre extrait !" msgstr "Este archivo se puede extraer !" #: src/dvd.c:1087 msgid "Titres" msgstr "Titres" #: src/dvd.c:1111 src/file.c:3375 src/file_mp3ogg.c:943 src/file_tags.c:1175 #: src/translate.c:332 msgid "Temps" msgstr "Temps" #: src/dvd.c:1123 src/translate.c:333 msgid "Format" msgstr "Format" #: src/dvd.c:1135 src/translate.c:334 msgid "Choix" msgstr "Choix" #: src/dvd.c:1249 msgid "Fichier structure DVD" msgstr "DVD estructura de archivos" #: src/dvd.c:1299 msgid "Le DVD est absent du lecteur." msgstr "El reproductor de DVD está ausente." #: src/dvd.c:1335 msgid "Scan ..." msgstr "Scan ..." #: src/dvd.c:1385 msgid "lsdvd est absent !" msgstr "lsdvd está ausente !" #: src/dvd.c:1386 msgid "Il faut installer le programme: lsdvd" msgstr "Debe instalar el programa: lsdvd" #: src/dvd_extract.c:412 src/dvd_extract.c:414 msgid "XCFA: Extraction DVD" msgstr "XCFA: Extraction DVD" #: src/dvd_read.c:263 #, c-format msgid "Titre [%02d ** ]" msgstr "Titre [%02d ** ]" #: src/dvd_read.c:266 #, c-format msgid "Titre [%02d]" msgstr "Titre [%02d]" #: src/dvd_read.c:310 #, c-format msgid "Fichier_complet_%02d_%s" msgstr "Fichier_complet_%02d_%s" #: src/dvd_read.c:355 #, c-format msgid "Chapitre: [%02d]" msgstr "Chapitre: [%02d]" #: src/dvd_read.c:401 #, c-format msgid "Titre_%02d_Chapitre_%02d_audio_%02d_%s" msgstr "Titre_%02d_Chapitre_%02d_audio_%02d_%s" #: src/file_action.c:183 src/file_action.c:185 msgid "XCFA: Traitement fichiers" msgstr "XCFA: Traitement fichiers" #: src/file_analyze.c:731 msgid "Package checkmp3 (mp3check) NOT FOUND !" msgstr "Package checkmp3 (mp3check) NOT FOUND !" #: src/file_analyze.c:732 msgid "" "Veuillez installer checkmp3 ou mp3check pour\n" "la prise en compte des fichiers mp3" msgstr "" "Veuillez installer checkmp3 ou mp3check pour\n" "la prise en compte des fichiers mp3" #: src/file.c:328 #, c-format msgid "Total fichiers: %d, Selections: %d" msgstr "Total fichiers: %d, Selections: %d" #: src/file.c:442 msgid "CAPACITE DOSSIER TEMPORAIRE TROP FAIBLE" msgstr "CAPACIDAD archivo temporal DEMASIADO PEQUEÑO" #: src/file.c:443 msgid "Pas assez de place dans le dossier temporaire" msgstr "No hay suficiente espacio en la carpeta temporal" #: src/file.c:449 msgid "Veuillez deselectionner des PeakGroup." msgstr "Por favor, desactive PeakGroup." #: src/file.c:1433 msgid "Conversion(s) vers la source" msgstr "Conversión (s) a la fuente" #: src/file.c:1434 msgid "Choix d'une nouvelle destination" msgstr "La elección de un nuevo destino" #: src/file.c:1504 msgid "Select type: --" msgstr "Select type: --" #: src/file.c:1589 msgid "Peak/album" msgstr "Peak/albu" #: src/file.c:1590 msgid "Peak" msgstr "Peak" #: src/file.c:1591 msgid "Mix (scan)Rms/album" msgstr "Mix (scan)Rms/album" #: src/file.c:1592 msgid "Fix (scan)Rms" msgstr "Fix (scan)Rm" #: src/file.c:2853 #, c-format msgid "MAX FICHIERS ATTEINT = %d" msgstr "MAX FICHIERS ATTEINT = %d" #: src/file.c:2863 msgid "Normalise: En attente de selection." msgstr "Normaliza: En espera de la selección." #: src/file.c:2867 msgid "ATTENTION: Pas assez de place dans le dossier temporaire." msgstr "ADVERTENCIA: No suficiente espacio en la carpeta temporal." #: src/file.c:2870 msgid "" "PEAK-ALBUM: Amplification maximale du volume pour un groupe de fichiers en " "respectant les ecarts de niveau entre chacun d'eux." msgstr "" "PICO-álbum: La amplificación del volumen máximo de un grupo de archivos de " "acuerdo con la diferencia de nivel entre cada uno de ellos." #: src/file.c:2874 msgid "PEAK: Amplification maximale du volume pour chaque de fichier." msgstr "PEAK: La amplificación de volumen máximo para cada archivo." #: src/file.c:2877 msgid "" "RMS-ALBUM: Ajustement du volume moyen pour un groupe de fichiers en " "respectant les ecarts de niveau moyen entre chacun d'eux." msgstr "" "PICO-álbum: La amplificación del volumen máximo de un grupo de archivos de " "acuerdo con la diferencia de nivel entre cada uno de ellos." #: src/file.c:2880 msgid "RMS: Ajustement du volume moyen de chaque de fichier." msgstr "RMS: Ajuste del volumen medio de cada archivo." #: src/file.c:2894 msgid "(Click Droit = Menu) / ReplayGain: En attente de selection." msgstr "(Menú = clic derecho) / ReplayGain: En espera de la selección." #: src/file.c:2897 msgid "(Click Droit = Menu) / Mode piste." msgstr "(Click Droit = Menu) / Mode piste" #: src/file.c:2900 msgid "(Click Droit = Menu) / Mode album." msgstr "(Click Droit = Menu) / Mode album." #: src/file.c:2903 msgid "(Click Droit = Menu) / Mode effacer." msgstr "(Click Droit = Menu) / Mode effacer." #: src/file.c:3015 msgid "" "(Click Droit = Menu) / Cliquez ici pour envoyer ce fichier apres traitement " "a la corbeille" msgstr "" "(Click Droit = Menu) / Haga clic aquí para enviar este archivo a la papelera " "después del tratamiento" #: src/file.c:3018 msgid "" "(Click Droit = Menu) / Ce fichier sera dirige apres traitement vers la " "corbeille" msgstr "" "(Click Droit = Menu) / Este archivo será dirigido a la basura después del " "tratamiento" #: src/file.c:3152 src/file_trash.c:359 src/translate.c:362 msgid "Trash" msgstr "Trash" #: src/file.c:3172 src/file_mp3ogg.c:883 src/file_tags.c:1160 #: src/translate.c:363 src/translate.c:394 src/translate.c:405 msgid "Type" msgstr "Type" #: src/file.c:3411 msgid "ReplayGain" msgstr "ReplayGain" #: src/file_conv.c:2835 src/file_mp3ogg_conv.c:336 msgid "Erreur depuis MPLAYER !" msgstr "Error, ya que MPlayer !" #: src/file_conv.c:2836 src/file_conv.c:2848 src/file_mp3ogg_conv.c:337 #: src/file_mp3ogg_conv.c:349 msgid "Vous pouvez activer XCFA en ligne de commande avec: " msgstr "Usted puede habilitar la línea de comandos con XCFA" #: src/file_conv.c:2838 src/file_conv.c:2850 src/file_mp3ogg_conv.c:339 #: src/file_mp3ogg_conv.c:351 msgid "$ xcfa -verbose" msgstr "$ xcfa -verbose" #: src/file_conv.c:2840 src/file_mp3ogg_conv.c:341 msgid "pour consulter le type d'erreur renvoye par mplayer." msgstr "para ver el tipo de error devuelto por mplayer" #: src/file_conv.c:2847 src/file_mp3ogg_conv.c:348 msgid "Erreur depuis SOX !" msgstr "Error, ya que SOX !" #: src/file_conv.c:2852 src/file_mp3ogg_conv.c:353 msgid "pour consulter le type d'erreur renvoye par sox." msgstr "para ver el tipo de error devuelto por la ley SOX." #: src/file_mp3ogg.c:668 msgid "Click droit: acces popup" msgstr "Clic derecho: el acceso emergente" #: src/file_mp3ogg.c:899 src/translate.c:395 msgid "Bitrate" msgstr "Bitrate" #: src/file_mp3ogg.c:915 msgid "Nouveau bitrate" msgstr "Nouveau bitrate" #: src/file_mp3ogg.c:929 msgid "Taille" msgstr "Taille" #: src/file_mp3ogg_conv.c:329 src/file_mp3ogg_conv.c:331 msgid "XCFA: Modification bitrate" msgstr "XCFA: bitrate Cambio" #: src/file_mp3ogg_conv.c:432 #, c-format msgid " ATTENTION: Il faut installer %s%s%s" msgstr " ATTENTION: Il faut installer %s%s%s" #: src/file_mp3ogg_conv.c:440 #, c-format msgid " ATTENTION: Il faut installer %s%s" msgstr " ATTENTION: Il faut installer %s%s" #: src/file_mp3ogg_conv.c:447 #, c-format msgid " ATTENTION: Il faut installer %s" msgstr " ATTENTION: Il faut installer %s" #: src/file_mp3ogg_conv.c:454 msgid "Package NOT FOUND !" msgstr "Package NOT FOUND !" #: src/fileselect.c:105 msgid "Choix d'un dossier de destination" msgstr "Elegir una carpeta de destino" #: src/fileselect.c:106 msgid "Choix d'un fichier CUE WAV FLAC OGG MP3 APE WMA" msgstr "La elección de un archivo CUE WAV OGG APE FLAC MP3 WMA" #: src/fileselect.c:107 msgid "Choix d'un fichier musical" msgstr "Selección de un archivo de música" #: src/fileselect.c:108 msgid "Choix d'un fichier" msgstr "Al seleccionar un archivo" #: src/fileselect.c:109 msgid "Choix de fichiers" msgstr "Selección de archivos" #: src/fileselect.c:110 msgid "Choix de fichiers WAV" msgstr "Elección de los archivos WAV" #: src/fileselect.c:111 msgid "Choix de fichiers MP3/OGG" msgstr "Seleccione Archivo MP3/OGG" #: src/fileselect.c:112 msgid "Choix de fichiers FLAC MPC OGG MP3" msgstr "Seleccione Archivo MPC OGG FLAC MP3" #: src/fileselect.c:113 msgid "Importer des images pour la pochette" msgstr "Importación de imágenes para la portada" #: src/fileselect.c:114 msgid "Choix d'un chemin de stockage des images" msgstr "La elección de un camino de almacenamiento de imágenes" #: src/fileselect.c:115 msgid "Choix d'un lieu de sauvegarde" msgstr "La elección de un lugar de almacenamiento" #: src/fileselect.c:472 src/fileselect.c:595 src/fileselect.c:605 #: src/fileselect.c:628 msgid "All Files (*.*)" msgstr "All Files (*.*)" #: src/file_trash.c:360 msgid "Trash files ..." msgstr "Trash files ..." #: src/file_wav.c:483 msgid "(Click Droit = Menu) / Choix de la frequence" msgstr "(Click Droit = Menu) / Elección de la frecuencia" #: src/file_wav.c:486 msgid "(Click Droit = Menu) / Choix du nombre de pistes (voies)" msgstr "(Click Droit = Menu) / La elección del número de pistas (tracks)" #: src/file_wav.c:489 msgid "(Click Droit = Menu) / Choix du codage en nombre de bits" msgstr "(Click Droit = Menu) / Elección del número de bits de codificación" #: src/file_wav.c:733 msgid "Frequence" msgstr "frecuencia" #: src/file_wav.c:749 msgid "FREQUENCE" msgstr "FRECUENCIA" #: src/file_wav.c:763 msgid "Piste" msgstr "Piste" #: src/file_wav.c:779 msgid "PISTE" msgstr "PISTE" #: src/file_wav.c:793 msgid "Quantification" msgstr "Quantification" #: src/file_wav.c:809 msgid "QUANTIFICATION" msgstr "QUANTIFICATION" #: src/file_wav_conv.c:261 #, c-format msgid "%s Copie fichier: %d%%" msgstr "%s copia de archivos: %d%%" #: src/file_wav_conv.c:271 #, c-format msgid "%s Restitution fichier: %d%%" msgstr "%s Volver archivo: %d%%" #: src/file_wav_conv.c:281 #, c-format msgid "%s Traitement Sox: %d%%" msgstr "%s Traitement Sox: %d%%" #: src/file_wav_conv.c:298 #, c-format msgid "%s Traitement Mplayer: %d%%" msgstr "%s Traitement Mplayer: %d%%" #: src/file_wav_conv.c:343 src/file_wav_conv.c:345 msgid "XCFA: Conversions WAV TO WAV" msgstr "XCFA: Conversions WAV TO WAV" #: src/main.c:398 msgid "= Adressage memoire invalide\n" msgstr "= Adressage memoire invalide\n" #: src/main.c:401 msgid "= Vous avez probablement trouve un bug dans XCFA\n" msgstr "= Vous avez probablement trouve un bug dans XCFA\n" #: src/main.c:786 msgid "MODE ADMINISTRATEUR" msgstr "MODE ADMINISTRATEUR" #: src/main.c:788 msgid " Vous ne devriez pas utiliser " msgstr " Usted no debe usar " #: src/main.c:790 msgid " XCFA sous ROOT !" msgstr " XCFA como root !" #: src/options.c:171 msgid "ERREUR: Lieu de stockage non autorise !" msgstr "ERROR: Lugar de almacenamiento no autorizado !" #: src/options.c:172 msgid "Veuillez recommencer." msgstr "Por favor, inténtalo de nuevo." #: src/options_cd.c:122 msgid "Pour evaluer les templates, vous devez activer une lecture de cdaudio" msgstr "Para evaluar las plantillas, debe habilitar un cdaudio lectura" #: src/options_faac.c:96 msgid "Transport Stream (ADTS) - Extension .aac" msgstr "Transport Stream (ADTS) - Extension .aac" #: src/options_faac.c:97 msgid "MPEG-4 File Format (MP4) - Extension .m4a" msgstr "MPEG-4 File Format (MP4) - Extension .m4a" #: src/options_flac.c:67 msgid "0 (Rapide)" msgstr "0 (Rapide)" #: src/options_flac.c:75 msgid "8 (Lent)" msgstr "8 (Lent)" #: src/options_mp3.c:279 msgid "V0 (meilleure qualite)" msgstr "V0 (meilleure qualite)" #: src/options_mp3.c:288 msgid "V9 (moins bonne qualite)" msgstr "V9 (moins bonne qualite)" #: src/options_musepack.c:70 msgid "telephone: lowest quality : 32 .. 48 kbit/s" msgstr "telephone: lowest quality : 32 .. 48 kbit/s" #: src/options_musepack.c:71 msgid "thumb : low quality/internet : 58 .. 86 kbit/s" msgstr "thumb : low quality/internet : 58 .. 86 kbit/s" #: src/options_musepack.c:72 msgid "radio : medium (MP3) quality : 112 .. 152 kbit/s" msgstr "radio : medium (MP3) quality : 112 .. 152 kbit/s" #: src/options_musepack.c:73 msgid "standard : high quality (dflt) : 142 .. 184 kbit/s" msgstr "standard : high quality (dflt) : 142 .. 184 kbit/s" #: src/options_musepack.c:74 msgid "xtreme : extreme high quality : 168 .. 212 kbit/s" msgstr "xtreme : extreme high quality : 168 .. 212 kbit/" #: src/options_musepack.c:75 msgid "insane : extreme high quality : 232 .. 268 kbit/s" msgstr "insane : extreme high quality : 232 .. 268 kbit/s" #: src/options_musepack.c:76 msgid "braindead : extreme high quality : 232 .. 278 kbit/s" msgstr "braindead : extreme high quality : 232 .. 278 kbit/s" #: src/options_oggenc.c:138 msgid "Qualite -1 (Moins bonne qualite)" msgstr "Qualite -1 (Moins bonne qualite)" #: src/options_oggenc.c:139 src/popup.c:1219 msgid "Qualite 0" msgstr "Qualite 0" #: src/options_oggenc.c:140 src/popup.c:1219 msgid "Qualite 1" msgstr "Qualite 1" #: src/options_oggenc.c:141 src/popup.c:1219 msgid "Qualite 2" msgstr "Qualite 2" #: src/options_oggenc.c:142 msgid "Qualite 3" msgstr "Qualite 3" #: src/options_oggenc.c:143 src/popup.c:1220 msgid "Qualite 4" msgstr "Qualite 4" #: src/options_oggenc.c:144 src/popup.c:1220 msgid "Qualite 5" msgstr "Qualite 5" #: src/options_oggenc.c:145 src/popup.c:1220 msgid "Qualite 6" msgstr "Qualite 6" #: src/options_oggenc.c:146 src/popup.c:1220 msgid "Qualite 7" msgstr "Qualite 7" #: src/options_oggenc.c:147 src/popup.c:1221 msgid "Qualite 8" msgstr "Qualite 8" #: src/options_oggenc.c:148 src/popup.c:1221 msgid "Qualite 9" msgstr "Qualite 9" #: src/options_oggenc.c:149 msgid "Qualite 10 (Meilleure qualite)" msgstr "Qualite 10 (Meilleure qualite)" #: src/options_oggenc.c:179 src/options_wavpack.c:181 #: src/options_wavpack.c:204 src/options_wavpack.c:227 src/popup.c:1223 msgid "Oui" msgstr "Oui" #: src/options_oggenc.c:180 src/options_wavpack.c:148 #: src/options_wavpack.c:180 src/options_wavpack.c:203 #: src/options_wavpack.c:226 src/options_wavpack.c:247 src/popup.c:1223 msgid "Non" msgstr "Non" #: src/options_oggenc.c:201 msgid "Mono force" msgstr "Mono force" #: src/options_oggenc.c:202 msgid "Stereo" msgstr "Stereo" #: src/options_wavpack.c:100 msgid "Mode normal" msgstr "Mode normal" #: src/options_wavpack.c:101 msgid "Mode rapide de compression" msgstr "Mode rapide de compression" #: src/options_wavpack.c:102 msgid "Bonne qualite de compression" msgstr "Mode rapide de compression" #: src/options_wavpack.c:103 msgid "Meilleure qualite de compression" msgstr "Meilleure qualite de compression" #: src/options_wavpack.c:129 msgid "stereo left/right" msgstr "stereo left/right" #: src/options_wavpack.c:130 msgid "stereo mid/side" msgstr "stereo mid/side" #: src/options_wavpack.c:248 msgid "1 (fast / rapide)" msgstr "1 (fast / rapide)" #: src/options_wavpack.c:253 msgid "6 (very slow / tres lent)" msgstr "6 (very slow / tres lent)" #: src/play_file.c:108 msgid "PAS de lecteur audio present" msgstr "PAS de lecteur audio present" #: src/play_file.c:109 msgid "Veuillez installez un lecteur audio." msgstr "Veuillez installez un lecteur audio." #: src/poche_dir.c:430 msgid "" "Utilisez le glisser / deplacer - Effacer une image avec Ctrl + " "Click" msgstr "" "Utilisez le glisser / deplacer - Effacer une image avec Ctrl + " "Click" #: src/poche_save.c:111 msgid "Nom de fichier absent !!" msgstr "Nom de fichier absent !!" #: src/poche_save.c:112 src/poche_web.c:353 src/poche_web.c:375 msgid "Pour resoudre ce probleme:" msgstr "Pour resoudre ce probleme:" #: src/poche_save.c:115 msgid "Saisissez un nom de fichier sans extention" msgstr "Saisissez un nom de fichier sans extention" #: src/poche_save.c:126 msgid "Sauvegarde aux formats PDF et PostScript" msgstr "Sauvegarde aux formats PDF et PostScript" #: src/poche_save.c:151 msgid "Sauvegarde au format PNG" msgstr "Sauvegarde au format PNG" #: src/poche_web.c:352 msgid "Aucun fichier trouve !" msgstr "Aucun fichier trouve !" #: src/poche_web.c:356 msgid "Modifiez la chaine de recherche et" msgstr "Modifiez la chaine de recherche et" #: src/poche_web.c:358 src/poche_web.c:380 msgid "recommencez." msgstr "recommencez." #: src/poche_web.c:374 msgid "Critere de recherche absent !!" msgstr "Critere de recherche absent !!" #: src/poche_web.c:378 msgid "Saisissez une chaine de recherche et" msgstr "Saisissez une chaine de recherche et" #: src/poche_web.c:387 msgid "[Recherche des fichiers images]" msgstr "[Recherche des fichiers images]" #: src/popup.c:81 src/popup.c:100 msgid " Deselection globale" msgstr " Deselection globale" #: src/popup.c:82 src/popup.c:101 src/popup.c:162 msgid " Deselection verticale" msgstr " Deselection verticale" #: src/popup.c:83 src/popup.c:102 msgid " Deselection horizontale" msgstr " Deselection horizontale" #: src/popup.c:84 src/popup.c:87 src/popup.c:103 src/popup.c:106 #: src/popup.c:120 src/popup.c:133 src/popup.c:147 msgid " ---" msgstr " ---" #: src/popup.c:85 src/popup.c:104 msgid " Selection verticale" msgstr " Selection verticale" #: src/popup.c:86 src/popup.c:105 msgid " Selection Expert verticale" msgstr " Selection Expert verticale" #: src/popup.c:88 src/popup.c:107 msgid " Selection horizontale" msgstr " Selection horizontale" #: src/popup.c:89 src/popup.c:108 msgid " Selection Expert horizontale " msgstr " Selection Expert horizontale " #: src/popup.c:119 src/popup.c:132 msgid " Deselection verticale " msgstr " Deselection verticale " #: src/popup.c:121 src/popup.c:134 msgid " Selection verticale " msgstr " Selection verticale " #: src/popup.c:145 msgid "---SELECTION VERTICALE-----" msgstr "---SELECTION VERTICALE-----" #: src/popup.c:146 msgid " Deselection verticale " msgstr " Deselection verticale " #: src/popup.c:148 msgid " Selection PISTE " msgstr " Selection PISTE " #: src/popup.c:149 msgid " Selection ALBUM " msgstr " Selection ALBUM " #: src/popup.c:150 msgid " Selection NETTOYER " msgstr " Selection NETTOYER " #: src/popup.c:161 msgid "---MENU TRASH--------------" msgstr "---MENU TRASH--------------" #: src/popup.c:163 msgid " Selection verticale " msgstr " Selection verticale " #: src/popup.c:489 msgid "1 piste" msgstr "1 piste" #: src/popup.c:492 msgid "2 pistes" msgstr "2 pistes" #: src/popup.c:495 msgid "4 pistes" msgstr "4 pistes" #: src/popup.c:498 msgid "6 pistes" msgstr "6 pistes" #: src/popup.c:504 src/popup.c:619 src/popup.c:716 msgid "Valeur d'origine" msgstr "Valeur d'origine" #: src/popup.c:592 msgid " 8000 Hertz" msgstr " 8000 Hertz" #: src/popup.c:595 msgid "22000 Hertz" msgstr "22000 Hertz" #: src/popup.c:598 msgid "32000 Hertz" msgstr "32000 Hertz" #: src/popup.c:601 msgid "44056 Hertz" msgstr "44056 Hertz" #: src/popup.c:604 msgid "44100 Hertz" msgstr "44100 Hertz" #: src/popup.c:607 msgid "48000 Hertz" msgstr "48000 Hertz" #: src/popup.c:610 msgid "88200 Hertz" msgstr "88200 Hertz" #: src/popup.c:613 msgid "96000 Hertz" msgstr "96000 Hertz" #: src/popup.c:698 msgid " 8 bits" msgstr " 8 bits" #: src/popup.c:701 msgid "16 bits" msgstr "16 bits" #: src/popup.c:704 msgid "24 bits" msgstr "24 bits" #: src/popup.c:707 msgid "32 bits" msgstr "32 bits" #: src/popup.c:710 msgid "64 bits" msgstr "64 bits" #: src/popup.c:765 msgid "Selecteur suivant" msgstr "Selecteur suivant" #: src/popup.c:769 msgid "Selecteur precedant" msgstr "Selecteur precedant" #: src/popup.c:777 msgid "Supprimer la plage active" msgstr "Supprimer la plage active" #: src/popup.c:849 msgid "Retourner horizontalement" msgstr "Retourner horizontalement" #: src/popup.c:853 msgid "Retourner verticalement" msgstr "Retourner verticalement" #: src/popup.c:861 msgid "Image au premier plan" msgstr "Image au premier plan" #: src/popup.c:865 msgid "Image au dessus" msgstr "Image au dessus" #: src/popup.c:869 msgid "Image en dessous" msgstr "Image en dessous" #: src/popup.c:873 msgid "Image au dernier plan" msgstr "Image au dernier plan" #: src/popup.c:881 msgid "Effacer l'image" msgstr "Effacer l'image" #: src/popup.c:918 msgid "Supprimer l'image de la liste" msgstr "Supprimer l'image de la liste" #: src/popup.c:1036 msgid "V0 [ meilleure qualite ]" msgstr "V0 [ meilleure qualite ]" #: src/popup.c:1036 src/popup.c:1039 msgid "V4 [ defaut ]" msgstr "V4 [ defaut ]" #: src/popup.c:1036 msgid "V9 [ moins bonne qualite ]" msgstr "V9 [ moins bonne qualite ]" #: src/popup.c:1219 msgid "Qualite -1 [ Moins bonne qualite ]" msgstr "Qualite -1 [ Moins bonne qualite ]" #: src/popup.c:1220 msgid "Qualite 3 [ Defaut ]" msgstr "Qualite 3 [ Defaut ]" #: src/popup.c:1221 msgid "Qualite 10 [ Meilleure qualite ]" msgstr "Qualite 10 [ Meilleure qualite ]" #: src/prg_init.c:85 msgid " Decode ATSC A/52 audio streams" msgstr " Decode ATSC A/52 audio streams" #: src/prg_init.c:96 msgid " AAC+ encoder" msgstr " AAC+ encoder" #: src/prg_init.c:107 src/prg_init.c:173 msgid " Extracteur cd audio" msgstr " Extracteur cd audio" #: src/prg_init.c:118 msgid " Read CD and get CDDB discid information" msgstr " Read CD and get CDDB discid information" #: src/prg_init.c:129 msgid " Cherche des renseignements sur les formats mp3" msgstr " Cherche des renseignements sur les formats mp3" #: src/prg_init.c:140 msgid " Audio Codeur freeware" msgstr " Audio Codeur freeware" #: src/prg_init.c:151 msgid " MPEG-4 AAC decodeur" msgstr " MPEG-4 AAC decodeur" #: src/prg_init.c:162 msgid " Conversion wav : flac" msgstr " Conversion wav : flac" #: src/prg_init.c:184 msgid " Conversion wav : mp3" msgstr " Conversion wav : mp3" #: src/prg_init.c:195 msgid " Cherche les informations d'un dvd" msgstr " Cherche les informations d'un dvd" #: src/prg_init.c:207 msgid " Monkey's Audio Console Front End : APE" msgstr " Monkey's Audio Console Front End : APE" #: src/prg_init.c:219 src/prg_init.c:230 msgid " MusePack commandline utilities" msgstr " MusePack commandline utilities" #: src/prg_init.c:241 msgid " Lecteur et extracteur" msgstr " Lecteur et extracteur" #: src/prg_init.c:252 msgid " Normaliseur de fichier mp3" msgstr " Normaliseur de fichier mp3" #: src/prg_init.c:263 msgid " Normaliseur de fichier wav" msgstr " Normaliseur de fichier wav" #: src/prg_init.c:274 msgid " A program to send desktop notifications" msgstr " A program to send desktop notifications" #: src/prg_init.c:285 msgid " Forte compression au format wave" msgstr " Forte compression au format wave" #: src/prg_init.c:296 msgid " Decoupage de fichiers sans decodage" msgstr " Decoupage de fichiers sans decodage" #: src/prg_init.c:307 msgid " Transformation universelle de fichiers son" msgstr " Transformation universelle de fichiers son" #: src/prg_init.c:318 msgid " Conversion wav : ogg" msgstr " Conversion wav : ogg" #: src/prg_init.c:329 msgid " Normaliseur de fichier ogg" msgstr " Normaliseur de fichier ogg" #: src/prg_init.c:340 msgid " WAVPACK Hybrid Lossless Audio Compressor" msgstr " WAVPACK Hybrid Lossless Audio Compressor" #: src/prg_init.c:357 msgid " ... les paquets: deb " msgstr " ... les paquets: deb " #: src/prg_init.c:363 msgid " ... les paquets: tgz " msgstr " ... les paquets: tgz " #: src/prg_init.c:369 msgid " ... les paquets: fpm " msgstr " ... les paquets: fpm " #: src/prg_init.c:375 msgid " ... les paquets: rpm " msgstr " ... les paquets: rpm " #: src/prg_init.c:381 msgid " ... les paquets: pkg.tar.xz " msgstr " ... les paquets: pkg.tar.xz " #: src/prg_init.c:387 msgid " ... les paquets: ? " msgstr " ... les paquets: ? " #: src/prg_init.c:623 msgid "Status" msgstr "Status" #: src/prg_init.c:637 msgid "Paquet" msgstr "Paquet" #: src/prg_init.c:652 msgid "Action" msgstr "Action" #: src/scan.c:259 msgid "PACKAGE dvd+rw-tools ABSENT" msgstr "PACKAGE dvd+rw-tools ABSENT" #: src/scan.c:260 msgid "Le package 'dvd+rw-tools' est absent" msgstr "Le package 'dvd+rw-tools' est absent" #: src/scan.c:262 msgid "de votre systeme !" msgstr "de votre systeme !" #: src/scan.c:264 msgid "Veuillez l'installer car j'ai besoin de" msgstr "Veuillez l'installer car j'ai besoin de" #: src/scan.c:266 msgid "'dvd+rw-mediainfo' pour identifier le(s)" msgstr "'dvd+rw-mediainfo' pour identifier le(s)" #: src/scan.c:268 msgid "lecteur(s) de cd / dvd." msgstr "lecteur(s) de cd / dvd." #: src/split.c:279 msgid "" "Menu: Click droit / Ajout plage: Click bouton centre / Zoom: Ctrl+Scroll" msgstr "" "Menu: Click droit / Ajout plage: Click bouton centre / Zoom: Ctrl+Scroll" #: src/split.c:282 msgid "Ajout plage: Click bouton centre / Zoom: Ctrl+Scroll" msgstr "Ajout plage: Click bouton centre / Zoom: Ctrl+Scroll" #: src/split.c:286 msgid "" "Pret pour l'import d'un fichier CUE, WAV, FLAC, OGG, MP3, APE, WMA" msgstr "" "Pret pour l'import d'un fichier CUE, WAV, FLAC, OGG, MP3, APE, WMA" #: src/split.c:356 src/split.c:385 msgid "Ce fichier appartient a XCFA" msgstr "Ce fichier appartient a XCFA" #: src/split.c:357 src/split.c:386 msgid "Selectionnez un autre fichier." msgstr "Selectionnez un autre fichier." #: src/split.c:365 msgid "Fichier vide" msgstr "Fichier vide" #: src/split.c:366 msgid "Le fichier ne contient aucune donnee !!!" msgstr "Le fichier ne contient aucune donnee !!!" #: src/split.c:411 msgid "Sox et Mplayer absents" msgstr "Sox et Mplayer absents" #: src/split.c:412 msgid "Sox et Mplayer sont absents de votre" msgstr "Sox et Mplayer sont absents de votre" #: src/split.c:414 msgid "configuration." msgstr "configuration." #: src/split.c:416 msgid "Veuillez les installer pour pouvoir continuer." msgstr "Veuillez les installer pour pouvoir continuer." #: src/split.c:467 msgid "Erreur de choix de fichier" msgstr "Erreur de choix de fichier" #: src/split.c:468 msgid "Veuillez selectionner un fichier de type WAV FLAC MP3 OGG APE" msgstr "Veuillez selectionner un fichier de type WAV FLAC MP3 OGG APE" #: src/split.c:505 src/split.c:579 msgid "Mauvais type de fichier" msgstr "Mauvais type de fichier" #: src/split.c:506 src/split.c:580 msgid "" "Les types de fichiers acceptes\n" "sont: WAV FLAC MP3 OGG APE WMA CUE" msgstr "" "Les types de fichiers acceptes\n" "sont: WAV FLAC MP3 OGG APE WMA CUE" #: src/split_conv.c:313 src/split_conv.c:330 msgid "Erreur SOX" msgstr "Erreur SOX" #: src/split_conv.c:314 src/split_conv.c:331 msgid "Le programme SOX de votre distribution" msgstr "Le programme SOX de votre distribution" #: src/split_conv.c:316 src/split_conv.c:333 msgid "a generer une erreur pendant la conversion." msgstr "a generer une erreur pendant la conversion." #: src/split_cue.c:116 msgid "Erreur de lecture !" msgstr "Erreur de lecture !" #: src/split_cue.c:177 src/split_cue.c:187 src/split_cue.c:197 msgid "Erreur" msgstr "Erreur" #: src/split_cue.c:178 msgid "Aucun fichier de musique associe au cue-file !" msgstr "No hay archivo de música asociado con cue-file !" #: src/split_cue.c:188 msgid "Pas de fichier WAV dans le cue-file !" msgstr "No WAV en el cue-file !" #: src/split_cue.c:198 msgid "Aucun fichier de musique associe dans le dossier" msgstr "No hay archivos de música en la carpeta asociada" #: src/split_cue.c:200 msgid "du cue-file" msgstr "la bola de archivo" #: src/split_cue.c:294 msgid "Erreur de donnees dans le fichier CUE" msgstr "Errores de datos en el archivo CUE" #: src/split_cue.c:295 msgid "La solution est d'importer le fichier de" msgstr "La solución es importar el archivo" #: src/split_cue.c:297 msgid "musique qui sera reconnu et pre-decoupe" msgstr "de música que será reconocido y pre-corte" #: src/split_cue.c:299 msgid "dans le module Split." msgstr "en el Split." #: src/split_cue.c:301 msgid "Il ne restera qu'a ajuster les plages pour" msgstr "Simplemente se ajustará a las playas" #: src/split_cue.c:303 msgid "generer un nouveau cue-file ou des decoupes" msgstr "generar una nueva señal de archivos o cortes" #: src/split_cue.c:305 msgid "correspondant aux plages." msgstr "correspondientes a las playas." #: src/split_selector.c:136 msgid "Suppression pendant la lecture impossible" msgstr "Eliminar no durante la reproducción" #: src/split_selector.c:229 src/split_selector.c:235 src/split_selector.c:289 #: src/split_selector.c:295 src/split_selector.c:352 src/split_selector.c:359 #: src/split_selector.c:429 src/split_selector.c:435 msgid "Temps inferieur a 5 secondes entre marqueur et curseur !" msgstr "Tiempo inferior a 5 segundos entre el marcador y el cursor !" #: src/translate.c:51 msgid "Fichier" msgstr "Fichier" #: src/translate.c:52 msgid "Quitter" msgstr "Dejar" #: src/translate.c:53 msgid "Outils" msgstr "Instrumentos" #: src/translate.c:54 msgid "Visibilite des champs" msgstr "Campos de la visibilidad" #: src/translate.c:55 msgid "Aide" msgstr "Ayuda" #: src/translate.c:56 msgid "A propos" msgstr "A propos" #: src/translate.c:57 src/translate.c:67 msgid "Lecture" msgstr "Lecture" #: src/translate.c:58 msgid " Choix du peripherique / Lecture du DVD " msgstr "" " Seleccionar el dispositivo de comunicación / Reproducción de DV " #: src/translate.c:59 src/translate.c:69 src/translate.c:125 msgid " Destination des fichiers " msgstr " Destino de archivo " #: src/translate.c:60 src/translate.c:70 msgid " Eject " msgstr " Eject " #: src/translate.c:61 src/translate.c:92 msgid " Normaliser " msgstr " Normaliser Vers 2CH: Sub / Ambiance " msgstr " Vers 2CH: Sub / Ambiance " #: src/translate.c:65 src/translate.c:98 msgid "Extraire" msgstr "Extraer" #: src/translate.c:66 msgid " DVD " msgstr " DVD " #: src/translate.c:68 msgid " Choix du peripherique / Lecture du CD " msgstr "" " Seleccionar el dispositivo de comunicación / Reproducción de CD " #: src/translate.c:71 msgid "Titre:" msgstr "Titre:" #: src/translate.c:72 msgid "Album:" msgstr "Album:" #: src/translate.c:73 msgid "Artiste:" msgstr "Artiste:" #: src/translate.c:74 msgid " Annee:" msgstr " Annee:" #: src/translate.c:75 msgid " Genre:" msgstr " Genre:" #: src/translate.c:76 msgid " Piste:" msgstr " Pista:" #: src/translate.c:77 msgid " *.m3u et xspf: " msgstr " *.m3u et xspf: " #: src/translate.c:78 msgid "Commentaire:" msgstr "Comentario:" #: src/translate.c:79 msgid " Modification des tags Freedb " msgstr " Cambio de etiquetas de freedb " #: src/translate.c:80 msgid "" "%a [ %a=\"Artist\" ]\n" "\n" "%b [ %b=\"Album\" ]\n" "\n" "%Tl - Tetsumaki lower\n" "\n" "Transforme la chaine en minuscule sauf le premier caractere.\n" "\n" "Dans le champs 'Titre' depuis [ Modification des tags FreeDB ],\n" "le ou les caracteres devant etre conserves doivent etre precedes par le " "caractere %" msgstr "" "%a [ %a=\"Artist\" ]\n" "\n" "%b [ %b=\"Album\" ]\n" "\n" "%Tl - Tetsumaki lower\n" "\n" "Transforme la chaine en minuscule sauf le premier caractere.\n" "\n" "Dans le champs 'Titre' depuis [ Modification des tags FreeDB ],\n" "le ou les caracteres devant etre conserves doivent etre precedes par le " "caractere %" #: src/translate.c:81 msgid "" "%a - artiste %b - titre " "de l'album %c - numero de la piste\n" "%d - titre de la chanson %e - " "annee %g - genre\n" "%f - creation d'un fichier *.m3u et *." "xspf %na - no accent\n" "%u - remplacement de caracteres: %u(AB=C) %u( =_) %Tl - Tetsumaki lower" msgstr "" "%a - artiste %b - titre " "de l'album %c - numero de la piste\n" "%d - titre de la chanson %e - " "annee %g - genre\n" "%f - creation d'un fichier *.m3u et *." "xspf %na - no accent\n" "%u - remplacement de caracteres: %u(AB=C) %u( =_) %Tl - Tetsumaki lower" #: src/translate.c:82 msgid " Arrangement des titres du CD " msgstr " Disposición de las pistas del CD " #: src/translate.c:83 msgid "Creation d'un fichier unique au format: " msgstr "Creación de un solo formato de archivo: " #: src/translate.c:84 msgid " et dont le nom sera: " msgstr " y cuyo nombre se: " #: src/translate.c:85 msgid "Ecriture du fichier cue" msgstr "Escribir el archivo cue" #: src/translate.c:86 msgid " Au moins deux selections colonne Wav " msgstr " Por lo menos dos selecciones de columna Wav " #: src/translate.c:87 msgid "" "Creation d'un fichier cue\n" "unique depuis une lecture\n" "du cd audio" msgstr "" "Creación de un archivo CUE\n" "a partir de una sola lectura\n" "cd de audio" #: src/translate.c:88 msgid "Creation fichier cue uniquement" msgstr "Cue de creación de archivos sólo" #: src/translate.c:89 msgid " Creation Cue cd " msgstr " Creación Cue cd " #: src/translate.c:90 msgid " Creation d'un fichier unique " msgstr " Creación de un único archivo " #: src/translate.c:91 msgid "Gestion des tags, titres et fichiers cue" msgstr "Etiquetas de dirección, títulos, y los archivos cue" #: src/translate.c:93 msgid "definit le serveur a contacter pour les recherches titre" msgstr "" "Define el servidor de ponerse en contacto con por el título de la " "investigación" #: src/translate.c:94 msgid "Parametres par defaut" msgstr "Ajustes por defecto" #: src/translate.c:96 msgid "Choix parmis les differentes bases de donnees pour le CD." msgstr "Elección entre diferentes bases de datos para el CD." #: src/translate.c:97 msgid "DiscId" msgstr "DiscId" #: src/translate.c:99 msgid " CD " msgstr " CD " #: src/translate.c:100 src/translate.c:124 msgid " Importer " msgstr " Importación " #: src/translate.c:101 msgid " Destination des conversions " msgstr " Destination des conversions " #: src/translate.c:102 msgid " Nettoyer " msgstr " Limpio " #: src/translate.c:103 src/translate.c:107 msgid "Appliquer les modifications" msgstr "Aplicar los cambios" #: src/translate.c:104 msgid " Normalise: " msgstr " Normalise: " #: src/translate.c:105 msgid " Choix niveau dBFS: " msgstr " Choix niveau dBFS: " #: src/translate.c:106 src/translate.c:123 msgid " Fichiers " msgstr " Fichiers " #: src/translate.c:108 msgid " Wav " msgstr " Wav " #: src/translate.c:109 src/translate.c:121 msgid "Appliquer" msgstr "Aplicar" #: src/translate.c:110 msgid "Effacer" msgstr "Borrar" #: src/translate.c:111 msgid " Mp3-Ogg " msgstr " Mp3-Ogg " #: src/translate.c:112 msgid "Titre:" msgstr "Titre:" #: src/translate.c:113 msgid "Album:" msgstr "Album:" #: src/translate.c:114 msgid "Artiste:" msgstr "Artiste:" #: src/translate.c:115 msgid "Commentaire:" msgstr "Commentaire:" #: src/translate.c:116 msgid " Annee:" msgstr " Annee:" #: src/translate.c:117 msgid " Genre:" msgstr " Genre:" #: src/translate.c:118 msgid " Piste:" msgstr " Piste:" #: src/translate.c:119 msgid " Modif.:" msgstr " Modif.:" #: src/translate.c:120 msgid "0" msgstr "0" #: src/translate.c:122 src/translate.c:309 msgid " Tags " msgstr " Tags " #: src/translate.c:126 msgid "Lecture de 5 secondes apres le marqueur de debut" msgstr "5 segundos después de la lectura el marcador de inicio" #: src/translate.c:127 msgid "Index de debut" msgstr "Inicio índice" #: src/translate.c:128 src/translate.c:135 src/translate.c:138 msgid "00h00m00s" msgstr "00h00m00s" #: src/translate.c:129 msgid "lecture" msgstr "lecture" #: src/translate.c:130 msgid "Pause" msgstr "Pause" #: src/translate.c:131 msgid "Index de lecture" msgstr "Índice de lectura" #: src/translate.c:132 src/translate.c:171 msgid "label" msgstr "label" #: src/translate.c:133 msgid "Lecture de 5 secondes avant le marqueur de fin" msgstr "La lectura de 5 segundos antes el marcador final" #: src/translate.c:134 msgid "Index de fin" msgstr "Índice de final" #: src/translate.c:136 msgid "Plage" msgstr "Plage" #: src/translate.c:137 msgid "Duree de la plage active" msgstr "Duración de la playa de activos" #: src/translate.c:139 msgid "Suprimer tous les marqueurs pour les remplacer par un marqueur unique" msgstr "Limpie todos los marcadores y sustituirlos por un único marcador" #: src/translate.c:140 msgid "Le fichier CUE sera enregistre vers 'Destination des fichiers'." msgstr "Archivos CUE se pueden guardar en archivo 'Destino'." #: src/translate.c:141 msgid "Production fichier Cue" msgstr "Producción de ficheros de Cue" #: src/translate.c:142 msgid "Le resultat du Split sera dirige vers 'Destination des fichiers'." msgstr "El resultado de la división será encabezada 'Destino de archivo'." #: src/translate.c:143 msgid "Split" msgstr "Split" #: src/translate.c:144 msgid " Split " msgstr " Split " #: src/translate.c:145 msgid "Importation du titre du CD." msgstr "Importar el título del CD." #: src/translate.c:146 msgid "Titre CD" msgstr "CD Título" #: src/translate.c:147 msgid "Choix d'une nouvelle police." msgstr "La elección de un nuevo tipo de letra." #: src/translate.c:148 msgid "Texte gras." msgstr "El texto en negrita." #: src/translate.c:149 msgid "Texte italique." msgstr "El texto en cursiva." #: src/translate.c:150 msgid "" "Apres une lecture de CD et un ajout d'etiquette, ce menu permet la mise en " "forme des titres, auteurs ..." msgstr "" "Después de leer un CD y una etiqueta, este menú permite el formato de " "títulos, autores" #: src/translate.c:151 msgid "Ajouter du texte editable." msgstr "Añadir texto editable." #: src/translate.c:152 msgid "Texte" msgstr "Texto" #: src/translate.c:153 msgid "Saisissez ici un critere de recherche d'images." msgstr "Escriba aquí una búsqueda de imágenes." #: src/translate.c:154 msgid "Importation des images depuis le Web." msgstr "Importación de imágenes desde la Web." #: src/translate.c:155 msgid "Import images web" msgstr "Importación de imágenes web" #: src/translate.c:156 msgid "Supprimer l'image en selection" msgstr "Eliminar la selección de imágenes" #: src/translate.c:157 msgid "AJouter de nouvelles images." msgstr "Añadir nuevas imágenes." #: src/translate.c:158 msgid "Ouvre un fichier" msgstr "Abrir un archivo" #: src/translate.c:159 msgid "Enregistrer la page au format png." msgstr "Guardar página png." #: src/translate.c:160 msgid "Sauvegarde le fichier" msgstr "Guardar el archivo" #: src/translate.c:161 msgid "Diminution de l'echelle." msgstr "Reducción de la escala." #: src/translate.c:162 msgid "Reduit l'agrandissement" msgstr "Reducción de la expansión" #: src/translate.c:163 msgid "Echelle a 100%." msgstr "Escala de 100%." #: src/translate.c:164 msgid "Remet l'echelle a 100%" msgstr "Da la escala en 100%" #: src/translate.c:165 msgid "Augmentation de l'echelle." msgstr "Aumento de la escala." #: src/translate.c:166 msgid "Augmente l'agrandissement" msgstr "Creciente expansión" #: src/translate.c:167 msgid "Echelle compatible avec la taille de la fenetre." msgstr "Escala compatible con el tamaño de la ventana." #: src/translate.c:168 msgid "Adapte l'echelle a la taille de la fenetre" msgstr "Ajusta la escala para el tamaño de la ventana" #: src/translate.c:169 msgid "Emplacement de sauvegarde des fichiers." msgstr "Ubicación de los archivos de respaldo." #: src/translate.c:170 msgid "Nom (sans extention) du fichier a sauvegarder." msgstr "Nombre (sin extensión) del archivo se guarda." #: src/translate.c:172 msgid " Pochette " msgstr " Pochette " #: src/translate.c:173 msgid "Nice" msgstr "Nice" #: src/translate.c:174 msgid " Priorite systeme " msgstr " Priorite systeme " #: src/translate.c:175 msgid "" "Indiquez ici le dossier sur votre systeme qui servira de lieu\n" "de stockage provisoire pendant les differentes conversions.\n" msgstr "" "Intro por carpeta del sistema que servirá como\n" " El almacenamiento temporal de los diferentes conversiones.\n" #: src/translate.c:176 msgid " Dossier provisoire des conversions " msgstr " Conversiones de archivo provisional " #: src/translate.c:177 msgid "button" msgstr "button" #: src/translate.c:178 msgid " Jouer une musique en fin de tache " msgstr " Reproducción de música al final de la tarea " #: src/translate.c:179 msgid " General " msgstr " General " #: src/translate.c:180 msgid "cdparanoia" msgstr "cdparanoia" #: src/translate.c:181 msgid "cdparanoia mode expert" msgstr "cdparanoia mode expert" #: src/translate.c:182 msgid "cdparanoia mode expert multi passes" msgstr "expertos cdparanoia modo multi pase" #: src/translate.c:183 msgid "cdda2wav / icedax" msgstr "cdda2wav / icedax" #: src/translate.c:184 msgid " Extraction cd-audio avec: " msgstr " Extracción CD-Audio: HomePage" msgstr "HomePage" #: src/translate.c:186 msgid "ManPage " msgstr "Página de manual " #: src/translate.c:187 msgid " Web cdparanoia " msgstr " Web cdparanoia " #: src/translate.c:188 msgid "" "Le fichier LogExpertMode.txt sera cree dans le dossier des " "extractions" msgstr "" "LogExpertMode.txt archivo se creará en la carpeta de extracciones" #: src/translate.c:189 msgid "" "Generation d'un rapport pour: cdparanoia mode expert multi passes" msgstr "" "Generación de un informe para: el modo de cdparanoia expertos multi pase" #: src/translate.c:190 msgid "" "%a - artiste %b - titre " "de l'album %c - numero de la piste\n" "%d - titre de la chanson %e - " "annee %g - genre\n" "%na - no accent %Tl " "- Tetsumaki lower\n" "%u - remplacement de caracteres: %u(AB=C) %u( =_)" msgstr "" "%a - artiste %b - titre " "de l'album %c - numero de la piste\n" "%d - titre de la chanson %e - " "annee %g - genre\n" "%na - no accent %Tl " "- Tetsumaki lower\n" "%u - sustitución de caracteres: %u(AB=C) %u( =_)" #: src/translate.c:191 msgid " Dossier de stockage " msgstr " Archivo de almacenamiento" #: src/translate.c:192 msgid " CD " msgstr " CD " #: src/translate.c:193 msgid "ABR / CBR / VBR / VBR-NEW" msgstr "ABR / CBR / VBR / VBR-NEW" #: src/translate.c:194 msgid "Debit" msgstr "Débito" #: src/translate.c:195 msgid "Mode" msgstr "Mode" #: src/translate.c:196 msgid " Lame (fichier mp3): " msgstr " Lame (fichier mp3): " #: src/translate.c:197 src/translate.c:213 src/translate.c:225 #: src/translate.c:238 src/translate.c:255 src/translate.c:266 #: src/translate.c:280 src/translate.c:294 msgid "Par defaut" msgstr "Defecto" #: src/translate.c:198 msgid " Options LAME " msgstr " Options LAME " #: src/translate.c:199 src/translate.c:227 src/translate.c:268 msgid "Site officiel" msgstr "Sitio web oficial" #: src/translate.c:200 msgid "Wiki mp3 " msgstr "Wiki mp3 " #: src/translate.c:201 msgid "Wiki " msgstr "Wiki " #: src/translate.c:202 msgid "ManPage " msgstr "Página de manual " #: src/translate.c:203 msgid " Web Lame " msgstr " Web Lame" #: src/translate.c:204 src/translate.c:218 src/translate.c:231 #: src/translate.c:242 src/translate.c:260 src/translate.c:271 #: src/translate.c:286 msgid "[" msgstr "[" #: src/translate.c:205 src/translate.c:219 src/translate.c:232 #: src/translate.c:243 src/translate.c:261 src/translate.c:272 #: src/translate.c:287 msgid "string option interne" msgstr "string option interne" #: src/translate.c:206 src/translate.c:220 src/translate.c:233 #: src/translate.c:244 src/translate.c:262 src/translate.c:273 #: src/translate.c:288 msgid "]" msgstr "]" #: src/translate.c:207 msgid "" " Options experts, definies par l'utilisateur - lame (wav -> mp3) " msgstr "" " Opciones de expertos, según lo definido por el usuario - lame (wav -> " "mp3) " #: src/translate.c:208 msgid " Mp3 " msgstr " Mp3 " #: src/translate.c:209 msgid " Mode" msgstr " Mode" #: src/translate.c:210 msgid " Mode flux (streaming)" msgstr " Mode flux (streaming)" #: src/translate.c:211 msgid " Debit" msgstr " Débito" #: src/translate.c:212 msgid " Oggenc (fichier ogg): " msgstr " Oggenc (fichier ogg): " #: src/translate.c:214 msgid " Options OGGENC " msgstr " Options OGGENC " #: src/translate.c:215 msgid "Wiki " msgstr "Wiki " #: src/translate.c:216 src/translate.c:258 src/translate.c:284 #: src/translate.c:298 msgid "ManPage" msgstr "Página de manual" #: src/translate.c:217 msgid " Web Oggenc " msgstr " Web Oggenc " #: src/translate.c:221 msgid "" " Options experts, definies par l'utilisateur - oggenc (wav -> ogg) " msgstr "" " Opciones de expertos, según lo definido por el usuario - oggenc (wav -> " "ogg) " #: src/translate.c:222 msgid " Oggenc " msgstr " Oggenc " #: src/translate.c:223 msgid "Taux de compression" msgstr "Relación de compresión" #: src/translate.c:224 msgid " Flac (fichier flac): " msgstr " Flac (fichier flac): " #: src/translate.c:226 msgid " Options FLAC " msgstr " Options FLAC " #: src/translate.c:228 src/translate.c:269 msgid "Framasoft " msgstr "Framasoft " #: src/translate.c:229 msgid "ManPage " msgstr "Página de manual " #: src/translate.c:230 msgid " Web Flac " msgstr " Web Flac " #: src/translate.c:234 msgid "" " Options experts, definies par l'utilisateur - flac (wav -> flac) " msgstr "" " Opciones de expertos, según lo definido por el usuario - flac (wav -> " "flac) " #: src/translate.c:235 msgid " Flac " msgstr " Flac " #: src/translate.c:236 msgid " Qualite" msgstr " Qalidad" #: src/translate.c:237 msgid " Mac (fichier ape): " msgstr " Mac (fichier ape): " #: src/translate.c:239 msgid " Options MAC " msgstr " Options MAC " #: src/translate.c:240 msgid "Wiki" msgstr "Wiki" #: src/translate.c:241 msgid " Web Mac " msgstr " Web Mac " #: src/translate.c:245 msgid " Options experts, definies par l'utilisateur - mac (wav -> ape) " msgstr "" " Opciones de expertos, según lo definido por el usuario - mac (wav -> " "ape) " #: src/translate.c:246 msgid " Mac " msgstr " Mac " #: src/translate.c:247 msgid "Compression" msgstr "Compresión" #: src/translate.c:248 msgid "Son" msgstr "Son" #: src/translate.c:249 msgid "Mode hybride" msgstr "Mode hybride" #: src/translate.c:250 msgid "Fichier de correction" msgstr "Archivo de corrección" #: src/translate.c:251 msgid "Compression maximum" msgstr "Compresión máxima" #: src/translate.c:252 msgid "Signature MD5" msgstr "MD5 firma" #: src/translate.c:253 msgid "Extra encode processing" msgstr "Extra encode processing" #: src/translate.c:254 msgid " WavPack (fichier wv): " msgstr " WavPack (fichier wv): " #: src/translate.c:256 msgid " Options WAVPACK " msgstr " Options WAVPACK " #: src/translate.c:257 msgid "Wiki " msgstr "Wiki " #: src/translate.c:259 msgid " Web Wavpack " msgstr " Web Wavpack" #: src/translate.c:263 msgid "" " Options experts, definies par l'utilisateur - wavpack (wav -> wv) " msgstr "" " Opciones de expertos, según lo definido por el usuario - wavpack (wav -> " "wv) " #: src/translate.c:264 msgid " Wavpack " msgstr " Wavpack " #: src/translate.c:265 msgid " MusePack (fichier mpc): " msgstr " MusePack (fichier mpc): " #: src/translate.c:267 msgid " Options MUSEPACK " msgstr " Options MUSEPACK " #: src/translate.c:270 msgid " Web Musepack " msgstr " Web Musepack " #: src/translate.c:274 msgid "" " Options experts, definies par l'utilisateur - musepack (wav -> mpc) " msgstr "" " Opciones de expertos, según lo definido por el usuario - musepack (wav -" "> mpc) " #: src/translate.c:275 msgid " Musepack " msgstr "Musepack " #: src/translate.c:276 msgid " Qualite VBR / Debit ABR" msgstr " Calidad VBR / ABR débito" #: src/translate.c:277 msgid " VBR / ABR" msgstr " VBR / ABR" #: src/translate.c:278 msgid " Conteneur" msgstr " Conteneur" #: src/translate.c:279 msgid " Faac (fichier .m4a): " msgstr " Faac (fichier .m4a): " #: src/translate.c:281 msgid " Options FAAC " msgstr " Options FAAC " #: src/translate.c:282 src/translate.c:296 msgid "Site officiel " msgstr "Sitio web oficial " #: src/translate.c:283 src/translate.c:297 msgid "Web Info " msgstr "Web Info " #: src/translate.c:285 msgid " Web Faac " msgstr " Web Faac " #: src/translate.c:289 msgid "" " Options experts, definies par l'utilisateur - faac (wav -> m4a) " msgstr "" " Opciones de expertos, según lo definido por el usuario - faac (wav -> " "m4a) " #: src/translate.c:290 msgid " Faac " msgstr " Faac " #: src/translate.c:291 msgid " Stereo: Qualite en kbit/s" msgstr " Stereo: Qualite en kbit/s" #: src/translate.c:292 msgid " Mono: Qualite en kbit/s" msgstr " Mono: Qualite en kbit/s" #: src/translate.c:293 msgid " AacplusEnc (fichier .aac): " msgstr " AacplusEnc (fichier .aac): " #: src/translate.c:295 msgid " Options AacPlusEnc " msgstr " Opciones AacPlusEnc" #: src/translate.c:299 msgid " Web AacPlusEnc " msgstr " Web AacPlusEnc " #: src/translate.c:300 msgid " AacplusEnc " msgstr " AacplusEnc" #: src/translate.c:301 msgid "Artiste" msgstr "Artista" #: src/translate.c:302 src/translate.c:330 msgid "Titre" msgstr "Título" #: src/translate.c:303 msgid "Album" msgstr "Album" #: src/translate.c:304 msgid "Numero" msgstr "Número" #: src/translate.c:305 msgid "Genre" msgstr "Genre" #: src/translate.c:306 msgid "Annee" msgstr "Año" #: src/translate.c:307 msgid "Commentaire" msgstr "Comentario" #: src/translate.c:308 msgid " Exportation de " msgstr " Exportación " #: src/translate.c:310 msgid " Preferences " msgstr " preferencias " #: src/translate.c:311 msgid "SCAN" msgstr "SCAN" #: src/translate.c:312 msgid " Installation " msgstr " Instalación " #: src/translate.c:313 msgid " Votre systeme utilise ... " msgstr " El sistema utiliza ... " #: src/translate.c:314 msgid "" "\n" "Pour installer les programmes externes requis,\n" "veuillez utiliser l'installateur de votre distribution Gnu/Linux.\n" msgstr "" "\n" "Para instalar los programas externos necesarios,\n" "Por favor, utilice el instalador en su distribución GNU / Linux.\n" #: src/translate.c:315 msgid "" "Le programme XCFA_INSTALL_ALL ecrit en Perl vous sera utile en ligne de " "commande pour une installation des programmes complementaire." msgstr "" "XCFA_INSTALL_ALL programa escrito en Perl será útil en una línea de comandos " "para instalar programas adicionales." #: src/translate.c:316 msgid " Informations " msgstr " información " #: src/translate.c:317 msgid " Application externes " msgstr " Aplicación externa " #: src/translate.c:318 src/translate.c:321 msgid "parametres:" msgstr "parámetros:" #: src/translate.c:319 msgid "" "\n" " konqueror : newTab\n" " iceweasel : -new-window -new-tab \n" msgstr "" "\n" " konqueror : newTab\n" " iceweasel : -new-window -new-tab \n" #: src/translate.c:320 msgid "Navigateur" msgstr "Navegadore" #: src/translate.c:322 msgid "Lecteurs audio" msgstr "Reproductores de Audio" #: src/translate.c:323 msgid " Navigateurs / Lecteurs audio " msgstr " Navegadores / Reproductores de Audio " #: src/translate.c:324 msgid " Applications externes " msgstr " Las aplicaciones externas " #: src/translate.c:325 msgid "Scan en cours ..." msgstr "Análisis en curso ..." #: src/translate.c:326 msgid "Scan du support en cours ..." msgstr "Escanear el apoyo actual ..." #: src/translate.c:327 msgid "Detail extraction mode expert" msgstr "Recuperación de detalle el modo experto" #: src/translate.c:328 msgid "Modification des champs" msgstr "Campos variables" #: src/translate.c:329 msgid "" "\n" "Modification des champs\n" msgstr "" "\n" "Modification des champs\n" #: src/translate.c:337 src/translate.c:356 src/translate.c:377 #: src/translate.c:389 src/translate.c:400 src/translate.c:408 msgid " Visibilite " msgstr " visibilidad " #: src/translate.c:338 src/translate.c:357 src/translate.c:378 #: src/translate.c:390 src/translate.c:401 src/translate.c:409 msgid "Nom a gauche" msgstr "Nombre de la izquierda" #: src/translate.c:339 src/translate.c:358 src/translate.c:379 #: src/translate.c:391 src/translate.c:402 src/translate.c:410 msgid "Nom au centre" msgstr "Nombre del centro" #: src/translate.c:340 src/translate.c:359 src/translate.c:380 #: src/translate.c:392 src/translate.c:403 src/translate.c:411 msgid "Nom a droite" msgstr "Nombre a la derecha" #: src/translate.c:341 msgid "DVD" msgstr "DVD" #: src/translate.c:346 src/translate.c:367 msgid "Wavpack" msgstr "Wavpack" #: src/translate.c:350 src/translate.c:371 msgid "Musepack" msgstr "Musepack" #: src/translate.c:360 msgid "CD" msgstr "CD" #: src/translate.c:375 msgid "Replaygain" msgstr "Replaygain" #: src/translate.c:381 msgid "CONVERSIONS" msgstr "CONVERSIONES" #: src/translate.c:382 msgid "Hertz" msgstr "Hertz" #: src/translate.c:383 msgid "New Hertz" msgstr "New Hertz" #: src/translate.c:384 msgid "Voie" msgstr "Voie" #: src/translate.c:385 msgid "New Voie" msgstr "New Voie" #: src/translate.c:386 msgid "Bits" msgstr "Bits" #: src/translate.c:387 msgid "New Bits" msgstr "New Bits" #: src/translate.c:393 msgid "WAV" msgstr "WAV" #: src/translate.c:396 msgid "New Bitrate" msgstr "New Bitrate" #: src/translate.c:397 msgid "Size" msgstr "Size" #: src/translate.c:404 msgid "MP3-OGG" msgstr "MP3-OGG" #: src/translate.c:412 msgid "TAGS" msgstr "TAGS" #: src/translate.c:413 msgid "Selection globale" msgstr "Selection globale" #: src/translate.c:414 msgid "Deselection globale" msgstr "Deselection globale" #: src/translate.c:415 msgid "Retour" msgstr "Volver" #: src/translate.c:416 msgid "About X Convert File Audio" msgstr "About X Convert File Audio" #: src/translate.c:417 msgid "Author" msgstr "Author" #: src/translate.c:418 msgid "Licence" msgstr "Licence" #: src/translate.c:419 msgid " Informations " msgstr " Información " #: src/translate.c:420 msgid " Machine " msgstr " Máquina " #: src/translate.c:421 msgid "Ingenieurs du son\n" msgstr "Los ingenieros de sonido\n" #: src/translate.c:422 msgid "" "\n" "Graphisme\n" msgstr "" "\n" "Gráficos\n" #: src/translate.c:423 msgid "" "Traduction Anglaise\n" "\n" "\n" msgstr "" "Traduction Anglaise\n" "\n" "\n" #: src/translate.c:424 msgid "" "\n" "Traduction Allemande" msgstr "" "\n" "Traduction Allemande" #: src/translate.c:425 msgid "" "\n" "Codeur Xcfa" msgstr "" "\n" "Codeur Xcfa" #: src/translate.c:426 msgid "" "\n" "ElementSpeak pour Xcfa " msgstr "" "\n" "ElementSpeak pour Xcfa " #: src/translate.c:427 msgid "" "\n" "Codeur pages Web" msgstr "" "\n" "Codeur páginas web" #: src/translate.c:428 msgid "" "\n" "Traduction Italienne" msgstr "" "\n" "Traduction Italienne" #: src/translate.c:429 msgid "" "\n" "\n" "Pages a visiter\n" msgstr "" "\n" "\n" "Páginas de un visiter\n" #: src/translate.c:430 msgid "Linux On The Root" msgstr "Linux On The Root" #: src/translate.c:431 msgid "Frugalware" msgstr "Frugalware" #: src/translate.c:432 msgid "Road2Mayotte" msgstr "Road2Mayotte" #: src/translate.c:433 msgid "La Linuxerie" msgstr "La Linuxerie" #: src/translate.c:434 msgid "Audioptimisation by Dzef" msgstr "Audioptimisation by Dzef" #: src/translate.c:435 msgid "Tuxfamily" msgstr "Tuxfamily" #: src/translate.c:436 msgid "Framasoft" msgstr "Framasoft" #: src/translate.c:437 msgid "Ekd (EnKoDeur-Mixeur)" msgstr "Ekd (EnKoDeur-Mixeur)" #: src/translate.c:438 msgid "Bishop's page" msgstr "Bishop's page" #: src/translate.c:439 msgid "Je suis libre" msgstr "Je suis libre" #: src/translate.c:440 msgid "Debian Multimedia" msgstr "Debian Multimedia" #: src/translate.c:441 msgid "" "\n" "Forum\n" msgstr "" "\n" "Forum\n" #: src/translate.c:442 msgid "XCFA Vorstellung " msgstr "XCFA idea" #: src/translate.c:443 msgid "XCFA LinuxForen.de" msgstr "XCFA LinuxForen.de" #: src/translate.c:444 msgid "Forum Xcfa" msgstr "Forum Xcfa" #: src/translate.c:445 msgid "" "\n" "Documentation\n" msgstr "" "\n" "documentación\n" #: src/translate.c:446 msgid "Wiki Xcfa par Shankarius" msgstr "Wiki Xcfa por Shankarius" #: src/translate.c:447 msgid "Doc Xcfa par Patachon" msgstr "Doc Xcfa por Patachon" #: src/translate.c:448 msgid "Ogg Vorbis explique par Shankarius" msgstr "Ogg Vorbis explicó Shankarius" #: src/translate.c:449 msgid "La normalisation expliquee par Dzef" msgstr "Explica por la normalización Dzef" #: src/translate.c:450 msgid "Xcfa sur Linux On The Root" msgstr "Xcfa sur Linux On The Root" #: src/translate.c:451 msgid " Contributions " msgstr " Contribuciones " #: src/translate.c:452 msgid " License " msgstr " licencia " #: src/translate.c:453 msgid "OK" msgstr "OK" #: src/web.c:173 src/web.c:234 msgid "PAS de navigateur present" msgstr "NO navegador actual" #: src/web.c:174 msgid "L'acces au web est impossible car aucun navigateur" msgstr " Acceso a la Web es imposible porque no hay ningún navegador" #: src/web.c:176 msgid "n'est present dans votre configuration." msgstr "está presente en su configuración." #: src/web.c:178 msgid "Veuillez installez un navigateur." msgstr "Por favor, instale un navegador." #: src/web.c:188 msgid "Vous devez ouvrir l'acces internet" msgstr "Debe abrir el acceso a Internet" #: src/web.c:236 msgid " L'acces au web est impossible car aucun navigateur" msgstr " Acceso a la Web es imposible porque no hay ningún navegador" #: src/web.c:238 msgid " n'est present dans votre configuration." msgstr " está presente en su configuración." #: src/web.c:240 msgid " Veuillez installez un navigateur." msgstr " Por favor, instale un navegador." #: src/web.c:250 msgid "L'application est absente." msgstr "La aplicación no se encuentra." #: src/web.c:251 msgid "Veuillez installer : " msgstr "Por favor, instale : " #: src/win_about.c:130 msgid " Xcfa sur le web" msgstr " Xcfa web" #: src/win_about.c:180 msgid "" "\n" "Au tout debut:\n" "\n" "Serres Patrick, Hamann Regis, Fabien Gregis, @Dzef, @alteo_gange, \n" "@Leonux, @zarer, @Shankarius, @bishop, @Ludo, @Patachonf,\n" "... ;-)\n" "\n" "" msgstr "" "\n" "En el comienzo:\n" "\n" "Serres Patrick, Hamann Regis, Fabien Gregis, @Dzef, @alteo_gange, \n" "@Leonux, @zarer, @Shankarius, @bishop, @Ludo, @Patachonf,\n" "... ;-)\n" "\n" "" #: src/win_scan.c:161 msgid "Waiting ..." msgstr "Espera ..." #~ msgid "Quantification" #~ msgstr "Quantification" #~ msgid "Voie" #~ msgstr "Voie" #~ msgid " Frequence - Hertz " #~ msgstr " Frecuencia - Hertz " #~ msgid "Cellule" #~ msgstr "Cellule" #~ msgid "Colonne" #~ msgstr "Colonne" #~ msgid " Cacher Xcfa " #~ msgstr " Cacher Xcfa " #~ msgid " Montrer Xcfa " #~ msgstr " Montrer Xcfa " #~ msgid " Quitter Xcfa " #~ msgstr " Quitter Xcfa " #~ msgid "" #~ "XCFA\n" #~ "Programme pour convertir les fichiers audio." #~ msgstr "" #~ "XCFA\n" #~ "Programme pour convertir les fichiers audio." #~ msgid "128 -defaut" #~ msgstr "128 -defauf" #~ msgid "V0 -meilleure qualite" #~ msgstr "V0 -meilleure qualit" #~ msgid "V4 -defaut" #~ msgstr "V4 -defau" #~ msgid "V9 -moins bonne qualite" #~ msgstr "V9 -moins bonne qualit" #~ msgid "Defaut" #~ msgstr "Defaut" #~ msgid "Qualite -1 -Moins bonne qualite" #~ msgstr "Qualite -1 -Moins bonne qualite" #~ msgid "Qualite 3 -Defaut" #~ msgstr "Qualite 3 -Defaut" #~ msgid "Qualite 10 -Meilleure qualite" #~ msgstr "Qualite 10 -Meilleure qualit" xcfa-4.3.6/po/Makevars0000644000175000017500000000344111424233744011506 00000000000000# Makefile variables for PO directory in any package using GNU gettext. # Usually the message domain is the same as the package name. DOMAIN = $(PACKAGE) # These two variables depend on the location of this directory. subdir = po top_builddir = .. # These options get passed to xgettext. XGETTEXT_OPTIONS = --keyword=_ --keyword=N_ # This is the copyright holder that gets inserted into the header of the # $(DOMAIN).pot file. Set this to the copyright holder of the surrounding # package. (Note that the msgstr strings, extracted from the package's # sources, belong to the copyright holder of the package.) Translators are # expected to transfer the copyright for their translations to this person # or entity, or to disclaim their copyright. The empty string stands for # the public domain; in this case the translators are expected to disclaim # their copyright. COPYRIGHT_HOLDER = Free Software Foundation, Inc. # This is the email address or URL to which the translators shall report # bugs in the untranslated strings: # - Strings which are not entire sentences, see the maintainer guidelines # in the GNU gettext documentation, section 'Preparing Strings'. # - Strings which use unclear terms or require additional context to be # understood. # - Strings which make invalid assumptions about notation of date, time or # money. # - Pluralisation problems. # - Incorrect English spelling. # - Incorrect formatting. # It can be your email address, or a mailing list address where translators # can write to without being subscribed, or the URL of a web page through # which the translators can contact you. MSGID_BUGS_ADDRESS = xcfa@tuxfamily.org # This is the list of locale categories, beyond LC_MESSAGES, for which the # message catalogs shall be used. It is usually empty. EXTRA_LOCALE_CATEGORIES = xcfa-4.3.6/po/de.po0000644000175000017500000021217112224542443010742 00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Free Software Foundation, Inc. # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: xcfa 4.2.8\n" "Report-Msgid-Bugs-To: xcfa@tuxfamily.org\n" "POT-Creation-Date: 2013-10-07 16:28+0200\n" "PO-Revision-Date: 2009-08-02 19:09+0100\n" "Last-Translator: BULIN Claude xcfa@tuxfamily.org\n" "Language-Team: xcfa-Team\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-Language: German\n" "X-Poedit-Country: GERMANY\n" #: src/cd_audio.c:812 src/dvd.c:680 src/dvd.c:1324 msgid "MPLAYER deja en action" msgstr "Track-Auswahl" #: src/cd_audio.c:813 src/dvd.c:681 src/dvd.c:1325 msgid "MPLAYER est deja utilise !!" msgstr "MPlayer ist bereits im Einsatz" #: src/cd_audio.c:1224 src/cd_audio.c:1230 src/dvd.c:867 src/file.c:2829 msgid "(Click Droit = Menu) / En attente de selection." msgstr "(Rechtsklick = Menü) / Bitte eine Auswahl treffen." #: src/cd_audio.c:1227 src/file.c:2826 msgid "Le programme externe d'extraction est absent." msgstr "Das externe Programm Extraktion fehlt." #: src/cd_audio.c:1233 src/file.c:2832 msgid "(Click Droit = Menu) / En attente de selection. Le fichier existe." msgstr "(Rechtsklick = Menü) / Bitte eine Auswahl treffen. Datei existiert." #: src/cd_audio.c:1236 src/file.c:2835 msgid "(Click Droit = Menu) / En selection." msgstr "(Rechtsklick = Menü) / Auswahl" #: src/cd_audio.c:1239 src/file.c:2841 msgid "(Click Droit = Menu) / Selection avec options expert." msgstr "(Rechtsklick = Menü) / Auswahl im Expertenmodus." #: src/cd_audio.c:1242 src/file.c:2838 msgid "(Click Droit = Menu) / En selection. Le fichier existe." msgstr "(Rechtsklick = Menü) / Auswahl. Datei existiert." #: src/cd_audio.c:1245 src/file.c:2844 msgid "" "(Click Droit = Menu) / Selection avec options expert. Le fichier existe." msgstr "(Rechtsklick = Menü) / Auswahl im Expertenmodus. Datei existiert." #: src/cd_audio.c:1254 msgid "" "(Click Droit = Menu) / Possibilite d'ajustement INDIVIDUEL ou COLLECTIF " "maximal du volume" msgstr "" "(Rechtsklick = Menü) / Möglichkeiten zur individuellen Anpassung oder " "maximale Auffangvolumen" #: src/cd_audio.c:1259 msgid "(Click Droit = Menu) / Ajustement INDIVIDUEL maximal du volume" msgstr "(Rechtsklick = Menü) / Individuelle maximale Lautstärke" #: src/cd_audio.c:1262 msgid "(Click Droit = Menu) / Ajustement COLLECTIF maximal du volume" msgstr "(Rechtsklick = Menü) / COLLECTIVE maximale Lautstärke" #: src/cd_audio.c:1502 src/dvd.c:1099 src/file.c:3139 src/translate.c:331 #: src/translate.c:342 src/translate.c:361 msgid "Play" msgstr "Play" #: src/cd_audio.c:1543 src/file.c:3204 src/translate.c:343 src/translate.c:364 msgid "Wav" msgstr "Wav" #: src/cd_audio.c:1564 src/file.c:3223 src/translate.c:344 src/translate.c:365 msgid "Flac" msgstr "Flac" #: src/cd_audio.c:1584 src/file.c:3242 src/translate.c:345 src/translate.c:366 msgid "Ape" msgstr "Ape" #: src/cd_audio.c:1604 src/file.c:3261 msgid "WavP" msgstr "WavP" #: src/cd_audio.c:1624 src/file.c:3280 src/translate.c:347 src/translate.c:368 msgid "Ogg" msgstr "Ogg" #: src/cd_audio.c:1645 src/file.c:3299 src/translate.c:348 src/translate.c:369 msgid "M4a" msgstr "M4a" #: src/cd_audio.c:1666 src/file.c:3318 src/translate.c:349 src/translate.c:370 msgid "Aac" msgstr "Aac" #: src/cd_audio.c:1686 src/file.c:3337 msgid "Mpc" msgstr "Mpc" #: src/cd_audio.c:1706 src/file.c:3356 src/translate.c:351 src/translate.c:372 msgid "Mp3" msgstr "Mp3" #: src/cd_audio.c:1727 src/translate.c:352 msgid "Num" msgstr "Nr." #: src/cd_audio.c:1742 src/translate.c:353 src/translate.c:373 #: src/translate.c:398 src/translate.c:406 msgid "Time" msgstr "Dauer" #: src/cd_audio.c:1757 src/dvd.c:1167 src/file.c:3392 src/translate.c:335 #: src/translate.c:354 src/translate.c:374 msgid "Normalise" msgstr "Normalisieren" #: src/cd_audio.c:1782 src/dvd.c:1187 src/file.c:3434 src/file_mp3ogg.c:958 #: src/file_tags.c:1191 src/file_wav.c:824 src/prg_init.c:609 #: src/translate.c:336 src/translate.c:355 src/translate.c:376 #: src/translate.c:388 src/translate.c:399 src/translate.c:407 msgid "Nom" msgstr "Name" #: src/cd_audio.c:2511 msgid " Parametrage CDDB: [ Nom du serveur ]" msgstr " Einrichten CDDB: [ Server name ]" #: src/cd_audio.c:2520 msgid " Parametrage PROXY: [ serveur ] [ port ]" msgstr " Proxy-Einstellungen: [ server ] [ port ]" #: src/cd_audio.c:2530 src/translate.c:95 msgid " Serveur " msgstr " Server " #: src/cd_audio_extract.c:673 #, c-format msgid "" "[Erreur du segment numero: %d]\n" "%d) Lecture PASS 1/2\n" msgstr "" "[Fehler im Segment Nummer: %d]\n" "%d) Lesedurchgang 1/2\n" #: src/cd_audio_extract.c:680 #, c-format msgid "" "--> Deja %d fois 2 lectures du segment %d!\n" " Abandon :/\n" msgstr "" "--> Bereits %d Mal das Segment %d doppelt gelesen\n" " Abbruch :/\n" #: src/cd_audio_extract.c:700 #, c-format msgid "%d) Lecture PASS 2/2\n" msgstr "%d) Lesedurchang 2 von 2\n" #: src/cd_audio_extract.c:780 #, c-format msgid "" "\n" "[Piste: %d]\n" msgstr "" "\n" "[Track: %d]\n" #: src/cd_audio_extract.c:784 msgid "Extraction mode expert PASS 1/2\n" msgstr "- Rippen im Expertenmodus (Durchgang 1 von 2)\n" #: src/cd_audio_extract.c:795 msgid "Extraction mode expert PASS 2/2\n" msgstr "- Rippen im Expertenmodus (Durchgang 2 von 2)\n" #: src/cd_audio_extract.c:803 msgid "Controle du contenu des fichiers extraits\n" msgstr "-- Überprüfung der gerippten Dateien\n" #: src/cd_audio_extract.c:1710 src/cd_audio_extract.c:1712 msgid "XCFA: Extraction CD" msgstr "XCFA: Rippen der CD" #: src/cd_audio_extract.c:1710 src/dvd_extract.c:412 src/file_action.c:183 #: src/file_mp3ogg_conv.c:329 src/file_wav_conv.c:343 msgid "Ok" msgstr "Fertig" #: src/cd_audio_extract.c:1712 src/dvd_extract.c:414 src/file_action.c:185 #: src/file_mp3ogg_conv.c:331 src/file_wav_conv.c:345 msgid "Arret par l'utilisateur" msgstr "Vom User angehalten" #: src/cd_audio_extract.c:1983 msgid "Nom de fichier unique absent" msgstr "Dateiname nicht gefunden" #: src/cd_audio_extract.c:1984 msgid "Veuillez saisir un nom pour le fichier unique" msgstr "Bitte geben Sie einen Namen für die Datei an" #: src/cd_audio_toc.c:156 msgid "cdda2wav and icedax NOT FOUND" msgstr "cdda2wav und icedax NICHT GEFUNDEN" #: src/cd_audio_toc.c:157 msgid "Please, install packages [ icedax, cdda2wav ]" msgstr "Bitte installieren Pakete [icedax, cdda2wav]" #: src/cd_audio_toc.c:163 msgid "icedax NOT FOUND" msgstr "icedax nicht gefunden!" #: src/cd_audio_toc.c:164 msgid "Please, install package [ icedax ]" msgstr "Bitte installieren Sie das Paket [ icedax ]" #: src/cd_audio_toc.c:170 msgid "cdda2wav NOT FOUND" msgstr "cdda2wav NICHT GEFUNDEN" #: src/cd_audio_toc.c:171 msgid "Please, install package [ cdda2wav ]" msgstr "Bitte installieren Paket [cdda2wav]" #: src/cd_audio_toc.c:180 msgid "cdparanoia NOT FOUND" msgstr "cdparanoia nicht gefunden!" #: src/cd_audio_toc.c:181 msgid "Please, install package [ cdparanoia ]" msgstr "Bitte installieren Sie das Paket [ cdparanoia ]" #: src/cd_audio_toc.c:188 msgid "cd-discid NOT FOUND" msgstr "cd-discid nicht gefunden!" #: src/cd_audio_toc.c:189 msgid "Please, install packages [ cd-discid ]" msgstr "Bitte installieren Sie das Paket [ cd-discid ]" #: src/cd_audio_toc.c:203 msgid "ERREUR datas proxy" msgstr "ERROR Daten Proxy" #: src/cd_audio_toc.c:204 msgid "Veuillez renseigner les champs du proxy" msgstr "Bitte füllen Sie alle Felder Proxy" #: src/cd_curl.c:734 src/web.c:187 msgid "La liaison internet est absente" msgstr "Es besteht keine Internetverbindung" #: src/cd_curl.c:1204 msgid "Couldn't find CD" msgstr "Konnte nicht gefunden CD" #: src/cd_curl.c:1267 msgid "No Audio CD" msgstr "Keine Audio-CD" #: src/dvd.c:859 msgid "" "(Click Droit = Menu) / PEAK-ALBUM: Amplification maximale du volume pour un " "groupe de fichiers en respectant les ecarts de niveau entre chacun d'eux." msgstr "" "(Rechtsklick = Menü) / PEAK-ALBUM: Verstärkung der maximalen Lautstärke für " "eine Gruppe von Dateien, wobei die Unterschiede zwischen den einzelnen " "berücksichtigt werden." #: src/dvd.c:862 msgid "" "(Click Droit = Menu) / PEAK: Amplification maximale du volume pour chaque de " "fichier." msgstr "(Rechtsklick = Menü) / PEAK: Maximale Lautstärke für jede Datei." #: src/dvd.c:900 src/dvd.c:920 msgid "En attente de selection. Un click activera la conversion vers 2 canaux." msgstr "" "Warte auf Ihre Auswahl. Ein Klick aktiviert die Konvertierung in 2 Kanäle." #: src/dvd.c:912 msgid "Conversion vers 2 canaux." msgstr "Konvertierung in 2 Kanälen" #: src/dvd.c:924 #, c-format msgid "Conversion vers %s canaux." msgstr "Konvertierung in %s Kanäle" #: src/dvd.c:929 #, c-format msgid "" "Conversion vers 2 canaux. Un second click activera la conversion vers %s " "canaux." msgstr "" "Konvertierung in 2 Kanäle. Ein zweiter Klick aktiviert die Konvertierung in " "%s Kanäle." #: src/dvd.c:944 msgid "Musique en ecoute." msgstr "Musik hören." #: src/dvd.c:947 msgid "Musique en attente." msgstr "Warte auf die Datei." #: src/dvd.c:962 #, c-format msgid "Total selection%s: %d, 2ch: %d" msgstr "Komplette Auswahl %s: %d, 2ch: %d" #: src/dvd.c:963 msgid "s" msgstr "s" #: src/dvd.c:969 msgid "Ce fichier ne peut etre extrait !" msgstr "Diese Datei kann nicht gerippt werden!" #: src/dvd.c:1087 msgid "Titres" msgstr "Titel" #: src/dvd.c:1111 src/file.c:3375 src/file_mp3ogg.c:943 src/file_tags.c:1175 #: src/translate.c:332 msgid "Temps" msgstr "Dauer" #: src/dvd.c:1123 src/translate.c:333 msgid "Format" msgstr "Format" #: src/dvd.c:1135 src/translate.c:334 msgid "Choix" msgstr "Auswahl" #: src/dvd.c:1249 msgid "Fichier structure DVD" msgstr "Dateienstruktur der DVD" #: src/dvd.c:1299 msgid "Le DVD est absent du lecteur." msgstr "Der DVD-Player ist nicht vorhanden." #: src/dvd.c:1335 msgid "Scan ..." msgstr "Scan ..." #: src/dvd.c:1385 msgid "lsdvd est absent !" msgstr "lsdvd fehlt !" #: src/dvd.c:1386 msgid "Il faut installer le programme: lsdvd" msgstr "Sie müssen das Programm installieren: lsdvd" #: src/dvd_extract.c:412 src/dvd_extract.c:414 msgid "XCFA: Extraction DVD" msgstr "XCFA: Rippen der DVD" #: src/dvd_read.c:263 #, c-format msgid "Titre [%02d ** ]" msgstr "Titel [%02d ** ]" #: src/dvd_read.c:266 #, c-format msgid "Titre [%02d]" msgstr "Titel [%02d]" #: src/dvd_read.c:310 #, c-format msgid "Fichier_complet_%02d_%s" msgstr "Datei_komplett_%02d_%s" #: src/dvd_read.c:355 #, c-format msgid "Chapitre: [%02d]" msgstr "Abschnitt: [%02d]" #: src/dvd_read.c:401 #, c-format msgid "Titre_%02d_Chapitre_%02d_audio_%02d_%s" msgstr "Titel_%02d_Abschnitt_%02d_Audio_%02d_%s" #: src/file_action.c:183 src/file_action.c:185 msgid "XCFA: Traitement fichiers" msgstr "XCFA: Verarbeitung von Dateien" #: src/file_analyze.c:731 msgid "Package checkmp3 (mp3check) NOT FOUND !" msgstr "Paket checkmp3 (mp3check) nicht gefunden !" #: src/file_analyze.c:732 msgid "" "Veuillez installer checkmp3 ou mp3check pour\n" "la prise en compte des fichiers mp3" msgstr "" "Bitte installieren oder checkmp3 mp3check\n" "zur Prüfung von mp3-Dateien" # c-format #: src/file.c:328 #, c-format msgid "Total fichiers: %d, Selections: %d" msgstr "Gesamte Dateien: %d, Auswahl: %d" #: src/file.c:442 msgid "CAPACITE DOSSIER TEMPORAIRE TROP FAIBLE" msgstr "Kapazität im temporärem Verzeichnis zu gering" #: src/file.c:443 msgid "Pas assez de place dans le dossier temporaire" msgstr "Nicht genügend Platz im temporären Verzeichnis" #: src/file.c:449 msgid "Veuillez deselectionner des PeakGroup." msgstr "Bitte deaktivieren Sie die PeakGroup." #: src/file.c:1433 msgid "Conversion(s) vers la source" msgstr "Konvertierung(en) von der Ausgangsdatei" #: src/file.c:1434 msgid "Choix d'une nouvelle destination" msgstr "Neue Auswahl des Verzeichnisses" #: src/file.c:1504 msgid "Select type: --" msgstr "Typ auswählen: --" #: src/file.c:1589 msgid "Peak/album" msgstr "Peak/Album" #: src/file.c:1590 msgid "Peak" msgstr "Peak" #: src/file.c:1591 msgid "Mix (scan)Rms/album" msgstr "Mix (scan)Rms/Album" #: src/file.c:1592 msgid "Fix (scan)Rms" msgstr "Fix (scan)Rms" #: src/file.c:2853 #, c-format msgid "MAX FICHIERS ATTEINT = %d" msgstr "FILES ERREICHT MAX =% d" #: src/file.c:2863 msgid "Normalise: En attente de selection." msgstr "Normalisierte: Warten auf Auswahl." #: src/file.c:2867 msgid "ATTENTION: Pas assez de place dans le dossier temporaire." msgstr "ACHTUNG: Nicht genug Speicher im temporären Ordner." #: src/file.c:2870 msgid "" "PEAK-ALBUM: Amplification maximale du volume pour un groupe de fichiers en " "respectant les ecarts de niveau entre chacun d'eux." msgstr "" "PEAK-ALBUM: Verstärkung der maximalen Lautstärke für eine Gruppe von " "Dateien, wobei die Unterschiede zwischen den einzelnen berücksichtigt werden." #: src/file.c:2874 msgid "PEAK: Amplification maximale du volume pour chaque de fichier." msgstr "PEAK: Maximale Lautstärke für jede Datei." #: src/file.c:2877 msgid "" "RMS-ALBUM: Ajustement du volume moyen pour un groupe de fichiers en " "respectant les ecarts de niveau moyen entre chacun d'eux." msgstr "" "RMS-ALBUM: Einstellen der Lautstärke für eine Gruppe von Dateien, wobei die " "Abweichungen von der mittleren Lautstärke bei jeder von ihnen respektiert " "wird" #: src/file.c:2880 msgid "RMS: Ajustement du volume moyen de chaque de fichier." msgstr "RMS: Einstellen der mittleren Lautstärke jeder einzelnen Datei" #: src/file.c:2894 msgid "(Click Droit = Menu) / ReplayGain: En attente de selection." msgstr "(Rechtsklick = Menü) / ReplayGain: Warten auf Auswahl." #: src/file.c:2897 msgid "(Click Droit = Menu) / Mode piste." msgstr "(Rechtsklick = Menü) / Trackmodus" #: src/file.c:2900 msgid "(Click Droit = Menu) / Mode album." msgstr "(Rechtsklick = Menü) / Albummodus" #: src/file.c:2903 msgid "(Click Droit = Menu) / Mode effacer." msgstr "(Rechtsklick = Menü) / Löschmodus" #: src/file.c:3015 msgid "" "(Click Droit = Menu) / Cliquez ici pour envoyer ce fichier apres traitement " "a la corbeille" msgstr "" "(Rechtsklick = Menü) / Klicken Sie hier, um diese Datei in den Papierkorb " "senden nach der Behandlung" #: src/file.c:3018 msgid "" "(Click Droit = Menu) / Ce fichier sera dirige apres traitement vers la " "corbeille" msgstr "" "(Rechtsklick = Menü) / Diese Datei wird in den Papierkorb nach der " "Behandlung gerichtet werden" #: src/file.c:3152 src/file_trash.c:359 src/translate.c:362 msgid "Trash" msgstr "Papierkorb" #: src/file.c:3172 src/file_mp3ogg.c:883 src/file_tags.c:1160 #: src/translate.c:363 src/translate.c:394 src/translate.c:405 msgid "Type" msgstr "Typ" #: src/file.c:3411 msgid "ReplayGain" msgstr "Lautstärkepegel" #: src/file_conv.c:2835 src/file_mp3ogg_conv.c:336 msgid "Erreur depuis MPLAYER !" msgstr "Fehler da MPlayer !" #: src/file_conv.c:2836 src/file_conv.c:2848 src/file_mp3ogg_conv.c:337 #: src/file_mp3ogg_conv.c:349 msgid "Vous pouvez activer XCFA en ligne de commande avec: " msgstr "Sie können XCFA Befehlszeile mit ermöglichen: " #: src/file_conv.c:2838 src/file_conv.c:2850 src/file_mp3ogg_conv.c:339 #: src/file_mp3ogg_conv.c:351 msgid "$ xcfa -verbose" msgstr "$ xcfa -verbose" #: src/file_conv.c:2840 src/file_mp3ogg_conv.c:341 msgid "pour consulter le type d'erreur renvoye par mplayer." msgstr "auf die Art des Fehlers durch mplayer kehrte zu sehen." #: src/file_conv.c:2847 src/file_mp3ogg_conv.c:348 msgid "Erreur depuis SOX !" msgstr "Fehler seit SOX !" #: src/file_conv.c:2852 src/file_mp3ogg_conv.c:353 msgid "pour consulter le type d'erreur renvoye par sox." msgstr "auf die Art des Fehlers siehe kehrte von sox" #: src/file_mp3ogg.c:668 msgid "Click droit: acces popup" msgstr "Rechte Maustaste: Popup-Zugang" #: src/file_mp3ogg.c:899 src/translate.c:395 msgid "Bitrate" msgstr "Bitrate" #: src/file_mp3ogg.c:915 msgid "Nouveau bitrate" msgstr "Neue Bitrate" #: src/file_mp3ogg.c:929 msgid "Taille" msgstr "Dauer" #: src/file_mp3ogg_conv.c:329 src/file_mp3ogg_conv.c:331 msgid "XCFA: Modification bitrate" msgstr "XCFA: Modifizierung der Bitrate" #: src/file_mp3ogg_conv.c:432 #, c-format msgid " ATTENTION: Il faut installer %s%s%s" msgstr " ACHTUNG: Bitte installieren Sie %s%s%s" #: src/file_mp3ogg_conv.c:440 #, c-format msgid " ATTENTION: Il faut installer %s%s" msgstr " ACHTUNG: Bitte installieren Sie %s%s" #: src/file_mp3ogg_conv.c:447 #, c-format msgid " ATTENTION: Il faut installer %s" msgstr " ACHTUNG: Bitte installieren Sie %s" #: src/file_mp3ogg_conv.c:454 msgid "Package NOT FOUND !" msgstr "Package NOT FOUND !" #: src/fileselect.c:105 msgid "Choix d'un dossier de destination" msgstr "Die Wahl eines Zielordner" #: src/fileselect.c:106 msgid "Choix d'un fichier CUE WAV FLAC OGG MP3 APE WMA" msgstr "Import der Dateien CUE WAV FLAC OGG MP3 APE WMA" #: src/fileselect.c:107 msgid "Choix d'un fichier musical" msgstr "Auswahl einer Musikdatei" #: src/fileselect.c:108 msgid "Choix d'un fichier" msgstr "Durch Auswahl einer Datei" #: src/fileselect.c:109 msgid "Choix de fichiers" msgstr "Import der Dateien" #: src/fileselect.c:110 msgid "Choix de fichiers WAV" msgstr "Import der Dateien WAV" #: src/fileselect.c:111 msgid "Choix de fichiers MP3/OGG" msgstr "Import der Dateien MP3/OGG" #: src/fileselect.c:112 msgid "Choix de fichiers FLAC MPC OGG MP3" msgstr "Import der Dateien FLAC MPC OGG MP3" #: src/fileselect.c:113 msgid "Importer des images pour la pochette" msgstr "Bilddateien für das Cover importieren" #: src/fileselect.c:114 msgid "Choix d'un chemin de stockage des images" msgstr "Die Wahl eines Speicherpfad der Bilder" #: src/fileselect.c:115 msgid "Choix d'un lieu de sauvegarde" msgstr "Die Wahl eines Lagerort" #: src/fileselect.c:472 src/fileselect.c:595 src/fileselect.c:605 #: src/fileselect.c:628 msgid "All Files (*.*)" msgstr "Alle Dateien (*.*)" #: src/file_trash.c:360 msgid "Trash files ..." msgstr "Trash files ..." #: src/file_wav.c:483 msgid "(Click Droit = Menu) / Choix de la frequence" msgstr "(Rechtsklick = Menü) / Frequenzauswahl" #: src/file_wav.c:486 msgid "(Click Droit = Menu) / Choix du nombre de pistes (voies)" msgstr "(Rechtsklick = Menü) / Auswahl der Tracks (Wege)" #: src/file_wav.c:489 msgid "(Click Droit = Menu) / Choix du codage en nombre de bits" msgstr "(Rechtsklick = Menü) / Auswahl der Kodierung und der Bitrate" #: src/file_wav.c:733 msgid "Frequence" msgstr "Frequenz" #: src/file_wav.c:749 msgid "FREQUENCE" msgstr "FREQUENZ" #: src/file_wav.c:763 msgid "Piste" msgstr "Spuren" #: src/file_wav.c:779 msgid "PISTE" msgstr "SPUREN" #: src/file_wav.c:793 msgid "Quantification" msgstr "Quantisierung" #: src/file_wav.c:809 msgid "QUANTIFICATION" msgstr "QUANTISIERUNG" #: src/file_wav_conv.c:261 #, c-format msgid "%s Copie fichier: %d%%" msgstr "%s Kopiere Datei: %d%%" #: src/file_wav_conv.c:271 #, c-format msgid "%s Restitution fichier: %d%%" msgstr "%s Rückgabe-Datei: %d%%" #: src/file_wav_conv.c:281 #, c-format msgid "%s Traitement Sox: %d%%" msgstr "%s Sox-Verabeitung: %d%%" #: src/file_wav_conv.c:298 #, c-format msgid "%s Traitement Mplayer: %d%%" msgstr "%s Mplayer-Verarbeitung: %d%%" #: src/file_wav_conv.c:343 src/file_wav_conv.c:345 msgid "XCFA: Conversions WAV TO WAV" msgstr "XCFA: Konvertieren von WAV zu WAV" #: src/main.c:398 msgid "= Adressage memoire invalide\n" msgstr "= Ungültiger Adressraum\n" #: src/main.c:401 msgid "= Vous avez probablement trouve un bug dans XCFA\n" msgstr "= Sie haben möglicherweise einen Bug in XCFA gefunden\n" #: src/main.c:786 msgid "MODE ADMINISTRATEUR" msgstr "Administrator-Modus" #: src/main.c:788 msgid " Vous ne devriez pas utiliser " msgstr " Sie sollten nicht " #: src/main.c:790 msgid " XCFA sous ROOT !" msgstr " XCFA als Root ! " #: src/options.c:171 msgid "ERREUR: Lieu de stockage non autorise !" msgstr "FEHLER: Speicherort ist nicht zulässig !" #: src/options.c:172 msgid "Veuillez recommencer." msgstr "Bitte versuchen Sie es erneut." #: src/options_cd.c:122 msgid "Pour evaluer les templates, vous devez activer une lecture de cdaudio" msgstr "Zur Beurteilung der Vorlagen, müssen Sie eine Lesung cdaudio" #: src/options_faac.c:96 msgid "Transport Stream (ADTS) - Extension .aac" msgstr "Transport-Stream (ADTS) - *.aac" #: src/options_faac.c:97 msgid "MPEG-4 File Format (MP4) - Extension .m4a" msgstr "MPEG-4 Dateienformat (MP4) - *.m4a" #: src/options_flac.c:67 msgid "0 (Rapide)" msgstr "0 (Schnell)" #: src/options_flac.c:75 msgid "8 (Lent)" msgstr "8 (Langsam)" #: src/options_mp3.c:279 msgid "V0 (meilleure qualite)" msgstr "V0 (Beste Qualität)" #: src/options_mp3.c:288 msgid "V9 (moins bonne qualite)" msgstr "V9 (Weniger gute Qualität)" #: src/options_musepack.c:70 msgid "telephone: lowest quality : 32 .. 48 kbit/s" msgstr "32...48 kbit/s - Telefon: Geringste Klangqualität" #: src/options_musepack.c:71 msgid "thumb : low quality/internet : 58 .. 86 kbit/s" msgstr "58...86 kbit/s - Thumb: Geringe Klangqualität (Internet)" #: src/options_musepack.c:72 msgid "radio : medium (MP3) quality : 112 .. 152 kbit/s" msgstr "112...152 kbit/s - Radio: Mittlere Klangqualität (MP3)" #: src/options_musepack.c:73 msgid "standard : high quality (dflt) : 142 .. 184 kbit/s" msgstr "142...184 kbit/s - Standard: Hohe Klangqualität (dflt)" #: src/options_musepack.c:74 msgid "xtreme : extreme high quality : 168 .. 212 kbit/s" msgstr "168...212 kbit/s - Xtreme: Extrem hohe Klangqualität" #: src/options_musepack.c:75 msgid "insane : extreme high quality : 232 .. 268 kbit/s" msgstr "232...268 kbit/s - Insane: Extrem hohe Klangqualität" #: src/options_musepack.c:76 msgid "braindead : extreme high quality : 232 .. 278 kbit/s" msgstr "232...278 kbit/s - Brainded: Extrem hohe Klangqualität" #: src/options_oggenc.c:138 msgid "Qualite -1 (Moins bonne qualite)" msgstr "Klangqualität -1 (Weniger gute Qualität)" #: src/options_oggenc.c:139 src/popup.c:1219 msgid "Qualite 0" msgstr "Klangqualität 0" #: src/options_oggenc.c:140 src/popup.c:1219 msgid "Qualite 1" msgstr "Klangqualität 1" #: src/options_oggenc.c:141 src/popup.c:1219 msgid "Qualite 2" msgstr "Klangqualität 2" #: src/options_oggenc.c:142 msgid "Qualite 3" msgstr "Klangqualität 3" #: src/options_oggenc.c:143 src/popup.c:1220 msgid "Qualite 4" msgstr "Klangqualität 4" #: src/options_oggenc.c:144 src/popup.c:1220 msgid "Qualite 5" msgstr "Klangqualität 5" #: src/options_oggenc.c:145 src/popup.c:1220 msgid "Qualite 6" msgstr "Klangqualität 6" #: src/options_oggenc.c:146 src/popup.c:1220 msgid "Qualite 7" msgstr "Klangqualität 7" #: src/options_oggenc.c:147 src/popup.c:1221 msgid "Qualite 8" msgstr "Klangqualität 8" #: src/options_oggenc.c:148 src/popup.c:1221 msgid "Qualite 9" msgstr "Klangqualität 9" #: src/options_oggenc.c:149 msgid "Qualite 10 (Meilleure qualite)" msgstr "Klangqualität 10 (Beste Qualität)" #: src/options_oggenc.c:179 src/options_wavpack.c:181 #: src/options_wavpack.c:204 src/options_wavpack.c:227 src/popup.c:1223 msgid "Oui" msgstr "Ja" #: src/options_oggenc.c:180 src/options_wavpack.c:148 #: src/options_wavpack.c:180 src/options_wavpack.c:203 #: src/options_wavpack.c:226 src/options_wavpack.c:247 src/popup.c:1223 msgid "Non" msgstr "Nein" #: src/options_oggenc.c:201 msgid "Mono force" msgstr "Mono erzwingen" #: src/options_oggenc.c:202 msgid "Stereo" msgstr "Stereo" #: src/options_wavpack.c:100 msgid "Mode normal" msgstr "Normal-Modus" #: src/options_wavpack.c:101 msgid "Mode rapide de compression" msgstr "Schnelle Komprimierung" #: src/options_wavpack.c:102 msgid "Bonne qualite de compression" msgstr "Gute Komprimierung" #: src/options_wavpack.c:103 msgid "Meilleure qualite de compression" msgstr "Beste Komprimierung" #: src/options_wavpack.c:129 msgid "stereo left/right" msgstr "Stereo (Links/Rechts)" #: src/options_wavpack.c:130 msgid "stereo mid/side" msgstr "Stereo (Mitte/Seiten)" #: src/options_wavpack.c:248 msgid "1 (fast / rapide)" msgstr "1 (Schnell)" #: src/options_wavpack.c:253 msgid "6 (very slow / tres lent)" msgstr "6 (Sehr langsam)" #: src/play_file.c:108 msgid "PAS de lecteur audio present" msgstr "Es ist kein Internet-Browser installiert" #: src/play_file.c:109 msgid "Veuillez installez un lecteur audio." msgstr "Bitte deaktivieren Sie die PeakGroup." #: src/poche_dir.c:430 msgid "" "Utilisez le glisser / deplacer - Effacer une image avec Ctrl + " "Click" msgstr "" "Drag / Drop - löschen Sie ein Bild mit Strg +Click" #: src/poche_save.c:111 msgid "Nom de fichier absent !!" msgstr "File Name fehlt !!" #: src/poche_save.c:112 src/poche_web.c:353 src/poche_web.c:375 msgid "Pour resoudre ce probleme:" msgstr "Um dieses Problem zu lösen:" #: src/poche_save.c:115 msgid "Saisissez un nom de fichier sans extention" msgstr "Geben Sie einen Dateinamen ohne Erweiterung" #: src/poche_save.c:126 msgid "Sauvegarde aux formats PDF et PostScript" msgstr "Speichern als PDF und PostScript" #: src/poche_save.c:151 msgid "Sauvegarde au format PNG" msgstr "Speichern als PNG" #: src/poche_web.c:352 msgid "Aucun fichier trouve !" msgstr "Keine Datei gefunden!" #: src/poche_web.c:356 msgid "Modifiez la chaine de recherche et" msgstr "Ändern Sie bitte die Suchbegriff und" #: src/poche_web.c:358 src/poche_web.c:380 msgid "recommencez." msgstr "versuchen Sie es erneut." #: src/poche_web.c:374 msgid "Critere de recherche absent !!" msgstr "Suchkriterien fehlt" #: src/poche_web.c:378 msgid "Saisissez une chaine de recherche et" msgstr "Geben Sie einen Suchbegriff ein und" #: src/poche_web.c:387 msgid "[Recherche des fichiers images]" msgstr "[Suche nach Bild-Dateien]" #: src/popup.c:81 src/popup.c:100 msgid " Deselection globale" msgstr " Alles abwählen" #: src/popup.c:82 src/popup.c:101 src/popup.c:162 msgid " Deselection verticale" msgstr " Senkrecht alles abwählen" #: src/popup.c:83 src/popup.c:102 msgid " Deselection horizontale" msgstr " Waagerecht alles abwählen" #: src/popup.c:84 src/popup.c:87 src/popup.c:103 src/popup.c:106 #: src/popup.c:120 src/popup.c:133 src/popup.c:147 msgid " ---" msgstr " ---" #: src/popup.c:85 src/popup.c:104 msgid " Selection verticale" msgstr " Senkrecht alles auswählen" #: src/popup.c:86 src/popup.c:105 msgid " Selection Expert verticale" msgstr " Senkrechte Auswahl (Vorschlag)" #: src/popup.c:88 src/popup.c:107 msgid " Selection horizontale" msgstr " Waagerecht alles auswählen" #: src/popup.c:89 src/popup.c:108 msgid " Selection Expert horizontale " msgstr " Waagerechte Auswahl (Vorschlag)" #: src/popup.c:119 src/popup.c:132 msgid " Deselection verticale " msgstr " Senkrecht alles abwählen " #: src/popup.c:121 src/popup.c:134 msgid " Selection verticale " msgstr " Senkrecht alles auswählen " #: src/popup.c:145 msgid "---SELECTION VERTICALE-----" msgstr "--- Senkrechte Auswahl -----" #: src/popup.c:146 msgid " Deselection verticale " msgstr " Senkrecht alles abwählen" #: src/popup.c:148 msgid " Selection PISTE " msgstr " Track-Auswahl" #: src/popup.c:149 msgid " Selection ALBUM " msgstr " ALBUM-Auswahl " #: src/popup.c:150 msgid " Selection NETTOYER " msgstr " Auswahl löschen" #: src/popup.c:161 msgid "---MENU TRASH--------------" msgstr "--- Papierkorbmenü -------------" #: src/popup.c:163 msgid " Selection verticale " msgstr " Senkrecht alles auswählen " #: src/popup.c:489 msgid "1 piste" msgstr "1 Tonspur" #: src/popup.c:492 msgid "2 pistes" msgstr "2 Tonspuren" #: src/popup.c:495 msgid "4 pistes" msgstr "4 Tanspuren" #: src/popup.c:498 msgid "6 pistes" msgstr "6 Tonspuren" #: src/popup.c:504 src/popup.c:619 src/popup.c:716 msgid "Valeur d'origine" msgstr "Ursprünglicher Wert" #: src/popup.c:592 msgid " 8000 Hertz" msgstr " 8000 Hertz" #: src/popup.c:595 msgid "22000 Hertz" msgstr "22000 Hertz" #: src/popup.c:598 msgid "32000 Hertz" msgstr "32000 Hertz" #: src/popup.c:601 msgid "44056 Hertz" msgstr "44056 Hertz" #: src/popup.c:604 msgid "44100 Hertz" msgstr "44100 Hertz" #: src/popup.c:607 msgid "48000 Hertz" msgstr "48000 Hertz" #: src/popup.c:610 msgid "88200 Hertz" msgstr "88200 Hertz" #: src/popup.c:613 msgid "96000 Hertz" msgstr "96000 Hertz" #: src/popup.c:698 msgid " 8 bits" msgstr " 8 bits" #: src/popup.c:701 msgid "16 bits" msgstr "16 bits" #: src/popup.c:704 msgid "24 bits" msgstr "24 bits" #: src/popup.c:707 msgid "32 bits" msgstr "32 bits" #: src/popup.c:710 msgid "64 bits" msgstr "64 bits" #: src/popup.c:765 msgid "Selecteur suivant" msgstr "Nach Auswahl" #: src/popup.c:769 msgid "Selecteur precedant" msgstr "Selector vor" #: src/popup.c:777 msgid "Supprimer la plage active" msgstr "Löschen Sie den aktiven Bereich" #: src/popup.c:849 msgid "Retourner horizontalement" msgstr "Horizontal spiegeln" #: src/popup.c:853 msgid "Retourner verticalement" msgstr "Vertikal spiegeln" #: src/popup.c:861 msgid "Image au premier plan" msgstr "Bild im Vordergrund" #: src/popup.c:865 msgid "Image au dessus" msgstr "Bild oben" #: src/popup.c:869 msgid "Image en dessous" msgstr "Bild unten" #: src/popup.c:873 msgid "Image au dernier plan" msgstr "Bild in den Hintergrund" #: src/popup.c:881 msgid "Effacer l'image" msgstr "Klares Bild" #: src/popup.c:918 msgid "Supprimer l'image de la liste" msgstr "Bild entfernen aus der Liste" #: src/popup.c:1036 msgid "V0 [ meilleure qualite ]" msgstr "V0 [ Beste Qualität ]" #: src/popup.c:1036 src/popup.c:1039 msgid "V4 [ defaut ]" msgstr "V4 [ Standard ]" #: src/popup.c:1036 msgid "V9 [ moins bonne qualite ]" msgstr "V9 [ Schlechte Qualität ]" #: src/popup.c:1219 msgid "Qualite -1 [ Moins bonne qualite ]" msgstr "Klangqualität -1 [ Weniger gute Qualität ]" #: src/popup.c:1220 msgid "Qualite 3 [ Defaut ]" msgstr "Klangqualität 3 [ Standard ]" #: src/popup.c:1221 msgid "Qualite 10 [ Meilleure qualite ]" msgstr "Klangqualität 10 [ Beste Qualität ]" #: src/prg_init.c:85 msgid " Decode ATSC A/52 audio streams" msgstr " Decode ATSC A/52 audio streams" #: src/prg_init.c:96 msgid " AAC+ encoder" msgstr " AAC+ Encoder" #: src/prg_init.c:107 src/prg_init.c:173 msgid " Extracteur cd audio" msgstr " Rippen von Audio-CDs" #: src/prg_init.c:118 msgid " Read CD and get CDDB discid information" msgstr "Lesen Sie CD und erhalten CDDB discid Informationen" #: src/prg_init.c:129 msgid " Cherche des renseignements sur les formats mp3" msgstr " Sucht und Identifiziert mp3-Dateien, die nicht dem MP3-Format folgen" #: src/prg_init.c:140 msgid " Audio Codeur freeware" msgstr " Freeware Audio-Encoder" #: src/prg_init.c:151 msgid " MPEG-4 AAC decodeur" msgstr " MPEG-4 AAC Decoder" #: src/prg_init.c:162 msgid " Conversion wav : flac" msgstr " Konvertierung wav -> flac" #: src/prg_init.c:184 msgid " Conversion wav : mp3" msgstr " Konvertierung wav > mp3" #: src/prg_init.c:195 msgid " Cherche les informations d'un dvd" msgstr " Sucht die Informationen auf einer DVD" #: src/prg_init.c:207 msgid " Monkey's Audio Console Front End : APE" msgstr " Monkey's Audio Console Front End : APE" #: src/prg_init.c:219 src/prg_init.c:230 msgid " MusePack commandline utilities" msgstr " MusePack commandline utilities" #: src/prg_init.c:241 msgid " Lecteur et extracteur" msgstr " Media-Player mit großer Format- und Plattform-Kompatibilität" #: src/prg_init.c:252 msgid " Normaliseur de fichier mp3" msgstr " Normalisieren von mp3-Dateien" #: src/prg_init.c:263 msgid " Normaliseur de fichier wav" msgstr " Normalisieren von wav-Dateien" #: src/prg_init.c:274 msgid " A program to send desktop notifications" msgstr " Ein Programm für Desktopbenachrichtigungen" #: src/prg_init.c:285 msgid " Forte compression au format wave" msgstr " Hohe Komprimierung im wav-Format" #: src/prg_init.c:296 msgid " Decoupage de fichiers sans decodage" msgstr " Splitten einer Datei mittels Dekodierungsinformationen" #: src/prg_init.c:307 msgid " Transformation universelle de fichiers son" msgstr "" " Universelles Programm zum Konvertieren von Audiodateien in andere Formate" #: src/prg_init.c:318 msgid " Conversion wav : ogg" msgstr " Konvertierung wav > ogg" #: src/prg_init.c:329 msgid " Normaliseur de fichier ogg" msgstr " Normalisieren von ogg-Dateien" #: src/prg_init.c:340 msgid " WAVPACK Hybrid Lossless Audio Compressor" msgstr "" " Ein freier quelloffener Codec zur verlustfreien/-behafteten " "Audiodatenkompression." #: src/prg_init.c:357 msgid " ... les paquets: deb " msgstr " ...folgende Pakete: deb " #: src/prg_init.c:363 msgid " ... les paquets: tgz " msgstr " ...folgende Pakete: tgz " #: src/prg_init.c:369 msgid " ... les paquets: fpm " msgstr " ...folgende Pakete: fpm " #: src/prg_init.c:375 msgid " ... les paquets: rpm " msgstr " ...folgende Pakete: rpm " #: src/prg_init.c:381 msgid " ... les paquets: pkg.tar.xz " msgstr " ...folgende Pakete: pkg.tar.xz " #: src/prg_init.c:387 msgid " ... les paquets: ? " msgstr " ... Pakete: ? " #: src/prg_init.c:623 msgid "Status" msgstr "Status" #: src/prg_init.c:637 msgid "Paquet" msgstr "Pakete" #: src/prg_init.c:652 msgid "Action" msgstr "Beschreibung" #: src/scan.c:259 msgid "PACKAGE dvd+rw-tools ABSENT" msgstr "Paket dvd + rw-tools ABSENT" #: src/scan.c:260 msgid "Le package 'dvd+rw-tools' est absent" msgstr "Das Paket »imagemagick« fehlt" #: src/scan.c:262 msgid "de votre systeme !" msgstr "auf Ihrem System !" #: src/scan.c:264 msgid "Veuillez l'installer car j'ai besoin de" msgstr "Bitte installieren Sie es und versuchen es erneut." #: src/scan.c:266 msgid "'dvd+rw-mediainfo' pour identifier le(s)" msgstr "DVD + RW-mediainfo 'zu identifizieren" #: src/scan.c:268 msgid "lecteur(s) de cd / dvd." msgstr "CD / DVD." #: src/split.c:279 msgid "" "Menu: Click droit / Ajout plage: Click bouton centre / Zoom: Ctrl+Scroll" msgstr "" "Menü: Rechter Mausklick / Hinzufügen Titel: Klicken Sie auf die mittlere / " "Zoom: Ctrl+ScrollTaste" #: src/split.c:282 msgid "Ajout plage: Click bouton centre / Zoom: Ctrl+Scroll" msgstr "" "Hinzufügen Titel: Klicken Sie auf die mittlere Taste / Zoom: Ctrl+Scroll" #: src/split.c:286 msgid "" "Pret pour l'import d'un fichier CUE, WAV, FLAC, OGG, MP3, APE, WMA" msgstr "" "Bereit für die Einfuhr und eine CUE Datei, WAV, FLAC, OGG, MP3, APE, WMA" #: src/split.c:356 src/split.c:385 msgid "Ce fichier appartient a XCFA" msgstr "Diese Datei gehört XCFA" #: src/split.c:357 src/split.c:386 msgid "Selectionnez un autre fichier." msgstr "Wählen Sie eine andere Datei." #: src/split.c:365 msgid "Fichier vide" msgstr "Leere Datei" #: src/split.c:366 msgid "Le fichier ne contient aucune donnee !!!" msgstr "Die Datei enthält keine Daten !!!" #: src/split.c:411 msgid "Sox et Mplayer absents" msgstr "Sox und Mplayer abwesend" #: src/split.c:412 msgid "Sox et Mplayer sont absents de votre" msgstr "Sox und Mplayer sind aus Deinem" #: src/split.c:414 msgid "configuration." msgstr "Konfiguration." #: src/split.c:416 msgid "Veuillez les installer pour pouvoir continuer." msgstr "Bitte installieren Sie es und versuchen es erneut." #: src/split.c:467 msgid "Erreur de choix de fichier" msgstr "Import der Dateien" #: src/split.c:468 msgid "Veuillez selectionner un fichier de type WAV FLAC MP3 OGG APE" msgstr "Bitte wählen Sie einen Dateityp MP3 WAV OGG FLAC APE" #: src/split.c:505 src/split.c:579 msgid "Mauvais type de fichier" msgstr "Falscher Dateityp" #: src/split.c:506 src/split.c:580 msgid "" "Les types de fichiers acceptes\n" "sont: WAV FLAC MP3 OGG APE WMA CUE" msgstr "" "Dateitypen werden akzeptiert:\n" "WAV FLAC MP3 OGG APE WMA CUE" #: src/split_conv.c:313 src/split_conv.c:330 msgid "Erreur SOX" msgstr "Fehler SOX" #: src/split_conv.c:314 src/split_conv.c:331 msgid "Le programme SOX de votre distribution" msgstr "Die SOX-Programm auf Ihrem Vertrieb" #: src/split_conv.c:316 src/split_conv.c:333 msgid "a generer une erreur pendant la conversion." msgstr "einen Fehler generiert hat während der Konvertierung." #: src/split_cue.c:116 msgid "Erreur de lecture !" msgstr "Lesefehler !" #: src/split_cue.c:177 src/split_cue.c:187 src/split_cue.c:197 msgid "Erreur" msgstr "Fehler" #: src/split_cue.c:178 msgid "Aucun fichier de musique associe au cue-file !" msgstr "Keine Musik mit dem Queue-Datei zugeordnet Datei !" #: src/split_cue.c:188 msgid "Pas de fichier WAV dans le cue-file !" msgstr "Keine WAV-Datei in der Cue-Datei !" #: src/split_cue.c:198 msgid "Aucun fichier de musique associe dans le dossier" msgstr "Keine Musik-Datei in dem Ordner zugeordnet" #: src/split_cue.c:200 msgid "du cue-file" msgstr "die Cue-Datei" #: src/split_cue.c:294 msgid "Erreur de donnees dans le fichier CUE" msgstr "Datenfehler in der CUE-Datei" #: src/split_cue.c:295 msgid "La solution est d'importer le fichier de" msgstr "Die Lösung ist, die Datei zu importieren" #: src/split_cue.c:297 msgid "musique qui sera reconnu et pre-decoupe" msgstr "Musik, die erkannt und Vorzerkleinerung" #: src/split_cue.c:299 msgid "dans le module Split." msgstr "Split im Modul." #: src/split_cue.c:301 msgid "Il ne restera qu'a ajuster les plages pour" msgstr "Wir werden nur bis zu den Stränden einstellen" #: src/split_cue.c:303 msgid "generer un nouveau cue-file ou des decoupes" msgstr "Wir werden nur bis zu den Stränden einstellen..." #: src/split_cue.c:305 msgid "correspondant aux plages." msgstr "der Gleise." #: src/split_selector.c:136 msgid "Suppression pendant la lecture impossible" msgstr "Löschen während der Wiedergabe nicht" #: src/split_selector.c:229 src/split_selector.c:235 src/split_selector.c:289 #: src/split_selector.c:295 src/split_selector.c:352 src/split_selector.c:359 #: src/split_selector.c:429 src/split_selector.c:435 msgid "Temps inferieur a 5 secondes entre marqueur et curseur !" msgstr "Zeit von weniger als 5 Sekunden zwischen Marker und Cursor !" #: src/translate.c:51 msgid "Fichier" msgstr "Datei" #: src/translate.c:52 msgid "Quitter" msgstr "Beenden" #: src/translate.c:53 msgid "Outils" msgstr "Extras" #: src/translate.c:54 msgid "Visibilite des champs" msgstr "Sichtbare Felder" #: src/translate.c:55 msgid "Aide" msgstr "Hilfe" #: src/translate.c:56 msgid "A propos" msgstr "Über Xcfa" #: src/translate.c:57 src/translate.c:67 msgid "Lecture" msgstr "Einlesen" #: src/translate.c:58 msgid " Choix du peripherique / Lecture du DVD " msgstr " Laufwerksauswahl / Einlesen der DVD " #: src/translate.c:59 src/translate.c:69 src/translate.c:125 msgid " Destination des fichiers " msgstr " Zielverzeichnis der Datei(en) " #: src/translate.c:60 src/translate.c:70 msgid " Eject " msgstr " Auswurf " #: src/translate.c:61 src/translate.c:92 msgid " Normaliser " msgstr " Normalisieren " #: src/translate.c:62 msgid "Deplier" msgstr "Ausklappen" #: src/translate.c:63 msgid "Replier" msgstr "Einklappen" #: src/translate.c:64 msgid " Vers 2CH: Sub / Ambiance " msgstr " In 2CH: Sub / Ambiente " #: src/translate.c:65 src/translate.c:98 msgid "Extraire" msgstr "Rippen" #: src/translate.c:66 msgid " DVD " msgstr " DVD " #: src/translate.c:68 msgid " Choix du peripherique / Lecture du CD " msgstr " Laufwerksauswahl / Einlesen der CD " #: src/translate.c:71 msgid "Titre:" msgstr " Titel:" #: src/translate.c:72 msgid "Album:" msgstr " Album:" #: src/translate.c:73 msgid "Artiste:" msgstr " Interpret:" #: src/translate.c:74 msgid " Annee:" msgstr " Jahr:" #: src/translate.c:75 msgid " Genre:" msgstr "Genre:" #: src/translate.c:76 msgid " Piste:" msgstr " Track:" #: src/translate.c:77 msgid " *.m3u et xspf: " msgstr " *.m3u und xspf: " #: src/translate.c:78 msgid "Commentaire:" msgstr " Kommentar:" #: src/translate.c:79 msgid " Modification des tags Freedb " msgstr " Bearbeiten der Tags " #: src/translate.c:80 msgid "" "%a [ %a=\"Artist\" ]\n" "\n" "%b [ %b=\"Album\" ]\n" "\n" "%Tl - Tetsumaki lower\n" "\n" "Transforme la chaine en minuscule sauf le premier caractere.\n" "\n" "Dans le champs 'Titre' depuis [ Modification des tags FreeDB ],\n" "le ou les caracteres devant etre conserves doivent etre precedes par le " "caractere %" msgstr "" "%a [ %a=\"Artist\" ]\n" "\n" "%b [ %b=\"Album\" ]\n" "\n" "%Tl - Tetsumaki lower\n" "\n" "Konvertiert die Zeichenfolge mit Ausnahme des ersten Zeichens " "kleinbuchstaben um.\n" "\n" "In den Feldern 'Titel', da [ Ändern FreeDB tag ]\n" "das Zeichen oder Zeichen zu erhalten muss vorangestellt werdenZeichen %" #: src/translate.c:81 msgid "" "%a - artiste %b - titre " "de l'album %c - numero de la piste\n" "%d - titre de la chanson %e - " "annee %g - genre\n" "%f - creation d'un fichier *.m3u et *." "xspf %na - no accent\n" "%u - remplacement de caracteres: %u(AB=C) %u( =_) %Tl - Tetsumaki lower" msgstr "" "%a - Interpret %b - Albumtitel " "%c - Tracknummer\n" "%d - Tracktitel %e - " "Jahr %g - Genre\n" "%f - Erstellen der *.m3u- u. *.xspf-" "Datei %na - no accent\n" "%u - Ersetzen von Zeichen: %u(AB=C) %u( =_) %Tl - " "Tetsumaki lower" #: src/translate.c:82 msgid " Arrangement des titres du CD " msgstr "Anzeige-/Speicher-Layout beim Rippen" #: src/translate.c:83 msgid "Creation d'un fichier unique au format: " msgstr "Erstellen der eindeutigen Datei im Format:" #: src/translate.c:84 msgid " et dont le nom sera: " msgstr " mit dem Namen: " #: src/translate.c:85 msgid "Ecriture du fichier cue" msgstr "Die Cue-Datei schreiben" #: src/translate.c:86 msgid " Au moins deux selections colonne Wav " msgstr " Min. zwei Aktivierungen in der Spalte Wav " #: src/translate.c:87 msgid "" "Creation d'un fichier cue\n" "unique depuis une lecture\n" "du cd audio" msgstr "" "Erstellen einer eindeutigen\n" "CUE-Datei durch das Einlesen\n" "der Audio-CD." #: src/translate.c:88 msgid "Creation fichier cue uniquement" msgstr "Erstellen der eindeutigen CUE-Datei " #: src/translate.c:89 msgid " Creation Cue cd " msgstr " Erstellen der CD-CUE-Date " #: src/translate.c:90 msgid " Creation d'un fichier unique " msgstr " Schaffung einer einzigen Datei " #: src/translate.c:91 msgid "Gestion des tags, titres et fichiers cue" msgstr "Verwalten der Titel, Tags und CUE-Datei" #: src/translate.c:93 msgid "definit le serveur a contacter pour les recherches titre" msgstr "Legt die Portnummer für den Titel Lookups verwendet werden" #: src/translate.c:94 msgid "Parametres par defaut" msgstr "Default-Parameter" #: src/translate.c:96 msgid "Choix parmis les differentes bases de donnees pour le CD." msgstr "Wahl zwischen verschiedenen Datenbanken für die CD." #: src/translate.c:97 msgid "DiscId" msgstr "DiscId" #: src/translate.c:99 msgid " CD " msgstr " CD " #: src/translate.c:100 src/translate.c:124 msgid " Importer " msgstr " Import " #: src/translate.c:101 msgid " Destination des conversions " msgstr " Zielverzeichnis für die Konvertierung " #: src/translate.c:102 msgid " Nettoyer " msgstr " Löschen " #: src/translate.c:103 src/translate.c:107 msgid "Appliquer les modifications" msgstr " Änderungen anwenden" #: src/translate.c:104 msgid " Normalise: " msgstr " Normalisiere: " #: src/translate.c:105 msgid " Choix niveau dBFS: " msgstr " Neuauswahl dBFS: " #: src/translate.c:106 src/translate.c:123 msgid " Fichiers " msgstr " Dateien " #: src/translate.c:108 msgid " Wav " msgstr "Wav" #: src/translate.c:109 src/translate.c:121 msgid "Appliquer" msgstr "Anwenden" #: src/translate.c:110 msgid "Effacer" msgstr "Löschen" #: src/translate.c:111 msgid " Mp3-Ogg " msgstr " Mp3-Ogg " #: src/translate.c:112 msgid "Titre:" msgstr "Titel:" #: src/translate.c:113 msgid "Album:" msgstr "Album:" #: src/translate.c:114 msgid "Artiste:" msgstr "Interpret:" #: src/translate.c:115 msgid "Commentaire:" msgstr "Kommentar:" #: src/translate.c:116 msgid " Annee:" msgstr " Jahr:" #: src/translate.c:117 msgid " Genre:" msgstr " Genre:" #: src/translate.c:118 msgid " Piste:" msgstr " Track:" #: src/translate.c:119 msgid " Modif.:" msgstr " Modif.:" #: src/translate.c:120 msgid "0" msgstr "0" #: src/translate.c:122 src/translate.c:309 msgid " Tags " msgstr " Tags" #: src/translate.c:126 msgid "Lecture de 5 secondes apres le marqueur de debut" msgstr "Reading 5 Sekunden nach Beginn Marker" #: src/translate.c:127 msgid "Index de debut" msgstr "Index Start" #: src/translate.c:128 src/translate.c:135 src/translate.c:138 msgid "00h00m00s" msgstr "00h00m00s" #: src/translate.c:129 msgid "lecture" msgstr "Lesung" #: src/translate.c:130 msgid "Pause" msgstr "Pause" #: src/translate.c:131 msgid "Index de lecture" msgstr "Index Lesung" #: src/translate.c:132 src/translate.c:171 msgid "label" msgstr "label" #: src/translate.c:133 msgid "Lecture de 5 secondes avant le marqueur de fin" msgstr "Reading von 5 Sekunden vor dem Ende Marker" #: src/translate.c:134 msgid "Index de fin" msgstr "End-Index" #: src/translate.c:136 msgid "Plage" msgstr "Beach" #: src/translate.c:137 msgid "Duree de la plage active" msgstr "Länge der aktiven Strand" #: src/translate.c:139 msgid "Suprimer tous les marqueurs pour les remplacer par un marqueur unique" msgstr "" "Wischen Sie alle Markierungen und ersetzen Sie sie mit einem einzigen Marker" #: src/translate.c:140 msgid "Le fichier CUE sera enregistre vers 'Destination des fichiers'." msgstr "CUE Datei aufgezeichnet werden 'Ziel-Datei'." #: src/translate.c:141 msgid "Production fichier Cue" msgstr "Produktion Cue-Datei" #: src/translate.c:142 msgid "Le resultat du Split sera dirige vers 'Destination des fichiers'." msgstr "Das Ergebnis der Split wird in Richtung 'Destination file '." #: src/translate.c:143 msgid "Split" msgstr "Splitten" #: src/translate.c:144 msgid " Split " msgstr " Splitten " #: src/translate.c:145 msgid "Importation du titre du CD." msgstr "Importieren Sie die CD-Titel." #: src/translate.c:146 msgid "Titre CD" msgstr "Titel CD" #: src/translate.c:147 msgid "Choix d'une nouvelle police." msgstr "Die Wahl eines neuen Schriftart." #: src/translate.c:148 msgid "Texte gras." msgstr "Bold Text." #: src/translate.c:149 msgid "Texte italique." msgstr "Kursiv gedruckt." #: src/translate.c:150 msgid "" "Apres une lecture de CD et un ajout d'etiquette, ce menu permet la mise en " "forme des titres, auteurs ..." msgstr "" "Nach dem Lesen einer CD und fügen Sie ein Label, ermöglicht dieses Menü die " "Formatierung der Titel, Autoren ..." #: src/translate.c:151 msgid "Ajouter du texte editable." msgstr "Fügen Sie Text editierbar." #: src/translate.c:152 msgid "Texte" msgstr "Text" #: src/translate.c:153 msgid "Saisissez ici un critere de recherche d'images." msgstr "Geben Sie hier eine Suche nach Bildern." #: src/translate.c:154 msgid "Importation des images depuis le Web." msgstr "Importieren von Bildern aus dem Web." #: src/translate.c:155 msgid "Import images web" msgstr "Import von Bildern auf Webseiten" #: src/translate.c:156 msgid "Supprimer l'image en selection" msgstr "Löschen Sie die Bildauswahl" #: src/translate.c:157 msgid "AJouter de nouvelles images." msgstr "Fügen Sie neue Bilder." #: src/translate.c:158 msgid "Ouvre un fichier" msgstr "Öffnen einer Datei" #: src/translate.c:159 msgid "Enregistrer la page au format png." msgstr "Seite speichern png." #: src/translate.c:160 msgid "Sauvegarde le fichier" msgstr "Speichern Sie die Datei" #: src/translate.c:161 msgid "Diminution de l'echelle." msgstr "Reduction in der Skala." #: src/translate.c:162 msgid "Reduit l'agrandissement" msgstr "Reduzierte Expansion" #: src/translate.c:163 msgid "Echelle a 100%." msgstr "Mensur 100%." #: src/translate.c:164 msgid "Remet l'echelle a 100%" msgstr "Gibt die Skala bei 100%" #: src/translate.c:165 msgid "Augmentation de l'echelle." msgstr "Erhöhung der Skala." #: src/translate.c:166 msgid "Augmente l'agrandissement" msgstr "Zunehmende Ausweitung" #: src/translate.c:167 msgid "Echelle compatible avec la taille de la fenetre." msgstr "Skala mit der Größe des Fensters." #: src/translate.c:168 msgid "Adapte l'echelle a la taille de la fenetre" msgstr "Passt die Waage, um die Größe des Fensters" #: src/translate.c:169 msgid "Emplacement de sauvegarde des fichiers." msgstr "Backup-Standort-Dateien." #: src/translate.c:170 msgid "Nom (sans extention) du fichier a sauvegarder." msgstr "Name (ohne Verlängerung) Datei gespeichert wird." #: src/translate.c:172 msgid " Pochette " msgstr " Cover " #: src/translate.c:173 msgid "Nice" msgstr "Nice" #: src/translate.c:174 msgid " Priorite systeme " msgstr " Systempriorität " #: src/translate.c:175 msgid "" "Indiquez ici le dossier sur votre systeme qui servira de lieu\n" "de stockage provisoire pendant les differentes conversions.\n" msgstr "" "Geben Sie hier den Ordner auf Ihrem System an, den Xcfa zur " "temporären\n" " Zwischenspeicherung während der Konvertierung benutzen soll.\n" #: src/translate.c:176 msgid " Dossier provisoire des conversions " msgstr " Temporärer Konvertierungsordner " #: src/translate.c:177 msgid "button" msgstr "button" #: src/translate.c:178 msgid " Jouer une musique en fin de tache " msgstr " Abspielen von Musik am Ende der Aufgabe " #: src/translate.c:179 msgid " General " msgstr " Allgemein " #: src/translate.c:180 msgid "cdparanoia" msgstr "cdparanoia" #: src/translate.c:181 msgid "cdparanoia mode expert" msgstr "cdparanoia Expertenmodus" #: src/translate.c:182 msgid "cdparanoia mode expert multi passes" msgstr "cdparanoia Expertenmodus Multi-Pass" #: src/translate.c:183 msgid "cdda2wav / icedax" msgstr "cdda2wav / icedax" #: src/translate.c:184 msgid " Extraction cd-audio avec: " msgstr " Rippen der Audio-CD mit: " #: src/translate.c:185 msgid "HomePage" msgstr "Homepage" #: src/translate.c:186 msgid "ManPage " msgstr "Handbuch " #: src/translate.c:187 msgid " Web cdparanoia " msgstr " cdparanoia im Web " #: src/translate.c:188 msgid "" "Le fichier LogExpertMode.txt sera cree dans le dossier des " "extractions" msgstr "" "Die Datei LogExpertMode.txt werden in dem Ordner erstellt " "werdenExtraktionen" #: src/translate.c:189 msgid "" "Generation d'un rapport pour: cdparanoia mode expert multi passes" msgstr "" "Erstellung eines Reports für: cdparanoia Experten-Modus Multi-Pass" #: src/translate.c:190 msgid "" "%a - artiste %b - titre " "de l'album %c - numero de la piste\n" "%d - titre de la chanson %e - " "annee %g - genre\n" "%na - no accent %Tl " "- Tetsumaki lower\n" "%u - remplacement de caracteres: %u(AB=C) %u( =_)" msgstr "" "%a - Künstler %b - " "Albumtitel %c - Titelnummer\n" "%d - Song-Titel %e - " "Jahr %g - Art\n" "%na - no accent %Tl " "- Tetsumaki lower\n" "%u - Ersetzung von Zeichen: %u(AB=C) %u( =_)" #: src/translate.c:191 msgid " Dossier de stockage " msgstr " Verzeichnis zum Speichern " #: src/translate.c:192 msgid " CD " msgstr " CD " #: src/translate.c:193 msgid "ABR / CBR / VBR / VBR-NEW" msgstr "ABR / CBR / VBR / VBR-NEW" #: src/translate.c:194 msgid "Debit" msgstr "Bitrate" #: src/translate.c:195 msgid "Mode" msgstr "Modus" #: src/translate.c:196 msgid " Lame (fichier mp3): " msgstr " Lame (mp3-Datei): " #: src/translate.c:197 src/translate.c:213 src/translate.c:225 #: src/translate.c:238 src/translate.c:255 src/translate.c:266 #: src/translate.c:280 src/translate.c:294 msgid "Par defaut" msgstr " Standard " #: src/translate.c:198 msgid " Options LAME " msgstr " LAME-Optionen " #: src/translate.c:199 src/translate.c:227 src/translate.c:268 msgid "Site officiel" msgstr " Offizielle Seite " #: src/translate.c:200 msgid "Wiki mp3 " msgstr " mp3-Wiki " #: src/translate.c:201 msgid "Wiki " msgstr " Lame-Wiki " #: src/translate.c:202 msgid "ManPage " msgstr "Handbuch " #: src/translate.c:203 msgid " Web Lame " msgstr " Lame im Web " #: src/translate.c:204 src/translate.c:218 src/translate.c:231 #: src/translate.c:242 src/translate.c:260 src/translate.c:271 #: src/translate.c:286 msgid "[" msgstr "[" #: src/translate.c:205 src/translate.c:219 src/translate.c:232 #: src/translate.c:243 src/translate.c:261 src/translate.c:272 #: src/translate.c:287 msgid "string option interne" msgstr "string option interne" #: src/translate.c:206 src/translate.c:220 src/translate.c:233 #: src/translate.c:244 src/translate.c:262 src/translate.c:273 #: src/translate.c:288 msgid "]" msgstr "]" #: src/translate.c:207 msgid "" " Options experts, definies par l'utilisateur - lame (wav -> mp3) " msgstr " Benutzerdefinierte Experten-Optionen - lame (wav > mp3) " #: src/translate.c:208 msgid " Mp3 " msgstr " Mp3 " #: src/translate.c:209 msgid " Mode" msgstr " Modus" #: src/translate.c:210 msgid " Mode flux (streaming)" msgstr " Flux-Modus (Streaming)" #: src/translate.c:211 msgid " Debit" msgstr " Bitrate" #: src/translate.c:212 msgid " Oggenc (fichier ogg): " msgstr " Oggenc (ogg-Datei): " #: src/translate.c:214 msgid " Options OGGENC " msgstr " OGGENC-Optionen " #: src/translate.c:215 msgid "Wiki " msgstr "Wiki " #: src/translate.c:216 src/translate.c:258 src/translate.c:284 #: src/translate.c:298 msgid "ManPage" msgstr "Handbuch" #: src/translate.c:217 msgid " Web Oggenc " msgstr " Oggenc im Web " #: src/translate.c:221 msgid "" " Options experts, definies par l'utilisateur - oggenc (wav -> ogg) " msgstr " Benutzerdefinierte Experten-Optionen - oggenc (wav > ogg) " #: src/translate.c:222 msgid " Oggenc " msgstr " Oggenc " #: src/translate.c:223 msgid "Taux de compression" msgstr " Komprimierungslevel" #: src/translate.c:224 msgid " Flac (fichier flac): " msgstr " Flac (flac-Datei): " #: src/translate.c:226 msgid " Options FLAC " msgstr " FLAC-Optionen" #: src/translate.c:228 src/translate.c:269 msgid "Framasoft " msgstr "Framasoft " #: src/translate.c:229 msgid "ManPage " msgstr "Handbuch " #: src/translate.c:230 msgid " Web Flac " msgstr " Flac im Web " #: src/translate.c:234 msgid "" " Options experts, definies par l'utilisateur - flac (wav -> flac) " msgstr " Benutzerdefinierte Experten-Optionen - flac (wav > flac) " #: src/translate.c:235 msgid " Flac " msgstr " Flac " #: src/translate.c:236 msgid " Qualite" msgstr " Qualität" #: src/translate.c:237 msgid " Mac (fichier ape): " msgstr " Mac (ape-Datei): " #: src/translate.c:239 msgid " Options MAC " msgstr " MAC-Optionen " #: src/translate.c:240 msgid "Wiki" msgstr "Wiki" #: src/translate.c:241 msgid " Web Mac " msgstr " Mac im Web " #: src/translate.c:245 msgid " Options experts, definies par l'utilisateur - mac (wav -> ape) " msgstr " Benutzerdefinierte Experten-Optionen - mac (wav > ape) " #: src/translate.c:246 msgid " Mac " msgstr " Mac " #: src/translate.c:247 msgid "Compression" msgstr "Komprimierung" #: src/translate.c:248 msgid "Son" msgstr "Kanalaufteilung" #: src/translate.c:249 msgid "Mode hybride" msgstr "Hybridmodus" #: src/translate.c:250 msgid "Fichier de correction" msgstr "Korrekturdatei" #: src/translate.c:251 msgid "Compression maximum" msgstr "Maximale Kompression" #: src/translate.c:252 msgid "Signature MD5" msgstr "MD5-Signatur" #: src/translate.c:253 msgid "Extra encode processing" msgstr "Extra-Kodierungs-Verarbeitung" #: src/translate.c:254 msgid " WavPack (fichier wv): " msgstr " Wavpack (wv-Datei): " #: src/translate.c:256 msgid " Options WAVPACK " msgstr " WAVPACK-Optionen " #: src/translate.c:257 msgid "Wiki " msgstr "Wiki " #: src/translate.c:259 msgid " Web Wavpack " msgstr " Wavpack im Web " #: src/translate.c:263 msgid "" " Options experts, definies par l'utilisateur - wavpack (wav -> wv) " msgstr " Benutzerdefinierte Experten-Optionen - wavpack (wav > wv) " #: src/translate.c:264 msgid " Wavpack " msgstr " Wavpack " #: src/translate.c:265 msgid " MusePack (fichier mpc): " msgstr " Musepack (mpc-Datei): " #: src/translate.c:267 msgid " Options MUSEPACK " msgstr " MUSEPACK-Optionen " #: src/translate.c:270 msgid " Web Musepack " msgstr " Musepack im Web " #: src/translate.c:274 msgid "" " Options experts, definies par l'utilisateur - musepack (wav -> mpc) " msgstr " Benutzerdefinierte Experten-Optionen - musepack (wav > mpc) " #: src/translate.c:275 msgid " Musepack " msgstr " Musepack " #: src/translate.c:276 msgid " Qualite VBR / Debit ABR" msgstr " VBR-Qualität / ABR-Bitrate" #: src/translate.c:277 msgid " VBR / ABR" msgstr " VBR / ABR" #: src/translate.c:278 msgid " Conteneur" msgstr " Container" #: src/translate.c:279 msgid " Faac (fichier .m4a): " msgstr " Faac (m4a-Datei): " #: src/translate.c:281 msgid " Options FAAC " msgstr " Faac-Optionen " #: src/translate.c:282 src/translate.c:296 msgid "Site officiel " msgstr "Offizielle Seite " #: src/translate.c:283 src/translate.c:297 msgid "Web Info " msgstr "Infos im Web" #: src/translate.c:285 msgid " Web Faac " msgstr " Faac im Web " #: src/translate.c:289 msgid "" " Options experts, definies par l'utilisateur - faac (wav -> m4a) " msgstr " Benutzerdefinierte Experten-Optionen - faac (wav > m4a) " #: src/translate.c:290 msgid " Faac " msgstr " Faac " #: src/translate.c:291 msgid " Stereo: Qualite en kbit/s" msgstr " Stereo (Qualität in kbit/s)" #: src/translate.c:292 msgid " Mono: Qualite en kbit/s" msgstr " Mono (Qualität in kbit/s)" #: src/translate.c:293 msgid " AacplusEnc (fichier .aac): " msgstr " AacplusEnc (aac-Datei): " #: src/translate.c:295 msgid " Options AacPlusEnc " msgstr " AacPlusEnc-Optionen " #: src/translate.c:299 msgid " Web AacPlusEnc " msgstr " AacPlusEnc im Web " #: src/translate.c:300 msgid " AacplusEnc " msgstr " AacplusEnc " #: src/translate.c:301 msgid "Artiste" msgstr "Interpret" #: src/translate.c:302 src/translate.c:330 msgid "Titre" msgstr "Titel" #: src/translate.c:303 msgid "Album" msgstr "Album" #: src/translate.c:304 msgid "Numero" msgstr "Nummer" #: src/translate.c:305 msgid "Genre" msgstr "Genre" #: src/translate.c:306 msgid "Annee" msgstr "Jahr" #: src/translate.c:307 msgid "Commentaire" msgstr "Kommentar" #: src/translate.c:308 msgid " Exportation de " msgstr " Export von " #: src/translate.c:310 msgid " Preferences " msgstr " Einstellungen " #: src/translate.c:311 msgid "SCAN" msgstr "SCAN" #: src/translate.c:312 msgid " Installation " msgstr " Installation " #: src/translate.c:313 msgid " Votre systeme utilise ... " msgstr " Ihr System benutzt... " #: src/translate.c:314 msgid "" "\n" "Pour installer les programmes externes requis,\n" "veuillez utiliser l'installateur de votre distribution Gnu/Linux.\n" msgstr "" "\n" "So installieren Sie die benötigten externen Programme:\n" "Bitte verwenden Sie das Installationsprogramm Ihrer GNU-/Linux-Distribution." "\n" #: src/translate.c:315 msgid "" "Le programme XCFA_INSTALL_ALL ecrit en Perl vous sera utile en ligne de " "commande pour une installation des programmes complementaire." msgstr "" "Das Programm XCFA_INSTALL_ALL in Perl geschrieben von Nutzen sein wird auf " "der Kommandozeile für die Installation von Zusatzprogrammen" #: src/translate.c:316 msgid " Informations " msgstr " Informationen " #: src/translate.c:317 msgid " Application externes " msgstr " Externe Programme " #: src/translate.c:318 src/translate.c:321 msgid "parametres:" msgstr "Parameter:" #: src/translate.c:319 msgid "" "\n" " konqueror : newTab\n" " iceweasel : -new-window -new-tab \n" msgstr "" "\n" " konqueror : newTab\n" " iceweasel : -new-window -new-tab \n" #: src/translate.c:320 msgid "Navigateur" msgstr "Browser" #: src/translate.c:322 msgid "Lecteurs audio" msgstr "Audio-Player" #: src/translate.c:323 msgid " Navigateurs / Lecteurs audio " msgstr " Browser / Audio-Player" #: src/translate.c:324 msgid " Applications externes " msgstr " Externe Programme " #: src/translate.c:325 msgid "Scan en cours ..." msgstr "Scan in progress ..." #: src/translate.c:326 msgid "Scan du support en cours ..." msgstr "Scan der aktuellen Unterstützung ..." #: src/translate.c:327 msgid "Detail extraction mode expert" msgstr "Detail Retrieval Experten-Modus" #: src/translate.c:328 msgid "Modification des champs" msgstr "Einstellungen für Felder" #: src/translate.c:329 msgid "" "\n" "Modification des champs\n" msgstr "" "\n" "Einstellungen für Felder\n" #: src/translate.c:337 src/translate.c:356 src/translate.c:377 #: src/translate.c:389 src/translate.c:400 src/translate.c:408 msgid " Visibilite " msgstr " Sichtbar " #: src/translate.c:338 src/translate.c:357 src/translate.c:378 #: src/translate.c:390 src/translate.c:401 src/translate.c:409 msgid "Nom a gauche" msgstr "Name links" #: src/translate.c:339 src/translate.c:358 src/translate.c:379 #: src/translate.c:391 src/translate.c:402 src/translate.c:410 msgid "Nom au centre" msgstr "Name zentriert" #: src/translate.c:340 src/translate.c:359 src/translate.c:380 #: src/translate.c:392 src/translate.c:403 src/translate.c:411 msgid "Nom a droite" msgstr "Name rechts" #: src/translate.c:341 msgid "DVD" msgstr "DVD" #: src/translate.c:346 src/translate.c:367 msgid "Wavpack" msgstr "Wavpack" #: src/translate.c:350 src/translate.c:371 msgid "Musepack" msgstr "Musepack" #: src/translate.c:360 msgid "CD" msgstr "CD" #: src/translate.c:375 msgid "Replaygain" msgstr "Replaygain" #: src/translate.c:381 msgid "CONVERSIONS" msgstr "Konvertierungen" #: src/translate.c:382 msgid "Hertz" msgstr "Hertz" #: src/translate.c:383 msgid "New Hertz" msgstr "Hertz neu" #: src/translate.c:384 msgid "Voie" msgstr "Voice" #: src/translate.c:385 msgid "New Voie" msgstr "Neu Voice" #: src/translate.c:386 msgid "Bits" msgstr "Bits" #: src/translate.c:387 msgid "New Bits" msgstr "Neue Bits" #: src/translate.c:393 msgid "WAV" msgstr "WAV" #: src/translate.c:396 msgid "New Bitrate" msgstr "Neue Bitrate" #: src/translate.c:397 msgid "Size" msgstr "Dauer" #: src/translate.c:404 msgid "MP3-OGG" msgstr "MP3-OGG" #: src/translate.c:412 msgid "TAGS" msgstr "TAGS" #: src/translate.c:413 msgid "Selection globale" msgstr "Alles auswählen" #: src/translate.c:414 msgid "Deselection globale" msgstr "Alles abwählen" #: src/translate.c:415 msgid "Retour" msgstr "Zurück" #: src/translate.c:416 msgid "About X Convert File Audio" msgstr "Über X Convert File Audio" #: src/translate.c:417 msgid "Author" msgstr "Autor" #: src/translate.c:418 msgid "Licence" msgstr "Licence" #: src/translate.c:419 msgid " Informations " msgstr " Informationen " #: src/translate.c:420 msgid " Machine " msgstr " Computer " #: src/translate.c:421 msgid "Ingenieurs du son\n" msgstr "Toningenieur\n" #: src/translate.c:422 msgid "" "\n" "Graphisme\n" msgstr "" "\n" "Graphisme\n" #: src/translate.c:423 msgid "" "Traduction Anglaise\n" "\n" "\n" msgstr "" "Englische Übersetzung\n" "\n" "\n" #: src/translate.c:424 msgid "" "\n" "Traduction Allemande" msgstr "" "\n" "Traduction Allemande" #: src/translate.c:425 msgid "" "\n" "Codeur Xcfa" msgstr "" "\n" "Xcfa-Programmierung " #: src/translate.c:426 msgid "" "\n" "ElementSpeak pour Xcfa " msgstr "" "\n" "ElementSpeak für Xcfa " #: src/translate.c:427 msgid "" "\n" "Codeur pages Web" msgstr "" "\n" "Webseitengestaltung" #: src/translate.c:428 msgid "" "\n" "Traduction Italienne" msgstr "" "\n" "Italienische Übersetzung" #: src/translate.c:429 msgid "" "\n" "\n" "Pages a visiter\n" msgstr "" "\n" "\n" "Webseiten-Empfehlungen\n" #: src/translate.c:430 msgid "Linux On The Root" msgstr "Linux On The Root" #: src/translate.c:431 msgid "Frugalware" msgstr "Frugalware" #: src/translate.c:432 msgid "Road2Mayotte" msgstr "Road2Mayotte" #: src/translate.c:433 msgid "La Linuxerie" msgstr "La Linuxerie" #: src/translate.c:434 msgid "Audioptimisation by Dzef" msgstr "Audioptimisation von Dzef" #: src/translate.c:435 msgid "Tuxfamily" msgstr "Tuxfamily" #: src/translate.c:436 msgid "Framasoft" msgstr "Framasoft" #: src/translate.c:437 msgid "Ekd (EnKoDeur-Mixeur)" msgstr "Ekd (EnKoDeur-Mixeur)" #: src/translate.c:438 msgid "Bishop's page" msgstr "Bishops Seite" #: src/translate.c:439 msgid "Je suis libre" msgstr "Je suis libr" #: src/translate.c:440 msgid "Debian Multimedia" msgstr "Debian Multimedia" #: src/translate.c:441 msgid "" "\n" "Forum\n" msgstr "" "\n" "Foren\n" #: src/translate.c:442 msgid "XCFA Vorstellung " msgstr "XCFA Vorstellung " #: src/translate.c:443 msgid "XCFA LinuxForen.de" msgstr "XCFA LinuxForen.de" #: src/translate.c:444 msgid "Forum Xcfa" msgstr "Xcfa-Forum" #: src/translate.c:445 msgid "" "\n" "Documentation\n" msgstr "" "\n" "Dokumentation\n" #: src/translate.c:446 msgid "Wiki Xcfa par Shankarius" msgstr "Xcfa-Wiki von Shankarius" #: src/translate.c:447 msgid "Doc Xcfa par Patachon" msgstr "Xcfa-Anleitung von Patachon" #: src/translate.c:448 msgid "Ogg Vorbis explique par Shankarius" msgstr "Ogg Vorbis erklärt von Shankarius" #: src/translate.c:449 msgid "La normalisation expliquee par Dzef" msgstr "Die Normalisierung erklärt von Dzef" #: src/translate.c:450 msgid "Xcfa sur Linux On The Root" msgstr "Xcfa auf Linux On The Root" #: src/translate.c:451 msgid " Contributions " msgstr " Beiträge" #: src/translate.c:452 msgid " License " msgstr " Lizenz " #: src/translate.c:453 msgid "OK" msgstr "OK" #: src/web.c:173 src/web.c:234 msgid "PAS de navigateur present" msgstr "Es ist kein Internet-Browser installiert" #: src/web.c:174 msgid "L'acces au web est impossible car aucun navigateur" msgstr "Ein Zugriff auf das Web ist nicht möglich, da ein Webbrowser" #: src/web.c:176 msgid "n'est present dans votre configuration." msgstr "nicht in Ihrer Konfiguration vorhanden ist." #: src/web.c:178 msgid "Veuillez installez un navigateur." msgstr "Installieren Sie bitte einen Internet-Browser." #: src/web.c:188 msgid "Vous devez ouvrir l'acces internet" msgstr "Sie müssen einen Internet-Zugang einstellen" #: src/web.c:236 msgid " L'acces au web est impossible car aucun navigateur" msgstr " Ein Zugriff auf das Web ist nicht möglich, da ein Webbrowser" #: src/web.c:238 msgid " n'est present dans votre configuration." msgstr " nicht in Ihrer Konfiguration vorhanden ist." #: src/web.c:240 msgid " Veuillez installez un navigateur." msgstr " Installieren Sie bitte einen Internet-Browser." #: src/web.c:250 msgid "L'application est absente." msgstr "Die Anwendung ist nicht vorhanden." #: src/web.c:251 msgid "Veuillez installer : " msgstr "Bitte installieren : " #: src/win_about.c:130 msgid " Xcfa sur le web" msgstr " xcfa im Web " #: src/win_about.c:180 msgid "" "\n" "Au tout debut:\n" "\n" "Serres Patrick, Hamann Regis, Fabien Gregis, @Dzef, @alteo_gange, \n" "@Leonux, @zarer, @Shankarius, @bishop, @Ludo, @Patachonf,\n" "... ;-)\n" "\n" "" msgstr "" "\n" "Zuerst:\n" "\n" "Serres Patrick, Hamann Regis, Fabien Gregis, @Dzef, @alteo_gange, \n" "@Leonux, @zarer, @Shankarius, @bishop, @Ludo, @Patachonf,\n" "... ;-)\n" "\n" "" #: src/win_scan.c:161 msgid "Waiting ..." msgstr "Warte ..." #~ msgid "Quantification" #~ msgstr "Quantisierung" #~ msgid "Voie" #~ msgstr "Voice" #~ msgid " Frequence - Hertz " #~ msgstr " Frequenz - Hertz " #~ msgid "Cellule" #~ msgstr "Zelle" #~ msgid "Colonne" #~ msgstr "Spalte" #~ msgid " Cacher Xcfa " #~ msgstr " Verstecken Xcfa " #~ msgid " Montrer Xcfa " #~ msgstr " Show Xcfa " #~ msgid " Quitter Xcfa " #~ msgstr " Beenden Xcfa " #~ msgid "" #~ "XCFA\n" #~ "Programme pour convertir les fichiers audio." #~ msgstr "" #~ "XCFA\n" #~ "Programm zur Konvertierung von Audio-Dateien." xcfa-4.3.6/po/en.po0000644000175000017500000020532412224542443010756 00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Free Software Foundation, Inc. # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: xcfa 4.2.8\n" "Report-Msgid-Bugs-To: xcfa@tuxfamily.org\n" "POT-Creation-Date: 2013-10-07 16:28+0200\n" "PO-Revision-Date: 2010-08-21 18:45+0100\n" "Last-Translator: Gerry Butler \n" "Language-Team: English \n" "Language: en\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: src/cd_audio.c:812 src/dvd.c:680 src/dvd.c:1324 msgid "MPLAYER deja en action" msgstr "MPLAYER already in action" #: src/cd_audio.c:813 src/dvd.c:681 src/dvd.c:1325 msgid "MPLAYER est deja utilise !!" msgstr "MPLAYER is already in use !!" #: src/cd_audio.c:1224 src/cd_audio.c:1230 src/dvd.c:867 src/file.c:2829 msgid "(Click Droit = Menu) / En attente de selection." msgstr "(Right click = Menu) / Waiting for selection." #: src/cd_audio.c:1227 src/file.c:2826 msgid "Le programme externe d'extraction est absent." msgstr "The external ripping program is missing" #: src/cd_audio.c:1233 src/file.c:2832 msgid "(Click Droit = Menu) / En attente de selection. Le fichier existe." msgstr "(Right click = Menu) / Waiting for Selection. File exists." #: src/cd_audio.c:1236 src/file.c:2835 msgid "(Click Droit = Menu) / En selection." msgstr "(Right click = Menu) / Selected files" #: src/cd_audio.c:1239 src/file.c:2841 msgid "(Click Droit = Menu) / Selection avec options expert." msgstr "(Right click = Menu) / Selection - expert mode." #: src/cd_audio.c:1242 src/file.c:2838 msgid "(Click Droit = Menu) / En selection. Le fichier existe." msgstr "(Right click = Menu) / Selected files. File exists." #: src/cd_audio.c:1245 src/file.c:2844 msgid "" "(Click Droit = Menu) / Selection avec options expert. Le fichier existe." msgstr "(Right click = Menu) / Selection - expert mode. File exists." #: src/cd_audio.c:1254 msgid "" "(Click Droit = Menu) / Possibilite d'ajustement INDIVIDUEL ou COLLECTIF " "maximal du volume" msgstr "" "(Right click = Menu) / Possibilities for individual adaptation or maximum " "collection volume" #: src/cd_audio.c:1259 msgid "(Click Droit = Menu) / Ajustement INDIVIDUEL maximal du volume" msgstr "(Click Droit = Menu) / INDIVIDUAL maximum volume adjustment" #: src/cd_audio.c:1262 msgid "(Click Droit = Menu) / Ajustement COLLECTIF maximal du volume" msgstr "(Click Droit = Menu) / COLLECTIVE maximum volume adjustment" #: src/cd_audio.c:1502 src/dvd.c:1099 src/file.c:3139 src/translate.c:331 #: src/translate.c:342 src/translate.c:361 msgid "Play" msgstr "Play" #: src/cd_audio.c:1543 src/file.c:3204 src/translate.c:343 src/translate.c:364 msgid "Wav" msgstr "Wav" #: src/cd_audio.c:1564 src/file.c:3223 src/translate.c:344 src/translate.c:365 msgid "Flac" msgstr "Flac" #: src/cd_audio.c:1584 src/file.c:3242 src/translate.c:345 src/translate.c:366 msgid "Ape" msgstr "Ape" #: src/cd_audio.c:1604 src/file.c:3261 msgid "WavP" msgstr "WavP" #: src/cd_audio.c:1624 src/file.c:3280 src/translate.c:347 src/translate.c:368 msgid "Ogg" msgstr "Ogg" #: src/cd_audio.c:1645 src/file.c:3299 src/translate.c:348 src/translate.c:369 msgid "M4a" msgstr "M4a" #: src/cd_audio.c:1666 src/file.c:3318 src/translate.c:349 src/translate.c:370 msgid "Aac" msgstr "Aac" #: src/cd_audio.c:1686 src/file.c:3337 msgid "Mpc" msgstr "Mpc" #: src/cd_audio.c:1706 src/file.c:3356 src/translate.c:351 src/translate.c:372 msgid "Mp3" msgstr "Mp3" #: src/cd_audio.c:1727 src/translate.c:352 msgid "Num" msgstr "Num" #: src/cd_audio.c:1742 src/translate.c:353 src/translate.c:373 #: src/translate.c:398 src/translate.c:406 msgid "Time" msgstr "Time" #: src/cd_audio.c:1757 src/dvd.c:1167 src/file.c:3392 src/translate.c:335 #: src/translate.c:354 src/translate.c:374 msgid "Normalise" msgstr "Normalise" #: src/cd_audio.c:1782 src/dvd.c:1187 src/file.c:3434 src/file_mp3ogg.c:958 #: src/file_tags.c:1191 src/file_wav.c:824 src/prg_init.c:609 #: src/translate.c:336 src/translate.c:355 src/translate.c:376 #: src/translate.c:388 src/translate.c:399 src/translate.c:407 msgid "Nom" msgstr "Name" #: src/cd_audio.c:2511 msgid " Parametrage CDDB: [ Nom du serveur ]" msgstr " Setting up CDDB: [ Server name ]" #: src/cd_audio.c:2520 msgid " Parametrage PROXY: [ serveur ] [ port ]" msgstr " Proxy settings: [ server ] [ port ] " #: src/cd_audio.c:2530 src/translate.c:95 msgid " Serveur " msgstr " Server " #: src/cd_audio_extract.c:673 #, c-format msgid "" "[Erreur du segment numero: %d]\n" "%d) Lecture PASS 1/2\n" msgstr "" "[Error on segment #%d]\n" "%d) Playing PASS 1/2\n" #: src/cd_audio_extract.c:680 #, c-format msgid "" "--> Deja %d fois 2 lectures du segment %d!\n" " Abandon :/\n" msgstr "" "--> Segment %d already read two %d times!\n" " Abandon :/\n" #: src/cd_audio_extract.c:700 #, c-format msgid "%d) Lecture PASS 2/2\n" msgstr "%d) Read PASS 2/2\n" #: src/cd_audio_extract.c:780 #, c-format msgid "" "\n" "[Piste: %d]\n" msgstr "" "\n" "[Track: %d]\n" #: src/cd_audio_extract.c:784 msgid "Extraction mode expert PASS 1/2\n" msgstr "Ripping expert mode PASS 1/2\n" #: src/cd_audio_extract.c:795 msgid "Extraction mode expert PASS 2/2\n" msgstr "Ripping expert mode PASS 2/2\n" #: src/cd_audio_extract.c:803 msgid "Controle du contenu des fichiers extraits\n" msgstr "Control the content of the extracted files\n" #: src/cd_audio_extract.c:1710 src/cd_audio_extract.c:1712 msgid "XCFA: Extraction CD" msgstr "XCFA: CD Ripping" #: src/cd_audio_extract.c:1710 src/dvd_extract.c:412 src/file_action.c:183 #: src/file_mp3ogg_conv.c:329 src/file_wav_conv.c:343 msgid "Ok" msgstr "Okay" #: src/cd_audio_extract.c:1712 src/dvd_extract.c:414 src/file_action.c:185 #: src/file_mp3ogg_conv.c:331 src/file_wav_conv.c:345 msgid "Arret par l'utilisateur" msgstr "Stopped by user" #: src/cd_audio_extract.c:1983 msgid "Nom de fichier unique absent" msgstr "File name not found" #: src/cd_audio_extract.c:1984 msgid "Veuillez saisir un nom pour le fichier unique" msgstr "Please enter a file name" #: src/cd_audio_toc.c:156 msgid "cdda2wav and icedax NOT FOUND" msgstr "cdda2wav and icedax NOT FOUND" #: src/cd_audio_toc.c:157 msgid "Please, install packages [ icedax, cdda2wav ]" msgstr "Please, install packages [ icedax, cdda2wav ]" #: src/cd_audio_toc.c:163 msgid "icedax NOT FOUND" msgstr "icedax NOT FOUND" #: src/cd_audio_toc.c:164 msgid "Please, install package [ icedax ]" msgstr "Please, install package [ icedax ]" #: src/cd_audio_toc.c:170 msgid "cdda2wav NOT FOUND" msgstr "cdda2wav NOT FOUND" #: src/cd_audio_toc.c:171 msgid "Please, install package [ cdda2wav ]" msgstr "Please, install package [ cdda2wav ]" #: src/cd_audio_toc.c:180 msgid "cdparanoia NOT FOUND" msgstr "cdparanoia NOT FOUND" #: src/cd_audio_toc.c:181 msgid "Please, install package [ cdparanoia ]" msgstr "Please, install package [ cdparanoia ]" #: src/cd_audio_toc.c:188 msgid "cd-discid NOT FOUND" msgstr "cd-discid NOT FOUND" #: src/cd_audio_toc.c:189 msgid "Please, install packages [ cd-discid ]" msgstr "Please, install package [ cd-discid ]" #: src/cd_audio_toc.c:203 msgid "ERREUR datas proxy" msgstr "ERROR datas proxy" #: src/cd_audio_toc.c:204 msgid "Veuillez renseigner les champs du proxy" msgstr "Please complete all fields proxy" #: src/cd_curl.c:734 src/web.c:187 msgid "La liaison internet est absente" msgstr "A web connection is missing" #: src/cd_curl.c:1204 msgid "Couldn't find CD" msgstr "Couldn't find CD" #: src/cd_curl.c:1267 msgid "No Audio CD" msgstr "No Audio CD" #: src/dvd.c:859 msgid "" "(Click Droit = Menu) / PEAK-ALBUM: Amplification maximale du volume pour un " "groupe de fichiers en respectant les ecarts de niveau entre chacun d'eux." msgstr "" "(Right click = Menu) / Maximum volume amplification of a group of files " "keeping the level difference between each of them" #: src/dvd.c:862 msgid "" "(Click Droit = Menu) / PEAK: Amplification maximale du volume pour chaque de " "fichier." msgstr "" "(Right click = Menu) / PEAK: Maximum volume amplification for each file" #: src/dvd.c:900 src/dvd.c:920 msgid "En attente de selection. Un click activera la conversion vers 2 canaux." msgstr "" "Waiting for selection. A click will activate the conversion to 2 channels." #: src/dvd.c:912 msgid "Conversion vers 2 canaux." msgstr "Conversion to 2 channels." #: src/dvd.c:924 #, c-format msgid "Conversion vers %s canaux." msgstr "Conversion to %s channels." #: src/dvd.c:929 #, c-format msgid "" "Conversion vers 2 canaux. Un second click activera la conversion vers %s " "canaux." msgstr "" "Conversion to 2 channels. A second click will activate the conversion to %s " "channels." #: src/dvd.c:944 msgid "Musique en ecoute." msgstr "Playing music." #: src/dvd.c:947 msgid "Musique en attente." msgstr "Music paused." #: src/dvd.c:962 #, c-format msgid "Total selection%s: %d, 2ch: %d" msgstr "Total selection%s: %d, 2ch: %d" #: src/dvd.c:963 msgid "s" msgstr "s" #: src/dvd.c:969 msgid "Ce fichier ne peut etre extrait !" msgstr "This file can not be ripped !" #: src/dvd.c:1087 msgid "Titres" msgstr "Titls" #: src/dvd.c:1111 src/file.c:3375 src/file_mp3ogg.c:943 src/file_tags.c:1175 #: src/translate.c:332 msgid "Temps" msgstr "Time" #: src/dvd.c:1123 src/translate.c:333 msgid "Format" msgstr "Format" #: src/dvd.c:1135 src/translate.c:334 msgid "Choix" msgstr "Choice" #: src/dvd.c:1249 msgid "Fichier structure DVD" msgstr "DVD file structure" #: src/dvd.c:1299 msgid "Le DVD est absent du lecteur." msgstr "The DVD player is absent." #: src/dvd.c:1335 msgid "Scan ..." msgstr "Scan ..." #: src/dvd.c:1385 msgid "lsdvd est absent !" msgstr "lsdvd is missing !" #: src/dvd.c:1386 msgid "Il faut installer le programme: lsdvd" msgstr "You must install the program: lsdvd" #: src/dvd_extract.c:412 src/dvd_extract.c:414 msgid "XCFA: Extraction DVD" msgstr "XCFA: DVD rip" #: src/dvd_read.c:263 #, c-format msgid "Titre [%02d ** ]" msgstr "Title [%02d ** ]" #: src/dvd_read.c:266 #, c-format msgid "Titre [%02d]" msgstr "Title [%02d]" #: src/dvd_read.c:310 #, c-format msgid "Fichier_complet_%02d_%s" msgstr "Completed_file_%02d_%s" #: src/dvd_read.c:355 #, c-format msgid "Chapitre: [%02d]" msgstr "Chapter: [%02d]" #: src/dvd_read.c:401 #, c-format msgid "Titre_%02d_Chapitre_%02d_audio_%02d_%s" msgstr "Title_%02d_Chapter_%02d_audio_%02d_%s" #: src/file_action.c:183 src/file_action.c:185 msgid "XCFA: Traitement fichiers" msgstr "XCFA: Processing files" #: src/file_analyze.c:731 msgid "Package checkmp3 (mp3check) NOT FOUND !" msgstr "Package checkmp3 (mp3check) NOT FOUND !" #: src/file_analyze.c:732 msgid "" "Veuillez installer checkmp3 ou mp3check pour\n" "la prise en compte des fichiers mp3" msgstr "" "Please install or checkmp3 mp3check for\n" "consideration of mp3 files" #: src/file.c:328 #, c-format msgid "Total fichiers: %d, Selections: %d" msgstr "Total files: %d, Selected: %d" #: src/file.c:442 msgid "CAPACITE DOSSIER TEMPORAIRE TROP FAIBLE" msgstr "TEMPORARY CAPACITY TOO LOW" #: src/file.c:443 msgid "Pas assez de place dans le dossier temporaire" msgstr "WARNING: Not enough space available in the temp folder." #: src/file.c:449 msgid "Veuillez deselectionner des PeakGroup." msgstr "Please deselect PeakGroup." #: src/file.c:1433 msgid "Conversion(s) vers la source" msgstr "Conversion(s) to source" #: src/file.c:1434 msgid "Choix d'une nouvelle destination" msgstr "Select a new destination" #: src/file.c:1504 msgid "Select type: --" msgstr "Select type: -" #: src/file.c:1589 msgid "Peak/album" msgstr "Peak/album" #: src/file.c:1590 msgid "Peak" msgstr "Peak" #: src/file.c:1591 msgid "Mix (scan)Rms/album" msgstr "Mix (scan)Rms/album" #: src/file.c:1592 msgid "Fix (scan)Rms" msgstr "Fix (scan)Rms" #: src/file.c:2853 #, c-format msgid "MAX FICHIERS ATTEINT = %d" msgstr "MAX FILES REACHED = %d" #: src/file.c:2863 msgid "Normalise: En attente de selection." msgstr "Normalise: Waiting for selection." #: src/file.c:2867 msgid "ATTENTION: Pas assez de place dans le dossier temporaire." msgstr "WARNING: Not enough space available in the temp folder." #: src/file.c:2870 msgid "" "PEAK-ALBUM: Amplification maximale du volume pour un groupe de fichiers en " "respectant les ecarts de niveau entre chacun d'eux." msgstr "" "PEAK-ALBUM: Maximum volume amplification for a group of files according to " "the deviations in level between them" #: src/file.c:2874 msgid "PEAK: Amplification maximale du volume pour chaque de fichier." msgstr "PEAK: Maximum volume amplification of each file." #: src/file.c:2877 msgid "" "RMS-ALBUM: Ajustement du volume moyen pour un groupe de fichiers en " "respectant les ecarts de niveau moyen entre chacun d'eux." msgstr "" "RMS-ALBUM: Adjusting the average volume for a group of files according to " "the average level of deviation between them." #: src/file.c:2880 msgid "RMS: Ajustement du volume moyen de chaque de fichier." msgstr "RMS: Average volume amplification of each file." #: src/file.c:2894 msgid "(Click Droit = Menu) / ReplayGain: En attente de selection." msgstr "(Click Droit = Menu) / ReplayGain: Waiting for selection." #: src/file.c:2897 msgid "(Click Droit = Menu) / Mode piste." msgstr "(Click Droit = Menu) / Track mode." #: src/file.c:2900 msgid "(Click Droit = Menu) / Mode album." msgstr "(Click Droit = Menu) / Album mode." #: src/file.c:2903 msgid "(Click Droit = Menu) / Mode effacer." msgstr "(Click Droit = Menu) / Erase mode." #: src/file.c:3015 msgid "" "(Click Droit = Menu) / Cliquez ici pour envoyer ce fichier apres traitement " "a la corbeille" msgstr "" "(Click Droit = Menu) / Click here to send the processed file to the trash" #: src/file.c:3018 msgid "" "(Click Droit = Menu) / Ce fichier sera dirige apres traitement vers la " "corbeille" msgstr "" "(Right Click = Menu) / This file will be sent to the trash after processing" #: src/file.c:3152 src/file_trash.c:359 src/translate.c:362 msgid "Trash" msgstr "Trash" #: src/file.c:3172 src/file_mp3ogg.c:883 src/file_tags.c:1160 #: src/translate.c:363 src/translate.c:394 src/translate.c:405 msgid "Type" msgstr "Type" #: src/file.c:3411 msgid "ReplayGain" msgstr "ReplayGain" #: src/file_conv.c:2835 src/file_mp3ogg_conv.c:336 msgid "Erreur depuis MPLAYER !" msgstr "Error since MPLAYER !" #: src/file_conv.c:2836 src/file_conv.c:2848 src/file_mp3ogg_conv.c:337 #: src/file_mp3ogg_conv.c:349 msgid "Vous pouvez activer XCFA en ligne de commande avec: " msgstr "You can enable XCFA command line with: " #: src/file_conv.c:2838 src/file_conv.c:2850 src/file_mp3ogg_conv.c:339 #: src/file_mp3ogg_conv.c:351 msgid "$ xcfa -verbose" msgstr "$ xcfa -verbose" #: src/file_conv.c:2840 src/file_mp3ogg_conv.c:341 msgid "pour consulter le type d'erreur renvoye par mplayer." msgstr "to see the type of error returned by mplayer." #: src/file_conv.c:2847 src/file_mp3ogg_conv.c:348 msgid "Erreur depuis SOX !" msgstr "Error since SOX !" #: src/file_conv.c:2852 src/file_mp3ogg_conv.c:353 msgid "pour consulter le type d'erreur renvoye par sox." msgstr "to see the type of error returned by sox." #: src/file_mp3ogg.c:668 msgid "Click droit: acces popup" msgstr "Right click: access popup" #: src/file_mp3ogg.c:899 src/translate.c:395 msgid "Bitrate" msgstr "Bitrate" #: src/file_mp3ogg.c:915 msgid "Nouveau bitrate" msgstr "New bitrate" #: src/file_mp3ogg.c:929 msgid "Taille" msgstr "Size" #: src/file_mp3ogg_conv.c:329 src/file_mp3ogg_conv.c:331 msgid "XCFA: Modification bitrate" msgstr "XCFA: Bitrate change" #: src/file_mp3ogg_conv.c:432 #, c-format msgid " ATTENTION: Il faut installer %s%s%s" msgstr " WARNING : you need to install %s%s%s" #: src/file_mp3ogg_conv.c:440 #, c-format msgid " ATTENTION: Il faut installer %s%s" msgstr " WARNING : you need to install %s%s" #: src/file_mp3ogg_conv.c:447 #, c-format msgid " ATTENTION: Il faut installer %s" msgstr " WARNING : you need to install %s" #: src/file_mp3ogg_conv.c:454 msgid "Package NOT FOUND !" msgstr "Package NOT FOUND !" #: src/fileselect.c:105 msgid "Choix d'un dossier de destination" msgstr "Select a destination folder" #: src/fileselect.c:106 msgid "Choix d'un fichier CUE WAV FLAC OGG MP3 APE WMA" msgstr "Select CUE WAV FLAC OGG MP3 APE WMA files" #: src/fileselect.c:107 msgid "Choix d'un fichier musical" msgstr "Selecting a music file" #: src/fileselect.c:108 msgid "Choix d'un fichier" msgstr "Select a file" #: src/fileselect.c:109 msgid "Choix de fichiers" msgstr "Select files" #: src/fileselect.c:110 msgid "Choix de fichiers WAV" msgstr "Select a WAV file" #: src/fileselect.c:111 msgid "Choix de fichiers MP3/OGG" msgstr "Select MP3/OGG file" #: src/fileselect.c:112 msgid "Choix de fichiers FLAC MPC OGG MP3" msgstr "Select FLAC MPC OGG MP3 files" #: src/fileselect.c:113 msgid "Importer des images pour la pochette" msgstr "Import images for the cover" #: src/fileselect.c:114 msgid "Choix d'un chemin de stockage des images" msgstr "Select location for image storage" #: src/fileselect.c:115 msgid "Choix d'un lieu de sauvegarde" msgstr "Select a backup location" #: src/fileselect.c:472 src/fileselect.c:595 src/fileselect.c:605 #: src/fileselect.c:628 msgid "All Files (*.*)" msgstr "All Files (*.*)" #: src/file_trash.c:360 msgid "Trash files ..." msgstr "Trash files ..." #: src/file_wav.c:483 msgid "(Click Droit = Menu) / Choix de la frequence" msgstr "(Right Click = Menu) / Select frequency" #: src/file_wav.c:486 msgid "(Click Droit = Menu) / Choix du nombre de pistes (voies)" msgstr "(Right Click = Menu) / Select number of tracks (channels)" #: src/file_wav.c:489 msgid "(Click Droit = Menu) / Choix du codage en nombre de bits" msgstr "(Right Click = Menu) / Encoding selection in number of bits" #: src/file_wav.c:733 msgid "Frequence" msgstr "Frequency" #: src/file_wav.c:749 msgid "FREQUENCE" msgstr "FREQUENCY" #: src/file_wav.c:763 msgid "Piste" msgstr "Track" #: src/file_wav.c:779 msgid "PISTE" msgstr "TRACK" #: src/file_wav.c:793 msgid "Quantification" msgstr "Quantification" #: src/file_wav.c:809 msgid "QUANTIFICATION" msgstr "QUANTIFICATION" #: src/file_wav_conv.c:261 #, c-format msgid "%s Copie fichier: %d%%" msgstr "%s Copy file: %d%%" #: src/file_wav_conv.c:271 #, c-format msgid "%s Restitution fichier: %d%%" msgstr "%s Return file: %d%%" #: src/file_wav_conv.c:281 #, c-format msgid "%s Traitement Sox: %d%%" msgstr "%s Use Sox: %d%%" #: src/file_wav_conv.c:298 #, c-format msgid "%s Traitement Mplayer: %d%%" msgstr "%s Use Mplayer: %d%%" #: src/file_wav_conv.c:343 src/file_wav_conv.c:345 msgid "XCFA: Conversions WAV TO WAV" msgstr "XCFA: Conversions WAV TO WAV" #: src/main.c:398 msgid "= Adressage memoire invalide\n" msgstr "= Invalid memory address\n" #: src/main.c:401 msgid "= Vous avez probablement trouve un bug dans XCFA\n" msgstr "= You've probably found a bug in XCFA\n" #: src/main.c:786 msgid "MODE ADMINISTRATEUR" msgstr "ADMINISTRATOR MODE" #: src/main.c:788 msgid " Vous ne devriez pas utiliser " msgstr " You should not use " #: src/main.c:790 msgid " XCFA sous ROOT !" msgstr " XCFA under ROOT !" #: src/options.c:171 msgid "ERREUR: Lieu de stockage non autorise !" msgstr "ERROR : storage location not permitted !" #: src/options.c:172 msgid "Veuillez recommencer." msgstr "Please start again." #: src/options_cd.c:122 msgid "Pour evaluer les templates, vous devez activer une lecture de cdaudio" msgstr "To assess the templates, you must enable a reading cdaudio" #: src/options_faac.c:96 msgid "Transport Stream (ADTS) - Extension .aac" msgstr "Transport Stream (ADTS) - Extension .aac" #: src/options_faac.c:97 msgid "MPEG-4 File Format (MP4) - Extension .m4a" msgstr "MPEG-4 File Format (MP4) - Extension .m4a" #: src/options_flac.c:67 msgid "0 (Rapide)" msgstr "0 (Fast)" #: src/options_flac.c:75 msgid "8 (Lent)" msgstr "8 (Slow)" #: src/options_mp3.c:279 msgid "V0 (meilleure qualite)" msgstr "V0·····(Best quality)" #: src/options_mp3.c:288 msgid "V9 (moins bonne qualite)" msgstr "V9·····(Poor quality)" #: src/options_musepack.c:70 msgid "telephone: lowest quality : 32 .. 48 kbit/s" msgstr "Phone: (Lowest quality) : 32 .. 48 kbit/s" #: src/options_musepack.c:71 msgid "thumb : low quality/internet : 58 .. 86 kbit/s" msgstr "thumb : low quality/internet : 58 .. 86 kbit/s" #: src/options_musepack.c:72 msgid "radio : medium (MP3) quality : 112 .. 152 kbit/s" msgstr "radio : medium (MP3) quality : 112 .. 152 kbit/s" #: src/options_musepack.c:73 msgid "standard : high quality (dflt) : 142 .. 184 kbit/s" msgstr "standard : high quality (dflt) : 142 .. 184 kbit/s" #: src/options_musepack.c:74 msgid "xtreme : extreme high quality : 168 .. 212 kbit/s" msgstr "xtreme : extreme high quality : 168 .. 212 kbit/s" #: src/options_musepack.c:75 msgid "insane : extreme high quality : 232 .. 268 kbit/s" msgstr "insane : extreme high quality : 232 .. 268 kbit/s" #: src/options_musepack.c:76 msgid "braindead : extreme high quality : 232 .. 278 kbit/s" msgstr "braindead : extreme high quality : 232 .. 278 kbit/s" #: src/options_oggenc.c:138 msgid "Qualite -1 (Moins bonne qualite)" msgstr "Quality -1 (Poor quality)" #: src/options_oggenc.c:139 src/popup.c:1219 msgid "Qualite 0" msgstr "Quality 0" #: src/options_oggenc.c:140 src/popup.c:1219 msgid "Qualite 1" msgstr "Quality 1" #: src/options_oggenc.c:141 src/popup.c:1219 msgid "Qualite 2" msgstr "Quality 2" #: src/options_oggenc.c:142 msgid "Qualite 3" msgstr "Quality 3" #: src/options_oggenc.c:143 src/popup.c:1220 msgid "Qualite 4" msgstr "Quality 4" #: src/options_oggenc.c:144 src/popup.c:1220 msgid "Qualite 5" msgstr "Quality 5" #: src/options_oggenc.c:145 src/popup.c:1220 msgid "Qualite 6" msgstr "Quality 6" #: src/options_oggenc.c:146 src/popup.c:1220 msgid "Qualite 7" msgstr "Quality 7" #: src/options_oggenc.c:147 src/popup.c:1221 msgid "Qualite 8" msgstr "Quality 8" #: src/options_oggenc.c:148 src/popup.c:1221 msgid "Qualite 9" msgstr "Quality 9" #: src/options_oggenc.c:149 msgid "Qualite 10 (Meilleure qualite)" msgstr "Quality 10 (Best quality)" #: src/options_oggenc.c:179 src/options_wavpack.c:181 #: src/options_wavpack.c:204 src/options_wavpack.c:227 src/popup.c:1223 msgid "Oui" msgstr "Yes" #: src/options_oggenc.c:180 src/options_wavpack.c:148 #: src/options_wavpack.c:180 src/options_wavpack.c:203 #: src/options_wavpack.c:226 src/options_wavpack.c:247 src/popup.c:1223 msgid "Non" msgstr "No" #: src/options_oggenc.c:201 msgid "Mono force" msgstr "Force mono" #: src/options_oggenc.c:202 msgid "Stereo" msgstr "Stereo" #: src/options_wavpack.c:100 msgid "Mode normal" msgstr "Standard" #: src/options_wavpack.c:101 msgid "Mode rapide de compression" msgstr "Fast (Faster encode and decode)" #: src/options_wavpack.c:102 msgid "Bonne qualite de compression" msgstr "High quality (Better compression ratio)" #: src/options_wavpack.c:103 msgid "Meilleure qualite de compression" msgstr "Very high quality (Best compression but slowest)" #: src/options_wavpack.c:129 msgid "stereo left/right" msgstr "stereo left/right" #: src/options_wavpack.c:130 msgid "stereo mid/side" msgstr "stereo mid/side" #: src/options_wavpack.c:248 msgid "1 (fast / rapide)" msgstr "1 (fast)" #: src/options_wavpack.c:253 msgid "6 (very slow / tres lent)" msgstr "6 (very slow)" #: src/play_file.c:108 msgid "PAS de lecteur audio present" msgstr "NO audio player present" #: src/play_file.c:109 msgid "Veuillez installez un lecteur audio." msgstr "Please install an audio player" #: src/poche_dir.c:430 msgid "" "Utilisez le glisser / deplacer - Effacer une image avec Ctrl + " "Click" msgstr "" "Use drag / drop - delete an image with Ctrl +Click" #: src/poche_save.c:111 msgid "Nom de fichier absent !!" msgstr "File name not found !!" #: src/poche_save.c:112 src/poche_web.c:353 src/poche_web.c:375 msgid "Pour resoudre ce probleme:" msgstr "To solve this problem :" #: src/poche_save.c:115 msgid "Saisissez un nom de fichier sans extention" msgstr "Enter a file name without extension" #: src/poche_save.c:126 msgid "Sauvegarde aux formats PDF et PostScript" msgstr "Saving to PDF and PostScript" #: src/poche_save.c:151 msgid "Sauvegarde au format PNG" msgstr "Saving as PNG" #: src/poche_web.c:352 msgid "Aucun fichier trouve !" msgstr "No file found !" #: src/poche_web.c:356 msgid "Modifiez la chaine de recherche et" msgstr "Modify the search parameters and" #: src/poche_web.c:358 src/poche_web.c:380 msgid "recommencez." msgstr "start again" #: src/poche_web.c:374 msgid "Critere de recherche absent !!" msgstr "Search criteria away !!" #: src/poche_web.c:378 msgid "Saisissez une chaine de recherche et" msgstr "Enter a search string and" #: src/poche_web.c:387 msgid "[Recherche des fichiers images]" msgstr "[Search images files]" #: src/popup.c:81 src/popup.c:100 msgid " Deselection globale" msgstr " Deselect all" #: src/popup.c:82 src/popup.c:101 src/popup.c:162 msgid " Deselection verticale" msgstr " Vertically deselect" #: src/popup.c:83 src/popup.c:102 msgid " Deselection horizontale" msgstr " Horizontally deselect" #: src/popup.c:84 src/popup.c:87 src/popup.c:103 src/popup.c:106 #: src/popup.c:120 src/popup.c:133 src/popup.c:147 msgid " ---" msgstr " ---" #: src/popup.c:85 src/popup.c:104 msgid " Selection verticale" msgstr " Vertically select" #: src/popup.c:86 src/popup.c:105 msgid " Selection Expert verticale" msgstr " Vertical expert select" #: src/popup.c:88 src/popup.c:107 msgid " Selection horizontale" msgstr " Horizontally select" #: src/popup.c:89 src/popup.c:108 msgid " Selection Expert horizontale " msgstr " Horizontal expert select" #: src/popup.c:119 src/popup.c:132 msgid " Deselection verticale " msgstr " Vertically deselect " #: src/popup.c:121 src/popup.c:134 msgid " Selection verticale " msgstr " Vertically select " #: src/popup.c:145 msgid "---SELECTION VERTICALE-----" msgstr "---VERTICAL SELECTION------" #: src/popup.c:146 msgid " Deselection verticale " msgstr " Vertically deselect " #: src/popup.c:148 msgid " Selection PISTE " msgstr " TRACK selection " #: src/popup.c:149 msgid " Selection ALBUM " msgstr " ALBUM selection " #: src/popup.c:150 msgid " Selection NETTOYER " msgstr " ERASE selection " #: src/popup.c:161 msgid "---MENU TRASH--------------" msgstr "---TRASH MENU--------------" #: src/popup.c:163 msgid " Selection verticale " msgstr " Vertically select " #: src/popup.c:489 msgid "1 piste" msgstr "1 track" #: src/popup.c:492 msgid "2 pistes" msgstr "2 track" #: src/popup.c:495 msgid "4 pistes" msgstr "4 track" #: src/popup.c:498 msgid "6 pistes" msgstr "6 track" #: src/popup.c:504 src/popup.c:619 src/popup.c:716 msgid "Valeur d'origine" msgstr "Original value" #: src/popup.c:592 msgid " 8000 Hertz" msgstr " 8000 Hertz" #: src/popup.c:595 msgid "22000 Hertz" msgstr "22000 Hertz" #: src/popup.c:598 msgid "32000 Hertz" msgstr "32000 Hertz" #: src/popup.c:601 msgid "44056 Hertz" msgstr "44056 Hertz" #: src/popup.c:604 msgid "44100 Hertz" msgstr "44100 Hertz" #: src/popup.c:607 msgid "48000 Hertz" msgstr "48000 Hertz" #: src/popup.c:610 msgid "88200 Hertz" msgstr "88200 Hertz" #: src/popup.c:613 msgid "96000 Hertz" msgstr "96000 Hertz" #: src/popup.c:698 msgid " 8 bits" msgstr " 8 bits" #: src/popup.c:701 msgid "16 bits" msgstr "16 bits" #: src/popup.c:704 msgid "24 bits" msgstr "24 bits" #: src/popup.c:707 msgid "32 bits" msgstr "32 bits" #: src/popup.c:710 msgid "64 bits" msgstr "64 bits" #: src/popup.c:765 msgid "Selecteur suivant" msgstr "Following selector" #: src/popup.c:769 msgid "Selecteur precedant" msgstr "Previous selector" #: src/popup.c:777 msgid "Supprimer la plage active" msgstr "Delete the active range" #: src/popup.c:849 msgid "Retourner horizontalement" msgstr "Flip Horizontal" #: src/popup.c:853 msgid "Retourner verticalement" msgstr "Flip Vertical" #: src/popup.c:861 msgid "Image au premier plan" msgstr "Foreground image" #: src/popup.c:865 msgid "Image au dessus" msgstr "Image above" #: src/popup.c:869 msgid "Image en dessous" msgstr "Image below" #: src/popup.c:873 msgid "Image au dernier plan" msgstr "Image to the background" #: src/popup.c:881 msgid "Effacer l'image" msgstr "Clear image" #: src/popup.c:918 msgid "Supprimer l'image de la liste" msgstr "Remove image from the list" #: src/popup.c:1036 msgid "V0 [ meilleure qualite ]" msgstr "V0 [ best quality ]" #: src/popup.c:1036 src/popup.c:1039 msgid "V4 [ defaut ]" msgstr "V4 [ default ]" #: src/popup.c:1036 msgid "V9 [ moins bonne qualite ]" msgstr "V9 [ worst quality ]" #: src/popup.c:1219 msgid "Qualite -1 [ Moins bonne qualite ]" msgstr "Quality -1 [ worst quality ]" #: src/popup.c:1220 msgid "Qualite 3 [ Defaut ]" msgstr "Quality 3 [ Default ]" #: src/popup.c:1221 msgid "Qualite 10 [ Meilleure qualite ]" msgstr "Quality 10 [ Best quality ]" #: src/prg_init.c:85 msgid " Decode ATSC A/52 audio streams" msgstr " Decode ATSC A/52 audio streams" #: src/prg_init.c:96 msgid " AAC+ encoder" msgstr " AAC+ encoder" #: src/prg_init.c:107 src/prg_init.c:173 msgid " Extracteur cd audio" msgstr " InCrEdible Digital Audio eXtractor" #: src/prg_init.c:118 msgid " Read CD and get CDDB discid information" msgstr " Read CD and get CDDB discid information" #: src/prg_init.c:129 msgid " Cherche des renseignements sur les formats mp3" msgstr " Check validity of mp3s" #: src/prg_init.c:140 msgid " Audio Codeur freeware" msgstr " MPEG-4 and MPEG-2 AAC encoder" #: src/prg_init.c:151 msgid " MPEG-4 AAC decodeur" msgstr " MPEG-4 AAC decoder" #: src/prg_init.c:162 msgid " Conversion wav : flac" msgstr " Create wav to flac" #: src/prg_init.c:184 msgid " Conversion wav : mp3" msgstr " Create mp3 audio files" #: src/prg_init.c:195 msgid " Cherche les informations d'un dvd" msgstr " Read the contents of a DVD" #: src/prg_init.c:207 msgid " Monkey's Audio Console Front End : APE" msgstr " Monkey's Audio Console Front End : APE" #: src/prg_init.c:219 src/prg_init.c:230 msgid " MusePack commandline utilities" msgstr " MusePack commandline utilities" #: src/prg_init.c:241 msgid " Lecteur et extracteur" msgstr " Video and audio player" #: src/prg_init.c:252 msgid " Normaliseur de fichier mp3" msgstr " Lossless mp3 normaliser" #: src/prg_init.c:263 msgid " Normaliseur de fichier wav" msgstr " wav file normaliser" #: src/prg_init.c:274 msgid " A program to send desktop notifications" msgstr " A program to send desktop notifications" #: src/prg_init.c:285 msgid " Forte compression au format wave" msgstr " High compression for waveform files" #: src/prg_init.c:296 msgid " Decoupage de fichiers sans decodage" msgstr " Split mp3/ogg without decoding" #: src/prg_init.c:307 msgid " Transformation universelle de fichiers son" msgstr " Sound eXchange, the Swiss Army knife of audio manipulation" #: src/prg_init.c:318 msgid " Conversion wav : ogg" msgstr " Convert wav : ogg" #: src/prg_init.c:329 msgid " Normaliseur de fichier ogg" msgstr " ogg file normaliser" #: src/prg_init.c:340 msgid " WAVPACK Hybrid Lossless Audio Compressor" msgstr " Wavpack Hybrid Lossless Audio Compressor" #: src/prg_init.c:357 msgid " ... les paquets: deb " msgstr " ... Packets: deb " #: src/prg_init.c:363 msgid " ... les paquets: tgz " msgstr " ... Packets: tgz " #: src/prg_init.c:369 msgid " ... les paquets: fpm " msgstr " ... Packets: fpm " #: src/prg_init.c:375 msgid " ... les paquets: rpm " msgstr " ... Packets: rpm " #: src/prg_init.c:381 msgid " ... les paquets: pkg.tar.xz " msgstr " ... Packets: pkg.tar.xz " #: src/prg_init.c:387 msgid " ... les paquets: ? " msgstr " ... Packets: ?" #: src/prg_init.c:623 msgid "Status" msgstr "Status" #: src/prg_init.c:637 msgid "Paquet" msgstr "Packets" #: src/prg_init.c:652 msgid "Action" msgstr "Action" #: src/scan.c:259 msgid "PACKAGE dvd+rw-tools ABSENT" msgstr "PACKAGE dvd+rw-tools is missing" #: src/scan.c:260 msgid "Le package 'dvd+rw-tools' est absent" msgstr "The package 'imagemagick' is missing" #: src/scan.c:262 msgid "de votre systeme !" msgstr "on your system !" #: src/scan.c:264 msgid "Veuillez l'installer car j'ai besoin de" msgstr "Please install it and resume" #: src/scan.c:266 msgid "'dvd+rw-mediainfo' pour identifier le(s)" msgstr "'Dvd + rw-mediainfo' to identify the" #: src/scan.c:268 msgid "lecteur(s) de cd / dvd." msgstr "reader of cd / dvd." #: src/split.c:279 msgid "" "Menu: Click droit / Ajout plage: Click bouton centre / Zoom: Ctrl+Scroll" msgstr "" "Menu: right click / Adding track: Click the center button / Zoom: Ctrl" "+Scroll" #: src/split.c:282 msgid "Ajout plage: Click bouton centre / Zoom: Ctrl+Scroll" msgstr "Adding track: Click the center button / Zoom: Ctrl+Scroll" #: src/split.c:286 msgid "" "Pret pour l'import d'un fichier CUE, WAV, FLAC, OGG, MP3, APE, WMA" msgstr "Ready for imports and a CUE file, WAV, FLAC, OGG, MP3, APE, WMA" #: src/split.c:356 src/split.c:385 msgid "Ce fichier appartient a XCFA" msgstr "This file belongs XCFA" #: src/split.c:357 src/split.c:386 msgid "Selectionnez un autre fichier." msgstr "Select another file." #: src/split.c:365 msgid "Fichier vide" msgstr "Empty file" #: src/split.c:366 msgid "Le fichier ne contient aucune donnee !!!" msgstr "The file contains no data !!!" #: src/split.c:411 msgid "Sox et Mplayer absents" msgstr "Sox and Mplayer is missing" #: src/split.c:412 msgid "Sox et Mplayer sont absents de votre" msgstr "Sox and Mplayer is missing" #: src/split.c:414 msgid "configuration." msgstr "configuration." #: src/split.c:416 msgid "Veuillez les installer pour pouvoir continuer." msgstr "Please install it and resume" #: src/split.c:467 msgid "Erreur de choix de fichier" msgstr "Error file select" #: src/split.c:468 msgid "Veuillez selectionner un fichier de type WAV FLAC MP3 OGG APE" msgstr "Please select a file type of MP3 WAV OGG FLAC APE" #: src/split.c:505 src/split.c:579 msgid "Mauvais type de fichier" msgstr "Wrong type of file" #: src/split.c:506 src/split.c:580 msgid "" "Les types de fichiers acceptes\n" "sont: WAV FLAC MP3 OGG APE WMA CUE" msgstr "" "File types accepted\n" "are: WAV FLAC MP3 OGG APE WMA CUE" #: src/split_conv.c:313 src/split_conv.c:330 msgid "Erreur SOX" msgstr "SOX Error" #: src/split_conv.c:314 src/split_conv.c:331 msgid "Le programme SOX de votre distribution" msgstr "The SOX program on your distribution" #: src/split_conv.c:316 src/split_conv.c:333 msgid "a generer une erreur pendant la conversion." msgstr "has generated an error during conversion" #: src/split_cue.c:116 msgid "Erreur de lecture !" msgstr "Misreading !" #: src/split_cue.c:177 src/split_cue.c:187 src/split_cue.c:197 msgid "Erreur" msgstr "Error" #: src/split_cue.c:178 msgid "Aucun fichier de musique associe au cue-file !" msgstr "No music file associated with the cue-file" #: src/split_cue.c:188 msgid "Pas de fichier WAV dans le cue-file !" msgstr "No WAV file in the cue-file" #: src/split_cue.c:198 msgid "Aucun fichier de musique associe dans le dossier" msgstr "No music file in the folder associated" #: src/split_cue.c:200 msgid "du cue-file" msgstr "of cue-file" #: src/split_cue.c:294 msgid "Erreur de donnees dans le fichier CUE" msgstr "Data errors in the CUE file" #: src/split_cue.c:295 msgid "La solution est d'importer le fichier de" msgstr "The solution is to import the file" #: src/split_cue.c:297 msgid "musique qui sera reconnu et pre-decoupe" msgstr "music that will be recognized and pre-cutting" #: src/split_cue.c:299 msgid "dans le module Split." msgstr "Split in the module." #: src/split_cue.c:301 msgid "Il ne restera qu'a ajuster les plages pour" msgstr "We will just adjust to the beaches" #: src/split_cue.c:303 msgid "generer un nouveau cue-file ou des decoupes" msgstr "generate a new cue-file or cuts" #: src/split_cue.c:305 msgid "correspondant aux plages." msgstr "corresponding to the beaches." #: src/split_selector.c:136 msgid "Suppression pendant la lecture impossible" msgstr "Deleting not during playback" #: src/split_selector.c:229 src/split_selector.c:235 src/split_selector.c:289 #: src/split_selector.c:295 src/split_selector.c:352 src/split_selector.c:359 #: src/split_selector.c:429 src/split_selector.c:435 msgid "Temps inferieur a 5 secondes entre marqueur et curseur !" msgstr "Time of less than 5 seconds between marker and cursor !" #: src/translate.c:51 msgid "Fichier" msgstr "File" #: src/translate.c:52 msgid "Quitter" msgstr "Quit" #: src/translate.c:53 msgid "Outils" msgstr "Tools" #: src/translate.c:54 msgid "Visibilite des champs" msgstr "Visible fields" #: src/translate.c:55 msgid "Aide" msgstr "Help" #: src/translate.c:56 msgid "A propos" msgstr "About" #: src/translate.c:57 src/translate.c:67 msgid "Lecture" msgstr "Play" #: src/translate.c:58 msgid " Choix du peripherique / Lecture du DVD " msgstr " DVD player / Import files " #: src/translate.c:59 src/translate.c:69 src/translate.c:125 msgid " Destination des fichiers " msgstr " Save location: " #: src/translate.c:60 src/translate.c:70 msgid " Eject " msgstr " Eject " #: src/translate.c:61 src/translate.c:92 msgid " Normaliser " msgstr " Normalise " #: src/translate.c:62 msgid "Deplier" msgstr "Unfold" #: src/translate.c:63 msgid "Replier" msgstr "Fold" #: src/translate.c:64 msgid " Vers 2CH: Sub / Ambiance " msgstr " 2CH: Sub / Ambiance " #: src/translate.c:65 src/translate.c:98 msgid "Extraire" msgstr "Rip" #: src/translate.c:66 msgid " DVD " msgstr " DVD " #: src/translate.c:68 msgid " Choix du peripherique / Lecture du CD " msgstr " CD player " #: src/translate.c:71 msgid "Titre:" msgstr "Title:" #: src/translate.c:72 msgid "Album:" msgstr "Album:" #: src/translate.c:73 msgid "Artiste:" msgstr "Artist:" #: src/translate.c:74 msgid " Annee:" msgstr "Year :" #: src/translate.c:75 msgid " Genre:" msgstr "Genre :" #: src/translate.c:76 msgid " Piste:" msgstr "Track:" #: src/translate.c:77 msgid " *.m3u et xspf: " msgstr "m3u and xspf: " #: src/translate.c:78 msgid "Commentaire:" msgstr "Comment:" #: src/translate.c:79 msgid " Modification des tags Freedb " msgstr " Freedb tags modification " #: src/translate.c:80 msgid "" "%a [ %a=\"Artist\" ]\n" "\n" "%b [ %b=\"Album\" ]\n" "\n" "%Tl - Tetsumaki lower\n" "\n" "Transforme la chaine en minuscule sauf le premier caractere.\n" "\n" "Dans le champs 'Titre' depuis [ Modification des tags FreeDB ],\n" "le ou les caracteres devant etre conserves doivent etre precedes par le " "caractere %" msgstr "" "%a [ %a=\"Artist\" ]\n" "\n" "%b [ %b=\"Album\" ]\n" "\n" "TI% - Tetsumaki lower\n" "\n" "Converts the string to lowercase except for the first character\n" "\n" "In the fields 'Title' since [Changing FreeDB tag]\n" "the character or characters to be retained must be preceded bycharacter %" #: src/translate.c:81 msgid "" "%a - artiste %b - titre " "de l'album %c - numero de la piste\n" "%d - titre de la chanson %e - " "annee %g - genre\n" "%f - creation d'un fichier *.m3u et *." "xspf %na - no accent\n" "%u - remplacement de caracteres: %u(AB=C) %u( =_) %Tl - Tetsumaki lower" msgstr "" "%a - artist %b - album " "title %c - track number\n" "%d - track title %e - " "year %g - genre\n" "%f - create an m3u and xspf file %na - no accent\n" "%u - replace special characters: %u(AB=C) %u( =_) %Tl - Tetsumaki lower" #: src/translate.c:82 msgid " Arrangement des titres du CD " msgstr " Arrangement of CD titles " #: src/translate.c:83 msgid "Creation d'un fichier unique au format: " msgstr "Create a single file in the format: " #: src/translate.c:84 msgid " et dont le nom sera: " msgstr " Named: " #: src/translate.c:85 msgid "Ecriture du fichier cue" msgstr "Write cue file" #: src/translate.c:86 msgid " Au moins deux selections colonne Wav " msgstr " Make at least two selections in the Wav column " #: src/translate.c:87 msgid "" "Creation d'un fichier cue\n" "unique depuis une lecture\n" "du cd audio" msgstr "" "Create a single cue\n" "file from an audio-CD" #: src/translate.c:88 msgid "Creation fichier cue uniquement" msgstr "Create cue file" #: src/translate.c:89 msgid " Creation Cue cd " msgstr " CD cue file creation " #: src/translate.c:90 msgid " Creation d'un fichier unique " msgstr " Creating a single file " #: src/translate.c:91 msgid "Gestion des tags, titres et fichiers cue" msgstr "Tags, titles and cue files management" #: src/translate.c:93 msgid "definit le serveur a contacter pour les recherches titre" msgstr "Sets the server to be contacted for title lookups" #: src/translate.c:94 msgid "Parametres par defaut" msgstr "Default parameters" #: src/translate.c:96 msgid "Choix parmis les differentes bases de donnees pour le CD." msgstr "Choice among different databases for the CD." #: src/translate.c:97 msgid "DiscId" msgstr "DiscId" #: src/translate.c:99 msgid " CD " msgstr " CD " #: src/translate.c:100 src/translate.c:124 msgid " Importer " msgstr " Import " #: src/translate.c:101 msgid " Destination des conversions " msgstr " Export converted files: " #: src/translate.c:102 msgid " Nettoyer " msgstr " Clear " #: src/translate.c:103 src/translate.c:107 msgid "Appliquer les modifications" msgstr "Apply the changes" #: src/translate.c:104 msgid " Normalise: " msgstr " Normalise: " #: src/translate.c:105 msgid " Choix niveau dBFS: " msgstr " dBFS level: " #: src/translate.c:106 src/translate.c:123 msgid " Fichiers " msgstr " Files " #: src/translate.c:108 msgid " Wav " msgstr " Wav " #: src/translate.c:109 src/translate.c:121 msgid "Appliquer" msgstr "Apply" #: src/translate.c:110 msgid "Effacer" msgstr "Clear" #: src/translate.c:111 msgid " Mp3-Ogg " msgstr " Mp3-Ogg " #: src/translate.c:112 msgid "Titre:" msgstr "Title:" #: src/translate.c:113 msgid "Album:" msgstr "Album:" #: src/translate.c:114 msgid "Artiste:" msgstr "Artist:" #: src/translate.c:115 msgid "Commentaire:" msgstr "Comment:" #: src/translate.c:116 msgid " Annee:" msgstr " Year:" #: src/translate.c:117 msgid " Genre:" msgstr " Genre:" #: src/translate.c:118 msgid " Piste:" msgstr " Track:" #: src/translate.c:119 msgid " Modif.:" msgstr " Edit:" #: src/translate.c:120 msgid "0" msgstr "0" #: src/translate.c:122 src/translate.c:309 msgid " Tags " msgstr " Tags " #: src/translate.c:126 msgid "Lecture de 5 secondes apres le marqueur de debut" msgstr "Reading 5 seconds after the beginning marker" #: src/translate.c:127 msgid "Index de debut" msgstr "Index start" #: src/translate.c:128 src/translate.c:135 src/translate.c:138 msgid "00h00m00s" msgstr "00h00m00s" #: src/translate.c:129 msgid "lecture" msgstr "Play" #: src/translate.c:130 msgid "Pause" msgstr "Pause" #: src/translate.c:131 msgid "Index de lecture" msgstr "Index reading" #: src/translate.c:132 src/translate.c:171 msgid "label" msgstr "label" #: src/translate.c:133 msgid "Lecture de 5 secondes avant le marqueur de fin" msgstr "Reading of 5 seconds before the end marker" #: src/translate.c:134 msgid "Index de fin" msgstr "End index" #: src/translate.c:136 msgid "Plage" msgstr "Plage" #: src/translate.c:137 msgid "Duree de la plage active" msgstr "Length of the active beach" #: src/translate.c:139 msgid "Suprimer tous les marqueurs pour les remplacer par un marqueur unique" msgstr "Wipe all markers and replace them with a single marker" #: src/translate.c:140 msgid "Le fichier CUE sera enregistre vers 'Destination des fichiers'." msgstr "CUE file to be recorded 'Destination file'." #: src/translate.c:141 msgid "Production fichier Cue" msgstr "Generate CUE file" #: src/translate.c:142 msgid "Le resultat du Split sera dirige vers 'Destination des fichiers'." msgstr "The result of the Split will be heading for 'Destination file'." #: src/translate.c:143 msgid "Split" msgstr "Split" #: src/translate.c:144 msgid " Split " msgstr " Split " #: src/translate.c:145 msgid "Importation du titre du CD." msgstr "Import the CD title." #: src/translate.c:146 msgid "Titre CD" msgstr "Title CD" #: src/translate.c:147 msgid "Choix d'une nouvelle police." msgstr "Choosing a new font." #: src/translate.c:148 msgid "Texte gras." msgstr "Bold text." #: src/translate.c:149 msgid "Texte italique." msgstr "Italic text." #: src/translate.c:150 msgid "" "Apres une lecture de CD et un ajout d'etiquette, ce menu permet la mise en " "forme des titres, auteurs ..." msgstr "" "After reading a CD and add a label, this menu allows the formatting of " "titles, authors ..." #: src/translate.c:151 msgid "Ajouter du texte editable." msgstr "Add text editable." #: src/translate.c:152 msgid "Texte" msgstr "Text" #: src/translate.c:153 msgid "Saisissez ici un critere de recherche d'images." msgstr "Enter here a search of images." #: src/translate.c:154 msgid "Importation des images depuis le Web." msgstr "Importing images from the Web." #: src/translate.c:155 msgid "Import images web" msgstr "Import web images" #: src/translate.c:156 msgid "Supprimer l'image en selection" msgstr "Delete the image selection" #: src/translate.c:157 msgid "AJouter de nouvelles images." msgstr "Add new images." #: src/translate.c:158 msgid "Ouvre un fichier" msgstr "Open a file" #: src/translate.c:159 msgid "Enregistrer la page au format png." msgstr "Save Page png." #: src/translate.c:160 msgid "Sauvegarde le fichier" msgstr "Saving the file" #: src/translate.c:161 msgid "Diminution de l'echelle." msgstr "Reduction in the scale." #: src/translate.c:162 msgid "Reduit l'agrandissement" msgstr "Reduced expansion" #: src/translate.c:163 msgid "Echelle a 100%." msgstr "Scale 100%." #: src/translate.c:164 msgid "Remet l'echelle a 100%" msgstr "Gives the scale at 100%" #: src/translate.c:165 msgid "Augmentation de l'echelle." msgstr "Increase in scale." #: src/translate.c:166 msgid "Augmente l'agrandissement" msgstr "Increasing expansion" #: src/translate.c:167 msgid "Echelle compatible avec la taille de la fenetre." msgstr "Scale compatible with the size of the window." #: src/translate.c:168 msgid "Adapte l'echelle a la taille de la fenetre" msgstr "Adjusts the scale to the size of the window" #: src/translate.c:169 msgid "Emplacement de sauvegarde des fichiers." msgstr "Backup location files." #: src/translate.c:170 msgid "Nom (sans extention) du fichier a sauvegarder." msgstr "Name (without extension) file is saved." #: src/translate.c:172 msgid " Pochette " msgstr " CD Cover " #: src/translate.c:173 msgid "Nice" msgstr "Nice" #: src/translate.c:174 msgid " Priorite systeme " msgstr " System priority " #: src/translate.c:175 msgid "" "Indiquez ici le dossier sur votre systeme qui servira de lieu\n" "de stockage provisoire pendant les differentes conversions.\n" msgstr "Enter the location of the temporary folder to be used by XCFA\n" #: src/translate.c:176 msgid " Dossier provisoire des conversions " msgstr " Conversions temporary folder " #: src/translate.c:177 msgid "button" msgstr "button" #: src/translate.c:178 msgid " Jouer une musique en fin de tache " msgstr " Play music at the end of task " #: src/translate.c:179 msgid " General " msgstr " General " #: src/translate.c:180 msgid "cdparanoia" msgstr "cdparanoia" #: src/translate.c:181 msgid "cdparanoia mode expert" msgstr "cdparanoia expert mode" #: src/translate.c:182 msgid "cdparanoia mode expert multi passes" msgstr "cdparanoia expert mode multi pass" #: src/translate.c:183 msgid "cdda2wav / icedax" msgstr "cdda2wav / icedax" #: src/translate.c:184 msgid " Extraction cd-audio avec: " msgstr " Rip audio-CD with: " #: src/translate.c:185 msgid "HomePage" msgstr "Home Page" #: src/translate.c:186 msgid "ManPage " msgstr "Man Page " #: src/translate.c:187 msgid " Web cdparanoia " msgstr " Web cdparanoia " #: src/translate.c:188 msgid "" "Le fichier LogExpertMode.txt sera cree dans le dossier des " "extractions" msgstr "" "LogExpertMode.txt file will be created in the folder extractions" #: src/translate.c:189 msgid "" "Generation d'un rapport pour: cdparanoia mode expert multi passes" msgstr "Generation of a report for: cdparanoia expert mode multi pass" #: src/translate.c:190 msgid "" "%a - artiste %b - titre " "de l'album %c - numero de la piste\n" "%d - titre de la chanson %e - " "annee %g - genre\n" "%na - no accent %Tl " "- Tetsumaki lower\n" "%u - remplacement de caracteres: %u(AB=C) %u( =_)" msgstr "" "%a - artist %b - album " "title %c - track number\n" "%d - track title %e - " "year %g - genre\n" "%na - no accent %Tl " "- Tetsumaki lower\n" "%u - replacing characters: %u(AB=C) %u( =_)" #: src/translate.c:191 msgid " Dossier de stockage " msgstr " File storage " #: src/translate.c:192 msgid " CD " msgstr " CD " #: src/translate.c:193 msgid "ABR / CBR / VBR / VBR-NEW" msgstr "ABR / CBR / VBR / VBR-NEW" #: src/translate.c:194 msgid "Debit" msgstr "Bitrate" #: src/translate.c:195 msgid "Mode" msgstr "Mode" #: src/translate.c:196 msgid " Lame (fichier mp3): " msgstr " Lame (mp3 file): " #: src/translate.c:197 src/translate.c:213 src/translate.c:225 #: src/translate.c:238 src/translate.c:255 src/translate.c:266 #: src/translate.c:280 src/translate.c:294 msgid "Par defaut" msgstr "Default" #: src/translate.c:198 msgid " Options LAME " msgstr " LAME Options " #: src/translate.c:199 src/translate.c:227 src/translate.c:268 msgid "Site officiel" msgstr "Official website" #: src/translate.c:200 msgid "Wiki mp3 " msgstr "mp3 wiki " #: src/translate.c:201 msgid "Wiki " msgstr "Lame wiki " #: src/translate.c:202 msgid "ManPage " msgstr "Man Page " #: src/translate.c:203 msgid " Web Lame " msgstr " Lame " #: src/translate.c:204 src/translate.c:218 src/translate.c:231 #: src/translate.c:242 src/translate.c:260 src/translate.c:271 #: src/translate.c:286 msgid "[" msgstr "[" #: src/translate.c:205 src/translate.c:219 src/translate.c:232 #: src/translate.c:243 src/translate.c:261 src/translate.c:272 #: src/translate.c:287 msgid "string option interne" msgstr "internal string option" #: src/translate.c:206 src/translate.c:220 src/translate.c:233 #: src/translate.c:244 src/translate.c:262 src/translate.c:273 #: src/translate.c:288 msgid "]" msgstr "]" #: src/translate.c:207 msgid "" " Options experts, definies par l'utilisateur - lame (wav -> mp3) " msgstr " User-defined expert options - lame (wav -> mp3) " #: src/translate.c:208 msgid " Mp3 " msgstr " Mp3 " #: src/translate.c:209 msgid " Mode" msgstr " Mode" #: src/translate.c:210 msgid " Mode flux (streaming)" msgstr " Streaming" #: src/translate.c:211 msgid " Debit" msgstr "Bitrate" #: src/translate.c:212 msgid " Oggenc (fichier ogg): " msgstr " Oggenc (ogg file): " #: src/translate.c:214 msgid " Options OGGENC " msgstr " OGGENC Options " #: src/translate.c:215 msgid "Wiki " msgstr "Wiki " #: src/translate.c:216 src/translate.c:258 src/translate.c:284 #: src/translate.c:298 msgid "ManPage" msgstr "Man Page" #: src/translate.c:217 msgid " Web Oggenc " msgstr " Oggenc " #: src/translate.c:221 msgid "" " Options experts, definies par l'utilisateur - oggenc (wav -> ogg) " msgstr " User-defined expert options - oggenc (wav -> ogg) " #: src/translate.c:222 msgid " Oggenc " msgstr " Oggenc " #: src/translate.c:223 msgid "Taux de compression" msgstr "Compression level" #: src/translate.c:224 msgid " Flac (fichier flac): " msgstr " Flac (flac file): " #: src/translate.c:226 msgid " Options FLAC " msgstr " FLAC Options " #: src/translate.c:228 src/translate.c:269 msgid "Framasoft " msgstr "Framasoft " #: src/translate.c:229 msgid "ManPage " msgstr "Man Page " #: src/translate.c:230 msgid " Web Flac " msgstr " Flac " #: src/translate.c:234 msgid "" " Options experts, definies par l'utilisateur - flac (wav -> flac) " msgstr " User-defined expert options - flac (wav -> flac) " #: src/translate.c:235 msgid " Flac " msgstr " Flac " #: src/translate.c:236 msgid " Qualite" msgstr " Quality" #: src/translate.c:237 msgid " Mac (fichier ape): " msgstr " Mac (ape file): " #: src/translate.c:239 msgid " Options MAC " msgstr " MAC Options " #: src/translate.c:240 msgid "Wiki" msgstr "Wiki" #: src/translate.c:241 msgid " Web Mac " msgstr " Mac " #: src/translate.c:245 msgid " Options experts, definies par l'utilisateur - mac (wav -> ape) " msgstr " User-defined expert options - mac (wav -> ape) " #: src/translate.c:246 msgid " Mac " msgstr " Mac " #: src/translate.c:247 msgid "Compression" msgstr "Compression" #: src/translate.c:248 msgid "Son" msgstr "Channel mode" #: src/translate.c:249 msgid "Mode hybride" msgstr "Hybrid mode" #: src/translate.c:250 msgid "Fichier de correction" msgstr "Correction file" #: src/translate.c:251 msgid "Compression maximum" msgstr "Maximum compression" #: src/translate.c:252 msgid "Signature MD5" msgstr "MD5 signature" #: src/translate.c:253 msgid "Extra encode processing" msgstr "Extra encode processing" #: src/translate.c:254 msgid " WavPack (fichier wv): " msgstr " WavPack (wv file): " #: src/translate.c:256 msgid " Options WAVPACK " msgstr " WAVPACK Options " #: src/translate.c:257 msgid "Wiki " msgstr "Wiki " #: src/translate.c:259 msgid " Web Wavpack " msgstr " Wavpack " #: src/translate.c:263 msgid "" " Options experts, definies par l'utilisateur - wavpack (wav -> wv) " msgstr " User-defined expert options - wavpack (wav -> wv) " #: src/translate.c:264 msgid " Wavpack " msgstr " Wavpack " #: src/translate.c:265 msgid " MusePack (fichier mpc): " msgstr " MusePack (mpc file): " #: src/translate.c:267 msgid " Options MUSEPACK " msgstr " MUSEPACK Options " #: src/translate.c:270 msgid " Web Musepack " msgstr " Musepack " #: src/translate.c:274 msgid "" " Options experts, definies par l'utilisateur - musepack (wav -> mpc) " msgstr " User-defined expert options - musepack (wav -> mpc) " #: src/translate.c:275 msgid " Musepack " msgstr " Musepack " #: src/translate.c:276 msgid " Qualite VBR / Debit ABR" msgstr "VBR Quality / ABR rate" #: src/translate.c:277 msgid " VBR / ABR" msgstr " VBR / ABR" #: src/translate.c:278 msgid " Conteneur" msgstr " Container" #: src/translate.c:279 msgid " Faac (fichier .m4a): " msgstr " Faac (file .m4a): " #: src/translate.c:281 msgid " Options FAAC " msgstr " FAAC Options " #: src/translate.c:282 src/translate.c:296 msgid "Site officiel " msgstr "Official website " #: src/translate.c:283 src/translate.c:297 msgid "Web Info " msgstr "Info " #: src/translate.c:285 msgid " Web Faac " msgstr " Faac " #: src/translate.c:289 msgid "" " Options experts, definies par l'utilisateur - faac (wav -> m4a) " msgstr " User-defined expert options - faac (wav -> m4a) " #: src/translate.c:290 msgid " Faac " msgstr " Faac " #: src/translate.c:291 msgid " Stereo: Qualite en kbit/s" msgstr " Stereo: Quality in kbit/s" #: src/translate.c:292 msgid " Mono: Qualite en kbit/s" msgstr " Mono: Quality en kbit/s" #: src/translate.c:293 msgid " AacplusEnc (fichier .aac): " msgstr " AacplusEnc (file .aac): " #: src/translate.c:295 msgid " Options AacPlusEnc " msgstr " AacPlusEnc Options " #: src/translate.c:299 msgid " Web AacPlusEnc " msgstr " AacPlusEnc " #: src/translate.c:300 msgid " AacplusEnc " msgstr " AacplusEnc " #: src/translate.c:301 msgid "Artiste" msgstr "Artist" #: src/translate.c:302 src/translate.c:330 msgid "Titre" msgstr "Title" #: src/translate.c:303 msgid "Album" msgstr "Album" #: src/translate.c:304 msgid "Numero" msgstr "Number" #: src/translate.c:305 msgid "Genre" msgstr "Genre" #: src/translate.c:306 msgid "Annee" msgstr "Year" #: src/translate.c:307 msgid "Commentaire" msgstr "Comment" #: src/translate.c:308 msgid " Exportation de " msgstr " Export " #: src/translate.c:310 msgid " Preferences " msgstr " Preferences " #: src/translate.c:311 msgid "SCAN" msgstr "SCAN" #: src/translate.c:312 msgid " Installation " msgstr " Installation " #: src/translate.c:313 msgid " Votre systeme utilise ... " msgstr " Your system uses ... " #: src/translate.c:314 msgid "" "\n" "Pour installer les programmes externes requis,\n" "veuillez utiliser l'installateur de votre distribution Gnu/Linux.\n" msgstr "" "\n" "To install the required external software,\n" "please use the package manager of your Gnu/Linux distribution.\n" #: src/translate.c:315 msgid "" "Le programme XCFA_INSTALL_ALL ecrit en Perl vous sera utile en ligne de " "commande pour une installation des programmes complementaire." msgstr "" "The program XCFA_INSTALL_ALL written in Perl will be useful on the command " "line for installation of supplementary programs" #: src/translate.c:316 msgid " Informations " msgstr " Informations " #: src/translate.c:317 msgid " Application externes " msgstr " External programs " #: src/translate.c:318 src/translate.c:321 msgid "parametres:" msgstr "parameters:" #: src/translate.c:319 msgid "" "\n" " konqueror : newTab\n" " iceweasel : -new-window -new-tab \n" msgstr "" "\n" " konqueror : newTab\n" " iceweasel : -new-window -new-tab \n" #: src/translate.c:320 msgid "Navigateur" msgstr "browsers" #: src/translate.c:322 msgid "Lecteurs audio" msgstr "Audio player" #: src/translate.c:323 msgid " Navigateurs / Lecteurs audio " msgstr " Browsers / Audio player" #: src/translate.c:324 msgid " Applications externes " msgstr " External programs " #: src/translate.c:325 msgid "Scan en cours ..." msgstr "Scan in progress ..." #: src/translate.c:326 msgid "Scan du support en cours ..." msgstr "Media scan in progress..." #: src/translate.c:327 msgid "Detail extraction mode expert" msgstr "Rip details - expert mode" #: src/translate.c:328 msgid "Modification des champs" msgstr "Modify fields" #: src/translate.c:329 msgid "" "\n" "Modification des champs\n" msgstr "" "\n" "Modify fields\n" #: src/translate.c:337 src/translate.c:356 src/translate.c:377 #: src/translate.c:389 src/translate.c:400 src/translate.c:408 msgid " Visibilite " msgstr " Visibility " #: src/translate.c:338 src/translate.c:357 src/translate.c:378 #: src/translate.c:390 src/translate.c:401 src/translate.c:409 msgid "Nom a gauche" msgstr "Name to left" #: src/translate.c:339 src/translate.c:358 src/translate.c:379 #: src/translate.c:391 src/translate.c:402 src/translate.c:410 msgid "Nom au centre" msgstr "Name centred" #: src/translate.c:340 src/translate.c:359 src/translate.c:380 #: src/translate.c:392 src/translate.c:403 src/translate.c:411 msgid "Nom a droite" msgstr "Name to right" #: src/translate.c:341 msgid "DVD" msgstr "DVD" #: src/translate.c:346 src/translate.c:367 msgid "Wavpack" msgstr "Wavpack" #: src/translate.c:350 src/translate.c:371 msgid "Musepack" msgstr "Musepack" #: src/translate.c:360 msgid "CD" msgstr "CD" #: src/translate.c:375 msgid "Replaygain" msgstr "Replaygain" #: src/translate.c:381 msgid "CONVERSIONS" msgstr "CONVERSIONS" #: src/translate.c:382 msgid "Hertz" msgstr "Hertz" #: src/translate.c:383 msgid "New Hertz" msgstr "New Hertz" #: src/translate.c:384 msgid "Voie" msgstr "Voice" #: src/translate.c:385 msgid "New Voie" msgstr "New Voice" #: src/translate.c:386 msgid "Bits" msgstr "Bits" #: src/translate.c:387 msgid "New Bits" msgstr "New Bits" #: src/translate.c:393 msgid "WAV" msgstr "WAV" #: src/translate.c:396 msgid "New Bitrate" msgstr "New Bitrat" #: src/translate.c:397 msgid "Size" msgstr "Size" #: src/translate.c:404 msgid "MP3-OGG" msgstr "MP3-OGG" #: src/translate.c:412 msgid "TAGS" msgstr "TAGS" #: src/translate.c:413 msgid "Selection globale" msgstr "Select all" #: src/translate.c:414 msgid "Deselection globale" msgstr "Clear all" #: src/translate.c:415 msgid "Retour" msgstr "Return" #: src/translate.c:416 msgid "About X Convert File Audio" msgstr "About X Convert File Audio" #: src/translate.c:417 msgid "Author" msgstr "Author" #: src/translate.c:418 msgid "Licence" msgstr "License" #: src/translate.c:419 msgid " Informations " msgstr " Informations " #: src/translate.c:420 msgid " Machine " msgstr " Computer " #: src/translate.c:421 msgid "Ingenieurs du son\n" msgstr "Sound engineers\n" #: src/translate.c:422 msgid "" "\n" "Graphisme\n" msgstr "" "\n" "Graphics\n" #: src/translate.c:423 msgid "" "Traduction Anglaise\n" "\n" "\n" msgstr "" "English translation\n" "\n" "\n" #: src/translate.c:424 msgid "" "\n" "Traduction Allemande" msgstr "" "\n" "German translation" #: src/translate.c:425 msgid "" "\n" "Codeur Xcfa" msgstr "" "\n" "XCFA programmer" #: src/translate.c:426 msgid "" "\n" "ElementSpeak pour Xcfa " msgstr "" "\n" "ElementSpeak for XCFA··" #: src/translate.c:427 msgid "" "\n" "Codeur pages Web" msgstr "" "\n" "Webmasters" #: src/translate.c:428 msgid "" "\n" "Traduction Italienne" msgstr "" "\n" "Italian translation" #: src/translate.c:429 msgid "" "\n" "\n" "Pages a visiter\n" msgstr "" "\n" "\n" "Useful links\n" #: src/translate.c:430 msgid "Linux On The Root" msgstr "Linux On The Root" #: src/translate.c:431 msgid "Frugalware" msgstr "Frugalware" #: src/translate.c:432 msgid "Road2Mayotte" msgstr "Road2Mayotte" #: src/translate.c:433 msgid "La Linuxerie" msgstr "La Linuxerie" #: src/translate.c:434 msgid "Audioptimisation by Dzef" msgstr "Audioptimisation by Dzef" #: src/translate.c:435 msgid "Tuxfamily" msgstr "Tuxfamily" #: src/translate.c:436 msgid "Framasoft" msgstr "Framasoft" #: src/translate.c:437 msgid "Ekd (EnKoDeur-Mixeur)" msgstr "Ekd (EnKoDeur-Mixeur)" #: src/translate.c:438 msgid "Bishop's page" msgstr "Bishop's page" #: src/translate.c:439 msgid "Je suis libre" msgstr "Je suis libre" #: src/translate.c:440 msgid "Debian Multimedia" msgstr "Debian Multimedia" #: src/translate.c:441 msgid "" "\n" "Forum\n" msgstr "" "\n" "Forum\n" #: src/translate.c:442 msgid "XCFA Vorstellung " msgstr "XCFA Vorstellung " #: src/translate.c:443 msgid "XCFA LinuxForen.de" msgstr "XCFA LinuxForen.de" #: src/translate.c:444 msgid "Forum Xcfa" msgstr "Forum Xcfa" #: src/translate.c:445 msgid "" "\n" "Documentation\n" msgstr "" "\n" "Documentation\n" #: src/translate.c:446 msgid "Wiki Xcfa par Shankarius" msgstr "XCFA wiki by Shankarius" #: src/translate.c:447 msgid "Doc Xcfa par Patachon" msgstr "XCFA doc. by Patachon" #: src/translate.c:448 msgid "Ogg Vorbis explique par Shankarius" msgstr "Ogg Vorbis explained by Shankarius" #: src/translate.c:449 msgid "La normalisation expliquee par Dzef" msgstr "Normalisation explained by Dzef" #: src/translate.c:450 msgid "Xcfa sur Linux On The Root" msgstr "XCFA on Linux On The Root" #: src/translate.c:451 msgid " Contributions " msgstr " Contributions " #: src/translate.c:452 msgid " License " msgstr " Licence " #: src/translate.c:453 msgid "OK" msgstr "OK" #: src/web.c:173 src/web.c:234 msgid "PAS de navigateur present" msgstr "No web browser" #: src/web.c:174 msgid "L'acces au web est impossible car aucun navigateur" msgstr "No Web access: no web browser" #: src/web.c:176 msgid "n'est present dans votre configuration." msgstr "found in your system" #: src/web.c:178 msgid "Veuillez installez un navigateur." msgstr "Please install a web browser" #: src/web.c:188 msgid "Vous devez ouvrir l'acces internet" msgstr "You need to enable web access" #: src/web.c:236 msgid " L'acces au web est impossible car aucun navigateur" msgstr " No Web access: no web browser" #: src/web.c:238 msgid " n'est present dans votre configuration." msgstr " found in your system" #: src/web.c:240 msgid " Veuillez installez un navigateur." msgstr " Please install a web browser" #: src/web.c:250 msgid "L'application est absente." msgstr "Application is missing." #: src/web.c:251 msgid "Veuillez installer : " msgstr "Please install : " #: src/win_about.c:130 msgid " Xcfa sur le web" msgstr " XCFA on the web" #: src/win_about.c:180 msgid "" "\n" "Au tout debut:\n" "\n" "Serres Patrick, Hamann Regis, Fabien Gregis, @Dzef, @alteo_gange, \n" "@Leonux, @zarer, @Shankarius, @bishop, @Ludo, @Patachonf,\n" "... ;-)\n" "\n" "" msgstr "" "\n" "In the beginning:\n" "\n" "Serres Patrick, Hamann Regis, Fabien Gregis, @Dzef, @alteo_gange, \n" "@Leonux, @zarer, @Shankarius, @bishop, @Ludo, @Patachonf,\n" "... ;-)\n" "\n" "" #: src/win_scan.c:161 msgid "Waiting ..." msgstr "Waiting ..." #~ msgid "Quantification" #~ msgstr "Quantification" #~ msgid "Voie" #~ msgstr "Channel" #~ msgid " Frequence - Hertz " #~ msgstr " Frequency -Hertz " #~ msgid "Cellule" #~ msgstr "Cell" #~ msgid "Colonne" #~ msgstr "Column" #~ msgid " Cacher Xcfa " #~ msgstr " Hide Xcfa " #~ msgid " Montrer Xcfa " #~ msgstr " Show Xcfa " #~ msgid " Quitter Xcfa " #~ msgstr " Quit Xcfa " #~ msgid "" #~ "XCFA\n" #~ "Programme pour convertir les fichiers audio." #~ msgstr "" #~ "XCFA\n" #~ "Program for converting audio files." xcfa-4.3.6/po/en@quot.header0000644000175000017500000000226311400750706012574 00000000000000# All this catalog "translates" are quotation characters. # The msgids must be ASCII and therefore cannot contain real quotation # characters, only substitutes like grave accent (0x60), apostrophe (0x27) # and double quote (0x22). These substitutes look strange; see # http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html # # This catalog translates grave accent (0x60) and apostrophe (0x27) to # left single quotation mark (U+2018) and right single quotation mark (U+2019). # It also translates pairs of apostrophe (0x27) to # left single quotation mark (U+2018) and right single quotation mark (U+2019) # and pairs of quotation mark (0x22) to # left double quotation mark (U+201C) and right double quotation mark (U+201D). # # When output to an UTF-8 terminal, the quotation characters appear perfectly. # When output to an ISO-8859-1 terminal, the single quotation marks are # transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to # grave/acute accent (by libiconv), and the double quotation marks are # transliterated to 0x22. # When output to an ASCII terminal, the single quotation marks are # transliterated to apostrophes, and the double quotation marks are # transliterated to 0x22. # xcfa-4.3.6/po/nl.po0000644000175000017500000020532412224542443010765 00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Free Software Foundation, Inc. # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: xcfa 4.2.8\n" "Report-Msgid-Bugs-To: xcfa@tuxfamily.org\n" "POT-Creation-Date: 2013-10-07 16:28+0200\n" "PO-Revision-Date: 2010-08-21 18:45+0100\n" "Last-Translator: Gerry Butler \n" "Language-Team: English \n" "Language: en\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: src/cd_audio.c:812 src/dvd.c:680 src/dvd.c:1324 msgid "MPLAYER deja en action" msgstr "MPLAYER already in action" #: src/cd_audio.c:813 src/dvd.c:681 src/dvd.c:1325 msgid "MPLAYER est deja utilise !!" msgstr "MPLAYER is already in use !!" #: src/cd_audio.c:1224 src/cd_audio.c:1230 src/dvd.c:867 src/file.c:2829 msgid "(Click Droit = Menu) / En attente de selection." msgstr "(Right click = Menu) / Waiting for selection." #: src/cd_audio.c:1227 src/file.c:2826 msgid "Le programme externe d'extraction est absent." msgstr "The external ripping program is missing" #: src/cd_audio.c:1233 src/file.c:2832 msgid "(Click Droit = Menu) / En attente de selection. Le fichier existe." msgstr "(Right click = Menu) / Waiting for Selection. File exists." #: src/cd_audio.c:1236 src/file.c:2835 msgid "(Click Droit = Menu) / En selection." msgstr "(Right click = Menu) / Selected files" #: src/cd_audio.c:1239 src/file.c:2841 msgid "(Click Droit = Menu) / Selection avec options expert." msgstr "(Right click = Menu) / Selection - expert mode." #: src/cd_audio.c:1242 src/file.c:2838 msgid "(Click Droit = Menu) / En selection. Le fichier existe." msgstr "(Right click = Menu) / Selected files. File exists." #: src/cd_audio.c:1245 src/file.c:2844 msgid "" "(Click Droit = Menu) / Selection avec options expert. Le fichier existe." msgstr "(Right click = Menu) / Selection - expert mode. File exists." #: src/cd_audio.c:1254 msgid "" "(Click Droit = Menu) / Possibilite d'ajustement INDIVIDUEL ou COLLECTIF " "maximal du volume" msgstr "" "(Right click = Menu) / Possibilities for individual adaptation or maximum " "collection volume" #: src/cd_audio.c:1259 msgid "(Click Droit = Menu) / Ajustement INDIVIDUEL maximal du volume" msgstr "(Click Droit = Menu) / INDIVIDUAL maximum volume adjustment" #: src/cd_audio.c:1262 msgid "(Click Droit = Menu) / Ajustement COLLECTIF maximal du volume" msgstr "(Click Droit = Menu) / COLLECTIVE maximum volume adjustment" #: src/cd_audio.c:1502 src/dvd.c:1099 src/file.c:3139 src/translate.c:331 #: src/translate.c:342 src/translate.c:361 msgid "Play" msgstr "Play" #: src/cd_audio.c:1543 src/file.c:3204 src/translate.c:343 src/translate.c:364 msgid "Wav" msgstr "Wav" #: src/cd_audio.c:1564 src/file.c:3223 src/translate.c:344 src/translate.c:365 msgid "Flac" msgstr "Flac" #: src/cd_audio.c:1584 src/file.c:3242 src/translate.c:345 src/translate.c:366 msgid "Ape" msgstr "Ape" #: src/cd_audio.c:1604 src/file.c:3261 msgid "WavP" msgstr "WavP" #: src/cd_audio.c:1624 src/file.c:3280 src/translate.c:347 src/translate.c:368 msgid "Ogg" msgstr "Ogg" #: src/cd_audio.c:1645 src/file.c:3299 src/translate.c:348 src/translate.c:369 msgid "M4a" msgstr "M4a" #: src/cd_audio.c:1666 src/file.c:3318 src/translate.c:349 src/translate.c:370 msgid "Aac" msgstr "Aac" #: src/cd_audio.c:1686 src/file.c:3337 msgid "Mpc" msgstr "Mpc" #: src/cd_audio.c:1706 src/file.c:3356 src/translate.c:351 src/translate.c:372 msgid "Mp3" msgstr "Mp3" #: src/cd_audio.c:1727 src/translate.c:352 msgid "Num" msgstr "Num" #: src/cd_audio.c:1742 src/translate.c:353 src/translate.c:373 #: src/translate.c:398 src/translate.c:406 msgid "Time" msgstr "Time" #: src/cd_audio.c:1757 src/dvd.c:1167 src/file.c:3392 src/translate.c:335 #: src/translate.c:354 src/translate.c:374 msgid "Normalise" msgstr "Normalise" #: src/cd_audio.c:1782 src/dvd.c:1187 src/file.c:3434 src/file_mp3ogg.c:958 #: src/file_tags.c:1191 src/file_wav.c:824 src/prg_init.c:609 #: src/translate.c:336 src/translate.c:355 src/translate.c:376 #: src/translate.c:388 src/translate.c:399 src/translate.c:407 msgid "Nom" msgstr "Name" #: src/cd_audio.c:2511 msgid " Parametrage CDDB: [ Nom du serveur ]" msgstr " Setting up CDDB: [ Server name ]" #: src/cd_audio.c:2520 msgid " Parametrage PROXY: [ serveur ] [ port ]" msgstr " Proxy settings: [ server ] [ port ] " #: src/cd_audio.c:2530 src/translate.c:95 msgid " Serveur " msgstr " Server " #: src/cd_audio_extract.c:673 #, c-format msgid "" "[Erreur du segment numero: %d]\n" "%d) Lecture PASS 1/2\n" msgstr "" "[Error on segment #%d]\n" "%d) Playing PASS 1/2\n" #: src/cd_audio_extract.c:680 #, c-format msgid "" "--> Deja %d fois 2 lectures du segment %d!\n" " Abandon :/\n" msgstr "" "--> Segment %d already read two %d times!\n" " Abandon :/\n" #: src/cd_audio_extract.c:700 #, c-format msgid "%d) Lecture PASS 2/2\n" msgstr "%d) Read PASS 2/2\n" #: src/cd_audio_extract.c:780 #, c-format msgid "" "\n" "[Piste: %d]\n" msgstr "" "\n" "[Track: %d]\n" #: src/cd_audio_extract.c:784 msgid "Extraction mode expert PASS 1/2\n" msgstr "Ripping expert mode PASS 1/2\n" #: src/cd_audio_extract.c:795 msgid "Extraction mode expert PASS 2/2\n" msgstr "Ripping expert mode PASS 2/2\n" #: src/cd_audio_extract.c:803 msgid "Controle du contenu des fichiers extraits\n" msgstr "Control the content of the extracted files\n" #: src/cd_audio_extract.c:1710 src/cd_audio_extract.c:1712 msgid "XCFA: Extraction CD" msgstr "XCFA: CD Ripping" #: src/cd_audio_extract.c:1710 src/dvd_extract.c:412 src/file_action.c:183 #: src/file_mp3ogg_conv.c:329 src/file_wav_conv.c:343 msgid "Ok" msgstr "Okay" #: src/cd_audio_extract.c:1712 src/dvd_extract.c:414 src/file_action.c:185 #: src/file_mp3ogg_conv.c:331 src/file_wav_conv.c:345 msgid "Arret par l'utilisateur" msgstr "Stopped by user" #: src/cd_audio_extract.c:1983 msgid "Nom de fichier unique absent" msgstr "File name not found" #: src/cd_audio_extract.c:1984 msgid "Veuillez saisir un nom pour le fichier unique" msgstr "Please enter a file name" #: src/cd_audio_toc.c:156 msgid "cdda2wav and icedax NOT FOUND" msgstr "cdda2wav and icedax NOT FOUND" #: src/cd_audio_toc.c:157 msgid "Please, install packages [ icedax, cdda2wav ]" msgstr "Please, install packages [ icedax, cdda2wav ]" #: src/cd_audio_toc.c:163 msgid "icedax NOT FOUND" msgstr "icedax NOT FOUND" #: src/cd_audio_toc.c:164 msgid "Please, install package [ icedax ]" msgstr "Please, install package [ icedax ]" #: src/cd_audio_toc.c:170 msgid "cdda2wav NOT FOUND" msgstr "cdda2wav NOT FOUND" #: src/cd_audio_toc.c:171 msgid "Please, install package [ cdda2wav ]" msgstr "Please, install package [ cdda2wav ]" #: src/cd_audio_toc.c:180 msgid "cdparanoia NOT FOUND" msgstr "cdparanoia NOT FOUND" #: src/cd_audio_toc.c:181 msgid "Please, install package [ cdparanoia ]" msgstr "Please, install package [ cdparanoia ]" #: src/cd_audio_toc.c:188 msgid "cd-discid NOT FOUND" msgstr "cd-discid NOT FOUND" #: src/cd_audio_toc.c:189 msgid "Please, install packages [ cd-discid ]" msgstr "Please, install package [ cd-discid ]" #: src/cd_audio_toc.c:203 msgid "ERREUR datas proxy" msgstr "ERROR datas proxy" #: src/cd_audio_toc.c:204 msgid "Veuillez renseigner les champs du proxy" msgstr "Please complete all fields proxy" #: src/cd_curl.c:734 src/web.c:187 msgid "La liaison internet est absente" msgstr "A web connection is missing" #: src/cd_curl.c:1204 msgid "Couldn't find CD" msgstr "Couldn't find CD" #: src/cd_curl.c:1267 msgid "No Audio CD" msgstr "No Audio CD" #: src/dvd.c:859 msgid "" "(Click Droit = Menu) / PEAK-ALBUM: Amplification maximale du volume pour un " "groupe de fichiers en respectant les ecarts de niveau entre chacun d'eux." msgstr "" "(Right click = Menu) / Maximum volume amplification of a group of files " "keeping the level difference between each of them" #: src/dvd.c:862 msgid "" "(Click Droit = Menu) / PEAK: Amplification maximale du volume pour chaque de " "fichier." msgstr "" "(Right click = Menu) / PEAK: Maximum volume amplification for each file" #: src/dvd.c:900 src/dvd.c:920 msgid "En attente de selection. Un click activera la conversion vers 2 canaux." msgstr "" "Waiting for selection. A click will activate the conversion to 2 channels." #: src/dvd.c:912 msgid "Conversion vers 2 canaux." msgstr "Conversion to 2 channels." #: src/dvd.c:924 #, c-format msgid "Conversion vers %s canaux." msgstr "Conversion to %s channels." #: src/dvd.c:929 #, c-format msgid "" "Conversion vers 2 canaux. Un second click activera la conversion vers %s " "canaux." msgstr "" "Conversion to 2 channels. A second click will activate the conversion to %s " "channels." #: src/dvd.c:944 msgid "Musique en ecoute." msgstr "Playing music." #: src/dvd.c:947 msgid "Musique en attente." msgstr "Music paused." #: src/dvd.c:962 #, c-format msgid "Total selection%s: %d, 2ch: %d" msgstr "Total selection%s: %d, 2ch: %d" #: src/dvd.c:963 msgid "s" msgstr "s" #: src/dvd.c:969 msgid "Ce fichier ne peut etre extrait !" msgstr "This file can not be ripped !" #: src/dvd.c:1087 msgid "Titres" msgstr "Titls" #: src/dvd.c:1111 src/file.c:3375 src/file_mp3ogg.c:943 src/file_tags.c:1175 #: src/translate.c:332 msgid "Temps" msgstr "Time" #: src/dvd.c:1123 src/translate.c:333 msgid "Format" msgstr "Format" #: src/dvd.c:1135 src/translate.c:334 msgid "Choix" msgstr "Choice" #: src/dvd.c:1249 msgid "Fichier structure DVD" msgstr "DVD file structure" #: src/dvd.c:1299 msgid "Le DVD est absent du lecteur." msgstr "The DVD player is absent." #: src/dvd.c:1335 msgid "Scan ..." msgstr "Scan ..." #: src/dvd.c:1385 msgid "lsdvd est absent !" msgstr "lsdvd is missing !" #: src/dvd.c:1386 msgid "Il faut installer le programme: lsdvd" msgstr "You must install the program: lsdvd" #: src/dvd_extract.c:412 src/dvd_extract.c:414 msgid "XCFA: Extraction DVD" msgstr "XCFA: DVD rip" #: src/dvd_read.c:263 #, c-format msgid "Titre [%02d ** ]" msgstr "Title [%02d ** ]" #: src/dvd_read.c:266 #, c-format msgid "Titre [%02d]" msgstr "Title [%02d]" #: src/dvd_read.c:310 #, c-format msgid "Fichier_complet_%02d_%s" msgstr "Completed_file_%02d_%s" #: src/dvd_read.c:355 #, c-format msgid "Chapitre: [%02d]" msgstr "Chapter: [%02d]" #: src/dvd_read.c:401 #, c-format msgid "Titre_%02d_Chapitre_%02d_audio_%02d_%s" msgstr "Title_%02d_Chapter_%02d_audio_%02d_%s" #: src/file_action.c:183 src/file_action.c:185 msgid "XCFA: Traitement fichiers" msgstr "XCFA: Processing files" #: src/file_analyze.c:731 msgid "Package checkmp3 (mp3check) NOT FOUND !" msgstr "Package checkmp3 (mp3check) NOT FOUND !" #: src/file_analyze.c:732 msgid "" "Veuillez installer checkmp3 ou mp3check pour\n" "la prise en compte des fichiers mp3" msgstr "" "Please install or checkmp3 mp3check for\n" "consideration of mp3 files" #: src/file.c:328 #, c-format msgid "Total fichiers: %d, Selections: %d" msgstr "Total files: %d, Selected: %d" #: src/file.c:442 msgid "CAPACITE DOSSIER TEMPORAIRE TROP FAIBLE" msgstr "TEMPORARY CAPACITY TOO LOW" #: src/file.c:443 msgid "Pas assez de place dans le dossier temporaire" msgstr "WARNING: Not enough space available in the temp folder." #: src/file.c:449 msgid "Veuillez deselectionner des PeakGroup." msgstr "Please deselect PeakGroup." #: src/file.c:1433 msgid "Conversion(s) vers la source" msgstr "Conversion(s) to source" #: src/file.c:1434 msgid "Choix d'une nouvelle destination" msgstr "Select a new destination" #: src/file.c:1504 msgid "Select type: --" msgstr "Select type: -" #: src/file.c:1589 msgid "Peak/album" msgstr "Peak/album" #: src/file.c:1590 msgid "Peak" msgstr "Peak" #: src/file.c:1591 msgid "Mix (scan)Rms/album" msgstr "Mix (scan)Rms/album" #: src/file.c:1592 msgid "Fix (scan)Rms" msgstr "Fix (scan)Rms" #: src/file.c:2853 #, c-format msgid "MAX FICHIERS ATTEINT = %d" msgstr "MAX FILES REACHED = %d" #: src/file.c:2863 msgid "Normalise: En attente de selection." msgstr "Normalise: Waiting for selection." #: src/file.c:2867 msgid "ATTENTION: Pas assez de place dans le dossier temporaire." msgstr "WARNING: Not enough space available in the temp folder." #: src/file.c:2870 msgid "" "PEAK-ALBUM: Amplification maximale du volume pour un groupe de fichiers en " "respectant les ecarts de niveau entre chacun d'eux." msgstr "" "PEAK-ALBUM: Maximum volume amplification for a group of files according to " "the deviations in level between them" #: src/file.c:2874 msgid "PEAK: Amplification maximale du volume pour chaque de fichier." msgstr "PEAK: Maximum volume amplification of each file." #: src/file.c:2877 msgid "" "RMS-ALBUM: Ajustement du volume moyen pour un groupe de fichiers en " "respectant les ecarts de niveau moyen entre chacun d'eux." msgstr "" "RMS-ALBUM: Adjusting the average volume for a group of files according to " "the average level of deviation between them." #: src/file.c:2880 msgid "RMS: Ajustement du volume moyen de chaque de fichier." msgstr "RMS: Average volume amplification of each file." #: src/file.c:2894 msgid "(Click Droit = Menu) / ReplayGain: En attente de selection." msgstr "(Click Droit = Menu) / ReplayGain: Waiting for selection." #: src/file.c:2897 msgid "(Click Droit = Menu) / Mode piste." msgstr "(Click Droit = Menu) / Track mode." #: src/file.c:2900 msgid "(Click Droit = Menu) / Mode album." msgstr "(Click Droit = Menu) / Album mode." #: src/file.c:2903 msgid "(Click Droit = Menu) / Mode effacer." msgstr "(Click Droit = Menu) / Erase mode." #: src/file.c:3015 msgid "" "(Click Droit = Menu) / Cliquez ici pour envoyer ce fichier apres traitement " "a la corbeille" msgstr "" "(Click Droit = Menu) / Click here to send the processed file to the trash" #: src/file.c:3018 msgid "" "(Click Droit = Menu) / Ce fichier sera dirige apres traitement vers la " "corbeille" msgstr "" "(Right Click = Menu) / This file will be sent to the trash after processing" #: src/file.c:3152 src/file_trash.c:359 src/translate.c:362 msgid "Trash" msgstr "Trash" #: src/file.c:3172 src/file_mp3ogg.c:883 src/file_tags.c:1160 #: src/translate.c:363 src/translate.c:394 src/translate.c:405 msgid "Type" msgstr "Type" #: src/file.c:3411 msgid "ReplayGain" msgstr "ReplayGain" #: src/file_conv.c:2835 src/file_mp3ogg_conv.c:336 msgid "Erreur depuis MPLAYER !" msgstr "Error since MPLAYER !" #: src/file_conv.c:2836 src/file_conv.c:2848 src/file_mp3ogg_conv.c:337 #: src/file_mp3ogg_conv.c:349 msgid "Vous pouvez activer XCFA en ligne de commande avec: " msgstr "You can enable XCFA command line with: " #: src/file_conv.c:2838 src/file_conv.c:2850 src/file_mp3ogg_conv.c:339 #: src/file_mp3ogg_conv.c:351 msgid "$ xcfa -verbose" msgstr "$ xcfa -verbose" #: src/file_conv.c:2840 src/file_mp3ogg_conv.c:341 msgid "pour consulter le type d'erreur renvoye par mplayer." msgstr "to see the type of error returned by mplayer." #: src/file_conv.c:2847 src/file_mp3ogg_conv.c:348 msgid "Erreur depuis SOX !" msgstr "Error since SOX !" #: src/file_conv.c:2852 src/file_mp3ogg_conv.c:353 msgid "pour consulter le type d'erreur renvoye par sox." msgstr "to see the type of error returned by sox." #: src/file_mp3ogg.c:668 msgid "Click droit: acces popup" msgstr "Right click: access popup" #: src/file_mp3ogg.c:899 src/translate.c:395 msgid "Bitrate" msgstr "Bitrate" #: src/file_mp3ogg.c:915 msgid "Nouveau bitrate" msgstr "New bitrate" #: src/file_mp3ogg.c:929 msgid "Taille" msgstr "Size" #: src/file_mp3ogg_conv.c:329 src/file_mp3ogg_conv.c:331 msgid "XCFA: Modification bitrate" msgstr "XCFA: Bitrate change" #: src/file_mp3ogg_conv.c:432 #, c-format msgid " ATTENTION: Il faut installer %s%s%s" msgstr " WARNING : you need to install %s%s%s" #: src/file_mp3ogg_conv.c:440 #, c-format msgid " ATTENTION: Il faut installer %s%s" msgstr " WARNING : you need to install %s%s" #: src/file_mp3ogg_conv.c:447 #, c-format msgid " ATTENTION: Il faut installer %s" msgstr " WARNING : you need to install %s" #: src/file_mp3ogg_conv.c:454 msgid "Package NOT FOUND !" msgstr "Package NOT FOUND !" #: src/fileselect.c:105 msgid "Choix d'un dossier de destination" msgstr "Select a destination folder" #: src/fileselect.c:106 msgid "Choix d'un fichier CUE WAV FLAC OGG MP3 APE WMA" msgstr "Select CUE WAV FLAC OGG MP3 APE WMA files" #: src/fileselect.c:107 msgid "Choix d'un fichier musical" msgstr "Selecting a music file" #: src/fileselect.c:108 msgid "Choix d'un fichier" msgstr "Select a file" #: src/fileselect.c:109 msgid "Choix de fichiers" msgstr "Select files" #: src/fileselect.c:110 msgid "Choix de fichiers WAV" msgstr "Select a WAV file" #: src/fileselect.c:111 msgid "Choix de fichiers MP3/OGG" msgstr "Select MP3/OGG file" #: src/fileselect.c:112 msgid "Choix de fichiers FLAC MPC OGG MP3" msgstr "Select FLAC MPC OGG MP3 files" #: src/fileselect.c:113 msgid "Importer des images pour la pochette" msgstr "Import images for the cover" #: src/fileselect.c:114 msgid "Choix d'un chemin de stockage des images" msgstr "Select location for image storage" #: src/fileselect.c:115 msgid "Choix d'un lieu de sauvegarde" msgstr "Select a backup location" #: src/fileselect.c:472 src/fileselect.c:595 src/fileselect.c:605 #: src/fileselect.c:628 msgid "All Files (*.*)" msgstr "All Files (*.*)" #: src/file_trash.c:360 msgid "Trash files ..." msgstr "Trash files ..." #: src/file_wav.c:483 msgid "(Click Droit = Menu) / Choix de la frequence" msgstr "(Right Click = Menu) / Select frequency" #: src/file_wav.c:486 msgid "(Click Droit = Menu) / Choix du nombre de pistes (voies)" msgstr "(Right Click = Menu) / Select number of tracks (channels)" #: src/file_wav.c:489 msgid "(Click Droit = Menu) / Choix du codage en nombre de bits" msgstr "(Right Click = Menu) / Encoding selection in number of bits" #: src/file_wav.c:733 msgid "Frequence" msgstr "Frequency" #: src/file_wav.c:749 msgid "FREQUENCE" msgstr "FREQUENCY" #: src/file_wav.c:763 msgid "Piste" msgstr "Track" #: src/file_wav.c:779 msgid "PISTE" msgstr "TRACK" #: src/file_wav.c:793 msgid "Quantification" msgstr "Quantification" #: src/file_wav.c:809 msgid "QUANTIFICATION" msgstr "QUANTIFICATION" #: src/file_wav_conv.c:261 #, c-format msgid "%s Copie fichier: %d%%" msgstr "%s Copy file: %d%%" #: src/file_wav_conv.c:271 #, c-format msgid "%s Restitution fichier: %d%%" msgstr "%s Return file: %d%%" #: src/file_wav_conv.c:281 #, c-format msgid "%s Traitement Sox: %d%%" msgstr "%s Use Sox: %d%%" #: src/file_wav_conv.c:298 #, c-format msgid "%s Traitement Mplayer: %d%%" msgstr "%s Use Mplayer: %d%%" #: src/file_wav_conv.c:343 src/file_wav_conv.c:345 msgid "XCFA: Conversions WAV TO WAV" msgstr "XCFA: Conversions WAV TO WAV" #: src/main.c:398 msgid "= Adressage memoire invalide\n" msgstr "= Invalid memory address\n" #: src/main.c:401 msgid "= Vous avez probablement trouve un bug dans XCFA\n" msgstr "= You've probably found a bug in XCFA\n" #: src/main.c:786 msgid "MODE ADMINISTRATEUR" msgstr "ADMINISTRATOR MODE" #: src/main.c:788 msgid " Vous ne devriez pas utiliser " msgstr " You should not use " #: src/main.c:790 msgid " XCFA sous ROOT !" msgstr " XCFA under ROOT !" #: src/options.c:171 msgid "ERREUR: Lieu de stockage non autorise !" msgstr "ERROR : storage location not permitted !" #: src/options.c:172 msgid "Veuillez recommencer." msgstr "Please start again." #: src/options_cd.c:122 msgid "Pour evaluer les templates, vous devez activer une lecture de cdaudio" msgstr "To assess the templates, you must enable a reading cdaudio" #: src/options_faac.c:96 msgid "Transport Stream (ADTS) - Extension .aac" msgstr "Transport Stream (ADTS) - Extension .aac" #: src/options_faac.c:97 msgid "MPEG-4 File Format (MP4) - Extension .m4a" msgstr "MPEG-4 File Format (MP4) - Extension .m4a" #: src/options_flac.c:67 msgid "0 (Rapide)" msgstr "0 (Fast)" #: src/options_flac.c:75 msgid "8 (Lent)" msgstr "8 (Slow)" #: src/options_mp3.c:279 msgid "V0 (meilleure qualite)" msgstr "V0·····(Best quality)" #: src/options_mp3.c:288 msgid "V9 (moins bonne qualite)" msgstr "V9·····(Poor quality)" #: src/options_musepack.c:70 msgid "telephone: lowest quality : 32 .. 48 kbit/s" msgstr "Phone: (Lowest quality) : 32 .. 48 kbit/s" #: src/options_musepack.c:71 msgid "thumb : low quality/internet : 58 .. 86 kbit/s" msgstr "thumb : low quality/internet : 58 .. 86 kbit/s" #: src/options_musepack.c:72 msgid "radio : medium (MP3) quality : 112 .. 152 kbit/s" msgstr "radio : medium (MP3) quality : 112 .. 152 kbit/s" #: src/options_musepack.c:73 msgid "standard : high quality (dflt) : 142 .. 184 kbit/s" msgstr "standard : high quality (dflt) : 142 .. 184 kbit/s" #: src/options_musepack.c:74 msgid "xtreme : extreme high quality : 168 .. 212 kbit/s" msgstr "xtreme : extreme high quality : 168 .. 212 kbit/s" #: src/options_musepack.c:75 msgid "insane : extreme high quality : 232 .. 268 kbit/s" msgstr "insane : extreme high quality : 232 .. 268 kbit/s" #: src/options_musepack.c:76 msgid "braindead : extreme high quality : 232 .. 278 kbit/s" msgstr "braindead : extreme high quality : 232 .. 278 kbit/s" #: src/options_oggenc.c:138 msgid "Qualite -1 (Moins bonne qualite)" msgstr "Quality -1 (Poor quality)" #: src/options_oggenc.c:139 src/popup.c:1219 msgid "Qualite 0" msgstr "Quality 0" #: src/options_oggenc.c:140 src/popup.c:1219 msgid "Qualite 1" msgstr "Quality 1" #: src/options_oggenc.c:141 src/popup.c:1219 msgid "Qualite 2" msgstr "Quality 2" #: src/options_oggenc.c:142 msgid "Qualite 3" msgstr "Quality 3" #: src/options_oggenc.c:143 src/popup.c:1220 msgid "Qualite 4" msgstr "Quality 4" #: src/options_oggenc.c:144 src/popup.c:1220 msgid "Qualite 5" msgstr "Quality 5" #: src/options_oggenc.c:145 src/popup.c:1220 msgid "Qualite 6" msgstr "Quality 6" #: src/options_oggenc.c:146 src/popup.c:1220 msgid "Qualite 7" msgstr "Quality 7" #: src/options_oggenc.c:147 src/popup.c:1221 msgid "Qualite 8" msgstr "Quality 8" #: src/options_oggenc.c:148 src/popup.c:1221 msgid "Qualite 9" msgstr "Quality 9" #: src/options_oggenc.c:149 msgid "Qualite 10 (Meilleure qualite)" msgstr "Quality 10 (Best quality)" #: src/options_oggenc.c:179 src/options_wavpack.c:181 #: src/options_wavpack.c:204 src/options_wavpack.c:227 src/popup.c:1223 msgid "Oui" msgstr "Yes" #: src/options_oggenc.c:180 src/options_wavpack.c:148 #: src/options_wavpack.c:180 src/options_wavpack.c:203 #: src/options_wavpack.c:226 src/options_wavpack.c:247 src/popup.c:1223 msgid "Non" msgstr "No" #: src/options_oggenc.c:201 msgid "Mono force" msgstr "Force mono" #: src/options_oggenc.c:202 msgid "Stereo" msgstr "Stereo" #: src/options_wavpack.c:100 msgid "Mode normal" msgstr "Standard" #: src/options_wavpack.c:101 msgid "Mode rapide de compression" msgstr "Fast (Faster encode and decode)" #: src/options_wavpack.c:102 msgid "Bonne qualite de compression" msgstr "High quality (Better compression ratio)" #: src/options_wavpack.c:103 msgid "Meilleure qualite de compression" msgstr "Very high quality (Best compression but slowest)" #: src/options_wavpack.c:129 msgid "stereo left/right" msgstr "stereo left/right" #: src/options_wavpack.c:130 msgid "stereo mid/side" msgstr "stereo mid/side" #: src/options_wavpack.c:248 msgid "1 (fast / rapide)" msgstr "1 (fast)" #: src/options_wavpack.c:253 msgid "6 (very slow / tres lent)" msgstr "6 (very slow)" #: src/play_file.c:108 msgid "PAS de lecteur audio present" msgstr "NO audio player present" #: src/play_file.c:109 msgid "Veuillez installez un lecteur audio." msgstr "Please install an audio player" #: src/poche_dir.c:430 msgid "" "Utilisez le glisser / deplacer - Effacer une image avec Ctrl + " "Click" msgstr "" "Use drag / drop - delete an image with Ctrl +Click" #: src/poche_save.c:111 msgid "Nom de fichier absent !!" msgstr "File name not found !!" #: src/poche_save.c:112 src/poche_web.c:353 src/poche_web.c:375 msgid "Pour resoudre ce probleme:" msgstr "To solve this problem :" #: src/poche_save.c:115 msgid "Saisissez un nom de fichier sans extention" msgstr "Enter a file name without extension" #: src/poche_save.c:126 msgid "Sauvegarde aux formats PDF et PostScript" msgstr "Saving to PDF and PostScript" #: src/poche_save.c:151 msgid "Sauvegarde au format PNG" msgstr "Saving as PNG" #: src/poche_web.c:352 msgid "Aucun fichier trouve !" msgstr "No file found !" #: src/poche_web.c:356 msgid "Modifiez la chaine de recherche et" msgstr "Modify the search parameters and" #: src/poche_web.c:358 src/poche_web.c:380 msgid "recommencez." msgstr "start again" #: src/poche_web.c:374 msgid "Critere de recherche absent !!" msgstr "Search criteria away !!" #: src/poche_web.c:378 msgid "Saisissez une chaine de recherche et" msgstr "Enter a search string and" #: src/poche_web.c:387 msgid "[Recherche des fichiers images]" msgstr "[Search images files]" #: src/popup.c:81 src/popup.c:100 msgid " Deselection globale" msgstr " Deselect all" #: src/popup.c:82 src/popup.c:101 src/popup.c:162 msgid " Deselection verticale" msgstr " Vertically deselect" #: src/popup.c:83 src/popup.c:102 msgid " Deselection horizontale" msgstr " Horizontally deselect" #: src/popup.c:84 src/popup.c:87 src/popup.c:103 src/popup.c:106 #: src/popup.c:120 src/popup.c:133 src/popup.c:147 msgid " ---" msgstr " ---" #: src/popup.c:85 src/popup.c:104 msgid " Selection verticale" msgstr " Vertically select" #: src/popup.c:86 src/popup.c:105 msgid " Selection Expert verticale" msgstr " Vertical expert select" #: src/popup.c:88 src/popup.c:107 msgid " Selection horizontale" msgstr " Horizontally select" #: src/popup.c:89 src/popup.c:108 msgid " Selection Expert horizontale " msgstr " Horizontal expert select" #: src/popup.c:119 src/popup.c:132 msgid " Deselection verticale " msgstr " Vertically deselect " #: src/popup.c:121 src/popup.c:134 msgid " Selection verticale " msgstr " Vertically select " #: src/popup.c:145 msgid "---SELECTION VERTICALE-----" msgstr "---VERTICAL SELECTION------" #: src/popup.c:146 msgid " Deselection verticale " msgstr " Vertically deselect " #: src/popup.c:148 msgid " Selection PISTE " msgstr " TRACK selection " #: src/popup.c:149 msgid " Selection ALBUM " msgstr " ALBUM selection " #: src/popup.c:150 msgid " Selection NETTOYER " msgstr " ERASE selection " #: src/popup.c:161 msgid "---MENU TRASH--------------" msgstr "---TRASH MENU--------------" #: src/popup.c:163 msgid " Selection verticale " msgstr " Vertically select " #: src/popup.c:489 msgid "1 piste" msgstr "1 track" #: src/popup.c:492 msgid "2 pistes" msgstr "2 track" #: src/popup.c:495 msgid "4 pistes" msgstr "4 track" #: src/popup.c:498 msgid "6 pistes" msgstr "6 track" #: src/popup.c:504 src/popup.c:619 src/popup.c:716 msgid "Valeur d'origine" msgstr "Original value" #: src/popup.c:592 msgid " 8000 Hertz" msgstr " 8000 Hertz" #: src/popup.c:595 msgid "22000 Hertz" msgstr "22000 Hertz" #: src/popup.c:598 msgid "32000 Hertz" msgstr "32000 Hertz" #: src/popup.c:601 msgid "44056 Hertz" msgstr "44056 Hertz" #: src/popup.c:604 msgid "44100 Hertz" msgstr "44100 Hertz" #: src/popup.c:607 msgid "48000 Hertz" msgstr "48000 Hertz" #: src/popup.c:610 msgid "88200 Hertz" msgstr "88200 Hertz" #: src/popup.c:613 msgid "96000 Hertz" msgstr "96000 Hertz" #: src/popup.c:698 msgid " 8 bits" msgstr " 8 bits" #: src/popup.c:701 msgid "16 bits" msgstr "16 bits" #: src/popup.c:704 msgid "24 bits" msgstr "24 bits" #: src/popup.c:707 msgid "32 bits" msgstr "32 bits" #: src/popup.c:710 msgid "64 bits" msgstr "64 bits" #: src/popup.c:765 msgid "Selecteur suivant" msgstr "Following selector" #: src/popup.c:769 msgid "Selecteur precedant" msgstr "Previous selector" #: src/popup.c:777 msgid "Supprimer la plage active" msgstr "Delete the active range" #: src/popup.c:849 msgid "Retourner horizontalement" msgstr "Flip Horizontal" #: src/popup.c:853 msgid "Retourner verticalement" msgstr "Flip Vertical" #: src/popup.c:861 msgid "Image au premier plan" msgstr "Foreground image" #: src/popup.c:865 msgid "Image au dessus" msgstr "Image above" #: src/popup.c:869 msgid "Image en dessous" msgstr "Image below" #: src/popup.c:873 msgid "Image au dernier plan" msgstr "Image to the background" #: src/popup.c:881 msgid "Effacer l'image" msgstr "Clear image" #: src/popup.c:918 msgid "Supprimer l'image de la liste" msgstr "Remove image from the list" #: src/popup.c:1036 msgid "V0 [ meilleure qualite ]" msgstr "V0 [ best quality ]" #: src/popup.c:1036 src/popup.c:1039 msgid "V4 [ defaut ]" msgstr "V4 [ default ]" #: src/popup.c:1036 msgid "V9 [ moins bonne qualite ]" msgstr "V9 [ worst quality ]" #: src/popup.c:1219 msgid "Qualite -1 [ Moins bonne qualite ]" msgstr "Quality -1 [ worst quality ]" #: src/popup.c:1220 msgid "Qualite 3 [ Defaut ]" msgstr "Quality 3 [ Default ]" #: src/popup.c:1221 msgid "Qualite 10 [ Meilleure qualite ]" msgstr "Quality 10 [ Best quality ]" #: src/prg_init.c:85 msgid " Decode ATSC A/52 audio streams" msgstr " Decode ATSC A/52 audio streams" #: src/prg_init.c:96 msgid " AAC+ encoder" msgstr " AAC+ encoder" #: src/prg_init.c:107 src/prg_init.c:173 msgid " Extracteur cd audio" msgstr " InCrEdible Digital Audio eXtractor" #: src/prg_init.c:118 msgid " Read CD and get CDDB discid information" msgstr " Read CD and get CDDB discid information" #: src/prg_init.c:129 msgid " Cherche des renseignements sur les formats mp3" msgstr " Check validity of mp3s" #: src/prg_init.c:140 msgid " Audio Codeur freeware" msgstr " MPEG-4 and MPEG-2 AAC encoder" #: src/prg_init.c:151 msgid " MPEG-4 AAC decodeur" msgstr " MPEG-4 AAC decoder" #: src/prg_init.c:162 msgid " Conversion wav : flac" msgstr " Create wav to flac" #: src/prg_init.c:184 msgid " Conversion wav : mp3" msgstr " Create mp3 audio files" #: src/prg_init.c:195 msgid " Cherche les informations d'un dvd" msgstr " Read the contents of a DVD" #: src/prg_init.c:207 msgid " Monkey's Audio Console Front End : APE" msgstr " Monkey's Audio Console Front End : APE" #: src/prg_init.c:219 src/prg_init.c:230 msgid " MusePack commandline utilities" msgstr " MusePack commandline utilities" #: src/prg_init.c:241 msgid " Lecteur et extracteur" msgstr " Video and audio player" #: src/prg_init.c:252 msgid " Normaliseur de fichier mp3" msgstr " Lossless mp3 normaliser" #: src/prg_init.c:263 msgid " Normaliseur de fichier wav" msgstr " wav file normaliser" #: src/prg_init.c:274 msgid " A program to send desktop notifications" msgstr " A program to send desktop notifications" #: src/prg_init.c:285 msgid " Forte compression au format wave" msgstr " High compression for waveform files" #: src/prg_init.c:296 msgid " Decoupage de fichiers sans decodage" msgstr " Split mp3/ogg without decoding" #: src/prg_init.c:307 msgid " Transformation universelle de fichiers son" msgstr " Sound eXchange, the Swiss Army knife of audio manipulation" #: src/prg_init.c:318 msgid " Conversion wav : ogg" msgstr " Convert wav : ogg" #: src/prg_init.c:329 msgid " Normaliseur de fichier ogg" msgstr " ogg file normaliser" #: src/prg_init.c:340 msgid " WAVPACK Hybrid Lossless Audio Compressor" msgstr " Wavpack Hybrid Lossless Audio Compressor" #: src/prg_init.c:357 msgid " ... les paquets: deb " msgstr " ... Packets: deb " #: src/prg_init.c:363 msgid " ... les paquets: tgz " msgstr " ... Packets: tgz " #: src/prg_init.c:369 msgid " ... les paquets: fpm " msgstr " ... Packets: fpm " #: src/prg_init.c:375 msgid " ... les paquets: rpm " msgstr " ... Packets: rpm " #: src/prg_init.c:381 msgid " ... les paquets: pkg.tar.xz " msgstr " ... Packets: pkg.tar.xz " #: src/prg_init.c:387 msgid " ... les paquets: ? " msgstr " ... Packets: ?" #: src/prg_init.c:623 msgid "Status" msgstr "Status" #: src/prg_init.c:637 msgid "Paquet" msgstr "Packets" #: src/prg_init.c:652 msgid "Action" msgstr "Action" #: src/scan.c:259 msgid "PACKAGE dvd+rw-tools ABSENT" msgstr "PACKAGE dvd+rw-tools is missing" #: src/scan.c:260 msgid "Le package 'dvd+rw-tools' est absent" msgstr "The package 'imagemagick' is missing" #: src/scan.c:262 msgid "de votre systeme !" msgstr "on your system !" #: src/scan.c:264 msgid "Veuillez l'installer car j'ai besoin de" msgstr "Please install it and resume" #: src/scan.c:266 msgid "'dvd+rw-mediainfo' pour identifier le(s)" msgstr "'Dvd + rw-mediainfo' to identify the" #: src/scan.c:268 msgid "lecteur(s) de cd / dvd." msgstr "reader of cd / dvd." #: src/split.c:279 msgid "" "Menu: Click droit / Ajout plage: Click bouton centre / Zoom: Ctrl+Scroll" msgstr "" "Menu: right click / Adding track: Click the center button / Zoom: Ctrl" "+Scroll" #: src/split.c:282 msgid "Ajout plage: Click bouton centre / Zoom: Ctrl+Scroll" msgstr "Adding track: Click the center button / Zoom: Ctrl+Scroll" #: src/split.c:286 msgid "" "Pret pour l'import d'un fichier CUE, WAV, FLAC, OGG, MP3, APE, WMA" msgstr "Ready for imports and a CUE file, WAV, FLAC, OGG, MP3, APE, WMA" #: src/split.c:356 src/split.c:385 msgid "Ce fichier appartient a XCFA" msgstr "This file belongs XCFA" #: src/split.c:357 src/split.c:386 msgid "Selectionnez un autre fichier." msgstr "Select another file." #: src/split.c:365 msgid "Fichier vide" msgstr "Empty file" #: src/split.c:366 msgid "Le fichier ne contient aucune donnee !!!" msgstr "The file contains no data !!!" #: src/split.c:411 msgid "Sox et Mplayer absents" msgstr "Sox and Mplayer is missing" #: src/split.c:412 msgid "Sox et Mplayer sont absents de votre" msgstr "Sox and Mplayer is missing" #: src/split.c:414 msgid "configuration." msgstr "configuration." #: src/split.c:416 msgid "Veuillez les installer pour pouvoir continuer." msgstr "Please install it and resume" #: src/split.c:467 msgid "Erreur de choix de fichier" msgstr "Error file select" #: src/split.c:468 msgid "Veuillez selectionner un fichier de type WAV FLAC MP3 OGG APE" msgstr "Please select a file type of MP3 WAV OGG FLAC APE" #: src/split.c:505 src/split.c:579 msgid "Mauvais type de fichier" msgstr "Wrong type of file" #: src/split.c:506 src/split.c:580 msgid "" "Les types de fichiers acceptes\n" "sont: WAV FLAC MP3 OGG APE WMA CUE" msgstr "" "File types accepted\n" "are: WAV FLAC MP3 OGG APE WMA CUE" #: src/split_conv.c:313 src/split_conv.c:330 msgid "Erreur SOX" msgstr "SOX Error" #: src/split_conv.c:314 src/split_conv.c:331 msgid "Le programme SOX de votre distribution" msgstr "The SOX program on your distribution" #: src/split_conv.c:316 src/split_conv.c:333 msgid "a generer une erreur pendant la conversion." msgstr "has generated an error during conversion" #: src/split_cue.c:116 msgid "Erreur de lecture !" msgstr "Misreading !" #: src/split_cue.c:177 src/split_cue.c:187 src/split_cue.c:197 msgid "Erreur" msgstr "Error" #: src/split_cue.c:178 msgid "Aucun fichier de musique associe au cue-file !" msgstr "No music file associated with the cue-file" #: src/split_cue.c:188 msgid "Pas de fichier WAV dans le cue-file !" msgstr "No WAV file in the cue-file" #: src/split_cue.c:198 msgid "Aucun fichier de musique associe dans le dossier" msgstr "No music file in the folder associated" #: src/split_cue.c:200 msgid "du cue-file" msgstr "of cue-file" #: src/split_cue.c:294 msgid "Erreur de donnees dans le fichier CUE" msgstr "Data errors in the CUE file" #: src/split_cue.c:295 msgid "La solution est d'importer le fichier de" msgstr "The solution is to import the file" #: src/split_cue.c:297 msgid "musique qui sera reconnu et pre-decoupe" msgstr "music that will be recognized and pre-cutting" #: src/split_cue.c:299 msgid "dans le module Split." msgstr "Split in the module." #: src/split_cue.c:301 msgid "Il ne restera qu'a ajuster les plages pour" msgstr "We will just adjust to the beaches" #: src/split_cue.c:303 msgid "generer un nouveau cue-file ou des decoupes" msgstr "generate a new cue-file or cuts" #: src/split_cue.c:305 msgid "correspondant aux plages." msgstr "corresponding to the beaches." #: src/split_selector.c:136 msgid "Suppression pendant la lecture impossible" msgstr "Deleting not during playback" #: src/split_selector.c:229 src/split_selector.c:235 src/split_selector.c:289 #: src/split_selector.c:295 src/split_selector.c:352 src/split_selector.c:359 #: src/split_selector.c:429 src/split_selector.c:435 msgid "Temps inferieur a 5 secondes entre marqueur et curseur !" msgstr "Time of less than 5 seconds between marker and cursor !" #: src/translate.c:51 msgid "Fichier" msgstr "File" #: src/translate.c:52 msgid "Quitter" msgstr "Quit" #: src/translate.c:53 msgid "Outils" msgstr "Tools" #: src/translate.c:54 msgid "Visibilite des champs" msgstr "Visible fields" #: src/translate.c:55 msgid "Aide" msgstr "Help" #: src/translate.c:56 msgid "A propos" msgstr "About" #: src/translate.c:57 src/translate.c:67 msgid "Lecture" msgstr "Play" #: src/translate.c:58 msgid " Choix du peripherique / Lecture du DVD " msgstr " DVD player / Import files " #: src/translate.c:59 src/translate.c:69 src/translate.c:125 msgid " Destination des fichiers " msgstr " Save location: " #: src/translate.c:60 src/translate.c:70 msgid " Eject " msgstr " Eject " #: src/translate.c:61 src/translate.c:92 msgid " Normaliser " msgstr " Normalise " #: src/translate.c:62 msgid "Deplier" msgstr "Unfold" #: src/translate.c:63 msgid "Replier" msgstr "Fold" #: src/translate.c:64 msgid " Vers 2CH: Sub / Ambiance " msgstr " 2CH: Sub / Ambiance " #: src/translate.c:65 src/translate.c:98 msgid "Extraire" msgstr "Rip" #: src/translate.c:66 msgid " DVD " msgstr " DVD " #: src/translate.c:68 msgid " Choix du peripherique / Lecture du CD " msgstr " CD player " #: src/translate.c:71 msgid "Titre:" msgstr "Title:" #: src/translate.c:72 msgid "Album:" msgstr "Album:" #: src/translate.c:73 msgid "Artiste:" msgstr "Artist:" #: src/translate.c:74 msgid " Annee:" msgstr "Year :" #: src/translate.c:75 msgid " Genre:" msgstr "Genre :" #: src/translate.c:76 msgid " Piste:" msgstr "Track:" #: src/translate.c:77 msgid " *.m3u et xspf: " msgstr "m3u and xspf: " #: src/translate.c:78 msgid "Commentaire:" msgstr "Comment:" #: src/translate.c:79 msgid " Modification des tags Freedb " msgstr " Freedb tags modification " #: src/translate.c:80 msgid "" "%a [ %a=\"Artist\" ]\n" "\n" "%b [ %b=\"Album\" ]\n" "\n" "%Tl - Tetsumaki lower\n" "\n" "Transforme la chaine en minuscule sauf le premier caractere.\n" "\n" "Dans le champs 'Titre' depuis [ Modification des tags FreeDB ],\n" "le ou les caracteres devant etre conserves doivent etre precedes par le " "caractere %" msgstr "" "%a [ %a=\"Artist\" ]\n" "\n" "%b [ %b=\"Album\" ]\n" "\n" "TI% - Tetsumaki lower\n" "\n" "Converts the string to lowercase except for the first character\n" "\n" "In the fields 'Title' since [Changing FreeDB tag]\n" "the character or characters to be retained must be preceded bycharacter %" #: src/translate.c:81 msgid "" "%a - artiste %b - titre " "de l'album %c - numero de la piste\n" "%d - titre de la chanson %e - " "annee %g - genre\n" "%f - creation d'un fichier *.m3u et *." "xspf %na - no accent\n" "%u - remplacement de caracteres: %u(AB=C) %u( =_) %Tl - Tetsumaki lower" msgstr "" "%a - artist %b - album " "title %c - track number\n" "%d - track title %e - " "year %g - genre\n" "%f - create an m3u and xspf file %na - no accent\n" "%u - replace special characters: %u(AB=C) %u( =_) %Tl - Tetsumaki lower" #: src/translate.c:82 msgid " Arrangement des titres du CD " msgstr " Arrangement of CD titles " #: src/translate.c:83 msgid "Creation d'un fichier unique au format: " msgstr "Create a single file in the format: " #: src/translate.c:84 msgid " et dont le nom sera: " msgstr " Named: " #: src/translate.c:85 msgid "Ecriture du fichier cue" msgstr "Write cue file" #: src/translate.c:86 msgid " Au moins deux selections colonne Wav " msgstr " Make at least two selections in the Wav column " #: src/translate.c:87 msgid "" "Creation d'un fichier cue\n" "unique depuis une lecture\n" "du cd audio" msgstr "" "Create a single cue\n" "file from an audio-CD" #: src/translate.c:88 msgid "Creation fichier cue uniquement" msgstr "Create cue file" #: src/translate.c:89 msgid " Creation Cue cd " msgstr " CD cue file creation " #: src/translate.c:90 msgid " Creation d'un fichier unique " msgstr " Creating a single file " #: src/translate.c:91 msgid "Gestion des tags, titres et fichiers cue" msgstr "Tags, titles and cue files management" #: src/translate.c:93 msgid "definit le serveur a contacter pour les recherches titre" msgstr "Sets the server to be contacted for title lookups" #: src/translate.c:94 msgid "Parametres par defaut" msgstr "Default parameters" #: src/translate.c:96 msgid "Choix parmis les differentes bases de donnees pour le CD." msgstr "Choice among different databases for the CD." #: src/translate.c:97 msgid "DiscId" msgstr "DiscId" #: src/translate.c:99 msgid " CD " msgstr " CD " #: src/translate.c:100 src/translate.c:124 msgid " Importer " msgstr " Import " #: src/translate.c:101 msgid " Destination des conversions " msgstr " Export converted files: " #: src/translate.c:102 msgid " Nettoyer " msgstr " Clear " #: src/translate.c:103 src/translate.c:107 msgid "Appliquer les modifications" msgstr "Apply the changes" #: src/translate.c:104 msgid " Normalise: " msgstr " Normalise: " #: src/translate.c:105 msgid " Choix niveau dBFS: " msgstr " dBFS level: " #: src/translate.c:106 src/translate.c:123 msgid " Fichiers " msgstr " Files " #: src/translate.c:108 msgid " Wav " msgstr " Wav " #: src/translate.c:109 src/translate.c:121 msgid "Appliquer" msgstr "Apply" #: src/translate.c:110 msgid "Effacer" msgstr "Clear" #: src/translate.c:111 msgid " Mp3-Ogg " msgstr " Mp3-Ogg " #: src/translate.c:112 msgid "Titre:" msgstr "Title:" #: src/translate.c:113 msgid "Album:" msgstr "Album:" #: src/translate.c:114 msgid "Artiste:" msgstr "Artist:" #: src/translate.c:115 msgid "Commentaire:" msgstr "Comment:" #: src/translate.c:116 msgid " Annee:" msgstr " Year:" #: src/translate.c:117 msgid " Genre:" msgstr " Genre:" #: src/translate.c:118 msgid " Piste:" msgstr " Track:" #: src/translate.c:119 msgid " Modif.:" msgstr " Edit:" #: src/translate.c:120 msgid "0" msgstr "0" #: src/translate.c:122 src/translate.c:309 msgid " Tags " msgstr " Tags " #: src/translate.c:126 msgid "Lecture de 5 secondes apres le marqueur de debut" msgstr "Reading 5 seconds after the beginning marker" #: src/translate.c:127 msgid "Index de debut" msgstr "Index start" #: src/translate.c:128 src/translate.c:135 src/translate.c:138 msgid "00h00m00s" msgstr "00h00m00s" #: src/translate.c:129 msgid "lecture" msgstr "Play" #: src/translate.c:130 msgid "Pause" msgstr "Pause" #: src/translate.c:131 msgid "Index de lecture" msgstr "Index reading" #: src/translate.c:132 src/translate.c:171 msgid "label" msgstr "label" #: src/translate.c:133 msgid "Lecture de 5 secondes avant le marqueur de fin" msgstr "Reading of 5 seconds before the end marker" #: src/translate.c:134 msgid "Index de fin" msgstr "End index" #: src/translate.c:136 msgid "Plage" msgstr "Plage" #: src/translate.c:137 msgid "Duree de la plage active" msgstr "Length of the active beach" #: src/translate.c:139 msgid "Suprimer tous les marqueurs pour les remplacer par un marqueur unique" msgstr "Wipe all markers and replace them with a single marker" #: src/translate.c:140 msgid "Le fichier CUE sera enregistre vers 'Destination des fichiers'." msgstr "CUE file to be recorded 'Destination file'." #: src/translate.c:141 msgid "Production fichier Cue" msgstr "Generate CUE file" #: src/translate.c:142 msgid "Le resultat du Split sera dirige vers 'Destination des fichiers'." msgstr "The result of the Split will be heading for 'Destination file'." #: src/translate.c:143 msgid "Split" msgstr "Split" #: src/translate.c:144 msgid " Split " msgstr " Split " #: src/translate.c:145 msgid "Importation du titre du CD." msgstr "Import the CD title." #: src/translate.c:146 msgid "Titre CD" msgstr "Title CD" #: src/translate.c:147 msgid "Choix d'une nouvelle police." msgstr "Choosing a new font." #: src/translate.c:148 msgid "Texte gras." msgstr "Bold text." #: src/translate.c:149 msgid "Texte italique." msgstr "Italic text." #: src/translate.c:150 msgid "" "Apres une lecture de CD et un ajout d'etiquette, ce menu permet la mise en " "forme des titres, auteurs ..." msgstr "" "After reading a CD and add a label, this menu allows the formatting of " "titles, authors ..." #: src/translate.c:151 msgid "Ajouter du texte editable." msgstr "Add text editable." #: src/translate.c:152 msgid "Texte" msgstr "Text" #: src/translate.c:153 msgid "Saisissez ici un critere de recherche d'images." msgstr "Enter here a search of images." #: src/translate.c:154 msgid "Importation des images depuis le Web." msgstr "Importing images from the Web." #: src/translate.c:155 msgid "Import images web" msgstr "Import web images" #: src/translate.c:156 msgid "Supprimer l'image en selection" msgstr "Delete the image selection" #: src/translate.c:157 msgid "AJouter de nouvelles images." msgstr "Add new images." #: src/translate.c:158 msgid "Ouvre un fichier" msgstr "Open a file" #: src/translate.c:159 msgid "Enregistrer la page au format png." msgstr "Save Page png." #: src/translate.c:160 msgid "Sauvegarde le fichier" msgstr "Saving the file" #: src/translate.c:161 msgid "Diminution de l'echelle." msgstr "Reduction in the scale." #: src/translate.c:162 msgid "Reduit l'agrandissement" msgstr "Reduced expansion" #: src/translate.c:163 msgid "Echelle a 100%." msgstr "Scale 100%." #: src/translate.c:164 msgid "Remet l'echelle a 100%" msgstr "Gives the scale at 100%" #: src/translate.c:165 msgid "Augmentation de l'echelle." msgstr "Increase in scale." #: src/translate.c:166 msgid "Augmente l'agrandissement" msgstr "Increasing expansion" #: src/translate.c:167 msgid "Echelle compatible avec la taille de la fenetre." msgstr "Scale compatible with the size of the window." #: src/translate.c:168 msgid "Adapte l'echelle a la taille de la fenetre" msgstr "Adjusts the scale to the size of the window" #: src/translate.c:169 msgid "Emplacement de sauvegarde des fichiers." msgstr "Backup location files." #: src/translate.c:170 msgid "Nom (sans extention) du fichier a sauvegarder." msgstr "Name (without extension) file is saved." #: src/translate.c:172 msgid " Pochette " msgstr " CD Cover " #: src/translate.c:173 msgid "Nice" msgstr "Nice" #: src/translate.c:174 msgid " Priorite systeme " msgstr " System priority " #: src/translate.c:175 msgid "" "Indiquez ici le dossier sur votre systeme qui servira de lieu\n" "de stockage provisoire pendant les differentes conversions.\n" msgstr "Enter the location of the temporary folder to be used by XCFA\n" #: src/translate.c:176 msgid " Dossier provisoire des conversions " msgstr " Conversions temporary folder " #: src/translate.c:177 msgid "button" msgstr "button" #: src/translate.c:178 msgid " Jouer une musique en fin de tache " msgstr " Play music at the end of task " #: src/translate.c:179 msgid " General " msgstr " General " #: src/translate.c:180 msgid "cdparanoia" msgstr "cdparanoia" #: src/translate.c:181 msgid "cdparanoia mode expert" msgstr "cdparanoia expert mode" #: src/translate.c:182 msgid "cdparanoia mode expert multi passes" msgstr "cdparanoia expert mode multi pass" #: src/translate.c:183 msgid "cdda2wav / icedax" msgstr "cdda2wav / icedax" #: src/translate.c:184 msgid " Extraction cd-audio avec: " msgstr " Rip audio-CD with: " #: src/translate.c:185 msgid "HomePage" msgstr "Home Page" #: src/translate.c:186 msgid "ManPage " msgstr "Man Page " #: src/translate.c:187 msgid " Web cdparanoia " msgstr " Web cdparanoia " #: src/translate.c:188 msgid "" "Le fichier LogExpertMode.txt sera cree dans le dossier des " "extractions" msgstr "" "LogExpertMode.txt file will be created in the folder extractions" #: src/translate.c:189 msgid "" "Generation d'un rapport pour: cdparanoia mode expert multi passes" msgstr "Generation of a report for: cdparanoia expert mode multi pass" #: src/translate.c:190 msgid "" "%a - artiste %b - titre " "de l'album %c - numero de la piste\n" "%d - titre de la chanson %e - " "annee %g - genre\n" "%na - no accent %Tl " "- Tetsumaki lower\n" "%u - remplacement de caracteres: %u(AB=C) %u( =_)" msgstr "" "%a - artist %b - album " "title %c - track number\n" "%d - track title %e - " "year %g - genre\n" "%na - no accent %Tl " "- Tetsumaki lower\n" "%u - replacing characters: %u(AB=C) %u( =_)" #: src/translate.c:191 msgid " Dossier de stockage " msgstr " File storage " #: src/translate.c:192 msgid " CD " msgstr " CD " #: src/translate.c:193 msgid "ABR / CBR / VBR / VBR-NEW" msgstr "ABR / CBR / VBR / VBR-NEW" #: src/translate.c:194 msgid "Debit" msgstr "Bitrate" #: src/translate.c:195 msgid "Mode" msgstr "Mode" #: src/translate.c:196 msgid " Lame (fichier mp3): " msgstr " Lame (mp3 file): " #: src/translate.c:197 src/translate.c:213 src/translate.c:225 #: src/translate.c:238 src/translate.c:255 src/translate.c:266 #: src/translate.c:280 src/translate.c:294 msgid "Par defaut" msgstr "Default" #: src/translate.c:198 msgid " Options LAME " msgstr " LAME Options " #: src/translate.c:199 src/translate.c:227 src/translate.c:268 msgid "Site officiel" msgstr "Official website" #: src/translate.c:200 msgid "Wiki mp3 " msgstr "mp3 wiki " #: src/translate.c:201 msgid "Wiki " msgstr "Lame wiki " #: src/translate.c:202 msgid "ManPage " msgstr "Man Page " #: src/translate.c:203 msgid " Web Lame " msgstr " Lame " #: src/translate.c:204 src/translate.c:218 src/translate.c:231 #: src/translate.c:242 src/translate.c:260 src/translate.c:271 #: src/translate.c:286 msgid "[" msgstr "[" #: src/translate.c:205 src/translate.c:219 src/translate.c:232 #: src/translate.c:243 src/translate.c:261 src/translate.c:272 #: src/translate.c:287 msgid "string option interne" msgstr "internal string option" #: src/translate.c:206 src/translate.c:220 src/translate.c:233 #: src/translate.c:244 src/translate.c:262 src/translate.c:273 #: src/translate.c:288 msgid "]" msgstr "]" #: src/translate.c:207 msgid "" " Options experts, definies par l'utilisateur - lame (wav -> mp3) " msgstr " User-defined expert options - lame (wav -> mp3) " #: src/translate.c:208 msgid " Mp3 " msgstr " Mp3 " #: src/translate.c:209 msgid " Mode" msgstr " Mode" #: src/translate.c:210 msgid " Mode flux (streaming)" msgstr " Streaming" #: src/translate.c:211 msgid " Debit" msgstr "Bitrate" #: src/translate.c:212 msgid " Oggenc (fichier ogg): " msgstr " Oggenc (ogg file): " #: src/translate.c:214 msgid " Options OGGENC " msgstr " OGGENC Options " #: src/translate.c:215 msgid "Wiki " msgstr "Wiki " #: src/translate.c:216 src/translate.c:258 src/translate.c:284 #: src/translate.c:298 msgid "ManPage" msgstr "Man Page" #: src/translate.c:217 msgid " Web Oggenc " msgstr " Oggenc " #: src/translate.c:221 msgid "" " Options experts, definies par l'utilisateur - oggenc (wav -> ogg) " msgstr " User-defined expert options - oggenc (wav -> ogg) " #: src/translate.c:222 msgid " Oggenc " msgstr " Oggenc " #: src/translate.c:223 msgid "Taux de compression" msgstr "Compression level" #: src/translate.c:224 msgid " Flac (fichier flac): " msgstr " Flac (flac file): " #: src/translate.c:226 msgid " Options FLAC " msgstr " FLAC Options " #: src/translate.c:228 src/translate.c:269 msgid "Framasoft " msgstr "Framasoft " #: src/translate.c:229 msgid "ManPage " msgstr "Man Page " #: src/translate.c:230 msgid " Web Flac " msgstr " Flac " #: src/translate.c:234 msgid "" " Options experts, definies par l'utilisateur - flac (wav -> flac) " msgstr " User-defined expert options - flac (wav -> flac) " #: src/translate.c:235 msgid " Flac " msgstr " Flac " #: src/translate.c:236 msgid " Qualite" msgstr " Quality" #: src/translate.c:237 msgid " Mac (fichier ape): " msgstr " Mac (ape file): " #: src/translate.c:239 msgid " Options MAC " msgstr " MAC Options " #: src/translate.c:240 msgid "Wiki" msgstr "Wiki" #: src/translate.c:241 msgid " Web Mac " msgstr " Mac " #: src/translate.c:245 msgid " Options experts, definies par l'utilisateur - mac (wav -> ape) " msgstr " User-defined expert options - mac (wav -> ape) " #: src/translate.c:246 msgid " Mac " msgstr " Mac " #: src/translate.c:247 msgid "Compression" msgstr "Compression" #: src/translate.c:248 msgid "Son" msgstr "Channel mode" #: src/translate.c:249 msgid "Mode hybride" msgstr "Hybrid mode" #: src/translate.c:250 msgid "Fichier de correction" msgstr "Correction file" #: src/translate.c:251 msgid "Compression maximum" msgstr "Maximum compression" #: src/translate.c:252 msgid "Signature MD5" msgstr "MD5 signature" #: src/translate.c:253 msgid "Extra encode processing" msgstr "Extra encode processing" #: src/translate.c:254 msgid " WavPack (fichier wv): " msgstr " WavPack (wv file): " #: src/translate.c:256 msgid " Options WAVPACK " msgstr " WAVPACK Options " #: src/translate.c:257 msgid "Wiki " msgstr "Wiki " #: src/translate.c:259 msgid " Web Wavpack " msgstr " Wavpack " #: src/translate.c:263 msgid "" " Options experts, definies par l'utilisateur - wavpack (wav -> wv) " msgstr " User-defined expert options - wavpack (wav -> wv) " #: src/translate.c:264 msgid " Wavpack " msgstr " Wavpack " #: src/translate.c:265 msgid " MusePack (fichier mpc): " msgstr " MusePack (mpc file): " #: src/translate.c:267 msgid " Options MUSEPACK " msgstr " MUSEPACK Options " #: src/translate.c:270 msgid " Web Musepack " msgstr " Musepack " #: src/translate.c:274 msgid "" " Options experts, definies par l'utilisateur - musepack (wav -> mpc) " msgstr " User-defined expert options - musepack (wav -> mpc) " #: src/translate.c:275 msgid " Musepack " msgstr " Musepack " #: src/translate.c:276 msgid " Qualite VBR / Debit ABR" msgstr "VBR Quality / ABR rate" #: src/translate.c:277 msgid " VBR / ABR" msgstr " VBR / ABR" #: src/translate.c:278 msgid " Conteneur" msgstr " Container" #: src/translate.c:279 msgid " Faac (fichier .m4a): " msgstr " Faac (file .m4a): " #: src/translate.c:281 msgid " Options FAAC " msgstr " FAAC Options " #: src/translate.c:282 src/translate.c:296 msgid "Site officiel " msgstr "Official website " #: src/translate.c:283 src/translate.c:297 msgid "Web Info " msgstr "Info " #: src/translate.c:285 msgid " Web Faac " msgstr " Faac " #: src/translate.c:289 msgid "" " Options experts, definies par l'utilisateur - faac (wav -> m4a) " msgstr " User-defined expert options - faac (wav -> m4a) " #: src/translate.c:290 msgid " Faac " msgstr " Faac " #: src/translate.c:291 msgid " Stereo: Qualite en kbit/s" msgstr " Stereo: Quality in kbit/s" #: src/translate.c:292 msgid " Mono: Qualite en kbit/s" msgstr " Mono: Quality en kbit/s" #: src/translate.c:293 msgid " AacplusEnc (fichier .aac): " msgstr " AacplusEnc (file .aac): " #: src/translate.c:295 msgid " Options AacPlusEnc " msgstr " AacPlusEnc Options " #: src/translate.c:299 msgid " Web AacPlusEnc " msgstr " AacPlusEnc " #: src/translate.c:300 msgid " AacplusEnc " msgstr " AacplusEnc " #: src/translate.c:301 msgid "Artiste" msgstr "Artist" #: src/translate.c:302 src/translate.c:330 msgid "Titre" msgstr "Title" #: src/translate.c:303 msgid "Album" msgstr "Album" #: src/translate.c:304 msgid "Numero" msgstr "Number" #: src/translate.c:305 msgid "Genre" msgstr "Genre" #: src/translate.c:306 msgid "Annee" msgstr "Year" #: src/translate.c:307 msgid "Commentaire" msgstr "Comment" #: src/translate.c:308 msgid " Exportation de " msgstr " Export " #: src/translate.c:310 msgid " Preferences " msgstr " Preferences " #: src/translate.c:311 msgid "SCAN" msgstr "SCAN" #: src/translate.c:312 msgid " Installation " msgstr " Installation " #: src/translate.c:313 msgid " Votre systeme utilise ... " msgstr " Your system uses ... " #: src/translate.c:314 msgid "" "\n" "Pour installer les programmes externes requis,\n" "veuillez utiliser l'installateur de votre distribution Gnu/Linux.\n" msgstr "" "\n" "To install the required external software,\n" "please use the package manager of your Gnu/Linux distribution.\n" #: src/translate.c:315 msgid "" "Le programme XCFA_INSTALL_ALL ecrit en Perl vous sera utile en ligne de " "commande pour une installation des programmes complementaire." msgstr "" "The program XCFA_INSTALL_ALL written in Perl will be useful on the command " "line for installation of supplementary programs" #: src/translate.c:316 msgid " Informations " msgstr " Informations " #: src/translate.c:317 msgid " Application externes " msgstr " External programs " #: src/translate.c:318 src/translate.c:321 msgid "parametres:" msgstr "parameters:" #: src/translate.c:319 msgid "" "\n" " konqueror : newTab\n" " iceweasel : -new-window -new-tab \n" msgstr "" "\n" " konqueror : newTab\n" " iceweasel : -new-window -new-tab \n" #: src/translate.c:320 msgid "Navigateur" msgstr "browsers" #: src/translate.c:322 msgid "Lecteurs audio" msgstr "Audio player" #: src/translate.c:323 msgid " Navigateurs / Lecteurs audio " msgstr " Browsers / Audio player" #: src/translate.c:324 msgid " Applications externes " msgstr " External programs " #: src/translate.c:325 msgid "Scan en cours ..." msgstr "Scan in progress ..." #: src/translate.c:326 msgid "Scan du support en cours ..." msgstr "Media scan in progress..." #: src/translate.c:327 msgid "Detail extraction mode expert" msgstr "Rip details - expert mode" #: src/translate.c:328 msgid "Modification des champs" msgstr "Modify fields" #: src/translate.c:329 msgid "" "\n" "Modification des champs\n" msgstr "" "\n" "Modify fields\n" #: src/translate.c:337 src/translate.c:356 src/translate.c:377 #: src/translate.c:389 src/translate.c:400 src/translate.c:408 msgid " Visibilite " msgstr " Visibility " #: src/translate.c:338 src/translate.c:357 src/translate.c:378 #: src/translate.c:390 src/translate.c:401 src/translate.c:409 msgid "Nom a gauche" msgstr "Name to left" #: src/translate.c:339 src/translate.c:358 src/translate.c:379 #: src/translate.c:391 src/translate.c:402 src/translate.c:410 msgid "Nom au centre" msgstr "Name centred" #: src/translate.c:340 src/translate.c:359 src/translate.c:380 #: src/translate.c:392 src/translate.c:403 src/translate.c:411 msgid "Nom a droite" msgstr "Name to right" #: src/translate.c:341 msgid "DVD" msgstr "DVD" #: src/translate.c:346 src/translate.c:367 msgid "Wavpack" msgstr "Wavpack" #: src/translate.c:350 src/translate.c:371 msgid "Musepack" msgstr "Musepack" #: src/translate.c:360 msgid "CD" msgstr "CD" #: src/translate.c:375 msgid "Replaygain" msgstr "Replaygain" #: src/translate.c:381 msgid "CONVERSIONS" msgstr "CONVERSIONS" #: src/translate.c:382 msgid "Hertz" msgstr "Hertz" #: src/translate.c:383 msgid "New Hertz" msgstr "New Hertz" #: src/translate.c:384 msgid "Voie" msgstr "Voice" #: src/translate.c:385 msgid "New Voie" msgstr "New Voice" #: src/translate.c:386 msgid "Bits" msgstr "Bits" #: src/translate.c:387 msgid "New Bits" msgstr "New Bits" #: src/translate.c:393 msgid "WAV" msgstr "WAV" #: src/translate.c:396 msgid "New Bitrate" msgstr "New Bitrat" #: src/translate.c:397 msgid "Size" msgstr "Size" #: src/translate.c:404 msgid "MP3-OGG" msgstr "MP3-OGG" #: src/translate.c:412 msgid "TAGS" msgstr "TAGS" #: src/translate.c:413 msgid "Selection globale" msgstr "Select all" #: src/translate.c:414 msgid "Deselection globale" msgstr "Clear all" #: src/translate.c:415 msgid "Retour" msgstr "Return" #: src/translate.c:416 msgid "About X Convert File Audio" msgstr "About X Convert File Audio" #: src/translate.c:417 msgid "Author" msgstr "Author" #: src/translate.c:418 msgid "Licence" msgstr "License" #: src/translate.c:419 msgid " Informations " msgstr " Informations " #: src/translate.c:420 msgid " Machine " msgstr " Computer " #: src/translate.c:421 msgid "Ingenieurs du son\n" msgstr "Sound engineers\n" #: src/translate.c:422 msgid "" "\n" "Graphisme\n" msgstr "" "\n" "Graphics\n" #: src/translate.c:423 msgid "" "Traduction Anglaise\n" "\n" "\n" msgstr "" "English translation\n" "\n" "\n" #: src/translate.c:424 msgid "" "\n" "Traduction Allemande" msgstr "" "\n" "German translation" #: src/translate.c:425 msgid "" "\n" "Codeur Xcfa" msgstr "" "\n" "XCFA programmer" #: src/translate.c:426 msgid "" "\n" "ElementSpeak pour Xcfa " msgstr "" "\n" "ElementSpeak for XCFA··" #: src/translate.c:427 msgid "" "\n" "Codeur pages Web" msgstr "" "\n" "Webmasters" #: src/translate.c:428 msgid "" "\n" "Traduction Italienne" msgstr "" "\n" "Italian translation" #: src/translate.c:429 msgid "" "\n" "\n" "Pages a visiter\n" msgstr "" "\n" "\n" "Useful links\n" #: src/translate.c:430 msgid "Linux On The Root" msgstr "Linux On The Root" #: src/translate.c:431 msgid "Frugalware" msgstr "Frugalware" #: src/translate.c:432 msgid "Road2Mayotte" msgstr "Road2Mayotte" #: src/translate.c:433 msgid "La Linuxerie" msgstr "La Linuxerie" #: src/translate.c:434 msgid "Audioptimisation by Dzef" msgstr "Audioptimisation by Dzef" #: src/translate.c:435 msgid "Tuxfamily" msgstr "Tuxfamily" #: src/translate.c:436 msgid "Framasoft" msgstr "Framasoft" #: src/translate.c:437 msgid "Ekd (EnKoDeur-Mixeur)" msgstr "Ekd (EnKoDeur-Mixeur)" #: src/translate.c:438 msgid "Bishop's page" msgstr "Bishop's page" #: src/translate.c:439 msgid "Je suis libre" msgstr "Je suis libre" #: src/translate.c:440 msgid "Debian Multimedia" msgstr "Debian Multimedia" #: src/translate.c:441 msgid "" "\n" "Forum\n" msgstr "" "\n" "Forum\n" #: src/translate.c:442 msgid "XCFA Vorstellung " msgstr "XCFA Vorstellung " #: src/translate.c:443 msgid "XCFA LinuxForen.de" msgstr "XCFA LinuxForen.de" #: src/translate.c:444 msgid "Forum Xcfa" msgstr "Forum Xcfa" #: src/translate.c:445 msgid "" "\n" "Documentation\n" msgstr "" "\n" "Documentation\n" #: src/translate.c:446 msgid "Wiki Xcfa par Shankarius" msgstr "XCFA wiki by Shankarius" #: src/translate.c:447 msgid "Doc Xcfa par Patachon" msgstr "XCFA doc. by Patachon" #: src/translate.c:448 msgid "Ogg Vorbis explique par Shankarius" msgstr "Ogg Vorbis explained by Shankarius" #: src/translate.c:449 msgid "La normalisation expliquee par Dzef" msgstr "Normalisation explained by Dzef" #: src/translate.c:450 msgid "Xcfa sur Linux On The Root" msgstr "XCFA on Linux On The Root" #: src/translate.c:451 msgid " Contributions " msgstr " Contributions " #: src/translate.c:452 msgid " License " msgstr " Licence " #: src/translate.c:453 msgid "OK" msgstr "OK" #: src/web.c:173 src/web.c:234 msgid "PAS de navigateur present" msgstr "No web browser" #: src/web.c:174 msgid "L'acces au web est impossible car aucun navigateur" msgstr "No Web access: no web browser" #: src/web.c:176 msgid "n'est present dans votre configuration." msgstr "found in your system" #: src/web.c:178 msgid "Veuillez installez un navigateur." msgstr "Please install a web browser" #: src/web.c:188 msgid "Vous devez ouvrir l'acces internet" msgstr "You need to enable web access" #: src/web.c:236 msgid " L'acces au web est impossible car aucun navigateur" msgstr " No Web access: no web browser" #: src/web.c:238 msgid " n'est present dans votre configuration." msgstr " found in your system" #: src/web.c:240 msgid " Veuillez installez un navigateur." msgstr " Please install a web browser" #: src/web.c:250 msgid "L'application est absente." msgstr "Application is missing." #: src/web.c:251 msgid "Veuillez installer : " msgstr "Please install : " #: src/win_about.c:130 msgid " Xcfa sur le web" msgstr " XCFA on the web" #: src/win_about.c:180 msgid "" "\n" "Au tout debut:\n" "\n" "Serres Patrick, Hamann Regis, Fabien Gregis, @Dzef, @alteo_gange, \n" "@Leonux, @zarer, @Shankarius, @bishop, @Ludo, @Patachonf,\n" "... ;-)\n" "\n" "" msgstr "" "\n" "In the beginning:\n" "\n" "Serres Patrick, Hamann Regis, Fabien Gregis, @Dzef, @alteo_gange, \n" "@Leonux, @zarer, @Shankarius, @bishop, @Ludo, @Patachonf,\n" "... ;-)\n" "\n" "" #: src/win_scan.c:161 msgid "Waiting ..." msgstr "Waiting ..." #~ msgid "Quantification" #~ msgstr "Quantification" #~ msgid "Voie" #~ msgstr "Channel" #~ msgid " Frequence - Hertz " #~ msgstr " Frequency -Hertz " #~ msgid "Cellule" #~ msgstr "Cell" #~ msgid "Colonne" #~ msgstr "Column" #~ msgid " Cacher Xcfa " #~ msgstr " Hide Xcfa " #~ msgid " Montrer Xcfa " #~ msgstr " Show Xcfa " #~ msgid " Quitter Xcfa " #~ msgstr " Quit Xcfa " #~ msgid "" #~ "XCFA\n" #~ "Programme pour convertir les fichiers audio." #~ msgstr "" #~ "XCFA\n" #~ "Program for converting audio files." xcfa-4.3.6/po/ChangeLog0000644000175000017500000000071611400750706011562 000000000000002010-05-31 gettextize * Makefile.in.in: New file, from gettext-0.17. * boldquot.sed: New file, from gettext-0.17. * en@boldquot.header: New file, from gettext-0.17. * en@quot.header: New file, from gettext-0.17. * insert-header.sin: New file, from gettext-0.17. * quot.sed: New file, from gettext-0.17. * remove-potcdate.sin: New file, from gettext-0.17. * Rules-quot: New file, from gettext-0.17. * POTFILES.in: New file. xcfa-4.3.6/po/es.gmo0000644000175000017500000014544512224542443011136 00000000000000$Y,(55855g6{66 666 67,7I7 "808L8$S8&x8(88889/95L99!9999:/:F:_:$y:"::*: ; ; ;";A;];{;$;;;.;/)<Y<+v<*<<<<=+=@=Z=r=======>>.>C>[>s>>>(> > >>>??:?Q?V?/\?"? ????? @,@2@9@$Y@~@@ @@!@ @@@@ AA%A +A5A;ARA[A'zAAA AA AAB4BPBlBuB }BBBB(BBBC+ C*9CdC jCtCCD(D=D>EPQE,E8E8FZAF/FBF$G74G"lG$G"GGUmHYH;I5YIHIII;J LJ XJbJkJ}J J JJJ J J J J J JJK K $K 1K%>K-dKKK$K!KLL#5LYLyLLLLL"LM)M=M QMHrMIMHNGNNLNJNJ.O,yO/OO!O P"P @PaP8RS&S,T+0T'\TT T(T TTHT/BUrUUUUUUUU V V#2VVVkV VV*VVZVBWSWmW WWWWWWW rXXXTXIX CYQY3dY6YYYYZ9.ZhZlZZ*ZZ6ZZ[[[-[3[ 7[A[h][[[[.[0\O\f\\\ \\\\'\] ]#]@]Q](W]!]]/]]^ ^?^\^"n^^^9^^ _ _ -_9_*M_x__P__`?,`)l````````a,aEa[ata'aa0aabb b'6bG^b"bb bb%bc0cHc\c tc cc cccc c d "d0d5d m[mam'umm mm-m%mnn $n/n5n;n$@n&en"n&n-nEoJoeo|o o o o!o o oo p p &p 1p xTx"Yx<|xx xxxxxxyy7yKy`y{yy4yy+z61zhzozzzz zzz#z!{0{J{`{8s{ {+{{8{.|4|L|T|'h|'|4|0|7} V}c};e}}};}:}7:~r~ 8$] (IX kƁ ǂ$΂&(CZu?ǃ! B`|Ä܄$">'R z ׅ$8VJtJ! ,,6Y‡؇5Nhƈ܈4CR(a ‰#މ/$"T w ֊$&K` gr!y  Ӌދ  !*'Jr  &Ȍ 'CL T_ox(č+*> DN^o(>=W+1EBf>3Fّ$ 7E"}$!Œ]R@:?{R*;F  ƕӕܕ  #-G P Z g%t4ϖ$*FUkʗ ")L\p TUTOSXVQV5<5r! ۛӝp*y'+̟' >&L sP<!$1 Vwء#"F_ y*âZ<Mg zƣ{ _m}PI +9,M6zХ٥: HLg.n6ڦ Y411.G] r-֨ ٨8Sq7#é* '3[#r5Ϫ! ' 2 ?K2_P˫8DI*"ܬ"(6_x .ŭ/4LSc'yP "4Wk+1ۯ  (? Zg  ðɰ ϰ%,<R'c)ѱ =P p%}"#Ʋ$4(D$m&t4.Cc70AZlp)е L> ض" (; NZ cmv {.η"4 8&Biy} и =''.60J{ $&ߺ"&)1P>ܻ  !A c ny Ƽ"Ѽ"&,.  !,4;U mz)*$Ծ(;NWn~ տ߿$$*1$8]#{A <&cx0 &"(2[ akp P1$ '..?6n=4!V Zeinv  &5Aw+6'!: \g|# QW-j8+$K.p27 ;Ug;w:6w+I/*P\/x8&>);D^Z a_$&Mgc 'n&;.[yTl^U X]}r;|?C 1~b78GWZJO-A <RB2KIp|Y Vs#UF#d"g '6c!FM`S<%m]I+wQ> 0}PD(Lm AO6AFx|GZCf5@"b[hEu"j0T isBtevKz9}f)a{,R `wQ7_%Y]ao7^ r)vC*<2?V=u:!\Hp+_j$l3-1qtx.e1i?.qu2GzPcE4m=`L#5bVi=4[~o0zHyhW8d$e%-3:@k(@jkdMJpn> XoJ!v BQ:*f4~9/TRlWD,X3U6E'q{S 5NOrH({\Nt9YnkhsNL Kg y,S Pages a visiter konqueror : newTab iceweasel : -new-window -new-tab Pour installer les programmes externes requis, veuillez utiliser l'installateur de votre distribution Gnu/Linux. Codeur Xcfa Codeur pages Web Documentation ElementSpeak pour Xcfa Forum Graphisme Modification des champs Traduction Allemande Traduction Italienne Au tout debut: Serres Patrick, Hamann Regis, Fabien Gregis, @Dzef, @alteo_gange, @Leonux, @zarer, @Shankarius, @bishop, @Ludo, @Patachonf, ... ;-) [Piste: %d] et dont le nom sera: --- ATTENTION: Il faut installer %s ATTENTION: Il faut installer %s%s ATTENTION: Il faut installer %s%s%s Deselection globale Deselection horizontale Deselection verticale Deselection verticale Deselection verticale L'acces au web est impossible car aucun navigateur Selection ALBUM Selection Expert horizontale Selection Expert verticale Selection NETTOYER Selection PISTE Selection horizontale Selection verticale Selection verticale Selection verticale Veuillez installez un navigateur. Vous ne devriez pas utiliser XCFA sous ROOT ! n'est present dans votre configuration. VBR / ABR 8 bits 8000 Hertz Lame (fichier mp3): ... les paquets: ? ... les paquets: deb ... les paquets: fpm ... les paquets: pkg.tar.xz ... les paquets: rpm ... les paquets: tgz Choix du peripherique / Lecture du CD Choix du peripherique / Lecture du DVD Dossier de stockage Dossier provisoire des conversions Jouer une musique en fin de tache Options AacPlusEnc Options FAAC Options FLAC Options LAME Options MAC Options MUSEPACK Options OGGENC Options WAVPACK Priorite systeme Web AacPlusEnc Web Faac Web Flac Web Lame Web Mac Web Musepack Web Oggenc Web Wavpack Web cdparanoia *.m3u et xspf: Annee: Genre: Piste: A program to send desktop notifications AAC+ encoder AacplusEnc Annee: Application externes Applications externes Arrangement des titres du CD Audio Codeur freeware CD CD Cherche des renseignements sur les formats mp3 Cherche les informations d'un dvd Conteneur Contributions Conversion wav : flac Conversion wav : mp3 Conversion wav : ogg Creation d'un fichier unique DVD Debit Decode ATSC A/52 audio streams Decoupage de fichiers sans decodage Extracteur cd audio Faac Fichiers Flac Forte compression au format wave General Genre: Informations Lecteur et extracteur License MPEG-4 AAC decodeur Mac Machine Mode Mode flux (streaming) Modif.: Modification des tags Freedb Monkey's Audio Console Front End : APE Mono: Qualite en kbit/s Mp3 Mp3-Ogg MusePack commandline utilities Musepack Navigateurs / Lecteurs audio Normaliseur de fichier mp3 Normaliseur de fichier ogg Normaliseur de fichier wav Oggenc Piste: Pochette Preferences Qualite Qualite VBR / Debit ABR Read CD and get CDDB discid information Split Stereo: Qualite en kbit/s Tags Transformation universelle de fichiers son WAVPACK Hybrid Lossless Audio Compressor Wav Wavpack $ xcfa -verbose%a [ %a="Artist" ] %b [ %b="Album" ] %Tl - Tetsumaki lower Transforme la chaine en minuscule sauf le premier caractere. Dans le champs 'Titre' depuis [ Modification des tags FreeDB ], le ou les caracteres devant etre conserves doivent etre precedes par le caractere %%d) Lecture PASS 2/2 'dvd+rw-mediainfo' pour identifier le(s)(Click Droit = Menu) / Ajustement COLLECTIF maximal du volume(Click Droit = Menu) / Ajustement INDIVIDUEL maximal du volume(Click Droit = Menu) / Ce fichier sera dirige apres traitement vers la corbeille(Click Droit = Menu) / Choix de la frequence(Click Droit = Menu) / Choix du codage en nombre de bits(Click Droit = Menu) / Choix du nombre de pistes (voies)(Click Droit = Menu) / Cliquez ici pour envoyer ce fichier apres traitement a la corbeille(Click Droit = Menu) / En attente de selection.(Click Droit = Menu) / En attente de selection. Le fichier existe.(Click Droit = Menu) / En selection.(Click Droit = Menu) / En selection. Le fichier existe.(Click Droit = Menu) / Mode album.(Click Droit = Menu) / Mode effacer.(Click Droit = Menu) / Mode piste.(Click Droit = Menu) / PEAK-ALBUM: Amplification maximale du volume pour un groupe de fichiers en respectant les ecarts de niveau entre chacun d'eux.(Click Droit = Menu) / PEAK: Amplification maximale du volume pour chaque de fichier.(Click Droit = Menu) / Possibilite d'ajustement INDIVIDUEL ou COLLECTIF maximal du volume(Click Droit = Menu) / ReplayGain: En attente de selection.(Click Droit = Menu) / Selection avec options expert.(Click Droit = Menu) / Selection avec options expert. Le fichier existe.---MENU TRASH-----------------SELECTION VERTICALE-------> Deja %d fois 2 lectures du segment %d! Abandon :/ 0 (Rapide)00h00m00s1 piste1 (fast / rapide)16 bits2 pistes22000 Hertz24 bits32 bits32000 Hertz4 pistes44056 Hertz44100 Hertz48000 Hertz6 pistes6 (very slow / tres lent)64 bits8 (Lent)88200 Hertz96000 Hertz AacplusEnc (fichier .aac): Au moins deux selections colonne Wav Choix niveau dBFS: Creation Cue cd Destination des conversions Destination des fichiers Eject Exportation de Extraction cd-audio avec: Faac (fichier .m4a): Flac (fichier flac): Importer Informations Installation Mac (fichier ape): MusePack (fichier mpc): Nettoyer Normalise: Normaliser Oggenc (fichier ogg): Options experts, definies par l'utilisateur - faac (wav -> m4a) Options experts, definies par l'utilisateur - flac (wav -> flac) Options experts, definies par l'utilisateur - lame (wav -> mp3) Options experts, definies par l'utilisateur - mac (wav -> ape) Options experts, definies par l'utilisateur - musepack (wav -> mpc) Options experts, definies par l'utilisateur - oggenc (wav -> ogg) Options experts, definies par l'utilisateur - wavpack (wav -> wv) Parametrage CDDB: [ Nom du serveur ] Parametrage PROXY: [ serveur ] [ port ] Serveur Vers 2CH: Sub / Ambiance Visibilite Votre systeme utilise ... WavPack (fichier wv): %a - artiste %b - titre de l'album %c - numero de la piste %d - titre de la chanson %e - annee %g - genre %f - creation d'un fichier *.m3u et *.xspf %na - no accent %u - remplacement de caracteres: %u(AB=C) %u( =_) %Tl - Tetsumaki lower%a - artiste %b - titre de l'album %c - numero de la piste %d - titre de la chanson %e - annee %g - genre %na - no accent %Tl - Tetsumaki lower %u - remplacement de caracteres: %u(AB=C) %u( =_)0%s Copie fichier: %d%%%s Restitution fichier: %d%%%s Traitement Mplayer: %d%%%s Traitement Sox: %d%%Trash files ...AuthorCe fichier ne peut etre extrait !DiscIdFramasoft Generation d'un rapport pour: cdparanoia mode expert multi passesGestion des tags, titres et fichiers cueHomePageImport images webIngenieurs du son Lecteurs audioLicenceManPageManPage ManPage ManPage NavigateurScan du support en cours ...Site officielSite officiel TexteTitre CDTotal fichiers: %d, Selections: %dTraduction Anglaise Utilisez le glisser / deplacer - Effacer une image avec Ctrl + ClickWeb Info Wiki Wiki mp3 WikiWiki Wiki []string option interneIndiquez ici le dossier sur votre systeme qui servira de lieu de stockage provisoire pendant les differentes conversions. Album:Artiste:Commentaire:Le fichier LogExpertMode.txt sera cree dans le dossier des extractionsPret pour l'import d'un fichier CUE, WAV, FLAC, OGG, MP3, APE, WMATitre:parametres: Xcfa sur le web= Vous avez probablement trouve un bug dans XCFA = Adressage memoire invalide A proposABR / CBR / VBR / VBR-NEWAJouter de nouvelles images.ATTENTION: Pas assez de place dans le dossier temporaire.AacAbout X Convert File AudioActionAdapte l'echelle a la taille de la fenetreAideAjout plage: Click bouton centre / Zoom: Ctrl+ScrollAjouter du texte editable.AlbumAlbum:All Files (*.*)AnneeApeAppliquerAppliquer les modificationsApres une lecture de CD et un ajout d'etiquette, ce menu permet la mise en forme des titres, auteurs ...Arret par l'utilisateurArtisteArtiste:Aucun fichier de musique associe au cue-file !Aucun fichier de musique associe dans le dossierAucun fichier trouve !Audioptimisation by DzefAugmentation de l'echelle.Augmente l'agrandissementBishop's pageBitrateBitsBonne qualite de compressionCAPACITE DOSSIER TEMPORAIRE TROP FAIBLECDCONVERSIONSCe fichier appartient a XCFAChapitre: [%02d]ChoixChoix d'un chemin de stockage des imagesChoix d'un dossier de destinationChoix d'un fichierChoix d'un fichier CUE WAV FLAC OGG MP3 APE WMAChoix d'un fichier musicalChoix d'un lieu de sauvegardeChoix d'une nouvelle destinationChoix d'une nouvelle police.Choix de fichiersChoix de fichiers FLAC MPC OGG MP3Choix de fichiers MP3/OGGChoix de fichiers WAVChoix parmis les differentes bases de donnees pour le CD.Click droit: acces popupCommentaireCommentaire:CompressionCompression maximumControle du contenu des fichiers extraits Conversion vers %s canaux.Conversion vers 2 canaux.Conversion vers 2 canaux. Un second click activera la conversion vers %s canaux.Conversion(s) vers la sourceCouldn't find CDCreation d'un fichier cue unique depuis une lecture du cd audioCreation d'un fichier unique au format: Creation fichier cue uniquementCritere de recherche absent !!DVDDebian MultimediaDebitDeplierDeselection globaleDetail extraction mode expertDiminution de l'echelle.Doc Xcfa par PatachonDuree de la plage activeERREUR datas proxyERREUR: Lieu de stockage non autorise !Echelle a 100%.Echelle compatible avec la taille de la fenetre.Ecriture du fichier cueEffacerEffacer l'imageEkd (EnKoDeur-Mixeur)Emplacement de sauvegarde des fichiers.En attente de selection. Un click activera la conversion vers 2 canaux.Enregistrer la page au format png.ErreurErreur SOXErreur de choix de fichierErreur de donnees dans le fichier CUEErreur de lecture !Erreur depuis MPLAYER !Erreur depuis SOX !Extra encode processingExtraction mode expert PASS 1/2 Extraction mode expert PASS 2/2 ExtraireFREQUENCEFichierFichier de correctionFichier structure DVDFichier videFichier_complet_%02d_%sFix (scan)RmsFlacFormatForum XcfaFramasoftFrequenceFrugalwareGenreHertzIl faut installer le programme: lsdvdIl ne restera qu'a ajuster les plages pourImage au dernier planImage au dessusImage au premier planImage en dessousImportation des images depuis le Web.Importation du titre du CD.Importer des images pour la pochetteIndex de debutIndex de finIndex de lectureJe suis libreL'acces au web est impossible car aucun navigateurL'application est absente.La LinuxerieLa liaison internet est absenteLa normalisation expliquee par DzefLa solution est d'importer le fichier deLe DVD est absent du lecteur.Le fichier CUE sera enregistre vers 'Destination des fichiers'.Le fichier ne contient aucune donnee !!!Le package 'dvd+rw-tools' est absentLe programme SOX de votre distributionLe programme XCFA_INSTALL_ALL ecrit en Perl vous sera utile en ligne de commande pour une installation des programmes complementaire.Le programme externe d'extraction est absent.Le resultat du Split sera dirige vers 'Destination des fichiers'.LectureLecture de 5 secondes apres le marqueur de debutLecture de 5 secondes avant le marqueur de finLes types de fichiers acceptes sont: WAV FLAC MP3 OGG APE WMA CUELinux On The RootM4aMAX FICHIERS ATTEINT = %dMODE ADMINISTRATEURMP3-OGGMPEG-4 File Format (MP4) - Extension .m4aMPLAYER deja en actionMPLAYER est deja utilise !!Mauvais type de fichierMeilleure qualite de compressionMenu: Click droit / Ajout plage: Click bouton centre / Zoom: Ctrl+ScrollMix (scan)Rms/albumModeMode hybrideMode normalMode rapide de compressionModification des champsModifiez la chaine de recherche etMono forceMp3MpcMusepackMusique en attente.Musique en ecoute.New BitrateNew BitsNew HertzNew VoieNiceNo Audio CDNomNom (sans extention) du fichier a sauvegarder.Nom a droiteNom a gaucheNom au centreNom de fichier absent !!Nom de fichier unique absentNonNormaliseNormalise: En attente de selection.Nouveau bitrateNumNumeroOKOggOgg Vorbis explique par ShankariusOkOuiOutilsOuvre un fichierPACKAGE dvd+rw-tools ABSENTPAS de lecteur audio presentPAS de navigateur presentPEAK-ALBUM: Amplification maximale du volume pour un groupe de fichiers en respectant les ecarts de niveau entre chacun d'eux.PEAK: Amplification maximale du volume pour chaque de fichier.PISTEPackage NOT FOUND !Package checkmp3 (mp3check) NOT FOUND !PaquetPar defautParametres par defautPas assez de place dans le dossier temporairePas de fichier WAV dans le cue-file !PausePeakPeak/albumPistePlagePlayPlease, install package [ cdda2wav ]Please, install package [ cdparanoia ]Please, install package [ icedax ]Please, install packages [ cd-discid ]Please, install packages [ icedax, cdda2wav ]Pour evaluer les templates, vous devez activer une lecture de cdaudioPour resoudre ce probleme:Production fichier CueQUANTIFICATIONQualite 0Qualite 1Qualite 10 (Meilleure qualite)Qualite 10 [ Meilleure qualite ]Qualite 2Qualite 3Qualite 3 [ Defaut ]Qualite 4Qualite 5Qualite 6Qualite 7Qualite 8Qualite 9Qualite -1 (Moins bonne qualite)Qualite -1 [ Moins bonne qualite ]QuantificationQuitterRMS-ALBUM: Ajustement du volume moyen pour un groupe de fichiers en respectant les ecarts de niveau moyen entre chacun d'eux.RMS: Ajustement du volume moyen de chaque de fichier.Reduit l'agrandissementRemet l'echelle a 100%ReplayGainReplaygainReplierRetourRetourner horizontalementRetourner verticalementRoad2MayotteSCANSaisissez ici un critere de recherche d'images.Saisissez un nom de fichier sans extentionSaisissez une chaine de recherche etSauvegarde au format PNGSauvegarde aux formats PDF et PostScriptSauvegarde le fichierScan ...Scan en cours ...Select type: --Selecteur precedantSelecteur suivantSelection globaleSelectionnez un autre fichier.Signature MD5SizeSonSox et Mplayer absentsSox et Mplayer sont absents de votreSplitStatusStereoSuppression pendant la lecture impossibleSupprimer l'image de la listeSupprimer l'image en selectionSupprimer la plage activeSuprimer tous les marqueurs pour les remplacer par un marqueur uniqueTAGSTailleTaux de compressionTempsTemps inferieur a 5 secondes entre marqueur et curseur !Texte gras.Texte italique.TimeTitreTitre [%02d ** ]Titre [%02d]Titre:Titre_%02d_Chapitre_%02d_audio_%02d_%sTitresTotal selection%s: %d, 2ch: %dTransport Stream (ADTS) - Extension .aacTrashTuxfamilyTypeV0 (meilleure qualite)V0 [ meilleure qualite ]V4 [ defaut ]V9 (moins bonne qualite)V9 [ moins bonne qualite ]Valeur d'origineVeuillez deselectionner des PeakGroup.Veuillez installer : Veuillez installer checkmp3 ou mp3check pour la prise en compte des fichiers mp3Veuillez installez un lecteur audio.Veuillez installez un navigateur.Veuillez l'installer car j'ai besoin deVeuillez les installer pour pouvoir continuer.Veuillez recommencer.Veuillez renseigner les champs du proxyVeuillez saisir un nom pour le fichier uniqueVeuillez selectionner un fichier de type WAV FLAC MP3 OGG APEVisibilite des champsVoieVous devez ouvrir l'acces internetVous pouvez activer XCFA en ligne de commande avec: WAVWaiting ...WavWavPWavpackWiki Xcfa par ShankariusXCFA LinuxForen.deXCFA Vorstellung XCFA: Conversions WAV TO WAVXCFA: Extraction CDXCFA: Extraction DVDXCFA: Modification bitrateXCFA: Traitement fichiersXcfa sur Linux On The Root[Erreur du segment numero: %d] %d) Lecture PASS 1/2 [Recherche des fichiers images]a generer une erreur pendant la conversion.braindead : extreme high quality : 232 .. 278 kbit/sbuttoncd-discid NOT FOUNDcdda2wav / icedaxcdda2wav NOT FOUNDcdda2wav and icedax NOT FOUNDcdparanoiacdparanoia NOT FOUNDcdparanoia mode expertcdparanoia mode expert multi passesconfiguration.correspondant aux plages.dans le module Split.de votre systeme !definit le serveur a contacter pour les recherches titredu cue-filegenerer un nouveau cue-file ou des decoupesicedax NOT FOUNDinsane : extreme high quality : 232 .. 268 kbit/slabellecteur(s) de cd / dvd.lecturelsdvd est absent !musique qui sera reconnu et pre-decoupen'est present dans votre configuration.pour consulter le type d'erreur renvoye par mplayer.pour consulter le type d'erreur renvoye par sox.radio : medium (MP3) quality : 112 .. 152 kbit/srecommencez.sstandard : high quality (dflt) : 142 .. 184 kbit/sstereo left/rightstereo mid/sidetelephone: lowest quality : 32 .. 48 kbit/sthumb : low quality/internet : 58 .. 86 kbit/sxtreme : extreme high quality : 168 .. 212 kbit/sProject-Id-Version: xcfa 4.2.8 Report-Msgid-Bugs-To: xcfa@tuxfamily.org POT-Creation-Date: 2013-10-07 16:28+0200 PO-Revision-Date: 2011-09-06 22:12+0200 Last-Translator: Claude BULIN Language-Team: Spain Language: Spain MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n > 1); X-Generator: Virtaal 0.6.1 Páginas de un visiter konqueror : newTab iceweasel : -new-window -new-tab Para instalar los programas externos necesarios, Por favor, utilice el instalador en su distribución GNU / Linux. Codeur Xcfa Codeur páginas web documentación ElementSpeak pour Xcfa Forum Gráficos Modification des champs Traduction Allemande Traduction Italienne En el comienzo: Serres Patrick, Hamann Regis, Fabien Gregis, @Dzef, @alteo_gange, @Leonux, @zarer, @Shankarius, @bishop, @Ludo, @Patachonf, ... ;-) [Pista: %d] y cuyo nombre se: --- ATTENTION: Il faut installer %s ATTENTION: Il faut installer %s%s ATTENTION: Il faut installer %s%s%s Deselection globale Deselection horizontale Deselection verticale Deselection verticale Deselection verticale Acceso a la Web es imposible porque no hay ningún navegador Selection ALBUM Selection Expert horizontale Selection Expert verticale Selection NETTOYER Selection PISTE Selection horizontale Selection verticale Selection verticale Selection verticale Por favor, instale un navegador. Usted no debe usar XCFA como root ! está presente en su configuración. VBR / ABR 8 bits 8000 Hertz Lame (fichier mp3): ... les paquets: ? ... les paquets: deb ... les paquets: fpm ... les paquets: pkg.tar.xz ... les paquets: rpm ... les paquets: tgz Seleccionar el dispositivo de comunicación / Reproducción de CD Seleccionar el dispositivo de comunicación / Reproducción de DV Archivo de almacenamiento Conversiones de archivo provisional Reproducción de música al final de la tarea Opciones AacPlusEnc Options FAAC Options FLAC Options LAME Options MAC Options MUSEPACK Options OGGENC Options WAVPACK Priorite systeme Web AacPlusEnc Web Faac Web Flac Web Lame Web Mac Web Musepack Web Oggenc Web Wavpack Web cdparanoia *.m3u et xspf: Annee: Genre: Pista: A program to send desktop notifications AAC+ encoder AacplusEnc Annee: Aplicación externa Las aplicaciones externas Disposición de las pistas del CD Audio Codeur freeware CD CD Cherche des renseignements sur les formats mp3 Cherche les informations d'un dvd Conteneur Contribuciones Conversion wav : flac Conversion wav : mp3 Conversion wav : ogg Creación de un único archivo DVD Débito Decode ATSC A/52 audio streams Decoupage de fichiers sans decodage Extracteur cd audio Faac Fichiers Flac Forte compression au format wave General Genre: Información Lecteur et extracteur licencia MPEG-4 AAC decodeur Mac Máquina Mode Mode flux (streaming) Modif.: Cambio de etiquetas de freedb Monkey's Audio Console Front End : APE Mono: Qualite en kbit/s Mp3 Mp3-Ogg MusePack commandline utilitiesMusepack Navegadores / Reproductores de Audio Normaliseur de fichier mp3 Normaliseur de fichier ogg Normaliseur de fichier wav Oggenc Piste: Pochette preferencias Qalidad Calidad VBR / ABR débito Read CD and get CDDB discid information Split Stereo: Qualite en kbit/s Tags Transformation universelle de fichiers son WAVPACK Hybrid Lossless Audio Compressor Wav Wavpack $ xcfa -verbose%a [ %a="Artist" ] %b [ %b="Album" ] %Tl - Tetsumaki lower Transforme la chaine en minuscule sauf le premier caractere. Dans le champs 'Titre' depuis [ Modification des tags FreeDB ], le ou les caracteres devant etre conserves doivent etre precedes par le caractere %%d) Lectura PASS 2/2 'dvd+rw-mediainfo' pour identifier le(s)(Clic derecho = Menú) / Colecciones máximo volumen ajustable(Clic derecho = Menú) / ajuste de volumen individual máximo(Click Droit = Menu) / Este archivo será dirigido a la basura después del tratamiento(Click Droit = Menu) / Elección de la frecuencia(Click Droit = Menu) / Elección del número de bits de codificación(Click Droit = Menu) / La elección del número de pistas (tracks)(Click Droit = Menu) / Haga clic aquí para enviar este archivo a la papelera después del tratamiento(Clic derecho = Menú) / espera para la selección.(Clic derecho = Menú) / espera para la selección. Existe el archivo.(Clic derecho = Menú) / selección.(Clic derecho = Menú) / selección. Existe el archivo.(Click Droit = Menu) / Mode album.(Click Droit = Menu) / Mode effacer.(Click Droit = Menu) / Mode piste(Clic = derecho = Menú) / PEAK-álbum: amplificación del volumen máximo de un grupo de archivos de acuerdo con la diferencia de nivel entre cada uno de ellos.(Clic derecho = Menú) / PEAK: La amplificación de volumen máximo para cada uno de archivo.(Clic derecho = Menú) / Posibilidad de ajuste individual o GROUP volumen máximo (Menú = clic derecho) / ReplayGain: En espera de la selección.(Clic derecho = Menú) / Selección con el experto en opciones.(Clic derecho = Menú) / Selección con el experto en opciones. Existe el archivo.---MENU TRASH-----------------SELECTION VERTICALE-------> Deja %d fois 2 lectures du segment %d! Abandon :/ 0 (Rapide)00h00m00s1 piste1 (fast / rapide)16 bits2 pistes22000 Hertz24 bits32 bits32000 Hertz4 pistes44056 Hertz44100 Hertz48000 Hertz6 pistes6 (very slow / tres lent)64 bits8 (Lent)88200 Hertz96000 Hertz AacplusEnc (fichier .aac): Por lo menos dos selecciones de columna Wav Choix niveau dBFS: Creación Cue cd Destination des conversions Destino de archivo Eject Exportación Extracción CD-Audio: Faac (fichier .m4a): Flac (fichier flac): Importación información Instalación Mac (fichier ape): MusePack (fichier mpc): Limpio Normalise: Normaliser Oggenc (fichier ogg): Opciones de expertos, según lo definido por el usuario - faac (wav -> m4a) Opciones de expertos, según lo definido por el usuario - flac (wav -> flac) Opciones de expertos, según lo definido por el usuario - lame (wav -> mp3) Opciones de expertos, según lo definido por el usuario - mac (wav -> ape) Opciones de expertos, según lo definido por el usuario - musepack (wav -> mpc) Opciones de expertos, según lo definido por el usuario - oggenc (wav -> ogg) Opciones de expertos, según lo definido por el usuario - wavpack (wav -> wv) Configuración de CDDB: [nombre del servidor] Instalación del Servidor Proxy: [servidor] [puerto] servidor Vers 2CH: Sub / Ambiance visibilidad El sistema utiliza ... WavPack (fichier wv): %a - artiste %b - titre de l'album %c - numero de la piste %d - titre de la chanson %e - annee %g - genre %f - creation d'un fichier *.m3u et *.xspf %na - no accent %u - remplacement de caracteres: %u(AB=C) %u( =_) %Tl - Tetsumaki lower%a - artiste %b - titre de l'album %c - numero de la piste %d - titre de la chanson %e - annee %g - genre %na - no accent %Tl - Tetsumaki lower %u - sustitución de caracteres: %u(AB=C) %u( =_)0%s copia de archivos: %d%%%s Volver archivo: %d%%%s Traitement Mplayer: %d%%%s Traitement Sox: %d%%Trash files ...AuthorEste archivo se puede extraer !DiscIdFramasoft Generación de un informe para: el modo de cdparanoia expertos multi paseEtiquetas de dirección, títulos, y los archivos cueHomePageImportación de imágenes webLos ingenieros de sonido Reproductores de AudioLicencePágina de manualPágina de manual Página de manual Página de manual NavegadoreEscanear el apoyo actual ...Sitio web oficialSitio web oficial TextoCD TítuloTotal fichiers: %d, Selections: %dTraduction Anglaise Utilisez le glisser / deplacer - Effacer une image avec Ctrl + ClickWeb Info Wiki Wiki mp3 WikiWiki Wiki []string option interneIntro por carpeta del sistema que servirá como El almacenamiento temporal de los diferentes conversiones. Album:Artiste:Comentario:LogExpertMode.txt archivo se creará en la carpeta de extraccionesPret pour l'import d'un fichier CUE, WAV, FLAC, OGG, MP3, APE, WMATitre:parámetros: Xcfa web= Vous avez probablement trouve un bug dans XCFA = Adressage memoire invalide A proposABR / CBR / VBR / VBR-NEWAñadir nuevas imágenes.ADVERTENCIA: No suficiente espacio en la carpeta temporal.AacAbout X Convert File AudioActionAjusta la escala para el tamaño de la ventanaAyudaAjout plage: Click bouton centre / Zoom: Ctrl+ScrollAñadir texto editable.AlbumAlbum:All Files (*.*)AñoApeAplicarAplicar los cambiosDespués de leer un CD y una etiqueta, este menú permite el formato de títulos, autoresPase por el usuarioArtistaArtiste:No hay archivo de música asociado con cue-file !No hay archivos de música en la carpeta asociadaAucun fichier trouve !Audioptimisation by DzefAumento de la escala.Creciente expansiónBishop's pageBitrateBitsMode rapide de compressionCAPACIDAD archivo temporal DEMASIADO PEQUEÑOCDCONVERSIONESCe fichier appartient a XCFAChapitre: [%02d]ChoixLa elección de un camino de almacenamiento de imágenesElegir una carpeta de destinoAl seleccionar un archivoLa elección de un archivo CUE WAV OGG APE FLAC MP3 WMASelección de un archivo de músicaLa elección de un lugar de almacenamientoLa elección de un nuevo destinoLa elección de un nuevo tipo de letra.Selección de archivosSeleccione Archivo MPC OGG FLAC MP3Seleccione Archivo MP3/OGGElección de los archivos WAVElección entre diferentes bases de datos para el CD.Clic derecho: el acceso emergenteComentarioCommentaire:CompresiónCompresión máximaControlar el contenido de los archivos extraídos La conversión a %s canales.La conversión a 2 canales.Conversion vers 2 canaux. Un second click activera la conversion vers %s canaux.Conversión (s) a la fuenteCouldn't find CDCreación de un archivo CUE a partir de una sola lectura cd de audioCreación de un solo formato de archivo: Cue de creación de archivos sóloCritere de recherche absent !!DVDDebian MultimediaDébitoDeplierDeselection globaleRecuperación de detalle el modo expertoReducción de la escala.Doc Xcfa por PatachonDuración de la playa de activosERROR datas del proxyERROR: Lugar de almacenamiento no autorizado !Escala de 100%.Escala compatible con el tamaño de la ventana.Escribir el archivo cueBorrarEffacer l'imageEkd (EnKoDeur-Mixeur)Ubicación de los archivos de respaldo.De espera para la selección. Con un clic se activa la conversión de 2 canales.Guardar página png.ErreurErreur SOXErreur de choix de fichierErrores de datos en el archivo CUEErreur de lecture !Error, ya que MPlayer !Error, ya que SOX !Extra encode processingModo de extracción de expertos pasada 1/2 Experto en la extracción de modo de pase de 2/2 ExtraerFRECUENCIAFichierArchivo de correcciónDVD estructura de archivosFichier videFichier_complet_%02d_%sFix (scan)RmFlacFormatForum XcfaFramasoftfrecuenciaFrugalwareGenreHertzDebe instalar el programa: lsdvdSimplemente se ajustará a las playasImage au dernier planImage au dessusImage au premier planImage en dessousImportación de imágenes desde la Web.Importar el título del CD.Importación de imágenes para la portadaInicio índiceÍndice de finalÍndice de lecturaJe suis libre Acceso a la Web es imposible porque no hay ningún navegadorLa aplicación no se encuentra.La LinuxerieLa conexión a Internet está ausenteExplica por la normalización DzefLa solución es importar el archivoEl reproductor de DVD está ausente.Archivos CUE se pueden guardar en archivo 'Destino'.Le fichier ne contient aucune donnee !!!Le package 'dvd+rw-tools' est absentLe programme SOX de votre distributionXCFA_INSTALL_ALL programa escrito en Perl será útil en una línea de comandos para instalar programas adicionales.La extracción de un programa externo está ausente.El resultado de la división será encabezada 'Destino de archivo'.Lecture5 segundos después de la lectura el marcador de inicioLa lectura de 5 segundos antes el marcador finalLes types de fichiers acceptes sont: WAV FLAC MP3 OGG APE WMA CUELinux On The RootM4aMAX FICHIERS ATTEINT = %dMODE ADMINISTRATEURMP3-OGGMPEG-4 File Format (MP4) - Extension .m4aMPLAYER ya está en acciónMPLAYER ya está en uso!Mauvais type de fichierMeilleure qualite de compressionMenu: Click droit / Ajout plage: Click bouton centre / Zoom: Ctrl+ScrollMix (scan)Rms/albumModeMode hybrideMode normalMode rapide de compressionCampos variablesModifiez la chaine de recherche etMono forceMp3MpcMusepackMúsica en espera.Música escuchandoNew BitrateNew BitsNew HertzNew VoieNiceNo Audio CDNomNombre (sin extensión) del archivo se guarda.Nombre a la derechaNombre de la izquierdaNombre del centroNom de fichier absent !!Nombre de archivo único que faltaNonNormalizaNormaliza: En espera de la selección.Nouveau bitrateNumNúmeroOKOggOgg Vorbis explicó ShankariusOkOuiInstrumentosAbrir un archivoPACKAGE dvd+rw-tools ABSENTPAS de lecteur audio presentNO navegador actualPICO-álbum: La amplificación del volumen máximo de un grupo de archivos de acuerdo con la diferencia de nivel entre cada uno de ellos.PEAK: La amplificación de volumen máximo para cada archivo.PISTEPackage NOT FOUND !Package checkmp3 (mp3check) NOT FOUND !PaquetDefectoAjustes por defectoNo hay suficiente espacio en la carpeta temporalNo WAV en el cue-file !PausePeakPeak/albuPistePlageJuegoPlease, install package [ cdda2wav ]Please, install package [ cdparanoia ]Please, install package [ icedax ]Please, install packages [ cd-discid ]Por favor, instalar paquetes [ icedax, cdda2wav ]Para evaluar las plantillas, debe habilitar un cdaudio lecturaPour resoudre ce probleme:Producción de ficheros de CueQUANTIFICATIONQualite 0Qualite 1Qualite 10 (Meilleure qualite)Qualite 10 [ Meilleure qualite ]Qualite 2Qualite 3Qualite 3 [ Defaut ]Qualite 4Qualite 5Qualite 6Qualite 7Qualite 8Qualite 9Qualite -1 (Moins bonne qualite)Qualite -1 [ Moins bonne qualite ]QuantificationDejarPICO-álbum: La amplificación del volumen máximo de un grupo de archivos de acuerdo con la diferencia de nivel entre cada uno de ellos.RMS: Ajuste del volumen medio de cada archivo.Reducción de la expansiónDa la escala en 100%ReplayGainReplaygainReplierVolverRetourner horizontalementRetourner verticalementRoad2MayotteSCANEscriba aquí una búsqueda de imágenes.Saisissez un nom de fichier sans extentionSaisissez une chaine de recherche etSauvegarde au format PNGSauvegarde aux formats PDF et PostScriptGuardar el archivoScan ...Análisis en curso ...Select type: --Selecteur precedantSelecteur suivantSelection globaleSelectionnez un autre fichier.MD5 firmaSizeSonSox et Mplayer absentsSox et Mplayer sont absents de votreSplitStatusStereoEliminar no durante la reproducciónSupprimer l'image de la listeEliminar la selección de imágenesSupprimer la plage activeLimpie todos los marcadores y sustituirlos por un único marcadorTAGSTailleRelación de compresiónTempsTiempo inferior a 5 segundos entre el marcador y el cursor !El texto en negrita.El texto en cursiva.TiempoTítuloTitre [%02d ** ]Titre [%02d]Titre:Titre_%02d_Chapitre_%02d_audio_%02d_%sTitresTotal selection%s: %d, 2ch: %dTransport Stream (ADTS) - Extension .aacTrashTuxfamilyTypeV0 (meilleure qualite)V0 [ meilleure qualite ]V4 [ defaut ]V9 (moins bonne qualite)V9 [ moins bonne qualite ]Valeur d'originePor favor, desactive PeakGroup.Por favor, instale : Veuillez installer checkmp3 ou mp3check pour la prise en compte des fichiers mp3Veuillez installez un lecteur audio.Por favor, instale un navegador.Veuillez l'installer car j'ai besoin deVeuillez les installer pour pouvoir continuer.Por favor, inténtalo de nuevo.Por favor, complete todos los campos del proxyPor favor, introduzca un nombre para el archivo únicoVeuillez selectionner un fichier de type WAV FLAC MP3 OGG APECampos de la visibilidadVoieDebe abrir el acceso a InternetUsted puede habilitar la línea de comandos con XCFAWAVEspera ...WavWavPWavpackWiki Xcfa por ShankariusXCFA LinuxForen.deXCFA ideaXCFA: Conversions WAV TO WAVXCFA: Extracción de CDXCFA: Extraction DVDXCFA: bitrate CambioXCFA: Traitement fichiersXcfa sur Linux On The Root[Error número de segmento: %d] %d) lectura PASS 1/2 [Recherche des fichiers images]a generer une erreur pendant la conversion.braindead : extreme high quality : 232 .. 278 kbit/sbuttoncd-discid NOT FOUNDcdda2wav / icedaxcdda2wav NOT FOUNDcdda2wav y icedax NO SE ENCUENTRAcdparanoiacdparanoia NOT FOUNDcdparanoia mode expertexpertos cdparanoia modo multi paseconfiguration.correspondientes a las playas.en el Split.de votre systeme !Define el servidor de ponerse en contacto con por el título de la investigaciónla bola de archivogenerar una nueva señal de archivos o cortesicedax NOT FOUNDinsane : extreme high quality : 232 .. 268 kbit/slabellecteur(s) de cd / dvd.lecturelsdvd está ausente !de música que será reconocido y pre-corteestá presente en su configuración.para ver el tipo de error devuelto por mplayerpara ver el tipo de error devuelto por la ley SOX.radio : medium (MP3) quality : 112 .. 152 kbit/srecommencez.sstandard : high quality (dflt) : 142 .. 184 kbit/sstereo left/rightstereo mid/sidetelephone: lowest quality : 32 .. 48 kbit/sthumb : low quality/internet : 58 .. 86 kbit/sxtreme : extreme high quality : 168 .. 212 kbit/xcfa-4.3.6/po/POTFILES.in0000644000175000017500000000313112024643371011561 00000000000000# List of source files which contain translatable strings. src/alsa_audio.c src/alsa_play.c src/bacon.c src/cd_audio.c src/cd_audio_extract.c src/cd_audio_toc.c src/cd_cue.c src/cd_curl.c src/cd_expander.c src/cd_normalise.c src/configuser.c src/conv.c src/cursor.c src/dragNdrop.c src/dvd.c src/dvd_extract.c src/dvd_read.c src/dvd_table.c src/extra.c src/file_action.c src/file_analyze.c src/file.c src/file_conv.c src/file_lc.c src/file_mp3ogg.c src/file_mp3ogg_conv.c src/file_scan_db.c src/fileselect.c src/file_tags.c src/file_trash.c src/file_wav.c src/file_wav_conv.c src/get_info.c src/main.c src/mplayer.c src/normalise.c src/notify_send.c src/options_aacplusenc.c src/options.c src/options_cd.c src/options_faac.c src/options_flac.c src/options_internal.c src/options_mac.c src/options_mp3.c src/options_musepack.c src/options_oggenc.c src/options_tags.c src/options_wavpack.c src/parse.c src/play_file.c src/poche.c src/poche_dir.c src/poche_draw.c src/poche_save.c src/poche_txt.c src/poche_web.c src/popup.c src/prg_init.c src/proc.c src/process.c src/replaygain.c src/scan.c src/split.c src/split_conv.c src/split_cue.c src/split_selector.c src/split_spectre.c src/split_wav.c src/statusbar.c src/tags_aac.c src/tags_ac3.c src/tags_aiff.c src/tags_ape.c src/tags.c src/tags_dts.c src/tags_flac.c src/tags_m4a.c src/tags_mp3.c src/tags_mpc.c src/tags_ogg.c src/tags_rm.c src/tags_shn.c src/tags_wav.c src/tags_wavpack.c src/tags_wma.c src/translate.c src/treeview.c src/web.c src/win_about.c src/win_info.c src/win_reader.c src/win_scan.c src/win_vte.c lib/combo.c lib/file_is.c lib/lib.c lib/utf8.c lib/xdg.c xcfa-4.3.6/po/xcfa.pot0000644000175000017500000014412012224542443011455 00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Free Software Foundation, Inc. # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: xcfa 4.3.6\n" "Report-Msgid-Bugs-To: xcfa@tuxfamily.org\n" "POT-Creation-Date: 2013-10-07 16:28+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" #: src/cd_audio.c:812 src/dvd.c:680 src/dvd.c:1324 msgid "MPLAYER deja en action" msgstr "" #: src/cd_audio.c:813 src/dvd.c:681 src/dvd.c:1325 msgid "MPLAYER est deja utilise !!" msgstr "" #: src/cd_audio.c:1224 src/cd_audio.c:1230 src/dvd.c:867 src/file.c:2829 msgid "(Click Droit = Menu) / En attente de selection." msgstr "" #: src/cd_audio.c:1227 src/file.c:2826 msgid "Le programme externe d'extraction est absent." msgstr "" #: src/cd_audio.c:1233 src/file.c:2832 msgid "(Click Droit = Menu) / En attente de selection. Le fichier existe." msgstr "" #: src/cd_audio.c:1236 src/file.c:2835 msgid "(Click Droit = Menu) / En selection." msgstr "" #: src/cd_audio.c:1239 src/file.c:2841 msgid "(Click Droit = Menu) / Selection avec options expert." msgstr "" #: src/cd_audio.c:1242 src/file.c:2838 msgid "(Click Droit = Menu) / En selection. Le fichier existe." msgstr "" #: src/cd_audio.c:1245 src/file.c:2844 msgid "" "(Click Droit = Menu) / Selection avec options expert. Le fichier existe." msgstr "" #: src/cd_audio.c:1254 msgid "" "(Click Droit = Menu) / Possibilite d'ajustement INDIVIDUEL ou COLLECTIF " "maximal du volume" msgstr "" #: src/cd_audio.c:1259 msgid "(Click Droit = Menu) / Ajustement INDIVIDUEL maximal du volume" msgstr "" #: src/cd_audio.c:1262 msgid "(Click Droit = Menu) / Ajustement COLLECTIF maximal du volume" msgstr "" #: src/cd_audio.c:1502 src/dvd.c:1099 src/file.c:3139 src/translate.c:331 #: src/translate.c:342 src/translate.c:361 msgid "Play" msgstr "" #: src/cd_audio.c:1543 src/file.c:3204 src/translate.c:343 src/translate.c:364 msgid "Wav" msgstr "" #: src/cd_audio.c:1564 src/file.c:3223 src/translate.c:344 src/translate.c:365 msgid "Flac" msgstr "" #: src/cd_audio.c:1584 src/file.c:3242 src/translate.c:345 src/translate.c:366 msgid "Ape" msgstr "" #: src/cd_audio.c:1604 src/file.c:3261 msgid "WavP" msgstr "" #: src/cd_audio.c:1624 src/file.c:3280 src/translate.c:347 src/translate.c:368 msgid "Ogg" msgstr "" #: src/cd_audio.c:1645 src/file.c:3299 src/translate.c:348 src/translate.c:369 msgid "M4a" msgstr "" #: src/cd_audio.c:1666 src/file.c:3318 src/translate.c:349 src/translate.c:370 msgid "Aac" msgstr "" #: src/cd_audio.c:1686 src/file.c:3337 msgid "Mpc" msgstr "" #: src/cd_audio.c:1706 src/file.c:3356 src/translate.c:351 src/translate.c:372 msgid "Mp3" msgstr "" #: src/cd_audio.c:1727 src/translate.c:352 msgid "Num" msgstr "" #: src/cd_audio.c:1742 src/translate.c:353 src/translate.c:373 #: src/translate.c:398 src/translate.c:406 msgid "Time" msgstr "" #: src/cd_audio.c:1757 src/dvd.c:1167 src/file.c:3392 src/translate.c:335 #: src/translate.c:354 src/translate.c:374 msgid "Normalise" msgstr "" #: src/cd_audio.c:1782 src/dvd.c:1187 src/file.c:3434 src/file_mp3ogg.c:958 #: src/file_tags.c:1191 src/file_wav.c:824 src/prg_init.c:609 #: src/translate.c:336 src/translate.c:355 src/translate.c:376 #: src/translate.c:388 src/translate.c:399 src/translate.c:407 msgid "Nom" msgstr "" #: src/cd_audio.c:2511 msgid " Parametrage CDDB: [ Nom du serveur ]" msgstr "" #: src/cd_audio.c:2520 msgid " Parametrage PROXY: [ serveur ] [ port ]" msgstr "" #: src/cd_audio.c:2530 src/translate.c:95 msgid " Serveur " msgstr "" #: src/cd_audio_extract.c:673 #, c-format msgid "" "[Erreur du segment numero: %d]\n" "%d) Lecture PASS 1/2\n" msgstr "" #: src/cd_audio_extract.c:680 #, c-format msgid "" "--> Deja %d fois 2 lectures du segment %d!\n" " Abandon :/\n" msgstr "" #: src/cd_audio_extract.c:700 #, c-format msgid "%d) Lecture PASS 2/2\n" msgstr "" #: src/cd_audio_extract.c:780 #, c-format msgid "" "\n" "[Piste: %d]\n" msgstr "" #: src/cd_audio_extract.c:784 msgid "Extraction mode expert PASS 1/2\n" msgstr "" #: src/cd_audio_extract.c:795 msgid "Extraction mode expert PASS 2/2\n" msgstr "" #: src/cd_audio_extract.c:803 msgid "Controle du contenu des fichiers extraits\n" msgstr "" #: src/cd_audio_extract.c:1710 src/cd_audio_extract.c:1712 msgid "XCFA: Extraction CD" msgstr "" #: src/cd_audio_extract.c:1710 src/dvd_extract.c:412 src/file_action.c:183 #: src/file_mp3ogg_conv.c:329 src/file_wav_conv.c:343 msgid "Ok" msgstr "" #: src/cd_audio_extract.c:1712 src/dvd_extract.c:414 src/file_action.c:185 #: src/file_mp3ogg_conv.c:331 src/file_wav_conv.c:345 msgid "Arret par l'utilisateur" msgstr "" #: src/cd_audio_extract.c:1983 msgid "Nom de fichier unique absent" msgstr "" #: src/cd_audio_extract.c:1984 msgid "Veuillez saisir un nom pour le fichier unique" msgstr "" #: src/cd_audio_toc.c:156 msgid "cdda2wav and icedax NOT FOUND" msgstr "" #: src/cd_audio_toc.c:157 msgid "Please, install packages [ icedax, cdda2wav ]" msgstr "" #: src/cd_audio_toc.c:163 msgid "icedax NOT FOUND" msgstr "" #: src/cd_audio_toc.c:164 msgid "Please, install package [ icedax ]" msgstr "" #: src/cd_audio_toc.c:170 msgid "cdda2wav NOT FOUND" msgstr "" #: src/cd_audio_toc.c:171 msgid "Please, install package [ cdda2wav ]" msgstr "" #: src/cd_audio_toc.c:180 msgid "cdparanoia NOT FOUND" msgstr "" #: src/cd_audio_toc.c:181 msgid "Please, install package [ cdparanoia ]" msgstr "" #: src/cd_audio_toc.c:188 msgid "cd-discid NOT FOUND" msgstr "" #: src/cd_audio_toc.c:189 msgid "Please, install packages [ cd-discid ]" msgstr "" #: src/cd_audio_toc.c:203 msgid "ERREUR datas proxy" msgstr "" #: src/cd_audio_toc.c:204 msgid "Veuillez renseigner les champs du proxy" msgstr "" #: src/cd_curl.c:734 src/web.c:187 msgid "La liaison internet est absente" msgstr "" #: src/cd_curl.c:1204 msgid "Couldn't find CD" msgstr "" #: src/cd_curl.c:1267 msgid "No Audio CD" msgstr "" #: src/dvd.c:859 msgid "" "(Click Droit = Menu) / PEAK-ALBUM: Amplification maximale du volume pour un " "groupe de fichiers en respectant les ecarts de niveau entre chacun d'eux." msgstr "" #: src/dvd.c:862 msgid "" "(Click Droit = Menu) / PEAK: Amplification maximale du volume pour chaque de " "fichier." msgstr "" #: src/dvd.c:900 src/dvd.c:920 msgid "En attente de selection. Un click activera la conversion vers 2 canaux." msgstr "" #: src/dvd.c:912 msgid "Conversion vers 2 canaux." msgstr "" #: src/dvd.c:924 #, c-format msgid "Conversion vers %s canaux." msgstr "" #: src/dvd.c:929 #, c-format msgid "" "Conversion vers 2 canaux. Un second click activera la conversion vers %s " "canaux." msgstr "" #: src/dvd.c:944 msgid "Musique en ecoute." msgstr "" #: src/dvd.c:947 msgid "Musique en attente." msgstr "" #: src/dvd.c:962 #, c-format msgid "Total selection%s: %d, 2ch: %d" msgstr "" #: src/dvd.c:963 msgid "s" msgstr "" #: src/dvd.c:969 msgid "Ce fichier ne peut etre extrait !" msgstr "" #: src/dvd.c:1087 msgid "Titres" msgstr "" #: src/dvd.c:1111 src/file.c:3375 src/file_mp3ogg.c:943 src/file_tags.c:1175 #: src/translate.c:332 msgid "Temps" msgstr "" #: src/dvd.c:1123 src/translate.c:333 msgid "Format" msgstr "" #: src/dvd.c:1135 src/translate.c:334 msgid "Choix" msgstr "" #: src/dvd.c:1249 msgid "Fichier structure DVD" msgstr "" #: src/dvd.c:1299 msgid "Le DVD est absent du lecteur." msgstr "" #: src/dvd.c:1335 msgid "Scan ..." msgstr "" #: src/dvd.c:1385 msgid "lsdvd est absent !" msgstr "" #: src/dvd.c:1386 msgid "Il faut installer le programme: lsdvd" msgstr "" #: src/dvd_extract.c:412 src/dvd_extract.c:414 msgid "XCFA: Extraction DVD" msgstr "" #: src/dvd_read.c:263 #, c-format msgid "Titre [%02d ** ]" msgstr "" #: src/dvd_read.c:266 #, c-format msgid "Titre [%02d]" msgstr "" #: src/dvd_read.c:310 #, c-format msgid "Fichier_complet_%02d_%s" msgstr "" #: src/dvd_read.c:355 #, c-format msgid "Chapitre: [%02d]" msgstr "" #: src/dvd_read.c:401 #, c-format msgid "Titre_%02d_Chapitre_%02d_audio_%02d_%s" msgstr "" #: src/file_action.c:183 src/file_action.c:185 msgid "XCFA: Traitement fichiers" msgstr "" #: src/file_analyze.c:731 msgid "Package checkmp3 (mp3check) NOT FOUND !" msgstr "" #: src/file_analyze.c:732 msgid "" "Veuillez installer checkmp3 ou mp3check pour\n" "la prise en compte des fichiers mp3" msgstr "" #: src/file.c:328 #, c-format msgid "Total fichiers: %d, Selections: %d" msgstr "" #: src/file.c:442 msgid "CAPACITE DOSSIER TEMPORAIRE TROP FAIBLE" msgstr "" #: src/file.c:443 msgid "Pas assez de place dans le dossier temporaire" msgstr "" #: src/file.c:449 msgid "Veuillez deselectionner des PeakGroup." msgstr "" #: src/file.c:1433 msgid "Conversion(s) vers la source" msgstr "" #: src/file.c:1434 msgid "Choix d'une nouvelle destination" msgstr "" #: src/file.c:1504 msgid "Select type: --" msgstr "" #: src/file.c:1589 msgid "Peak/album" msgstr "" #: src/file.c:1590 msgid "Peak" msgstr "" #: src/file.c:1591 msgid "Mix (scan)Rms/album" msgstr "" #: src/file.c:1592 msgid "Fix (scan)Rms" msgstr "" #: src/file.c:2853 #, c-format msgid "MAX FICHIERS ATTEINT = %d" msgstr "" #: src/file.c:2863 msgid "Normalise: En attente de selection." msgstr "" #: src/file.c:2867 msgid "ATTENTION: Pas assez de place dans le dossier temporaire." msgstr "" #: src/file.c:2870 msgid "" "PEAK-ALBUM: Amplification maximale du volume pour un groupe de fichiers en " "respectant les ecarts de niveau entre chacun d'eux." msgstr "" #: src/file.c:2874 msgid "PEAK: Amplification maximale du volume pour chaque de fichier." msgstr "" #: src/file.c:2877 msgid "" "RMS-ALBUM: Ajustement du volume moyen pour un groupe de fichiers en " "respectant les ecarts de niveau moyen entre chacun d'eux." msgstr "" #: src/file.c:2880 msgid "RMS: Ajustement du volume moyen de chaque de fichier." msgstr "" #: src/file.c:2894 msgid "(Click Droit = Menu) / ReplayGain: En attente de selection." msgstr "" #: src/file.c:2897 msgid "(Click Droit = Menu) / Mode piste." msgstr "" #: src/file.c:2900 msgid "(Click Droit = Menu) / Mode album." msgstr "" #: src/file.c:2903 msgid "(Click Droit = Menu) / Mode effacer." msgstr "" #: src/file.c:3015 msgid "" "(Click Droit = Menu) / Cliquez ici pour envoyer ce fichier apres traitement " "a la corbeille" msgstr "" #: src/file.c:3018 msgid "" "(Click Droit = Menu) / Ce fichier sera dirige apres traitement vers la " "corbeille" msgstr "" #: src/file.c:3152 src/file_trash.c:359 src/translate.c:362 msgid "Trash" msgstr "" #: src/file.c:3172 src/file_mp3ogg.c:883 src/file_tags.c:1160 #: src/translate.c:363 src/translate.c:394 src/translate.c:405 msgid "Type" msgstr "" #: src/file.c:3411 msgid "ReplayGain" msgstr "" #: src/file_conv.c:2835 src/file_mp3ogg_conv.c:336 msgid "Erreur depuis MPLAYER !" msgstr "" #: src/file_conv.c:2836 src/file_conv.c:2848 src/file_mp3ogg_conv.c:337 #: src/file_mp3ogg_conv.c:349 msgid "Vous pouvez activer XCFA en ligne de commande avec: " msgstr "" #: src/file_conv.c:2838 src/file_conv.c:2850 src/file_mp3ogg_conv.c:339 #: src/file_mp3ogg_conv.c:351 msgid "$ xcfa -verbose" msgstr "" #: src/file_conv.c:2840 src/file_mp3ogg_conv.c:341 msgid "pour consulter le type d'erreur renvoye par mplayer." msgstr "" #: src/file_conv.c:2847 src/file_mp3ogg_conv.c:348 msgid "Erreur depuis SOX !" msgstr "" #: src/file_conv.c:2852 src/file_mp3ogg_conv.c:353 msgid "pour consulter le type d'erreur renvoye par sox." msgstr "" #: src/file_mp3ogg.c:668 msgid "Click droit: acces popup" msgstr "" #: src/file_mp3ogg.c:899 src/translate.c:395 msgid "Bitrate" msgstr "" #: src/file_mp3ogg.c:915 msgid "Nouveau bitrate" msgstr "" #: src/file_mp3ogg.c:929 msgid "Taille" msgstr "" #: src/file_mp3ogg_conv.c:329 src/file_mp3ogg_conv.c:331 msgid "XCFA: Modification bitrate" msgstr "" #: src/file_mp3ogg_conv.c:432 #, c-format msgid " ATTENTION: Il faut installer %s%s%s" msgstr "" #: src/file_mp3ogg_conv.c:440 #, c-format msgid " ATTENTION: Il faut installer %s%s" msgstr "" #: src/file_mp3ogg_conv.c:447 #, c-format msgid " ATTENTION: Il faut installer %s" msgstr "" #: src/file_mp3ogg_conv.c:454 msgid "Package NOT FOUND !" msgstr "" #: src/fileselect.c:105 msgid "Choix d'un dossier de destination" msgstr "" #: src/fileselect.c:106 msgid "Choix d'un fichier CUE WAV FLAC OGG MP3 APE WMA" msgstr "" #: src/fileselect.c:107 msgid "Choix d'un fichier musical" msgstr "" #: src/fileselect.c:108 msgid "Choix d'un fichier" msgstr "" #: src/fileselect.c:109 msgid "Choix de fichiers" msgstr "" #: src/fileselect.c:110 msgid "Choix de fichiers WAV" msgstr "" #: src/fileselect.c:111 msgid "Choix de fichiers MP3/OGG" msgstr "" #: src/fileselect.c:112 msgid "Choix de fichiers FLAC MPC OGG MP3" msgstr "" #: src/fileselect.c:113 msgid "Importer des images pour la pochette" msgstr "" #: src/fileselect.c:114 msgid "Choix d'un chemin de stockage des images" msgstr "" #: src/fileselect.c:115 msgid "Choix d'un lieu de sauvegarde" msgstr "" #: src/fileselect.c:472 src/fileselect.c:595 src/fileselect.c:605 #: src/fileselect.c:628 msgid "All Files (*.*)" msgstr "" #: src/file_trash.c:360 msgid "Trash files ..." msgstr "" #: src/file_wav.c:483 msgid "(Click Droit = Menu) / Choix de la frequence" msgstr "" #: src/file_wav.c:486 msgid "(Click Droit = Menu) / Choix du nombre de pistes (voies)" msgstr "" #: src/file_wav.c:489 msgid "(Click Droit = Menu) / Choix du codage en nombre de bits" msgstr "" #: src/file_wav.c:733 msgid "Frequence" msgstr "" #: src/file_wav.c:749 msgid "FREQUENCE" msgstr "" #: src/file_wav.c:763 msgid "Piste" msgstr "" #: src/file_wav.c:779 msgid "PISTE" msgstr "" #: src/file_wav.c:793 msgid "Quantification" msgstr "" #: src/file_wav.c:809 msgid "QUANTIFICATION" msgstr "" #: src/file_wav_conv.c:261 #, c-format msgid "%s Copie fichier: %d%%" msgstr "" #: src/file_wav_conv.c:271 #, c-format msgid "%s Restitution fichier: %d%%" msgstr "" #: src/file_wav_conv.c:281 #, c-format msgid "%s Traitement Sox: %d%%" msgstr "" #: src/file_wav_conv.c:298 #, c-format msgid "%s Traitement Mplayer: %d%%" msgstr "" #: src/file_wav_conv.c:343 src/file_wav_conv.c:345 msgid "XCFA: Conversions WAV TO WAV" msgstr "" #: src/main.c:398 msgid "= Adressage memoire invalide\n" msgstr "" #: src/main.c:401 msgid "= Vous avez probablement trouve un bug dans XCFA\n" msgstr "" #: src/main.c:786 msgid "MODE ADMINISTRATEUR" msgstr "" #: src/main.c:788 msgid " Vous ne devriez pas utiliser " msgstr "" #: src/main.c:790 msgid " XCFA sous ROOT !" msgstr "" #: src/options.c:171 msgid "ERREUR: Lieu de stockage non autorise !" msgstr "" #: src/options.c:172 msgid "Veuillez recommencer." msgstr "" #: src/options_cd.c:122 msgid "Pour evaluer les templates, vous devez activer une lecture de cdaudio" msgstr "" #: src/options_faac.c:96 msgid "Transport Stream (ADTS) - Extension .aac" msgstr "" #: src/options_faac.c:97 msgid "MPEG-4 File Format (MP4) - Extension .m4a" msgstr "" #: src/options_flac.c:67 msgid "0 (Rapide)" msgstr "" #: src/options_flac.c:75 msgid "8 (Lent)" msgstr "" #: src/options_mp3.c:279 msgid "V0 (meilleure qualite)" msgstr "" #: src/options_mp3.c:288 msgid "V9 (moins bonne qualite)" msgstr "" #: src/options_musepack.c:70 msgid "telephone: lowest quality : 32 .. 48 kbit/s" msgstr "" #: src/options_musepack.c:71 msgid "thumb : low quality/internet : 58 .. 86 kbit/s" msgstr "" #: src/options_musepack.c:72 msgid "radio : medium (MP3) quality : 112 .. 152 kbit/s" msgstr "" #: src/options_musepack.c:73 msgid "standard : high quality (dflt) : 142 .. 184 kbit/s" msgstr "" #: src/options_musepack.c:74 msgid "xtreme : extreme high quality : 168 .. 212 kbit/s" msgstr "" #: src/options_musepack.c:75 msgid "insane : extreme high quality : 232 .. 268 kbit/s" msgstr "" #: src/options_musepack.c:76 msgid "braindead : extreme high quality : 232 .. 278 kbit/s" msgstr "" #: src/options_oggenc.c:138 msgid "Qualite -1 (Moins bonne qualite)" msgstr "" #: src/options_oggenc.c:139 src/popup.c:1219 msgid "Qualite 0" msgstr "" #: src/options_oggenc.c:140 src/popup.c:1219 msgid "Qualite 1" msgstr "" #: src/options_oggenc.c:141 src/popup.c:1219 msgid "Qualite 2" msgstr "" #: src/options_oggenc.c:142 msgid "Qualite 3" msgstr "" #: src/options_oggenc.c:143 src/popup.c:1220 msgid "Qualite 4" msgstr "" #: src/options_oggenc.c:144 src/popup.c:1220 msgid "Qualite 5" msgstr "" #: src/options_oggenc.c:145 src/popup.c:1220 msgid "Qualite 6" msgstr "" #: src/options_oggenc.c:146 src/popup.c:1220 msgid "Qualite 7" msgstr "" #: src/options_oggenc.c:147 src/popup.c:1221 msgid "Qualite 8" msgstr "" #: src/options_oggenc.c:148 src/popup.c:1221 msgid "Qualite 9" msgstr "" #: src/options_oggenc.c:149 msgid "Qualite 10 (Meilleure qualite)" msgstr "" #: src/options_oggenc.c:179 src/options_wavpack.c:181 #: src/options_wavpack.c:204 src/options_wavpack.c:227 src/popup.c:1223 msgid "Oui" msgstr "" #: src/options_oggenc.c:180 src/options_wavpack.c:148 #: src/options_wavpack.c:180 src/options_wavpack.c:203 #: src/options_wavpack.c:226 src/options_wavpack.c:247 src/popup.c:1223 msgid "Non" msgstr "" #: src/options_oggenc.c:201 msgid "Mono force" msgstr "" #: src/options_oggenc.c:202 msgid "Stereo" msgstr "" #: src/options_wavpack.c:100 msgid "Mode normal" msgstr "" #: src/options_wavpack.c:101 msgid "Mode rapide de compression" msgstr "" #: src/options_wavpack.c:102 msgid "Bonne qualite de compression" msgstr "" #: src/options_wavpack.c:103 msgid "Meilleure qualite de compression" msgstr "" #: src/options_wavpack.c:129 msgid "stereo left/right" msgstr "" #: src/options_wavpack.c:130 msgid "stereo mid/side" msgstr "" #: src/options_wavpack.c:248 msgid "1 (fast / rapide)" msgstr "" #: src/options_wavpack.c:253 msgid "6 (very slow / tres lent)" msgstr "" #: src/play_file.c:108 msgid "PAS de lecteur audio present" msgstr "" #: src/play_file.c:109 msgid "Veuillez installez un lecteur audio." msgstr "" #: src/poche_dir.c:430 msgid "" "Utilisez le glisser / deplacer - Effacer une image avec Ctrl + " "Click" msgstr "" #: src/poche_save.c:111 msgid "Nom de fichier absent !!" msgstr "" #: src/poche_save.c:112 src/poche_web.c:353 src/poche_web.c:375 msgid "Pour resoudre ce probleme:" msgstr "" #: src/poche_save.c:115 msgid "Saisissez un nom de fichier sans extention" msgstr "" #: src/poche_save.c:126 msgid "Sauvegarde aux formats PDF et PostScript" msgstr "" #: src/poche_save.c:151 msgid "Sauvegarde au format PNG" msgstr "" #: src/poche_web.c:352 msgid "Aucun fichier trouve !" msgstr "" #: src/poche_web.c:356 msgid "Modifiez la chaine de recherche et" msgstr "" #: src/poche_web.c:358 src/poche_web.c:380 msgid "recommencez." msgstr "" #: src/poche_web.c:374 msgid "Critere de recherche absent !!" msgstr "" #: src/poche_web.c:378 msgid "Saisissez une chaine de recherche et" msgstr "" #: src/poche_web.c:387 msgid "[Recherche des fichiers images]" msgstr "" #: src/popup.c:81 src/popup.c:100 msgid " Deselection globale" msgstr "" #: src/popup.c:82 src/popup.c:101 src/popup.c:162 msgid " Deselection verticale" msgstr "" #: src/popup.c:83 src/popup.c:102 msgid " Deselection horizontale" msgstr "" #: src/popup.c:84 src/popup.c:87 src/popup.c:103 src/popup.c:106 #: src/popup.c:120 src/popup.c:133 src/popup.c:147 msgid " ---" msgstr "" #: src/popup.c:85 src/popup.c:104 msgid " Selection verticale" msgstr "" #: src/popup.c:86 src/popup.c:105 msgid " Selection Expert verticale" msgstr "" #: src/popup.c:88 src/popup.c:107 msgid " Selection horizontale" msgstr "" #: src/popup.c:89 src/popup.c:108 msgid " Selection Expert horizontale " msgstr "" #: src/popup.c:119 src/popup.c:132 msgid " Deselection verticale " msgstr "" #: src/popup.c:121 src/popup.c:134 msgid " Selection verticale " msgstr "" #: src/popup.c:145 msgid "---SELECTION VERTICALE-----" msgstr "" #: src/popup.c:146 msgid " Deselection verticale " msgstr "" #: src/popup.c:148 msgid " Selection PISTE " msgstr "" #: src/popup.c:149 msgid " Selection ALBUM " msgstr "" #: src/popup.c:150 msgid " Selection NETTOYER " msgstr "" #: src/popup.c:161 msgid "---MENU TRASH--------------" msgstr "" #: src/popup.c:163 msgid " Selection verticale " msgstr "" #: src/popup.c:489 msgid "1 piste" msgstr "" #: src/popup.c:492 msgid "2 pistes" msgstr "" #: src/popup.c:495 msgid "4 pistes" msgstr "" #: src/popup.c:498 msgid "6 pistes" msgstr "" #: src/popup.c:504 src/popup.c:619 src/popup.c:716 msgid "Valeur d'origine" msgstr "" #: src/popup.c:592 msgid " 8000 Hertz" msgstr "" #: src/popup.c:595 msgid "22000 Hertz" msgstr "" #: src/popup.c:598 msgid "32000 Hertz" msgstr "" #: src/popup.c:601 msgid "44056 Hertz" msgstr "" #: src/popup.c:604 msgid "44100 Hertz" msgstr "" #: src/popup.c:607 msgid "48000 Hertz" msgstr "" #: src/popup.c:610 msgid "88200 Hertz" msgstr "" #: src/popup.c:613 msgid "96000 Hertz" msgstr "" #: src/popup.c:698 msgid " 8 bits" msgstr "" #: src/popup.c:701 msgid "16 bits" msgstr "" #: src/popup.c:704 msgid "24 bits" msgstr "" #: src/popup.c:707 msgid "32 bits" msgstr "" #: src/popup.c:710 msgid "64 bits" msgstr "" #: src/popup.c:765 msgid "Selecteur suivant" msgstr "" #: src/popup.c:769 msgid "Selecteur precedant" msgstr "" #: src/popup.c:777 msgid "Supprimer la plage active" msgstr "" #: src/popup.c:849 msgid "Retourner horizontalement" msgstr "" #: src/popup.c:853 msgid "Retourner verticalement" msgstr "" #: src/popup.c:861 msgid "Image au premier plan" msgstr "" #: src/popup.c:865 msgid "Image au dessus" msgstr "" #: src/popup.c:869 msgid "Image en dessous" msgstr "" #: src/popup.c:873 msgid "Image au dernier plan" msgstr "" #: src/popup.c:881 msgid "Effacer l'image" msgstr "" #: src/popup.c:918 msgid "Supprimer l'image de la liste" msgstr "" #: src/popup.c:1036 msgid "V0 [ meilleure qualite ]" msgstr "" #: src/popup.c:1036 src/popup.c:1039 msgid "V4 [ defaut ]" msgstr "" #: src/popup.c:1036 msgid "V9 [ moins bonne qualite ]" msgstr "" #: src/popup.c:1219 msgid "Qualite -1 [ Moins bonne qualite ]" msgstr "" #: src/popup.c:1220 msgid "Qualite 3 [ Defaut ]" msgstr "" #: src/popup.c:1221 msgid "Qualite 10 [ Meilleure qualite ]" msgstr "" #: src/prg_init.c:85 msgid " Decode ATSC A/52 audio streams" msgstr "" #: src/prg_init.c:96 msgid " AAC+ encoder" msgstr "" #: src/prg_init.c:107 src/prg_init.c:173 msgid " Extracteur cd audio" msgstr "" #: src/prg_init.c:118 msgid " Read CD and get CDDB discid information" msgstr "" #: src/prg_init.c:129 msgid " Cherche des renseignements sur les formats mp3" msgstr "" #: src/prg_init.c:140 msgid " Audio Codeur freeware" msgstr "" #: src/prg_init.c:151 msgid " MPEG-4 AAC decodeur" msgstr "" #: src/prg_init.c:162 msgid " Conversion wav : flac" msgstr "" #: src/prg_init.c:184 msgid " Conversion wav : mp3" msgstr "" #: src/prg_init.c:195 msgid " Cherche les informations d'un dvd" msgstr "" #: src/prg_init.c:207 msgid " Monkey's Audio Console Front End : APE" msgstr "" #: src/prg_init.c:219 src/prg_init.c:230 msgid " MusePack commandline utilities" msgstr "" #: src/prg_init.c:241 msgid " Lecteur et extracteur" msgstr "" #: src/prg_init.c:252 msgid " Normaliseur de fichier mp3" msgstr "" #: src/prg_init.c:263 msgid " Normaliseur de fichier wav" msgstr "" #: src/prg_init.c:274 msgid " A program to send desktop notifications" msgstr "" #: src/prg_init.c:285 msgid " Forte compression au format wave" msgstr "" #: src/prg_init.c:296 msgid " Decoupage de fichiers sans decodage" msgstr "" #: src/prg_init.c:307 msgid " Transformation universelle de fichiers son" msgstr "" #: src/prg_init.c:318 msgid " Conversion wav : ogg" msgstr "" #: src/prg_init.c:329 msgid " Normaliseur de fichier ogg" msgstr "" #: src/prg_init.c:340 msgid " WAVPACK Hybrid Lossless Audio Compressor" msgstr "" #: src/prg_init.c:357 msgid " ... les paquets: deb " msgstr "" #: src/prg_init.c:363 msgid " ... les paquets: tgz " msgstr "" #: src/prg_init.c:369 msgid " ... les paquets: fpm " msgstr "" #: src/prg_init.c:375 msgid " ... les paquets: rpm " msgstr "" #: src/prg_init.c:381 msgid " ... les paquets: pkg.tar.xz " msgstr "" #: src/prg_init.c:387 msgid " ... les paquets: ? " msgstr "" #: src/prg_init.c:623 msgid "Status" msgstr "" #: src/prg_init.c:637 msgid "Paquet" msgstr "" #: src/prg_init.c:652 msgid "Action" msgstr "" #: src/scan.c:259 msgid "PACKAGE dvd+rw-tools ABSENT" msgstr "" #: src/scan.c:260 msgid "Le package 'dvd+rw-tools' est absent" msgstr "" #: src/scan.c:262 msgid "de votre systeme !" msgstr "" #: src/scan.c:264 msgid "Veuillez l'installer car j'ai besoin de" msgstr "" #: src/scan.c:266 msgid "'dvd+rw-mediainfo' pour identifier le(s)" msgstr "" #: src/scan.c:268 msgid "lecteur(s) de cd / dvd." msgstr "" #: src/split.c:279 msgid "" "Menu: Click droit / Ajout plage: Click bouton centre / Zoom: Ctrl+Scroll" msgstr "" #: src/split.c:282 msgid "Ajout plage: Click bouton centre / Zoom: Ctrl+Scroll" msgstr "" #: src/split.c:286 msgid "" "Pret pour l'import d'un fichier CUE, WAV, FLAC, OGG, MP3, APE, WMA" msgstr "" #: src/split.c:356 src/split.c:385 msgid "Ce fichier appartient a XCFA" msgstr "" #: src/split.c:357 src/split.c:386 msgid "Selectionnez un autre fichier." msgstr "" #: src/split.c:365 msgid "Fichier vide" msgstr "" #: src/split.c:366 msgid "Le fichier ne contient aucune donnee !!!" msgstr "" #: src/split.c:411 msgid "Sox et Mplayer absents" msgstr "" #: src/split.c:412 msgid "Sox et Mplayer sont absents de votre" msgstr "" #: src/split.c:414 msgid "configuration." msgstr "" #: src/split.c:416 msgid "Veuillez les installer pour pouvoir continuer." msgstr "" #: src/split.c:467 msgid "Erreur de choix de fichier" msgstr "" #: src/split.c:468 msgid "Veuillez selectionner un fichier de type WAV FLAC MP3 OGG APE" msgstr "" #: src/split.c:505 src/split.c:579 msgid "Mauvais type de fichier" msgstr "" #: src/split.c:506 src/split.c:580 msgid "" "Les types de fichiers acceptes\n" "sont: WAV FLAC MP3 OGG APE WMA CUE" msgstr "" #: src/split_conv.c:313 src/split_conv.c:330 msgid "Erreur SOX" msgstr "" #: src/split_conv.c:314 src/split_conv.c:331 msgid "Le programme SOX de votre distribution" msgstr "" #: src/split_conv.c:316 src/split_conv.c:333 msgid "a generer une erreur pendant la conversion." msgstr "" #: src/split_cue.c:116 msgid "Erreur de lecture !" msgstr "" #: src/split_cue.c:177 src/split_cue.c:187 src/split_cue.c:197 msgid "Erreur" msgstr "" #: src/split_cue.c:178 msgid "Aucun fichier de musique associe au cue-file !" msgstr "" #: src/split_cue.c:188 msgid "Pas de fichier WAV dans le cue-file !" msgstr "" #: src/split_cue.c:198 msgid "Aucun fichier de musique associe dans le dossier" msgstr "" #: src/split_cue.c:200 msgid "du cue-file" msgstr "" #: src/split_cue.c:294 msgid "Erreur de donnees dans le fichier CUE" msgstr "" #: src/split_cue.c:295 msgid "La solution est d'importer le fichier de" msgstr "" #: src/split_cue.c:297 msgid "musique qui sera reconnu et pre-decoupe" msgstr "" #: src/split_cue.c:299 msgid "dans le module Split." msgstr "" #: src/split_cue.c:301 msgid "Il ne restera qu'a ajuster les plages pour" msgstr "" #: src/split_cue.c:303 msgid "generer un nouveau cue-file ou des decoupes" msgstr "" #: src/split_cue.c:305 msgid "correspondant aux plages." msgstr "" #: src/split_selector.c:136 msgid "Suppression pendant la lecture impossible" msgstr "" #: src/split_selector.c:229 src/split_selector.c:235 src/split_selector.c:289 #: src/split_selector.c:295 src/split_selector.c:352 src/split_selector.c:359 #: src/split_selector.c:429 src/split_selector.c:435 msgid "Temps inferieur a 5 secondes entre marqueur et curseur !" msgstr "" #: src/translate.c:51 msgid "Fichier" msgstr "" #: src/translate.c:52 msgid "Quitter" msgstr "" #: src/translate.c:53 msgid "Outils" msgstr "" #: src/translate.c:54 msgid "Visibilite des champs" msgstr "" #: src/translate.c:55 msgid "Aide" msgstr "" #: src/translate.c:56 msgid "A propos" msgstr "" #: src/translate.c:57 src/translate.c:67 msgid "Lecture" msgstr "" #: src/translate.c:58 msgid " Choix du peripherique / Lecture du DVD " msgstr "" #: src/translate.c:59 src/translate.c:69 src/translate.c:125 msgid " Destination des fichiers " msgstr "" #: src/translate.c:60 src/translate.c:70 msgid " Eject " msgstr "" #: src/translate.c:61 src/translate.c:92 msgid " Normaliser " msgstr "" #: src/translate.c:62 msgid "Deplier" msgstr "" #: src/translate.c:63 msgid "Replier" msgstr "" #: src/translate.c:64 msgid " Vers 2CH: Sub / Ambiance " msgstr "" #: src/translate.c:65 src/translate.c:98 msgid "Extraire" msgstr "" #: src/translate.c:66 msgid " DVD " msgstr "" #: src/translate.c:68 msgid " Choix du peripherique / Lecture du CD " msgstr "" #: src/translate.c:71 msgid "Titre:" msgstr "" #: src/translate.c:72 msgid "Album:" msgstr "" #: src/translate.c:73 msgid "Artiste:" msgstr "" #: src/translate.c:74 msgid " Annee:" msgstr "" #: src/translate.c:75 msgid " Genre:" msgstr "" #: src/translate.c:76 msgid " Piste:" msgstr "" #: src/translate.c:77 msgid " *.m3u et xspf: " msgstr "" #: src/translate.c:78 msgid "Commentaire:" msgstr "" #: src/translate.c:79 msgid " Modification des tags Freedb " msgstr "" #: src/translate.c:80 msgid "" "%a [ %a=\"Artist\" ]\n" "\n" "%b [ %b=\"Album\" ]\n" "\n" "%Tl - Tetsumaki lower\n" "\n" "Transforme la chaine en minuscule sauf le premier caractere.\n" "\n" "Dans le champs 'Titre' depuis [ Modification des tags FreeDB ],\n" "le ou les caracteres devant etre conserves doivent etre precedes par le " "caractere %" msgstr "" #: src/translate.c:81 msgid "" "%a - artiste %b - titre " "de l'album %c - numero de la piste\n" "%d - titre de la chanson %e - " "annee %g - genre\n" "%f - creation d'un fichier *.m3u et *." "xspf %na - no accent\n" "%u - remplacement de caracteres: %u(AB=C) %u( =_) %Tl - Tetsumaki lower" msgstr "" #: src/translate.c:82 msgid " Arrangement des titres du CD " msgstr "" #: src/translate.c:83 msgid "Creation d'un fichier unique au format: " msgstr "" #: src/translate.c:84 msgid " et dont le nom sera: " msgstr "" #: src/translate.c:85 msgid "Ecriture du fichier cue" msgstr "" #: src/translate.c:86 msgid " Au moins deux selections colonne Wav " msgstr "" #: src/translate.c:87 msgid "" "Creation d'un fichier cue\n" "unique depuis une lecture\n" "du cd audio" msgstr "" #: src/translate.c:88 msgid "Creation fichier cue uniquement" msgstr "" #: src/translate.c:89 msgid " Creation Cue cd " msgstr "" #: src/translate.c:90 msgid " Creation d'un fichier unique " msgstr "" #: src/translate.c:91 msgid "Gestion des tags, titres et fichiers cue" msgstr "" #: src/translate.c:93 msgid "definit le serveur a contacter pour les recherches titre" msgstr "" #: src/translate.c:94 msgid "Parametres par defaut" msgstr "" #: src/translate.c:96 msgid "Choix parmis les differentes bases de donnees pour le CD." msgstr "" #: src/translate.c:97 msgid "DiscId" msgstr "" #: src/translate.c:99 msgid " CD " msgstr "" #: src/translate.c:100 src/translate.c:124 msgid " Importer " msgstr "" #: src/translate.c:101 msgid " Destination des conversions " msgstr "" #: src/translate.c:102 msgid " Nettoyer " msgstr "" #: src/translate.c:103 src/translate.c:107 msgid "Appliquer les modifications" msgstr "" #: src/translate.c:104 msgid " Normalise: " msgstr "" #: src/translate.c:105 msgid " Choix niveau dBFS: " msgstr "" #: src/translate.c:106 src/translate.c:123 msgid " Fichiers " msgstr "" #: src/translate.c:108 msgid " Wav " msgstr "" #: src/translate.c:109 src/translate.c:121 msgid "Appliquer" msgstr "" #: src/translate.c:110 msgid "Effacer" msgstr "" #: src/translate.c:111 msgid " Mp3-Ogg " msgstr "" #: src/translate.c:112 msgid "Titre:" msgstr "" #: src/translate.c:113 msgid "Album:" msgstr "" #: src/translate.c:114 msgid "Artiste:" msgstr "" #: src/translate.c:115 msgid "Commentaire:" msgstr "" #: src/translate.c:116 msgid " Annee:" msgstr "" #: src/translate.c:117 msgid " Genre:" msgstr "" #: src/translate.c:118 msgid " Piste:" msgstr "" #: src/translate.c:119 msgid " Modif.:" msgstr "" #: src/translate.c:120 msgid "0" msgstr "" #: src/translate.c:122 src/translate.c:309 msgid " Tags " msgstr "" #: src/translate.c:126 msgid "Lecture de 5 secondes apres le marqueur de debut" msgstr "" #: src/translate.c:127 msgid "Index de debut" msgstr "" #: src/translate.c:128 src/translate.c:135 src/translate.c:138 msgid "00h00m00s" msgstr "" #: src/translate.c:129 msgid "lecture" msgstr "" #: src/translate.c:130 msgid "Pause" msgstr "" #: src/translate.c:131 msgid "Index de lecture" msgstr "" #: src/translate.c:132 src/translate.c:171 msgid "label" msgstr "" #: src/translate.c:133 msgid "Lecture de 5 secondes avant le marqueur de fin" msgstr "" #: src/translate.c:134 msgid "Index de fin" msgstr "" #: src/translate.c:136 msgid "Plage" msgstr "" #: src/translate.c:137 msgid "Duree de la plage active" msgstr "" #: src/translate.c:139 msgid "Suprimer tous les marqueurs pour les remplacer par un marqueur unique" msgstr "" #: src/translate.c:140 msgid "Le fichier CUE sera enregistre vers 'Destination des fichiers'." msgstr "" #: src/translate.c:141 msgid "Production fichier Cue" msgstr "" #: src/translate.c:142 msgid "Le resultat du Split sera dirige vers 'Destination des fichiers'." msgstr "" #: src/translate.c:143 msgid "Split" msgstr "" #: src/translate.c:144 msgid " Split " msgstr "" #: src/translate.c:145 msgid "Importation du titre du CD." msgstr "" #: src/translate.c:146 msgid "Titre CD" msgstr "" #: src/translate.c:147 msgid "Choix d'une nouvelle police." msgstr "" #: src/translate.c:148 msgid "Texte gras." msgstr "" #: src/translate.c:149 msgid "Texte italique." msgstr "" #: src/translate.c:150 msgid "" "Apres une lecture de CD et un ajout d'etiquette, ce menu permet la mise en " "forme des titres, auteurs ..." msgstr "" #: src/translate.c:151 msgid "Ajouter du texte editable." msgstr "" #: src/translate.c:152 msgid "Texte" msgstr "" #: src/translate.c:153 msgid "Saisissez ici un critere de recherche d'images." msgstr "" #: src/translate.c:154 msgid "Importation des images depuis le Web." msgstr "" #: src/translate.c:155 msgid "Import images web" msgstr "" #: src/translate.c:156 msgid "Supprimer l'image en selection" msgstr "" #: src/translate.c:157 msgid "AJouter de nouvelles images." msgstr "" #: src/translate.c:158 msgid "Ouvre un fichier" msgstr "" #: src/translate.c:159 msgid "Enregistrer la page au format png." msgstr "" #: src/translate.c:160 msgid "Sauvegarde le fichier" msgstr "" #: src/translate.c:161 msgid "Diminution de l'echelle." msgstr "" #: src/translate.c:162 msgid "Reduit l'agrandissement" msgstr "" #: src/translate.c:163 msgid "Echelle a 100%." msgstr "" #: src/translate.c:164 msgid "Remet l'echelle a 100%" msgstr "" #: src/translate.c:165 msgid "Augmentation de l'echelle." msgstr "" #: src/translate.c:166 msgid "Augmente l'agrandissement" msgstr "" #: src/translate.c:167 msgid "Echelle compatible avec la taille de la fenetre." msgstr "" #: src/translate.c:168 msgid "Adapte l'echelle a la taille de la fenetre" msgstr "" #: src/translate.c:169 msgid "Emplacement de sauvegarde des fichiers." msgstr "" #: src/translate.c:170 msgid "Nom (sans extention) du fichier a sauvegarder." msgstr "" #: src/translate.c:172 msgid " Pochette " msgstr "" #: src/translate.c:173 msgid "Nice" msgstr "" #: src/translate.c:174 msgid " Priorite systeme " msgstr "" #: src/translate.c:175 msgid "" "Indiquez ici le dossier sur votre systeme qui servira de lieu\n" "de stockage provisoire pendant les differentes conversions.\n" msgstr "" #: src/translate.c:176 msgid " Dossier provisoire des conversions " msgstr "" #: src/translate.c:177 msgid "button" msgstr "" #: src/translate.c:178 msgid " Jouer une musique en fin de tache " msgstr "" #: src/translate.c:179 msgid " General " msgstr "" #: src/translate.c:180 msgid "cdparanoia" msgstr "" #: src/translate.c:181 msgid "cdparanoia mode expert" msgstr "" #: src/translate.c:182 msgid "cdparanoia mode expert multi passes" msgstr "" #: src/translate.c:183 msgid "cdda2wav / icedax" msgstr "" #: src/translate.c:184 msgid " Extraction cd-audio avec: " msgstr "" #: src/translate.c:185 msgid "HomePage" msgstr "" #: src/translate.c:186 msgid "ManPage " msgstr "" #: src/translate.c:187 msgid " Web cdparanoia " msgstr "" #: src/translate.c:188 msgid "" "Le fichier LogExpertMode.txt sera cree dans le dossier des " "extractions" msgstr "" #: src/translate.c:189 msgid "" "Generation d'un rapport pour: cdparanoia mode expert multi passes" msgstr "" #: src/translate.c:190 msgid "" "%a - artiste %b - titre " "de l'album %c - numero de la piste\n" "%d - titre de la chanson %e - " "annee %g - genre\n" "%na - no accent %Tl " "- Tetsumaki lower\n" "%u - remplacement de caracteres: %u(AB=C) %u( =_)" msgstr "" #: src/translate.c:191 msgid " Dossier de stockage " msgstr "" #: src/translate.c:192 msgid " CD " msgstr "" #: src/translate.c:193 msgid "ABR / CBR / VBR / VBR-NEW" msgstr "" #: src/translate.c:194 msgid "Debit" msgstr "" #: src/translate.c:195 msgid "Mode" msgstr "" #: src/translate.c:196 msgid " Lame (fichier mp3): " msgstr "" #: src/translate.c:197 src/translate.c:213 src/translate.c:225 #: src/translate.c:238 src/translate.c:255 src/translate.c:266 #: src/translate.c:280 src/translate.c:294 msgid "Par defaut" msgstr "" #: src/translate.c:198 msgid " Options LAME " msgstr "" #: src/translate.c:199 src/translate.c:227 src/translate.c:268 msgid "Site officiel" msgstr "" #: src/translate.c:200 msgid "Wiki mp3 " msgstr "" #: src/translate.c:201 msgid "Wiki " msgstr "" #: src/translate.c:202 msgid "ManPage " msgstr "" #: src/translate.c:203 msgid " Web Lame " msgstr "" #: src/translate.c:204 src/translate.c:218 src/translate.c:231 #: src/translate.c:242 src/translate.c:260 src/translate.c:271 #: src/translate.c:286 msgid "[" msgstr "" #: src/translate.c:205 src/translate.c:219 src/translate.c:232 #: src/translate.c:243 src/translate.c:261 src/translate.c:272 #: src/translate.c:287 msgid "string option interne" msgstr "" #: src/translate.c:206 src/translate.c:220 src/translate.c:233 #: src/translate.c:244 src/translate.c:262 src/translate.c:273 #: src/translate.c:288 msgid "]" msgstr "" #: src/translate.c:207 msgid "" " Options experts, definies par l'utilisateur - lame (wav -> mp3) " msgstr "" #: src/translate.c:208 msgid " Mp3 " msgstr "" #: src/translate.c:209 msgid " Mode" msgstr "" #: src/translate.c:210 msgid " Mode flux (streaming)" msgstr "" #: src/translate.c:211 msgid " Debit" msgstr "" #: src/translate.c:212 msgid " Oggenc (fichier ogg): " msgstr "" #: src/translate.c:214 msgid " Options OGGENC " msgstr "" #: src/translate.c:215 msgid "Wiki " msgstr "" #: src/translate.c:216 src/translate.c:258 src/translate.c:284 #: src/translate.c:298 msgid "ManPage" msgstr "" #: src/translate.c:217 msgid " Web Oggenc " msgstr "" #: src/translate.c:221 msgid "" " Options experts, definies par l'utilisateur - oggenc (wav -> ogg) " msgstr "" #: src/translate.c:222 msgid " Oggenc " msgstr "" #: src/translate.c:223 msgid "Taux de compression" msgstr "" #: src/translate.c:224 msgid " Flac (fichier flac): " msgstr "" #: src/translate.c:226 msgid " Options FLAC " msgstr "" #: src/translate.c:228 src/translate.c:269 msgid "Framasoft " msgstr "" #: src/translate.c:229 msgid "ManPage " msgstr "" #: src/translate.c:230 msgid " Web Flac " msgstr "" #: src/translate.c:234 msgid "" " Options experts, definies par l'utilisateur - flac (wav -> flac) " msgstr "" #: src/translate.c:235 msgid " Flac " msgstr "" #: src/translate.c:236 msgid " Qualite" msgstr "" #: src/translate.c:237 msgid " Mac (fichier ape): " msgstr "" #: src/translate.c:239 msgid " Options MAC " msgstr "" #: src/translate.c:240 msgid "Wiki" msgstr "" #: src/translate.c:241 msgid " Web Mac " msgstr "" #: src/translate.c:245 msgid " Options experts, definies par l'utilisateur - mac (wav -> ape) " msgstr "" #: src/translate.c:246 msgid " Mac " msgstr "" #: src/translate.c:247 msgid "Compression" msgstr "" #: src/translate.c:248 msgid "Son" msgstr "" #: src/translate.c:249 msgid "Mode hybride" msgstr "" #: src/translate.c:250 msgid "Fichier de correction" msgstr "" #: src/translate.c:251 msgid "Compression maximum" msgstr "" #: src/translate.c:252 msgid "Signature MD5" msgstr "" #: src/translate.c:253 msgid "Extra encode processing" msgstr "" #: src/translate.c:254 msgid " WavPack (fichier wv): " msgstr "" #: src/translate.c:256 msgid " Options WAVPACK " msgstr "" #: src/translate.c:257 msgid "Wiki " msgstr "" #: src/translate.c:259 msgid " Web Wavpack " msgstr "" #: src/translate.c:263 msgid "" " Options experts, definies par l'utilisateur - wavpack (wav -> wv) " msgstr "" #: src/translate.c:264 msgid " Wavpack " msgstr "" #: src/translate.c:265 msgid " MusePack (fichier mpc): " msgstr "" #: src/translate.c:267 msgid " Options MUSEPACK " msgstr "" #: src/translate.c:270 msgid " Web Musepack " msgstr "" #: src/translate.c:274 msgid "" " Options experts, definies par l'utilisateur - musepack (wav -> mpc) " msgstr "" #: src/translate.c:275 msgid " Musepack " msgstr "" #: src/translate.c:276 msgid " Qualite VBR / Debit ABR" msgstr "" #: src/translate.c:277 msgid " VBR / ABR" msgstr "" #: src/translate.c:278 msgid " Conteneur" msgstr "" #: src/translate.c:279 msgid " Faac (fichier .m4a): " msgstr "" #: src/translate.c:281 msgid " Options FAAC " msgstr "" #: src/translate.c:282 src/translate.c:296 msgid "Site officiel " msgstr "" #: src/translate.c:283 src/translate.c:297 msgid "Web Info " msgstr "" #: src/translate.c:285 msgid " Web Faac " msgstr "" #: src/translate.c:289 msgid "" " Options experts, definies par l'utilisateur - faac (wav -> m4a) " msgstr "" #: src/translate.c:290 msgid " Faac " msgstr "" #: src/translate.c:291 msgid " Stereo: Qualite en kbit/s" msgstr "" #: src/translate.c:292 msgid " Mono: Qualite en kbit/s" msgstr "" #: src/translate.c:293 msgid " AacplusEnc (fichier .aac): " msgstr "" #: src/translate.c:295 msgid " Options AacPlusEnc " msgstr "" #: src/translate.c:299 msgid " Web AacPlusEnc " msgstr "" #: src/translate.c:300 msgid " AacplusEnc " msgstr "" #: src/translate.c:301 msgid "Artiste" msgstr "" #: src/translate.c:302 src/translate.c:330 msgid "Titre" msgstr "" #: src/translate.c:303 msgid "Album" msgstr "" #: src/translate.c:304 msgid "Numero" msgstr "" #: src/translate.c:305 msgid "Genre" msgstr "" #: src/translate.c:306 msgid "Annee" msgstr "" #: src/translate.c:307 msgid "Commentaire" msgstr "" #: src/translate.c:308 msgid " Exportation de " msgstr "" #: src/translate.c:310 msgid " Preferences " msgstr "" #: src/translate.c:311 msgid "SCAN" msgstr "" #: src/translate.c:312 msgid " Installation " msgstr "" #: src/translate.c:313 msgid " Votre systeme utilise ... " msgstr "" #: src/translate.c:314 msgid "" "\n" "Pour installer les programmes externes requis,\n" "veuillez utiliser l'installateur de votre distribution Gnu/Linux.\n" msgstr "" #: src/translate.c:315 msgid "" "Le programme XCFA_INSTALL_ALL ecrit en Perl vous sera utile en ligne de " "commande pour une installation des programmes complementaire." msgstr "" #: src/translate.c:316 msgid " Informations " msgstr "" #: src/translate.c:317 msgid " Application externes " msgstr "" #: src/translate.c:318 src/translate.c:321 msgid "parametres:" msgstr "" #: src/translate.c:319 msgid "" "\n" " konqueror : newTab\n" " iceweasel : -new-window -new-tab \n" msgstr "" #: src/translate.c:320 msgid "Navigateur" msgstr "" #: src/translate.c:322 msgid "Lecteurs audio" msgstr "" #: src/translate.c:323 msgid " Navigateurs / Lecteurs audio " msgstr "" #: src/translate.c:324 msgid " Applications externes " msgstr "" #: src/translate.c:325 msgid "Scan en cours ..." msgstr "" #: src/translate.c:326 msgid "Scan du support en cours ..." msgstr "" #: src/translate.c:327 msgid "Detail extraction mode expert" msgstr "" #: src/translate.c:328 msgid "Modification des champs" msgstr "" #: src/translate.c:329 msgid "" "\n" "Modification des champs\n" msgstr "" #: src/translate.c:337 src/translate.c:356 src/translate.c:377 #: src/translate.c:389 src/translate.c:400 src/translate.c:408 msgid " Visibilite " msgstr "" #: src/translate.c:338 src/translate.c:357 src/translate.c:378 #: src/translate.c:390 src/translate.c:401 src/translate.c:409 msgid "Nom a gauche" msgstr "" #: src/translate.c:339 src/translate.c:358 src/translate.c:379 #: src/translate.c:391 src/translate.c:402 src/translate.c:410 msgid "Nom au centre" msgstr "" #: src/translate.c:340 src/translate.c:359 src/translate.c:380 #: src/translate.c:392 src/translate.c:403 src/translate.c:411 msgid "Nom a droite" msgstr "" #: src/translate.c:341 msgid "DVD" msgstr "" #: src/translate.c:346 src/translate.c:367 msgid "Wavpack" msgstr "" #: src/translate.c:350 src/translate.c:371 msgid "Musepack" msgstr "" #: src/translate.c:360 msgid "CD" msgstr "" #: src/translate.c:375 msgid "Replaygain" msgstr "" #: src/translate.c:381 msgid "CONVERSIONS" msgstr "" #: src/translate.c:382 msgid "Hertz" msgstr "" #: src/translate.c:383 msgid "New Hertz" msgstr "" #: src/translate.c:384 msgid "Voie" msgstr "" #: src/translate.c:385 msgid "New Voie" msgstr "" #: src/translate.c:386 msgid "Bits" msgstr "" #: src/translate.c:387 msgid "New Bits" msgstr "" #: src/translate.c:393 msgid "WAV" msgstr "" #: src/translate.c:396 msgid "New Bitrate" msgstr "" #: src/translate.c:397 msgid "Size" msgstr "" #: src/translate.c:404 msgid "MP3-OGG" msgstr "" #: src/translate.c:412 msgid "TAGS" msgstr "" #: src/translate.c:413 msgid "Selection globale" msgstr "" #: src/translate.c:414 msgid "Deselection globale" msgstr "" #: src/translate.c:415 msgid "Retour" msgstr "" #: src/translate.c:416 msgid "About X Convert File Audio" msgstr "" #: src/translate.c:417 msgid "Author" msgstr "" #: src/translate.c:418 msgid "Licence" msgstr "" #: src/translate.c:419 msgid " Informations " msgstr "" #: src/translate.c:420 msgid " Machine " msgstr "" #: src/translate.c:421 msgid "Ingenieurs du son\n" msgstr "" #: src/translate.c:422 msgid "" "\n" "Graphisme\n" msgstr "" #: src/translate.c:423 msgid "" "Traduction Anglaise\n" "\n" "\n" msgstr "" #: src/translate.c:424 msgid "" "\n" "Traduction Allemande" msgstr "" #: src/translate.c:425 msgid "" "\n" "Codeur Xcfa" msgstr "" #: src/translate.c:426 msgid "" "\n" "ElementSpeak pour Xcfa " msgstr "" #: src/translate.c:427 msgid "" "\n" "Codeur pages Web" msgstr "" #: src/translate.c:428 msgid "" "\n" "Traduction Italienne" msgstr "" #: src/translate.c:429 msgid "" "\n" "\n" "Pages a visiter\n" msgstr "" #: src/translate.c:430 msgid "Linux On The Root" msgstr "" #: src/translate.c:431 msgid "Frugalware" msgstr "" #: src/translate.c:432 msgid "Road2Mayotte" msgstr "" #: src/translate.c:433 msgid "La Linuxerie" msgstr "" #: src/translate.c:434 msgid "Audioptimisation by Dzef" msgstr "" #: src/translate.c:435 msgid "Tuxfamily" msgstr "" #: src/translate.c:436 msgid "Framasoft" msgstr "" #: src/translate.c:437 msgid "Ekd (EnKoDeur-Mixeur)" msgstr "" #: src/translate.c:438 msgid "Bishop's page" msgstr "" #: src/translate.c:439 msgid "Je suis libre" msgstr "" #: src/translate.c:440 msgid "Debian Multimedia" msgstr "" #: src/translate.c:441 msgid "" "\n" "Forum\n" msgstr "" #: src/translate.c:442 msgid "XCFA Vorstellung " msgstr "" #: src/translate.c:443 msgid "XCFA LinuxForen.de" msgstr "" #: src/translate.c:444 msgid "Forum Xcfa" msgstr "" #: src/translate.c:445 msgid "" "\n" "Documentation\n" msgstr "" #: src/translate.c:446 msgid "Wiki Xcfa par Shankarius" msgstr "" #: src/translate.c:447 msgid "Doc Xcfa par Patachon" msgstr "" #: src/translate.c:448 msgid "Ogg Vorbis explique par Shankarius" msgstr "" #: src/translate.c:449 msgid "La normalisation expliquee par Dzef" msgstr "" #: src/translate.c:450 msgid "Xcfa sur Linux On The Root" msgstr "" #: src/translate.c:451 msgid " Contributions " msgstr "" #: src/translate.c:452 msgid " License " msgstr "" #: src/translate.c:453 msgid "OK" msgstr "" #: src/web.c:173 src/web.c:234 msgid "PAS de navigateur present" msgstr "" #: src/web.c:174 msgid "L'acces au web est impossible car aucun navigateur" msgstr "" #: src/web.c:176 msgid "n'est present dans votre configuration." msgstr "" #: src/web.c:178 msgid "Veuillez installez un navigateur." msgstr "" #: src/web.c:188 msgid "Vous devez ouvrir l'acces internet" msgstr "" #: src/web.c:236 msgid " L'acces au web est impossible car aucun navigateur" msgstr "" #: src/web.c:238 msgid " n'est present dans votre configuration." msgstr "" #: src/web.c:240 msgid " Veuillez installez un navigateur." msgstr "" #: src/web.c:250 msgid "L'application est absente." msgstr "" #: src/web.c:251 msgid "Veuillez installer : " msgstr "" #: src/win_about.c:130 msgid " Xcfa sur le web" msgstr "" #: src/win_about.c:180 msgid "" "\n" "Au tout debut:\n" "\n" "Serres Patrick, Hamann Regis, Fabien Gregis, @Dzef, @alteo_gange, \n" "@Leonux, @zarer, @Shankarius, @bishop, @Ludo, @Patachonf,\n" "... ;-)\n" "\n" "" msgstr "" #: src/win_scan.c:161 msgid "Waiting ..." msgstr "" xcfa-4.3.6/NEWS0000644000175000017500000000001711427113150010056 00000000000000Read ChangeLog xcfa-4.3.6/desktop/0000755000175000017500000000000012224542445011123 500000000000000xcfa-4.3.6/desktop/Makefile.am0000644000175000017500000000023611425076077013105 00000000000000# # desktop/Makefile.am # AUTOMAKE_OPTIONS= gnu desktop_DATA = xcfa-cd.png xcfa.png xcfa.xpm desktopdir = $(datadir)/pixmaps EXTRA_DIST = $(desktop_DATA) xcfa-4.3.6/desktop/xcfa.png0000755000175000017500000000702711025455510012475 00000000000000PNG  IHDR'%k> IDATXytTU՞lĐH@m*7L;jA1ih9ck;}lFc@Q>:Р,ZTR^wJb|ww{v{BJIS%3dPz+ؿfffu[nF<`0^ZBJ Ҡ:4]" |&<# #_g &͹=iiL\0`~6VRizzFq@"ix!\z|n+p(ҥKh !rVCC`H #nEJLlI)hS [m!4ͻBE(]zh=8`P(Q{kjja[4ر(ҥ kׂҩ(-(]Zgb 2/P(#=[nGzEild|oe˖'+j 99pPW? II[4HY2"rgfS\2ٳ(IEۙ}5| wAۥw7î]`6ĉ¶mPY ·UWIBcQz?c6>m hs5t݊+./)%RJPH/O?-/OHKYV&RJ)eEzR%eOKy䈔 ?7Nn1Sw?lܸ1)QϝUu,3;^/?1TVQ>bk+"._< wc#$'G׸\D"h$ƍ;j^we5K_1lpkkN&EBQlMM ~ ۷ÂPUBi)TT@ff{rF?rW۾}Nj3+==00-<RL H;})O3EU{a4"*˗0k:p~ `SVZc VV=~X󂎎aܻtU1r׬a%qH^z <ظ1:zE0.t]ǒ𸪀m)C\I4]dz41-Vߵ)P yaHn:, f'-[`|zHKpF@ `Z3_Ʀ3fMzhf8Ǝ_=Ĝꇔ38NkW} mm`2ECqXt4W=@oORʡ/?d< F‘H\9FsO~֛{C- ԫNaHllľy3sN7&MbxB^\Sy=f=%tꄔ‰GTLDHz*/+~p4躮H)UUͰX,'O3K\Zhv Sf$jG'OKo^qS4嫞%pŲGWf1ˀt]1 칎;#H" 0$$$Mv$ω4G:WO_\k+gZ/n??ݾHN5緿^IXV%##C[m+s~#$oO38;P^{{;8^W^sTWWw:_Za$WD25t=MZZL6ɓ'SE`ݝg˘<ֽ {Z#z Xb%9cUM sOimδqtP_>baҤITTT0uTJKK%Ʀ X?rvS^%g|-Ŕ9q= ^WnxABV( ;LOg;S^^NEE&L ==Hw>k_LOW;iL^IM[8-[`ӦM̟?ф:ދߞJ֥(BbPvڂ{hEQ!??RLl6D5/ܙfSG _j1Y{osEdl.\uuVݑ Pyg'p8j |Z; lfIˠ;:g40#3:;BX ?S+ }Bd`0i.n# h⚙y7$5z#1@ LLII39픆1Ɨ_~ٳkEsEv&q\477SWWɓ'ill~k Aۆ. DdƦ3x{|]gNzE!--U^}9Ao7&󯼜zޠ은%GFοj&W .ӗ_,);.گWKhSZe8u ;} EɴkG*Κ ћLJ̱e{zmp=G@rp1YW~-r^ ?E4|ݲמ;?[bb,|Ra浹sL,>p^|KO^aP)xkELqvvpgmZZA<Θz.7_6CN֯\)||t$jdhdyg-ү y𬓚/[*HJAQ_-d8iɺL@o>4|4hy=iEu\ 3e⴩Q (8V'o+[x>.;P,BW5 X+XLyI<A.4z$H̾Ƶxc|to@! ϗT*ds|#YD1Ɔ+R(u6MӐcb&[?ɍ-['=KұliEhs;]@3L #N%,S^;;E c'ecųOWmK- `JMLBNHrHg6='9bTx}֙7? ~1m H)4bl"**U!T2j߿si#u5Lok\}A|5AFPTlץqkw[}?օOz+׮\(c:M>bL=̼~쵀.304 2U#I% @ Xz55u Mމj!\ǦXЙϱ1)j7\1SN:0E]:ms$dt,B{pjkkp隁tؤb".cK?-Q_c%U(p|yw,g\wWntL"aRdŠFٲi~tTo0xڑ$ 6ml/ϽOL;:xf"2шt^uDXB:a r* _XB `Ѥ!{ bʮˋPn 凩 "9GXN4>OYT1K@X$ LfC7J[gyS究$HQ3CE7ͤf| :. +Ki(@Q M'DTiY4hX8F¤?`W8q/$*ģ&3CXsYߛ2T%p191U"!44B!ƏA޳iX/KӐ4Q tCf՜pʉsmC{#U*WQ$(r/> [dԭk\%Wp1qP@{sO+o%BEx"®͛O6!HǷlٱRF l&C:tTү"db|F6ͼ4S-lٞݞPT i4 G #]႔H']ȻކF}\}Ğm"B $(H h:PaÆ1']rJ-`;I:nVEQ! P*.ALTP>s,@UHRb gy&Pt T),%:a/|IY6  HEA RESq})|Yz=\ֵuĒ%BTv)CG X9@àF)@S5TE75Jt! UtuЕґWO֐N:Ukxjt=#e |zc˦8hzضM\& jh@ "L g jq9e]Ĥ6=D i6|]9 ij`&%yH h_z&O`* BHr\6K&'+ ]>>s#'T,A<% $Iz::{oH6  ib!P$H7īT;7W;W S,֙a=UwCSQ-vf(W]JNm6a]Šz4X$HD# ezzfT*dJ%n'vJTP*S+lSz+/ܳNS" Q1-"N$Ó>%;C {}'zDLᰁ薁*iw9<π"IENDB`xcfa-4.3.6/desktop/Makefile.in0000644000175000017500000002740012224542373013113 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = desktop DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_GEN = $(am__v_GEN_$(V)) am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) am__v_GEN_0 = @echo " GEN " $@; AM_V_at = $(am__v_at_$(V)) am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) am__v_at_0 = @ SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(desktopdir)" DATA = $(desktop_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PREFIX = @INSTALL_PREFIX@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_CFLAGS = @PACKAGE_CFLAGS@ PACKAGE_LIBS = @PACKAGE_LIBS@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ # # desktop/Makefile.am # AUTOMAKE_OPTIONS = gnu desktop_DATA = xcfa-cd.png xcfa.png xcfa.xpm desktopdir = $(datadir)/pixmaps EXTRA_DIST = $(desktop_DATA) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu desktop/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu desktop/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-desktopDATA: $(desktop_DATA) @$(NORMAL_INSTALL) test -z "$(desktopdir)" || $(MKDIR_P) "$(DESTDIR)$(desktopdir)" @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(desktopdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(desktopdir)" || exit $$?; \ done uninstall-desktopDATA: @$(NORMAL_UNINSTALL) @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(desktopdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(desktopdir)" && rm -f $$files tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(desktopdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-desktopDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-desktopDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic distclean \ distclean-generic distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am \ install-desktopDATA install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am uninstall-desktopDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: xcfa-4.3.6/config.rpath0000755000175000017500000004364711400750706011714 00000000000000#! /bin/sh # Output a system dependent set of variables, describing how to set the # run time search path of shared libraries in an executable. # # Copyright 1996-2007 Free Software Foundation, Inc. # Taken from GNU libtool, 2001 # Originally by Gordon Matzigkeit , 1996 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # # The first argument passed to this file is the canonical host specification, # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld # should be set by the caller. # # The set of defined variables is at the end of this script. # Known limitations: # - On IRIX 6.5 with CC="cc", the run time search patch must not be longer # than 256 bytes, otherwise the compiler driver will dump core. The only # known workaround is to choose shorter directory names for the build # directory and/or the installation directory. # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a shrext=.so host="$1" host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` # Code taken from libtool.m4's _LT_CC_BASENAME. for cc_temp in $CC""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`echo "$cc_temp" | sed -e 's%^.*/%%'` # Code taken from libtool.m4's AC_LIBTOOL_PROG_COMPILER_PIC. wl= if test "$GCC" = yes; then wl='-Wl,' else case "$host_os" in aix*) wl='-Wl,' ;; darwin*) case $cc_basename in xlc*) wl='-Wl,' ;; esac ;; mingw* | cygwin* | pw32* | os2*) ;; hpux9* | hpux10* | hpux11*) wl='-Wl,' ;; irix5* | irix6* | nonstopux*) wl='-Wl,' ;; newsos6) ;; linux* | k*bsd*-gnu) case $cc_basename in icc* | ecc*) wl='-Wl,' ;; pgcc | pgf77 | pgf90) wl='-Wl,' ;; ccc*) wl='-Wl,' ;; como) wl='-lopt=' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) wl='-Wl,' ;; esac ;; esac ;; osf3* | osf4* | osf5*) wl='-Wl,' ;; rdos*) ;; solaris*) wl='-Wl,' ;; sunos4*) wl='-Qoption ld ' ;; sysv4 | sysv4.2uw2* | sysv4.3*) wl='-Wl,' ;; sysv4*MP*) ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) wl='-Wl,' ;; unicos*) wl='-Wl,' ;; uts4*) ;; esac fi # Code taken from libtool.m4's AC_LIBTOOL_PROG_LD_SHLIBS. hardcode_libdir_flag_spec= hardcode_libdir_separator= hardcode_direct=no hardcode_minus_L=no case "$host_os" in cygwin* | mingw* | pw32*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs=yes if test "$with_gnu_ld" = yes; then # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. # Unlike libtool, we use -rpath here, not --rpath, since the documented # option of GNU ld is called -rpath, not --rpath. hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' case "$host_os" in aix3* | aix4* | aix5*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs=no fi ;; amigaos*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes # Samuel A. Falvo II reports # that the semantics of dynamic libraries on AmigaOS, at least up # to version 4, is to share data among multiple programs linked # with the same dynamic library. Since this doesn't match the # behavior of shared libraries on other platforms, we cannot use # them. ld_shlibs=no ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; cygwin* | mingw* | pw32*) # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then : else ld_shlibs=no fi ;; interix[3-9]*) hardcode_direct=no hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; gnu* | linux* | k*bsd*-gnu) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; netbsd*) ;; solaris*) if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then ld_shlibs=no elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs=no ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' else ld_shlibs=no fi ;; esac ;; sunos4*) hardcode_direct=yes ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; esac if test "$ld_shlibs" = no; then hardcode_libdir_flag_spec= fi else case "$host_os" in aix3*) # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes if test "$GCC" = yes; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix5*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac fi hardcode_direct=yes hardcode_libdir_separator=':' if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 hardcode_direct=unsupported hardcode_minus_L=yes hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi ;; esac fi # Begin _LT_AC_SYS_LIBPATH_AIX. echo 'int main () { return 0; }' > conftest.c ${CC} ${LDFLAGS} conftest.c -o conftest aix_libpath=`dump -H conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` fi if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib" fi rm -f conftest.c conftest # End _LT_AC_SYS_LIBPATH_AIX. if test "$aix_use_runtimelinking" = yes; then hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' else hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" fi fi ;; amigaos*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes # see comment about different semantics on the GNU ld section ld_shlibs=no ;; bsdi[45]*) ;; cygwin* | mingw* | pw32*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec=' ' libext=lib ;; darwin* | rhapsody*) hardcode_direct=no if test "$GCC" = yes ; then : else case $cc_basename in xlc*) ;; *) ld_shlibs=no ;; esac fi ;; dgux*) hardcode_libdir_flag_spec='-L$libdir' ;; freebsd1*) ld_shlibs=no ;; freebsd2.2*) hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes ;; freebsd2*) hardcode_direct=yes hardcode_minus_L=yes ;; freebsd* | dragonfly*) hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes ;; hpux9*) hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; hpux10*) if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes fi ;; hpux11*) if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: case $host_cpu in hppa*64*|ia64*) hardcode_direct=no ;; *) hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; netbsd*) hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes ;; newsos6) hardcode_direct=yes hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; openbsd*) if test -f /usr/libexec/ld.so; then hardcode_direct=yes if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then hardcode_libdir_flag_spec='${wl}-rpath,$libdir' else case "$host_os" in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) hardcode_libdir_flag_spec='-R$libdir' ;; *) hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; esac fi else ld_shlibs=no fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; osf3*) hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) if test "$GCC" = yes; then hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else # Both cc and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi hardcode_libdir_separator=: ;; solaris*) hardcode_libdir_flag_spec='-R$libdir' ;; sunos4*) hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes ;; sysv4) case $host_vendor in sni) hardcode_direct=yes # is this really true??? ;; siemens) hardcode_direct=no ;; motorola) hardcode_direct=no #Motorola manual says yes, but my tests say they lie ;; esac ;; sysv4.3*) ;; sysv4*MP*) if test -d /usr/nec; then ld_shlibs=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) ;; sysv5* | sco3.2v5* | sco5v6*) hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' hardcode_libdir_separator=':' ;; uts4*) hardcode_libdir_flag_spec='-L$libdir' ;; *) ld_shlibs=no ;; esac fi # Check dynamic linker characteristics # Code taken from libtool.m4's AC_LIBTOOL_SYS_DYNAMIC_LINKER. # Unlike libtool.m4, here we don't care about _all_ names of the library, but # only about the one the linker finds when passed -lNAME. This is the last # element of library_names_spec in libtool.m4, or possibly two of them if the # linker has special search rules. library_names_spec= # the last element of library_names_spec in libtool.m4 libname_spec='lib$name' case "$host_os" in aix3*) library_names_spec='$libname.a' ;; aix4* | aix5*) library_names_spec='$libname$shrext' ;; amigaos*) library_names_spec='$libname.a' ;; beos*) library_names_spec='$libname$shrext' ;; bsdi[45]*) library_names_spec='$libname$shrext' ;; cygwin* | mingw* | pw32*) shrext=.dll library_names_spec='$libname.dll.a $libname.lib' ;; darwin* | rhapsody*) shrext=.dylib library_names_spec='$libname$shrext' ;; dgux*) library_names_spec='$libname$shrext' ;; freebsd1*) ;; freebsd* | dragonfly*) case "$host_os" in freebsd[123]*) library_names_spec='$libname$shrext$versuffix' ;; *) library_names_spec='$libname$shrext' ;; esac ;; gnu*) library_names_spec='$libname$shrext' ;; hpux9* | hpux10* | hpux11*) case $host_cpu in ia64*) shrext=.so ;; hppa*64*) shrext=.sl ;; *) shrext=.sl ;; esac library_names_spec='$libname$shrext' ;; interix[3-9]*) library_names_spec='$libname$shrext' ;; irix5* | irix6* | nonstopux*) library_names_spec='$libname$shrext' case "$host_os" in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= ;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 ;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 ;; *) libsuff= shlibsuff= ;; esac ;; esac ;; linux*oldld* | linux*aout* | linux*coff*) ;; linux* | k*bsd*-gnu) library_names_spec='$libname$shrext' ;; knetbsd*-gnu) library_names_spec='$libname$shrext' ;; netbsd*) library_names_spec='$libname$shrext' ;; newsos6) library_names_spec='$libname$shrext' ;; nto-qnx*) library_names_spec='$libname$shrext' ;; openbsd*) library_names_spec='$libname$shrext$versuffix' ;; os2*) libname_spec='$name' shrext=.dll library_names_spec='$libname.a' ;; osf3* | osf4* | osf5*) library_names_spec='$libname$shrext' ;; rdos*) ;; solaris*) library_names_spec='$libname$shrext' ;; sunos4*) library_names_spec='$libname$shrext$versuffix' ;; sysv4 | sysv4.3*) library_names_spec='$libname$shrext' ;; sysv4*MP*) library_names_spec='$libname$shrext' ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) library_names_spec='$libname$shrext' ;; uts4*) library_names_spec='$libname$shrext' ;; esac sed_quote_subst='s/\(["`$\\]\)/\\\1/g' escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"` shlibext=`echo "$shrext" | sed -e 's,^\.,,'` escaped_libname_spec=`echo "X$libname_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` escaped_library_names_spec=`echo "X$library_names_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` LC_ALL=C sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <&2 exit 1;; esac shift;; -o) chowncmd="$chownprog $2" shift;; -s) stripcmd=$stripprog;; -t) dst_arg=$2 shift;; -T) no_target_directory=true;; --version) echo "$0 $scriptversion"; exit $?;; --) shift break;; -*) echo "$0: invalid option: $1" >&2 exit 1;; *) break;; esac shift done if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dst_arg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dst_arg" shift # fnord fi shift # arg dst_arg=$arg done fi if test $# -eq 0; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call `install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi if test -z "$dir_arg"; then trap '(exit $?); exit' 1 2 13 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. case $mode in # Optimize common cases. *644) cp_umask=133;; *755) cp_umask=22;; *[0-7]) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw='% 200' fi cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; *) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw=,u+rw fi cp_umask=$mode$u_plus_rw;; esac fi for src do # Protect names starting with `-'. case $src in -*) src=./$src;; esac if test -n "$dir_arg"; then dst=$src dstdir=$dst test -d "$dstdir" dstdir_status=$? else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dst_arg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dst_arg # Protect names starting with `-'. case $dst in -*) dst=./$dst;; esac # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test -n "$no_target_directory"; then echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst dst=$dstdir/`basename "$src"` dstdir_status=0 else # Prefer dirname, but fall back on a substitute if dirname fails. dstdir=` (dirname "$dst") 2>/dev/null || expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$dst" : 'X\(//\)[^/]' \| \ X"$dst" : 'X\(//\)$' \| \ X"$dst" : 'X\(/\)' \| . 2>/dev/null || echo X"$dst" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q' ` test -d "$dstdir" dstdir_status=$? fi fi obsolete_mkdir_used=false if test $dstdir_status != 0; then case $posix_mkdir in '') # Create intermediate dirs using mode 755 as modified by the umask. # This is like FreeBSD 'install' as of 1997-10-28. umask=`umask` case $stripcmd.$umask in # Optimize common cases. *[2367][2367]) mkdir_umask=$umask;; .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; *[0-7]) mkdir_umask=`expr $umask + 22 \ - $umask % 100 % 40 + $umask % 20 \ - $umask % 10 % 4 + $umask % 2 `;; *) mkdir_umask=$umask,go-w;; esac # With -d, create the new directory with the user-specified mode. # Otherwise, rely on $mkdir_umask. if test -n "$dir_arg"; then mkdir_mode=-m$mode else mkdir_mode= fi posix_mkdir=false case $umask in *[123567][0-7][0-7]) # POSIX mkdir -p sets u+wx bits regardless of umask, which # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 if (umask $mkdir_umask && exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 then if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # other-writeable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. ls_ld_tmpdir=`ls -ld "$tmpdir"` case $ls_ld_tmpdir in d????-?r-*) different_mode=700;; d????-?--*) different_mode=755;; *) false;; esac && $mkdirprog -m$different_mode -p -- "$tmpdir" && { ls_ld_tmpdir_1=`ls -ld "$tmpdir"` test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" } } then posix_mkdir=: fi rmdir "$tmpdir/d" "$tmpdir" else # Remove any dirs left behind by ancient mkdir implementations. rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null fi trap '' 0;; esac;; esac if $posix_mkdir && ( umask $mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ) then : else # The umask is ridiculous, or mkdir does not conform to POSIX, # or it failed possibly due to a race condition. Create the # directory the slow way, step by step, checking for races as we go. case $dstdir in /*) prefix='/';; -*) prefix='./';; *) prefix='';; esac eval "$initialize_posix_glob" oIFS=$IFS IFS=/ $posix_glob set -f set fnord $dstdir shift $posix_glob set +f IFS=$oIFS prefixes= for d do test -z "$d" && continue prefix=$prefix$d if test -d "$prefix"; then prefixes= else if $posix_mkdir; then (umask=$mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break # Don't fail if two instances are running concurrently. test -d "$prefix" || exit 1 else case $prefix in *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; *) qprefix=$prefix;; esac prefixes="$prefixes '$qprefix'" fi fi prefix=$prefix/ done if test -n "$prefixes"; then # Don't fail if two instances are running concurrently. (umask $mkdir_umask && eval "\$doit_exec \$mkdirprog $prefixes") || test -d "$dstdir" || exit 1 obsolete_mkdir_used=true fi fi fi if test -n "$dir_arg"; then { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 else # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 # Copy the file name to the temp name. (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && # If -C, don't bother to copy if it wouldn't change the file. if $copy_on_change && old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && eval "$initialize_posix_glob" && $posix_glob set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && $posix_glob set +f && test "$old" = "$new" && $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 then rm -f "$dsttmp" else # Rename the file to the real destination. $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. { # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { test ! -f "$dst" || $doit $rmcmd -f "$dst" 2>/dev/null || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } } || { echo "$0: cannot unlink or rename $dst" >&2 (exit 1); exit 1 } } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dst" } fi || exit 1 trap '' 0 fi done # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: xcfa-4.3.6/INSTALL0000644000175000017500000002245011400750713010420 00000000000000Installation Instructions ************************* Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. This file is free documentation; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. Basic Installation ================== Briefly, the shell commands `./configure; make; make install' should configure, build, and install this package. The following more-detailed instructions are generic; see the `README' file for instructions specific to this package. The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses those values to create a `Makefile' in each directory of the package. It may also create one or more `.h' files containing system-dependent definitions. Finally, it creates a shell script `config.status' that you can run in the future to recreate the current configuration, and a file `config.log' containing compiler output (useful mainly for debugging `configure'). It can also use an optional file (typically called `config.cache' and enabled with `--cache-file=config.cache' or simply `-C') that saves the results of its tests to speed up reconfiguring. Caching is disabled by default to prevent problems with accidental use of stale cache files. If you need to do unusual things to compile the package, please try to figure out how `configure' could check whether to do them, and mail diffs or instructions to the address given in the `README' so they can be considered for the next release. If you are using the cache, and at some point `config.cache' contains results you don't want to keep, you may remove or edit it. The file `configure.ac' (or `configure.in') is used to create `configure' by a program called `autoconf'. You need `configure.ac' if you want to change it or regenerate `configure' using a newer version of `autoconf'. The simplest way to compile this package is: 1. `cd' to the directory containing the package's source code and type `./configure' to configure the package for your system. Running `configure' might take a while. While running, it prints some messages telling which features it is checking for. 2. Type `make' to compile the package. 3. Optionally, type `make check' to run any self-tests that come with the package. 4. Type `make install' to install the programs and any data files and documentation. 5. You can remove the program binaries and object files from the source code directory by typing `make clean'. To also remove the files that `configure' created (so you can compile the package for a different kind of computer), type `make distclean'. There is also a `make maintainer-clean' target, but that is intended mainly for the package's developers. If you use it, you may have to get all sorts of other programs in order to regenerate files that came with the distribution. 6. Often, you can also type `make uninstall' to remove the installed files again. Compilers and Options ===================== Some systems require unusual options for compilation or linking that the `configure' script does not know about. Run `./configure --help' for details on some of the pertinent environment variables. You can give `configure' initial values for configuration parameters by setting variables in the command line or in the environment. Here is an example: ./configure CC=c99 CFLAGS=-g LIBS=-lposix *Note Defining Variables::, for more details. Compiling For Multiple Architectures ==================================== You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their own directory. To do this, you can use GNU `make'. `cd' to the directory where you want the object files and executables to go and run the `configure' script. `configure' automatically checks for the source code in the directory that `configure' is in and in `..'. With a non-GNU `make', it is safer to compile the package for one architecture at a time in the source code directory. After you have installed the package for one architecture, use `make distclean' before reconfiguring for another architecture. Installation Names ================== By default, `make install' installs the package's commands under `/usr/local/bin', include files under `/usr/local/include', etc. You can specify an installation prefix other than `/usr/local' by giving `configure' the option `--prefix=PREFIX'. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you pass the option `--exec-prefix=PREFIX' to `configure', the package uses PREFIX as the prefix for installing programs and libraries. Documentation and other data files still use the regular prefix. In addition, if you use an unusual directory layout you can give options like `--bindir=DIR' to specify different values for particular kinds of files. Run `configure --help' for a list of the directories you can set and what kinds of files go in them. If the package supports it, you can cause programs to be installed with an extra prefix or suffix on their names by giving `configure' the option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. Optional Features ================= Some packages pay attention to `--enable-FEATURE' options to `configure', where FEATURE indicates an optional part of the package. They may also pay attention to `--with-PACKAGE' options, where PACKAGE is something like `gnu-as' or `x' (for the X Window System). The `README' should mention any `--enable-' and `--with-' options that the package recognizes. For packages that use the X Window System, `configure' can usually find the X include and library files automatically, but if it doesn't, you can use the `configure' options `--x-includes=DIR' and `--x-libraries=DIR' to specify their locations. Specifying the System Type ========================== There may be some features `configure' cannot figure out automatically, but needs to determine by the type of machine the package will run on. Usually, assuming the package is built to be run on the _same_ architectures, `configure' can figure that out, but if it prints a message saying it cannot guess the machine type, give it the `--build=TYPE' option. TYPE can either be a short name for the system type, such as `sun4', or a canonical name which has the form: CPU-COMPANY-SYSTEM where SYSTEM can have one of these forms: OS KERNEL-OS See the file `config.sub' for the possible values of each field. If `config.sub' isn't included in this package, then this package doesn't need to know the machine type. If you are _building_ compiler tools for cross-compiling, you should use the option `--target=TYPE' to select the type of system they will produce code for. If you want to _use_ a cross compiler, that generates code for a platform different from the build platform, you should specify the "host" platform (i.e., that on which the generated programs will eventually be run) with `--host=TYPE'. Sharing Defaults ================ If you want to set default values for `configure' scripts to share, you can create a site shell script called `config.site' that gives default values for variables like `CC', `cache_file', and `prefix'. `configure' looks for `PREFIX/share/config.site' if it exists, then `PREFIX/etc/config.site' if it exists. Or, you can set the `CONFIG_SITE' environment variable to the location of the site script. A warning: not all `configure' scripts look for a site script. Defining Variables ================== Variables not defined in a site shell script can be set in the environment passed to `configure'. However, some packages may run configure again during the build, and the customized values of these variables may be lost. In order to avoid this problem, you should set them in the `configure' command line, using `VAR=value'. For example: ./configure CC=/usr/local2/bin/gcc causes the specified `gcc' to be used as the C compiler (unless it is overridden in the site shell script). Unfortunately, this technique does not work for `CONFIG_SHELL' due to an Autoconf bug. Until the bug is fixed you can use this workaround: CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash `configure' Invocation ====================== `configure' recognizes the following options to control how it operates. `--help' `-h' Print a summary of the options to `configure', and exit. `--version' `-V' Print the version of Autoconf used to generate the `configure' script, and exit. `--cache-file=FILE' Enable the cache: use and save the results of the tests in FILE, traditionally `config.cache'. FILE defaults to `/dev/null' to disable caching. `--config-cache' `-C' Alias for `--cache-file=config.cache'. `--quiet' `--silent' `-q' Do not print messages saying which checks are being made. To suppress all normal output, redirect it to `/dev/null' (any error messages will still be shown). `--srcdir=DIR' Look for the package's source code in directory DIR. Usually `configure' can determine that directory automatically. `configure' also accepts some other, not widely useful, options. Run `configure --help' for more details. xcfa-4.3.6/depcomp0000755000175000017500000004271311400750713010750 00000000000000#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2007-03-29.01 # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007 Free Software # Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Alexandre Oliva . case $1 in '') echo "$0: No command. Try \`$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by `PROGRAMS ARGS'. object Object file output by `PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputing dependencies. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit $? ;; -v | --v*) echo "depcomp $scriptversion" exit $? ;; esac if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. depfile=${depfile-`echo "$object" | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. ## Unfortunately, FreeBSD c89 acceptance of flags depends upon ## the command line argument order; so add the flags where they ## appear in depend2.am. Note that the slowdown incurred here ## affects only configure: in makefiles, %FASTDEP% shortcuts this. for arg do case $arg in -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; *) set fnord "$@" "$arg" ;; esac shift # fnord shift # $arg done "$@" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ## The second -e expression handles DOS-style file names with drive letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the `deleted header file' problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. tr ' ' ' ' < "$tmpdepfile" | ## Some versions of gcc put a space before the `:'. On the theory ## that the space means something, we add a space to the output as ## well. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like `#:fec' to the end of the # dependency line. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ tr ' ' ' ' >> $depfile echo >> $depfile # The second pass generates a dummy entry for each header file. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> $depfile else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts `$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then tmpdepfile1=$dir$base.u tmpdepfile2=$base.u tmpdepfile3=$dir.libs/$base.u "$@" -Wc,-M else tmpdepfile1=$dir$base.u tmpdepfile2=$dir$base.u tmpdepfile3=$dir$base.u "$@" -M fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then # Each line is of the form `foo.o: dependent.h'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; icc) # Intel's C compiler understands `-MD -MF file'. However on # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c # ICC 7.0 will fill foo.d with something like # foo.o: sub/foo.c # foo.o: sub/foo.h # which is wrong. We want: # sub/foo.o: sub/foo.c # sub/foo.o: sub/foo.h # sub/foo.c: # sub/foo.h: # ICC 7.1 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using \ : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form `foo.o: dependent.h', # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround. sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp2) # The "hp" stanza above does not work with aCC (C++) and HP's ia64 # compilers, which have integrated preprocessors. The correct option # to use with these is +Maked; it writes dependencies to a file named # 'foo.d', which lands next to the object file, wherever that # happens to be. # Much of this is similar to the tru64 case; see comments there. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then tmpdepfile1=$dir$base.d tmpdepfile2=$dir.libs/$base.d "$@" -Wc,+Maked else tmpdepfile1=$dir$base.d tmpdepfile2=$dir$base.d "$@" +Maked fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" # Add `dependent.h:' lines. sed -ne '2,${; s/^ *//; s/ \\*$//; s/$/:/; p;}' "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" "$tmpdepfile2" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in `foo.d' instead, so we check for that too. # Subdirectories are respected. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then # With Tru64 cc, shared objects can also be used to make a # static library. This mechanism is used in libtool 1.4 series to # handle both shared and static libraries in a single compilation. # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. # # With libtool 1.5 this exception was removed, and libtool now # generates 2 separate objects for the 2 libraries. These two # compilations output dependencies in $dir.libs/$base.o.d and # in $dir$base.o.d. We have to check for both files, because # one of the two compilations can be disabled. We should prefer # $dir$base.o.d over $dir.libs/$base.o.d because the latter is # automatically cleaned when .libs/ is deleted, while ignoring # the former would cause a distcleancheck panic. tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 tmpdepfile2=$dir$base.o.d # libtool 1.5 tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 "$@" -Wc,-MD else tmpdepfile1=$dir$base.o.d tmpdepfile2=$dir$base.d tmpdepfile3=$dir$base.d tmpdepfile4=$dir$base.d "$@" -MD fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for `:' # in the target name. This is to cope with DOS-style filenames: # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. "$@" $dashmflag | sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" tr ' ' ' ' < "$tmpdepfile" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # X makedepend shift cleared=no for arg in "$@"; do case $cleared in no) set ""; shift cleared=yes ;; esac case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix="`echo $object | sed 's/^.*\././'`" touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" sed '1,2d' "$tmpdepfile" | tr ' ' ' ' | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o, # because we must use -o when running libtool. "$@" || exit $? IFS=" " for arg do case "$arg" in "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" echo " " >> "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: xcfa-4.3.6/Makefile.in0000644000175000017500000005457312224542373011455 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = . DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(srcdir)/config.h.in \ $(top_srcdir)/configure ABOUT-NLS AUTHORS COPYING ChangeLog \ INSTALL NEWS TODO compile config.guess config.rpath config.sub \ depcomp install-sh missing ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(install_sh) -d CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_GEN = $(am__v_GEN_$(V)) am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) am__v_GEN_0 = @echo " GEN " $@; AM_V_at = $(am__v_at_$(V)) am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) am__v_at_0 = @ SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir dist dist-all distcheck ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ { test ! -d "$(distdir)" \ || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -fr "$(distdir)"; }; } am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best distuninstallcheck_listfiles = find . -type f -print distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PREFIX = @INSTALL_PREFIX@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_CFLAGS = @PACKAGE_CFLAGS@ PACKAGE_LIBS = @PACKAGE_LIBS@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ # # Makefile.am # SUBDIRS = po lib src man pixmaps menu mime glade desktop ACLOCAL_AMFLAGS = -I m4 EXTRA_DIST = config.rpath m4/ChangeLog autogen.sh all: config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: am--refresh: @: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \ $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: $(am__configure_deps) $(am__cd) $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): $(am__aclocal_m4_deps) $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) $(am__aclocal_m4_deps): config.h: stamp-h1 @if test ! -f $@; then \ rm -f stamp-h1; \ $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \ else :; fi stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status @rm -f stamp-h1 cd $(top_builddir) && $(SHELL) ./config.status config.h $(srcdir)/config.h.in: $(am__configure_deps) ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) rm -f stamp-h1 touch $@ distclean-hdr: -rm -f config.h stamp-h1 # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) $(am__remove_distdir) test -d "$(distdir)" || mkdir "$(distdir)" @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done -test -n "$(am__skip_mode_fix)" \ || find "$(distdir)" -type d ! -perm -755 \ -exec chmod u+rwx,go+rx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r "$(distdir)" dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 $(am__remove_distdir) dist-lzma: distdir tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma $(am__remove_distdir) dist-xz: distdir tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz $(am__remove_distdir) dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__remove_distdir) dist-shar: distdir shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__remove_distdir) dist dist-all: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lzma*) \ lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\ *.tar.xz*) \ xz -dc $(distdir).tar.xz | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir); chmod u+w $(distdir) mkdir $(distdir)/_build mkdir $(distdir)/_inst chmod a-w $(distdir) test -d $(distdir)/_build || exit 0; \ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && am__cwd=`pwd` \ && $(am__cd) $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ && cd "$$am__cwd" \ || exit 1 $(am__remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' distuninstallcheck: @$(am__cd) '$(distuninstallcheck_dir)' \ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: check-recursive all-am: Makefile config.h installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -f Makefile distclean-am: clean-am distclean-generic distclean-hdr distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all \ ctags-recursive install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am am--refresh check check-am clean clean-generic \ ctags ctags-recursive dist dist-all dist-bzip2 dist-gzip \ dist-lzma dist-shar dist-tarZ dist-xz dist-zip distcheck \ distclean distclean-generic distclean-hdr distclean-tags \ distcleancheck distdir distuninstallcheck dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags tags-recursive uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: xcfa-4.3.6/config.h.in0000644000175000017500000001642012224542443011416 00000000000000/* config.h.in. Generated from configure.ac by autoheader. */ /* Define to 1 if the `closedir' function returns void instead of `int'. */ #undef CLOSEDIR_VOID /* Define for debug support */ #undef DEBUG /* Define With ansi compilate */ #undef ENABLE_ANSI /* Define for debug gprof support */ #undef ENABLE_DEBUG_PG /* Define for NLS support */ #undef ENABLE_NLS /* Define for enable static libarry */ #undef ENABLE_STATIC_LIBRARY /* Define if you have vte.h in /usr/include/vte-0.0/vte/vte.h */ #undef FILE_ARCH_VTE_H_IS_OK /* Define if you have vte.h in /usr/include/vte/vte.h */ #undef FILE_DEBIAN_VTE_H_IS_OK /* Define if you have vte.h in /usr/include/vte-2.90/vte/vte.h */ #undef FILE_FW_VTE_H_IS_OK /* gettext domain */ #undef GETTEXT_PACKAGE /* Define if you have ALSA installed */ #undef HAVE_ALSA /* Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the CoreFoundation framework. */ #undef HAVE_CFLOCALECOPYCURRENT /* Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in the CoreFoundation framework. */ #undef HAVE_CFPREFERENCESCOPYAPPVALUE /* Define if you have CURL installed */ #undef HAVE_CURL /* Define if the GNU dcgettext() function is already present or preinstalled. */ #undef HAVE_DCGETTEXT /* Define to 1 if you have the header file, and it defines `DIR'. */ #undef HAVE_DIRENT_H /* Define to 1 if you have the `dup2' function. */ #undef HAVE_DUP2 /* Define to 1 if you have the header file. */ #undef HAVE_FCNTL_H /* Define to 1 if you have the `fork' function. */ #undef HAVE_FORK /* Define to 1 if you have the `getcwd' function. */ #undef HAVE_GETCWD /* Define if the GNU gettext() function is already present or preinstalled. */ #undef HAVE_GETTEXT /* Define to 1 if you have the `gettimeofday' function. */ #undef HAVE_GETTIMEOFDAY /* Define if you have the iconv() function and it works. */ #undef HAVE_ICONV /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* Define to 1 if you have the `asound' library (-lasound). */ #undef HAVE_LIBASOUND /* Define to 1 if you have the `curl' library (-lcurl). */ #undef HAVE_LIBCURL /* Define to 1 if you have the header file. */ #undef HAVE_LIBINTL_H /* Define to 1 if you have the `lib' library (-llib). */ #undef HAVE_LIBLIB /* Define to 1 if you have the `pthread' library (-lpthread). */ #undef HAVE_LIBPTHREAD /* Define to 1 if you have the `tag_c' library (-ltag_c). */ #undef HAVE_LIBTAG_C /* Define to 1 if you have the `vte' library (-lvte). */ #undef HAVE_LIBVTE /* Define to 1 if you have the header file. */ #undef HAVE_LOCALE_H /* Define to 1 if `lstat' has the bug that it succeeds when given the zero-length file name argument. */ #undef HAVE_LSTAT_EMPTY_STRING_BUG /* Define to 1 if your system has a GNU libc compatible `malloc' function, and to 0 otherwise. */ #undef HAVE_MALLOC /* Define to 1 if you have the header file. */ #undef HAVE_MATH_H /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H /* Define to 1 if you have the `memset' function. */ #undef HAVE_MEMSET /* Define to 1 if you have the `mkfifo' function. */ #undef HAVE_MKFIFO /* Define to 1 if you have the header file, and it defines `DIR'. */ #undef HAVE_NDIR_H /* Define to 1 if you have the `setlocale' function. */ #undef HAVE_SETLOCALE /* Define to 1 if you have the `socket' function. */ #undef HAVE_SOCKET /* Define to 1 if stdbool.h conforms to C99. */ #undef HAVE_STDBOOL_H /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H /* Define to 1 if you have the `strcasecmp' function. */ #undef HAVE_STRCASECMP /* Define to 1 if you have the `strchr' function. */ #undef HAVE_STRCHR /* Define to 1 if you have the `strdup' function. */ #undef HAVE_STRDUP /* Define to 1 if you have the header file. */ #undef HAVE_STRINGS_H /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H /* Define to 1 if you have the `strncasecmp' function. */ #undef HAVE_STRNCASECMP /* Define to 1 if you have the `strrchr' function. */ #undef HAVE_STRRCHR /* Define to 1 if you have the `strstr' function. */ #undef HAVE_STRSTR /* Define to 1 if you have the `strtoul' function. */ #undef HAVE_STRTOUL /* Define to 1 if you have the header file, and it defines `DIR'. */ #undef HAVE_SYS_DIR_H /* Define to 1 if you have the header file, and it defines `DIR'. */ #undef HAVE_SYS_NDIR_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_SOCKET_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STAT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TIME_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H /* Define to 1 if you have that is POSIX.1 compatible. */ #undef HAVE_SYS_WAIT_H /* Define if you have TAGLIB installed */ #undef HAVE_TAGLIB /* Define to 1 if you have the `uname' function. */ #undef HAVE_UNAME /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H /* Define to 1 if you have the `vfork' function. */ #undef HAVE_VFORK /* Define to 1 if you have the header file. */ #undef HAVE_VFORK_H /* Define if you have VTE installed */ #undef HAVE_VTE /* Define to 1 if `fork' works. */ #undef HAVE_WORKING_FORK /* Define to 1 if `vfork' works. */ #undef HAVE_WORKING_VFORK /* Define to 1 if the system has the type `_Bool'. */ #undef HAVE__BOOL /* define as prefix where xcfa is installed */ #undef INSTALL_PREFIX /* Define to 1 if `lstat' dereferences a symlink specified with a trailing slash. */ #undef LSTAT_FOLLOWS_SLASHED_SYMLINK /* Define to 1 if your C compiler doesn't accept -c and -o together. */ #undef NO_MINUS_C_MINUS_O /* Name of package */ #undef PACKAGE /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT /* Define to the full name of this package. */ #undef PACKAGE_NAME /* define as package name of glade */ #undef PACKAGE_NAME_GLADE /* define as package name of ui */ #undef PACKAGE_NAME_GLADE_UI /* Define to the full name and version of this package. */ #undef PACKAGE_STRING /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME /* Define to the home page for this package. */ #undef PACKAGE_URL /* Define to the version of this package. */ #undef PACKAGE_VERSION /* Define as the return type of signal handlers (`int' or `void'). */ #undef RETSIGTYPE /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS /* Version number of package */ #undef VERSION /* Define to empty if `const' does not conform to ANSI C. */ #undef const /* Define to the type of a signed integer type of width exactly 64 bits if such a type exists and the standard includes do not define it. */ #undef int64_t /* Define to rpl_malloc if the replacement function should be used. */ #undef malloc /* Define to `int' if does not define. */ #undef pid_t /* Define to `unsigned int' if does not define. */ #undef size_t /* Define to `int' if does not define. */ #undef ssize_t /* Define as `fork' if `vfork' does not work. */ #undef vfork xcfa-4.3.6/pixmaps/0000755000175000017500000000000012224542444011132 500000000000000xcfa-4.3.6/pixmaps/Makefile.am0000644000175000017500000000100111604025701013067 00000000000000# # pixmaps/Makefile.am # AUTOMAKE_OPTIONS= gnu pixmaps_DATA = coche.png selected.png coche_exist.png selected_exist.png selected_expert.png selected_expert_exist.png sol.png \ no_play.png not_install.png rpg_piste.png rpg_album.png rpg_effacer.png norm_rpg_wait.png norm_fix.png norm_mix.png norm_peak.png \ normalize2.png trash.png 2ch.png prg-ok.png dbfs-no.png about.png gplv3.png pixmapsdir = $(datadir)/pixmaps/xcfa EXTRA_DIST = $(pixmaps_DATA) uninstall: rm -rf "$(DESTDIR)$(datadir)/pixmaps/xcfa"; xcfa-4.3.6/pixmaps/norm_rpg_wait.png0000755000175000017500000000033110675013504014425 00000000000000PNG  IHDR* pHYs  tIME 7 w#TxIDAT(c֦= 5?UF6\XzUQL CM{X((ȥ3000100^v&R&H|WQ(c\Q(z&#")4wMIENDB`xcfa-4.3.6/pixmaps/not_install.png0000755000175000017500000000020510675013504014104 00000000000000PNG  IHDR Vu\LIDAT(A 0gCU,= R !{RATy JQR 0S;M&Y|\&Y^)IENDB`xcfa-4.3.6/pixmaps/about.png0000755000175000017500000036173011110107276012700 00000000000000PNG  IHDRA@ pHYs   OiCCPPhotoshop ICC profilexڝSgTS=BKKoR RB&*! J!QEEȠQ, !{kּ> H3Q5 B.@ $pd!s#~<<+"x M0B\t8K@zB@F&S`cbP-`'{[! eDh;VEX0fK9-0IWfH  0Q){`##xFW<+*x<$9E[-qWW.(I+6aa@.y24x6_-"bbϫp@t~,/;m%h^ uf@Wp~<5j>{-]cK'Xto(hw?G%fIq^D$.Tʳ?D*A, `6B$BB dr`)B(Ͱ*`/@4Qhp.U=pa( Aa!ڈbX#!H$ ɈQ"K5H1RT UH=r9\F;2G1Q= C7F dt1r=6Ыhڏ>C03l0.B8, c˱" VcϱwE 6wB aAHXLXNH $4 7 Q'"K&b21XH,#/{C7$C2'ITFnR#,4H#dk9, +ȅ3![ b@qS(RjJ4e2AURݨT5ZBRQ4u9̓IKhhitݕNWGw Ljg(gwLӋT071oUX**| J&*/Tު UUT^S}FU3S ԖUPSSg;goT?~YYLOCQ_ cx,!k u5&|v*=9C3J3WRf?qtN (~))4L1e\kXHQG6EYAJ'\'GgSSݧ M=:.kDwn^Loy}/TmG X $ <5qo</QC]@Caaᄑ.ȽJtq]zۯ6iܟ4)Y3sCQ? 0k߬~OCOg#/c/Wװwa>>r><72Y_7ȷOo_C#dz%gA[z|!?:eAAA!h쐭!ΑiP~aa~ 'W?pX15wCsDDDޛg1O9-J5*>.j<74?.fYXXIlK9.*6nl {/]py.,:@LN8A*%w% yg"/6шC\*NH*Mz쑼5y$3,幄'L Lݛ:v m2=:1qB!Mggfvˬen/kY- BTZ(*geWf͉9+̳ې7ᒶKW-X潬j9(xoʿܔĹdff-[n ڴ VE/(ۻCɾUUMfeI?m]Nmq#׹=TR+Gw- 6 U#pDy  :v{vg/jBFS[b[O>zG499?rCd&ˮ/~јѡ򗓿m|x31^VwwO| (hSЧc3- cHRMz%u0`:o_FIDATxWdٞއZۦ97;nH )B/ Co^$` BD)$E $A p8w}m[nv}vfSu#2+3O{O8/xҐm'RJ^8`ݞ߹1%@귋})J %}kSo!Y~~?kR@Iry5$/-]{8^xqs1#sqi%|SǽÌH5)nĄIDVZBOyM3.|'v}:>row3'|JäcP ޤՍc|vcHs/|re5d쵎@;G -Y<&(?{__իENnˍ_=Ce(TJ{)qnXn̹2L g{?x0{e@1=+?̀ JJ4 ȟ]{R417#4\[ SsQKwe',Ht-2@OeEkMY   eA=w:E5(!*4c0cY$ Ωʺg? @0-5?Iƥz &%~챷vxkJK|'K㸸sc?ͳ>N :w?IkKZJZLJ; ߸cX8Lزb2kR Yzk*Zֿpx(IӔ}&ɱK3n:%aK,٘E>8Tiq(_e]~^6EL_ *MB˴E AK6"K; E[yZk)˲al4m.5ciJ`޾cu jTEQ|y#IAfs4ZkJc},B:o+%iF>Sa啐ϻs5*R@[k+!"HXh'ᕍ7}>JAWu?YрO y]Z3,p0+f|487X%e+8 rǏ )a_6:s[c_^ csٙO*裝o^7m0 9`+z' QIm9nXy/eapr+)p\o|O'Y_@amƅE"bN1ƌ2(7Ta{@A?PEym*Edm@+涬D? }`f! #_zn^VhKa*@b-z4M.)`iʲlu0@fbgF3<5]xOԌ}DMO3m@XMD-Ovlt~pkJR:it; n-:XIa`J =}ws?3>IU6ǾzT-*`(I7}/ 0e2}l^7m~'e:GO?qT`^")Of/_Uevunxq} ᪙@Pq̱DT}$Lg̬F-ϗ+JΟml ۥi ۚð hNSگWeY6@-} euMgC9[X[ F5za{s|Ǽ7Cdt$˜F>쉏_^ _s0KaNhk^4Hkt1VZL\{˔/-e0AVe5Xľbϼ*n}lj" Tnھ n^G%}kQe24(J!hjp;E5g RJ|L|`w3/qvr7=v/. 1smٟjGMK/?MVw#%OwS.,Y4 N7P;:^?''4$e%?95"Hֲ;ɉEyq'Hw`]dEXYR:IdIP4~Eu;ر!xv`e1?շsreUMK~6 rv9 -,GOeq0jnkxڭu ,".~BuI.ͭ"g%.k-yQ%FCfirV<8 C)^];) ]_ Z?)4* -Nݝ;8 |>ojՈ;})N^p wS3U;ȫn''%&a Y`5 OvR޹ls^?ſ>/JxB9GiI$YƂ6[/i2)y&C$!T{A;+0jشt_^Jngf풬sQƙX6eh5ㄕP2͎, jT;ґc9<أ, <Ǘ + }^yUHg duބByʻH[KZ`)57ivc/RDky^ϔ]hoZTN Lk&'v_!2t5Гľ<˾i34ǴU֝Ou x jASP R4*q_ ȗN@h3 ٌ^`[b˲sC/N xb34eBU ]q?s,G;I#d}FOL:qrFDi-pi%<;qKS95G%WV#+ۛ^JU&`oRre5dUmmOyLgkl$8E9(?b1]vihH3 c-c88| j6`[4zvf/ST?՘u)eA~6$J[Ǖat {/k[!k>)^΅s4 KA:YKIA+[YE/b9u9,c(jЅ09sZ|9`PĖcE:/Ofxɦ혐Nk[q1 L'_cq82[ NeUgzZSG2[ܴ7N_w3|Vb?N6- GÌoܯf#ul~°3.|=*z*q "Oht<'\9$G#.$IJ$ Y5M))?|4A:͝G9!q5ݠf]j&1  [$*r8|J8?i}۳*&6cd]SmvZ<]\QOs>2\2_y곔GnO`ȶ‡sQY٭Q ]hv'}Ŧ8)Oqf7;UUzQ^?wXwcs`T vBХ:(y!QtmȘ6EliYŋJGQ 퉦fwj6B EQ|w!ᅯaZbz9̰Sgom V;~nz=V x'a@~NiJCIG(IaٟlApvIyl,`k7//S<WYlpxk̙`wi0Ghx2ᣟ|[[[yA$L'ʼZMGHH$pP,o3$, ?=$2E}F= aQv2 rŠ(ҸvkI  bL4@9TnnSCnu0HO jc5T?V9Z'[.z =y,RnKM-h)?G>+n7"SOO{0|AsaZʦU9sm )m .1SG O/M9 gc@j-+wΝy>HJP/A:LJǭ㙪*ujӽt1ys#cfs|`Bx"^ž#q\Zރo ɲrޢ( `Jí=q[HSpvwx?Ν;YNjV`t/}|H*kEQ"6Pq+0Lz1BG$K/r>_Rr^gUOkHK(7 0s$eխ!$' fP{M;>= e@@2Mt:m5GbE}Y}דZ ˨*y{-1}F&~/cy -ā㙷IəXq۽ÜW7 U`Z'AjhJOrF|SVB>~8lG4f4MɃ{{;ce{8e.?y2gu4F` <1`A Ja1Xr[ſBЙwK_񭤨f47u}l[Z8LiO _QRx}c^XyQ<*B0uCԮ_x'J %BV@uk|!Vv;iXQ3(/㦍p i֔ \ HmmP}wermB|f[{i^o;iaJ84f|ص"fw|VcfƋw/VQVZ}Nx,cQwo›k4!I,qAP2OXb>|GjOYQ>hѺ}o0l,)zO s0NVFnjA\ VD X 蹾GXZzY3is'Zv= Ii?_~kmwtU>L4k]iX<| e5[5|s/#*@p[Wlf{Ӓk&--^ ,;\|%Ν\RY\ 4e<3=`gz9&_Y.uɝՎp4Lxx{D#Ee'& a?SBg/@~_4 *tGKDd'!B*m!RaI*!2E BxNx8!$a97Hx5<ȳn掻'kGmg\p^A 1?ǗlkkQkuv'm@kKiQ8 :iZùYh?w +1md-ĞӒI9:k=e|xHoQ%Ξ'|@q;u<ZEA9?"ʷ2ܙ>(1:/@ra w~#i% I{|{ܽ{,-4ɊLt;].\Mo |ܛj.4H5g{clw ϺD*窜]O c&Qkͺ*/ ~@/rqyUNBWГUbfPc&nw=j*B6{R4Mr1Y-/_dɩY1"V ê+l d% <(U5rp8k8<% |0nCOA{ޜT6ϋ/f,g븹u{Ӓin6 (Dw+#_3У$Mtr1 iU5$uf׋-3)R¹0Z8poH`0^ynsL  Z.}bO"јh7H]~rsoq_`"?~41e(9se[wpw^}*KK}IAЫ~[)^XB/d;\A>uc/Iy:6[-E?jĸYlP؏vZp> y* /fx$OcN=OGch[u]J i t)@z{&e1)̯.Qۋ^IU-ZZ6KImgeCӲ*hr( HG)#\`V" d SGmO58kгvt]8n拆ruI _64~vl鍽I *!%ӽo]?3IvW-v_ X<sV;&9G-̰*J?3m.LrsbvaW#+c_HM9ݼcLJC1W]c`)N}қWx k2pXaGj|p{ʅ_>lo=`bOyxgz;XNp 3ȸ|O/0~d^PƘ< 0c 4*M`ZTxIsPz[|~XY3 yJEUf?˛qnOa_: x1yZie;v@۪\K@I')IY89'PƘ9r;^>eY665ʲ ۯvYn'y;ϕi,gf^j`UJ>†Ґ)M ΚTXw-_j T4'y.} /Dx3t=P2 :f8w:OAeP6]wxםÌrޣ\wuV+i)mĄ^%43O9.QE0t0(:GTlM-~"Wrpnvn8C>bɑ'#ل"8_gΝi=̕~$;sq~5KdɔMHOLʔ._׸qm՘XQyƍmB5?= 8}Ƃ^k9θh<17O_Ǎ2-m{T5к1JKC? ~'BN?,k\Ie'NU6 X'C \٥87HD֪7mGi ֤iz,ZA5k.Ƃ5#$Iw=6H>Uo[D3Է/wTTimJuxzB U)IK %HUQKEU,X . s/upgsǴ2MRckO)V^Xk*&k̿ɒ;8jeBF?rs?͖$7xR $TjRV6T塇g-+]qa1*%󈢘%S.^` :8D.s%GC E6a0d6W_:G vغ >܊O7"c9VhmXbJ]">CINoeÃ]^ܤ׉Y_*Htbx`X?ǫΒisݣ3Ş> w[a|{.;)>lsfx0Tg{8*E۪84tb%RTpk|be˲nנSxgٌgLNnt"MFf%!-kYN>_YY=Ki 7o|t:>~{,w$e6egwՕ5ƅd2(MB(S:qHS$'+4$zg_CZ$Z˒{ y^oȊQ>c\%0)2 # }EeBN?; ,/Hw._ӌG;UOo|D r}% wCx>"ꡢz>tKQt%:0t$tWqssY^akNC|*88s,t:s>aR&L*~hѠjSg->)Tݟ=jK Ϯ)뇊qg`(|I]a -:@*vilYH jAi3tE4GbRi&d%0T,XA:IRy>qL#FeYZ9'"pBy2QQH܉NDX4vxiص@ }s*dmZs5lP:_ Ć(1YU0ӑV,vAh'ǃb%gzzh'ЙLao B`pxT䂝bNłcmپS14]J?ЙyA)v|G w=WESs$-؝qJFY֢(ѐ3"J2ϸ{b@RVSJyx~xRc?2gg>6G39q_@`σvBý,B<{{X]_w#MS{1Ǚ:ǭEP` ݘ\ҹe&ݭOW_a8<*]}ϮlWV"sk֨Ж~?(xk?jǻ R2'Y m??P-> ut֩I<Eeu?bg.*/= llO^ZGb%;IZ)Puo|j-)e3PՓ}1q7^u\[uV۪ Qyꈪy +]~?nʎuWq姓X'O}=~Z_:@fv՝vjƥ z8x_('ݤ'FcY̵hBvT'< cKRVvxDl4\dtWUle<3?bP0dqsRvܧ~}~ݑ"Tp.iO?9;{?֙$ x2o?~1_evwwxSlPafeP,%HRg}PC *~rW߼NX݈뽀γmsɚi kV wF(xز{{`'c4Iȳ2KH w Ç :1Q!;x(ȲdBiBeLvK.;[`h0F)8/Ɲw10YZ^~1:8`Dde X] .`x/-qL:]'ic/Gp;ĝÏ~h!w W:ڗ˫K&C_J.\ rbrNKFgwREiMv<VE]1Qsm7mFr޳{#["A-@o8Z9=FH'9[ib@WUzR hRpD0:@kÚ7%Kroާ/sӜCס+5T';;ϚcFV&Xzqppˤ:aV!- yi(Jtg4LYĿ8K/$/X @ٝ6S_\lۇf ;w%ats^u"O3 )X HKr{K;Dhu}%ݮkՍHٗ<^T=t 2t;k?ZϟlhBYOKPi!!G?r}iyclڴ%k-Ӑ,)p7_FKMYA.K<#NYʍOSC ځkKko| ? yMFO}{}Bη~s+OqHQ-z= 䓏>$"BCD)-Mt`E  }3U Ee%YR UȅK׹N2JԔJeX$9v|& INћuiijdHX?0!A8S <kO̟Z =ni^ǹ\Gm a;Ic^RX;L;rȶ(v6aR6Ų;sXW-g6p/ bRSPKSeIy$V g -uQN\E̴2Rm0s2,VY4MTS5V6Xj?ngR7z|^׭A•.A`ʥ.ulvfn9ۛA זF^͙K];i5M55ԹR~"(_P$cX6ùP%8Eb!(_ƙai%P$+ ASoϝÔ&w%\Xw:Q탌6-QOǍvI+Hqڒnƛ}bOp3IXYr1 t"m^/7rH/pY)潶cAtPJq |W btI|sPJJuK,d8!BI1F z*.^e6Μ0M'yƽwyw[_e]&Y22Hbif4Ƃ{SX \GGΑ+W Ã1I@. uٿ=!d~sD |) ['t76vζ&tXNKt2?8k4?[LE8T?&gQ1el5i,ڼNK4ϭﯟ/S?U F,xXL_T.Z[Rj3ھ?J`B|'":}'$7C)5fm'IM)EJqpWw h:S0e}P^\ y`):@pZ =:4i+3̺qdkkQht'>@~l\[gX_=.>x*g;6C8CTu+-& @zj6q05WIJ[XRhtJc8_UEV (uIYj!C>8k= +K\|m4$4.p'#_x8[+k\z=0HMӏ;}zn֥*=Gb+^IYaϢ@RỂ$(-q0GsM4ufItOgGvs zX{N#8.z?u؎|&f+Piy.Y,S 4 GLiZ]ƪG8RfTUe A.RyجfwTno_vZX Omլqq") t::^LbbvMdd2!I9D TY'H!Y Cw;L پA)c%XՉi%㝔o]7ƃaNIz:1Jgr_P4F]gFwwgnˑG=Viɼ>+C (W -mTUZ8V;]_=*O)ZY񃀥U>d4ׯZ,#) woiC`-PH'X〭mlJoշF pw`#"S:kϮ%=|trpC\X(MAnLCTASY4'Kr>,--5mT=͝j0($g}ǰP@9X 4)/$*z%u>X wTs}luk,hBW0*M`"rE/:#CzkzD+>yӀ՗ ֧\s3D|YÿqRW%TlO4IXOEmJpZ3uu\Wâr{T.~~%X T8 T3Bi69`멿Q!ZF%)JVbɥ e'= 4&/P.]d,9>זqI/THQ[[vm3,Avt{~Pou+XaPhrZ8ڏ@rb-t5#ǵ O3{?y^~յ_X&n:0lmoq({.+ ֒%)!J;݀D gWY_]ZC9>)IhNx8grsXKLYvxtl/uY(׉)8eZk#O"Fc4tb&KUYssrqga`y5WpoPгnu3A- 1DL<.(Js8m#E]8J<5 ae+<nǜ}aYYRcwopa@8S:Bu,{\X/b{^+1@Z&J.,1v:aj!_ Al ZtbiIƹ8_8`0-I*v'>I;gmAb]ueA~{JޚN 'j _ӏ?Fk^[hJ]uaHfĖ_xaYLJ`80wI Mwsdyy{( ),JI,!PH1:wQu^~/k' 8kNb\cCISC:[deYFL׫|n ѣlYΑ&rJ61x \Z k˕n139/7c،h}eLY]dmIfi`̊oPͳSiCr nHfcdZV ҲԒ >258_Ӟ V/Ǝ: <=-R]QSyb$@X9m9:A7>坴?m癴`J_V<ݠrE}ZJaJ[OK_5AP $T*J%ixЋ)_kۘ^:; =ul=I)yD?\Q+iFnxZl>ȚR~RKDH=1M3^?S=Nϲ]Ns,{Vv% U}BʀN=Ǥ0fz&fXQaL'ƿ/U`N rq$'N q)B4㓏~/-<:4+,Ռ(FK b:#OY{dm+g1|WdO`Enԫ,EA ٴ_  l ϵ 54g'\\}v#,~qtOI|l\Qm{c^ݨ{\f]ZSα3YldiJ ) Τ\b!t:C6t;`ag%V*؛s-PD̲n&:C"wv|a<p<@KOzӂ*ܗœ(`T T4ge IWw)Ȳ1W-z,U:rˬAO/hRO6m]-kw{:.}guPzUC,-^n l,|j@r(js-76}V檉|_3%$#8z.5hL,X> _(`Ƣ$xCP!1N#@ Jz`Evͳ+ӌqqBƒ}0YF'p+lr%Jy'Cnm믳"II7RTIe{eH,s8,@2NF&"ܱÈ77l\]nx<5[T/FP%{Kfq0񶘟OK\#Gso]l?sx@!6w(l5Tɲyآ@+>_:?ÿ͍ѷ ?`0h&z8Q<:fvca幧HmCevDӽgeAq05'Z:|V$~+je٩V,-8xfzB2!ȞhlUA56s[JzZPu~vf,G񳃩\WӰ@?~8Ra؀zYTHq8Goξ1ZcgJIыlϭDx{?k@i3(O ng|su0CI֨`)؞N5$% 7# T3R_vuH z~ڶ, J zDh'u<žDJ<-["f )0aDw)z9<c|U=^8'+SinHˀ4r&_}|*~iKvvvJ1u.(#,kk+!fmm0$K& RPA)S,P:BqR%z=׿zȍg6": Q>*t: n (?ϡ͞Bkͣa啊qq3.ɣϨ;h]9Hs<%2$ KY6w`3x?):@3;ŚVHzSz}~;C^ LsMʕ_&0ԂtBOb#wU0ObhC$;wRZ]ٳщ];.Yn؝4d%TеNO5:Ar }(8E4@R:d$f'g݁Pr% jw80BC@9z+gUBߛ{'nmiT‡Âb,W ?uY aeI5Z츗Z_JXkvZyE\^ہI%^`b_kKi,]Â~U3<$siM í'3:uY;$0ɾz0:u@hT`O1~(aIQǔÎeVBe)EIIZtS]"gb %OGeD''*I-(ܔX53 ortW69OL)իtwop2$gɏN";%K)DB8wdSb_V>AVʘh]5T.y% Jl~Ȋwז_l'eIY(KXWI^gXqDVEc+ Q(v |=+u$ճ_;#!v/U9΀Ab$ē^D;\O8A "DAi@cs$CGlIOeZ^7Ӧwhb_)t|Ʊ5*ZEJ"gP?-v/!lt}{o@3-݃7ΞMP0]0rۈS<%az2ThovFm/`2𿠣b%˪2+K%\zw . ]{&fG%^ Ya>p9t[\xlK,'Ȳe6ϮsCB"u(Q`\JFL2 #t_p5MRqd:OG# (1N΁p qfg&Y<8P{-V,%3dJɔd:?| Ƹ6{ | ą"SܽO(H ݙZH˿pN!O.oQNX:LPFe?s,3#`S()8e^Rn,O4kj>Kiڮ6k_{q;fkIQU 3Cgع'Z0X\F^m0t_u-Ѩ#eX7]VRɲoYjTˬ`?8Aa@Pϋǽi8 #(hJJG^X~8i2r,Kɳt:%MKN8{lsQ f6ƖP"C8ʋc NBlqw_ {fh-JVZ@:Pґ>ʙ\*(),f,9+#]\ˑe/m%oE^9v]iшfڥu8%tÓ49fV*gi(b..mݟ@[&PKJP}{JƥGL2$<3k 'j oj91\deqH_JRATܛZk+?kXa(MJ_ALJ=>~PXA5זĖaٞN;͂(qb' G{_=< $%foR<{?\Y q݃uOC_s=0l!P>mz Lk7?7yce<0+y K`k\N$-L<ΝY΍P{|)0"){<}FSN` E.W^FF!j)a)98'L0yK8 Uz_,<Ǎb?J(n޽v~q07zY1nc`e i>E1`=UKw|gitȊ7[ {˫<qF1رI- zl0$ _U LI<5{|+{uAg=!)V5]!"A9%|ZHsj;'ҧlJFh+I"9x8 ڈg{YT}c Ga %NHlo\y$0Ծ_̓GT>Y ^8$'P6LAբmN/k"ByA'+0$s<%r./ +POj"3\E_ 9I2 FCnݾYf}yHJS5^/1eMXU ,I، &7!|GޙPL'%q#U @ZauHJp%(=5IegPx*(!U+/pW7+OPg"X=NԬiǻ ƙ!a:F3P$EGbvn7'v{Z\@-~) (IǓvw$"CyˁAg9ôf}@YuY[;Cv,-wX\”1&e6pH&vwz2ƒ{(>*gΟ)7oePߵmRѺ]?ov_=Xy(KJ]%:~~eaE*ߣ=ԷkR,}+zQ1X~:ƎWuqm5$$d1r=@ `)R=R߫\\\bQZr3H5K^Rɵe@s}ݒPzl]M;s (qX;b&p(6=Z{LkNÔ<y;VJG8繹Z| #=ERSۑQN!dLٷ?ď9j5/eńșuRySw;k7@/x8 121Q:xhm1U.^l%j4>oJ@VҥVU^nc90ְ7)L8,2|_]f%a .%N(TqWLS98kow))Ray-dcszK9J?!/=6np FCx{=_<*pBWKg0.e0\f/+™KqtpnBX!ܽrMQQN,J_Eo1>2ՂJҁ G RV6A" 7#/ .J_be;4A8Lz2 TEWBc sqib#Ř*@q5V,EO2:3 8cp1 ԣQ ;PV#QAcy}M̕O*vKg&Bo#[}/Kajε&R5˻W: I(r2Gk;keV"*H(TMTQ gG%'r,prӒP:Xkף*-0dfN936HdiJ??!,I 7ޣGw3,ՐWOv0l_d@'H:qmurΈ;/#y%aBAý}urc%,V|~~p̤x>4,D.Nj w4J.Jdd%|Or2%b gc&W9(Vmqk)o_=o/~t?s,kWH8a*C9g!hM:GGJcvL ]ӹifJ_c}Rd]ile`Yϳ6rh4jZj;V{ |ܨ'Y`jAqÜHXW%/cƷr(,}{\}\x1-p-z;~r>?dhQdSv>=!h8 c:8&Jo2MfDf)YPZZFtŬ5PajbH<%XVչL gVW΄<LKǕ~N7X|_ ,|OU?ii3aRǢ>,'&s#095 +B X?:STL;3P]pZܜkNpChYJXkB=.R+Zklž2fZdA4|iv.Rj''ŌXc᣺_K~xlYN: )+-HAȝ|`;Xʇ>8Q%\:w|_C9",I.~'~<ѡ, 3o7naBR1S˜t&8YNYJ47[_awϑN$.?} V%L;X"Ht)Gdɣ]./чy o)Y%&I8waw#. X]U* N;1 *Mp4UB5XBJidHJa5:p!ڔh%D@d'k`0 Hn;W pn,qIf,Pg=C59XLai-!87O˹蝓5yl)IBAH˂hC5A/+5@ud2a20&L y6ƎOoqDQŤcbtZM҂TW PnTQf\V4ȗ\X\[_is߹Q~(ӌZb>Kxu#fOKGM.d}] }R@8)kQ5bQ:IoΤ@H'-F% q| bm6kQ2T"B |<u{n|^B"id> TIf̕{Ky. vMFQB-0BZؕGu1Ȳ4"(*+?bkmV3!ZC?@tp+:?9 {[ W68C_BH+9X 9TiLZb9D:$ѱJTG Do 8N1ACM^q41LI8VjѤ$NrB sd[Z3'\:yid)/)y\fs3S LqGa\kG^$It:e4([u5j0  @ޏxb+,C {^PhG  =|%&ê=/;l*9@UƔlr?*&+sW$)$egRl| (O'e9XtrqoK+1QX 4WVϜP|1w1i\+%eʱ aF!àR'W1DG%1v'KcF+tsTf,ooVC,+='& O,0jhr/gbVR9窎2) `#=}7I`2I_y?W7yJGl,l䜻 w~̒Հ݃~ސ;\8u|;ª#ACyKG5W/ {!"GYxϵ}{ܾ1&X$q":̉+ux%lɹy.m01ʛ-)_;X`St,*Y}E xX㓌r9\%oYcpkyZdts)a/㑛GaWͱեN%?IY~'\Ȍ%ZVWwOr\#3f0f.v,f;3==-ZΪJ#<\?qx=<"#"ZbYVD{?s|'smG+2y8 s%2pOw` }Bv;=#TQ^"'-t3V:x ?5xх~%h4) C4I 7E)ӠGU¨c|q'=(%g+ KamrF[*k&;;{ YRqPa5VEKt(" ҏȕaSck'$Y8JD ՙru׺!F&)UijA1+mu!>qi1:LnUhz5J ,O ~ʠf*M$nv `n^0Z!%14bd}Cq0i@X S%f$Te^) (Hj &h7{=&T$z|I?)z;zA/M^dY6@ch00C'SRFqREWJTGmJUbꕈAIR#:O+VEG%P8*7evpZT/J0s)+H%@y13eRqUL{N9nqWV"Dp9Q&ק?xMqJA%d&?AMlt*cgp q\hi-C,Ҽ$>ysa%{,1k,_\O?}^x: gihUl|WAf쐹d&9 s_9{p!eAǃ tg |BxeI|h` 5[%9~BsV!f}nBmf0r,/ℨ.qTCMȲ5TQԋC}PӬlt#OyyyZ4Ȕx8>592QT_!:UF H9$;*S,MKdN15-ę\$iztG0r9<@ ҆AMrr/ Iԣ*" %}Pv ;fƢp8@шa:M"{Pj $*"DqDӨըUbD0_ƨhDXgЖ0TJPAz\xj?';xz+* j6{-|g͟^c~Ψy|{zXxeN#} ;JU. Ing8!ZТY_ﰻ~@2rr`ey 7CҚH" y0H˗"385}֊@xsB^7](8waG"H2Fi2->/++u drXДE/;փ )5('yV!a넒$_ [5!!>MxjyȍA,+Ɖc+qP0{BlDҝDҪ8qtdX ]@jaA@! Jy+pBȼ:ckYn o<0vZܬJx؎ajxsG x;75wF󭐭^v$ Af'~%`(4O#ֳ݁%j oI7۩Ho8V /~<!f T^C>AyFdY6a0&`vBt!^> 6&ɳk>/َ1v16`QFniMoֺ 3cVU:C[lXI<.:-wx-j5,6.a%ڷ6Ϭ,Ԗ2?};&WKh=m\"xpHEjX[$qQвs 6:ܺM Z8or^ϠT3VͦOP3| K_}ogb('c`gs9BiVBZ￿ b]#I* ΘӼ W. >k-%#TtQL̈4q."OREmM9 {[p,&v۰7;|96 6IcAΐjB84M'9YItXlvzf>Y$G[HnƂlIO=Xy,I,VM2xAU& LI$2bKf b$<}d-^syd%NZBMΏ= ρUdرJhy1I 3S-ډh47$ X2(dH&=RJlXa6hU5@j¸B;i5C2&gWjp۝d"`mG/~jYk&: $wG$|zfnn_ӭVj;}segIio'sP &T]O5#^EI,(wlvSW 78m ZO_v0c4HX`01>T B-vvW`)y^4K lQ.ލW#xl6N*zƐR:BT}8`7:\i@ 9 VW+!iP":y0[UAv+3.rw9rb"ȓ> 0ZFC7l=dFYFӣ5['M2gw?yn=@P̈YlƬƇٟ>˼!7 i 3\%!Lt4bb0BgO^C򥯄|جƹ>€H\!q[\x瑺`ݕ%\DkBI-cZ-BXE:+=x)83KTu[y+K&]•J%9?"jF%IOx<e#ah3edIOG(cY Ba{Q0 :jpUu$O\"0ܤl3,ٗJJ4ւLPQܗ*KĞȢ _as̱YJKͭq*'XÜBzaͮHF,c-L ˨zeSoN',oB 4^cSCً10^x"%z[f0q ˡr )ٸC_6.ˆJ+=JJVeǘ+4;'Zg`uFGӘ﮳ݧR 2H|NzƹK@Hq!X"dGܸ66ޏ64* 5/l!^hrE7,^![ дrbgfւRD!ތHODr?ђeFBIf2C*[j+7hsVrvӀ,X2@iwAjE,Oזq@9OaеB)T0< DQ1XzH).g?"͊2zD?:PhԎ|nztb9'H [8RW P,,TO;Բ͸?Q,1fM &7sρHPR"Ai4n`͝AJ3xlHrřAHr(s,d".OɈ ڥN, QI& 5h4j5(ªv҅0Ȏ"˥zQXlOl ͡D O%l J̋`]⦖M@ݢ\5S'zS3FpaJ|dfQ5;)۽]34Bi*&#0gkftGac-X?XbbHxZ>̱ؑ=p4]-J[B3F!b@ p6Sx8Vfyg=LZA/82CBah!欦Q,ԣ-Ai-P19ܻ?_cgG8O\i`m8ę<HacUsv=uZ3|t;9 fHi&&J, y2LF[gO2H<_|345,iY/% 6 ܖ$Chh4gb  ^ga6.Le=Y\ R/+x1Dyl#bN~冄ҵaB\FEFUyk3+O"~d~b=*ً.c|:y Σk' SpsTXGk'lp;kO5LF;K"Mq"Kij TV:ď zX>w{϶RUzNBT& Gj<#bYIؔp%!Z;i=.7=QR1,'Z)K3t-gkcL&dy)M*<'1TéP *dD8AG,m-(R̬~zRݹbR68NŊdQ /V)B>[ z$ O(2Y/VJ'b>} dhJO;Dv |?T8Gd):Y{+&J_V/S:>LRHTY!DLϸ>f;̐:G UI&GBiwF K=ٖѬpq>W[i~q)fvן篿zik >^Uj5C*FiN#jdŇkgWQ1wj ^Gp)ȝ#F)s[떧ϳ%~嘯~"]c.D&@&ɨ~/%)Nbk!K^{m@ai ڐ(6c"# c [[ UUg=b{ς*{{eM#Ԁ0 '5scE $Pݵ3a~xcgw{B'1y\DUj5**&*I` "ɸ ? >6{'c?8)4w?0G͇;#kO!QdO* b_y)Þhn!s[9PA hhxOxy!DqLGդȸ03 mtS/@|)άg&kƚQ?0[sMB>1,GBwkK* [$Ax_RO!Y^+Mp,a[IW eI@NA0_ rQz,vn@xOR'٫$KW**)+KUfFnAAj iw?qе*z KW@'^V`oz##p:'OA:6H7`u!`a4u>u]Ke)B0'l|NJ(:2K<;iJ.q[X6NOB芑#_\ی dLaG7쥒ar4Nw>J0c_֍K[Ž3\p>NWqh : ;\Y'$yg\8aqx TP6kI#1-<|w C'9)Z FculOe" q*8-R0 !<)t@X0*~@O~y8_o$@.ГҢ((Z2 qZ4p߱x.ƋĭVMdlt^Ӝ_ 1._U#sґd8ln}3ݏYrK,^lll/F$o9ڽ1) VT;賰3 vҐx׾y݈`yFd-BU%nԅT0uloH=>p\xTeu0AD8S'T[ZP@)9b-$zN3)=f%JzLQrg [A)&AEb{v3tigcL@1bYMk=`eU2 BBfxY,:st;)e ;@ /WYǻE{^!Ms# %~Ę!C_ !Kۻ _<hN*C[)wՃttFj@7-$yZL #7y\4 6b28n*0M0wKT3\=Ņ>{5uQ#F~ q"`!fkw|-k_[wypsbQv(*awF^? +TfCڟ`|c *OX\U\2̬C)8\@g#jWc"wdz0!h2lJ``o'dBUw(I3RQV -did^_3 F"Mt Y='҃5B:UVWf0 ޣpNPt{Ź&I",կHHǹ:{k :vȭ[9?aGXyNd~0Q K=w 8?-y茉&/0s?HXm;?oCO3,B"G%9䚅0;b=.p@$,H~L>&,d.Id),rڙZEXz)Б!*2T"!"$UI`# t"0l{fȺ;a&' A]tؑ38i&Ldpnx;#;>:msRq^[~xbXf8] NMIy#k H*4ZxR0\R \Q=# O>eyܴϴI'`^u~ 1nJuIAΥ/da&æ=KQC>bת|tõk^ /x.=]ZϩAub<` %IG00ߺAJKLP+`iR` i!qN?7}X\QTfc6^%[KDvE{߰vk[9Y{X,O\B:7.թ.!.I \}U?"C8J|c;=2Ё %L fJVGP~7#M ?ܥQE_ybROĉz 2˭3щizEJq%wInk qQWsfbj%. R(uX^;f2 Җ`48%? % 2xEv5l3Ηe_ AP!>AD#T^Ј`.tdD!䂨DHt urQ% )H!uPrVoIBJ累VYy<Fc" 㬝DWؒБclƘk)-dxaL'BObߑ)KHk+Hwh^i #:KRai9BʉT۸,amҘ?)ZDqD흔z҂KLAyw),.sġc.]Zw;=Å //}TM3+05  SS;t#byɲ(h"ffZ<sjAF<ƚaqk]`!267y.^&7osUz}G"|k?g_ Ufso %=BH:mB*Ēg 2L/UݒAV@N$CA@rq)`w (!ڢeٚSL>UEF)ѽ8BXjF7n>Ij}q'gW.t:#sd+;f`tDg& HC:tY+a'u~ҔcgьOZ|~LtSLEIYnSRb RDA|#$TۗkhaZC'NiT%H^SƜ”+DzrCSjVaIk(a& HRꒁ|C5Zr4lze+YJa$1@4Il$cϔq9df-}gh]-|2I?h֟-Ε:9;6%rN=JYgVbDr8f}"wy`1FD@f۳Ldgͣ ϗ,Ӱ be~M47(s|F5DZ@Ge$!ph4"Ibuqf%U d&¡k|yV/x{m^yu+OYm^]ןj>aN-%nP x`y*JuѶG( FnBij^c7$6Q\$y^k3*R,RwG̯̒ؐ5oט |ƭ7QҐMɰm̋7J6 G ]-c)E- 0el|P D7#7 [jAưWG_T\ϻ\q.qjN׳\R( PdaU}z|y vp|V翢1z-XCu(g7c[S~;Ǐ?=,g|&e)ca*R+~p34y T6ε< -`2/Y{(? M3T1 ✌v~v1qpёaЬW xzD C<= `cE%IN sdh'1,ȋ =):d&DI֖LOvigzYqX돶idGd8a&"%uGG8~>?y?E_; U:ؿؼX+YHyɘ!<-[,+Ơ,vэ%cEǚ81eW[Qs}}!}L^a<`4R)s3|У VL -SJqApQAd++3̝>ֻ=͟o/3WQeDK >|6Cmχk3tF5Vto1⩥ gobԸtaC!CK'!;}JLz [_w\[t7|e^7/???K /W,C!i4jTkUQ-{uGVxy6w0X6R.8P,M,lnF:%t ȝgUnbt d1qa&&PrTX@&%YF/%*PuDJ%ԂaiIb,RRd,0? rlY`!*$e-;DpAXdԣՓK ::P;SԕBf9eRq"s4aq AQcO ^?yby8y(ۓK6ycwDC@c£bqys D.F~ {>II~sܔlmG~UXR"{GNǂS)yio8c͡ulK"DNCor՝I 1t_r x?ě$#r7~WjT٫<\&DQ%woﰻ_bNXk[' 3h5ħ '̄|+5xO2,yNZ|`{GW^/;lnӬb)aT!t@c>KUf&3-q,ilY[S16|<)H?=HQ?dUՄw6?mi>UCbbRi b1|SδѲ?x8:e#eǴp縖щ]:D+e(Gz=3.mKqy$-ѩf>|ΟǗ*u7w9^x=,XXq ¹ U:[ ZO]H>tZk)jd0&3#3 F8;@ H() ".r%cm_'7obtwy?iG$Q+jgvq IJKڵ~_]fYVϳwPcЫ`Ӕ>"hURCV<ՙGYj T|O>E|1u3l/|5Vy~JͲz)bD0_`qE][C#^ /(z'ٗ(!tb}MmIk4g{|j=@H*xS˒{!e>3;|̠C.}羄pH}РZPՈ+5XD5*zO'"QF$A&])1K4T \Uε} mIg^ q8!mKn F'ɊpH 5'[gx8^Ϛu%+stfJX۹&r (A+lt21,ڊUm(!_;TH:ί(|<`MLGLԔ\e9,(t|/4KҢ䖖+MIN)<1d@ʗn^v/h ;ѭs2>ƙD X5}Q'.BD(MR";|i& j_`bh>8?ޟMOg2^{~B[LnB+w, (ʅGEP7 ¼w{) 'J<B2Me$(s{\39;#+$x b!J\qbSZs=Vs=®4sWo5l?˃[?aV]h7T*1?mZ|:?럻HS_ޭ}Zߏh4+ZCŞz^]aA&L!v9[eZwATCO@S'rULymöCѲxTrR\ꤘPׂKzj #Z3}@H" IwDWle;TҍyTs;2gWoS|(mP[}T1/sZs0{j>縼ZŹ}D`xßs WK?3:[KT'ۜ;4s3*q9mI#D("a|Q:/J*$3K"/mK1B)Gh@> X0SW\Xloy +c~E-.N`]@n5#2tbfqkIdQ?Gh~J-l.疯sV_,!nq)o7!{_2aM|FIzVacIt"XyQ1H~~rW^jhhK? ٩L5觚\Bz|LJS?ꊎ [#NO:]?f|q٩q\Sj -g:B3Q•vƐȒd0 IF`MTg:(†KP8困Ue,$=IsAB} : J(Jޓo$|rc S-P@`bȒ6,],. AN&=s.l~{_׃*8ǽ ꄄ6$5n[TUtD@oXy J[LE>x~,BosV/ 5.^, SCx 퍘i̱7  Q.Y"C9H&h_2RQVEJ@+ِZ%B`E# 8F6l9V.4{5Y|`ueO<[͝! BƒRRA?wqTJ2 j \б¦}l0[Q ɓ$)w?3s/0-ADa@/p}*t;A N3/jPcGygraPkoza/C13s1ڽ-ʗ^ _:6s8Eρ{]?o_ su^~n*&]& a9vyꙙd/vX3e[~q.WoHɱ6Tc9?=;'4:k艸ll5~LEsa&a^F4~@ܴ885hVGXk> >Vˍ)@i\~dшpT0)NX~NE#}KEIQ@RX@:raFPII2^f9To?O.[ kahHMHeD/}5@PJcqauY]_`i[{zm{ۜ[a^a~OИgVx0 m [d>slYGhA9FNw^Çs+׸Ud*9!&,˻'}/ܘܲjHXhuϹzy-KX igPV } k{lJ8,:#^zv Z"SOOz'7'JbA݃K>mC7Pub ; 2"3yхv_5Q@4x6cE5* T?CDTRq=ǁ?b+_?J?lC*󿄐.˲4yj`rUkƝi\krH(waegV8{zN?;qKU^E 8 ޳ҥy/^l[O{dRAc6ԢmpAYgK) 7˔^+󌒄ZW^ 拈TX,R{j.2v;75޿ Lᬁ/.l-'2=95cnOv'gYDHn9}WdS(̓2%uŠchD:wTR#>Cp)!M0(8>c[L]aUOn(" C0(,o#MiΑ\')e_b00A1ڔO1C5PuEXS(rKX@ .Fw2*|bd3]_mE<8(JZl餵 3~[hWL;?t^vޕ@e90wsxP_>tNoed{)#-ҔѰ_9HFC5a;BEaԳiFjRέcT[sd]J#n:u xc0jZER)F!hx16rxi<,WSw-? wn#hέ. >GO}"G :2JYXlͧ/ ,_w}gms-˥J`mϯptEJ2?b~nRq@4KE1.e1Qgr8kHCAHx|M%hk:W^+ߣQFmnP5莆䞒 aY39&ͰG$G2 {Q}–J],nmB_z߅``v•5˿Cy8(b} xɌ g Glletpg'|Y~07b-.DH!g}}VAfk R\\c\{E6;QQ@& k ⍷ZBz}O,_N44O&+#=iC (!KwfJ ށ04u>Šu]<}K୛}=SeE@71lmYXet9 zE*8ز;S^d>|m.| B-DO]Pɨ7;2i6ֱ2GK1*xyx/ڈK p޻lExbJ<_yEvwiu8bC\fk}yރssl= }!%!c|p#fx# X Bff-LN?: gHSG AXBѾ̇_\77z2"~a>`a*΁cCGY^ʸ|<ܸ8op6o-ƒGH3vG9Q @jFж9ISq7XnvZgJ'~7W?)q`ӿS=i6t$ \S)lchPwR ˼GTۦ:r#WzN{ck]DRdGyF.sy$j"{W {F:aaR 05yp`ڃpHB?QU6wh4s^gTÌv=o}ؼO$k\:L`{twYc._LEݦ3Po4pi1qcҜjXeC.\hj$`7oZL6G P+D>D O_fԡY8pR HY*ϲ˫z0CI`jH#E 'NH!)ɤ x>O3:]zfR , s!ʆHeBTs~/~>6 ._d~n}./1WYޒ.UqDgKΏ0 y܀@g!SHQc{X_x8e$ ~Xw@w ~9U];kpB l~ }D@jQ|܍OfyPlb_~¦R\F鉻Ych,D`opB9S hwT4Ȳ#W~Rs>FNYV8='INn=+͐ܽ1sϯJЕ餔;vK,Y6r)Z (ˠA n':1Az2Yc0Xy;kYJ ye(/^o~@|7ww ~siuXsDq<|KTXKg~BJ}p ‹ҕq+(bksG8.:ňk=޽GTY5 0l/ns_Z}}u.]{8Fd>LbW?dqTE?ϱgscm6pq%nM1DzRq3 \X= }|3 ]\&Ux[BQk\17r٘&k /;pyG5җLe)H,hmWzS zuETaL%l27 fpe8EM ոƋ/3zl=޻M}F'_Po3WW 39cq1BgH-qة!ġ"3 /Kϳ͏K"ŘbN\ CH|L~ñ|%&,@\'o͢=^)JLY6BE'Alr:gQ(;DUe9&%qtDŽ B\)M3IueXg)y2$pm< +Cmskl{7yK,-,ٗ?7MƊ@sqiA+&ϐhk|\_9 I%<^8Hu ~59ɥK,Wg,Brco+7tHm9ƒ"^~I|J&iwC9v-K6KGk:9)[|q9hxp>B*n<}g?m.vyꩫtˠ-s12gWnv׮MF'dg}ZuJ0@Zv>by6u)f-KV`=.q{>-\DJA %^1Bw+)tttD:dqq '2P$5 uηBT!i$в1"=I:{i6blJ7@ZF BUp9Oxr07KBag'kN+9BP9QLeɡth%+OэU)V7XK/!܀NJ@W[|O?&҃V8G->y z}tj('.R8! AF1m.\:I 4qHQ&krvww + 1A-_ ,/MQĊ^04`Õ?|/Nf>i2*$Ӕ0M&>qEPW_ TGͽq'FMiԎJ$܈ XqΕBGIccB  +'r]tΆZҳ%p}Ʊ tY0*D޳;< Bö%ˊUs}zNӳ%*ZepB*"Ξ\:S! F? `(EH?x"sBn3d8Ptk=o8/ 2wXk!~Lc?' 0(sƁ x_: :œ;0&'KSLN:̵`2d(E:]KIG9H; E/fdZ*P=z6K @Eµs!? >?]Pů[kkhH4]Aև1GI@)=Pkyt(i>6H-xc 'a;u)t5+VIŪI~1Y~1CNU"(E~ e}z%?$4 ̐7P6=[[ ÓyI;q&0Y9ggXy9J | sv+ cآb0:=z+˕W8NY8c]ؤJ]AS>1wyeKӥ,IHCfy0b4%#gBfko|:>ss\p Ck 犠UJGUw񡤗e(U+'k.tRY43#":!{9u癧Ty}n3roD,,y.^ЪlI|KMEPE8EVf`( !1Fㅢ۵Ͷ?Eg|K/X\8kX#"VͣC*AVeo'%ֈbUt^ `!T!Nƴryƽ{ky Yn&Y{٢@8/261{[/gQ )BXLcw1lmH2K q=& 0fe=A)C5~wo1y ?&_RC|,9G$O E.p5t5.>Qt(:& ۳W\'̀gp$'mXUTh-K7f'aӚq@?a$Ў8BS$kȢKI*^.INg(,srAHUY{}l,GD$^_Y#a=ʧ0_iBR#GC*Ph5s:箩dF$-}Y9 uUf0%*BhhR7 WY Je`i8x yɑi*,SYQOz=ƪȔ1>NIeW`,J#pS(ZbHUz,WӚOr|ēI9ٲTqDJe&&se&?׾ <… |k_ckkM.^k,1QZh8bnvk֢mPmFn͋E D0;mz}Gry&D̴f}jXZ$Ɉ7gf6*plYE DOWyK ^?We \3kZ 3\p7>"aas ^$098o 7}Lq2d%=賳q:7.xUo~aRܿ|*l_Vkr%sSK}{<>F#ZVf,JIJH0kAA E@; D s 5.Jo6w &3!кACr 9ZjuCiG&zS׾͟7},^y?gP_Ė3X,'TSiN5oOX yg7ݡIaTt(Ԍg)g43KBBɕL)%W' сwrGg68RqRERs$Jr昩EOT'fH2CɊ4]ڜ(y;jxx|`YLlMf}CA %5&"XfS' IY7f=ՠXg}ü`b*G~ )m.7<IwXv\98u69 DD׺nlw(Qfg%V4?1)xS_ 8d=Й<#q C:J Y\\^ _7y7Y^^s1(0~OeDqĽ{7iJE1NKji.x4΄|tyʊ^Ѭ/k0 ., ܹe—8+*-c_Tx/pN$#: Yx4xBz6Gǯ#y,qWJFBgbsro}ݽ{۴s6A6 9O:~u5 .s_d.ݟRu!!67EyϗE8@<|K. 9W;{ y4Zjr7Rcxz52ěO,* k{  %J tn8w ff"LޡVɭ%#ϵ+1*YZzA/9y݇.\bu"zUk|c|8Gf ,'Rq0 ғi'v^8 >!3֝',!N~Z6q򟋏TH 0"# I&'@)8PcwWyV3sNH% f^qRΣA{Hl2Om 8 >,V3c! 嘊 G3S  //DZrI"\)Ba',l+C*2[A@zr2R$fb7trbـيb2Y)?p3Z}j)nΕlaW O6*BC~N AK 5];'V?P:e_kIP\CvgyNS{rYڗ1{ yk ; pi6ZT*66 yRSguu~<|jڤdnhgooo<[oURcYEټ݁gc'CT#mk`ζK߼-nAf&Hoh!l+ACȱvd-JZ\VWlݻ˹.a] Z@G%:kw\gs]Zsk-:?No_x$#d"^~n3.bsO"E,"yB#v瀏a*0) ߣ QCK5=Rp(i̓[REHax.UR!UԹrNexc4^83`YQU//JqMWoD#+ɿ)wg8{֤CDa%ti`d&@^;dr 8CG%A`H8g??y&=>p5F-s4qȣǏh6ܺu9<k׶nIF#mֺ|oez"ϱ ֮ʗr[v<Y$i[- ,i4B9t QiF YEm?\Gѯl,MTI>UZW2ҒKBӍĭ9co- 0Q@:RCpB"yƇ}YrmYmf}URU&@nϰ?\.])^q*)d}6 ~h^;.Ƙf.ް Zgegݶb2ψ(+vSt[(BV0$pgSf[nUcaW.]9/-J)BŎvhj1xmn^k[ںuw>~y.ZkYܾ4^_a\E||xŸُx%w~|gNe%s~gG)}6{4T:f2ɟ _hiA/\ Ӓzq6Kڭ[ϯ.T]i ZJ]N֭[ܾ}NOO 5V+J))\~f>/CiUw(rӶJAÃ:w<>-9 "e+?N9?k1Bf4YpbQZ t,ۢX["o0 t[]Go1/x]wEvL's;>_|Nwy7|k7 )rC~F)pipZO[kQ;4nsN % ?Oo~tLQ͘ƛr(eFkfq_YX)m2DS!GBaD崻MXM&Γ$(g:vn9rFݝ4eQἠ( t͎" +cīΰiD"xD ys53wQ(Ȅx4#T[D!k=Cted\Tb0J֚!':/y dsT'-'y{Ǣe-5FzE珠@*2oQ疎"*0Fш4$݌AL}%x<Û,pZ.ڗ0Ot+9)5 ®ؿe,gT`^^'Z 6[EqiPަ5[Ǽxv;㔛PKqA'Lr#9WTqy$ٿ{Wa&nvCTUE2qjØ#WXڤm)vLʕs)L0')6uRGزD^L).V &9_knh7N:_8./ o1͛k8a0|1 U Q OqO>8Nj,fF뺋LJ?//d* ruE+O(=DF3ZȨ\qLEDQDsq?.b屽3J@׺+;) ZF/ÔF*u}2 ڌiG_>[`\.D7C;֯s]ņ{E|W %(V.H$?[9m+vw~xwzQH4 E|u)  ׿~@d88e54o6Ӽt ?a+GSiҪB+ָΗ?a6ܸVH/ZDIG9Z-tPaP#,Z׵.Weh^tK A`)*$D8FC`ݜ`DF}Aw/dg銐7@{ ˿לd7I[Sf"b<xQB O+lsװb%,Ksct8;$wG6 md2rDn+ 2Ub*ƯqH0e,IG@(;ᝇ9 %=i:w7yvĜ{#&Ì""J1,Ãġc:Jy`@fATccW8hI~rPcČ8[u?7,Hs./7ڑb*p~tu 鬺0IZ0 .M/|y] Ns:ŧôhʑNlnPV?Q˞4fȰ3H-zup_#0YWHҢ$ IIՊaBp0uZYyI)dDёb弻ozAoa-y "eR$[u_A@$4M$! C x*40G[yOF 6OIfo6JmYIl$oo& %F/9P=wn䕻RFҎ42-@ 2+,4B'-`U3ciiiEIfl/  `['׵D˟Fg^D@+R-$X*)\EY҈u3 )$;[ FC=|p0@($BdYt:' {7o dme)a0Ov.f{r:(~Ue40KV3 L3O[|y[fl)*T.i9VIe\2a 4_-,:p9+h Zp ;Jy}4t"юQK49 ہ-kZW9/_)4@mQP_9Zyu!JZF&+2*o)`Pkf`W,he%vG!IҠ * `uL$kk !!/-B[Wx+P#Ҵ".e u[0D"xtjs8I ||}^cT+2sQl3tg 7@"aMs9]V| hu-3"bEL5= Glo F1eMEmDk™/ hw g>PwM|fsV3'Ã)E"*_˂e3of#Ե5MmХ4b^8E`ϯw@Ѝ ^J^H?1=jq't^7୍ۉM !`^5<wa"bQQAز:0%/ڡw;P`18FV[yIդlyURu>bb|>G:)>I?GKu -ғVș'O&Ĺ&eU,Uw^WV\+|Z-7E H 1Ix8kLz/\=ct`IdZRڻ0[vR+N p˲V#%4 -rx ^RA1cL]^:F%%zfYAVxBK Xk.!!YU-">݀٬0-X+MAyl^:ZRY8U^%K,zN|aY҉<#KgKt3\)ij$6d9>HV-2`^=N˗`^э5+|/&eBxOC92qPR֢aQ: c 6̎NIDmcqܠh"uy Nx9'' C( %/y2o&EJ˨|AB3hcHV[tξVBg'\/:wfvfyUsSnb[X\9ew{89`4; #݀DuC|ORTf{3&[crXtJa)̎4i4-eVy&HD-JāR"`mt;ͤM*TE] ڶRe|C;"gшyI0xVɜBt0q;ȎfYls:77{uc(SA!"4;UppLQ*NaAzFfKBRc ^iR*( +pVPUMT LR,7 ͵nB^B9PV~zZOX(/36Z =P%'bv"AL힪Yy0Bf*LT2K˨5 %y`Һ==;BN5(B X9yN,^*ÅaH+h оpqؖՉƓKk y`Cߋ58]7Z1~y)施s`R V`U$P$zaH%w6>]@ιU2 9fAV0Vo J:BdwJoۯAЮALUVi_hni3θq_Ov&𾁴MT1\ku`t- ".G kTw>_3R e)lXRTÕ)K&cKU5y ںKNsփdZ7PtzfK |F;lknF#sgCph͘Mqs<ԥS$ѥ@6l߾E$ݽUm&am:kG沴h) 4|gDQwYqxtB0'Tn1RD >?Ғ' )譭8aRh-ѦvwnElY(5YI",vwI 0 ( znDUU1O U\-yM]S3(χFܥqXϣ n^R'u|ޝ򐵭dQ[Mlq|)~fN>lNS>Ռ~Iݢ*RunaJ37G97Mvmٽ<{\5Hӊ"/Zڜ(ebƽ1yΧ0ڏ;͜b6G`ItԠ*b~Q|lnFD`:-YEUx&SSߟ:~(8-Ò4 -xӦ5єN_x.Bv7h OVX {UkAx ZO - /:ʲb.jd3JNi^aHI YOIؾ!F /}iK`lkvX]w?/T>Uz_d,UeE6-–gY+ŌYi~(" URTm-tEo}hZ2?/iYpXgZG0%WҚkZ<󳽻S9Lu9?zJq 2 wbZtkW|γ@ u1BT`<nH))ZyId8?&2X둲.Yk{-C~̳,1f?%v]vq"7n.-}/r)Hv/Dɀ4H|qMc8<*_7(Q I,JbH"GyBq|8d *LP`× IE Pawq}I5?pe@Y:ƧSL$hFs͊vw|V1H09J6-T:d*惟5f$<><FϠ䌃G19{kLxwnG#E{jèAJ/3dXgcde>zїY1;R<:Y%0SYD! ,+pF3ݴp)ɲƒ,CЗ;ΗĹ˖Z$N%Y/Y/sTU|>%L^yN%mi8J $.1~E x鼪yʧ'<4cdR_4% #LG<'gT1R o,H=R0^3II՝ ^AZ Tqʃw68,/8n@Žs@vZČvdy8]vjWIwX[n7xw>OppxH! 3Nc:.#~o_Wט d}c NG46wCH)I9Ȋy*^! cC)\2gDIK!DDa6ʘ3/Y ND44Hэd>XJ=t[wǓjr<_olSHU-T٬Y掝^L;}~pGv&( " SIJ^ !N٤;07JH–!+*NP"ېur8I]A[TmvwZqzU=D'?sH7q|1A3g0 >"_֛-vZdLf<̻|)cC% ǂzDkߡ^C |xQJ3N]B`<#/~JҎc'iZm;.fW3:;AV2s[M]cfNGB q4HT'<1뽄`C["}JHP-TpXMZIK& #7(D!CdPZ0H0 Q$x!(K|!ŠV0鯚#׵ɲ_"quŏ9!үvnPGQ}yTԯLۿ@ aÑs~H,8Sxt 6;8W/LSjBQt(WfZ9K>=3A }yg\|c#@k}e*4{Jt2窼$7dXUoG| [>׸Rh'k?HGA< mQ]1~9xկ" <0tlA&<,p+ZEZ)#)Jwv>T9Egx`FVga BPH2Z[9 R֓/B:THJS9{Lܸ~gkwhHgE"ڝ6aPU טlt8rPwx[~dƇ_r swM=ѐ44X[Kh5q&7 ɽxFTg:q8*/)D#0!.˘s3[㤠ٍʜiaQ5Bn8P$ь}d{ 6n_u!}6k}ˇ8Ϗ~H]_~yxF7A G|oA5e6P]:̈p&mnzvG;DmF!c-{1 EAZ̘/(\rNI!BH\S0-0ۤŔi|^UAE&w' #H<)S^ Yu[m!7阊sZ 9OUJ(JT^h°d+M RW JeX(B Ek@Fa "TxykJK"!_ٜfjMQ6tP~YPYYߓ W(ᙗ7E ̘gE7㔇Y=7 <)SN2_lK tŬ KCRN xyVR vrqi)"E~ sؕz\T ,Yu+r |IU}{ڔgRU۹ss^'m^&c4L,{wc^vUp+:Fo2J &o &=,Y`5,9W|^˯H K-w!u7UG֍>/ ԏK/Wc0Xg)R^?z~Rk0@I7a B[[țoAhDݦhѼ٠sX409€~wǏoɲvtAprrl7a4xB^L((K`:N|t+yテ6Ń87_~v+߭'"+(*J4QBM1l` zcp 7n?!6h_;D>`7!l_el2JKW|?'_{{F?W7`'_~L u %>]"aǗ4;bxrc?8eŇL M@4fOZ1u7-B,)}7xt%bBI0B 1ƠC`!8pR%UU2r>9̘k[ R $b^:#àumhZP_^hGpHbcLP[9Yɜ-,| Y[HǺ)yעI G/(k?6%<+IKt}ɻtDم `;(Ps.P:涖|hIrW1wyBd͉!\gpx!j]%W"1V@uXPϮY|ymЋ=՚L4ëͶ:W^PUFX2 ݸoNPP{ IprǩAǢݓRX/;n$%w^( 0pY$Ј=HAA^(Ub;_{E(%D[4A/=b+Y߂{\PMlDht??ׯ_89=sQ_mh4$YNEg~&f( BI:1;Z͐t>AJeH(J4 Cc>/?bwNSFt.HBh4 dјynVdvivZgowU}=k%) h4tl!S?#KIW>ciЉz<~4΃_qؠՎMy:q:dm/fmD1G'w8zo&}9 {o]M㚔<>~#"GxsucPJ2͐B=h p֭:p|zBk2usb7[$aP W3UYReQЕ92=cB0Zk ̬"PH LiD0.%3 j 0A@Z*Z4^A7-A6U=In9 _=^kYL@iֿk7CJR8AN%ێ/'a혌S%VK\S kչJh~$;'#! QHlXz|6u./˖(0aDFF|c~7Ut.:-K]Kp{Eh46hj?hitCA+x"ZW?g-"sw-_&wFo=@JFO^xn$腂hꈔvWy?v4%ǩc\x~$8{`{O E;ll|>g:05%_{Jh|>Gk>=Zi:hctee>c}ON~ڟ(ܹs? B~1?O=xg』>>Ǜoǝ;i7OJp !-@@8[2OYaXڣ:-PuMh*P β3yiҚou;x$`9t2D!VdG$Mplg)G''t8bKÓC|+ŜNK>rʿmz0 h>J*WaZ4$MZ&՝Ѣ8k `iZ-IIYDQLQ );-DԢl' 0b\ymy`5J4CA3R KEZp:J' 9[A.(z'$gd^;bٮuCV25! vg8_=\9Ŵp-l4bܞ=+^$3϶ى$P2뜭a5;+=XUz(sL waο1-ұ(3ԠT'!@ p:i@JVS:[=7aCiދ}J/2hES.M3c;AXv-1[>`,>;Y+qjmτ_T\^%ks3 Xg/\zEE ^=_\< 2Y \OJjkW~Gy5sm5 s?Osba0"N3l'<)lŌOrڲޏF(`PMJxirref9>c3V咞hcPR0J!|m "g6$qf&Vg{1/TUI%n4H>GSg{lmmǏLBe5ʄX_1,[7os<./Q"cFn͛kc*q OLCNNc.?DCC7(эdNieI}|y4Ç=U5G)7x--%@T%;>HQh#oF|?TE ۷=2/-ĸ8#bI "L^,jiksN&wFHf%sK` =zMöO*ڭ@dh#v $1l(N%{1,#gAiFu)lytbxqgPi8H!PVB?`0>Xf Н|yK4Dex}-,D%GS|Z62uR)m0-on7|tZ!Is$ YSiVY%> h5W̽vm]q0)h| - v_mC/+KӾfIߺk2IX j5y6 -PYNEۨ,ġR@ D`vZ*r.@D.v@P܈g#Z^|cJ  oVsA7r]bu* Kq9:c*L@Z5°6aH4S5ܱ띘8i"LZgK4 4:Kڍ8P0D~yְAƘڏJȅ>䵮~{oWgܹsS7`wkׯlQJ3MǜLmqot@y\rmozc)Y9/~&0X]pB>0`4UҧcZ, XĈ(u%x54K1"3ʢkjG'vBI6ƭFVՔ06lo]c>ܺiM~w٠#.,gP9:[;^ya0PƬdFܽAF Y3R!ZT[-<)e ((Zpj#dBAMbFv?pZ SfYAlP<1L Z3,߲Ì߻OnͰR67|rC;#nq`fӇ6=/lCnc~?gV Zq[JɜSa=sgQP/29zk~x{ y2_/Z!Ns9ww|t8_"|BR5FLbjKhFeVUQ#Tu9#Mnt?1xӳ s4xVݝzuBfLsԽ4 u>hngvrH")E^ -/襘w)~Q3ӌK9K6uZ R<΁cnAP?fΗ_p.~52 R1q#t[p) k+q6V@7LsNY2vYmZ9ESxe1.)#yۊǏ>fc3FmŠFƤiJgdل9^=w~ij2)G_ɮiB$I ZxyGcQ-. _vh[<|?,KۻF$8k {m&i5:!JBMfe)6Z dd{뛆:ZYa;Z^Լ 4uiS^ Q֊ϙYZYŴލ> +$IRh6F9GͦpR2<5I^NBWQV x89sv+`8hdR\j쏊Uϓq89G[`Rr<+YoinYo͛ (Oncu/hMKv;Ng%hr4C4HҲvs {4M}wA8|)HAQy❭QZ]$}=,o\r E}SIA w\v0%3_0CCCjћġĢE~V% 'UrbL K/uYaX \^~Ue^IQn+܉Q#+ݢm` hI/Jf )xV"iFYE#oT֭6W?%/>vI!;fAsNu9D '=aQT3˲Isń,GOB4JVh4h4{mx_?#/n(WV:R[hD4;$AuwRQJGom;r Ƞ^iCpe'#soUU dN5A%RV r~N8 (\ j0*pHN)Ghoe9ṅho=|Bn1pbhUkkngyB w6(Eqii4"ZaMBhj`*1ZQQg9ɉ$+=MѬz#Բ IbͭFqf'dV4PF,${{ 9$FnOpfnD-ltufa (F|49׏|oѤ$rX\GiG+xc=96/VLyɣQg ̈́'I[ qZfA>dOKnZo|q 9S7  \AG 0 Ӓa[%(Ϋ@Psqѿ4"`RR;RumdVv0 os{%||}Rdj3_w(W*,(eFI`R|DUs4=m4_IlثD?Xz{^C-ify4*B-ds(5Jw!y uu$оTZxVbRzT8[r4 Is,*+X!*Z'YAK/$QH;DJZ6<LӺ RyZ2+ N&TF^3(j6Gîݩ[pyMzX&OJF-7 N#tlr38-j3ʲ(V]OΧ"nYʓOU]^{]tc#ÜVh~9WL^+^bHŬtc0Պ AAf);{\YJnϏR҉2W,5 u%ڞ5hI+QѬZ̝Yv<O˧[dV>bH3ɪ@PVZ"^Tn1Y(^j[s'h ):}&_5>9vw K0DZ] NfJ;yeW g-k5Nj}ZdGtcMZb /fy)OK<0H+bäN#(k=@!j]MR1mF5Zhs֫ݪOF/odᰨΠbc4!#nn=aE@F Z^)%kMs!ho"<,r!k'xVю/.GjujU7α&Y1L+ZYI/l6 y -hsp۩Z sUkNwW[̀IV0L眯lYʓIV+SdIr0)xc=fSVYya~\o eMF4Go#%- Х]Ya/hxZ ]zq.Yj{@IBrWT֟8KVg t$Z D>$Eˋpu"xU'~bUeF^9IV/ի ] Y2JЎ:=Z&Pb51 Kn LMs4."7*B-mT**-NJ40qCJhi[MGci*\ iRt$)h02 |Y,7;M"x5:Fp"RZ^0CI#bpTjHq1G^i !zUJo0@Us!r{S3ARklEب$  CfLv(4P`CN+ ŵHP>ZDq(zBxVV($qd08!S[Dm`{R7f% 4֋8N-%!-ہHA,kvyfzk m6~xA/:/Sn:Sk$zqw"K"#)lFV:"#D;Us'FZ}އ9h4yEiI7 $tVq{-˓HKB^h|y2^=dVF*ybGS`i+AFdRzW断W.c.5wWv!hqJ`W{ YP3VglQxt^!l :-T_U ӌ?yhW,t47S5*T<{2jN;dk_MIQ;KO2k7NR0Ia@Zkj|-SJBaRK`QvS1K+HA(tY4Ƒ%BTRM%N$>i ".&P%$>%^/9G $\\8 EKkR i6LZIZcr5zXe_/?X^S_A 8tb8 _1Ap)fьDíͧcځ#Q%L:fODqBńa`jl\|]Zj{ҝ->%\e v^eix<*8+,fv-0ُjd,X'  Exg39j; Z֨;j)`U{ ’g_oJtC|/M/hVAM|?GZnэ3㕁 5 S.XB%QFV˺|R/ !.t-0d}}ZOO#:^(xSXJT/2g%yR< W0&i@0_,˶ZS][iH rVX"]0@`f+ -8:!ӂŊCO}W$VwՔB4Stx܅m oFX -~Yk4`(J&$6y%qUE+R4 3E,S6t<RNЬꊬ;z!GbZϠs-꛵+BAnqfm4-|{cav{$ 3*v;!"i4(&Fy8I}V+y&_AKt~ZN+8^ϖeô 3HUn^{t!R>\;T+|ٙν꯯ jbQٚiZz^-AѳnF8 Ӯ O9Y eoY5Ȓ\Ǘ̕>kʐ$S_Yo:; oq1UWO._ZkwK?zNfF v!S{'5}8)KarC A/ѫ}'gxZn"g'$n''qoXP8vЈ*bf$uFs뛆`3fL9X sjZo .^~-Lj{~Li*V,soTBzIroK}._?~ʣF׻! {E=͸Տx{3fVe@+ԝYe/0ͅ25JMGhPuS U 04VA+OEGɯՕU9\K譥(3͘f+es\[Ģ(z*tI+/C㬺_-0MZoG+TT֓~q^7ּ|%S%;螹xshK0\o6kÅҞ;rtQ Sm^7O/iNǣ)uS+svp2c^եV_ `= ̓vbLڭ煥~;%LSfYm3 v~UdyVtC'K{_g!j c(7%CbW #_d4Z6CuXw6^#rƿHx8<;sa/0:gNWgy\VyZ`}-+=PZ̊ !xm4b0XHzbZ@{juoΉn;]8%bSLw]q%l46[>Fph)tud\@4K2[ !8I-RF+Md97_` - Ǘhz^ؚ7z!ދw}cэ5z[aUR7ٟ1| @Z6/o{*-,l6c>BeRxT CiK]0-d@<8QYҢ (,TVYe˾:q!t_/;z.DW.~e}"-댗KWDaK dz Ӓ-P1ο!ܴZ:ciK2V+)ϧ罻 DEx,@Bam8N&g h) %tյ(`-6<Ӓb%1͵n߲ъ8YܺqыqĆ6jߕe26k]zs~X."x2.ol?.j$Y(6fMrK7 R˚8k`~{6BvN7zi-ǣ54/폋uCޘnȫXm~p 2uWNк|R_vGMkZ~=%HKG%>_,h}e/vX7UIBuF}Key1-yU+`HAQ+BhYbsZr9/%*̒ԢJ0ªJB$ZU4Ux6`-ˀjՄ* v -? =]Innai%hO?%iPPդَqVM4g;4U?)kFAyϘbo2sGs+%ڝth+4/qO--SؚY>|Ys s%FYjZf[U^_O8lC~`BѨM}%{o7+;뼿ʝs+gi&`%- ,xvvyم5`pqx<094F9rPn~VW[}jVss~ _uAǣ}5v#$5<(\.|.mɀMSH!ro28)Xl_VL0M_,/7QDg< DT!+Y,U \T\k#@T[s /$|~ >#@>@ ; _#)kUZ BYdwѦTBj-EWr'9hz!hUd0p&ԺUpΦI 6#0!U%1xJD˺ )nuՕ4j>ߪܟ%hI O&D"1 hROo6ᨲ),{"r?)v$zP:cPdތΫb0m̠\}JyДգb{%MkBeh_1T\$ zPq1uy"%b$-R0>Ȫ\1# c+OGIh-V 151QئkQoKy <#"^8뽚\;wv0b# bh4α<Aqc3X[${њP1VQJC ؞{uiv" DB1B*"L"Xe x@z$oSܠ-,f\K>\JÝ" *shEެu1UeyeY@[|z_^C9ɲC%kDgZYMU1xttP`:W:xɦlDWfyIkZ\/ Y)@v^9[wl)d!JK!`BYuӥ3U}Z$/fsYC REY\LT嬳 LaFӠJZY> t5Skt~n]S$z]N %߹*.]iRm2~ crOUN+b罯KHU.K9׵|Zb Q~=*;>>!v0Ata R{/񉅑 4AG(X%(teU&6dlׯ͌"”ٹl`ӓ.dBk99e^2/|ݔ"Jk٠IHSSfd4&93HTʩI-GՔ;/lOU;FaoRq{Ta!$f#^|*Q/gDUY)K똎wQMa4r$$AbbFku_SP āӆE2}M:CY&ӪH5r2M)vU<4IT| c|YB :Rџ+t2^>^Eնh3 芇$AGTa`1+̗iFsL!JP4[\*L,A<'Hǫ֑%3*ڶmv_+q\ SϢxAe}I=VjKB$T9쒺Fӹ0a" R$Qꋩ1oe4ќ"[BqMdA&X]zQ-;--l xy)4߅^mGl@!˂݉ /z3A4C7HNBTlUFTxv9YT xF[j 퇦+{}\oj v}TE"[q- -&ErbM=2f1:I&$*A/ڴ~qfZ-PmTZ%ӑ1_&E,7(R@4++?%u&ӓY|a$:eEv8>2ɐM1JkB^ԤjTH~b'Df`1[D)^+nH\p/ڮO%],HH2+یsFfZOFcP\҆BK\v}Ng͚`-Ԁri~#7Gʋ't9)|y8Lży]~28fSetE6yZ ( Z$jck%3"ݰX,V 0*Ib gKkxmUZZk=V&_R1tB@BSf>[b cA!ks1LSG e!+m ^ -0iJA$J| uT<آz'73p܀|&Jv#궋E$A!2]\Bc f-06Q J{^sM8k)5kd9=Z`TԔIwZG U&S@|`RM׵'"鲢͠ly .slfznXS,WmM\)$X,7]\%Hml\'t5d)UfU=Ơ.ht,i/Yd(,gRauHeQ)dٮFQ.ƺ#ɒ]G"דu@GJ*d@#p䗲$8k 'KA PqCi*т\\9:V&ˡdK y|BoFGDB,Ȭ팳dh4fjMW$e}y>4&A*_q-P8.F$݉">Eh6]0<̚ZrřrQZMtUE\$۫[y~M8  #YŒmΚ[#}ڷjJ ; Kt3ѩQlZiAbL\ /ڤ i.MLh:%ˣ9JTYe;ܴ/;'s:kՁ*љ8,fkKx&C-,c*,;pAh9|_B/hLlz2kQ?YU]LLh1uJR)RPD?CU.7K-tQVTS3 E)Hm:-r}+W\,W $ BIB2") k***2$q-bVg{9ix^P+ᄠZ[1~MLA:oҽSKa%@HǤ+(sІ"QqKAh~"o92V8UW1j ӡ9" ,CS|?yez-Uӆ«/LgY-斅@WC&DMSg}bB(گ PzviqM3:MJ"bQ~ar2I/{P#|>GDz,,ۡb9mn x8>@?I%TEbV;VU\iHS Y :*:z\ !_ /'KY:ϡf|>j\߿y;Vh"Y\|aAd ɒ`MG<-qlٝ&'I,븯4Nej}T_+'t4bJt "Qt`dP\cx350 oF_5b<1ѐpޢ+L%4u݁ @"'[v xiz@0W7yra #a:24T#vtE u/gKG(C (3&_#*; ;E8ӑ!^ܐSFz/D{{&[k19lP%gҊ b "uE]붼`|Vk&2UHjbfqh@viX>Kq6;ps .,[ԂH}6z~}<#UTΊ@5R_(dm}M>xUVFE~{[)&hNF]&-Q$6]8YA9$-kQYKg9L{T3T35HM *'HvЃZ-fV7T69hĚGs]ggM\. s=#A4a`WYk'jJR?KU`4 .]jm0<5;}0TS%&J0kN_s6n <&Y@#KTK.§%t<<QKAc4Hj@Uk$" jv}@nN,N g}|jjz.ʃ q벏"ghNH_ dAKLau)EᚢULOFX5*0~*_h5y2]6u%=Xd+μs\{(Jj%7| U!hȾ$dqJ{R%Yb>);Pt ]IiAAxa䐫8Ma9Az/q[fBrjTYџi߬S<Ƌ)KZ0 ^XwZ5o9F Wɛ뉻"ZI"hAt-&Eew_,@pG4Е9Kv1 h_GIXT=\\tT 9!J(RxKG3Jf&vjqMWdvWRkB%[qVy&PWCδpu8uvdĤɒE'6ړuEp1iŮ/28ly<"I5Az-v'}χ*z}h\EwI!_v=rVbA^)" !54LP0T-Gծ-CW\F sɚ5ihOg^,bS^դ|/ x~U=+/ݦ=rC?!2r:~$Kw9v_ϪRy>jv2nj<^0 ekyFg?0Ί5a,<A kbj7fӭe╷LB ?c['9&hr- RP(O#}SD,iLk*g>(:9g <ˬP*7woz,]K4\E M)i4O?ʯM4#M\/)FMՂ,vQ(@"JFBIBj11 ҙ(s7 )!n]*6J#*JTTI{QJDPMFǯ(j9Yp8=q~mL^WS ԰kՔnXV"=1kWwզK?;<>uA0YєLfb~5Nx-bB[8v_!ICpOUyaBO"@_nv-﹍B$y٣b9 YLiJx:|j7Gbc6/m?Ɂ㼼sYÐ}[ow%uW^Oz<7mn#˼kJӕz^^zug^:ٕo{Ͻ|Uc(6\7m7vq4%Qˆ|˯̋'g[i輼sɬIK4yyI}4˖I%bL!xy0/[z"A F#A_w5J̗ qZ,xVt5{MpI$hzj<}qtRXO䱧Nl:DzLJe~&nYucTb| Yf#dQpgFW7"2 'qV[wo&A4x;lg }z$YOIocEO{>[}{F[KM=3ƣbp̆q˽<͙ۖ~7ロ;n߆Fa4U%/uҫLcܰu5w޻"KB3O[ Oc^ڙ=#V}+t`|SK5c<0VzvKikӚ}R1iy ְkO|$6^Ws].rt`Uȴu{P$ݹ %IU$~MeYK%v>>[tZfR$uSwܺ M Xy{T,ptsMZÓE颣 a~u8C\sT7s s+Q{TYϫKqEЮP,[CьYKaZ|铏257JKS 8zM&TM Z%{bZ'eg;,I%AksE38RfIGH-bM7ZEӱ\ɢĒ4S9O~*֏v<:;)֬3<4ȉC,ps5%cȎV"=3\Ț[7sf$Pؔ--[V╏9tLG^؁vId/3c7,-NGS %4{F(@ތI }&# @xHPvAF>R!4ExDurr46 X4T_>Öm=^B/DLWkiuj'XXrQ$Cq<ɳ|dg)!4  S*ټ,'t\݇YWĈA`Hٮs:L9کjOo̦5)yб bvݧP(sVxLb9ekR|qw$<>HaWv9qi%e)cy K5̚[UO,< 1y04v#tXv@HSUb[ް~ȁRYsu)+is|$ھ>㋟ Sh4oHcA eI")iKa 99Dhkzy_{X!?1Ln|.5c9.dž3+,m}?~>4N:P*9Tj" [G_=ꤪlb|`4Ͽetpᓴ 2I|;7Mcogm۔0Ɔ1s_븡rs|ӏ{uw+mcNs<=#f`bqT-lt@G.歍2Km 07ftm7UQTyY>gR_踒Zrl<uϱ! "YV0Y|1/W՞ TZ6 ӟ>՚%joI(z] 5lȲi[=ya cTfA s%#90еLK˂E`|$Q4b&<~ /( l_=Z:=/32U7~9V-k=v/!ib9?98>PeƲ{m?7*qި(l ;'9y(ohI|[0bܴYW'=}.nb$GGS/[ghh* ^|ʴ4:11tr\t:6lqh^vC=lP5ry(VWO(fnCBY22SjCRu\MCQt=3n{8jf֊z5`h&,Մdî+A ]K(jw‚qFb[ܶ%ú5mz$fEYč7{0 t.]sNp78Q`~z$Ēϲrsli|eӚ$zH\$hzau3kD?{xoA@A:8!d$Eʍ"pxB:i"%;8v ϱz ߋk>Ԑk.{f#AdZk&itUMTm ]׭K IEQPT5XhFQjؕAAǎ(hC/\9tpJG@h#@,2hUB$hƛ_J$ٱA2m$2-4urL xi1tm4vL~|Υkh^ClS-^T;ǺmE2 )JAY8/ȠۤR.IxZ qlaVͷzزk6d,꼂pBJLP`?pIG\*!$ 04t*Es:CKS #T'h6SSY v6qqˡ=5 ʅeK;i`uvcS0޸ZA]^m`ĝ I3b!\Ԓ8ND|! -!)Yu\<"fI6S¬T0}SvOn A|tuLrH!g{5eGZZȭ_؊,!˓J7Žn>BQ|ddlB>K6;0|SCgp}X,:ZX kؕp2nyU.0_}x]uד x×ӂjUrb֮X0ҫ# ٵ`Y_MhO~$aYqDk %np-]ӱ:5u66є$ٜ}7mn=o[Ba^1±SYU5 E*eaY#y^?}YiVuܼdBCe|[ݳ;'\(F \?}{;2)mҩZmOќ=Kmc[e;6M$M1e:}dOvaUr},Aʤ[œS*JW!1XU(Ⱥ^X0 EFNO~|ۡ >)hCqh!8:b< '60U%Qj8q91{W-'e%!qn/ҋT%Ϙfo'gm-gT (t,_2m{ϳ-7]\L:-+|'*#fdCj+=e+ge*q"$3V$@d$#F%Ռ ڢA]U*o W+_A_N?p_-'n-5ky,`-m-拉 m-i{'f#g 돌X @aW!É[(m LKL,ְ\**|]>7o@մx1u@By" Tj C0Pw U :Q\k%Y$!B/T0$I^M$I(0Z%cW`m%Yښ#b%V*RW79BwAE :Q(dVp$'13=dah$b14?2)܋ځB_Hhv QSĚG1TA$-do* w~AX}ݻIx)qC? ԧ<0O1v +WȴwzF^T=m7БS j%<΁Cb1|_k@d% z.'c/PJY;OЃ}A ` 9:KYHȲ47X5Q?1 ,!EBȾT939|_|?(o{C ?Cg պA/"0B =Mh~"V<7v۶ n1fǙF+L{8Y L\*+&SleadIKOz.R%<:oU4Znqt?&!-<sowQ >\7C{;š5p ||9|ַB*cZ? >.]gʕYrwKij/8<"j@#t۰+D@okϹw=~J"ط>ЍkAǕ 9g_gϷ889|n/d\z%]}_88]."yR 0Ai|koe`njt}xTȚ%Ⱥ#Л, ǯLb V HHTr8#{-]sI7k.?bF!ٟA&w-kW]*8{/Gټw/8w=Вls;] >8D- aWPcLUioOe7`ؿDnfw5JQT5L4ְS\s@ ) &a׫vѷ#y6I2Rk8j(;eïdTDqAJі,nj7\41'XTbtX-/}#fQ(pgp=+7(|MY oy <|ÐLgi=o~3>ҋq0Fϣgaz8~>y탦 Jd;'Y7!fl PLk[#c#%dIF"@ÍhPîdIFS5nTz,yMJ+*z]%Nklf*p)2MVy17a rrb }KhvdI!Q"Iɥ&0}/#Q슉[;lqJGgHܰa ǶHe4 ڕf J%gٷj5=<5?g@u+7n |ꯂ759)<#j%QQT%4[î< AD qӦ4?xe1bɗYE](-ꀦF&y;?ۛH&udE*i*ύmaE}>ٺ!mZ 'ٹ/ Ha]noб"95d7M$Fh"E Ұ|ǧ)8j3cc+.cId<WM#U h>Wщ>TYb|twLGqIo|^WV &y3?^509Ӭ`/Vōwn߳ޞր5[Wx]s<~Mk,OynXa`ivr)x%$\ŷvWOLWe '$*ER-f|lӓH%4ˀJLQ]Ld h[] VsC"r Aό4XlLLNKe6[OgG'6]]](6Wƶ2k_[uz6oʒ~g~79xPq\d٣3څi[KfX^(B~[ܲA@$!YC8;a[|/=pbKhkk᫏T}o~Zipr] I~7M<=NDS6pػ0_̗-MM G~{vN>#|cǎ`&S8 Z (zK`*pzPa]1 !h2~sqUS7b]ҫp_I# 3@hٜ>m3֞28s2L[WlJ}d 1Zɕ,em] OE]h07l10P1+eA[`Mg7˖+@ޕIdZ##`HJ*dph5+WI4d֡ab-:+*"ĢV ü~ow/|Oӓ׬,e-iڸЙ3ȲLSslF6Cؽ*ewg7Uuٿgw__??)U*/WNNͿ#}12|嫶!l#@n1 ձ 2<̓hzeB>O9}UV!*F/Gyz|EQ,L Ӳ)aj#LݰZ!^NUhz쪌|- $_?ZB@`qGH5df\O"5|L}%- t҄c[twez,fr*e|xzl=4`YPYG5 ]mܳ!'2)&؋i膎En:;HtߊAo~o'(rl|+ɟ{˲u=߷ (lXî` (˸i[7׭!rUWHS dž|'dǫ9j [ٛ*9*< J]=6d{ 1 ['=O{k+Znk-PH&35q0=B"Bf(9e|W$;Y \#%d|eC7&'8544-? I ?$b *oP(R-K_{v@b > sL3 ѽY /==>8+G8{n[ZYf-~kU$h]]`Yo[GID_ƹ1-CPc8 \vO:I[tzMe~wКcĉpod| tr$;sɴu!+㩱<˻2?H(_]M {4 $ōd(#c9M=UbSxFn}#eӦX|V]J;T€^cհE #)C&b1T5KϿYjǗ,Ti/q-[8::##H)1Z1/ڡSsf!MЌ8miVeز~=u) Rȃ`(O;BVyL_<}fV^MGG322¿~yˏr8G>y?_d|t%4`b4ٟɟLd n=GyOGu֯_͛ٲe ֭R&Go#Ch?7 ۷o(crС5A :1m9[пz tor8>o~ر-a9Qow ^cT;rhS94PA^xvh [>tdaSuTUL9K[AWǛr|U=1V}s=Q~?źnb5/x5Z -H]?eFR (p~Μ ƲeXz57p]]]PӧR*~ΜGXu__{5Vf [ a ||c5n7m$ұE|e;8t4vQ#W8-&@u>hݻabR 0~z\sa\W_&f3r5ʤGp'J..'WPI?Zb GO0:\dd`7u  Ef|N$0 -SB桻nBtuqGOzj4"f9f 1A$t"(hHLP(y:s m^ o,] )p㺍<'o>&,Ŵl& %y8ﱘ2aWM; W2M} N $16Eg#ܰkx&H^yN$M}ҙKz9 r'Kf:$V`Cwd/G.u- ˴GH}„H"%Jor-ik 3::wf|[ h7 BmΑQstf\<9yU>⑇f޽n%֮]KŬ4-0 @vl o{޳(/eNqoG_j a f\ p\_Rx) $e-$/H2$cW yR0k()ILJ*A$eTYyvsHij7ks .Zװ5l(˔  _(Ǿq<ōk׃-t/eeSoϵ$C2y元bYJ%,v' rT"?<|m o| %N 06t .3< j,L&Ybf)_G纜c '԰+ǎmdŦliâ'DT+Vlgy3<=¯ӞATkW\Hgikv%gl.O4hJTuR?b_`r/p$8se$5¢T069n~z|bhp## OrG'+uEsFFV5ku7?aŽBl6Ӽdo|Ǎ,[t`m}m)ړ|cj׉<W_/M0)S(1d8cq峯8́(\RG_/GxEyv|<˻iin#f_CT*$t7- 7Ԃ4Qt m$tY&JK%F&qrdCL-`+W{b*Ebe? [ hK6q}khjD]T )dw| }_H Ŀ [7 93EO![g?Ql sj/?z[v _ϡXǪ+6G_{~$e~Auso й6Rq JA&nݠXT&ed''m,]8 d}0 3>>d\\CCLL^w㧪bYTsp|\ OmvYBD;^ŲIdHU$JSG+ 5ޚbNzf3^[W"KG [Ȗ̳^ea.剃߮a}YЬ0 ֡iYnlG9{4RV:R#hM][\sk5a&T.cS"%4qJIdail\Nŷ-&)Oszxccd0$ ;c'E8'+[a HEHUWQ$b#_}1Vc͍.XK帜ɲij~OOt,Z[d:W*Cdq7O!̙QdkOi=O*˯!Ֆe WĚ:̙>24=zj7}~{h<}zu:βFk؅Dg^8@PSٴ+wdlNJ" ۘflX, fBͫ{NrE  a ,L0wl\pBDI4{H^$oF<Ų7# Jj 2> R%$2˕뮍|K(jtіd㭼'Ɗi 7TO ǿĚx<Ȗ6}g_[~ 3ر-.Mn%ihI&-p+9*{_B6(G_moxu~2tEFQ$O+C6P# ]B>gú5t%7d8-#]-M ДNҜJcQ(ʗ(Td+ƊYÔ}1N%/ְֻK@"m5 .*012W=dsߙɍb /xebc Kӌ X<1Wu״^ZdE;v?t@o"_U\_EDR!xE}}[:ٖɾOsWXZRB[xOO1$ Ua9їsӛރS;~R1(C8*bлE?gFȊ)4fx{硇n/s|㨕} ԰/ۻ {Kl`6GR,H 1]KR2M\ߧXSLQ%N y]U'jX.[Ut/[paT]S\ӷǞGqk=X%t#AKD9o/P:_v^Z[%VԽ*2ScZ:c HML{~.9o Ʋ]%t\CRO erhl cr&RG O#Cڰi(|tGN,]OwW+ʼnc5Md\\\d*α>r|X ԰]DB|YPGȞz %\8r`7"zcM_ k>z4hFi)AOdS{??6ҹtM\;?c̟ڽ+4{IOK4@Mǵj/g.b̜\Sr|$K>/#w6A L>T*?dRd2iҩ>dY)Yfxx'FQzְ ¨Fo"J ^{uAZĈƑ.S(u5??>g]Tt5Ҧ/MkI]tEAkx!iMLVtrNl ɝ`p{m[A{d*2$G^}#f;/ h{Z/Kzo)㸜9t-[GK\x7&cދۍgaBLw9Fryry@\O@vg(ٹXMV;,!Uɑ 7Q*NK8#b08>ulwBy Z/m =UdMJL\ցɽwoz`oTͨ+~e ]|8|!'P1bfEv/3l0CObirei< PՇD>  a ^ҍmwo cB%_39䗧Ws3Vb;(:G_C :l9~y'mnՖԝso@OՊJ*>_NuY@t$[MW>,$g2X$7e SM̑u6%>GaAwxV6(Eu(Uеzm5<՗qm\¨"7T; ǔ(9eFN/' mw܉+USaZ-M$ {=~~-߂huLȪm95Eˬ󼺨StWꡣo-6zʹfX%[| n[X%fnmXQ^*5A kAXڭXi g<it S)a]Xs} [(=cuO3k?zE9@g 0h^zRw#uSEm[Wv[<׭8.+uoZB*w+Q()G(ĒAکl-?_ae7r(MdڻC@Yofm8~f+z9rflֈ5at̶דi>w|„ +wǿ=giJcCwX悍b9rCX(m8W“H[hn9+v16+Pmק05V])6E/z9Fsѡ)v!` $4S>^|'(j*V C?Neb(a kDְyfhK6q+ !ʔEPV߻QΌؿD[QH :|מQ+O>>~mL7V=|]M}6^xd(C'i]^0Lz{^53dÓr|.4#F~letj@O_ʅ4 g9|"[տ7a k5"ABYB!7vݿd<㯠=EzA;Wxg6ɱMZwMM3읝qe4w=n(}/~#t.]C pemYsFƖqtsX=ˈ%˶yOxݳ H NiqVji8%`+Mi7B%R.28:"S/6ְjX$ƛ|;MĂAPʏjxer|q*cg+7Hʦ aaRه5aӴ+u΢b& &%{_ah`}%I?jA1N//'W8~MT2va {F;AvhP{,Y= g{}vrʉh{l kX.鰆5g_yנKn]Uω9 BϖU3Z&y|eְjXv́4.ZB?#U|RӰ5V#ְ5a kX^wIw|"A~}IENDB`xcfa-4.3.6/pixmaps/selected_exist.png0000755000175000017500000000112710675013504014566 00000000000000PNG  IHDR cbKGD pHYs tIME1GIDAT8˥;hQ{6>H X$q1$`![D )$ 6hmU"j`-EĠ!DH"VjdcVec2JXB6٬ys>9lYꪉяIoBuٞ F`:&#ڨ_A틗i'R8뗓FB`>UM:QOnn.]۞ƈ|3Vӵʧݥ[{b Lh0݊"clPɾ:)9,Z-  Zݕj2+`^& ((+KDô<:.:#d+_A}c?e@Y Ge1du'4Bn5X @: 8/}5E!fd辬Vaһ8kIA>?50n vH! wqs!|-K-Klk+Ҳ=Y~Yk`iGG:;)!<5{6xӎ/AIENDB`xcfa-4.3.6/pixmaps/rpg_piste.png0000755000175000017500000000032010741427100013543 00000000000000PNG  IHDRIDAT8SQ k_H)뇂[2~uIk\A(|ћ\MN IF%WzOϛy>νF:9Is)Ow %=Rse`dAUuIENDB`xcfa-4.3.6/pixmaps/no_play.png0000755000175000017500000000050310675013504013220 00000000000000PNG  IHDRw=gAMA|Q cHRMz%u0`:oIDATxb?-@1t  [@XDa  "")ȱ HdR- R)ɔXK|@%DqF#d @Ql,c%@Y@p - p , p - p , p - p , p "Ԑe0 ͫLDs  v%. cIENDB`xcfa-4.3.6/pixmaps/2ch.png0000755000175000017500000000140210675013504012232 00000000000000PNG  IHDR vsBIT|d pHYs]]OtEXtSoftwarewww.inkscape.org<IDAT8_HTF.ڴy1)(+XsE]cA,)?j]t!BPcf1;/rccp&M9?9Xދu خxT] X8:F<o%~͑pǯFEDo ]XH4)eZ5IzU"7\S'pٓy;mX 銌1R+_%/ċy9*⺦bWc5[m4)p+NSsV3 RVyYv"O-0@&:oYz޻ʠ{Mnkn50WŎ>ufF~[W[lOcnCZxCUjI"%i.J>Ik3jVG| )T\rɴQeGC)kLT]>GMQ,4/S\Uo) IENDB`xcfa-4.3.6/pixmaps/coche.png0000755000175000017500000000027510675013504012646 00000000000000PNG  IHDRH- pHYs  oIDAT( 0g -h)% %W~H 'ݏy{dYI bb(k;µ( + QqOՕ#*ƎZm4~&Ѳ3{"kWrOpzF[.ފ"nIENDB`xcfa-4.3.6/pixmaps/norm_mix.png0000755000175000017500000000045210741426554013421 00000000000000PNG  IHDR/E?IDATHV Kg/ւ89I_>R$eͥ>ZA$Eyr %zIDJ)ԧv \ֻjՉ^&_>NKӗ>nOӐPeC |7g-”N!2 B7sdMfP YBCJZ AT=P%WrɈ:9V+dD|sxIENDB`xcfa-4.3.6/pixmaps/norm_fix.png0000755000175000017500000000044110741426262013404 00000000000000PNG  IHDR0irZIDATHU LloQ֨I2x8 IENDB`xcfa-4.3.6/pixmaps/rpg_album.png0000755000175000017500000000035110741427206013532 00000000000000PNG  IHDRIDAT8S[!G0Ώ>fl#jEHIX`57M7~0(9Se:q>F7{h@b}ߚWեmh)߰bsV< $GyxeKUDq{3SJ:>9?Z`ד۞N+97Wvc/_)$'8\jwIENDB`xcfa-4.3.6/pixmaps/trash.png0000755000175000017500000000262610760316140012705 00000000000000PNG  IHDRĴl;]IDAT8_lW{ڱk{MPJ"!jDUB#oQޢ(oMD % HB 7ٵ]o3w,T ~y|ãqQ5;; 岙2r nC)̌w!e\ιzP嗾z~l677L40W|h~\.lOO*m|xa(X8qB^~}sœAj)^~GLDv ;%wsgNoj5 <ضowNM ^տsZhL5KKI`L*n˗?GnZ\ZZ{KݷX_`nv* p]IF7>a< .cB OͼnoYdY\<8$ITA._GU2%q]\ `L="kuuNg[2]AIINS,:Itȃ&1b cq0@o&  EL-1C$`4 h6lllR7th?"MMcaJeb% cDa@un0z #l6惏bÀ$$z Z ph6wj'Z²{`uҥKw1Kݠvj z]֚O7ӧr)1ԡSH7 A)7or1]F(%I]}v׵B67}#I@JvH R`iij[ܺ>>A0F8N'%/^(RH)LR@Tf2eYd9+S!mR ۶QJ!gϞZaΝR&m45ffPJ86\!ayi$qlyu$cg1qqRb1Guq`4$TL&!B'wݻu:RhƘiI 2FQ1Id2XQ1Yc!xbI $I1#MEf0B"R 8&4mq$"Bv:ovfh;8F*ɞH!ј:;;ׁZ)YE>/N&z9r];RJyfC wn#駷RE0Ry^REZu}߷0t8v8eK)_0 ϒ|XuC%RqJ2:sL/ꕼ7# IENDB`xcfa-4.3.6/pixmaps/selected_expert.png0000755000175000017500000000077610675013504014752 00000000000000PNG  IHDR _bKGD pHYs$$C]ntIME"<IDAT(ύ1HT7?$xa4M#O5;\+3Kg>;$(I@U0[C<)' Vivmp2Nq,eRl\F\~@A};^E͈-3ZYTm77eN38"Շ<'8hgõN!:l39(Ǯe?O1]̹g0c<Q322)=JL)~ zLAID{y Ry !W]ᵽD\g`w*WMF~ + 8\ ' IENDB`xcfa-4.3.6/pixmaps/prg-ok.png0000755000175000017500000000115610754762602012773 00000000000000PNG  IHDRH-5IDAT(}KSqƟ{3ۄ3VJvfLB CFE@;]xmz~B yxDUn+*4 :I3q ӥQ"8Ɏg˳rrX{+kڤq_sJH,vmwJ=h}>Na'YK^v3E< RFX2($^ZŖN8Pr3"?y 4@"("c5­׎kEK{OڏoydT‚?C!0Z%s Gsl31%0w) S8/Z7M8 ,ugQB?B0p YW ]2h& ) Rե*V*M_Ou &t @ Ц~Lyozg%_=. SGBC٪D"n$?31s[[qߝnŮ{غAQٛLLV߬z/9f~3Th=ŠMAq &ϲ7?5/h)e%GIENDB`xcfa-4.3.6/pixmaps/rpg_effacer.png0000755000175000017500000000142710572634050014031 00000000000000PNG  IHDRw=gAMA aIDATxݒMHTQ mi~O6:hP,EDdajaE9E`i"a@t"I}#b$YE=6u.νmזV8o-3 )) J J Emm*(vmņk!@X1-@zb7 IM Z6=y8WN{ UHNN@I)BCu) s)68m"cgho2uϛ e#&EFɺrR7 K0i-Hs9^JO+>^XfQ{z2]3µ"+/StN#xamLLN1*XXX$mSiS#il*"cR Q^KdQ X,hEq[f8<}FjcoYjڅ.Ƶi؄bv3ɉAHNz#3Yjݻfi׮j<arӐewΨ۷\ ğbp~tX+ \#'Qe``+g(շ Q] v3+rtc1Y̏;PQeIDT88Vc sլZE72fIENDB`xcfa-4.3.6/pixmaps/dbfs-no.png0000755000175000017500000000131510750562456013122 00000000000000PNG  IHDRaIDAT8MkSi=!&1LcV"8 i)WݸA t,f%mAp1"ZQjtfNҦ5Dž?ͽx.%"ͩU=??ȻdATh\p433#J)\llVkDꋌ$ƼY^[{֭+;ի snTˣ"@`@$Yvw;:n0N&q֟< :S*@0 PAe!? #5ilyގSVS4 Qty\d,@j/}zbp!KJ9j^Q3'!@S6)i !{0 8iØkmV;"~$@uD|  @tT  f*R6SC:6&4S}ozy7z_}LOOaڰ&ҋqtfo}JQq?.5b [<,:,2\>VzYu;Xyb1R"E+Zͦ޾0LZ]eR on>wN:/,,$ׇ]c=#Cխ x;11Y&=#Z|fIENDB`xcfa-4.3.6/pixmaps/selected_expert_exist.png0000755000175000017500000000107410675013504016156 00000000000000PNG  IHDR cbKGD pHYs tIME f"IDAT8˥AHSq?9lJ6hB1>5P:tKtiD:$JEQաVBSQ A'6^xf}~?~$MUTSn3Mq>ח*Em}Ch"5*"o}#]T^JD5 n`5& +F9`#󟁦(۹\'VHl -sX%>)JYI3p Sv'kQCdL?l:,4™r'OWhDU*aO!d2x^ 7CMl+'/aJ/'a> /!6[A#tD,zZn~>G$B_Cd_{y[HTUs/bET0v}=WqƘ FLAvHIENDB`xcfa-4.3.6/pixmaps/sol.png0000755000175000017500000000041310675013504012354 00000000000000PNG  IHDRabKGD pHYs  tIME!vtIDAT8˭ 0 E['\^80CT=bf$˘)Rg'KYД%$/_AY@.T&W];ObHysxґ+c%?OXC#%J3EZ`IENDB`xcfa-4.3.6/pixmaps/Makefile.in0000644000175000017500000003011512224542373013120 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = pixmaps DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_GEN = $(am__v_GEN_$(V)) am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) am__v_GEN_0 = @echo " GEN " $@; AM_V_at = $(am__v_at_$(V)) am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) am__v_at_0 = @ SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(pixmapsdir)" DATA = $(pixmaps_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PREFIX = @INSTALL_PREFIX@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_CFLAGS = @PACKAGE_CFLAGS@ PACKAGE_LIBS = @PACKAGE_LIBS@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ # # pixmaps/Makefile.am # AUTOMAKE_OPTIONS = gnu pixmaps_DATA = coche.png selected.png coche_exist.png selected_exist.png selected_expert.png selected_expert_exist.png sol.png \ no_play.png not_install.png rpg_piste.png rpg_album.png rpg_effacer.png norm_rpg_wait.png norm_fix.png norm_mix.png norm_peak.png \ normalize2.png trash.png 2ch.png prg-ok.png dbfs-no.png about.png gplv3.png pixmapsdir = $(datadir)/pixmaps/xcfa EXTRA_DIST = $(pixmaps_DATA) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu pixmaps/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu pixmaps/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-pixmapsDATA: $(pixmaps_DATA) @$(NORMAL_INSTALL) test -z "$(pixmapsdir)" || $(MKDIR_P) "$(DESTDIR)$(pixmapsdir)" @list='$(pixmaps_DATA)'; test -n "$(pixmapsdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pixmapsdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(pixmapsdir)" || exit $$?; \ done uninstall-pixmapsDATA: @$(NORMAL_UNINSTALL) @list='$(pixmaps_DATA)'; test -n "$(pixmapsdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(pixmapsdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(pixmapsdir)" && rm -f $$files tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(pixmapsdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-pixmapsDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-pixmapsDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic distclean \ distclean-generic distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-pixmapsDATA install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic pdf pdf-am ps ps-am uninstall \ uninstall-am uninstall-pixmapsDATA uninstall: rm -rf "$(DESTDIR)$(datadir)/pixmaps/xcfa"; # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: xcfa-4.3.6/pixmaps/gplv3.png0000644000175000017500000000353311537205454012622 00000000000000PNG  IHDRXc sRGB pHYs''TtIME0|bKGDIDATh lVE )4DRD(!E"P#B "HKԆP9D\EA *GXfmIhG~;oٙy/$vZBAW Fʁ_R>䃫 LBl(d%9p(0aul W6P_;0U=#6ga I#ɺk`#ia6-X UNK;U[*qއ} '/X뀆ʱ=|A*[^srk>t&5MQ \ZgZm,WO,f>i@n ր 6'P^3zm\pmr[|<*7I&{g"hrpo Mcz9=l23X~mYg~m,w0|# r\]0< NږUGB,TrRnE60!{{PuY[^0q~Zq'Ŀ_6~,dW9s }D X;)R9VOyu o'E}cs@1/|*WExTaS`L\{^-mџm(mӃ흸BYh1ΆOxP\expr@-8 X$ݮStaloj{i֏媠;Y˲TdnŪ`)Q<Ԇa6YN&℃XES3-5a{ ˑ,ysiE P$M2Ch`SNCMҷdc:lC"&"e߱kz (7NwPp5@z:ZFϢ/"B- cYreKAuڼ)¿@ǤCuQV=> XXbVOz\mLbGgo\+r Kr0f?w^{h.h۞bZMb>YN0Xk;_K)vuվb8=rka/MB#psMW+LzuTTYδP*a|ɷbM(cYLVik.^`dm0p+)&cTdDFfdv&f/D 5GX>8Px[iyrޔ(>Hdq J󟛫F*zPM{^W݌YZcߐ@?0 {Nh$IENDB`xcfa-4.3.6/pixmaps/normalize2.png0000755000175000017500000000104510675013504013643 00000000000000PNG  IHDR _bKGD pHYsZ;OtIME dxEIDAT(c?1_Ep//21 XJX확5xYX[Ȯ($Rl}O#?i,U,VfcҟW/ށHssƮc^\./01wh>fsyqfkgv}$̲"nndaan̝^GXY]p6eWMY}"73&>f`gg` Sa1fe翷\~2czv/wh?1د^)/Fv۶}hbDO6-\=4a7IENDB`xcfa-4.3.6/pixmaps/selected.png0000755000175000017500000000105710675013504013354 00000000000000PNG  IHDR _bKGD pHYs tIME62 N7IDAT(c;1S׌e/#/21 xYJm8칕XyYZ(ʣ*\!ɟ}W}D%* =ӏsjf4g77ßO.DFAA ȘӑYC8UQl/0q2<g*wU4f8h^;?{߿w.7$ZW$ %}vga |S?_#Id01000ydzA;Wq.'cr _K>?f`dwT7`cfxwW\{{G^e>w~23^?V&hbDO",<-L~O&4 @#xIENDB`xcfa-4.3.6/pixmaps/coche_exist.png0000755000175000017500000000025110675013504014054 00000000000000PNG  IHDR* pHYs  tIME ,PHIDAT(풱0y`Q dt_BOtY'غտZO6t>̀px.ON "zGhIENDB`xcfa-4.3.6/compile0000755000175000017500000000717311400750713010752 00000000000000#! /bin/sh # Wrapper for compilers which do not understand `-c -o'. scriptversion=2005-05-14.22 # Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc. # Written by Tom Tromey . # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # This file is maintained in Automake, please report # bugs to or send patches to # . case $1 in '') echo "$0: No command. Try \`$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: compile [--help] [--version] PROGRAM [ARGS] Wrapper for compilers which do not understand `-c -o'. Remove `-o dest.o' from ARGS, run PROGRAM with the remaining arguments, and rename the output as expected. If you are trying to build a whole package this is not the right script to run: please start by reading the file `INSTALL'. Report bugs to . EOF exit $? ;; -v | --v*) echo "compile $scriptversion" exit $? ;; esac ofile= cfile= eat= for arg do if test -n "$eat"; then eat= else case $1 in -o) # configure might choose to run compile as `compile cc -o foo foo.c'. # So we strip `-o arg' only if arg is an object. eat=1 case $2 in *.o | *.obj) ofile=$2 ;; *) set x "$@" -o "$2" shift ;; esac ;; *.c) cfile=$1 set x "$@" "$1" shift ;; *) set x "$@" "$1" shift ;; esac fi shift done if test -z "$ofile" || test -z "$cfile"; then # If no `-o' option was seen then we might have been invoked from a # pattern rule where we don't need one. That is ok -- this is a # normal compilation that the losing compiler can handle. If no # `.c' file was seen then we are probably linking. That is also # ok. exec "$@" fi # Name of file we expect compiler to create. cofile=`echo "$cfile" | sed -e 's|^.*/||' -e 's/\.c$/.o/'` # Create the lock directory. # Note: use `[/.-]' here to ensure that we don't use the same name # that we are using for the .o file. Also, base the name on the expected # object file name, since that is what matters with a parallel build. lockdir=`echo "$cofile" | sed -e 's|[/.-]|_|g'`.d while true; do if mkdir "$lockdir" >/dev/null 2>&1; then break fi sleep 1 done # FIXME: race condition here if user kills between mkdir and trap. trap "rmdir '$lockdir'; exit 1" 1 2 15 # Run the compile. "$@" ret=$? if test -f "$cofile"; then mv "$cofile" "$ofile" elif test -f "${cofile}bj"; then mv "${cofile}bj" "$ofile" fi rmdir "$lockdir" exit $ret # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: xcfa-4.3.6/configure.ac0000644000175000017500000002506612224542360011665 00000000000000# # configure.in # -*- Autoconf -*- # Process this file with autoconf to produce a configure script. # For XCFA project # AC_INIT([xcfa], [4.3.6], [http://www.xcfa.tuxfamily.org/], [xcfa], [http://www.xcfa.tuxfamily.org/]) AM_INIT_AUTOMAKE AC_CONFIG_SRCDIR([src/main.c]) AC_CONFIG_HEADERS([config.h]) # Enable silent rules if supported m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) # Checks for programs. AC_PROG_CXX AC_PROG_CC AC_PROG_CPP AC_PROG_INSTALL AC_PROG_MAKE_SET AC_PATH_X AC_PROG_RANLIB AM_PROG_CC_C_O AC_DEFINE(ENABLE_STATIC_LIBRARY,1,[Define for enable static libarry]) # Set PREFIX: ./configure OR ./configure --prefix=/usr AC_SUBST(INSTALL_PREFIX) AC_PREFIX_DEFAULT(/usr/local) if [[ $prefix = "NONE" ]] ; then AC_DEFINE(INSTALL_PREFIX, "/usr/local", [define as prefix where xcfa is installed]) else AC_DEFINE_UNQUOTED(INSTALL_PREFIX, "$prefix") fi # Set used name package glade: *.glade or *.ui AC_DEFINE(PACKAGE_NAME_GLADE, "xcfa.glade", [define as package name of glade]) AC_DEFINE(PACKAGE_NAME_GLADE_UI, "xcfa.ui", [define as package name of ui]) # nls support AC_MSG_CHECKING(for nls mode support) XCFA_LANG="en en_GB es fr de it nl" AC_ARG_ENABLE(nls, , [ if test "$enableval" = "yes"; then ALL_LINGUAS=$XCFA_LANG AC_MSG_RESULT(yes) AM_GNU_GETTEXT([external]) AC_DEFINE(ENABLE_NLS,1,[Define for NLS support]) else AC_MSG_RESULT(no) ALL_LINGUAS= USE_NLS="no" fi ], [ ALL_LINGUAS=$XCFA_LANG AC_MSG_RESULT(yes) AM_GNU_GETTEXT([external]) AC_DEFINE(ENABLE_NLS,1,[Define for NLS support]) ]) GETTEXT_PACKAGE=[$PACKAGE] AC_SUBST(GETTEXT_PACKAGE) AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],["$GETTEXT_PACKAGE"],[gettext domain]) # Checks for libraries. AC_CHECK_LIB([lib], [libutils_test_file_exist]) # Checks for header files. AC_HEADER_DIRENT AC_HEADER_STDC AC_HEADER_SYS_WAIT AC_CHECK_HEADERS([fcntl.h libintl.h stdlib.h string.h unistd.h sys/time.h math.h locale.h sys/socket.h]) # Checks for typedefs, structures, and compiler characteristics. AC_HEADER_STDBOOL AC_C_CONST AC_TYPE_PID_T AC_TYPE_SIZE_T AC_TYPE_SSIZE_T AC_TYPE_INT64_T # Checks for library functions. AC_FUNC_CLOSEDIR_VOID AC_FUNC_FORK AC_PROG_GCC_TRADITIONAL AC_FUNC_LSTAT AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK AC_FUNC_MALLOC AC_TYPE_SIGNAL AC_CHECK_FUNCS([dup2 getcwd memset mkfifo setlocale strcasecmp strchr strdup strncasecmp strrchr strstr uname gettimeofday strtoul socket]) # # debug and ansi support # AC_ARG_ENABLE(debug_pg, AS_HELP_STRING([--disable-debug-pg], [Enable debug mode (default=disable)]),,enable_debug_pg=no) AC_ARG_ENABLE(debug, AS_HELP_STRING([--disable-debug], [Disable debug mode (default=disable)]),,enable_debug=no) AC_ARG_ENABLE(ansi, AS_HELP_STRING([--disable-ansi], [Enable ansi (default=enabled)]),,enable_ansi=no) AC_MSG_CHECKING(for debug mode request) if test "$enable_debug" = "yes"; then AC_MSG_RESULT(yes) AC_DEFINE(DEBUG,1,[Define for debug support]) AC_MSG_CHECKING(With ansi compilate) if test "$enable_ansi" = "yes"; then AC_MSG_RESULT(yes) AC_DEFINE(ENABLE_ANSI,1,[Define With ansi compilate]) AC_MSG_CHECKING(With enable_debug_pg) if test "$enable_debug_pg" = "yes"; then AC_MSG_RESULT(yes) AC_DEFINE(ENABLE_DEBUG_PG,1,[Define for debug gprof support]) echo "***" echo "*** enable_debug=yes, enable_ansi=yes, enable_debug_pg=yes" echo "*** CFLAGS=-pg -g -O2 -Wall -ansi -D_REENTRANT -DLinux -Wl,--export-dynamic" echo "***" CFLAGS="-pg -g -O2 -Wall -ansi -D_REENTRANT -DLinux -Wl,--export-dynamic" else AC_MSG_RESULT(no) echo "***" echo "*** enable_debug=yes, enable_ansi=yes, enable_debug_pg=no" echo "*** CFLAGS=-g -O2 -Wall -ansi -D_REENTRANT -DLinux -Wl,--export-dynamic" echo "***" CFLAGS="-g -O2 -Wall -ansi -D_REENTRANT -DLinux -Wl,--export-dynamic" fi else AC_MSG_RESULT(no) AC_MSG_CHECKING(With enable_debug_pg) if test "$enable_debug_pg" = "yes"; then AC_MSG_RESULT(yes) AC_DEFINE(ENABLE_DEBUG_PG,1,[Define for debug gprof support]) echo "***" echo "*** enable_debug=yes, enable_ansi=no, enable_debug_pg=yes" echo "*** CFLAGS=-pg -g -O2 -Wall -D_REENTRANT -DLinux -Wl,--export-dynamic" echo "***" CFLAGS="-pg -g -O2 -Wall -D_REENTRANT -DLinux -Wl,--export-dynamic" else AC_MSG_RESULT(no) echo "***" echo "*** enable_debug=yes, enable_ansi=no, enable_debug_pg=no" echo "*** CFLAGS=-g -O2 -Wall -D_REENTRANT -DLinux -Wl,--export-dynamic" echo "***" CFLAGS="-g -O2 -Wall -D_REENTRANT -DLinux -Wl,--export-dynamic" fi fi else AC_MSG_RESULT(no) AC_MSG_CHECKING(With ansi compilate) if test "$enable_ansi" = "yes"; then AC_MSG_RESULT(yes) AC_DEFINE(ENABLE_ANSI,1,[Define With ansi compilate]) AC_MSG_CHECKING(With enable_debug_pg) if test "$enable_debug_pg" = "yes"; then AC_MSG_RESULT(yes) AC_DEFINE(ENABLE_DEBUG_PG,1,[Define for debug gprof support]) echo "***" echo "*** enable_debug=no, enable_ansi=yes, enable_debug_pg=yes" echo "*** CFLAGS=-pg -Wall -ansi -D_REENTRANT -DLinux -Wl,--export-dynamic" echo "***" CFLAGS="-pg -Wall -ansi -D_REENTRANT -DLinux -Wl,--export-dynamic" else echo "***" echo "*** enable_debug=no, enable_ansi=yes, enable_debug_pg=no" echo "*** CFLAGS=-Wall -ansi -D_REENTRANT -DLinux -Wl,--export-dynamic" echo "***" CFLAGS="-Wall -ansi -D_REENTRANT -DLinux -Wl,--export-dynamic" fi else AC_MSG_RESULT(no) AC_MSG_CHECKING(With enable_debug_pg) if test "$enable_debug_pg" = "yes"; then AC_MSG_RESULT(yes) AC_DEFINE(ENABLE_DEBUG_PG,1,[Define for debug gprof support]) echo "***" echo "*** enable_debug=no, enable_ansi=no, enable_debug_pg=yes" echo "*** CFLAGS=-pg -Wall -D_REENTRANT -DLinux -Wl,--export-dynamic" echo "***" CFLAGS="-pg -Wall -D_REENTRANT -DLinux -Wl,--export-dynamic" else AC_MSG_RESULT(no) echo "***" echo "*** enable_debug=no, enable_ansi=no, enable_debug_pg=no" echo "*** CFLAGS=-Wall -O3 -D_REENTRANT -DLinux -Wl,--export-dynamic" echo "***" CFLAGS="-Wall -O3 -D_REENTRANT -DLinux -Wl,--export-dynamic" fi fi fi # # Check for complex math functions support: -lm # AC_CHECK_LIB(m,roundf,[ LDFLAGS="-lm $LDFLAGS" ]) # # gtk support # pkg_modules="gtk+-2.0 cairo glib-2.0 gthread-2.0" PKG_CHECK_MODULES(PACKAGE, [$pkg_modules]) AC_SUBST(PACKAGE_CFLAGS) AC_SUBST(PACKAGE_LIBS) # # taglib support # AC_CHECK_LIB([tag_c], [taglib_file_new],, [ echo "***" echo "*** Please, install libtag1-dev,libtagc0-dev development headers" echo "*** OR" echo "*** install taglib-dev for Fedora, Mandriva" echo "***" exit -1 ]) AC_DEFINE([HAVE_TAGLIB], 1, [Define if you have TAGLIB installed]) # # asound support # AC_CHECK_LIB([asound], [snd_pcm_open],, [ echo "***" echo "*** Please, install libasound2-dev development headers" echo "***" exit -1 ]) AC_DEFINE([HAVE_ALSA], 1, [Define if you have ALSA installed]) # # pthread support # AC_CHECK_LIB([pthread], [pthread_create],, [ echo "***" echo "*** Please, install pthread-dev development headers" echo "***" exit -1 ]) # # curl support # AC_CHECK_LIB([curl], [curl_easy_init],, [ echo "***" echo "*** Please, install libcurl4-gnutls-dev or libcurl4-openssl-dev development headers" echo "***" exit -1 ]) AC_DEFINE([HAVE_CURL], 1, [Define if you have CURL installed]) # # vte support # AC_CHECK_LIB([vte], [vte_terminal_feed],, [ echo "***" echo "*** Please, install libvte-dev development headers" echo "***" exit -1 ]) AC_DEFINE([HAVE_VTE], 1, [Define if you have VTE installed]) # # for win_vte.c: directory vte.h ? # FILE_DEBIAN_VTE_H="/usr/include/vte/vte.h" FILE_ARCH_VTE_H="/usr/include/vte-0.0/vte/vte.h" FILE_FW_VTE_H="/usr/include/vte-2.90/vte/vte.h" if test -f $FILE_DEBIAN_VTE_H; then AC_DEFINE([FILE_DEBIAN_VTE_H_IS_OK], 1, [Define if you have vte.h in /usr/include/vte/vte.h]) elif test -f $FILE_ARCH_VTE_H; then AC_DEFINE([FILE_ARCH_VTE_H_IS_OK], 1, [Define if you have vte.h in /usr/include/vte-0.0/vte/vte.h]) elif test -f $FILE_FW_VTE_H; then AC_DEFINE([FILE_FW_VTE_H_IS_OK], 1, [Define if you have vte.h in /usr/include/vte-2.90/vte/vte.h]) fi # # ? System info # case $host in *linux*) HOST="Linux-based system" ;; *openbsd*) HOST="OpenBSD" ;; *netbsd*) HOST="NetBSD" ;; *freebsd*) HOST="FreeBSD" ;; *mingw*) HOST="Mingw" ;; *solaris*) HOST="Solaris" ;; *) HOST="Other" ;; esac AC_CONFIG_FILES([ po/Makefile.in lib/Makefile Makefile src/Makefile man/Makefile pixmaps/Makefile menu/Makefile mime/Makefile glade/Makefile desktop/Makefile ]) AC_OUTPUT the_hostname=`hostname` pkg_config_modversion_gtk=`pkg-config --modversion gtk+-2.0` pkg_config_modversion_cairo=`pkg-config --modversion cairo` pkg_config_modversion_glib=`pkg-config --modversion glib-2.0` pkg_config_modversion_gthread=`pkg-config --modversion gthread-2.0` pkg_config_modversion_libcurl=`pkg-config --modversion libcurl` pkg_config_modversion_vte=`pkg-config --modversion vte` AC_MSG_NOTICE([ ================================================================= Configuration for $PACKAGE $VERSION : ================================================================= Host System Type ................ : $host ( $HOST ) HosName ......................... : $the_hostname Compiler ........................ : $CC $CPPFLAGS LDFLAGS ......................... : $LDFLAGS LIBS ............................ : $LIBS NLS/gettext ..................... : $USE_NLS ALL_LINGUAS ..................... : $ALL_LINGUAS GTK+ version .................... : $pkg_config_modversion_gtk CAIRO version ................... : $pkg_config_modversion_cairo GLIB version .................... : $pkg_config_modversion_glib GTHREAD version ................. : $pkg_config_modversion_gthread LIBCURL version ................. : $pkg_config_modversion_libcurl VTE version ..................... : $pkg_config_modversion_vte Debug mode g .................... : $enable_debug Debug mode pg ................... : $enable_debug_pg WITH ANSI COMPILATE ............. : $enable_ansi CFLAGS .......................... : $CFLAGS INSTALL ......................... : $prefix/bin/xcfa Options parameters: ------------------- by default: --disable-debug No debug support --disable-debug-pg No debug support with gprof --disable-ansi No define ansi for probleme compilate Options is: --enable-debug #define DEBUG 1 Define for debug: -g --enable-debug-pg #define DEBUG_PG 1 Define for debug support with gprof: -pg --enable-ansi #define ENABLE_ANSI 1 Define With ansi compilate Now type 'make' to build $PACKAGE $VERSION, and then type (under root) 'make install' for installation. ]) xcfa-4.3.6/ABOUT-NLS0000644000175000017500000022532611400750706010627 000000000000001 Notes on the Free Translation Project *************************************** Free software is going international! The Free Translation Project is a way to get maintainers of free software, translators, and users all together, so that free software will gradually become able to speak many languages. A few packages already provide translations for their messages. If you found this `ABOUT-NLS' file inside a distribution, you may assume that the distributed package does use GNU `gettext' internally, itself available at your nearest GNU archive site. But you do _not_ need to install GNU `gettext' prior to configuring, installing or using this package with messages translated. Installers will find here some useful hints. These notes also explain how users should proceed for getting the programs to use the available translations. They tell how people wanting to contribute and work on translations can contact the appropriate team. When reporting bugs in the `intl/' directory or bugs which may be related to internationalization, you should tell about the version of `gettext' which is used. The information can be found in the `intl/VERSION' file, in internationalized packages. 1.1 Quick configuration advice ============================== If you want to exploit the full power of internationalization, you should configure it using ./configure --with-included-gettext to force usage of internationalizing routines provided within this package, despite the existence of internationalizing capabilities in the operating system where this package is being installed. So far, only the `gettext' implementation in the GNU C library version 2 provides as many features (such as locale alias, message inheritance, automatic charset conversion or plural form handling) as the implementation here. It is also not possible to offer this additional functionality on top of a `catgets' implementation. Future versions of GNU `gettext' will very likely convey even more functionality. So it might be a good idea to change to GNU `gettext' as soon as possible. So you need _not_ provide this option if you are using GNU libc 2 or you have installed a recent copy of the GNU gettext package with the included `libintl'. 1.2 INSTALL Matters =================== Some packages are "localizable" when properly installed; the programs they contain can be made to speak your own native language. Most such packages use GNU `gettext'. Other packages have their own ways to internationalization, predating GNU `gettext'. By default, this package will be installed to allow translation of messages. It will automatically detect whether the system already provides the GNU `gettext' functions. If not, the included GNU `gettext' library will be used. This library is wholly contained within this package, usually in the `intl/' subdirectory, so prior installation of the GNU `gettext' package is _not_ required. Installers may use special options at configuration time for changing the default behaviour. The commands: ./configure --with-included-gettext ./configure --disable-nls will, respectively, bypass any pre-existing `gettext' to use the internationalizing routines provided within this package, or else, _totally_ disable translation of messages. When you already have GNU `gettext' installed on your system and run configure without an option for your new package, `configure' will probably detect the previously built and installed `libintl.a' file and will decide to use this. This might not be desirable. You should use the more recent version of the GNU `gettext' library. I.e. if the file `intl/VERSION' shows that the library which comes with this package is more recent, you should use ./configure --with-included-gettext to prevent auto-detection. The configuration process will not test for the `catgets' function and therefore it will not be used. The reason is that even an emulation of `gettext' on top of `catgets' could not provide all the extensions of the GNU `gettext' library. Internationalized packages usually have many `po/LL.po' files, where LL gives an ISO 639 two-letter code identifying the language. Unless translations have been forbidden at `configure' time by using the `--disable-nls' switch, all available translations are installed together with the package. However, the environment variable `LINGUAS' may be set, prior to configuration, to limit the installed set. `LINGUAS' should then contain a space separated list of two-letter codes, stating which languages are allowed. 1.3 Using This Package ====================== As a user, if your language has been installed for this package, you only have to set the `LANG' environment variable to the appropriate `LL_CC' combination. If you happen to have the `LC_ALL' or some other `LC_xxx' environment variables set, you should unset them before setting `LANG', otherwise the setting of `LANG' will not have the desired effect. Here `LL' is an ISO 639 two-letter language code, and `CC' is an ISO 3166 two-letter country code. For example, let's suppose that you speak German and live in Germany. At the shell prompt, merely execute `setenv LANG de_DE' (in `csh'), `export LANG; LANG=de_DE' (in `sh') or `export LANG=de_DE' (in `bash'). This can be done from your `.login' or `.profile' file, once and for all. You might think that the country code specification is redundant. But in fact, some languages have dialects in different countries. For example, `de_AT' is used for Austria, and `pt_BR' for Brazil. The country code serves to distinguish the dialects. The locale naming convention of `LL_CC', with `LL' denoting the language and `CC' denoting the country, is the one use on systems based on GNU libc. On other systems, some variations of this scheme are used, such as `LL' or `LL_CC.ENCODING'. You can get the list of locales supported by your system for your language by running the command `locale -a | grep '^LL''. Not all programs have translations for all languages. By default, an English message is shown in place of a nonexistent translation. If you understand other languages, you can set up a priority list of languages. This is done through a different environment variable, called `LANGUAGE'. GNU `gettext' gives preference to `LANGUAGE' over `LANG' for the purpose of message handling, but you still need to have `LANG' set to the primary language; this is required by other parts of the system libraries. For example, some Swedish users who would rather read translations in German than English for when Swedish is not available, set `LANGUAGE' to `sv:de' while leaving `LANG' to `sv_SE'. Special advice for Norwegian users: The language code for Norwegian bokma*l changed from `no' to `nb' recently (in 2003). During the transition period, while some message catalogs for this language are installed under `nb' and some older ones under `no', it's recommended for Norwegian users to set `LANGUAGE' to `nb:no' so that both newer and older translations are used. In the `LANGUAGE' environment variable, but not in the `LANG' environment variable, `LL_CC' combinations can be abbreviated as `LL' to denote the language's main dialect. For example, `de' is equivalent to `de_DE' (German as spoken in Germany), and `pt' to `pt_PT' (Portuguese as spoken in Portugal) in this context. 1.4 Translating Teams ===================== For the Free Translation Project to be a success, we need interested people who like their own language and write it well, and who are also able to synergize with other translators speaking the same language. Each translation team has its own mailing list. The up-to-date list of teams can be found at the Free Translation Project's homepage, `http://translationproject.org/', in the "Teams" area. If you'd like to volunteer to _work_ at translating messages, you should become a member of the translating team for your own language. The subscribing address is _not_ the same as the list itself, it has `-request' appended. For example, speakers of Swedish can send a message to `sv-request@li.org', having this message body: subscribe Keep in mind that team members are expected to participate _actively_ in translations, or at solving translational difficulties, rather than merely lurking around. If your team does not exist yet and you want to start one, or if you are unsure about what to do or how to get started, please write to `coordinator@translationproject.org' to reach the coordinator for all translator teams. The English team is special. It works at improving and uniformizing the terminology in use. Proven linguistic skills are praised more than programming skills, here. 1.5 Available Packages ====================== Languages are not equally supported in all packages. The following matrix shows the current state of internationalization, as of November 2007. The matrix shows, in regard of each package, for which languages PO files have been submitted to translation coordination, with a translation percentage of at least 50%. Ready PO files af am ar az be bg bs ca cs cy da de el en en_GB eo +----------------------------------------------------+ Compendium | [] [] [] [] | a2ps | [] [] [] [] [] | aegis | () | ant-phone | () | anubis | [] | ap-utils | | aspell | [] [] [] [] [] | bash | [] | bfd | | bibshelf | [] | binutils | | bison | [] [] | bison-runtime | [] | bluez-pin | [] [] [] [] [] | cflow | [] | clisp | [] [] [] | console-tools | [] [] | coreutils | [] [] [] [] | cpio | | cpplib | [] [] [] | cryptonit | [] | dialog | | diffutils | [] [] [] [] [] [] | doodle | [] | e2fsprogs | [] [] | enscript | [] [] [] [] | fetchmail | [] [] () [] [] | findutils | [] | findutils_stable | [] [] [] | flex | [] [] [] | fslint | | gas | | gawk | [] [] [] | gcal | [] | gcc | [] | gettext-examples | [] [] [] [] [] | gettext-runtime | [] [] [] [] [] | gettext-tools | [] [] | gip | [] | gliv | [] [] | glunarclock | [] | gmult | [] [] | gnubiff | () | gnucash | [] [] () () [] | gnuedu | | gnulib | [] | gnunet | | gnunet-gtk | | gnutls | [] | gpe-aerial | [] [] | gpe-beam | [] [] | gpe-calendar | | gpe-clock | [] [] | gpe-conf | [] [] | gpe-contacts | | gpe-edit | [] | gpe-filemanager | | gpe-go | [] | gpe-login | [] [] | gpe-ownerinfo | [] [] | gpe-package | | gpe-sketchbook | [] [] | gpe-su | [] [] | gpe-taskmanager | [] [] | gpe-timesheet | [] | gpe-today | [] [] | gpe-todo | | gphoto2 | [] [] [] [] | gprof | [] [] | gpsdrive | | gramadoir | [] [] | grep | [] [] | gretl | () | gsasl | | gss | | gst-plugins-bad | [] [] | gst-plugins-base | [] [] | gst-plugins-good | [] [] [] | gst-plugins-ugly | [] [] | gstreamer | [] [] [] [] [] [] [] | gtick | () | gtkam | [] [] [] [] | gtkorphan | [] [] | gtkspell | [] [] [] [] | gutenprint | [] | hello | [] [] [] [] [] | herrie | [] | hylafax | | idutils | [] [] | indent | [] [] [] [] | iso_15924 | | iso_3166 | [] [] [] [] [] [] [] [] [] [] [] | iso_3166_2 | | iso_4217 | [] [] [] | iso_639 | [] [] [] [] | jpilot | [] | jtag | | jwhois | | kbd | [] [] [] [] | keytouch | [] [] | keytouch-editor | [] | keytouch-keyboa... | [] | latrine | () | ld | [] | leafpad | [] [] [] [] [] | libc | [] [] [] [] | libexif | [] | libextractor | [] | libgpewidget | [] [] [] | libgpg-error | [] | libgphoto2 | [] [] | libgphoto2_port | [] [] | libgsasl | | libiconv | [] [] | libidn | [] [] [] | lifelines | [] () | lilypond | [] | lingoteach | | lprng | | lynx | [] [] [] [] | m4 | [] [] [] [] | mailfromd | | mailutils | [] | make | [] [] | man-db | [] [] [] | minicom | [] [] [] | nano | [] [] [] | opcodes | [] | parted | [] [] | pilot-qof | | popt | [] [] [] | psmisc | [] | pwdutils | | qof | | radius | [] | recode | [] [] [] [] [] [] | rpm | [] | screem | | scrollkeeper | [] [] [] [] [] [] [] [] | sed | [] [] [] | shared-mime-info | [] [] [] [] () [] [] [] | sharutils | [] [] [] [] [] [] | shishi | | skencil | [] () | solfege | | soundtracker | [] [] | sp | [] | system-tools-ba... | [] [] [] [] [] [] [] [] [] | tar | [] [] | texinfo | [] [] [] | tin | () () | tuxpaint | [] [] [] [] [] [] | unicode-han-tra... | | unicode-transla... | | util-linux | [] [] [] [] | util-linux-ng | [] [] [] [] | vorbis-tools | [] | wastesedge | () | wdiff | [] [] [] [] | wget | [] [] [] | xchat | [] [] [] [] [] [] [] | xkeyboard-config | [] | xpad | [] [] [] | +----------------------------------------------------+ af am ar az be bg bs ca cs cy da de el en en_GB eo 6 0 2 1 8 26 2 40 48 2 56 88 15 1 15 18 es et eu fa fi fr ga gl gu he hi hr hu id is it +--------------------------------------------------+ Compendium | [] [] [] [] [] | a2ps | [] [] [] () | aegis | | ant-phone | [] | anubis | [] | ap-utils | [] [] | aspell | [] [] [] | bash | [] | bfd | [] [] | bibshelf | [] [] [] | binutils | [] [] [] | bison | [] [] [] [] [] [] | bison-runtime | [] [] [] [] [] | bluez-pin | [] [] [] [] [] | cflow | [] | clisp | [] [] | console-tools | | coreutils | [] [] [] [] [] [] | cpio | [] [] [] | cpplib | [] [] | cryptonit | [] | dialog | [] [] [] | diffutils | [] [] [] [] [] [] [] [] [] | doodle | [] [] | e2fsprogs | [] [] [] | enscript | [] [] [] | fetchmail | [] | findutils | [] [] [] | findutils_stable | [] [] [] [] | flex | [] [] [] | fslint | | gas | [] [] | gawk | [] [] [] [] () | gcal | [] [] | gcc | [] | gettext-examples | [] [] [] [] [] [] [] | gettext-runtime | [] [] [] [] [] [] | gettext-tools | [] [] [] [] | gip | [] [] [] [] | gliv | () | glunarclock | [] [] [] | gmult | [] [] [] | gnubiff | () () | gnucash | () () () | gnuedu | [] | gnulib | [] [] [] | gnunet | | gnunet-gtk | | gnutls | | gpe-aerial | [] [] | gpe-beam | [] [] | gpe-calendar | | gpe-clock | [] [] [] [] | gpe-conf | [] | gpe-contacts | [] [] | gpe-edit | [] [] [] [] | gpe-filemanager | [] | gpe-go | [] [] [] | gpe-login | [] [] [] | gpe-ownerinfo | [] [] [] [] [] | gpe-package | [] | gpe-sketchbook | [] [] | gpe-su | [] [] [] [] | gpe-taskmanager | [] [] [] | gpe-timesheet | [] [] [] [] | gpe-today | [] [] [] [] | gpe-todo | [] | gphoto2 | [] [] [] [] [] | gprof | [] [] [] [] [] | gpsdrive | [] | gramadoir | [] [] | grep | [] [] [] | gretl | [] [] [] () | gsasl | [] [] | gss | [] [] | gst-plugins-bad | [] [] [] [] | gst-plugins-base | [] [] [] [] | gst-plugins-good | [] [] [] [] [] | gst-plugins-ugly | [] [] [] [] | gstreamer | [] [] [] | gtick | [] [] [] | gtkam | [] [] [] [] | gtkorphan | [] [] | gtkspell | [] [] [] [] [] [] [] | gutenprint | [] | hello | [] [] [] [] [] [] [] [] [] [] [] [] [] | herrie | [] | hylafax | | idutils | [] [] [] [] [] | indent | [] [] [] [] [] [] [] [] [] [] | iso_15924 | [] | iso_3166 | [] [] [] [] [] [] [] [] [] [] [] [] [] | iso_3166_2 | [] | iso_4217 | [] [] [] [] [] [] | iso_639 | [] [] [] [] [] [] | jpilot | [] [] | jtag | [] | jwhois | [] [] [] [] [] | kbd | [] [] | keytouch | [] [] [] | keytouch-editor | [] | keytouch-keyboa... | [] [] | latrine | [] [] | ld | [] [] [] [] | leafpad | [] [] [] [] [] [] | libc | [] [] [] [] [] | libexif | [] | libextractor | [] | libgpewidget | [] [] [] [] [] | libgpg-error | [] | libgphoto2 | [] [] [] | libgphoto2_port | [] [] | libgsasl | [] [] | libiconv | [] [] [] | libidn | [] [] | lifelines | () | lilypond | [] [] [] | lingoteach | [] [] [] | lprng | | lynx | [] [] [] | m4 | [] [] [] [] | mailfromd | | mailutils | [] [] | make | [] [] [] [] [] [] [] [] | man-db | [] | minicom | [] [] [] [] | nano | [] [] [] [] [] [] [] | opcodes | [] [] [] [] | parted | [] [] [] | pilot-qof | | popt | [] [] [] [] | psmisc | [] [] | pwdutils | | qof | [] | radius | [] [] | recode | [] [] [] [] [] [] [] [] | rpm | [] [] | screem | | scrollkeeper | [] [] [] | sed | [] [] [] [] [] | shared-mime-info | [] [] [] [] [] [] | sharutils | [] [] [] [] [] [] [] [] | shishi | [] | skencil | [] [] | solfege | [] | soundtracker | [] [] [] | sp | [] | system-tools-ba... | [] [] [] [] [] [] [] [] [] | tar | [] [] [] [] [] | texinfo | [] [] [] | tin | [] () | tuxpaint | [] [] | unicode-han-tra... | | unicode-transla... | [] [] | util-linux | [] [] [] [] [] [] [] | util-linux-ng | [] [] [] [] [] [] [] | vorbis-tools | | wastesedge | () | wdiff | [] [] [] [] [] [] [] [] | wget | [] [] [] [] [] [] [] [] | xchat | [] [] [] [] [] [] [] | xkeyboard-config | [] [] [] [] | xpad | [] [] [] | +--------------------------------------------------+ es et eu fa fi fr ga gl gu he hi hr hu id is it 85 22 14 2 48 101 61 12 2 8 2 6 53 29 1 52 ja ka ko ku ky lg lt lv mk mn ms mt nb ne nl nn +--------------------------------------------------+ Compendium | [] | a2ps | () [] [] | aegis | () | ant-phone | [] | anubis | [] [] [] | ap-utils | [] | aspell | [] [] | bash | [] | bfd | | bibshelf | [] | binutils | | bison | [] [] [] | bison-runtime | [] [] [] | bluez-pin | [] [] [] | cflow | | clisp | [] | console-tools | | coreutils | [] | cpio | [] | cpplib | [] | cryptonit | [] | dialog | [] [] | diffutils | [] [] [] | doodle | | e2fsprogs | [] | enscript | [] | fetchmail | [] [] | findutils | [] | findutils_stable | [] | flex | [] [] | fslint | | gas | | gawk | [] [] | gcal | | gcc | | gettext-examples | [] [] [] | gettext-runtime | [] [] [] | gettext-tools | [] [] | gip | [] [] | gliv | [] | glunarclock | [] [] | gmult | [] [] [] | gnubiff | | gnucash | () () () | gnuedu | | gnulib | [] [] | gnunet | | gnunet-gtk | | gnutls | [] | gpe-aerial | [] | gpe-beam | [] | gpe-calendar | [] | gpe-clock | [] [] [] | gpe-conf | [] [] [] | gpe-contacts | [] | gpe-edit | [] [] [] | gpe-filemanager | [] [] | gpe-go | [] [] [] | gpe-login | [] [] [] | gpe-ownerinfo | [] [] | gpe-package | [] [] | gpe-sketchbook | [] [] | gpe-su | [] [] [] | gpe-taskmanager | [] [] [] [] | gpe-timesheet | [] | gpe-today | [] [] | gpe-todo | [] | gphoto2 | [] [] | gprof | [] | gpsdrive | [] | gramadoir | () | grep | [] [] | gretl | | gsasl | [] | gss | | gst-plugins-bad | [] | gst-plugins-base | [] | gst-plugins-good | [] | gst-plugins-ugly | [] | gstreamer | [] | gtick | [] | gtkam | [] [] | gtkorphan | [] | gtkspell | [] [] | gutenprint | [] | hello | [] [] [] [] [] [] [] | herrie | [] | hylafax | | idutils | [] | indent | [] [] | iso_15924 | [] | iso_3166 | [] [] [] [] [] [] [] [] | iso_3166_2 | [] | iso_4217 | [] [] [] | iso_639 | [] [] [] [] | jpilot | () () | jtag | | jwhois | [] | kbd | [] | keytouch | [] | keytouch-editor | [] | keytouch-keyboa... | | latrine | [] | ld | | leafpad | [] [] | libc | [] [] [] | libexif | | libextractor | | libgpewidget | [] | libgpg-error | | libgphoto2 | [] | libgphoto2_port | [] | libgsasl | [] | libiconv | [] | libidn | [] [] | lifelines | [] | lilypond | [] | lingoteach | [] | lprng | | lynx | [] [] | m4 | [] [] | mailfromd | | mailutils | | make | [] [] [] | man-db | | minicom | [] | nano | [] [] [] | opcodes | [] | parted | [] [] | pilot-qof | | popt | [] [] [] | psmisc | [] [] [] | pwdutils | | qof | | radius | | recode | [] | rpm | [] [] | screem | [] | scrollkeeper | [] [] [] [] | sed | [] [] | shared-mime-info | [] [] [] [] [] [] [] | sharutils | [] [] | shishi | | skencil | | solfege | () () | soundtracker | | sp | () | system-tools-ba... | [] [] [] [] | tar | [] [] [] | texinfo | [] [] | tin | | tuxpaint | () [] [] | unicode-han-tra... | | unicode-transla... | | util-linux | [] [] | util-linux-ng | [] [] | vorbis-tools | | wastesedge | [] | wdiff | [] [] | wget | [] [] | xchat | [] [] [] [] | xkeyboard-config | [] [] [] | xpad | [] [] [] | +--------------------------------------------------+ ja ka ko ku ky lg lt lv mk mn ms mt nb ne nl nn 51 2 25 3 2 0 6 0 2 2 20 0 11 1 103 6 or pa pl pt pt_BR rm ro ru rw sk sl sq sr sv ta +--------------------------------------------------+ Compendium | [] [] [] [] [] | a2ps | () [] [] [] [] [] [] | aegis | () () | ant-phone | [] [] | anubis | [] [] [] | ap-utils | () | aspell | [] [] [] | bash | [] [] | bfd | | bibshelf | [] | binutils | [] [] | bison | [] [] [] [] [] | bison-runtime | [] [] [] [] [] | bluez-pin | [] [] [] [] [] [] [] [] [] | cflow | [] | clisp | [] | console-tools | [] | coreutils | [] [] [] [] | cpio | [] [] [] | cpplib | [] | cryptonit | [] [] | dialog | [] | diffutils | [] [] [] [] [] [] | doodle | [] [] | e2fsprogs | [] [] | enscript | [] [] [] [] [] | fetchmail | [] [] [] | findutils | [] [] [] | findutils_stable | [] [] [] [] [] [] | flex | [] [] [] [] [] | fslint | [] | gas | | gawk | [] [] [] [] | gcal | [] | gcc | [] [] | gettext-examples | [] [] [] [] [] [] [] [] | gettext-runtime | [] [] [] [] [] [] [] [] | gettext-tools | [] [] [] [] [] [] [] | gip | [] [] [] [] | gliv | [] [] [] [] [] [] | glunarclock | [] [] [] [] [] [] | gmult | [] [] [] [] | gnubiff | () [] | gnucash | () [] | gnuedu | | gnulib | [] [] [] | gnunet | | gnunet-gtk | [] | gnutls | [] [] | gpe-aerial | [] [] [] [] [] [] [] | gpe-beam | [] [] [] [] [] [] [] | gpe-calendar | [] [] [] [] | gpe-clock | [] [] [] [] [] [] [] [] | gpe-conf | [] [] [] [] [] [] [] | gpe-contacts | [] [] [] [] [] | gpe-edit | [] [] [] [] [] [] [] [] [] | gpe-filemanager | [] [] | gpe-go | [] [] [] [] [] [] [] [] | gpe-login | [] [] [] [] [] [] [] [] | gpe-ownerinfo | [] [] [] [] [] [] [] [] | gpe-package | [] [] | gpe-sketchbook | [] [] [] [] [] [] [] [] | gpe-su | [] [] [] [] [] [] [] [] | gpe-taskmanager | [] [] [] [] [] [] [] [] | gpe-timesheet | [] [] [] [] [] [] [] [] | gpe-today | [] [] [] [] [] [] [] [] | gpe-todo | [] [] [] [] | gphoto2 | [] [] [] [] [] [] | gprof | [] [] [] | gpsdrive | [] [] | gramadoir | [] [] | grep | [] [] [] [] | gretl | [] [] [] | gsasl | [] [] [] | gss | [] [] [] [] | gst-plugins-bad | [] [] [] | gst-plugins-base | [] [] | gst-plugins-good | [] [] | gst-plugins-ugly | [] [] [] | gstreamer | [] [] [] [] | gtick | [] | gtkam | [] [] [] [] [] | gtkorphan | [] | gtkspell | [] [] [] [] [] [] [] [] | gutenprint | [] | hello | [] [] [] [] [] [] [] [] | herrie | [] [] [] | hylafax | | idutils | [] [] [] [] [] | indent | [] [] [] [] [] [] [] | iso_15924 | | iso_3166 | [] [] [] [] [] [] [] [] [] [] [] [] [] | iso_3166_2 | | iso_4217 | [] [] [] [] [] [] [] | iso_639 | [] [] [] [] [] [] [] | jpilot | | jtag | [] | jwhois | [] [] [] [] | kbd | [] [] [] | keytouch | [] | keytouch-editor | [] | keytouch-keyboa... | [] | latrine | | ld | [] | leafpad | [] [] [] [] [] [] | libc | [] [] [] [] | libexif | [] [] | libextractor | [] [] | libgpewidget | [] [] [] [] [] [] [] [] | libgpg-error | [] [] [] | libgphoto2 | [] | libgphoto2_port | [] [] [] | libgsasl | [] [] [] [] | libiconv | [] [] [] | libidn | [] [] () | lifelines | [] [] | lilypond | | lingoteach | [] | lprng | [] | lynx | [] [] [] | m4 | [] [] [] [] [] | mailfromd | [] | mailutils | [] [] [] | make | [] [] [] [] | man-db | [] [] [] [] | minicom | [] [] [] [] [] | nano | [] [] [] [] | opcodes | [] [] | parted | [] | pilot-qof | | popt | [] [] [] [] | psmisc | [] [] | pwdutils | [] [] | qof | [] [] | radius | [] [] | recode | [] [] [] [] [] [] [] | rpm | [] [] [] [] | screem | | scrollkeeper | [] [] [] [] [] [] [] | sed | [] [] [] [] [] [] [] [] [] | shared-mime-info | [] [] [] [] [] [] | sharutils | [] [] [] [] | shishi | [] | skencil | [] [] [] | solfege | [] | soundtracker | [] [] | sp | | system-tools-ba... | [] [] [] [] [] [] [] [] [] | tar | [] [] [] [] | texinfo | [] [] [] [] | tin | () | tuxpaint | [] [] [] [] [] [] | unicode-han-tra... | | unicode-transla... | | util-linux | [] [] [] [] | util-linux-ng | [] [] [] [] | vorbis-tools | [] | wastesedge | | wdiff | [] [] [] [] [] [] [] | wget | [] [] [] [] | xchat | [] [] [] [] [] [] [] | xkeyboard-config | [] [] [] | xpad | [] [] [] | +--------------------------------------------------+ or pa pl pt pt_BR rm ro ru rw sk sl sq sr sv ta 0 5 77 31 53 4 58 72 3 45 46 9 45 122 3 tg th tk tr uk ven vi wa xh zh_CN zh_HK zh_TW zu +---------------------------------------------------+ Compendium | [] [] [] [] | 19 a2ps | [] [] [] | 19 aegis | [] | 1 ant-phone | [] [] | 6 anubis | [] [] [] | 11 ap-utils | () [] | 4 aspell | [] [] [] | 16 bash | [] | 6 bfd | | 2 bibshelf | [] | 7 binutils | [] [] [] [] | 9 bison | [] [] [] [] | 20 bison-runtime | [] [] [] [] | 18 bluez-pin | [] [] [] [] [] [] | 28 cflow | [] [] | 5 clisp | | 9 console-tools | [] [] | 5 coreutils | [] [] [] | 18 cpio | [] [] [] [] | 11 cpplib | [] [] [] [] [] | 12 cryptonit | [] | 6 dialog | [] [] [] | 9 diffutils | [] [] [] [] [] | 29 doodle | [] | 6 e2fsprogs | [] [] | 10 enscript | [] [] [] | 16 fetchmail | [] [] | 12 findutils | [] [] [] | 11 findutils_stable | [] [] [] [] | 18 flex | [] [] | 15 fslint | [] | 2 gas | [] | 3 gawk | [] [] [] | 16 gcal | [] | 5 gcc | [] [] [] | 7 gettext-examples | [] [] [] [] [] [] | 29 gettext-runtime | [] [] [] [] [] [] | 28 gettext-tools | [] [] [] [] [] | 20 gip | [] [] | 13 gliv | [] [] | 11 glunarclock | [] [] [] | 15 gmult | [] [] [] [] | 16 gnubiff | [] | 2 gnucash | () [] | 5 gnuedu | [] | 2 gnulib | [] | 10 gnunet | | 0 gnunet-gtk | [] [] | 3 gnutls | | 4 gpe-aerial | [] [] | 14 gpe-beam | [] [] | 14 gpe-calendar | [] [] | 7 gpe-clock | [] [] [] [] | 21 gpe-conf | [] [] [] | 16 gpe-contacts | [] [] | 10 gpe-edit | [] [] [] [] [] | 22 gpe-filemanager | [] [] | 7 gpe-go | [] [] [] [] | 19 gpe-login | [] [] [] [] [] | 21 gpe-ownerinfo | [] [] [] [] | 21 gpe-package | [] | 6 gpe-sketchbook | [] [] | 16 gpe-su | [] [] [] [] | 21 gpe-taskmanager | [] [] [] [] | 21 gpe-timesheet | [] [] [] [] | 18 gpe-today | [] [] [] [] [] | 21 gpe-todo | [] [] | 8 gphoto2 | [] [] [] [] | 21 gprof | [] [] | 13 gpsdrive | [] | 5 gramadoir | [] | 7 grep | [] | 12 gretl | | 6 gsasl | [] [] [] | 9 gss | [] | 7 gst-plugins-bad | [] [] [] | 13 gst-plugins-base | [] [] | 11 gst-plugins-good | [] [] [] [] [] | 16 gst-plugins-ugly | [] [] [] | 13 gstreamer | [] [] [] | 18 gtick | [] [] | 7 gtkam | [] | 16 gtkorphan | [] | 7 gtkspell | [] [] [] [] [] [] | 27 gutenprint | | 4 hello | [] [] [] [] [] | 38 herrie | [] [] | 8 hylafax | | 0 idutils | [] [] | 15 indent | [] [] [] [] [] | 28 iso_15924 | [] [] | 4 iso_3166 | [] [] [] [] [] [] [] [] [] | 54 iso_3166_2 | [] [] | 4 iso_4217 | [] [] [] [] [] | 24 iso_639 | [] [] [] [] [] | 26 jpilot | [] [] [] [] | 7 jtag | [] | 3 jwhois | [] [] [] | 13 kbd | [] [] [] | 13 keytouch | [] | 8 keytouch-editor | [] | 5 keytouch-keyboa... | [] | 5 latrine | [] [] | 5 ld | [] [] [] [] | 10 leafpad | [] [] [] [] [] | 24 libc | [] [] [] | 19 libexif | [] | 5 libextractor | [] | 5 libgpewidget | [] [] [] | 20 libgpg-error | [] | 6 libgphoto2 | [] [] | 9 libgphoto2_port | [] [] [] | 11 libgsasl | [] | 8 libiconv | [] [] | 11 libidn | [] [] | 11 lifelines | | 4 lilypond | [] | 6 lingoteach | [] | 6 lprng | [] | 2 lynx | [] [] [] | 15 m4 | [] [] [] | 18 mailfromd | [] [] | 3 mailutils | [] [] | 8 make | [] [] [] | 20 man-db | [] | 9 minicom | [] | 14 nano | [] [] [] | 20 opcodes | [] [] | 10 parted | [] [] [] | 11 pilot-qof | [] | 1 popt | [] [] [] [] | 18 psmisc | [] [] | 10 pwdutils | [] | 3 qof | [] | 4 radius | [] [] | 7 recode | [] [] [] | 25 rpm | [] [] [] [] | 13 screem | [] | 2 scrollkeeper | [] [] [] [] | 26 sed | [] [] [] [] | 23 shared-mime-info | [] [] [] | 29 sharutils | [] [] [] | 23 shishi | [] | 3 skencil | [] | 7 solfege | [] | 3 soundtracker | [] [] | 9 sp | [] | 3 system-tools-ba... | [] [] [] [] [] [] [] | 38 tar | [] [] [] | 17 texinfo | [] [] [] | 15 tin | | 1 tuxpaint | [] [] [] | 19 unicode-han-tra... | | 0 unicode-transla... | | 2 util-linux | [] [] [] | 20 util-linux-ng | [] [] [] | 20 vorbis-tools | [] [] | 4 wastesedge | | 1 wdiff | [] [] | 23 wget | [] [] [] | 20 xchat | [] [] [] [] | 29 xkeyboard-config | [] [] [] | 14 xpad | [] [] [] | 15 +---------------------------------------------------+ 76 teams tg th tk tr uk ven vi wa xh zh_CN zh_HK zh_TW zu 163 domains 0 3 1 74 51 0 143 21 1 57 7 45 0 2036 Some counters in the preceding matrix are higher than the number of visible blocks let us expect. This is because a few extra PO files are used for implementing regional variants of languages, or language dialects. For a PO file in the matrix above to be effective, the package to which it applies should also have been internationalized and distributed as such by its maintainer. There might be an observable lag between the mere existence a PO file and its wide availability in a distribution. If November 2007 seems to be old, you may fetch a more recent copy of this `ABOUT-NLS' file on most GNU archive sites. The most up-to-date matrix with full percentage details can be found at `http://translationproject.org/extra/matrix.html'. 1.6 Using `gettext' in new packages =================================== If you are writing a freely available program and want to internationalize it you are welcome to use GNU `gettext' in your package. Of course you have to respect the GNU Library General Public License which covers the use of the GNU `gettext' library. This means in particular that even non-free programs can use `libintl' as a shared library, whereas only free software can use `libintl' as a static library or use modified versions of `libintl'. Once the sources are changed appropriately and the setup can handle the use of `gettext' the only thing missing are the translations. The Free Translation Project is also available for packages which are not developed inside the GNU project. Therefore the information given above applies also for every other Free Software Project. Contact `coordinator@translationproject.org' to make the `.pot' files available to the translation teams. xcfa-4.3.6/config.guess0000755000175000017500000012753411400750713011720 00000000000000#! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 # Free Software Foundation, Inc. timestamp='2008-01-23' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Per Bothner . # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # # The plan is that this can be called by configure scripts if you # don't specify an explicit build system type. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep __ELF__ >/dev/null then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; *:SolidBSD:*:*) echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) echo powerpc-unknown-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE="alpha" ;; "EV4.5 (21064)") UNAME_MACHINE="alpha" ;; "LCA4 (21066/21068)") UNAME_MACHINE="alpha" ;; "EV5 (21164)") UNAME_MACHINE="alphaev5" ;; "EV5.6 (21164A)") UNAME_MACHINE="alphaev56" ;; "EV5.6 (21164PC)") UNAME_MACHINE="alphapca56" ;; "EV5.7 (21164PC)") UNAME_MACHINE="alphapca57" ;; "EV6 (21264)") UNAME_MACHINE="alphaev6" ;; "EV6.7 (21264A)") UNAME_MACHINE="alphaev67" ;; "EV6.8CB (21264C)") UNAME_MACHINE="alphaev68" ;; "EV6.8AL (21264B)") UNAME_MACHINE="alphaev68" ;; "EV6.8CX (21264D)") UNAME_MACHINE="alphaev68" ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE="alphaev69" ;; "EV7 (21364)") UNAME_MACHINE="alphaev7" ;; "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` exit ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; arm:riscos:*:*|arm:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`$dummy $dummyarg` && { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` then echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit ;; *:AIX:*:[456]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH="hppa2.0n" ;; 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = "hppa2.0w" ] then eval $set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | grep __LP64__ >/dev/null then HP_ARCH="hppa2.0w" else HP_ARCH="hppa64" fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) case ${UNAME_MACHINE} in pc98) echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; amd64) echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; *:Interix*:[3456]*) case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; EM64T | authenticamd) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; IA64) echo ia64-unknown-interix${UNAME_RELEASE} exit ;; esac ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; arm*:Linux:*:*) eval $set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then echo ${UNAME_MACHINE}-unknown-linux-gnu else echo ${UNAME_MACHINE}-unknown-linux-gnueabi fi exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; cris:Linux:*:*) echo cris-axis-linux-gnu exit ;; crisv32:Linux:*:*) echo crisv32-axis-linux-gnu exit ;; frv:Linux:*:*) echo frv-unknown-linux-gnu exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; mips:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips #undef mipsel #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mipsel #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^CPU/{ s: ::g p }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips64 #undef mips64el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mips64el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips64 #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^CPU/{ s: ::g p }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; or32:Linux:*:*) echo or32-unknown-linux-gnu exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-gnu ;; PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-gnu exit ;; x86_64:Linux:*:*) echo x86_64-unknown-linux-gnu exit ;; xtensa*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; i*86:Linux:*:*) # The BFD linker knows what the default object file format is, so # first see if it will tell us. cd to the root directory to prevent # problems with other programs or directories called `ld' in the path. # Set LC_ALL=C to ensure ld outputs messages in English. ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ | sed -ne '/supported targets:/!d s/[ ][ ]*/ /g s/.*supported targets: *// s/ .*// p'` case "$ld_supported_targets" in elf32-i386) TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" ;; a.out-i386-linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" exit ;; coff-i386) echo "${UNAME_MACHINE}-pc-linux-gnucoff" exit ;; "") # Either a pre-BFD a.out linker (linux-gnuoldld) or # one that does not give us useful --help. echo "${UNAME_MACHINE}-pc-linux-gnuoldld" exit ;; esac # Determine whether the default compiler is a.out or elf eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include #ifdef __ELF__ # ifdef __GLIBC__ # if __GLIBC__ >= 2 LIBC=gnu # else LIBC=gnulibc1 # endif # else LIBC=gnulibc1 # endif #else #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) LIBC=gnu #else LIBC=gnuaout #endif #endif #ifdef __dietlibc__ LIBC=dietlibc #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^LIBC/{ s: ::g p }'`" test x"${LIBC}" != x && { echo "${UNAME_MACHINE}-pc-linux-${LIBC}" exit } test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i386. echo i386-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; paragon:*:*:*) echo i860-intel-osf1 exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. echo ${UNAME_MACHINE}-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; SX-7:SUPER-UX:*:*) echo sx7-nec-superux${UNAME_RELEASE} exit ;; SX-8:SUPER-UX:*:*) echo sx8-nec-superux${UNAME_RELEASE} exit ;; SX-8R:SUPER-UX:*:*) echo sx8r-nec-superux${UNAME_RELEASE} exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown case $UNAME_PROCESSOR in unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NSE-?:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit ;; *:ITS:*:*) echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 eval $set_cc_for_build cat >$dummy.c < # include #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (__arm) && defined (__acorn) && defined (__unix) printf ("arm-acorn-riscix\n"); exit (0); #endif #if defined (hp300) && !defined (hpux) printf ("m68k-hp-bsd\n"); exit (0); #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) # if !defined (ultrix) # include # if defined (BSD) # if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); # else # if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); # else printf ("vax-dec-bsd\n"); exit (0); # endif # endif # else printf ("vax-dec-bsd\n"); exit (0); # endif # else printf ("vax-dec-ultrix\n"); exit (0); # endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } # Convex versions that predate uname can use getsysinfo(1) if [ -x /usr/convex/getsysinfo ] then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd exit ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; c34*) echo c34-convex-bsd exit ;; c38*) echo c38-convex-bsd exit ;; c4*) echo c4-convex-bsd exit ;; esac fi cat >&2 < in order to provide the needed information to handle your system. config.guess timestamp = $timestamp uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: xcfa-4.3.6/ChangeLog0000644000175000017500000000034311431340651011136 00000000000000 ======================================== | | | Changelog | | | ======================================== Read TODO file. xcfa-4.3.6/aclocal.m40000644000175000017500000040744712224542367011255 00000000000000# generated automatically by aclocal 1.11.1 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.67],, [m4_warning([this file was generated for autoconf 2.67. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically `autoreconf'.])]) # gettext.m4 serial 63 (gettext-0.18) dnl Copyright (C) 1995-2010 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1995-2000. dnl Bruno Haible , 2000-2006, 2008-2010. dnl Macro to add for using GNU gettext. dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]). dnl INTLSYMBOL can be one of 'external', 'no-libtool', 'use-libtool'. The dnl default (if it is not specified or empty) is 'no-libtool'. dnl INTLSYMBOL should be 'external' for packages with no intl directory, dnl and 'no-libtool' or 'use-libtool' for packages with an intl directory. dnl If INTLSYMBOL is 'use-libtool', then a libtool library dnl $(top_builddir)/intl/libintl.la will be created (shared and/or static, dnl depending on --{enable,disable}-{shared,static} and on the presence of dnl AM-DISABLE-SHARED). If INTLSYMBOL is 'no-libtool', a static library dnl $(top_builddir)/intl/libintl.a will be created. dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext dnl implementations (in libc or libintl) without the ngettext() function dnl will be ignored. If NEEDSYMBOL is specified and is dnl 'need-formatstring-macros', then GNU gettext implementations that don't dnl support the ISO C 99 formatstring macros will be ignored. dnl INTLDIR is used to find the intl libraries. If empty, dnl the value `$(top_builddir)/intl/' is used. dnl dnl The result of the configuration is one of three cases: dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled dnl and used. dnl Catalog format: GNU --> install in $(datadir) dnl Catalog extension: .mo after installation, .gmo in source tree dnl 2) GNU gettext has been found in the system's C library. dnl Catalog format: GNU --> install in $(datadir) dnl Catalog extension: .mo after installation, .gmo in source tree dnl 3) No internationalization, always use English msgid. dnl Catalog format: none dnl Catalog extension: none dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur. dnl The use of .gmo is historical (it was needed to avoid overwriting the dnl GNU format catalogs when building on a platform with an X/Open gettext), dnl but we keep it in order not to force irrelevant filename changes on the dnl maintainers. dnl AC_DEFUN([AM_GNU_GETTEXT], [ dnl Argument checking. ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], , [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT ])])])])]) ifelse(ifelse([$1], [], [old])[]ifelse([$1], [no-libtool], [old]), [old], [AC_DIAGNOSE([obsolete], [Use of AM_GNU_GETTEXT without [external] argument is deprecated.])]) ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], , [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT ])])])]) define([gt_included_intl], ifelse([$1], [external], ifdef([AM_GNU_GETTEXT_][INTL_SUBDIR], [yes], [no]), [yes])) define([gt_libtool_suffix_prefix], ifelse([$1], [use-libtool], [l], [])) gt_NEEDS_INIT AM_GNU_GETTEXT_NEED([$2]) AC_REQUIRE([AM_PO_SUBDIRS])dnl ifelse(gt_included_intl, yes, [ AC_REQUIRE([AM_INTL_SUBDIR])dnl ]) dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) dnl Sometimes libintl requires libiconv, so first search for libiconv. dnl Ideally we would do this search only after the dnl if test "$USE_NLS" = "yes"; then dnl if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT dnl the configure script would need to contain the same shell code dnl again, outside any 'if'. There are two solutions: dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'. dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE. dnl Since AC_PROVIDE_IFELSE is only in autoconf >= 2.52 and not dnl documented, we avoid it. ifelse(gt_included_intl, yes, , [ AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) ]) dnl Sometimes, on MacOS X, libintl requires linking with CoreFoundation. gt_INTL_MACOSX dnl Set USE_NLS. AC_REQUIRE([AM_NLS]) ifelse(gt_included_intl, yes, [ BUILD_INCLUDED_LIBINTL=no USE_INCLUDED_LIBINTL=no ]) LIBINTL= LTLIBINTL= POSUB= dnl Add a version number to the cache macros. case " $gt_needs " in *" need-formatstring-macros "*) gt_api_version=3 ;; *" need-ngettext "*) gt_api_version=2 ;; *) gt_api_version=1 ;; esac gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc" gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl" dnl If we use NLS figure out what method if test "$USE_NLS" = "yes"; then gt_use_preinstalled_gnugettext=no ifelse(gt_included_intl, yes, [ AC_MSG_CHECKING([whether included gettext is requested]) AC_ARG_WITH([included-gettext], [ --with-included-gettext use the GNU gettext library included here], nls_cv_force_use_gnu_gettext=$withval, nls_cv_force_use_gnu_gettext=no) AC_MSG_RESULT([$nls_cv_force_use_gnu_gettext]) nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" if test "$nls_cv_force_use_gnu_gettext" != "yes"; then ]) dnl User does not insist on using GNU NLS library. Figure out what dnl to use. If GNU gettext is available we use this. Else we have dnl to fall back to GNU NLS library. if test $gt_api_version -ge 3; then gt_revision_test_code=' #ifndef __GNU_GETTEXT_SUPPORTED_REVISION #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) #endif changequote(,)dnl typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; changequote([,])dnl ' else gt_revision_test_code= fi if test $gt_api_version -ge 2; then gt_expression_test_code=' + * ngettext ("", "", 0)' else gt_expression_test_code= fi AC_CACHE_CHECK([for GNU gettext in libc], [$gt_func_gnugettext_libc], [AC_TRY_LINK([#include $gt_revision_test_code extern int _nl_msg_cat_cntr; extern int *_nl_domain_bindings;], [bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_bindings], [eval "$gt_func_gnugettext_libc=yes"], [eval "$gt_func_gnugettext_libc=no"])]) if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then dnl Sometimes libintl requires libiconv, so first search for libiconv. ifelse(gt_included_intl, yes, , [ AM_ICONV_LINK ]) dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv]) dnl because that would add "-liconv" to LIBINTL and LTLIBINTL dnl even if libiconv doesn't exist. AC_LIB_LINKFLAGS_BODY([intl]) AC_CACHE_CHECK([for GNU gettext in libintl], [$gt_func_gnugettext_libintl], [gt_save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $INCINTL" gt_save_LIBS="$LIBS" LIBS="$LIBS $LIBINTL" dnl Now see whether libintl exists and does not depend on libiconv. AC_TRY_LINK([#include $gt_revision_test_code extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias (const char *);], [bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")], [eval "$gt_func_gnugettext_libintl=yes"], [eval "$gt_func_gnugettext_libintl=no"]) dnl Now see whether libintl exists and depends on libiconv. if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then LIBS="$LIBS $LIBICONV" AC_TRY_LINK([#include $gt_revision_test_code extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias (const char *);], [bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")], [LIBINTL="$LIBINTL $LIBICONV" LTLIBINTL="$LTLIBINTL $LTLIBICONV" eval "$gt_func_gnugettext_libintl=yes" ]) fi CPPFLAGS="$gt_save_CPPFLAGS" LIBS="$gt_save_LIBS"]) fi dnl If an already present or preinstalled GNU gettext() is found, dnl use it. But if this macro is used in GNU gettext, and GNU dnl gettext is already preinstalled in libintl, we update this dnl libintl. (Cf. the install rule in intl/Makefile.in.) if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \ || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \ && test "$PACKAGE" != gettext-runtime \ && test "$PACKAGE" != gettext-tools; }; then gt_use_preinstalled_gnugettext=yes else dnl Reset the values set by searching for libintl. LIBINTL= LTLIBINTL= INCINTL= fi ifelse(gt_included_intl, yes, [ if test "$gt_use_preinstalled_gnugettext" != "yes"; then dnl GNU gettext is not found in the C library. dnl Fall back on included GNU gettext library. nls_cv_use_gnu_gettext=yes fi fi if test "$nls_cv_use_gnu_gettext" = "yes"; then dnl Mark actions used to generate GNU NLS library. BUILD_INCLUDED_LIBINTL=yes USE_INCLUDED_LIBINTL=yes LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV $LIBTHREAD" LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV $LTLIBTHREAD" LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'` fi CATOBJEXT= if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then dnl Mark actions to use GNU gettext tools. CATOBJEXT=.gmo fi ]) if test -n "$INTL_MACOSX_LIBS"; then if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then dnl Some extra flags are needed during linking. LIBINTL="$LIBINTL $INTL_MACOSX_LIBS" LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS" fi fi if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then AC_DEFINE([ENABLE_NLS], [1], [Define to 1 if translation of program messages to the user's native language is requested.]) else USE_NLS=no fi fi AC_MSG_CHECKING([whether to use NLS]) AC_MSG_RESULT([$USE_NLS]) if test "$USE_NLS" = "yes"; then AC_MSG_CHECKING([where the gettext function comes from]) if test "$gt_use_preinstalled_gnugettext" = "yes"; then if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then gt_source="external libintl" else gt_source="libc" fi else gt_source="included intl directory" fi AC_MSG_RESULT([$gt_source]) fi if test "$USE_NLS" = "yes"; then if test "$gt_use_preinstalled_gnugettext" = "yes"; then if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then AC_MSG_CHECKING([how to link with libintl]) AC_MSG_RESULT([$LIBINTL]) AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL]) fi dnl For backward compatibility. Some packages may be using this. AC_DEFINE([HAVE_GETTEXT], [1], [Define if the GNU gettext() function is already present or preinstalled.]) AC_DEFINE([HAVE_DCGETTEXT], [1], [Define if the GNU dcgettext() function is already present or preinstalled.]) fi dnl We need to process the po/ directory. POSUB=po fi ifelse(gt_included_intl, yes, [ dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL dnl to 'yes' because some of the testsuite requires it. if test "$PACKAGE" = gettext-runtime || test "$PACKAGE" = gettext-tools; then BUILD_INCLUDED_LIBINTL=yes fi dnl Make all variables we use known to autoconf. AC_SUBST([BUILD_INCLUDED_LIBINTL]) AC_SUBST([USE_INCLUDED_LIBINTL]) AC_SUBST([CATOBJEXT]) dnl For backward compatibility. Some configure.ins may be using this. nls_cv_header_intl= nls_cv_header_libgt= dnl For backward compatibility. Some Makefiles may be using this. DATADIRNAME=share AC_SUBST([DATADIRNAME]) dnl For backward compatibility. Some Makefiles may be using this. INSTOBJEXT=.mo AC_SUBST([INSTOBJEXT]) dnl For backward compatibility. Some Makefiles may be using this. GENCAT=gencat AC_SUBST([GENCAT]) dnl For backward compatibility. Some Makefiles may be using this. INTLOBJS= if test "$USE_INCLUDED_LIBINTL" = yes; then INTLOBJS="\$(GETTOBJS)" fi AC_SUBST([INTLOBJS]) dnl Enable libtool support if the surrounding package wishes it. INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix AC_SUBST([INTL_LIBTOOL_SUFFIX_PREFIX]) ]) dnl For backward compatibility. Some Makefiles may be using this. INTLLIBS="$LIBINTL" AC_SUBST([INTLLIBS]) dnl Make all documented variables known to autoconf. AC_SUBST([LIBINTL]) AC_SUBST([LTLIBINTL]) AC_SUBST([POSUB]) ]) dnl gt_NEEDS_INIT ensures that the gt_needs variable is initialized. m4_define([gt_NEEDS_INIT], [ m4_divert_text([DEFAULTS], [gt_needs=]) m4_define([gt_NEEDS_INIT], []) ]) dnl Usage: AM_GNU_GETTEXT_NEED([NEEDSYMBOL]) AC_DEFUN([AM_GNU_GETTEXT_NEED], [ m4_divert_text([INIT_PREPARE], [gt_needs="$gt_needs $1"]) ]) dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version]) AC_DEFUN([AM_GNU_GETTEXT_VERSION], []) # iconv.m4 serial 11 (gettext-0.18.1) dnl Copyright (C) 2000-2002, 2007-2010 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. AC_DEFUN([AM_ICONV_LINKFLAGS_BODY], [ dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV dnl accordingly. AC_LIB_LINKFLAGS_BODY([iconv]) ]) AC_DEFUN([AM_ICONV_LINK], [ dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and dnl those with the standalone portable GNU libiconv installed). AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV dnl accordingly. AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) dnl Add $INCICONV to CPPFLAGS before performing the following checks, dnl because if the user has installed libiconv and not disabled its use dnl via --without-libiconv-prefix, he wants to use it. The first dnl AC_TRY_LINK will then fail, the second AC_TRY_LINK will succeed. am_save_CPPFLAGS="$CPPFLAGS" AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV]) AC_CACHE_CHECK([for iconv], [am_cv_func_iconv], [ am_cv_func_iconv="no, consider installing GNU libiconv" am_cv_lib_iconv=no AC_TRY_LINK([#include #include ], [iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd);], [am_cv_func_iconv=yes]) if test "$am_cv_func_iconv" != yes; then am_save_LIBS="$LIBS" LIBS="$LIBS $LIBICONV" AC_TRY_LINK([#include #include ], [iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd);], [am_cv_lib_iconv=yes] [am_cv_func_iconv=yes]) LIBS="$am_save_LIBS" fi ]) if test "$am_cv_func_iconv" = yes; then AC_CACHE_CHECK([for working iconv], [am_cv_func_iconv_works], [ dnl This tests against bugs in AIX 5.1, HP-UX 11.11, Solaris 10. am_save_LIBS="$LIBS" if test $am_cv_lib_iconv = yes; then LIBS="$LIBS $LIBICONV" fi AC_TRY_RUN([ #include #include int main () { /* Test against AIX 5.1 bug: Failures are not distinguishable from successful returns. */ { iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8"); if (cd_utf8_to_88591 != (iconv_t)(-1)) { static const char input[] = "\342\202\254"; /* EURO SIGN */ char buf[10]; const char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_utf8_to_88591, (char **) &inptr, &inbytesleft, &outptr, &outbytesleft); if (res == 0) return 1; } } /* Test against Solaris 10 bug: Failures are not distinguishable from successful returns. */ { iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646"); if (cd_ascii_to_88591 != (iconv_t)(-1)) { static const char input[] = "\263"; char buf[10]; const char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_ascii_to_88591, (char **) &inptr, &inbytesleft, &outptr, &outbytesleft); if (res == 0) return 1; } } #if 0 /* This bug could be worked around by the caller. */ /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */ { iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591"); if (cd_88591_to_utf8 != (iconv_t)(-1)) { static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; char buf[50]; const char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_88591_to_utf8, (char **) &inptr, &inbytesleft, &outptr, &outbytesleft); if ((int)res > 0) return 1; } } #endif /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is provided. */ if (/* Try standardized names. */ iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1) /* Try IRIX, OSF/1 names. */ && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1) /* Try AIX names. */ && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1) /* Try HP-UX names. */ && iconv_open ("utf8", "eucJP") == (iconv_t)(-1)) return 1; return 0; }], [am_cv_func_iconv_works=yes], [am_cv_func_iconv_works=no], [case "$host_os" in aix* | hpux*) am_cv_func_iconv_works="guessing no" ;; *) am_cv_func_iconv_works="guessing yes" ;; esac]) LIBS="$am_save_LIBS" ]) case "$am_cv_func_iconv_works" in *no) am_func_iconv=no am_cv_lib_iconv=no ;; *) am_func_iconv=yes ;; esac else am_func_iconv=no am_cv_lib_iconv=no fi if test "$am_func_iconv" = yes; then AC_DEFINE([HAVE_ICONV], [1], [Define if you have the iconv() function and it works.]) fi if test "$am_cv_lib_iconv" = yes; then AC_MSG_CHECKING([how to link with libiconv]) AC_MSG_RESULT([$LIBICONV]) else dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV dnl either. CPPFLAGS="$am_save_CPPFLAGS" LIBICONV= LTLIBICONV= fi AC_SUBST([LIBICONV]) AC_SUBST([LTLIBICONV]) ]) dnl Define AM_ICONV using AC_DEFUN_ONCE for Autoconf >= 2.64, in order to dnl avoid warnings like dnl "warning: AC_REQUIRE: `AM_ICONV' was expanded before it was required". dnl This is tricky because of the way 'aclocal' is implemented: dnl - It requires defining an auxiliary macro whose name ends in AC_DEFUN. dnl Otherwise aclocal's initial scan pass would miss the macro definition. dnl - It requires a line break inside the AC_DEFUN_ONCE and AC_DEFUN expansions. dnl Otherwise aclocal would emit many "Use of uninitialized value $1" dnl warnings. m4_define([gl_iconv_AC_DEFUN], m4_version_prereq([2.64], [[AC_DEFUN_ONCE( [$1], [$2])]], [[AC_DEFUN( [$1], [$2])]])) gl_iconv_AC_DEFUN([AM_ICONV], [ AM_ICONV_LINK if test "$am_cv_func_iconv" = yes; then AC_MSG_CHECKING([for iconv declaration]) AC_CACHE_VAL([am_cv_proto_iconv], [ AC_TRY_COMPILE([ #include #include extern #ifdef __cplusplus "C" #endif #if defined(__STDC__) || defined(__cplusplus) size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); #else size_t iconv(); #endif ], [], [am_cv_proto_iconv_arg1=""], [am_cv_proto_iconv_arg1="const"]) am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"]) am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` AC_MSG_RESULT([ $am_cv_proto_iconv]) AC_DEFINE_UNQUOTED([ICONV_CONST], [$am_cv_proto_iconv_arg1], [Define as const if the declaration of iconv() needs const.]) fi ]) # intlmacosx.m4 serial 3 (gettext-0.18) dnl Copyright (C) 2004-2010 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Checks for special options needed on MacOS X. dnl Defines INTL_MACOSX_LIBS. AC_DEFUN([gt_INTL_MACOSX], [ dnl Check for API introduced in MacOS X 10.2. AC_CACHE_CHECK([for CFPreferencesCopyAppValue], [gt_cv_func_CFPreferencesCopyAppValue], [gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" AC_TRY_LINK([#include ], [CFPreferencesCopyAppValue(NULL, NULL)], [gt_cv_func_CFPreferencesCopyAppValue=yes], [gt_cv_func_CFPreferencesCopyAppValue=no]) LIBS="$gt_save_LIBS"]) if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], [1], [Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in the CoreFoundation framework.]) fi dnl Check for API introduced in MacOS X 10.3. AC_CACHE_CHECK([for CFLocaleCopyCurrent], [gt_cv_func_CFLocaleCopyCurrent], [gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" AC_TRY_LINK([#include ], [CFLocaleCopyCurrent();], [gt_cv_func_CFLocaleCopyCurrent=yes], [gt_cv_func_CFLocaleCopyCurrent=no]) LIBS="$gt_save_LIBS"]) if test $gt_cv_func_CFLocaleCopyCurrent = yes; then AC_DEFINE([HAVE_CFLOCALECOPYCURRENT], [1], [Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the CoreFoundation framework.]) fi INTL_MACOSX_LIBS= if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" fi AC_SUBST([INTL_MACOSX_LIBS]) ]) # lib-ld.m4 serial 4 (gettext-0.18) dnl Copyright (C) 1996-2003, 2009-2010 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Subroutines of libtool.m4, dnl with replacements s/AC_/AC_LIB/ and s/lt_cv/acl_cv/ to avoid collision dnl with libtool.m4. dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no. AC_DEFUN([AC_LIB_PROG_LD_GNU], [AC_CACHE_CHECK([if the linker ($LD) is GNU ld], [acl_cv_prog_gnu_ld], [# I'd rather use --version here, but apparently some GNU ld's only accept -v. case `$LD -v 2>&1 conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. AC_MSG_CHECKING([for ld used by GCC]) case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [[\\/]* | [A-Za-z]:[\\/]*)] [re_direlt='/[^/][^/]*/\.\./'] # Canonicalize the path of ld ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then AC_MSG_CHECKING([for GNU ld]) else AC_MSG_CHECKING([for non-GNU ld]) fi AC_CACHE_VAL([acl_cv_path_LD], [if test -z "$LD"; then IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then acl_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some GNU ld's only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in *GNU* | *'with BFD'*) test "$with_gnu_ld" != no && break ;; *) test "$with_gnu_ld" != yes && break ;; esac fi done IFS="$ac_save_ifs" else acl_cv_path_LD="$LD" # Let the user override the test with a path. fi]) LD="$acl_cv_path_LD" if test -n "$LD"; then AC_MSG_RESULT([$LD]) else AC_MSG_RESULT([no]) fi test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH]) AC_LIB_PROG_LD_GNU ]) # lib-link.m4 serial 21 (gettext-0.18) dnl Copyright (C) 2001-2010 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. AC_PREREQ([2.54]) dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and dnl the libraries corresponding to explicit and implicit dependencies. dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and dnl augments the CPPFLAGS variable. dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem. AC_DEFUN([AC_LIB_LINKFLAGS], [ AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) pushdef([Name],[translit([$1],[./-], [___])]) pushdef([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [ AC_LIB_LINKFLAGS_BODY([$1], [$2]) ac_cv_lib[]Name[]_libs="$LIB[]NAME" ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME" ac_cv_lib[]Name[]_cppflags="$INC[]NAME" ac_cv_lib[]Name[]_prefix="$LIB[]NAME[]_PREFIX" ]) LIB[]NAME="$ac_cv_lib[]Name[]_libs" LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs" INC[]NAME="$ac_cv_lib[]Name[]_cppflags" LIB[]NAME[]_PREFIX="$ac_cv_lib[]Name[]_prefix" AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) AC_SUBST([LIB]NAME) AC_SUBST([LTLIB]NAME) AC_SUBST([LIB]NAME[_PREFIX]) dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the dnl results of this search when this library appears as a dependency. HAVE_LIB[]NAME=yes popdef([NAME]) popdef([Name]) ]) dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode, [missing-message]) dnl searches for libname and the libraries corresponding to explicit and dnl implicit dependencies, together with the specified include files and dnl the ability to compile and link the specified testcode. The missing-message dnl defaults to 'no' and may contain additional hints for the user. dnl If found, it sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} dnl and LTLIB${NAME} variables and augments the CPPFLAGS variable, and dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty. dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem. AC_DEFUN([AC_LIB_HAVE_LINKFLAGS], [ AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) pushdef([Name],[translit([$1],[./-], [___])]) pushdef([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME dnl accordingly. AC_LIB_LINKFLAGS_BODY([$1], [$2]) dnl Add $INC[]NAME to CPPFLAGS before performing the following checks, dnl because if the user has installed lib[]Name and not disabled its use dnl via --without-lib[]Name-prefix, he wants to use it. ac_save_CPPFLAGS="$CPPFLAGS" AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [ ac_save_LIBS="$LIBS" dnl If $LIB[]NAME contains some -l options, add it to the end of LIBS, dnl because these -l options might require -L options that are present in dnl LIBS. -l options benefit only from the -L options listed before it. dnl Otherwise, add it to the front of LIBS, because it may be a static dnl library that depends on another static library that is present in LIBS. dnl Static libraries benefit only from the static libraries listed after dnl it. case " $LIB[]NAME" in *" -l"*) LIBS="$LIBS $LIB[]NAME" ;; *) LIBS="$LIB[]NAME $LIBS" ;; esac AC_TRY_LINK([$3], [$4], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name='m4_if([$5], [], [no], [[$5]])']) LIBS="$ac_save_LIBS" ]) if test "$ac_cv_lib[]Name" = yes; then HAVE_LIB[]NAME=yes AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the lib][$1 library.]) AC_MSG_CHECKING([how to link with lib[]$1]) AC_MSG_RESULT([$LIB[]NAME]) else HAVE_LIB[]NAME=no dnl If $LIB[]NAME didn't lead to a usable library, we don't need dnl $INC[]NAME either. CPPFLAGS="$ac_save_CPPFLAGS" LIB[]NAME= LTLIB[]NAME= LIB[]NAME[]_PREFIX= fi AC_SUBST([HAVE_LIB]NAME) AC_SUBST([LIB]NAME) AC_SUBST([LTLIB]NAME) AC_SUBST([LIB]NAME[_PREFIX]) popdef([NAME]) popdef([Name]) ]) dnl Determine the platform dependent parameters needed to use rpath: dnl acl_libext, dnl acl_shlibext, dnl acl_hardcode_libdir_flag_spec, dnl acl_hardcode_libdir_separator, dnl acl_hardcode_direct, dnl acl_hardcode_minus_L. AC_DEFUN([AC_LIB_RPATH], [ dnl Tell automake >= 1.10 to complain if config.rpath is missing. m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([config.rpath])]) AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir AC_CACHE_CHECK([for shared library run path origin], [acl_cv_rpath], [ CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh . ./conftest.sh rm -f ./conftest.sh acl_cv_rpath=done ]) wl="$acl_cv_wl" acl_libext="$acl_cv_libext" acl_shlibext="$acl_cv_shlibext" acl_libname_spec="$acl_cv_libname_spec" acl_library_names_spec="$acl_cv_library_names_spec" acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" acl_hardcode_direct="$acl_cv_hardcode_direct" acl_hardcode_minus_L="$acl_cv_hardcode_minus_L" dnl Determine whether the user wants rpath handling at all. AC_ARG_ENABLE([rpath], [ --disable-rpath do not hardcode runtime library paths], :, enable_rpath=yes) ]) dnl AC_LIB_FROMPACKAGE(name, package) dnl declares that libname comes from the given package. The configure file dnl will then not have a --with-libname-prefix option but a dnl --with-package-prefix option. Several libraries can come from the same dnl package. This declaration must occur before an AC_LIB_LINKFLAGS or similar dnl macro call that searches for libname. AC_DEFUN([AC_LIB_FROMPACKAGE], [ pushdef([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) define([acl_frompackage_]NAME, [$2]) popdef([NAME]) pushdef([PACK],[$2]) pushdef([PACKUP],[translit(PACK,[abcdefghijklmnopqrstuvwxyz./-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) define([acl_libsinpackage_]PACKUP, m4_ifdef([acl_libsinpackage_]PACKUP, [acl_libsinpackage_]PACKUP[[, ]],)[lib$1]) popdef([PACKUP]) popdef([PACK]) ]) dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and dnl the libraries corresponding to explicit and implicit dependencies. dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables. dnl Also, sets the LIB${NAME}_PREFIX variable to nonempty if libname was found dnl in ${LIB${NAME}_PREFIX}/$acl_libdirstem. AC_DEFUN([AC_LIB_LINKFLAGS_BODY], [ AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) pushdef([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) pushdef([PACK],[m4_ifdef([acl_frompackage_]NAME, [acl_frompackage_]NAME, lib[$1])]) pushdef([PACKUP],[translit(PACK,[abcdefghijklmnopqrstuvwxyz./-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) pushdef([PACKLIBS],[m4_ifdef([acl_frompackage_]NAME, [acl_libsinpackage_]PACKUP, lib[$1])]) dnl Autoconf >= 2.61 supports dots in --with options. pushdef([P_A_C_K],[m4_if(m4_version_compare(m4_defn([m4_PACKAGE_VERSION]),[2.61]),[-1],[translit(PACK,[.],[_])],PACK)]) dnl By default, look in $includedir and $libdir. use_additional=yes AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) AC_ARG_WITH(P_A_C_K[-prefix], [[ --with-]]P_A_C_K[[-prefix[=DIR] search for ]PACKLIBS[ in DIR/include and DIR/lib --without-]]P_A_C_K[[-prefix don't search for ]PACKLIBS[ in includedir and libdir]], [ if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) else additional_includedir="$withval/include" additional_libdir="$withval/$acl_libdirstem" if test "$acl_libdirstem2" != "$acl_libdirstem" \ && ! test -d "$withval/$acl_libdirstem"; then additional_libdir="$withval/$acl_libdirstem2" fi fi fi ]) dnl Search the library and its dependencies in $additional_libdir and dnl $LDFLAGS. Using breadth-first-seach. LIB[]NAME= LTLIB[]NAME= INC[]NAME= LIB[]NAME[]_PREFIX= dnl HAVE_LIB${NAME} is an indicator that LIB${NAME}, LTLIB${NAME} have been dnl computed. So it has to be reset here. HAVE_LIB[]NAME= rpathdirs= ltrpathdirs= names_already_handled= names_next_round='$1 $2' while test -n "$names_next_round"; do names_this_round="$names_next_round" names_next_round= for name in $names_this_round; do already_handled= for n in $names_already_handled; do if test "$n" = "$name"; then already_handled=yes break fi done if test -z "$already_handled"; then names_already_handled="$names_already_handled $name" dnl See if it was already located by an earlier AC_LIB_LINKFLAGS dnl or AC_LIB_HAVE_LINKFLAGS call. uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` eval value=\"\$HAVE_LIB$uppername\" if test -n "$value"; then if test "$value" = yes; then eval value=\"\$LIB$uppername\" test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value" eval value=\"\$LTLIB$uppername\" test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value" else dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined dnl that this library doesn't exist. So just drop it. : fi else dnl Search the library lib$name in $additional_libdir and $LDFLAGS dnl and the already constructed $LIBNAME/$LTLIBNAME. found_dir= found_la= found_so= found_a= eval libname=\"$acl_libname_spec\" # typically: libname=lib$name if test -n "$acl_shlibext"; then shrext=".$acl_shlibext" # typically: shrext=.so else shrext= fi if test $use_additional = yes; then dir="$additional_libdir" dnl The same code as in the loop below: dnl First look for a shared library. if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi dnl Then look for a static library. if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext"; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi fi if test "X$found_dir" = "X"; then for x in $LDFLAGS $LTLIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) case "$x" in -L*) dir=`echo "X$x" | sed -e 's/^X-L//'` dnl First look for a shared library. if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi dnl Then look for a static library. if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext"; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi ;; esac if test "X$found_dir" != "X"; then break fi done fi if test "X$found_dir" != "X"; then dnl Found the library. LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name" if test "X$found_so" != "X"; then dnl Linking with a shared library. We attempt to hardcode its dnl directory into the executable's runpath, unless it's the dnl standard /usr/lib. if test "$enable_rpath" = no \ || test "X$found_dir" = "X/usr/$acl_libdirstem" \ || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then dnl No hardcoding is needed. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" else dnl Use an explicit option to hardcode DIR into the resulting dnl binary. dnl Potentially add DIR to ltrpathdirs. dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. haveit= for x in $ltrpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $found_dir" fi dnl The hardcoding into $LIBNAME is system dependent. if test "$acl_hardcode_direct" = yes; then dnl Using DIR/libNAME.so during linking hardcodes DIR into the dnl resulting binary. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" else if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then dnl Use an explicit option to hardcode DIR into the resulting dnl binary. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" dnl Potentially add DIR to rpathdirs. dnl The rpathdirs will be appended to $LIBNAME at the end. haveit= for x in $rpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $found_dir" fi else dnl Rely on "-L$found_dir". dnl But don't add it if it's already contained in the LDFLAGS dnl or the already constructed $LIBNAME haveit= for x in $LDFLAGS $LIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir" fi if test "$acl_hardcode_minus_L" != no; then dnl FIXME: Not sure whether we should use dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" dnl here. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" else dnl We cannot use $acl_hardcode_runpath_var and LD_RUN_PATH dnl here, because this doesn't fit in flags passed to the dnl compiler. So give up. No hardcoding. This affects only dnl very old systems. dnl FIXME: Not sure whether we should use dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" dnl here. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" fi fi fi fi else if test "X$found_a" != "X"; then dnl Linking with a static library. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a" else dnl We shouldn't come here, but anyway it's good to have a dnl fallback. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name" fi fi dnl Assume the include files are nearby. additional_includedir= case "$found_dir" in */$acl_libdirstem | */$acl_libdirstem/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` if test "$name" = '$1'; then LIB[]NAME[]_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; */$acl_libdirstem2 | */$acl_libdirstem2/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` if test "$name" = '$1'; then LIB[]NAME[]_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; esac if test "X$additional_includedir" != "X"; then dnl Potentially add $additional_includedir to $INCNAME. dnl But don't add it dnl 1. if it's the standard /usr/include, dnl 2. if it's /usr/local/include and we are using GCC on Linux, dnl 3. if it's already present in $CPPFLAGS or the already dnl constructed $INCNAME, dnl 4. if it doesn't exist as a directory. if test "X$additional_includedir" != "X/usr/include"; then haveit= if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then for x in $CPPFLAGS $INC[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_includedir"; then dnl Really add $additional_includedir to $INCNAME. INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir" fi fi fi fi fi dnl Look for dependencies. if test -n "$found_la"; then dnl Read the .la file. It defines the variables dnl dlname, library_names, old_library, dependency_libs, current, dnl age, revision, installed, dlopen, dlpreopen, libdir. save_libdir="$libdir" case "$found_la" in */* | *\\*) . "$found_la" ;; *) . "./$found_la" ;; esac libdir="$save_libdir" dnl We use only dependency_libs. for dep in $dependency_libs; do case "$dep" in -L*) additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME. dnl But don't add it dnl 1. if it's the standard /usr/lib, dnl 2. if it's /usr/local/lib and we are using GCC on Linux, dnl 3. if it's already present in $LDFLAGS or the already dnl constructed $LIBNAME, dnl 4. if it doesn't exist as a directory. if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \ && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then haveit= if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \ || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then haveit= for x in $LDFLAGS $LIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then dnl Really add $additional_libdir to $LIBNAME. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir" fi fi haveit= for x in $LDFLAGS $LTLIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then dnl Really add $additional_libdir to $LTLIBNAME. LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir" fi fi fi fi ;; -R*) dir=`echo "X$dep" | sed -e 's/^X-R//'` if test "$enable_rpath" != no; then dnl Potentially add DIR to rpathdirs. dnl The rpathdirs will be appended to $LIBNAME at the end. haveit= for x in $rpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $dir" fi dnl Potentially add DIR to ltrpathdirs. dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. haveit= for x in $ltrpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $dir" fi fi ;; -l*) dnl Handle this in the next round. names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` ;; *.la) dnl Handle this in the next round. Throw away the .la's dnl directory; it is already contained in a preceding -L dnl option. names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` ;; *) dnl Most likely an immediate library name. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep" LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep" ;; esac done fi else dnl Didn't find the library; assume it is in the system directories dnl known to the linker and runtime loader. (All the system dnl directories known to the linker should also be known to the dnl runtime loader, otherwise the system is severely misconfigured.) LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name" fi fi fi done done if test "X$rpathdirs" != "X"; then if test -n "$acl_hardcode_libdir_separator"; then dnl Weird platform: only the last -rpath option counts, the user must dnl pass all path elements in one option. We can arrange that for a dnl single library, but not when more than one $LIBNAMEs are used. alldirs= for found_dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" done dnl Note: acl_hardcode_libdir_flag_spec uses $libdir and $wl. acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" else dnl The -rpath options are cumulative. for found_dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$found_dir" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" done fi fi if test "X$ltrpathdirs" != "X"; then dnl When using libtool, the option that works for both libraries and dnl executables is -R. The -R options are cumulative. for found_dir in $ltrpathdirs; do LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir" done fi popdef([P_A_C_K]) popdef([PACKLIBS]) popdef([PACKUP]) popdef([PACK]) popdef([NAME]) ]) dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR, dnl unless already present in VAR. dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes dnl contains two or three consecutive elements that belong together. AC_DEFUN([AC_LIB_APPENDTOVAR], [ for element in [$2]; do haveit= for x in $[$1]; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X$element"; then haveit=yes break fi done if test -z "$haveit"; then [$1]="${[$1]}${[$1]:+ }$element" fi done ]) dnl For those cases where a variable contains several -L and -l options dnl referring to unknown libraries and directories, this macro determines the dnl necessary additional linker options for the runtime path. dnl AC_LIB_LINKFLAGS_FROM_LIBS([LDADDVAR], [LIBSVALUE], [USE-LIBTOOL]) dnl sets LDADDVAR to linker options needed together with LIBSVALUE. dnl If USE-LIBTOOL evaluates to non-empty, linking with libtool is assumed, dnl otherwise linking without libtool is assumed. AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS], [ AC_REQUIRE([AC_LIB_RPATH]) AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) $1= if test "$enable_rpath" != no; then if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then dnl Use an explicit option to hardcode directories into the resulting dnl binary. rpathdirs= next= for opt in $2; do if test -n "$next"; then dir="$next" dnl No need to hardcode the standard /usr/lib. if test "X$dir" != "X/usr/$acl_libdirstem" \ && test "X$dir" != "X/usr/$acl_libdirstem2"; then rpathdirs="$rpathdirs $dir" fi next= else case $opt in -L) next=yes ;; -L*) dir=`echo "X$opt" | sed -e 's,^X-L,,'` dnl No need to hardcode the standard /usr/lib. if test "X$dir" != "X/usr/$acl_libdirstem" \ && test "X$dir" != "X/usr/$acl_libdirstem2"; then rpathdirs="$rpathdirs $dir" fi next= ;; *) next= ;; esac fi done if test "X$rpathdirs" != "X"; then if test -n ""$3""; then dnl libtool is used for linking. Use -R options. for dir in $rpathdirs; do $1="${$1}${$1:+ }-R$dir" done else dnl The linker is used for linking directly. if test -n "$acl_hardcode_libdir_separator"; then dnl Weird platform: only the last -rpath option counts, the user dnl must pass all path elements in one option. alldirs= for dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$dir" done acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" $1="$flag" else dnl The -rpath options are cumulative. for dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$dir" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" $1="${$1}${$1:+ }$flag" done fi fi fi fi fi AC_SUBST([$1]) ]) # lib-prefix.m4 serial 7 (gettext-0.18) dnl Copyright (C) 2001-2005, 2008-2010 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't dnl require excessive bracketing. ifdef([AC_HELP_STRING], [AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])], [AC_DEFUN([AC_][LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])]) dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed dnl to access previously installed libraries. The basic assumption is that dnl a user will want packages to use other packages he previously installed dnl with the same --prefix option. dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate dnl libraries, but is otherwise very convenient. AC_DEFUN([AC_LIB_PREFIX], [ AC_BEFORE([$0], [AC_LIB_LINKFLAGS]) AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) dnl By default, look in $includedir and $libdir. use_additional=yes AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) AC_LIB_ARG_WITH([lib-prefix], [ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib --without-lib-prefix don't search for libraries in includedir and libdir], [ if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) else additional_includedir="$withval/include" additional_libdir="$withval/$acl_libdirstem" fi fi ]) if test $use_additional = yes; then dnl Potentially add $additional_includedir to $CPPFLAGS. dnl But don't add it dnl 1. if it's the standard /usr/include, dnl 2. if it's already present in $CPPFLAGS, dnl 3. if it's /usr/local/include and we are using GCC on Linux, dnl 4. if it doesn't exist as a directory. if test "X$additional_includedir" != "X/usr/include"; then haveit= for x in $CPPFLAGS; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then if test -d "$additional_includedir"; then dnl Really add $additional_includedir to $CPPFLAGS. CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir" fi fi fi fi dnl Potentially add $additional_libdir to $LDFLAGS. dnl But don't add it dnl 1. if it's the standard /usr/lib, dnl 2. if it's already present in $LDFLAGS, dnl 3. if it's /usr/local/lib and we are using GCC on Linux, dnl 4. if it doesn't exist as a directory. if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then haveit= for x in $LDFLAGS; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then if test -n "$GCC"; then case $host_os in linux*) haveit=yes;; esac fi fi if test -z "$haveit"; then if test -d "$additional_libdir"; then dnl Really add $additional_libdir to $LDFLAGS. LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir" fi fi fi fi fi ]) dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix, dnl acl_final_exec_prefix, containing the values to which $prefix and dnl $exec_prefix will expand at the end of the configure script. AC_DEFUN([AC_LIB_PREPARE_PREFIX], [ dnl Unfortunately, prefix and exec_prefix get only finally determined dnl at the end of configure. if test "X$prefix" = "XNONE"; then acl_final_prefix="$ac_default_prefix" else acl_final_prefix="$prefix" fi if test "X$exec_prefix" = "XNONE"; then acl_final_exec_prefix='${prefix}' else acl_final_exec_prefix="$exec_prefix" fi acl_save_prefix="$prefix" prefix="$acl_final_prefix" eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" prefix="$acl_save_prefix" ]) dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the dnl variables prefix and exec_prefix bound to the values they will have dnl at the end of the configure script. AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX], [ acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" $1 exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" ]) dnl AC_LIB_PREPARE_MULTILIB creates dnl - a variable acl_libdirstem, containing the basename of the libdir, either dnl "lib" or "lib64" or "lib/64", dnl - a variable acl_libdirstem2, as a secondary possible value for dnl acl_libdirstem, either the same as acl_libdirstem or "lib/sparcv9" or dnl "lib/amd64". AC_DEFUN([AC_LIB_PREPARE_MULTILIB], [ dnl There is no formal standard regarding lib and lib64. dnl On glibc systems, the current practice is that on a system supporting dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under dnl $prefix/lib64 and 32-bit libraries go under $prefix/lib. We determine dnl the compiler's default mode by looking at the compiler's library search dnl path. If at least one of its elements ends in /lib64 or points to a dnl directory whose absolute pathname ends in /lib64, we assume a 64-bit ABI. dnl Otherwise we use the default, namely "lib". dnl On Solaris systems, the current practice is that on a system supporting dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under dnl $prefix/lib/64 (which is a symlink to either $prefix/lib/sparcv9 or dnl $prefix/lib/amd64) and 32-bit libraries go under $prefix/lib. AC_REQUIRE([AC_CANONICAL_HOST]) acl_libdirstem=lib acl_libdirstem2= case "$host_os" in solaris*) dnl See Solaris 10 Software Developer Collection > Solaris 64-bit Developer's Guide > The Development Environment dnl . dnl "Portable Makefiles should refer to any library directories using the 64 symbolic link." dnl But we want to recognize the sparcv9 or amd64 subdirectory also if the dnl symlink is missing, so we set acl_libdirstem2 too. AC_CACHE_CHECK([for 64-bit host], [gl_cv_solaris_64bit], [AC_EGREP_CPP([sixtyfour bits], [ #ifdef _LP64 sixtyfour bits #endif ], [gl_cv_solaris_64bit=yes], [gl_cv_solaris_64bit=no]) ]) if test $gl_cv_solaris_64bit = yes; then acl_libdirstem=lib/64 case "$host_cpu" in sparc*) acl_libdirstem2=lib/sparcv9 ;; i*86 | x86_64) acl_libdirstem2=lib/amd64 ;; esac fi ;; *) searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` if test -n "$searchpath"; then acl_save_IFS="${IFS= }"; IFS=":" for searchdir in $searchpath; do if test -d "$searchdir"; then case "$searchdir" in */lib64/ | */lib64 ) acl_libdirstem=lib64 ;; */../ | */.. ) # Better ignore directories of this form. They are misleading. ;; *) searchdir=`cd "$searchdir" && pwd` case "$searchdir" in */lib64 ) acl_libdirstem=lib64 ;; esac ;; esac fi done IFS="$acl_save_IFS" fi ;; esac test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem" ]) # nls.m4 serial 5 (gettext-0.18) dnl Copyright (C) 1995-2003, 2005-2006, 2008-2010 Free Software Foundation, dnl Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1995-2000. dnl Bruno Haible , 2000-2003. AC_PREREQ([2.50]) AC_DEFUN([AM_NLS], [ AC_MSG_CHECKING([whether NLS is requested]) dnl Default is enabled NLS AC_ARG_ENABLE([nls], [ --disable-nls do not use Native Language Support], USE_NLS=$enableval, USE_NLS=yes) AC_MSG_RESULT([$USE_NLS]) AC_SUBST([USE_NLS]) ]) # pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- # serial 1 (pkg-config-0.24) # # Copyright © 2004 Scott James Remnant . # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # PKG_PROG_PKG_CONFIG([MIN-VERSION]) # ---------------------------------- AC_DEFUN([PKG_PROG_PKG_CONFIG], [m4_pattern_forbid([^_?PKG_[A-Z_]+$]) m4_pattern_allow([^PKG_CONFIG(_PATH)?$]) AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) fi if test -n "$PKG_CONFIG"; then _pkg_min_version=m4_default([$1], [0.9.0]) AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) PKG_CONFIG="" fi fi[]dnl ])# PKG_PROG_PKG_CONFIG # PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) # # Check to see whether a particular set of modules exists. Similar # to PKG_CHECK_MODULES(), but does not set variables or print errors. # # Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) # only at the first occurence in configure.ac, so if the first place # it's called might be skipped (such as if it is within an "if", you # have to call PKG_CHECK_EXISTS manually # -------------------------------------------------------------- AC_DEFUN([PKG_CHECK_EXISTS], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl if test -n "$PKG_CONFIG" && \ AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then m4_default([$2], [:]) m4_ifvaln([$3], [else $3])dnl fi]) # _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) # --------------------------------------------- m4_define([_PKG_CONFIG], [if test -n "$$1"; then pkg_cv_[]$1="$$1" elif test -n "$PKG_CONFIG"; then PKG_CHECK_EXISTS([$3], [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`], [pkg_failed=yes]) else pkg_failed=untried fi[]dnl ])# _PKG_CONFIG # _PKG_SHORT_ERRORS_SUPPORTED # ----------------------------- AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], [AC_REQUIRE([PKG_PROG_PKG_CONFIG]) if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi[]dnl ])# _PKG_SHORT_ERRORS_SUPPORTED # PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], # [ACTION-IF-NOT-FOUND]) # # # Note that if there is a possibility the first call to # PKG_CHECK_MODULES might not happen, you should be sure to include an # explicit call to PKG_PROG_PKG_CONFIG in your configure.ac # # # -------------------------------------------------------------- AC_DEFUN([PKG_CHECK_MODULES], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl pkg_failed=no AC_MSG_CHECKING([for $1]) _PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) _PKG_CONFIG([$1][_LIBS], [libs], [$2]) m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS and $1[]_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details.]) if test $pkg_failed = yes; then AC_MSG_RESULT([no]) _PKG_SHORT_ERRORS_SUPPORTED if test $_pkg_short_errors_supported = yes; then $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$2" 2>&1` else $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors "$2" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD m4_default([$4], [AC_MSG_ERROR( [Package requirements ($2) were not met: $$1_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. _PKG_TEXT])[]dnl ]) elif test $pkg_failed = untried; then AC_MSG_RESULT([no]) m4_default([$4], [AC_MSG_FAILURE( [The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. _PKG_TEXT To get pkg-config, see .])[]dnl ]) else $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS $1[]_LIBS=$pkg_cv_[]$1[]_LIBS AC_MSG_RESULT([yes]) $3 fi[]dnl ])# PKG_CHECK_MODULES # po.m4 serial 17 (gettext-0.18) dnl Copyright (C) 1995-2010 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1995-2000. dnl Bruno Haible , 2000-2003. AC_PREREQ([2.50]) dnl Checks for all prerequisites of the po subdirectory. AC_DEFUN([AM_PO_SUBDIRS], [ AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl AC_REQUIRE([AM_PROG_MKDIR_P])dnl defined by automake AC_REQUIRE([AM_NLS])dnl dnl Release version of the gettext macros. This is used to ensure that dnl the gettext macros and po/Makefile.in.in are in sync. AC_SUBST([GETTEXT_MACRO_VERSION], [0.18]) dnl Perform the following tests also if --disable-nls has been given, dnl because they are needed for "make dist" to work. dnl Search for GNU msgfmt in the PATH. dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions. dnl The second test excludes FreeBSD msgfmt. AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, [$ac_dir/$ac_word --statistics /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 && (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], :) AC_PATH_PROG([GMSGFMT], [gmsgfmt], [$MSGFMT]) dnl Test whether it is GNU msgfmt >= 0.15. changequote(,)dnl case `$MSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) MSGFMT_015=: ;; *) MSGFMT_015=$MSGFMT ;; esac changequote([,])dnl AC_SUBST([MSGFMT_015]) changequote(,)dnl case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;; *) GMSGFMT_015=$GMSGFMT ;; esac changequote([,])dnl AC_SUBST([GMSGFMT_015]) dnl Search for GNU xgettext 0.12 or newer in the PATH. dnl The first test excludes Solaris xgettext and early GNU xgettext versions. dnl The second test excludes FreeBSD xgettext. AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, [$ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 && (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], :) dnl Remove leftover from FreeBSD xgettext call. rm -f messages.po dnl Test whether it is GNU xgettext >= 0.15. changequote(,)dnl case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;; *) XGETTEXT_015=$XGETTEXT ;; esac changequote([,])dnl AC_SUBST([XGETTEXT_015]) dnl Search for GNU msgmerge 0.11 or newer in the PATH. AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge, [$ac_dir/$ac_word --update -q /dev/null /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1], :) dnl Installation directories. dnl Autoconf >= 2.60 defines localedir. For older versions of autoconf, we dnl have to define it here, so that it can be used in po/Makefile. test -n "$localedir" || localedir='${datadir}/locale' AC_SUBST([localedir]) dnl Support for AM_XGETTEXT_OPTION. test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS= AC_SUBST([XGETTEXT_EXTRA_OPTIONS]) AC_CONFIG_COMMANDS([po-directories], [[ for ac_file in $CONFIG_FILES; do # Support "outfile[:infile[:infile...]]" case "$ac_file" in *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; esac # PO directories have a Makefile.in generated from Makefile.in.in. case "$ac_file" in */Makefile.in) # Adjust a relative srcdir. ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` # In autoconf-2.13 it is called $ac_given_srcdir. # In autoconf-2.50 it is called $srcdir. test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" case "$ac_given_srcdir" in .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; /*) top_srcdir="$ac_given_srcdir" ;; *) top_srcdir="$ac_dots$ac_given_srcdir" ;; esac # Treat a directory as a PO directory if and only if it has a # POTFILES.in file. This allows packages to have multiple PO # directories under different names or in different locations. if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then rm -f "$ac_dir/POTFILES" test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" POMAKEFILEDEPS="POTFILES.in" # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend # on $ac_dir but don't depend on user-specified configuration # parameters. if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then # The LINGUAS file contains the set of available languages. if test -n "$OBSOLETE_ALL_LINGUAS"; then test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" fi ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` # Hide the ALL_LINGUAS assigment from automake < 1.5. eval 'ALL_LINGUAS''=$ALL_LINGUAS_' POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" else # The set of available languages was given in configure.in. # Hide the ALL_LINGUAS assigment from automake < 1.5. eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' fi # Compute POFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) # Compute UPDATEPOFILES # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) # Compute DUMMYPOFILES # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop) # Compute GMOFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) case "$ac_given_srcdir" in .) srcdirpre= ;; *) srcdirpre='$(srcdir)/' ;; esac POFILES= UPDATEPOFILES= DUMMYPOFILES= GMOFILES= for lang in $ALL_LINGUAS; do POFILES="$POFILES $srcdirpre$lang.po" UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" DUMMYPOFILES="$DUMMYPOFILES $lang.nop" GMOFILES="$GMOFILES $srcdirpre$lang.gmo" done # CATALOGS depends on both $ac_dir and the user's LINGUAS # environment variable. INST_LINGUAS= if test -n "$ALL_LINGUAS"; then for presentlang in $ALL_LINGUAS; do useit=no if test "%UNSET%" != "$LINGUAS"; then desiredlanguages="$LINGUAS" else desiredlanguages="$ALL_LINGUAS" fi for desiredlang in $desiredlanguages; do # Use the presentlang catalog if desiredlang is # a. equal to presentlang, or # b. a variant of presentlang (because in this case, # presentlang can be used as a fallback for messages # which are not translated in the desiredlang catalog). case "$desiredlang" in "$presentlang"*) useit=yes;; esac done if test $useit = yes; then INST_LINGUAS="$INST_LINGUAS $presentlang" fi done fi CATALOGS= if test -n "$INST_LINGUAS"; then for lang in $INST_LINGUAS; do CATALOGS="$CATALOGS $lang.gmo" done fi test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do if test -f "$f"; then case "$f" in *.orig | *.bak | *~) ;; *) cat "$f" >> "$ac_dir/Makefile" ;; esac fi done fi ;; esac done]], [# Capture the value of obsolete ALL_LINGUAS because we need it to compute # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it # from automake < 1.5. eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' # Capture the value of LINGUAS because we need it to compute CATALOGS. LINGUAS="${LINGUAS-%UNSET%}" ]) ]) dnl Postprocesses a Makefile in a directory containing PO files. AC_DEFUN([AM_POSTPROCESS_PO_MAKEFILE], [ # When this code is run, in config.status, two variables have already been # set: # - OBSOLETE_ALL_LINGUAS is the value of LINGUAS set in configure.in, # - LINGUAS is the value of the environment variable LINGUAS at configure # time. changequote(,)dnl # Adjust a relative srcdir. ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` # In autoconf-2.13 it is called $ac_given_srcdir. # In autoconf-2.50 it is called $srcdir. test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" case "$ac_given_srcdir" in .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; /*) top_srcdir="$ac_given_srcdir" ;; *) top_srcdir="$ac_dots$ac_given_srcdir" ;; esac # Find a way to echo strings without interpreting backslash. if test "X`(echo '\t') 2>/dev/null`" = 'X\t'; then gt_echo='echo' else if test "X`(printf '%s\n' '\t') 2>/dev/null`" = 'X\t'; then gt_echo='printf %s\n' else echo_func () { cat < "$ac_file.tmp" if grep -l '@TCLCATALOGS@' "$ac_file" > /dev/null; then # Add dependencies that cannot be formulated as a simple suffix rule. for lang in $ALL_LINGUAS; do frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'` cat >> "$ac_file.tmp" < /dev/null; then # Add dependencies that cannot be formulated as a simple suffix rule. for lang in $ALL_LINGUAS; do frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'` cat >> "$ac_file.tmp" <> "$ac_file.tmp" <, 1996. AC_PREREQ([2.50]) # Search path for a program which passes the given test. dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) AC_DEFUN([AM_PATH_PROG_WITH_TEST], [ # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi # Find out how to test for executable files. Don't use a zero-byte file, # as systems may use methods other than mode bits to determine executability. cat >conf$$.file <<_ASEOF #! /bin/sh exit 0 _ASEOF chmod +x conf$$.file if test -x conf$$.file >/dev/null 2>&1; then ac_executable_p="test -x" else ac_executable_p="test -f" fi rm -f conf$$.file # Extract the first word of "$2", so it can be a program name with args. set dummy $2; ac_word=[$]2 AC_MSG_CHECKING([for $ac_word]) AC_CACHE_VAL([ac_cv_path_$1], [case "[$]$1" in [[\\/]]* | ?:[[\\/]]*) ac_cv_path_$1="[$]$1" # Let the user override the test with a path. ;; *) ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in ifelse([$5], , $PATH, [$5]); do IFS="$ac_save_IFS" test -z "$ac_dir" && ac_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then echo "$as_me: trying $ac_dir/$ac_word..." >&AS_MESSAGE_LOG_FD if [$3]; then ac_cv_path_$1="$ac_dir/$ac_word$ac_exec_ext" break 2 fi fi done done IFS="$ac_save_IFS" dnl If no 4th arg is given, leave the cache variable unset, dnl so AC_PATH_PROGS will keep looking. ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" ])dnl ;; esac])dnl $1="$ac_cv_path_$1" if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then AC_MSG_RESULT([$][$1]) else AC_MSG_RESULT([no]) fi AC_SUBST([$1])dnl ]) # Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.11' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. m4_if([$1], [1.11.1], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) # _AM_AUTOCONF_VERSION(VERSION) # ----------------------------- # aclocal traces this macro to find the Autoconf version. # This is a private macro too. Using m4_define simplifies # the logic in aclocal, which can simply ignore this definition. m4_define([_AM_AUTOCONF_VERSION], []) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.11.1])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to # `$srcdir', `$srcdir/..', or `$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and # therefore $ac_aux_dir as well) can be either absolute or relative, # depending on how configure is run. This is pretty annoying, since # it makes $ac_aux_dir quite unusable in subdirectories: in the top # source directory, any form will work fine, but in subdirectories a # relative path needs to be adjusted first. # # $ac_aux_dir/missing # fails when called from a subdirectory if $ac_aux_dir is relative # $top_srcdir/$ac_aux_dir/missing # fails if $ac_aux_dir is absolute, # fails when called from a subdirectory in a VPATH build with # a relative $ac_aux_dir # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually # harmless because $srcdir is `.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, # iff we strip the leading $srcdir from $ac_aux_dir. That would be: # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` # and then we would define $MISSING as # MISSING="\${SHELL} $am_aux_dir/missing" # This will work as long as MISSING is not called from configure, because # unfortunately $(top_srcdir) has no meaning in configure. # However there are other variables, like CC, which are often used in # configure, and could therefore not use this "fixed" $ac_aux_dir. # # Another solution, used here, is to always expand $ac_aux_dir to an # absolute PATH. The drawback is that using absolute paths prevent a # configured tree to be moved without reconfiguration. AC_DEFUN([AM_AUX_DIR_EXPAND], [dnl Rely on autoconf to set up CDPATH properly. AC_PREREQ([2.50])dnl # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` ]) # AM_CONDITIONAL -*- Autoconf -*- # Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 9 # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ(2.52)dnl ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE])dnl AC_SUBST([$1_FALSE])dnl _AM_SUBST_NOTMAKE([$1_TRUE])dnl _AM_SUBST_NOTMAKE([$1_FALSE])dnl m4_define([_AM_COND_VALUE_$1], [$2])dnl if $2; then $1_TRUE= $1_FALSE='#' else $1_TRUE='#' $1_FALSE= fi AC_CONFIG_COMMANDS_PRE( [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then AC_MSG_ERROR([[conditional "$1" was never defined. Usually this means the macro was only invoked conditionally.]]) fi])]) # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 10 # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, # will think it sees a *use*, and therefore will trigger all it's # C support machinery. Also note that it means that autoscan, seeing # CC etc. in the Makefile, will ask for an AC_PROG_CC use... # _AM_DEPENDENCIES(NAME) # ---------------------- # See how the compiler implements dependency checking. # NAME is "CC", "CXX", "GCJ", or "OBJC". # We try a few techniques and use that to set a single cache variable. # # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was # modified to invoke _AM_DEPENDENCIES(CC); we would have a circular # dependency, and given that the user is not expected to run this macro, # just rely on AC_PROG_CC. AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl AC_REQUIRE([AM_MAKE_INCLUDE])dnl AC_REQUIRE([AM_DEP_TRACK])dnl ifelse([$1], CC, [depcc="$CC" am_compiler_list=], [$1], CXX, [depcc="$CXX" am_compiler_list=], [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], [$1], UPC, [depcc="$UPC" am_compiler_list=], [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], [depcc="$$1" am_compiler_list=]) AC_CACHE_CHECK([dependency style of $depcc], [am_cv_$1_dependencies_compiler_type], [if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_$1_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` fi am__universal=false m4_case([$1], [CC], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac], [CXX], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac]) for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_$1_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_$1_dependencies_compiler_type=none fi ]) AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) AM_CONDITIONAL([am__fastdep$1], [ test "x$enable_dependency_tracking" != xno \ && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) ]) # AM_SET_DEPDIR # ------------- # Choose a directory name for dependency files. # This macro is AC_REQUIREd in _AM_DEPENDENCIES AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl ]) # AM_DEP_TRACK # ------------ AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE(dependency-tracking, [ --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH])dnl _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl ]) # Generate code to set up dependency tracking. -*- Autoconf -*- # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. #serial 5 # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{ # Autoconf 2.62 quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`AS_DIRNAME("$mf")` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`AS_DIRNAME(["$file"])` AS_MKDIR_P([$dirpart/$fdir]) # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ])# _AM_OUTPUT_DEPENDENCY_COMMANDS # AM_OUTPUT_DEPENDENCY_COMMANDS # ----------------------------- # This macro should only be invoked once -- use via AC_REQUIRE. # # This code is only required when automatic dependency tracking # is enabled. FIXME. This creates each `.P' file that we will # need in order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) ]) # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2008, 2009 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 16 # This macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- # The call with PACKAGE and VERSION arguments is the old style # call (pre autoconf-2.50), which is being phased out. PACKAGE # and VERSION should now be passed to AC_INIT and removed from # the call to AM_INIT_AUTOMAKE. # We support both call styles for the transition. After # the next Automake release, Autoconf can make the AC_INIT # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.62])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl # test to see if srcdir already configured if test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi AC_SUBST([CYGPATH_W]) # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], [m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, [m4_fatal([AC_INIT should be called with package and version arguments])])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl _AM_IF_OPTION([no-define],, [AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) AM_MISSING_PROG(AUTOCONF, autoconf) AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) AM_MISSING_PROG(AUTOHEADER, autoheader) AM_MISSING_PROG(MAKEINFO, makeinfo) AC_REQUIRE([AM_PROG_INSTALL_SH])dnl AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl AC_REQUIRE([AM_PROG_MKDIR_P])dnl # We need awk for the "check" target. The system "awk" is bad on # some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], [_AM_DEPENDENCIES(CC)], [define([AC_PROG_CC], defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES(CXX)], [define([AC_PROG_CXX], defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], [_AM_DEPENDENCIES(OBJC)], [define([AC_PROG_OBJC], defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl ]) _AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl dnl The `parallel-tests' driver may need to know about EXEEXT, so add the dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro dnl is hooked onto _AC_COMPILER_EXEEXT early, see below. AC_CONFIG_COMMANDS_PRE(dnl [m4_provide_if([_AM_COMPILER_EXEEXT], [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl ]) dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further dnl mangled by Autoconf and run in a shell conditional statement. m4_define([_AC_COMPILER_EXEEXT], m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the # loop where config.status creates the headers, so we can generate # our stamp files there. AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. _am_arg=$1 _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) # Copyright (C) 2001, 2003, 2005, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi AC_SUBST(install_sh)]) # Copyright (C) 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null AC_SUBST([am__leading_dot])]) # Check to see how 'make' treats includes. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 4 # AM_MAKE_INCLUDE() # ----------------- # Check to see how make treats includes. AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. AC_MSG_CHECKING([for style of include used by $am_make]) am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from `make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi AC_SUBST([am__include]) AC_SUBST([am__quote]) AC_MSG_RESULT([$_am_result]) rm -f confinc confmf ]) # Copyright (C) 1999, 2000, 2001, 2003, 2004, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 6 # AM_PROG_CC_C_O # -------------- # Like AC_PROG_CC_C_O, but changed for automake. AC_DEFUN([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC_C_O])dnl AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([compile])dnl # FIXME: we rely on the cache variable name because # there is no other way. set dummy $CC am_cc=`echo $[2] | sed ['s/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/']` eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o if test "$am_t" != yes; then # Losing compiler, so override with the script. # FIXME: It is wrong to rewrite CC. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__CC in this case, # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" CC="$am_aux_dir/compile $CC" fi dnl Make sure AC_PROG_CC is never called again, or it will override our dnl setting of CC. m4_define([AC_PROG_CC], [m4_fatal([AC_PROG_CC cannot be called after AM_PROG_CC_C_O])]) ]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- # Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 6 # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it supports --run. # If it does, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= AC_MSG_WARN([`missing' script is too old or missing]) fi ]) # Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_MKDIR_P # --------------- # Check for `mkdir -p'. AC_DEFUN([AM_PROG_MKDIR_P], [AC_PREREQ([2.60])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, dnl while keeping a definition of mkdir_p for backward compatibility. dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of dnl Makefile.ins that do not define MKDIR_P, so we do our own dnl adjustment using top_builddir (which is defined more often than dnl MKDIR_P). AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl case $mkdir_p in [[\\/$]]* | ?:[[\\/]]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac ]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 4 # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) # _AM_SET_OPTION(NAME) # ------------------------------ # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), 1)]) # _AM_SET_OPTIONS(OPTIONS) # ---------------------------------- # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) # ------------------------------------------- # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) # Check to make sure that the build environment is sane. -*- Autoconf -*- # Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 5 # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Just in case sleep 1 echo timestamp > conftest.file # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[[\\\"\#\$\&\'\`$am_lf]]*) AC_MSG_ERROR([unsafe absolute working directory name]);; esac case $srcdir in *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);; esac # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$[*]" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi rm -f conftest.file if test "$[*]" != "X $srcdir/configure conftest.file" \ && test "$[*]" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken alias in your environment]) fi test "$[2]" = conftest.file ) then # Ok. : else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi AC_MSG_RESULT(yes)]) # Copyright (C) 2009 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 1 # AM_SILENT_RULES([DEFAULT]) # -------------------------- # Enable less verbose build rules; with the default set to DEFAULT # (`yes' being less verbose, `no' or empty being verbose). AC_DEFUN([AM_SILENT_RULES], [AC_ARG_ENABLE([silent-rules], [ --enable-silent-rules less verbose build output (undo: `make V=1') --disable-silent-rules verbose build output (undo: `make V=0')]) case $enable_silent_rules in yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; esac AC_SUBST([AM_DEFAULT_VERBOSITY])dnl AM_BACKSLASH='\' AC_SUBST([AM_BACKSLASH])dnl _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl ]) # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_STRIP # --------------------- # One issue with vendor `install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we # always use install-sh in `make install-strip', and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. dnl Don't test for $cross_compiling = yes, because it might be `maybe'. if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) # Copyright (C) 2006, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. # This macro is traced by Automake. AC_DEFUN([_AM_SUBST_NOTMAKE]) # AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Public sister of _AM_SUBST_NOTMAKE. AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- # Copyright (C) 2004, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # _AM_PROG_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. # FORMAT should be one of `v7', `ustar', or `pax'. # # Substitute a variable $(am__tar) that is a command # writing to stdout a FORMAT-tarball containing the directory # $tardir. # tardir=directory && $(am__tar) > result.tar # # Substitute a variable $(am__untar) that extract such # a tarball read from stdin. # $(am__untar) < result.tar AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. AM_MISSING_PROG([AMTAR], [tar]) m4_if([$1], [v7], [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], [m4_case([$1], [ustar],, [pax],, [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) # Loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' _am_tools=${am_cv_prog_tar_$1-$_am_tools} # Do not fold the above two line into one, because Tru64 sh and # Solaris sh will not grok spaces in the rhs of `-'. for _am_tool in $_am_tools do case $_am_tool in gnutar) for _am_tar in tar gnutar gtar; do AM_RUN_LOG([$_am_tar --version]) && break done am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' am__untar="$_am_tar -xf -" ;; plaintar) # Must skip GNU tar: if it does not support --format= it doesn't create # ustar tarball either. (tar --version) >/dev/null 2>&1 && continue am__tar='tar chf - "$$tardir"' am__tar_='tar chf - "$tardir"' am__untar='tar xf -' ;; pax) am__tar='pax -L -x $1 -w "$$tardir"' am__tar_='pax -L -x $1 -w "$tardir"' am__untar='pax -r' ;; cpio) am__tar='find "$$tardir" -print | cpio -o -H $1 -L' am__tar_='find "$tardir" -print | cpio -o -H $1 -L' am__untar='cpio -i -H $1 -d' ;; none) am__tar=false am__tar_=false am__untar=false ;; esac # If the value was cached, stop now. We just wanted to have am__tar # and am__untar set. test -n "${am_cv_prog_tar_$1}" && break # tar/untar a dummy directory, and stop if the command works rm -rf conftest.dir mkdir conftest.dir echo GrepMe > conftest.dir/file AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) rm -rf conftest.dir if test -s conftest.tar; then AM_RUN_LOG([$am__untar /dev/null 2>&1 && break fi done rm -rf conftest.dir AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) AC_MSG_RESULT([$am_cv_prog_tar_$1])]) AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR xcfa-4.3.6/menu/0000755000175000017500000000000012224542444010415 500000000000000xcfa-4.3.6/menu/Makefile.am0000644000175000017500000000020311400750706012361 00000000000000# # menu/Makefile.am # AUTOMAKE_OPTIONS= gnu menu_DATA = xcfa.desktop menudir = $(datadir)/applications EXTRA_DIST = $(menu_DATA) xcfa-4.3.6/menu/xcfa.desktop0000644000175000017500000000542611757152715012670 00000000000000[Desktop Entry] Version=4.3.1 Name=XCFA Name[ar]=XCFA Name[cs]=XCFA Name[de]=XCFA Name[en_GB]=XCFA Name[es]=XCFA Name[fr]=XCFA Name[he]=XCFA Name[it]=XCFA Name[ms]=XCFA Name[nl]=XCFA Name[pl]=XCFA Name[ru]=XCFA Name[sk]=XCFA Name[sr]=XCFA Name[sv]=XCFA Name[zh_CN]=XCFA GenericName=Audio Format Converter GenericName[ar]=محول أشكال الملفات الصوتية GenericName[cs]=Převaděč zvukových formátů GenericName[de]=Audioformat Konverter GenericName[en_GB]=Audio Format Converter GenericName[es]=Conversor de formatos de audio GenericName[fr]=Conversion entre formats audios GenericName[he]=ממיר פורמטים של אודיו GenericName[it]=Convertitore formati audio GenericName[ms]=Penukar Format Audio GenericName[nl]=Geluidsformat omzetten GenericName[pl]=Konwerter Formatów Audio GenericName[ru]=Аудиоконвертор GenericName[sk]=Konvertor zvukového formátu GenericName[sr]=Прекодирање звучних формата GenericName[sv]=Ljudformatskonverterare GenericName[zh_CN]=音频格式转换程序 Comment=X Convert File Audio. Programme pour convertir les fichiers audio. Comment[ar]=تحويل الملف أغنية. برنامج لتحويل الملفات الصوتية Comment[cs]=Convert X audio souborů. Program pro konverzi audio souborů. Comment[de]=Audio File Convert X. Programm zum Konvertieren von Audio-Dateien. Comment[en_GB]=X Convert File Audio. Program for converting audio files. Comment[es]=X convertir archivos de audio. Programa para convertir archivos de audio. Comment[fr]=X Convert File Audio. Programme pour convertir les fichiers audio. Comment[he]=המרת קובץ אודיו X. תוכנית להמרת קבצי אודיו Comment[it]=X Convertire file audio. Programma per convertire i file audio. Comment[ms]=Ikkonverti X File Audio. Programm għall-konverżjoni audio files. Comment[nl]=Convert X File Audio. Programma voor het converteren van audiobestanden. Comment[pl]=Konwersja plików audio X. Program do konwersji plików audio. Comment[ru]=Конвертация файлов X Audio. Программа для конвертирования аудио файлов. Comment[sk]=Konvertuj X audio súborov. Program pre konverziu audio súborov. Comment[sr]=Претвори Кс Филе Аудио. Програм за претварање аудио датотеке. Comment[sv]=Konvertera X File Audio. Program för att konvertera ljudfiler. Comment[zh_CN]=X档案音频转换。程序转换为音频文件。 Icon=xcfa.png MimeType=audio/x-wav;application/x-flac;audio/x-ape;audio/ape;audio/x-wavpack;application/x-ogg;audio/ogg;application/ogg;audio/x-m4a;audio/x-aac;audio/aac;audio/mp3;audio/x-mp3;audio/x-ms-wma; Type=Application Exec=xcfa Terminal=false StartupNotify=false Categories=Application;AudioVideo;AudioVideoEditing; xcfa-4.3.6/menu/Makefile.in0000644000175000017500000002724312224542373012413 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = menu DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_GEN = $(am__v_GEN_$(V)) am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) am__v_GEN_0 = @echo " GEN " $@; AM_V_at = $(am__v_at_$(V)) am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) am__v_at_0 = @ SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(menudir)" DATA = $(menu_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PREFIX = @INSTALL_PREFIX@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_CFLAGS = @PACKAGE_CFLAGS@ PACKAGE_LIBS = @PACKAGE_LIBS@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ # # menu/Makefile.am # AUTOMAKE_OPTIONS = gnu menu_DATA = xcfa.desktop menudir = $(datadir)/applications EXTRA_DIST = $(menu_DATA) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu menu/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu menu/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-menuDATA: $(menu_DATA) @$(NORMAL_INSTALL) test -z "$(menudir)" || $(MKDIR_P) "$(DESTDIR)$(menudir)" @list='$(menu_DATA)'; test -n "$(menudir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(menudir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(menudir)" || exit $$?; \ done uninstall-menuDATA: @$(NORMAL_UNINSTALL) @list='$(menu_DATA)'; test -n "$(menudir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(menudir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(menudir)" && rm -f $$files tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(menudir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-menuDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-menuDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic distclean \ distclean-generic distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-menuDATA install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic pdf pdf-am ps ps-am uninstall \ uninstall-am uninstall-menuDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: xcfa-4.3.6/COPYING0000644000175000017500000010451311400750713010423 00000000000000 GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The GNU General Public License is a free, copyleft license for software and other kinds of works. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS 0. Definitions. "This License" refers to version 3 of the GNU General Public License. "Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. "The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations. To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work. A "covered work" means either the unmodified Program or a work based on the Program. To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 1. Source Code. The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work. A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 4. Conveying Verbatim Copies. You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices". c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. "Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 7. Additional Terms. "Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or d) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. 11. Patents. A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version". A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 12. No Surrender of Others' Freedom. If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. 13. Use with the GNU Affero General Public License. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 15. Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: Copyright (C) This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an "about box". You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see . The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read .