prevent start-up of services if requirements are not fulfilled.
closes #4
This commit is contained in:
parent
ea67340cab
commit
eda556ef03
@ -8,6 +8,7 @@ from owrx.wsjt import WsjtParser
|
|||||||
from owrx.aprs import AprsParser
|
from owrx.aprs import AprsParser
|
||||||
from owrx.config import PropertyManager
|
from owrx.config import PropertyManager
|
||||||
from owrx.source import Resampler
|
from owrx.source import Resampler
|
||||||
|
from owrx.feature import FeatureDetector
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
@ -194,7 +195,24 @@ class ServiceHandler(object):
|
|||||||
self.stopServices()
|
self.stopServices()
|
||||||
|
|
||||||
def isSupported(self, mode):
|
def isSupported(self, mode):
|
||||||
return mode in PropertyManager.getSharedInstance()["services_decoders"]
|
# TODO this should be in a more central place (the frontend also needs this)
|
||||||
|
requirements = {
|
||||||
|
'ft8': 'wsjt-x',
|
||||||
|
'ft4': 'wsjt-x',
|
||||||
|
'jt65': 'wsjt-x',
|
||||||
|
'jt9': 'wsjt-x',
|
||||||
|
'wspr': 'wsjt-x',
|
||||||
|
'packet': 'packet',
|
||||||
|
}
|
||||||
|
fd = FeatureDetector()
|
||||||
|
|
||||||
|
# this looks overly complicated... but i'd like modes with no requirements to be always available without
|
||||||
|
# being listed in the hash above
|
||||||
|
unavailable = [mode for mode, req in requirements.items() if not fd.is_available(req)]
|
||||||
|
configured = PropertyManager.getSharedInstance()["services_decoders"]
|
||||||
|
available = [mode for mode in configured if mode not in unavailable]
|
||||||
|
|
||||||
|
return mode in available
|
||||||
|
|
||||||
def stopServices(self):
|
def stopServices(self):
|
||||||
with self.lock:
|
with self.lock:
|
||||||
|
Loading…
Reference in New Issue
Block a user