| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 | using System;using MediaBrowser.Common.Events;using MediaBrowser.Model.Logging;using MediaBrowser.Model.System;namespace Emby.Server.Implementations{    public class SystemEvents : ISystemEvents    {        public event EventHandler Resume;        public event EventHandler Suspend;        public event EventHandler SessionLogoff;        public event EventHandler SystemShutdown;        private readonly ILogger _logger;        public SystemEvents(ILogger logger)        {            _logger = logger;            Microsoft.Win32.SystemEvents.PowerModeChanged += SystemEvents_PowerModeChanged;            Microsoft.Win32.SystemEvents.SessionEnding += SystemEvents_SessionEnding;        }        private void SystemEvents_SessionEnding(object sender, Microsoft.Win32.SessionEndingEventArgs e)        {            switch (e.Reason)            {                case Microsoft.Win32.SessionEndReasons.Logoff:                    EventHelper.FireEventIfNotNull(SessionLogoff, this, EventArgs.Empty, _logger);                    break;                case Microsoft.Win32.SessionEndReasons.SystemShutdown:                    EventHelper.FireEventIfNotNull(SystemShutdown, this, EventArgs.Empty, _logger);                    break;            }        }        private void SystemEvents_PowerModeChanged(object sender, Microsoft.Win32.PowerModeChangedEventArgs e)        {            switch (e.Mode)            {                case Microsoft.Win32.PowerModes.Resume:                    EventHelper.FireEventIfNotNull(Resume, this, EventArgs.Empty, _logger);                    break;                case Microsoft.Win32.PowerModes.Suspend:                    EventHelper.FireEventIfNotNull(Suspend, this, EventArgs.Empty, _logger);                    break;            }        }    }}
 |