Files
@ 6f49dc917aa3
Branch filter:
Location: light9/bin/musictime - annotation
6f49dc917aa3
2.0 KiB
text/plain
start vidref web version. v4l camera frames to web page is working
Ignore-this: 34bcc3b6149a1a3bed31aa5f32a4ddc6
Ignore-this: 34bcc3b6149a1a3bed31aa5f32a4ddc6
58bbf9f42457 3c523c71da29 58bbf9f42457 58bbf9f42457 f066d6e874db 8d6f6d8a4719 8d6f6d8a4719 58bbf9f42457 7772cc48e016 58bbf9f42457 7772cc48e016 58bbf9f42457 8d6f6d8a4719 7772cc48e016 58bbf9f42457 58bbf9f42457 58bbf9f42457 58bbf9f42457 3322285457ac 8d6f6d8a4719 f066d6e874db f066d6e874db 58bbf9f42457 58bbf9f42457 58bbf9f42457 7772cc48e016 58bbf9f42457 7772cc48e016 58bbf9f42457 58bbf9f42457 58bbf9f42457 58bbf9f42457 7772cc48e016 7772cc48e016 7772cc48e016 7772cc48e016 7772cc48e016 7772cc48e016 7772cc48e016 7772cc48e016 58bbf9f42457 7772cc48e016 58bbf9f42457 4072d93f02c5 f066d6e874db 7772cc48e016 58bbf9f42457 58bbf9f42457 58bbf9f42457 58bbf9f42457 7772cc48e016 58bbf9f42457 58bbf9f42457 58bbf9f42457 58bbf9f42457 7772cc48e016 58bbf9f42457 58bbf9f42457 58bbf9f42457 46d319974176 58bbf9f42457 7772cc48e016 58bbf9f42457 58bbf9f42457 58bbf9f42457 58bbf9f42457 58bbf9f42457 58bbf9f42457 58bbf9f42457 | #!/usr/bin/env python
import run_local # noqa
import light9.networking
import tkinter as tk
import time
import restkit, jsonlib
class MusicTime:
def __init__(self, url):
self.player = restkit.Resource(url)
def get_music_time(self):
playtime = None
while not playtime:
try:
playtime = jsonlib.read(self.player.get("time").body_string(),
use_float=True)['t']
except restkit.RequestError as e:
print("Server error %s, waiting" % e)
time.sleep(2)
return playtime
class MusicTimeTk(tk.Frame, MusicTime):
def __init__(self, master, url):
tk.Frame.__init__(self)
MusicTime.__init__(self, url)
self.timevar = tk.DoubleVar()
self.timelabel = tk.Label(self,
textvariable=self.timevar,
bd=2,
relief='raised',
width=10,
padx=2,
pady=2,
anchor='w')
self.timelabel.pack(expand=1, fill='both')
def print_time(evt, *args):
self.timevar.set(self.get_music_time())
print(self.timevar.get(), evt.keysym)
self.timelabel.bind('<KeyPress>', print_time)
self.timelabel.bind('<1>', print_time)
self.timelabel.focus()
self.update_time()
def update_time(self):
self.timevar.set(self.get_music_time())
self.after(100, self.update_time)
if __name__ == "__main__":
from optparse import OptionParser
parser = OptionParser()
parser.add_option("-u", "--url", default=light9.networking.musicPlayer.url)
options, args = parser.parse_args()
root = tk.Tk()
root.title("Time")
MusicTimeTk(root, options.url).pack(expand=1, fill='both')
try:
tk.mainloop()
except KeyboardInterrupt:
root.destroy()
|