def __init__(self, win, top = 6,left = 10): win.clear() self.win = win self.win.border() # This Sets the keys self.keys = key_strokes() self.timers = self.win.subwin(2, 10, top+1, left + 3) self.title = self.win.subwin(3, 40, top+1, left + 15) self.playtime = self.win.subwin(2, 40, top+4, left + 15) self.volume = self.win.subwin(7, 10, top+3, left + 2) self.shuffle = self.win.subwin(1,1,top+10, left + 5) self.windows = [self.timers, self.playtime, self.shuffle, self.volume, self.win, self.title] # This makes the set of which key is bound to which function key = self.keys self.keymaps = { key["x"] : xmms.play, key["c"] : xmms.pause, key["v"] : xmms.stop, key["z"] : xmms.playlist_prev, key["b"] : xmms.playlist_next, key["s"] : xmms.toggle_shuffle, key["up"] : lambda : xmms.set_main_volume(min(100, xmms.get_main_volume() + 10)), key["down"] : lambda : xmms.set_main_volume(max(0, xmms.get_main_volume() - 10)), key["right"] : lambda : xmms.jump_to_time(xmms.get_output_time()+5000), key["left"] : lambda : xmms.jump_to_time(max(0,xmms.get_output_time()-5000)) };
def mouseDoubleClickEvent(self, ev): if self.item: pos = self.item.dur * ev.pos().x() / self.width() print pos print self.item.file xmms.set_playlist_pos(self.item.playlist_pos) xmms.jump_to_time(pos) self.drawTime()
def __init__(self, stdscr, top = 6,left = 10): self.stdscr = stdscr self.win = curses.newwin(13, 60, top, left) self.win.border() # Gets a list of recognised key - strokes self.keys = key_strokes() # The next block represents the various widgets self.timers = self.win.subwin(2, 10, top+1, left + 3) self.title = self.win.subwin(3, 40, top+1, left + 15) self.playtime = self.win.subwin(2, 40, top+4, left + 15) self.volume = self.win.subwin(7, 10, top+3, left + 2) self.jump = self.win.subwin(6, 45, top+6, left + 12) self.shuffle = self.win.subwin(1,1,top+10, left + 5) if xmms.is_shuffle(): self.shuffle.insstr(0,0,"S") self.windows = [self.timers, self.playtime, self.shuffle, self.volume, self.win, self.jump, self.title] key = self.keys # maks the keys to their appropriate function self.keymaps = { key["x"] : xmms.play, key["c"] : xmms.pause, key["v"] : xmms.stop, key["z"] : xmms.playlist_prev, key["b"] : xmms.playlist_next, key["s"] : self.toggle_shuffle, key["j"] : self.search, key["q"] : sys.exit, key["esc"] : sys.exit, key["up"] : lambda : xmms.set_main_volume(min(100, xmms.get_main_volume() + 10)), key["down"] : lambda : xmms.set_main_volume(max(0, xmms.get_main_volume() - 10)), key["right"] : lambda : xmms.jump_to_time(xmms.get_output_time()+5000), key["left"] : lambda : xmms.jump_to_time(max(0,xmms.get_output_time()-5000)) };
def eventhandler(self, event, menuw=None): """ eventhandler for xmms. If an event is not bound in this function it will be passed over to the items eventhandler """ # save this event so update_thread doesn't get fooled self.last_event = event if event == PLAY_END and event.arg: self.stop() if self.playerGUI.try_next_player(): return True if event in ( STOP, PLAY_END, USER_END ): self.playerGUI.stop() return self.item.eventhandler(event) elif event == PAUSE or event == PLAY: xmms.pause() return True elif event == SEEK: curtime = xmms.get_output_time() nexttime = curtime + (event.arg * 1000) # trim down seek time if it past end of the song while nexttime > xmms.get_playlist_time(xmms.get_playlist_pos()): event.arg/=2 nexttime = curtime + (event.arg * 1000) xmms.jump_to_time(nexttime) return True else: # everything else: give event to the items eventhandler return self.item.eventhandler(event)
def eventhandler(self, event, menuw=None): """ eventhandler for xmms. If an event is not bound in this function it will be passed over to the items eventhandler """ # save this event so update_thread doesn't get fooled self.last_event = event if event == PLAY_END and event.arg: self.stop() if self.playerGUI.try_next_player(): return True if event in (STOP, PLAY_END, USER_END): self.playerGUI.stop() return self.item.eventhandler(event) elif event == PAUSE or event == PLAY: xmms.pause() return True elif event == SEEK: curtime = xmms.get_output_time() nexttime = curtime + (event.arg * 1000) # trim down seek time if it past end of the song while nexttime > xmms.get_playlist_time(xmms.get_playlist_pos()): event.arg /= 2 nexttime = curtime + (event.arg * 1000) xmms.jump_to_time(nexttime) return True else: # everything else: give event to the items eventhandler return self.item.eventhandler(event)