cdparanoia|debug)
if [ "$WEHAVEACD" = "y" ]; then
vecho "Querying the CD for audio tracks..."
- TRACKS=$( $CDROMREADER -d $CDROM -Q --verbose 2>&1 | egrep '^[[:space:]]+[[:digit:]]' | tail -n 1 | awk '{print $1}' | tr -d "." | tr '\n' ' ' )
+ CDPARANOIAOUTPUT=$( $CDROMREADER -d $CDROM -Q --verbose 2>&1 )
+ RET=$?
+ if [ ! "$RET" = "0" ];then
+ echo "Warning: Something went wrong while querying the CD... Maybe a DATA CD?"
+ fi
+ TRACKS=$( echo $CDPARANOIAOUTPUT | egrep '^[[:space:]]+[[:digit:]]' | tail -n 1 | awk '{print $1}' | tr -d "." | tr '\n' ' ' )
CDPARANOIAAUDIOTRACKS="$TRACKS"
else
if [ -f "$ABCDETEMPDIR/status" ] && checkstatus cdparanoia-audio-tracks ; then
else
TRACKS=$(echo $TRACKINFO | cut -f2 -d' ')
fi
+ if echo "$TRACKS" | grep [[:digit:]] > /dev/null 2>&1 ;then :;else
+ echo "The disc does not contain any tracks. Giving up..."
+ exit 0
+ fi
echo -n "Grabbing entire CD - tracks: "
if [ ! "$PADTRACKS" = "y" ] ; then
TRACKNUMPADDING=$(echo -n $TRACKS | wc -c | tr -d ' ')
fi
CDDBTRACKNUM=$(expr $UTRACKNUM - 1)
WAVDATA="$ABCDETEMPDIR/track$UTRACKNUM.wav"
- OUTDATA="$ABCDETEMPDIR/track$UTRACKNUM.$OUTPUTTYPE"
if [ -r "$CDDBDATA" ]; then
TRACKNAME=$(grep ^TTITLE$CDDBTRACKNUM= "$CDDBDATA" | head -n 1 | cut -f2 -d= | tr -d \[:cntrl:\])
echo "Grabbing track $UTRACKNUM: $TRACKNAME..." >&2
else
echo "Grabbing track $UTRACKNUM..." >&2
fi
+ if [ "$USEPIPES" = "y" ]; then
+ TEMPARG="PIPE_$CDROMREADERSYNTAX"
+ FILEARG=${!TEMPARG}
+ REDIR=""
+ else
+ case "$CDROMREADERSYNTAX" in
+ dagrab)
+ FILEARG="-f $WAVDATA"
+ ;;
+ *)
+ FILEARG=$WAVDATA
+ ;;
+ esac
+ REDIR=">&2"
+ fi
case "$CDROMREADERSYNTAX" in
cdparanoia) nice $READNICE $CDROMREADER -d $CDROM $UTRACKNUM "$WAVDATA" >&2 ;;
cdda2wav)
if [ "$RETURN" = "0" -a ! -s "$WAVDATA" ]; then
RETURN=73 # fake a return code as cdparanoia return 0 also on aborted reads
fi
- echo "readtrack-$UTRACKNUM: $CDROMREADER returned code $RETURN" >> "$ABCDETEMPDIR/errors"
+ if [ "$USEPIPES" = "y" ]; then
+ echo "readencodetrack-$UTRACKNUM: $CDROMREADER returned code $RETURN" >> "$ABCDETEMPDIR/errors"
+ else
+ echo "readtrack-$UTRACKNUM: $CDROMREADER returned code $RETURN" >> "$ABCDETEMPDIR/errors"
+ fi
return $RETURN
else
- echo readtrack-$UTRACKNUM >> "$ABCDETEMPDIR/status"
+ if [ "$USEPIPES" = "y" ]; then
+ echo readencodetrack-$UTRACKNUM >> "$ABCDETEMPDIR/status"
+ else
+ echo readtrack-$UTRACKNUM >> "$ABCDETEMPDIR/status"
+ fi
fi
}
for UTRACKNUM in $TRACKQUEUE
do
if [ "$DOREAD" = "y" ]; then
- if checkstatus readtrack-$UTRACKNUM; then :; else
- do_cdread $UTRACKNUM
+ if [ "$USEPIPES" = "y" ]; then
+ if checkstatus readencodetrack-$UTRACKNUM; then :; else
+ do_cdread $UTRACKNUM | do_encode $UTRACKNUM %local0%
+ fi
+ else
+ if checkstatus readtrack-$UTRACKNUM; then :; else
+ do_cdread $UTRACKNUM
+ fi
if [ "$?" != "0" ]; then
# CD read failed - don't give the goahead to
# the encoder
read GOAHEAD # For blocking - will contain either "NO" or "NEXTTRACK"
if [ "$GOAHEAD" = "NO" ]; then break; fi
# find out where this track is to be encoded
- if [ "$DOENCODE" = "y" ]; then
+ if [ "$DOENCODE" = "y" -a "$USEPIPES" != "y" ]; then
# Make sure we have a place to encode this, if not, exit stage right
if [ -z "$ENCODELOCATIONS" ]; then
continue