Mercurial > code > home > repos > light9
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 |
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() |