def handleEvents(self): if self.cleanConfig: logging.info('Change of configuration, flush data and restart') # We need to expunge any pending image now # so we get fresh data to show the user if self.doMemoryForget: self.services.memoryForget(forgetHistory=True) self.doMemoryForget = False if self.doClearCache: CacheManager.empty(self.settings.CACHEFOLDER) self.doClearCache = False if self.imageCurrent: self.imageCurrent = None self.skipPreloadedImage = True self.imageOnScreen = False self.display.clear() self.cleanConfig = False if self.doControl == "nextImage": #just skip delay and show the next (preloaded) image pass elif self.doControl == "prevImage": self.skipPreloadedImage = True self.ignoreRandomize = True if self.services.prevImage(): self.delayer.set() elif self.doControl == "nextAlbum": self.skipPreloadedImage = True self.services.nextAlbum() self.delayer.set() elif self.doControl == "prevAlbum": self.skipPreloadedImage = True self.services.prevAlbum() self.delayer.set() self.doControl = None
def cfg_rotation(orient): if orient is None: return jsonify({'rotation': sysconfig.getDisplayOrientation()}) else: if orient >= 0 and orient < 360: sysconfig.setDisplayOrientation(orient) CacheManager.empty(settings.CACHEFOLDER) return jsonify({'rotation': sysconfig.getDisplayOrientation()}) abort(500)
def cfg_keyvalue(key, value): global powermanagement # Depending on PUT/GET we will either change or read # values. If key is unknown, then this call fails with 404 if key is not None: if settings.getUser(key) is None: abort(404) return if request.method == 'PUT': status = True if key == "keywords": # Keywords has its own API abort(404) return settings.setUser(key, value) if key in ['display-driver']: drv = settings.getUser('display-driver') if drv == 'none': drv = None special = drivers.activate(drv) if special is None: settings.setUser('display-driver', 'none') settings.setUser('display-special', None) status = False else: settings.setUser('display-special', special) if key in ['timezone']: # Make sure we convert + to / settings.setUser('timezone', value.replace('+', '/')) helper.timezoneSet(settings.getUser('timezone')) if key in ['resolution', 'tvservice']: width, height, tvservice = display.setConfiguration( value, settings.getUser('display-special')) settings.setUser('tvservice', tvservice) settings.setUser('width', width) settings.setUser('height', height) display.enable(True, True) CacheManager.empty(settings.CACHEFOLDER) if key in ['display-on', 'display-off']: timekeeper.setConfiguration(settings.getUser('display-on'), settings.getUser('display-off')) if key in ['autooff-lux', 'autooff-time']: timekeeper.setAmbientSensitivity(settings.getUser('autooff-lux'), settings.getUser('autooff-time')) if key in ['powersave']: timekeeper.setPowermode(settings.getUser('powersave')) if key in ['shutdown-pin']: powermanagement.stopmonitor() powermanagement = shutdown(settings.getUser('shutdown-pin')) if key in ['imagesizing', 'randomize_images']: slideshow.createEvent("settingsChange") settings.save() return jsonify({'status': status}) elif request.method == 'GET': if key is None: return jsonify(settings.getUser()) else: return jsonify({key: settings.getUser(key)}) abort(404)