Browse Source

Update mod-ui code, now working again

tags/1.9.7
falkTX 9 years ago
parent
commit
30ba292f7b
1 changed files with 50 additions and 28 deletions
  1. +50
    -28
      source/carla_modgui.py

+ 50
- 28
source/carla_modgui.py View File

@@ -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]


Loading…
Cancel
Save