Add freewheel callback
[jack_freewheel_button.git] / jacktimectl
blob0421ffd53a25ff486240b8cfb448f758d4dc2de9
1 #!/usr/bin/python
3 import gtk
4 import jacklib
6 text_freewheel = "ON"
7 text_rtwheel = "OFF"
8 text_generic = "Free wheel: "
10 def on_button_toggled(button):
11 if button.get_active():
12 button.set_label(text_generic+text_freewheel)
13 jacklib.set_freewheel(client, 1)
14 else:
15 button.set_label(text_generic+text_rtwheel)
16 jacklib.set_freewheel(client, 0)
18 def freewheel_callback(client, onoff):
19 print "freewheel_callback() called"
20 if onoff > 0:
21 button.set_active(True)
22 else:
23 button.set_active(False)
25 # Create objects
26 window = gtk.Window()
27 window.set_title("JACK time wheel control")
28 window.set_resizable(False)
29 window.set_decorated(False)
31 button = gtk.ToggleButton()
32 button.set_active(False)
33 button.set_label(text_generic+text_rtwheel)
35 # Connections
36 window.connect("delete-event", gtk.main_quit);
37 button.connect("toggled", on_button_toggled);
38 window.add(button)
40 # JACK
41 client = jacklib.client_open("jack_freewheel_button", jacklib.NullOption, None)
42 jacklib.set_freewheel_callback(client, freewheel_callback)
44 window.show_all()
46 gtk.main()
48 jacklib.client_close(client)