SystemEvents.cs 1.1 KB

12345678910111213141516171819202122232425262728293031323334
  1. using System;
  2. using MediaBrowser.Common.Events;
  3. using MediaBrowser.Model.Logging;
  4. using MediaBrowser.Model.System;
  5. namespace MediaBrowser.Server.Startup.Common
  6. {
  7. public class SystemEvents : ISystemEvents
  8. {
  9. public event EventHandler Resume;
  10. public event EventHandler Suspend;
  11. private readonly ILogger _logger;
  12. public SystemEvents(ILogger logger)
  13. {
  14. _logger = logger;
  15. Microsoft.Win32.SystemEvents.PowerModeChanged += SystemEvents_PowerModeChanged;
  16. }
  17. private void SystemEvents_PowerModeChanged(object sender, Microsoft.Win32.PowerModeChangedEventArgs e)
  18. {
  19. switch (e.Mode)
  20. {
  21. case Microsoft.Win32.PowerModes.Resume:
  22. EventHelper.FireEventIfNotNull(Resume, this, EventArgs.Empty, _logger);
  23. break;
  24. case Microsoft.Win32.PowerModes.Suspend:
  25. EventHelper.FireEventIfNotNull(Suspend, this, EventArgs.Empty, _logger);
  26. break;
  27. }
  28. }
  29. }
  30. }