Na początek duże podziękowania dla Obsy'ego za pomoc, i cierpliwość :)
Za pewne są osoby które wykorzystują pilota do obsługi routera w celu np: odtwarzania plików mp3 lub radia internetowego i do tego podłączyli LCD do wyświetlania wyników Rjak ja :)R1;. myślę że przydało by się coś takiego jak możliwość przeglądania plików MP3 na LCD bez konieczności używania komputera.
Wyobraźmy sobie że kolega przyszedł i chciał pochwalić się jakie ma fajne kawałki MP3 na pendrive, teraz trzeba odpalać komputer czekać R30;. czekać w końcu się odpalił :) wpinamy pendrive wchodzimy na niego szukamy plikówR30; uff R30;. . Albo wpinamy pendrive w wolne gniazdo USB routera i od razu mamy liste plików na LCD :) a że router chodzi raczej 24/h nie musimy czekać i możemy od razu przeglądać a potem odtworzyć wybrany plik w MPD.
Prawda że dużo szybciej :)
A wiec jak to zrobić??
Zakładam że mamy:
- Pilot
- LCD R11; obsługa sterownika LCD2USB
- Zainstalowany program do obsługi LCD - Lcd4linux
- Zainstalowany odtwarzacz muzyki - MPD z MPC
- wolne gniazdo USB
Pliki konfiguracyjne:
Auto uruchamianie skryptu przy włożeniu USB
Dodajemy do /etc/config/fstab coś takiego:
config mount
option target /mnt/USBB
option device /dev/sdb1
option options rw
option enabled 1
option enabled_fsck 1
list 'service' 'kopia' # <-- uruchamia skrypt o nazwie kopia
w katalogu /mnt musimy utworzyć katalog USBB oczywiście, I tam będzie automatycznie montowany każdy pierwszy wpięty pendrive.
Teraz tworzymy w /etc/init.d/ plik o nazwie kopia który po zamontowaniu pendrive wywoła kolejne polecenia potrzebne do obsługi a do niego wrzucamy taką zawartość:
#!/bin/sh /etc/rc.common
start() {
killall lcd4linux ; cp /dodatki/Ekrany/lcd4linuxKOPIA.conf /etc/lcd4linux.conf ;
cp /dodatki/pilot/lirccopy /etc/lircrc && /etc/init.d/lircd restart && lcd4linux ;
echo 0 > /dodatki/log.txt ; echo Pliki MP3 > /dodatki/lcdmenu.txt ;
echo ">" >> /dodatki/lcdmenu.txt ; echo " " > /dodatki/lcd.txt ;
/dodatki/skrypty/up.sh ; /dodatki/skrypty/licznik.sh ; mpd
}
Teraz musimy utworzyć katalog np. /dodatki i w nim będziemy trzymali potrzebne pliki do obsługi.
Kopiujemy zawartość pliku /etc/lcd4linux.conf i zapisujemy w pliku /dodatki/Ekrany/lcd4linuxdefault.conf
Kopiujemy zawartość pliku /etc/lircrc i zapisujemy w pliku /dodatki/pilot/lircdefault
Powyższe czynności pozwolą powrócić do poprzednich ustawień
Aby móc wyświetlić pliki na LCD
w katalogu /dodatki/Ekrany tworzymy plik lcd4linuxKOPIA.conf z takim wpisem :
Display LCD2USB {
Driver 'LCD2USB'
Size '20x4'
Brightness 255
Contrast 255
Icons 1
}
Widget pozycja {
class 'Text'
expression file::readline('/dodatki/log.txt', 1)
postfix '/'
align 'R'
width 5
update 100
}
Widget licznik {
class 'Text'
expression file::readline('/dodatki/lcdmenu.txt', 3)
width 4
update 100
}
Widget dmes1 {
class 'Text'
expression file::readline('/dodatki/lcdmenu.txt', 1)
width 20
update 100
}
Widget dmes12 {
class 'Text'
expression file::readline('/dodatki/lcdmenu.txt', 2)
width 1
update 100
}
Widget dmes2 {
class 'Text'
expression file::readline('/dodatki/lcd.txt', 1)
width 20
update 100
}
Widget dmes3 {
class 'Text'
expression file::readline('/dodatki/lcd.txt', 2)
width 20
update 100
}
Widget dmes4 {
class 'Text'
expression file::readline('/dodatki/lcd.txt', 3)
width 20
update 100
}
Layout L20x4 {
row1 {
Col1 'dmes1'
Col11 'pozycja'
Col16 'licznik'
}
row2 {
Col1 'dmes12'
Col3 'dmes2'
}
row3 {
Col1 'dmes3'
}
row4 {
Col1 'dmes4'
}
}
Display 'LCD2USB'
Layout 'L20x4'
Teraz aby sterować przewijaniem i odtwarzaniem plików
w katalogu /dodatki/pilot/ tworzymy plik lirccopy z takim wpisem:
begin
prog = irexec
button = BACK
config = mpc prev
end
begin
prog = irexec
button = FORWARD
config = mpc seek +5
repeat = 1
end
begin
prog = irexec
button = REWIND
config = mpc seek -5
repeat = 1
end
begin
prog = irexec
button = NEXT
config = mpc next
end
begin
prog = irexec
button = PLAY
config = mpc play
end
begin
prog = irexec
button = DOWN
config = /dodatki/skrypty/up.sh
end
begin
prog = irexec
button = UP
config = /dodatki/skrypty/down.sh
end
begin
prog = irexec
button = OK
config = /dodatki/skrypty/play.sh
end
begin
prog = irexec
button = PAUSE
config = mpc pause
end
begin
prog = irexec
button = STOP
config = mpc stop
end
begin
prog = irexec
button = ARROW
config = mpc repeat
end
begin
prog = irexec
button = PREVIEW
config = mpc single
end
begin
prog = irexec
button = DVD
config = mpd
end
begin
prog = irexec
button = VOL-
config = mpc volume -1
repeat = 1
end
begin
prog = irexec
button = VOL+
config = mpc volume +1
repeat = 1
end
begin
prog = irexec
button = CH_LIST
config = mpc clear ; mpd # w moim przypadku musi tak być gdyż wyłacza mi mpd
end
begin
prog = irexec
button = VIDEO_DESKTOP
config = /dodatki/skrypty/pilotskr/copyexitmenump3.sh
end
!!!! Koniecznie używaj przycisku z tym skryptem /dodatki/skrypty/pilotskr/copyexitmenump3.sh do odmontowania pendrive przed wyjęciem gdyż sam się nie odmontuje i może być później bałagan :) !!!!
Nazwy przycisków wpisać takie jak mamy przypisane do swojego pilota ( sprawdzić z irw )
Teraz tworzymy pliki skryptów dla przycisków pilota:
/dodatki/skrypty/up.sh
#!/bin/sh
B=$(find /mnt/USB* -name '*.mp3' | wc -l)
A=$(cat /dodatki/log.txt)
if [ "$A" == "$B" ]
then echo $B > $A
else A=$((A+1))
fi
find /mnt/USB* -name '*.mp3' | sed -n $A,$((A+4))p > /dodatki/wynik.txt
echo $A>/dodatki/log.txt
sed 's|/.*/\(.*mp3\)|\1|g' /dodatki/wynik.txt > /dodatki/lcd.txt
/dodatki/skrypty/down.sh
#!/bin/sh
A=$(cat /dodatki/log.txt)
if [ "$A" == "1" ]
then echo 1 > "$A"
else A=$((A-1))
fi
find /mnt/USB* -name '*.mp3' | sed -n $A,$((A+4))p > /dodatki/wynik.txt
echo $A>/dodatki/log.txt
sed 's|/.*/\(.*mp3\)|\1|g' /dodatki/wynik.txt > /dodatki/lcd.txt
/dodatki/skrypty/play.sh
#!/bin/sh
PLIK=$(head -n1 /dodatki/wynik.txt)
KATALOG=${PLIK%/*.mp3}
MP3=${PLIK##/*/}
ln -s $KATALOG /mnt/hdd1/music; mpc add "$MP3" # /mnt/hdd1/music zmienić na taki jaki jest w /etc/mpd.conf bo tam tworza się dowiązania (linki) inaczej nie doda do play listy mpd
Kolejny skrypt pozwoli na powrót do ustawień domyślnych przed uruchomieniem przeglądarki MP3 dla pilota i lcd4linux dlatego wyżej pisałem aby skopiować pliki konfiguracji pierwotnej.
/dodatki/skrypty/copyexitmenump3.sh:
#!/bin/sh
umount /mnt/USBB;
cp /dodatki/pilot/lircdefault /etc/lircrc &&
/etc/init.d/lircd restart ;
Killall lcd4linux ; cp /dodatki/Ekrany/lcd4linuxdefault.conf /etc/lcd4linux.conf && lcd4linux ;
echo Odmontowano dysk > /dodatki/lcd.txt ;
echo " " > /dodatki/lcdmenu.txt ;
/dodatki/skrypty/usun.sh
Abyśmy widzieli ile plików znalazła przeglądarka MP3 na dysku tworzymy plik /dodatki/skrypty/licznik:
#!/bin/sh
find /mnt/USB* -name '*.mp3' | wc -l >> /dodatki/lcdmenu.txt
Każde dodanie pliku do odtwarzacza mpd wymaga utworzenia dowiązania w katalogu docelowym mpd jeśli plik się w nim nie znajduje, więc po wyjęciu pendrive zostają w nim puste linki aby za każdym razem nie usuwać ręcznie tych linków tworzymy plik /dodatki/skrypty/usun.sh a w nim:
#!/bin/sh
find /mnt/hdd1/music -type l -exec rm {} \
Tak więc mamy teraz odtwarzacz MP3 z dodatkową automatyczną obsługą zewnętrznych nośników I możliwością przeglądania plików MP3.
Oczywiście możliwości tego rozwiązania nie kończą się na samych MP3'ójkach
Mam nadzieję że Tutorial będzie przydatny :)
Pozdrawiam
wabikboy
Edytowany przez wabikboy dnia 18-01-2012 12:22
|