annotate bin/inputdemo @ 1062:0f51a1a5785e

gtk slider for sending sample input to curvecalc Ignore-this: e2e7cd3689912119a0bc8861717ea25
author Drew Perttula <drewp@bigasterisk.com>
date Mon, 02 Jun 2014 00:44:47 +0000
parents
children c33158b367a5
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1062
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
1 #!bin/python
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
2 import sys
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
3 sys.path.append('/usr/lib/python2.7/dist-packages') # For gtk
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
4 from twisted.internet import gtk3reactor
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
5 gtk3reactor.install()
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
6 from twisted.internet import reactor
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
7 from rdflib import URIRef
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
8 import optparse, logging, urllib
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
9 from gi.repository import Gtk
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
10 from run_local import log
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
11 from light9 import showconfig, networking
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
12 from light9.rdfdb import clientsession
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
13 from light9.rdfdb.syncedgraph import SyncedGraph
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
14 import cyclone.httpclient
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
15
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
16 class App(object):
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
17 def __init__(self):
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
18 parser = optparse.OptionParser()
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
19 parser.set_usage("%prog [opts]")
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
20 parser.add_option("--debug", action="store_true",
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
21 help="log at DEBUG")
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
22 clientsession.add_option(parser)
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
23 opts, args = parser.parse_args()
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
24
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
25 log.setLevel(logging.DEBUG if opts.debug else logging.INFO)
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
26
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
27 self.session = clientsession.getUri('inputdemo', opts)
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
28 self.graph = SyncedGraph("inputdemo")
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
29
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
30 self.graph.initiallySynced.addCallback(lambda _: self.launch())
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
31
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
32 self.curve = URIRef('http://light9.bigasterisk.com/show/dance2014/song1/curve/c-1401259747.675542')
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
33 print "sending points on curve %s" % self.curve
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
34
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
35 reactor.run()
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
36
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
37 def launch(self):
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
38 win = Gtk.Window()
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
39
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
40 slider = Gtk.Scale.new_with_range(orientation=Gtk.Orientation.VERTICAL,
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
41 min=0, max=1, step=.001)
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
42 slider.props.inverted = True
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
43 slider.connect('value-changed', self.onChanged)
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
44
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
45 win.add(slider)
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
46 win.parse_geometry('50x250')
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
47 win.connect("delete-event", lambda *a: reactor.crash())
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
48 win.connect("destroy", lambda *a: reactor.crash())
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
49 win.show_all()
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
50
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
51 def onChanged(self, scale):
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
52 f = cyclone.httpclient.fetch(
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
53 networking.curveCalc.path('liveInputPoint'),
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
54 method='POST', timeout=1,
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
55 postdata=urllib.urlencode({'curve': self.curve,
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
56 'value': str(scale.get_value())}))
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
57 @f.addCallback
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
58 def cb(result):
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
59 if result.code // 100 != 2:
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
60 log.error("curveCalc said %s: %s", result.code, result.body)
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
61 @f.addErrback
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
62 def eb(err):
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
63 print "err", err
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
64
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
65 App()