libsaria: list_source() takes a function pointer

I was taking a flag that I used to determine which list func to call.  I
think it is simpler to take a function pointer passed from either
list_playlist() or list_queue()
This commit is contained in:
Bryan Schumaker 2011-05-15 11:20:05 -04:00
parent 76975ecead
commit 93a785dafa

View File

@ -13,8 +13,6 @@ controls = libsaria.controls
cur_source = None cur_source = None
cur_id = None cur_id = None
LIBRARY, PLAYLIST, QUEUE = range(3)
class Source: class Source:
def __init__(self): def __init__(self):
self.get_attrs = None self.get_attrs = None
@ -70,22 +68,16 @@ def next():
cur_id = id cur_id = id
return library.get_attrs(cur_id, "filepath") return library.get_attrs(cur_id, "filepath")
def list_source(source, *attrs): def list_source(list_func, *attrs):
ret = [] ret = []
list_func = None
get_attrs = library.get_attrs get_attrs = library.get_attrs
append = ret.append append = ret.append
if source == PLAYLIST: for id in list_func():
list_func = playlist.list_ids append(get_attrs(id, *attrs))
elif source == QUEUE:
list_func = queue.list_ids
if list_func != None:
for id in list_func():
append(get_attrs(id, *attrs))
return ret return ret
def list_queue(*attrs):
return list_source(QUEUE, *attrs)
def list_playlist(*attrs): def list_playlist(*attrs):
return list_source(PLAYLIST, *attrs) return list_source(playlist.list_ids, *attrs)
def list_queue(*attrs):
return list_source(queue.list_ids, *attrs)