scale down big images, do not enfrce 16:9, start autoupdate without energy saving
This commit is contained in:
parent
5d297406f9
commit
19ac570474
|
@ -22,6 +22,8 @@ import zipfile
|
||||||
import requests
|
import requests
|
||||||
# used to call to shutdown or vcgencmd
|
# used to call to shutdown or vcgencmd
|
||||||
import subprocess
|
import subprocess
|
||||||
|
# used to validate image sizes to avoid crashes
|
||||||
|
from PIL import Image
|
||||||
|
|
||||||
# below lines for develepment only
|
# below lines for develepment only
|
||||||
# When DEBUG_PREVIEW is set to True, then te dislay will only cover
|
# When DEBUG_PREVIEW is set to True, then te dislay will only cover
|
||||||
|
@ -52,6 +54,7 @@ energySavingMode = 0
|
||||||
energySavingStart = None
|
energySavingStart = None
|
||||||
energySavingEnd = None
|
energySavingEnd = None
|
||||||
energySavingDuration = 0
|
energySavingDuration = 0
|
||||||
|
lastUpdate = None
|
||||||
|
|
||||||
def readConfig(configFile=None):
|
def readConfig(configFile=None):
|
||||||
global bild_dauer, DEBUG_PREVIEW, localPath, remoteURL, localPathExists
|
global bild_dauer, DEBUG_PREVIEW, localPath, remoteURL, localPathExists
|
||||||
|
@ -241,8 +244,9 @@ class WatchTime():
|
||||||
print("NTP clock is synced")
|
print("NTP clock is synced")
|
||||||
|
|
||||||
def checkTimeForShutdown(self):
|
def checkTimeForShutdown(self):
|
||||||
#if energy saving is set to shutdown, check if it is time to sutdown
|
#check if it is time to sutdown
|
||||||
if energySavingDuration > 0:
|
if energySavingDuration > 0:
|
||||||
|
# duration in hours is used (field set to eg. -16)
|
||||||
running = self.hhmmToMinutes(time.localtime()) - self.hhmmToMinutes(self.startuptime)
|
running = self.hhmmToMinutes(time.localtime()) - self.hhmmToMinutes(self.startuptime)
|
||||||
if energySavingDuration*60 < running:
|
if energySavingDuration*60 < running:
|
||||||
#it is time to shutdown
|
#it is time to shutdown
|
||||||
|
@ -314,10 +318,20 @@ class WatchTime():
|
||||||
self.receiver,window,blankScreenOff()
|
self.receiver,window,blankScreenOff()
|
||||||
return
|
return
|
||||||
|
|
||||||
|
def checkTimeForUpdate(self):
|
||||||
|
now = self.hhmmToMinutes(time.localtime())
|
||||||
|
running = self.hhmmToMinutes(time.localtime()) - self.hhmmToMinutes(self.startuptime)
|
||||||
|
if self.synced == True:
|
||||||
|
#clock is synced - we run update between 3:15 and 3:30 (to avoid daylight savings change)
|
||||||
|
if now > 195 and now < 210:
|
||||||
|
self.window.updateMedia()
|
||||||
|
#else:
|
||||||
|
# if running > 24*60
|
||||||
|
|
||||||
def checkTimedEvents(self):
|
def checkTimedEvents(self):
|
||||||
print("checkTimedEvents",energySavingMode, energySavingDuration,energySavingStart,energySavingEnd)
|
print("checkTimedEvents",energySavingMode, energySavingDuration,energySavingStart,energySavingEnd)
|
||||||
if energySavingMode == 0:
|
if energySavingMode == 0:
|
||||||
#if energy saving is off, we have nothing to do
|
#if energy saving is off, we only check if update is pending
|
||||||
return
|
return
|
||||||
elif energySavingMode == 1:
|
elif energySavingMode == 1:
|
||||||
if energySavingStart == None:
|
if energySavingStart == None:
|
||||||
|
@ -386,11 +400,28 @@ class Mediafile:
|
||||||
self.type = "unknown"
|
self.type = "unknown"
|
||||||
self.duration = 0
|
self.duration = 0
|
||||||
self.valid = False
|
self.valid = False
|
||||||
|
resize=False
|
||||||
|
wscale = 1.0
|
||||||
|
hscale = 1.0
|
||||||
extension = os.path.basename(filename).split(".")[-1]
|
extension = os.path.basename(filename).split(".")[-1]
|
||||||
if extension in image_extensions:
|
if extension in image_extensions:
|
||||||
if DEBUG_PREVIEW == True:
|
img = Image.open(filename)
|
||||||
print("image file: "+os.path.basename(filename))
|
w,h = img.size
|
||||||
|
if w > 1920:
|
||||||
|
wscale = 1920.0/float(w)
|
||||||
|
resize = True
|
||||||
|
if h > 1080:
|
||||||
|
hscale = 1080.0/float(h)
|
||||||
|
resize = True
|
||||||
|
if resize == True:
|
||||||
|
scale = min(wscale,hscale)
|
||||||
|
img = img.resize( (int(w*scale),int(h*scale)),resample=Image.ANTIALIAS)
|
||||||
|
img.save(filename)
|
||||||
|
w,h = img.size
|
||||||
|
img.close()
|
||||||
self.valid = True
|
self.valid = True
|
||||||
|
if DEBUG_PREVIEW == True:
|
||||||
|
print("image file: "+os.path.basename(filename)+"(%d"%w+"x%d)"%h, "resized:",resize)
|
||||||
elif extension in movie_extensions:
|
elif extension in movie_extensions:
|
||||||
media = caller.instance.media_new(filename)
|
media = caller.instance.media_new(filename)
|
||||||
media.parse()
|
media.parse()
|
||||||
|
@ -443,7 +474,7 @@ class MySlideShow(tk.Toplevel):
|
||||||
self.instance = vlc.Instance("--no-xlib --quiet --fullscreen --")
|
self.instance = vlc.Instance("--no-xlib --quiet --fullscreen --")
|
||||||
self.player = self.instance.media_player_new()
|
self.player = self.instance.media_player_new()
|
||||||
self.player.video_set_scale(0)
|
self.player.video_set_scale(0)
|
||||||
self.player.video_set_aspect_ratio('16:9')
|
#self.player.video_set_aspect_ratio('16:9')
|
||||||
self.player.video_set_deinterlace('auto')
|
self.player.video_set_deinterlace('auto')
|
||||||
self.player.video_set_mouse_input(False)
|
self.player.video_set_mouse_input(False)
|
||||||
self.player.video_set_key_input(False)
|
self.player.video_set_key_input(False)
|
||||||
|
|
Loading…
Reference in a new issue