def runService(): log(LOG_INFO, "started") ad = atmodriver.AtmoDriver() cd = CaptureThread(ad) runOk = False if dfAtmoInstDir: ad.driver_path = xbmc.translatePath(os.path.join(dfAtmoInstDir, 'drivers')) if cd.setConfig(xbmcaddon.Addon()): if cd.configure(): cd.getConfig(xbmcaddon.Addon(), True) cd.run() cd.close() cd = None ad = None atmodriver.setLogLevel(LOG_NONE, None)
def runService(): log(LOG_INFO, "started") ad = atmodriver.AtmoDriver() cd = CaptureThread(ad) runOk = False if dfAtmoInstDir: ad.driver_path = xbmc.translatePath( os.path.join(dfAtmoInstDir, 'drivers')) if cd.setConfig(xbmcaddon.Addon()): if cd.configure(): cd.getConfig(xbmcaddon.Addon(), True) cd.run() cd.close() cd = None ad = None atmodriver.setLogLevel(LOG_NONE, None)
def setConfig(self, config, diff=False): global logLevel if not os.path.isfile(addonConfigFile): self.configFileTime = 0 displayNotificationAndLog(LOG_ERROR, "Addon not configured!") return False self.configFileTime = os.path.getmtime(addonConfigFile) for p in dfatmoParmList: type, name = p v = config.getSetting(name) if type == 'b': if v == 'true': v = 1 else: v = 0 elif type == 'i': if v == 'true': v = 1 elif v == 'false': v = 0 else: v = int(v) else: v = v.strip() ov = None doSetParm = True if name == 'log_level': ov = logLevel logLevel = v atmodriver.setLogLevel(logLevel, log) doSetParm = False elif name == 'driver': if self.useCustomDriver: ov = 'custom' if v == 'custom': self.useCustomDriver = True v = 'null' else: self.useCustomDriver = False elif name == 'custom_driver': ov = self.customDriver self.customDriver = v doSetParm = False if ov == None: ov = self.atmoDriver.getParm(name) if doSetParm: try: self.atmoDriver.setParm(name, v) except atmodriver.error as err: displayNotification(LOG_ERROR, err) return False if name == 'driver' and self.useCustomDriver: v = 'custom' if diff: if v != ov: log(LOG_INFO, "parameter '{0}': '{1}' -> '{2}'".format(name, ov, v)) else: log(LOG_INFO, "parameter '{0}': '{1}'".format(name, v)) return True
class CustomDriverCallbacks: def __init__(self, atmoDriver): self.atmoDriver = atmoDriver def getParm(self, name): return self.atmoDriver.getParm(name) def setParm(self, name, value): self.atmoDriver.setParm(name, value) def driverError(self, msg): return atmodriver.error(str(msg)) atmodriver.setLogLevel(logLevel) ad = atmodriver.AtmoDriver() customDriver = None # Uncomment the output driver you want to use # Script custom drivers should be set with customDriver # Native output drivers should be set with ad.driver customDriver = "mydriver" #ad.driver = "file" ad.driver_param = "/tmp/atmo.out" ad.driver_path = "." ad.left = 1 ad.right = 1 ad.top = 1 ad.bottom = 1
log(level, msg) class CustomDriverCallbacks: def __init__(self, atmoDriver): self.atmoDriver = atmoDriver def getParm(self, name): return self.atmoDriver.getParm(name) def setParm(self, name, value): self.atmoDriver.setParm(name, value) def driverError(self, msg): return atmodriver.error(str(msg)) atmodriver.setLogLevel(logLevel) ad = atmodriver.AtmoDriver() customDriver = "jsondriver" ad.driver_param = "/dev/stdout" ad.driver_path = "." ad.left = 1 ad.right = 1 ad.top = 1 ad.bottom = 1 ad.filter = atmodriver.FILTER_NONE od = ad customDriverModule = __import__(customDriver) od = customDriverModule.newOutputDriver(CustomDriverCallbacks(ad), Logger()) log(atmodriver.LOG_INFO, "Custom driver interface version is %d" % od.getInterfaceVersion())
def setConfig(self, config, diff=False): global logLevel if not os.path.isfile(addonConfigFile): self.configFileTime = 0 displayNotificationAndLog(LOG_ERROR, "Addon not configured!") return False self.configFileTime = os.path.getmtime(addonConfigFile) for p in dfatmoParmList: type, name = p v = config.getSetting(name) if type == 'b': if v == 'true': v = 1 else: v = 0 elif type == 'i': v = int(v) else: v = v.strip() ov = None doSetParm = True if name == 'log_level': ov = logLevel logLevel = v atmodriver.setLogLevel(logLevel, log) doSetParm = False elif name == 'driver': if self.useCustomDriver: ov = 'custom' if v == 'custom': self.useCustomDriver = True v = 'null' else: self.useCustomDriver = False elif name == 'custom_driver': ov = self.customDriver self.customDriver = v doSetParm = False if ov == None: ov = self.atmoDriver.getParm(name) if doSetParm: try: self.atmoDriver.setParm(name, v) except atmodriver.error as err: displayNotification(LOG_ERROR, err) return False if name == 'driver' and self.useCustomDriver: v = 'custom' if diff: if v != ov: log(LOG_INFO, "parameter '{0}': '{1}' -> '{2}'".format(name, ov, v)) else: log(LOG_INFO, "parameter '{0}': '{1}'".format(name, v)) return True