private LocalWallpaper SetWallpaperAndGetOld(LocalWallpaper nextWallpaper) { if (_nextMonitor >= MonitorsManager.MonitorCount) { _nextMonitor = 0; } if (MonitorsManager.MonitorCount != _monitors.Count) { while (MonitorsManager.MonitorCount < _monitors.Count) { _monitors.RemoveAt(_monitors.Count - 1); } while (MonitorsManager.MonitorCount > _monitors.Count) { _monitors.Add(new MonitorWallpaperInformation()); } } var curMonitor = _nextMonitor++; MonitorsManager.SetImageToMonitor(nextWallpaper.Image, curMonitor); CountView(_monitors[curMonitor]); var oldWallpaper = _monitors[curMonitor].CurrentWallpaper; _monitors[curMonitor].CurrentWallpaper = nextWallpaper; _monitors[curMonitor].LastChanged = DateTime.Now; return(oldWallpaper); }
public WallpaperOrchestrator(IDependencyResolver dependencyResolver) { _refreshLock = new object(); _timer = new Timer(x => { _logger.Debug("Cyclic rotate timer executed"); RotatePictureForward(); }); _monitors = new List <MonitorWallpaperInformation>(); _nextMonitor = 0; _playlist = new List <LocalWallpaper>(); _playlistLast = new List <LocalWallpaper>(); var threadManager = dependencyResolver.GetInstance <IThreadManager>(); var logManager = dependencyResolver.GetInstance <ILogManager>(); var eventService = dependencyResolver.GetInstance <IEventService>(); _logger = logManager.GetLogger <WallpaperOrchestrator>(); AuthenticationManager = new AuthenticationManager(logManager); MonitorsManager = new MonitorsManager(logManager.GetLogger <MonitorsManager>(), logManager); ApiClient = new WallpaperApiClient(logManager.GetLogger <WallpaperApiClient>(), AuthenticationManager); WallpaperManager = new LocalWallpaperManager(logManager.GetLogger <LocalWallpaperManager>(), threadManager, eventService, ApiClient); PlaylistManager = new PlaylistManager(logManager.GetLogger <PlaylistManager>(), ApiClient); }
public void ResetMonitors() { MonitorsManager.ResetMonitorHandles(); var counter = 0; foreach (var monitor in _monitors) { if (counter < MonitorsManager.MonitorCount) { MonitorsManager.SetImageToMonitor(monitor.CurrentWallpaper.Image, counter); } counter += 1; } }