Beispiel #1
0
    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
Beispiel #2
0
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)
Beispiel #3
0
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)