| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 | 
							- using System;
 
- using System.Runtime.InteropServices;
 
- namespace MediaBrowser.ServerApplication.Native
 
- {
 
-     /// <summary>
 
-     /// Class NativeApp
 
-     /// </summary>
 
-     public static class Standby
 
-     {
 
-         public static void PreventSleepAndMonitorOff()
 
-         {
 
-             NativeMethods.SetThreadExecutionState(NativeMethods.ES_CONTINUOUS | NativeMethods.ES_SYSTEM_REQUIRED | NativeMethods.ES_DISPLAY_REQUIRED);
 
-         }
 
-         public static void PreventSleep()
 
-         {
 
-             NativeMethods.SetThreadExecutionState(NativeMethods.ES_CONTINUOUS | NativeMethods.ES_SYSTEM_REQUIRED);
 
-         }
 
-         // Clear EXECUTION_STATE flags to allow the system to sleep and turn off monitor normally
 
-         public static void AllowSleep()
 
-         {
 
-             NativeMethods.SetThreadExecutionState(NativeMethods.ES_CONTINUOUS);
 
-         }
 
-         internal static class NativeMethods
 
-         {
 
-             // Import SetThreadExecutionState Win32 API and necessary flags
 
-             [DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
 
-             public static extern uint SetThreadExecutionState(uint esFlags);
 
-             public const uint ES_CONTINUOUS = 0x80000000;
 
-             public const uint ES_SYSTEM_REQUIRED = 0x00000001;
 
-             public const uint ES_DISPLAY_REQUIRED = 0x00000002;
 
-         }
 
-         [Flags]
 
-         internal enum EXECUTION_STATE : uint
 
-         {
 
-             ES_NONE = 0,
 
-             ES_SYSTEM_REQUIRED = 0x00000001,
 
-             ES_DISPLAY_REQUIRED = 0x00000002,
 
-             ES_USER_PRESENT = 0x00000004,
 
-             ES_AWAYMODE_REQUIRED = 0x00000040,
 
-             ES_CONTINUOUS = 0x80000000
 
-         }
 
-     }
 
- }
 
 
  |