/// <summary></summary> /// <param name="spotifyProcessManager"></param> /// <param name="songClassificationInfo"></param> /// <param name="refreshInterval"></param> /// <param name="logger"></param> /// <param name="maxSongs"> /// Note: -1 == infinite, and numbers between 0 and 10 inclusive are not allowed /// (in order to guarantee current and future internal functionality) /// </param> public SongTracker(SpotifyProcessManager spotifyProcessManager, SongClassificationInfo songClassificationInfo, int refreshInterval, Logger logger, int maxSongs = -1) { if (maxSongs >= 0 && maxSongs <= 10) { throw new ArgumentOutOfRangeException( nameof(maxSongs), maxSongs, "To guarantee correctness of current and any future internal functionality, " + nameof(maxSongs) + " cannot be between 0 and 10 inclusive" ); } this.MaxSongs = maxSongs; this._songs = new List <SongInfo>(); this.Songs = _songs.AsReadOnly(); this.SpotifyProcessManager = spotifyProcessManager; this.SongClassificationInfo = songClassificationInfo; this.RefreshInterval = refreshInterval; this._logger = logger; this.State = TrackState.Unused; }
public MainController(IEnumerable <LogHandler> logHandlers) { foreach (var handler in logHandlers) { handler.Provider = this; } this.Logger = (mesage, messageType) => LogMessageReceived?.Invoke(mesage, messageType); this.SettingsFolder = Application.StartupPath; //StartupPath is just the folder, not the actual exe file path this.SettingsHost = new SettingsHost( SettingsLoader.Load( settingsFolder: this.SettingsFolder, logger: Logger ) ); this.SettingsSaver = new SettingsSaver( settingsHost: this.SettingsHost, settingsFolder: this.SettingsFolder, saveDelay: 60000, logger: Logger ); this.SettingsHost.AnySettingChanged += delegate { this.SettingsSaver.SaveAfterWaiting(); }; this._spotifyProcessManager = new SpotifyProcessManager(Logger); this.RecordingTabController = new RecordingTabController(this.SettingsHost, this._spotifyProcessManager, this.Logger); this.PlayerTabController = new PlayerTabController(this.SettingsHost, this._spotifyProcessManager, this.Logger); }
public SpotifyController(SpotifyProcessManager spotifyProcessManager) { this.SpotifyProcessManager = SpotifyProcessManager; }