Example #1
0
        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);
        }
Example #2
0
        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);
        }
Example #3
0
        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;
            }
        }