#!/bin/bash # yeknan.free.fr/yek-ns version="0.1" ################################################# # TRADUCTIONS ###### Default = English ##### title="WOM audioconverter "$version"" pleasesel="Please select at least one file." noselec=""$title" convert audio files. "$pleasesel"" choix="Extension of output file :" warning="Warning" proceed="is already exist. Overwrite?" recur=""$title" can't convert directory. "$pleasesel"" conversion="Converting file :" case $LANG in ######## Français ######## fr* ) title="WOM audioconverter "$version"" pleasesel="Merci de selectionner au moins un fichier." noselec=""$title" permet de convertir des fichiers audio. "$pleasesel"" choix="Format du fichier de sortie :" warning="Attention" proceed="existe deja. Ecraser ?" recur=""$title" ne permet pas la conversion de dossiers. "$pleasesel"" conversion="Conversion du fichier :";; esac ################################################# # FONCTIONS caf() # fonction "convert audio file" { ### Format in_file = mp3 ### if [ "`file -b "$1" | grep 'MP3'`" != "" ] || [ "`echo $1 | grep -i '\.mp3$'`" != "" ] then if [ "$3" = ".ogg" ] then # mp3-2-ogg lame --quiet --decode "$1" - | oggenc - -Q -b 128 -M 160 -o "$2" else # mp3-2-wav lame --quiet --decode "$1" "$2" fi break fi ### Format in_file = ogg ### if [ "`file -b "$1" | grep 'Vorbis'`" != "" ] || [ "`echo $1 | grep -i '\.ogg$'`" != "" ] then if [ "$3" = ".mp3" ] then # ogg-2-mp3 ogg123 -q --device=wav "$1" -f - | lame --quiet -m auto -v -F -b 128 -B 160 -h - "$2" else # ogg-2-wav ogg123 -q --device=wav "$1" -f "$2" fi break fi ### Format in_file = wav ### if [ "`file -b "$1" | grep 'WAVE'`" != "" ] || [ "`echo $1 | grep -i '\.wav$'`" != "" ] then if [ "$3" = ".mp3" ] then # wav-2-mp3 lame --quiet -m auto -h -v -F -b 128 -B 160 "$1" "$2" else # wav-2-ogg oggenc "$1" -Q -b 128 -M 160 -o "$2" fi break fi } ################################################# # PROGRAMME #### Pas de fichiers sélectionné ### if [ $# -eq 0 ]; then zenity --error --title="$warning" --text="$noselec" exit 1 fi ######## Fenêtre principale ######## while [ ! "$formatout" ] # Réafficher la fenêtre tant que l'utilisateur n'a pas fait de choix do formatout=`zenity --title "$title" --list --column="Format" .mp3 .ogg .wav --text "$choix"` ###### Choix -> Sortie boucle ###### if [ $? != 0 ]; then exit 1 fi [ $? -ne 0 ] && exit 2 # Annulation done ########## Conversion ############ let "nbfiles = $#" #compteur=0; (while [ $# -gt 0 ]; do for i in $formatout; do in_file=$1 out_file=`echo "$in_file" | sed 's/\.\w*$/'$formatout'/'` echo "# $conversion $in_file" i=`echo $i | sed 's/"//g'` while `true`; do ### Le format sélectionné est le même que le format du fichier d'entrée ### if [ "$in_file" = "$out_file" ] then break fi ########## Le fichier de sortie existe déjà, l'écraser ? ########## if [ "`ls "$out_file" | grep -v "^ls"`" != "" ] then if !(`gdialog --title "$warning" --yesno "$out_file $proceed" 200 100`) then break fi fi caf "$in_file" "$out_file" "$formatout" # Lancer la conversion break shift done ######### Progression ######## let "compteur += 1" let "progress = compteur*100/nbfiles" echo $progress done shift done ) | #### Barre de progression #### zenity --progress --title="$title" --auto-close --percentage=0