|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Edward Yudanov 2:5007/11.35 07 Dec 2004 21:51:53 To : Alexander Nemtsev Subject : Re: скрипт -------------------------------------------------------------------------------- Как сейчас помню Mon, 06 Dec 2004 15:40:04 +0700 ты писал(а): AN>никто не поделится сабжем для отслеживания AN>играемых композиций для mpg123 или mp3blaster? для mp3blaster одной из старых версий есть патч http://fido.khakassia.ru/ru/files/tools/mp3blas.patch А для mpg123 у меня вот что сохранилось (Copyright утерян :( ): ================================================================== #!/bin/bash PIPENAME=/tmp/.mpg123 NOWPLAY=/tmp/track SIGNATURE=~/.signature parser() { N=1 PLAYTRACK='eval echo LOAD \${$N}' STOPPLAY='{ echo "QUIT"; TRACK="/dev/zero :)"; [ -f $SIGNATURE ] && cat $SIGNATURE >$NOWPLAY; eval "echo $NOWPLAYFMT" >>$NOWPLAY; return 0; }' NEXTTRACK='N=$(($N+1)); [ $N -gt $# ] && '"$STOPPLAY;$PLAYTRACK" PREVTRACK='N=$(($N-1)); [ $N -lt 1 ] && '"$STOPPLAY;$PLAYTRACK" PAUSETRACK='echo "PAUSE"' NOWPLAYFMT='mpg123 играет: $TRACK' trap "$STOPPLAY" SIGTERM trap "$PAUSETRACK" SIGINT trap "$NEXTTRACK" SIGUSR1 trap "$PREVTRACK" SIGUSR2 while read LINE; do case "${LINE:0:2}" in (@E) ;; (@F) ;; (@I) [ -f $SIGNATURE ] && cat $SIGNATURE >$NOWPLAY if [ "${LINE:3:4}" = "ID3:" ]; then TRACK="${LINE:37:30} - ${LINE:7:30}" else TRACK="${LINE:3:30}" fi eval "echo $NOWPLAYFMT" >>$NOWPLAY ;; (@P) [ "${LINE:3:1}" = "0" ] && eval "$NEXTTRACK" ;; (@R) eval "echo LOAD \${$N}" ;; (*) ;; esac done } PIDS=$(ps -C mp3play -o pid --no-heading) TPIDS="" for PID in $PIDS; do [ $PID -ne $$ ] && TPIDS="$TPIDS $PID" done SHUFFLE=0 while [ "${1:0:1}" = "-" ]; do case "${1:0:5}" in (-stop) [ -n "$TPIDS" ] && kill -SIGTERM $TPIDS ;; (-play) [ -n "$TPIDS" ] && kill -SIGINT $TPIDS ;; (-next) [ -n "$TPIDS" ] && kill -SIGUSR1 $TPIDS ;; (-prev) [ -n "$TPIDS" ] && kill -SIGUSR2 $TPIDS ;; (-z) SHUFFLE=1 ;; esac shift done [ $# -eq 0 ] && exit 0 [ -n "$TPIDS" ] && kill -SIGTERM $TPIDS [ ! -p $PIPENAME ] && { mkfifo $PIPENAME; chmod 770 $PIPENAME; } N=$# for((I=1;I<=$N;++I)); do eval 'pl[$I]=${'"$I}" done if [ $SHUFFLE -ne 0 ]; then for((I=$N;I>0;--I)); do X=$(($RANDOM*$I/32768+1)) pl1=${pl[$I]} pl[$I]=${pl[$X]} pl[$X]=$pl1 done echo ${pl[@]} fi mpg123 -R new <$PIPENAME 2>/dev/null | parser "${pl[@]}" >$PIPENAME & ===================================================================== -- |> A.Simpson vs. Benni bros - Pieces.ogg --- slrn/0.9.8.0-asp (Linux) * Origin: [ RLU #316941 http://fido.khakassia.ru/ ] (2:5007/11.35) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/32992c0867e4.html, оценка из 5, голосов 10
|