Diese Sektion erlaubt es ihnen alle Beiträge dieses Mitglieds zu sehen. Beachten sie, dass sie nur solche Beiträge sehen können, zu denen sie auch Zugriffsrechte haben.
$ git clone https://github.com/HerrSchrader/McBetty
Initialized empty Git repository in /usr/src/mpd/mcbetty/git2/McBetty/.git/
fatal: https://github.com/HerrSchrader/McBetty/info/refs not found: did you run git update-server-info on the server?
GMPC verwende ich auch. Wenn man MPD verwendet, kommt man da wohl kaum dran vorbei.
Also ich benutze hier gmpc und ncmpc als clients fuer mpd. Besonders gmpc ist sehr einfach und intuitiv bedienbar.
Das ist alles noch ein ziemliches Gewurschtel. Ich verstehe auch das Konzept von MPD bezüglich Playlisten nicht wirklich. Warum haben Playlisten Versionsnummern, aber keinen numerischen Index, mit denen man sie aufrufen kannGeht einfacher als mit Index, Du kannst eine Playlist direkt mit ihren Namen aufrufen. Gegebenfalls kann man sich die vorhandenen Playlisten mit mpc anzeigen lassen.
mpc load playlistname
mpc lsplaylists
ZitatIst sehr praktisch, damit schalte ich zum Beispiel je nach MPD-Wiedergabe meine Stereo-Anlage vollautomatisch über eine Funksteckdose an und aus. Das geht über einen USB-Funkstick namens Tellstick, sehr zu empfehlen.
Wie speichertst Du denn die letzten 100 Songs ab, mit mpdcron?
Das kenne ich noch gar nicht.
#!/bin/bash
# FX, 2010-08-06
# Switch between radio (stream) and normal playing
# Requirements: A MPD-playlist called "Radio" with your radio streams
# Fit your $USER and make sure that $USER have respective rights at /home/$USER/.mpd/
# PARAMETER
USER=markus
TEMPMODE=/home/$USER/.mpd/tempMode
TEMPNR=/home/$USER/.mpd/tempNr
TEMPSTATE=/home/$USER/.mpd/tempState
TEMPTIME=/home/$USER/.mpd/tempTime
TEMPRADIONR=/home/$USER/.mpd/tempRadioNr
TEMPRADIOSTATE=/home/$USER/.mpd/tempRadioState
if [ ! -e "$TEMPMODE" ]; then
echo "Mode nicht angelegt"
echo "normal" > "$TEMPMODE"
fi
if [ "$1" == "$(cat "$TEMPMODE")" ]; then
echo "Modus bereits aufgerufen"
case "$1" in
radio)
# /usr/local/skripte/lircLcd.py -f " RADIO" &
;;
normal)
# /usr/local/skripte/lircLcd.py -f " MUSIK" &
;;
esac
exit
fi
echo "Übergabeparameter: $1"
case "$1" in
radio)
# Switch to radio playlist
echo "Switch to radio"
echo "radio" > "$TEMPMODE"
ACTNR=$(mpc --format "%position%" | head -n 1)
echo "Active Nr: $ACTNR"
echo $ACTNR > "$TEMPNR"
# Status einlesen
if [ `/usr/bin/mpc | wc -l` -gt "1" ]; then
if [ `/usr/bin/mpc | grep playing | wc -l` -eq "1" ]; then
echo "Status: play"
echo play > "$TEMPSTATE"
else
echo "Status: pause"
echo pause > "$TEMPSTATE"
fi
echo "$(/usr/bin/mpc | head -n 2 | tail -n 1 | cut -d' ' -f5 | cut -d'/' -f1)" > "$TEMPTIME"
else
echo "Status: stop"
echo stop > "$TEMPSTATE"
fi
mpc rm temp
mpc save temp
mpc clear
mpc load Radio
if [ -e "$TEMPRADIONR" ]; then
ACTNR=$(cat "$TEMPRADIONR")
mpc play
mpc play $ACTNR
else
mpc play
fi
;;
normal)
# Switch back to normal playlist (saved as temp)
echo "Switch to normal"
#/usr/local/skripte/lircLcd.py -f " MUSIK" &
echo "normal" > "$TEMPMODE"
ACTNR=$(mpc --format "%position%" | head -n 1)
echo "Radio Active Nr: $ACTNR"
echo $ACTNR > "$TEMPRADIONR"
# Status einlesen
if [ `/usr/bin/mpc | wc -l` -gt "1" ]; then
if [ `/usr/bin/mpc | grep playing | wc -l` -eq "1" ]; then
echo "Radio State: play"
echo play > "$TEMPRADIOSTATE"
else
echo "Radio State: pause"
echo pause > "$TEMPRADIOSTATE"
fi
else
echo "Radio State: stop"
echo stop > "$TEMPRADIOSTATE"
fi
# Normal Playlist einlesen
mpc clear
mpc load temp
if [ -e "$TEMPNR" ]; then
ACTNR=$(cat "$TEMPNR")
echo "Old State: Play #$ACTNR"
mpc play
mpc play $ACTNR
if [ -e "$TEMPTIME" ]; then
echo "Old State: Play #$ACTNR - $(cat "$TEMPTIME")"
mpc seek "$(cat "$TEMPTIME")"
fi
else
mpc play
fi
;;
*)
echo "Usage: $0 {radio|normal}"
esac
Wow, genial! Werde ich mir anschauen.
In der neuesten Version auf git-hub ist das testweise drin. Wenn man im Playing-Screen (da wo Titel und Spieldauer und so angezeigt werden) auf "A" drückt, wird das Script
"script_1.sh" im aktuellen Verzeichnis von mpdtool aufgerufen. Taste "B" ruft "script_2.sh" auf. Ist aber noch nicht ausführlich geteste!
Wie speichertst Du denn die letzten 100 Songs ab, mit mpdcron?
Extern per Script. So eine Funktion auf der Betty wäre noch schön, so etwas wie Smart-Playlists bei Amarok. Ist aber schwierig. Mal schauen.
Ok, ich hab mir der einfachheit halber auch einen /home/raap Ordner erstellt und dorthin die Codesourcery installiert.
Die Pfade zu den Tools (Codesourcery und sdcc) müssen in den Makefiles angepasst werden wenn man selbst kompiliert.
/home/raap/CodeSourcery/Sourcery_G++_Lite/bin/arm-uclinuxeabi-gcc -mcpu=arm7tdmi-s -Wall -mthumb-interwork -msoft-float -I/home/raap/CodeSourcery/Sourcery_G++_Lite/include -I. -Iinterrupt -Idisplay -Ikeyboard -Ikernel -Iaudio -Iinfrared -Iserial -Iflash -Icc1100 -Igui -Itimer -Igames -Iadc -Irtc -Itools -Ipwm -Impd -O2 -c -MMD -MF serial/.deps/serial.o -o serial/serial.o serial/serial.c
/home/raap/CodeSourcery/Sourcery_G++_Lite/bin/arm-uclinuxeabi-ld -Tlpc2220_rom.ld -Map boop.map -L/home/raap/CodeSourcery/Sourcery_G++_Lite/lib/gcc/arm-uclinuxeabi/4.3.2 -o muc_rom.elf crt.o isr.o arm_exc.o global.o main.o cc1100/cc1100.o cc1100/rf.o display/lcd.o display/fonty.o display/window.o display/screen.o display/screen_playing.o display/screen_tracklist.o display/screen_playlist.o display/screen_info.o interrupt/irq.o pwm/pwmirq.o keyboard/keyboard.o kernel/kernel.o timer/timerirq.o mpd/model.o mpd/mpd.o serial/serial.o -lgcc
/home/raap/CodeSourcery/Sourcery_G++_Lite/bin/arm-uclinuxeabi-ld.real: cannot find -lgcc
make: *** [muc_rom.elf] Fehler 1
EDIT: Habs jetzt über folgenden Workaround in den Griff bekommen::/usr/src/mpd/mcbetty/git/McBetty/scart_image$ ./flashtool /dev/ttyUSB0
Sending break
Read 0 characters:
Read 0 characters:
buffer[0] = 00
Error: Could not negotiate baud rate!
:/usr/src/mpd/mcbetty/git/McBetty/scart_image$ make
gcc bin2c.c -o bin2c
gcc makebin.c -o makebin
/usr/bin/sdcc --iram-size 0x100 --model-small --code-size 8192 -I/include -c main.c
/usr/bin/sdcc --iram-size 0x100 --model-small --code-size 8192 -I/include -c serial.c
/usr/bin/sdcc --iram-size 0x100 --model-small --code-size 8192 -I/include -c cc1100.c
cc1100.c:53:1: warning: "SMARTRF_SETTING_PKTCTRL1" redefined
In file included from cc1100.c:21:
smartrf_CC1100.h:73:1: warning: this is the location of the previous definition
cc1100.c:54:1: warning: "SMARTRF_SETTING_IOCFG0D" redefined
smartrf_CC1100.h:72:1: warning: this is the location of the previous definition
cc1100.c:55:1: warning: "SMARTRF_SETTING_IOCFG2" redefined
smartrf_CC1100.h:71:1: warning: this is the location of the previous definition
cc1100.c:56:1: warning: "SMARTRF_SETTING_FIFOTHR" redefined
smartrf_CC1100.h:70:1: warning: this is the location of the previous definition
/usr/bin/sdcc --iram-size 0x100 --model-small --code-size 8192 -I/include main.rel serial.rel cc1100.rel -o betty_scart.ihx
./makebin -s 7680 <betty_scart.ihx >betty_scart.bin
./bin2c scart_image 7680 <betty_scart.bin >scart_image.h
gcc flashtool.c -o flashtool
asx8051 -losg isp.asm
/usr/bin/sdcc --iram-size 0x100 --model-small --code-size 8192 -I/include main.rel serial.rel cc1100.rel isp.rel -o betty_scart_boot.ihx
./makebin -s 8192 <betty_scart_boot.ihx >betty_scart_boot.bin
./bin2c scart_image 8192 <betty_scart_boot.bin >scart_image_boot.h
cp scart_image_boot.h boop.orig/tools/scart_image.h
cd boop.orig && make clean && make
make[1]: Betrete Verzeichnis '/usr/src/mpd/mcbetty/git/McBetty/scart_image/boop.orig'
rm -Rf .deps adc/.deps audio/.deps cc1100/.deps display/.deps flash/.deps games/.deps gui/.deps infrared/.deps interrupt/.deps keyboard/.deps rtc/.deps serial/.deps timer/.deps tools/.deps
rm -f crt.o main.o global.o audio/soundirq.o infrared/infraredirq.o interrupt/irq.o keyboard/keyirq.o timer/timerirq.o adc/adc.thumb.o adc/adcirq.thumb.o audio/sound.thumb.o audio/sid.thumb.o cc1100/cc1100.thumb.o cc1100/rf.thumb.o display/lcd.thumb.o display/fonty.thumb.o display/backlight.thumb.o flash/flash.thumb.o flash/bfs.thumb.o games/gamesmenu.thumb.o games/tic_tac_toe.thumb.o games/sokoban.thumb.o games/connect4.thumb.o gui/menu.thumb.o gui/mainmenu.thumb.o gui/testmenu.thumb.o gui/settingsmenu.thumb.o gui/controls.thumb.o infrared/infrared.thumb.o infrared/codes.thumb.o infrared/encoders.thumb.o infrared/ir_capture.thumb.o infrared/ir_selector.thumb.o keyboard/keyboard.thumb.o rtc/rtc.thumb.o rtc/i2c.thumb.o serial/serial.thumb.o timer/timerfuncs.thumb.o tools/toolsmenu.thumb.o tools/scart_icp.thumb.o infrared/ir_itt.thumbunopt.o infrared/ir_nrc17.thumbunopt.o infrared/ir_raw.thumbunopt.o infrared/ir_rc5.thumbunopt.o infrared/ir_rc6.thumbunopt.o infrared/ir_rca.thumbunopt.o infrared/ir_rcmm.thumbunopt.o infrared/ir_rec80.thumbunopt.o infrared/ir_recs80.thumbunopt.o infrared/ir_rf.thumbunopt.o infrared/ir_sirc.thumbunopt.o infrared/ir_spaceenc.thumbunopt.o *.elf *.bin *.hex *~
make[1]: Verlasse Verzeichnis '/usr/src/mpd/mcbetty/git/McBetty/scart_image/boop.orig'
make[1]: Betrete Verzeichnis '/usr/src/mpd/mcbetty/git/McBetty/scart_image/boop.orig'
mkdir -p .deps
mkdir -p adc/.deps
mkdir -p audio/.deps
mkdir -p cc1100/.deps
mkdir -p display/.deps
mkdir -p flash/.deps
mkdir -p games/.deps
mkdir -p gui/.deps
mkdir -p infrared/.deps
mkdir -p interrupt/.deps
mkdir -p keyboard/.deps
mkdir -p rtc/.deps
mkdir -p serial/.deps
mkdir -p timer/.deps
mkdir -p tools/.deps
/home/raap/CodeSourcery/Sourcery_G++_Lite/bin/arm-uclinuxeabi-as -mcpu=arm7tdmi-s -D --gstabs -mthumb-interwork -mfpu=softfpa -o crt.o crt.s
make[1]: /home/raap/CodeSourcery/Sourcery_G++_Lite/bin/arm-uclinuxeabi-as: Kommando nicht gefunden
make[1]: *** [crt.o] Fehler 127
make[1]: Verlasse Verzeichnis '/usr/src/mpd/mcbetty/git/McBetty/scart_image/boop.orig'
make: *** [betty_flasher] Fehler 2
Die Übertragungsgeschwindigkeit ist in Ordnung. Allerdings ist das Handling z.B. übers Smartphone (Android) schon um Klassen besser. Die Betty ist nur "Backup", um mal schnell Musik machen zu können, ohne Rechner oder Handy zu bemühen.Hört sich gut an, d.h. man muß nicht ewig auf irgendeine Verbindung warten, sondern Betty an und los gehts?
bzip2: (stdin) is not a bzip2 file.