115 lines
		
	
	
		
			No EOL
		
	
	
		
			4.4 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			115 lines
		
	
	
		
			No EOL
		
	
	
		
			4.4 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using System;
 | |
| using System.Drawing;
 | |
| using Microsoft.Win32;
 | |
| using System.Windows.Forms;
 | |
| using Trigger.Classes.Power;
 | |
| 
 | |
| namespace Trigger.Tasks
 | |
| {
 | |
| 	/// <summary>
 | |
| 	/// <para>Logs all events from <see cref="Trigger.Events.Power"/></para>
 | |
| 	/// </summary>
 | |
| 	class LogPowerEvents : TaskPlugin
 | |
| 	{
 | |
| 		#region Properties
 | |
| 		internal Main Main;
 | |
| 		internal Log Log;
 | |
| 		#endregion
 | |
| 
 | |
| 		#region Methods
 | |
| 		public override bool Init(Main Main)
 | |
| 		{
 | |
| 			return Init(Main, new System.Diagnostics.Stopwatch());
 | |
| 		}
 | |
| 		public override bool Init(Main Main, System.Diagnostics.Stopwatch swInit)
 | |
| 		{
 | |
| 			if (!Main.EventMgr.PluginExists<Events.Power>())
 | |
| 			{
 | |
| 				this.Log.LogLine("Task \"LogPowerEvents\" is missing EventPlugin \"Power\"!", Log.Type.Error);
 | |
| 				return false;
 | |
| 			}
 | |
| 
 | |
| 			this.Main = Main;
 | |
| 			this.Log = Main.Log;
 | |
| 
 | |
| 			swInit.Stop();
 | |
| 			Events.Power pwrEvents = Main.EventMgr.GetPlugin<Events.Power>(new object[] {Main}, true);
 | |
| 			swInit.Start();
 | |
| 
 | |
| 			pwrEvents.PowerModeChanged += new Events.EventPlugin.EventValue<PowerModes>(pwrEvents_PowerModeChanged);
 | |
| 			pwrEvents.Suspend += new Events.EventPlugin.Event(pwrEvents_Suspend);
 | |
| 			pwrEvents.Resume += new Events.EventPlugin.Event(pwrEvents_Resume);
 | |
| 			pwrEvents.PowerLineStatusChanged += new Events.EventPlugin.EventValues<PowerLineStatus>(pwrEvents_PowerLineStatusChanged);
 | |
| 			pwrEvents.BatteryAvailabilityChanged += new Events.EventPlugin.EventValue<bool?>(pwrEvents_BatteryAvailabilityChanged);
 | |
| 			pwrEvents.BatteryStatusChanged += new Events.EventPlugin.EventValues<BatteryChargeStatus>(pwrEvents_BatteryStatusChanged);
 | |
| 
 | |
| 			pwrEvents.PowerSchemeChanged += new Events.EventPlugin.EventValues<PowerScheme>(pwrEvents_PowerSchemeChanged);
 | |
| 			return true;
 | |
| 		}
 | |
| 
 | |
| 		public override void Dispose()
 | |
| 		{
 | |
| 			Events.Power pwrEvents = Main.EventMgr.GetPlugin<Events.Power>(new object[] {Main}, true);
 | |
| 			pwrEvents.PowerModeChanged -= new Events.EventPlugin.EventValue<PowerModes>(pwrEvents_PowerModeChanged);
 | |
| 			pwrEvents.Suspend -= new Events.EventPlugin.Event(pwrEvents_Suspend);
 | |
| 			pwrEvents.Resume -= new Events.EventPlugin.Event(pwrEvents_Resume);
 | |
| 			pwrEvents.PowerLineStatusChanged -= new Events.EventPlugin.EventValues<PowerLineStatus>(pwrEvents_PowerLineStatusChanged);
 | |
| 			pwrEvents.BatteryAvailabilityChanged -= new Events.EventPlugin.EventValue<bool?>(pwrEvents_BatteryAvailabilityChanged);
 | |
| 			pwrEvents.BatteryStatusChanged -= new Events.EventPlugin.EventValues<BatteryChargeStatus>(pwrEvents_BatteryStatusChanged);
 | |
| 
 | |
| 			pwrEvents.PowerSchemeChanged -= new Events.EventPlugin.EventValues<PowerScheme>(pwrEvents_PowerSchemeChanged);
 | |
| 		}
 | |
| 		#endregion
 | |
| 
 | |
| 
 | |
| 		#region Event handlers
 | |
| 		private void pwrEvents_PowerModeChanged(object sender, Events.EventArgsValue<PowerModes> e)
 | |
| 		{
 | |
| 			if (e.Value == PowerModes.StatusChange)
 | |
| 				this.Log.LogLineDate("The PowerMode changed to: " + e.Value.ToString(), Log.Type.PowerEvent);
 | |
| 		}
 | |
| 
 | |
| 		private void pwrEvents_Suspend(object sender, EventArgs e)
 | |
| 		{
 | |
| 			this.Log.LogLineDate("The system is being suspended", Log.Type.PowerEvent);
 | |
| 		}
 | |
| 
 | |
| 		private void pwrEvents_Resume(object sender, EventArgs e)
 | |
| 		{
 | |
| 			this.Log.LogLineDate("The system is being resumed", Log.Type.PowerEvent);
 | |
| 		}
 | |
| 
 | |
| 		private void pwrEvents_PowerLineStatusChanged(object sender, Events.EventArgsValues<PowerLineStatus> e)
 | |
| 		{
 | |
| 			if (e.NewValue == PowerLineStatus.Online)
 | |
| 				this.Log.LogLineDate("The computer was connected to the power network", Trigger.Log.Type.PowerEvent);
 | |
| 			else
 | |
| 				this.Log.LogLineDate("The computer was disconnected from the power network", Trigger.Log.Type.PowerEvent);
 | |
| 		}
 | |
| 
 | |
| 		private void pwrEvents_BatteryAvailabilityChanged(object sender, Events.EventArgsValue<bool?> e)
 | |
| 		{
 | |
| 			if (e.Value.Value == true)
 | |
| 				this.Log.LogLineDate("A battery was connected", Trigger.Log.Type.PowerEvent);
 | |
| 			else
 | |
| 				this.Log.LogLineDate("A battery was disconnected", Trigger.Log.Type.PowerEvent);
 | |
| 		}
 | |
| 
 | |
| 		private void pwrEvents_BatteryStatusChanged(object sender, Events.EventArgsValues<BatteryChargeStatus> e)
 | |
| 		{
 | |
| 			this.Log.LogLineDate("The status of the battery changed: " + e.OldValue.ToString() + " -> " + e.NewValue.ToString() + " (" + Status.Power.BatteryLifePercent.ToString() + "%)", Trigger.Log.Type.PowerEvent);
 | |
| 		}
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 		private void pwrEvents_PowerSchemeChanged(object sender, Events.EventArgsValues<PowerScheme> e)
 | |
| 		{
 | |
| 			this.Log.LogLineDate("Power scheme changed: " + e.OldValue.Name + " --> " + e.NewValue.Name, Trigger.Log.Type.PowerEvent);
 | |
| 		}
 | |
| 		#endregion
 | |
| 	}
 | |
| } |