/// <summary>
        /// Creates a new PowerSchedulerFactory
        /// </summary>
        /// <param name="controller">Reference to tvservice's TVController</param>
        public PowerSchedulerFactory(IController controller)
        {
            Log.Info("PS: PowerSchedulerFactory");

            // Add handlers for preventing the system from entering standby
            IStandbyHandler standbyHandler;

            _standbyHandlers = new List <IStandbyHandler>();

            standbyHandler = new ActiveStreamsStandbyHandler(controller);
            _standbyHandlers.Add(standbyHandler);
            standbyHandler = new ControllerActiveStandbyHandler(controller);
            _standbyHandlers.Add(standbyHandler);
            standbyHandler = new ProcessActiveStandbyHandler();
            _standbyHandlers.Add(standbyHandler);
            standbyHandler = new ActiveNetworkStandbyHandler();
            _standbyHandlers.Add(standbyHandler);
            standbyHandler = new ActiveSharesStandbyHandler();
            _standbyHandlers.Add(standbyHandler);

            // Add handlers for resuming from standby
            IWakeupHandler wakeupHandler;

            _wakeupHandlers = new List <IWakeupHandler>();

            wakeupHandler = new ScheduledRecordingsWakeupHandler(controller);
            _wakeupHandlers.Add(wakeupHandler);
            wakeupHandler = new XmlTvImportWakeupHandler();
            _wakeupHandlers.Add(wakeupHandler);

            // Activate the handlers which register/unregister themselves dynamically
            wakeupHandler = new EpgGrabbingStandbyWakeupHandler(controller);
            wakeupHandler = new RebootWakeupHandler();
        }
        /// <summary>
        /// Creates a new PowerSchedulerFactory
        /// </summary>
        /// <param name="controller">Reference to tvservice's TVController</param>
        public PowerSchedulerFactory(IController controller)
        {
            Log.Info("PowerSchedulerFactory CTOR");

            IStandbyHandler standbyHandler;

            _standbyHandlers = new List <IStandbyHandler>();
            _wakeupHandlers  = new List <IWakeupHandler>();

            // Add handlers for preventing the system from entering standby
            standbyHandler = new ActiveStreamsHandler(controller);
            _standbyHandlers.Add(standbyHandler);
            standbyHandler = new ControllerActiveHandler(controller);
            _standbyHandlers.Add(standbyHandler);
            standbyHandler = new ProcessActiveHandler();
            _standbyHandlers.Add(standbyHandler);
            standbyHandler = new NetworkMonitorHandler();
            _standbyHandlers.Add(standbyHandler);
            standbyHandler = new ActiveSharesHandler();
            _standbyHandlers.Add(standbyHandler);

            ScheduledRecordingsHandler recHandler   = new ScheduledRecordingsHandler();
            XmlTvImportWakeupHandler   xmltvHandler = new XmlTvImportWakeupHandler();

            // Add handlers for resuming from standby
            _wakeupHandlers.Add(recHandler);
            _wakeupHandlers.Add(xmltvHandler);

            // Activate the EPG grabbing handler
            _epgHandler = new EpgGrabbingHandler(controller);
        }