public static bool HasBattery() { Win32.PowerState state = Win32.PowerState.GetPowerState(); if (state == null || state.BatteryFlag == Win32.BatteryFlag.NoSystemBattery) { return(false); } return(true); }
private void PowerCheck() { Win32.PowerState state = Win32.PowerState.GetPowerState(); if (state == null || state.BatteryFlag == Win32.BatteryFlag.NoSystemBattery || state.BatteryFlag == Win32.BatteryFlag.Unknown) { return; // Only run if we have a battery. } if (state.ACLineStatus == Win32.ACLineStatus.Offline && state.BatteryFlag == Win32.BatteryFlag.Low && !this.lowStateHit) { if (this.encodeService.IsEncoding && !this.encodeService.IsPasued) { this.lowPowerPause = true; this.encodeService.Pause(); } Win32.AllowSleep(); this.ServiceLogMessage(string.Format(Resources.SystemService_LowBatteryLog, state.BatteryLifePercent)); this.lowStateHit = true; } if (state.ACLineStatus == Win32.ACLineStatus.Offline && state.BatteryFlag == Win32.BatteryFlag.Critical && !this.criticalStateHit) { if (this.encodeService.IsEncoding && !this.encodeService.IsPasued) { this.lowPowerPause = true; this.encodeService.Pause(); // In case we missed the low state! } Win32.AllowSleep(); this.ServiceLogMessage(string.Format(Resources.SystemService_CriticalBattery, state.BatteryLifePercent)); this.criticalStateHit = true; } // Reset the flags when we start charging. if (state.ACLineStatus == Win32.ACLineStatus.Online && state.BatteryFlag >= Win32.BatteryFlag.Low) { if (this.lowPowerPause && this.encodeService.IsPasued) { this.encodeService.Resume(); this.ServiceLogMessage(string.Format(Resources.SystemService_ACMains, state.BatteryLifePercent)); } this.lowPowerPause = false; this.criticalStateHit = false; this.lowStateHit = false; } }
private void PowerCheck() { if (!this.userSettingService.GetUserSetting <bool>(UserSettingConstants.PauseEncodingOnLowBattery)) { return; } Win32.PowerState state = Win32.PowerState.GetPowerState(); if (state == null || state.BatteryFlag == Win32.BatteryFlag.NoSystemBattery || state.BatteryFlag == Win32.BatteryFlag.Unknown) { return; // Only run if we have a battery. } int lowBatteryLevel = this.userSettingService.GetUserSetting <int>(UserSettingConstants.LowBatteryLevel); if (state.ACLineStatus == Win32.ACLineStatus.Offline && state.BatteryLifePercent <= lowBatteryLevel && !this.lowStateHit) { if (this.encodeService.IsEncoding && !this.encodeService.IsPasued) { this.lowPowerPause = true; this.queueService.Pause(); } Win32.AllowSleep(); this.ServiceLogMessage(string.Format(Resources.SystemService_LowBatteryLog, state.BatteryLifePercent)); this.lowStateHit = true; } // Reset the flags when we start charging. if (state.ACLineStatus == Win32.ACLineStatus.Online) { if (this.lowPowerPause && this.encodeService.IsPasued) { this.queueService.Start(this.userSettingService.GetUserSetting <bool>(UserSettingConstants.ClearCompletedFromQueue)); this.ServiceLogMessage(string.Format(Resources.SystemService_ACMains, state.BatteryLifePercent)); } this.lowPowerPause = false; this.criticalStateHit = false; this.lowStateHit = false; } }