X-Git-Url: https://git.r.bdr.sh/rbdr/lyricli/blobdiff_plain/1263f62c5c6379f11e19eb184ffedf5889390b70..1b1c5f498f00459163cbb1de97229d92ab450d9e:/Sources/source_manager.swift diff --git a/Sources/source_manager.swift b/Sources/source_manager.swift index e55cc8b..e6c42da 100644 --- a/Sources/source_manager.swift +++ b/Sources/source_manager.swift @@ -1,10 +1,14 @@ -/// Manages the different sources. Keeps track of them, lists and toggles +// Collect and manage the available and enabled source class SourceManager { + // List of sources enabled for the crurent platform private var availableSources: [String: Source] = [ - "arguments": ArgumentsSource() + "arguments": ArgumentsSource(), + "itunes": ItunesSource(), + "spotify": SpotifySource() ] + // Iterate over the sources until we find a track or run out of sources var currentTrack: Track? { for source in enabledSources { if let currentTrack = source.currentTrack { @@ -15,6 +19,7 @@ class SourceManager { return nil } + // Return the list of enabled sources based on the configuration var enabledSources: [Source] { // Checks the config and returns an array of sources based on the @@ -22,7 +27,7 @@ class SourceManager { var sources = [Source]() - if let sourceNames = Configuration.sharedInstance["enabled_sources"] as? [String] { + if let sourceNames = Configuration.shared["enabled_sources"] as? [String] { for sourceName in sourceNames { if let source = availableSources[sourceName] { sources.append(source) @@ -33,15 +38,15 @@ class SourceManager { return sources } + // Given a source name, it will enable it and add it to the enabled sources config func enable(sourceName: String) { } + // Given a source name, it will remove it from the enabled sources config func disable(sourceName: String) { } + // Given a source name, it removes any stored configuration and disables it func reset(sourceName: String) { } - - func getSources(sourceName: String) { - } }