| @@ -40,11 +40,9 @@ else: | |||
| # ------------------------------------------------------------------------------------------------------------ | |||
| # Imports (tornado) | |||
| from pystache import render as pyrender | |||
| from tornado.gen import engine | |||
| from tornado.log import enable_pretty_logging | |||
| from tornado.ioloop import IOLoop | |||
| from tornado.web import asynchronous, HTTPError | |||
| from tornado.web import HTTPError | |||
| from tornado.web import Application, RequestHandler, StaticFileHandler | |||
| # ------------------------------------------------------------------------------------------------------------ | |||
| @@ -80,7 +78,6 @@ os.environ['MOD_KEY_PATH'] = os.path.join(DATA_DIR, "keys") | |||
| os.environ['MOD_CLOUD_PUB'] = os.path.join(ROOT, "keys", "cloud_key.pub") | |||
| os.environ['MOD_PLUGIN_LIBRARY_DIR'] = os.path.join(DATA_DIR, "lib") | |||
| os.environ['MOD_DEFAULT_JACK_BUFSIZE'] = "0" | |||
| os.environ['MOD_PHANTOM_BINARY'] = "/usr/bin/phantomjs" | |||
| os.environ['MOD_SCREENSHOT_JS'] = os.path.join(ROOT, "screenshot.js") | |||
| os.environ['MOD_DEVICE_WEBSERVER_PORT'] = PORT | |||
| @@ -88,7 +85,7 @@ os.environ['MOD_DEVICE_WEBSERVER_PORT'] = PORT | |||
| # ------------------------------------------------------------------------------------------------------------ | |||
| # Imports (MOD) | |||
| from mod.lv2 import get_plugin_info, init as lv2_init | |||
| from mod.utils import get_plugin_info, init as lv2_init | |||
| # ------------------------------------------------------------------------------------------------------------ | |||
| # MOD related classes | |||
| @@ -100,22 +97,16 @@ class EffectGet(RequestHandler): | |||
| try: | |||
| data = get_plugin_info(uri) | |||
| except: | |||
| print("ERROR: get_plugin_info for '%s' failed" % uri) | |||
| raise HTTPError(404) | |||
| self.set_header('Content-type', 'application/json') | |||
| self.write(json.dumps(data)) | |||
| self.finish() | |||
| class EffectResource(StaticFileHandler): | |||
| def initialize(self): | |||
| # Overrides StaticFileHandler initialize | |||
| pass | |||
| def get(self, path): | |||
| try: | |||
| uri = self.get_argument('uri') | |||
| except: | |||
| return self.shared_resource(path) | |||
| class EffectHTML(RequestHandler): | |||
| def get(self, html): | |||
| uri = self.get_argument('uri') | |||
| try: | |||
| data = get_plugin_info(uri) | |||
| @@ -123,23 +114,16 @@ class EffectResource(StaticFileHandler): | |||
| raise HTTPError(404) | |||
| try: | |||
| root = data['gui']['resourcesDirectory'] | |||
| path = data['gui']['%sTemplate' % html] | |||
| except: | |||
| raise HTTPError(404) | |||
| try: | |||
| super(EffectResource, self).initialize(root) | |||
| super(EffectResource, self).get(path) | |||
| except HTTPError as e: | |||
| if e.status_code != 404: | |||
| raise e | |||
| self.shared_resource(path) | |||
| except IOError: | |||
| if not os.path.exists(path): | |||
| raise HTTPError(404) | |||
| def shared_resource(self, path): | |||
| super(EffectResource, self).initialize(os.path.join(HTML_DIR, 'resources')) | |||
| super(EffectResource, self).get(path) | |||
| with open(path, 'rb') as fd: | |||
| self.set_header('Content-type', 'text/html') | |||
| self.write(fd.read()) | |||
| class EffectStylesheet(RequestHandler): | |||
| def get(self): | |||
| @@ -183,6 +167,41 @@ class EffectJavascript(RequestHandler): | |||
| self.set_header('Content-type', 'text/javascript') | |||
| self.write(fd.read()) | |||
| class EffectResource(StaticFileHandler): | |||
| def initialize(self): | |||
| # Overrides StaticFileHandler initialize | |||
| pass | |||
| def get(self, path): | |||
| try: | |||
| uri = self.get_argument('uri') | |||
| except: | |||
| return self.shared_resource(path) | |||
| try: | |||
| data = get_plugin_info(uri) | |||
| except: | |||
| raise HTTPError(404) | |||
| try: | |||
| root = data['gui']['resourcesDirectory'] | |||
| except: | |||
| raise HTTPError(404) | |||
| try: | |||
| super(EffectResource, self).initialize(root) | |||
| return super(EffectResource, self).get(path) | |||
| except HTTPError as e: | |||
| if e.status_code != 404: | |||
| raise e | |||
| return self.shared_resource(path) | |||
| except IOError: | |||
| raise HTTPError(404) | |||
| def shared_resource(self, path): | |||
| super(EffectResource, self).initialize(os.path.join(HTML_DIR, 'resources')) | |||
| return super(EffectResource, self).get(path) | |||
| # ------------------------------------------------------------------------------------------------------------ | |||
| # WebServer Thread | |||
| @@ -196,6 +215,7 @@ class WebServerThread(QThread): | |||
| self.fApplication = Application( | |||
| [ | |||
| (r"/effect/get/?", EffectGet), | |||
| (r"/effect/(icon|settings).html", EffectHTML), | |||
| (r"/effect/stylesheet.css", EffectStylesheet), | |||
| (r"/effect/gui.js", EffectJavascript), | |||
| (r"/resources/(.*)", EffectResource), | |||
| @@ -391,6 +411,8 @@ class HostWindow(QMainWindow): | |||
| self.setFixedSize(size) | |||
| # set initial values | |||
| self.fCurrentFrame.evaluateJavaScript("icongui.setPortValue(':bypass', 0, null)") | |||
| for index in self.fPortValues.keys(): | |||
| symbol = self.fPortSymbols[index] | |||
| value = self.fPortValues[index] | |||