mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-03-16 23:26:22 +00:00
update main projects
This commit is contained in:
50
Emby.Server.Core/SystemEvents.cs
Normal file
50
Emby.Server.Core/SystemEvents.cs
Normal file
@@ -0,0 +1,50 @@
|
||||
using System;
|
||||
using MediaBrowser.Common.Events;
|
||||
using MediaBrowser.Model.Logging;
|
||||
using MediaBrowser.Model.System;
|
||||
|
||||
namespace MediaBrowser.Server.Startup.Common
|
||||
{
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user