ocarina/trunk/playlist.py

114 lines
2.7 KiB
Python

import Queue
import random
import pygtk
pygtk.require('2.0')
import gtk
class Playlist:
#def __init__(self,prnt):
def __init__(self):
#self.prnt = prnt
self.list = []
self.queue = Queue.Queue()
self.curSong = 0
self.random = True
self.translate = None
self.opsNext = None
#self.makeWindow()
# Enqueue a song
# Takes songid
def queueSong(self,song):
self.queue.put(song)
# Insert the list of songs
def insert(self,list):
self.list = list
# Return the next song
def next(self):
if self.queue.empty() == False:
self.curSong = self.queue.get()
return self.curSong
if len(self.list) == 0:
return -2
if self.random==True:
self.curSong = random.randint(0,len(self.list)-1)
else:
self.curSong += 1
if self.curSong > len(self.list):
self.curSong = 0
song = self.list[self.curSong]
return song
# Play the selected song
def selectSong(self,module,iter,path,data,list):
self.queueSong(list[iter][0])
self.opsNext(None,None)
#self.hideWindow(None,None)
# Make the playlist window
#def makeWindow(self):
# self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
# self.window.connect("delete_event",self.hideWindow)
# self.window.set_size_request(200,300)
# self.scroll = gtk.ScrolledWindow()
# self.scroll.set_border_width(0)
# self.scroll.set_policy(gtk.POLICY_AUTOMATIC,gtk.POLICY_AUTOMATIC)
# self.window.add(self.scroll)
# self.populateList()
# Fill in rows in the playlist
#def populateList(self):
# liststore = gtk.ListStore(int,str,str,str,int)
#liststore = gtk.ListStore(str,str)
# for num in self.list:
# liststore.append(self.translate(num))
# treeview = gtk.TreeView(liststore)
# cell = gtk.CellRendererText()
# cols = ["Id","Title","Artist","Album","Count"]
# for i in range(len(cols)):
# col = gtk.TreeViewColumn(cols[i],cell)
# col.add_attribute(cell,'text',i)
# col.set_resizable(True)
# col.set_sort_column_id(i)
# treeview.append_column(col)
# treeview.set_search_column(1)
# treeview.connect("row-activated",self.selectSong,"clicked",liststore)
# treeview.show()
# treeview.columns_autosize()
# self.scroll.add(treeview)
# self.scroll.show()
# Go to current song, enable grid lines
# selrowthe golden sun rises = self.curSong-10
# if selrow < 0:
# selrow = 0
# treeview.scroll_to_cell(selrow,None,False,0,0)
# treeview.set_grid_lines(True)
# treesel = treeview.get_selection()
# treesel.select_path(self.curSong)
# Hide the playlist
#def hideWindow(self,widget,data):
#self.scroll.hide()
# self.window.hide()
# self.window = None
# Show the playlist
#def showWindow(self,widget,data):
#self.populateList()
# self.makeWindow()
# self.window.show()
# self.window.maximize()