Files
@ c756638275d6
Branch filter:
Location: light9/bin/vidref - annotation
c756638275d6
1.9 KiB
text/plain
quneo input demo. optimize curve display a little.
Ignore-this: 4cf5b4b5853a94842c9fa8e2916bc6f4
Ignore-this: 4cf5b4b5853a94842c9fa8e2916bc6f4
b5efddd80dad d96c09669b40 89adbbb06bcd 89adbbb06bcd 1d9547f90737 d3f8333bc142 d3f8333bc142 e20419d637d5 1d9547f90737 9f36a105adb3 1d9547f90737 b0337e6f68f1 1d9547f90737 1d9547f90737 e20419d637d5 cfd5d5be1b50 cfd5d5be1b50 cfd5d5be1b50 cfd5d5be1b50 cfd5d5be1b50 cfd5d5be1b50 cfd5d5be1b50 cfd5d5be1b50 cfd5d5be1b50 e20419d637d5 a30550d5827f a30550d5827f a30550d5827f 6f1eb6437c96 6f1eb6437c96 6f1eb6437c96 1d9547f90737 1d9547f90737 1d9547f90737 1d9547f90737 1d9547f90737 1d9547f90737 1d9547f90737 1d9547f90737 1d9547f90737 1d9547f90737 1d9547f90737 1d9547f90737 1d9547f90737 1d9547f90737 1d9547f90737 1d9547f90737 1d9547f90737 1d9547f90737 1d9547f90737 1d9547f90737 1d9547f90737 1d9547f90737 1d9547f90737 b0337e6f68f1 1d9547f90737 1d9547f90737 1d9547f90737 1d9547f90737 1d9547f90737 1d9547f90737 1d9547f90737 1d9547f90737 b0337e6f68f1 89adbbb06bcd e20419d637d5 | #!bin/python
from run_local import log
from twisted.internet import gtk2reactor
gtk2reactor.install()
from twisted.internet import reactor, defer
import gobject
gobject.threads_init()
import gtk
import sys, logging, optparse, json
sys.path.append(".")
from light9 import networking
from light9.vidref.main import Gui
from light9.vidref.replay import snapshotDir
import cyclone.web, cyclone.httpclient, cyclone.websocket
# find replay dirs correctly. show multiple
# replays. trash. reorder/pin. dump takes that are too short; they're
# just from seeking
parser = optparse.OptionParser()
parser.add_option("-v", "--verbose", action="store_true",
help="logging.DEBUG")
(options, args) = parser.parse_args()
log.setLevel(logging.DEBUG)
# limit the stdout one, but leave debug messages for the gtk logger
log.handlers[0].setLevel(logging.DEBUG if options.verbose else logging.WARN)
logging.getLogger("restkit.client").setLevel(logging.WARN)
class Snapshot(cyclone.web.RequestHandler):
@defer.inlineCallbacks
def post(self):
# save next pic
# return /snapshot/path
try:
outputFilename = yield self.settings.gui.snapshot()
assert outputFilename.startswith(snapshotDir())
out = networking.vidref.path(
"snapshot/%s" % outputFilename[len(snapshotDir()):].lstrip('/'))
self.write(json.dumps({'snapshot': out}))
self.set_header("Location", out)
self.set_status(303)
except Exception as e:
import traceback
traceback.print_exc()
raise
class SnapshotPic(cyclone.web.StaticFileHandler):
pass
gui = Gui()
port = networking.vidref.port
reactor.listenTCP(port, cyclone.web.Application(handlers=[
(r'/snapshot', Snapshot),
(r'/snapshot/(.*)', SnapshotPic, {"path": snapshotDir()}),
], debug=True, gui=gui))
log.info("serving on %s" % port)
reactor.run()
|