Wer sein Display wieder der urprünglichen Aufgabe als digitaler Bilderrahmen für die Bilder auf der DS zuführen will, kann es mal damit versuchen.
Funktioniert noch nicht wirklich so richtig, zuweilen überholen sich die Prozesse etwas, aber als Idee m.E. brauchbar.
GetImages bitte auf die eigenen Gegebenheiten anpassen, am Besten erstmal klein anfangen.
Schade, dass man pro Widget scheinbar nur eine Expression verwenden kann. Für Verbesserungsvorschläge wäre ich dankbar.
Gruß Benares
lcd4linux.conf
Code:
Layout 'PictureFrame'
Display 'DPF'
Variables {
# Ticks:
second 1000
minute 60 * second
# Standard Dimensions:
linesize 53 # max line length, for status lines etc.
width100 51 # full width after padding (border)
width050 24 # 1/2 of full width
width033 17 # 1/3 of full width
width025 12 # 1/4 of full width
width010 5 # 1/10 of full width
# Colors:
black '000000'
white 'ffffff'
red 'ff0000'
darkblue '000066'
lightgray 'b2b2b2'
darkgray '191919'
barcolor0 '5f5fff'
barcolor1 'ff5f5c'
# Locals:
ImageIndex 0
NumImages 0
ActImage ''
NextImage ''
}
Display dpf {
Driver 'DPF'
Port 'usb0'
# Font '12x16'
Font '6x8'
Foreground white
Background darkblue
Basecolor darkblue
}
Widget GetImages {
class 'Timer'
expression NumImages = exec('ls -R /volume1/photo/*/*.jpg > /tmp/Images && cat /tmp/Images | wc -l', 5000)
active 1
update 0
}
Widget ChangeImage {
class 'Timer'
expression NextImage = file::readline('/tmp/Images',ImageIndex = ImageIndex>=NumImages?1:ImageIndex+1)
active 1
update 60000
}
Widget ConvertImage {
class 'Timer'
expression ActImage = NextImage ne ActImage ? exec('cat "'.NextImage.'" | /usr/syno/bin/convert -resize 320x240 jpg:- /tmp/IMGtemp.png && mv /tmp/IMGtemp.png /tmp/IMG.png && echo "'.NextImage.'"', 60000) : ActImage
active 1
update 0
}
Widget ShowImage {
class 'Image'
file '/tmp/IMG.png'
update 10000
reload 1
inverted 0
visible 1
}
Widget ImageInfo {
class 'Text'
expression ActImage eq NextImage ? ActImage.'('.ImageIndex.'/'.NumImages.')' : 'Loading '.NextImage
width width100
align 'C'
update 1000
}
Layout PictureFrame {
Timer1 'GetImages'
Timer2 'ChangeImage'
Timer3 'ConvertImage'
Row30.Col02 'ImageInfo'
Layer 2 {
X1.Y1 'ShowImage'
}
}