#!/bin/sh
#
# Script de lecture des pistes d'un disque audio pour en faire des MP3s
#
# (c) 1999 Thomas Nemeth

OK=1
FICHIER=""
RIPPER=cdparanoia
DEVICE=/dev/scd0
REPERTOIRE="."
if [ "$1" = "" -o "$1" = "-h" ]; then
	OK=0
elif [ "$1" != "-f" -a "$2" = "" ]; then
        DEBUT=$1
        FIN=$1
	FICHIER=tracks.dsc
elif [ "$1" != "-f" -a "$2" != "" ]; then
        DEBUT=$1
        FIN=$2
        FICHIER=tracks.dsc
elif [ "$1" = "-f" -a "$2" = "" ]; then
	DEBUT=1
	FIN=99
	FICHIER=tracks.dsc
elif [ "$1" = "-f" -a "$2" != "" ]; then
	DEBUT=1
	FIN=99
	FICHIER=$2
fi
if [ $OK = 1 ]; then
	ARTISTE=""
	if [ -f "$FICHIER" ]; then
        	lARTISTE=`grep -w "ARTISTE-" $FICHIER`
		if [ "$lARTISTE" != "" ]; then
			ARTISTE=`expr "$lARTISTE" : '.........\(.*\)'`
		fi
		lREP=`grep -w "REP-" $FICHIER`
		if [ "$lREP" != "" ]; then
			REPERTOIRE=`expr "$lREP" : '.....\(.*\)'`
		elif [ "$ARTISTE" != "" ]; then
			REPERTOIRE=$ARTISTE
		fi
        	if [ ! -d "$REPERTOIRE" ]; then
			mkdir "$REPERTOIRE"
	        fi
		lRIP=`grep -w "RIP-" $FICHIER`
		if [ "$lRIP" != "" ]; then
			RIPPER=`expr "$lRIP" : '.....\(.*\)'`
		fi
		if [ "$RIPPER" = "cdda2wav" ]; then
			DEVICE="0,2,0"
		fi
		lDEV=`grep -w "DEV-" $FICHIER`
		if [ "$lDEV" != "" ]; then
			DEVICE=`expr "$lDEV" : '.....\(.*\)'`
		fi
	fi
	i=`expr $DEBUT - 1`
	while (j=`expr $i != $FIN`)
	do
		i=`expr $i + 1`
		if [ -f "$FICHIER" ]; then
			lTITRE=`grep -w "$i-" $FICHIER`
			if [ "$lTITRE" != "" ]; then
				LONG=`expr length $i`
				if [ $LONG = 1 ]; then
	        	        	TITRE=`expr "$lTITRE" : '...\(.*\)'`
				elif [ $LONG = 2 ]; then
	        	        	TITRE=`expr "$lTITRE" : '....\(.*\)'`
				fi
			else
				TITRE=""
			fi
        	fi
		if [ "$TITRE" != "" -o "$FIN" != "99" ]; then
			echo "Getting track #$i : $ARTISTE - $TITRE"
			if [ "$RIPPER" = "cdda2wav" ]; then
				cdda2wav -D "$DEVICE" -I generic_scsi -s -S 0 -x -O wav -q -H -t $i track$i.wav
			elif [ "$RIPPER" = "cdparanoia" ]; then
				cdparanoia -w -d "$DEVICE" $i track$i.wav
			fi
			bladeenc -DELETE -QUIT track$i.wav
			if [ -f "$FICHIER" ]; then
				if [ "$ARTISTE" != "" ]; then
					NOM="$REPERTOIRE/$ARTISTE - $TITRE.mp3"
				else
					NOM="$REPERTOIRE/$TITRE.mp3"
				fi
				mv track$i.mp3 "$NOM"
	        	fi
		fi
	done
	if [ -f "$FICHIER" ]; then
		rm "$FICHIER"
	fi
	play /usr/local/share/sounds/Pswrkdon.wav > /dev/null
else
	echo "MP3ify - MP3ifier of Audio CDs"
	echo
	echo "Usage : mp3ify n1 [n2]"
	echo "        mp3ify -f [file]"
	echo " - n1 : number of the first (or only) track to MP3ify"
	echo " - n2 : number of the last track to MP3ify"
	echo " - -f : Use file (defaults to tracks.dsc) for naming files and"
	echo "        for specifying path and device"
	echo
	echo " File must contain following keys :"
	echo " - ARTISTE- artist name : spcifying the artist's name"
	echo " - #- song title        : # can be 1 to 99, and the title of the"
	echo "                          corresponding song"
	echo " It can also contain the following keys :"
	echo " - REP- repertory       : which is the directory where the mp3"
	echo "                          files will be put, it defaults to the"
	echo "                          ARTISTE- key, but can be . or any other rep."
	echo " - DEV- device          : specifying the scsi device (/dev/cdrom-device)"
	echo "                          to use for input CD. It defaults to /dev/scd0"
	echo "                          or 0,2,0 (bus,id,lun) if you use cdda2wav"
	echo " - RIP- ripper          : Set it to 'cdda2wav' or 'cdparanoia' anything"
	echo "                          else won't get audio tracks."
	echo
fi
