diff --git a/libsaria/sources/__init__.py b/libsaria/sources/__init__.py index 03a63cd3..67e0fe8c 100644 --- a/libsaria/sources/__init__.py +++ b/libsaria/sources/__init__.py @@ -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) diff --git a/libsaria/sources/queue/__init__.py b/libsaria/sources/queue/__init__.py index 0ef360cf..85ce0ca4 100644 --- a/libsaria/sources/queue/__init__.py +++ b/libsaria/sources/queue/__init__.py @@ -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: