114 lines
2.7 KiB
Python
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()
|