def paintEvent(self, qe): if not self.isVisible() or not xmms.is_running(): return self.time = QTime.currentTime() pts = QPointArray() paint = QPainter(self) xmms_pos = (1.0 * xmms.get_output_time() / xmms.get_playlist_time(xmms.get_playlist_pos())) # paint.setBrush(QColor(255, 255 * xmms_pos, 255 * xmms_pos)) paint.setPen(QColor(255, 255, 255)) h = self.height() / 3 if hasattr(self, "soundinfocache"): self.soundinfocache.repaint(paint, h, self.width()) paint.drawText(0, 500, self.soundinfocache.title) s = xmms_pos * self.width() paint.drawRect(max(0, s), 0, 1, self.height()) paint.drawRect(0, h * (2 - xmms_pos), self.width(), 1)
def update(self): '''This Refreshes the Screen... It calculates times and such, and then draws''' time = xmms.get_output_time()/1000 num = xmms.get_playlist_pos() title = xmms.get_playlist_title(num) shuffle = xmms.is_shuffle() length = xmms.get_playlist_time(num) / 1000 self.win.border() self.shuffle.clear() if shuffle: self.shuffle.insstr(0,0,"S") t = format_time(time) self.timers.clear() self.timers.addstr(t) self.title.clear() self.title.addstr("%d. %s (%s)" % (num,title,format_time(length))) t = (time * 40) / length self.playtime.clear() self.playtime.insstr(0,0,'.' * t) self.playtime.insstr(0, min(t,39), '%',curses.A_BOLD) if t < 39: self.playtime.insstr(0,t+1,'.' * (39 -t)) self.volume.clear() v = xmms.get_main_volume() self.volume.insstr(0,0, 'Vol: %2d' % (v)) v = int(round(v / 10)) for i in range(0, 5): if (i * 2 < v): self.volume.hline(6-i, 0, '#', 2*i-1, curses.A_BOLD) else: self.volume.hline(6-i, 0, '_', 2*i-1) # # gratuitous use of lambda map(lambda a: a.refresh(), self.windows)
def update(self): '''Updates all windows''' # This block gets variables, like time, number, title. etc... time = xmms.get_output_time()/1000 num = xmms.get_playlist_pos() title = xmms.get_playlist_title(num) shuffle = xmms.is_shuffle() length = xmms.get_playlist_time(num) / 1000 t = format_time(time) self.timers.clear() self.timers.addstr(t) self.title.clear() self.title.addstr("%d. %s (%s)" % (num,title,format_time(length))) t = (time * 40) / length self.playtime.clear() self.playtime.insstr(0,0,'.' * t) self.playtime.insstr(0, min(t,39), '%',curses.A_BOLD) if t < 39: self.playtime.insstr(0,t+1,'.' * (39 -t)) self.volume.clear() v = xmms.get_main_volume() self.volume.insstr(0,0, 'Vol: %2d' % (v)) # draws the volume bar v = int(round(v / 10)) for i in range(0, 5): if (i * 2 < v): self.volume.hline(6-i, 0, '#', 2*i-1, curses.A_BOLD) else: self.volume.hline(6-i, 0, '_', 2*i-1) # # gratuitous use of lambda map(lambda a: a.refresh(), self.windows)
def getxmmsinfo(self): while self.listView.lastItem(): self.listView.takeItem(self.listView.lastItem()) self.xmms_playlist = [] cur_pos = xmms.get_playlist_pos() for i in range(xmms.get_playlist_length()): item = QListViewItem(self.listView) item.playlist_pos = i item.title = xmms.get_playlist_title(i) item.dur = int(xmms.get_playlist_time(i)) item.file = xmms.get_playlist_file(i) self.xmms_playlist.append(item) dur_s = str(item.dur / 60000) + ":" + ("0" + str( (item.dur / 1000) % 60))[-2:] pp = str(i + 1) item.setText(0, " " * (5 - len(pp)) + pp) item.setText(1, item.title) item.setText(2, dur_s) if cur_pos == i: self.listView.setSelected(item, True)
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)