libsaria: Generic list_source() function

This function will loop over the entire source and collect attributes
for each id.  The resulting list will be returned to the caller.  I also
added a list_queue() function so the user doesn't need to pass the QUEUE
flag.
This commit is contained in:
Bryan Schumaker 2011-05-08 09:56:11 -04:00
parent 5c056191f2
commit d30eaeea50
2 changed files with 21 additions and 0 deletions

View File

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

View File

@ -18,6 +18,10 @@ def walk_queue(*attrs):
res.append(library.get_attrs(id, *attrs))
return res
def list():
for id in queue.queue_list:
yield id
def filter(text):
global visible, filtered
if len(text) > 0: