diff --git a/libsaria/path/files.py b/libsaria/path/files.py index 41edbff1..b4cdc827 100644 --- a/libsaria/path/files.py +++ b/libsaria/path/files.py @@ -34,7 +34,7 @@ def universal_open(file): file = file.replace("%20", " ") file = file.replace("%22", "\"") if path.is_dir(file): - libsaria.sources.new_source(file) + libsaria.sources.make_library(file) return base, ext = path.splitext(file) func = mapping.get(ext, open_music) diff --git a/libsaria/sources/__init__.py b/libsaria/sources/__init__.py index 3d9987a3..41d83db0 100644 --- a/libsaria/sources/__init__.py +++ b/libsaria/sources/__init__.py @@ -4,6 +4,7 @@ import libsaria exists = libsaria.path.exists expand = libsaria.path.expand +import library import oldlibrary import playlist import queue @@ -52,6 +53,13 @@ def new_source(path, bg=True): oldlibrary.scan(path) libsaria.callbacks.new_source() +def make_library(path): + path = expand(path) + if not exists(path): + return + library.add_path(path) + library.update() + def play_id(id): global cur_id cur_id = id diff --git a/libsaria/sources/library/__init__.py b/libsaria/sources/library/__init__.py index 2f39f4e4..8857be5b 100644 --- a/libsaria/sources/library/__init__.py +++ b/libsaria/sources/library/__init__.py @@ -1,2 +1,8 @@ # Bryan Schumaker (5 / 20 / 2011) +import library +import update + +# Function pointers for conveniance +add_path = library.add_path +update = update.update diff --git a/libsaria/sources/library/library.py b/libsaria/sources/library/library.py index a74f2617..337fde35 100644 --- a/libsaria/sources/library/library.py +++ b/libsaria/sources/library/library.py @@ -6,5 +6,11 @@ library_lock = threading.Lock() lock_library = library_lock.acquire unlock_library = library_lock.release -# Map fileid(directory) -> dict() +# Map directory -> dict() lib_dict = dict() + + +def add_path(path): + lock_library() + lib_dict.setdefault(path, dict()) + unlock_library() diff --git a/libsaria/sources/library/update.py b/libsaria/sources/library/update.py new file mode 100644 index 00000000..220ce1f4 --- /dev/null +++ b/libsaria/sources/library/update.py @@ -0,0 +1,7 @@ +# Bryan Schumaker (5 / 21 / 2011) + +import library + +def update(): + for path in library.lib_dict.keys(): + print path