2020-10-04 12:58:15 -04:00
|
|
|
# Copyright 2020 (c) Anna Schumaker.
|
2020-10-10 20:07:53 -04:00
|
|
|
from lib import publisher
|
2020-10-04 15:28:30 -04:00
|
|
|
from . import library
|
|
|
|
import pathlib
|
2020-10-04 12:58:15 -04:00
|
|
|
|
|
|
|
library_paths = [ ]
|
2020-10-10 20:07:53 -04:00
|
|
|
LibraryAdded = publisher.Publisher()
|
|
|
|
LibraryRemoved = publisher.Publisher()
|
2020-10-04 12:58:15 -04:00
|
|
|
|
|
|
|
def add_path(path):
|
2020-10-04 15:28:30 -04:00
|
|
|
if get_library(path) == None:
|
|
|
|
lib = library.LibraryPath(path)
|
|
|
|
library_paths.append(lib)
|
2020-10-10 20:07:53 -04:00
|
|
|
LibraryAdded.publish(lib)
|
2020-10-04 15:28:30 -04:00
|
|
|
return lib
|
|
|
|
|
|
|
|
def get_library(path):
|
|
|
|
for lib in library_paths:
|
|
|
|
if lib.path == pathlib.Path(path):
|
|
|
|
return lib
|
|
|
|
return None
|
2020-10-04 12:58:15 -04:00
|
|
|
|
2020-10-11 10:03:16 -04:00
|
|
|
def get_track(trackid):
|
|
|
|
for lib in library_paths:
|
|
|
|
if (track := lib[trackid]) != None:
|
|
|
|
return track
|
|
|
|
return None
|
|
|
|
|
2020-10-04 12:58:15 -04:00
|
|
|
def remove_path(path):
|
2020-10-04 15:28:30 -04:00
|
|
|
lib = get_library(path)
|
|
|
|
library_paths.remove(lib)
|
2020-10-10 20:07:53 -04:00
|
|
|
LibraryRemoved.publish(lib)
|
2020-10-04 12:58:15 -04:00
|
|
|
|
|
|
|
def reset():
|
|
|
|
library_paths.clear()
|
2020-10-10 20:07:53 -04:00
|
|
|
LibraryAdded.reset()
|
|
|
|
LibraryRemoved.reset()
|
2020-10-10 20:23:28 -04:00
|
|
|
library.reset()
|
2020-10-20 11:10:04 -04:00
|
|
|
track.reset()
|