X-Git-Url: https://git.hcoop.net/clinton/abcde.git/blobdiff_plain/2c2dffe6d58521463918acd4425cf9e99d8001e8..4942842f82f2cb325f4cae1f2e0d6b4496f1534d:/abcde diff --git a/abcde b/abcde index d585c16..202ad94 100755 --- a/abcde +++ b/abcde @@ -489,8 +489,18 @@ makeids () PREGAP=$(($(echo $OFFSETS | cut -f1 -d' '))) TOTALTIME=$(( (($LEADOUT + $LEADIN + $PREGAP) / $CDFRAMES) - (($LEADIN + $PREGAP) / $CDFRAMES))) - printf -v HEXSUM "%08lx" $(( ($CDDBCKSUM % 0xff) << 24 | $TOTALTIME << 8 | $TRACKS)) - TRACKINFO="${HEXSUM} $((TRACKS)) ${COOKEDOFFSETS} $((($LEADOUT + $LEADIN + $IDMAGICNUM) / $CDFRAMES))" + case "$CDDBMETHOD" in + cddb) + printf -v DISCID "%08lx" $(( ($CDDBCKSUM % 0xff) << 24 | $TOTALTIME << 8 | $TRACKS)) + ;; + musicbrainz) + # FIXME: don't assume the first track is 1 + echo "dasd: 1 $TRACKS $LEADIN $LEADOUT $OFFSETS " + DISCID=$($MUSICBRAINZ --command calcid --discinfo 1 $TRACKS $LEADIN $LEADOUT $OFFSETS) + ;; + esac + + TRACKINFO="${DISCID} $((TRACKS)) ${COOKEDOFFSETS} $((($LEADOUT + $LEADIN + $IDMAGICNUM) / $CDFRAMES))" } do_replaygain() @@ -2230,7 +2240,8 @@ do_musicbrainz () # the available entries. rm -f "$ABCDETEMPDIR/cddbchoices" CDDBCHOICES=1 # Overridden by multiple matches - ${MUSICBRAINZ} --command data --device "$CDROM" --workdir $ABCDETEMPDIR + MBDISCID=$(echo $TRACKINFO | cut -d' ' -f1) + ${MUSICBRAINZ} --command data --discid "$MBDISCID" --workdir $ABCDETEMPDIR # The helper script will write disc matches out to # cddbread.*. Count how many we have @@ -3292,7 +3303,7 @@ fi # Parse command line options #while getopts 1a:bc:C:d:Dehj:klLmMnNo:pPq:r:Rs:S:t:T:vVxw:W: opt ; do -while getopts 1a:bBc:C:d:Defghj:klLmMnNo:pPr:s:S:t:T:UvVxX:w:W:z opt ; do +while getopts 1a:bBc:C:d:Defghj:klLmMnNo:pPq:r:s:S:t:T:UvVxX:w:W:z opt ; do case "$opt" in 1) ONETRACK=y ;; a) ACTIONS="$OPTARG" ;;