// This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. // If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. // Copyright (C) LibreHardwareMonitor and Contributors. // Partial Copyright (C) Michael Möller and Contributors. // All Rights Reserved. using System.Collections.Generic; namespace LibreHardwareMonitor.Hardware; /// /// Handler that will trigger the actions assigned to it when the event occurs. /// /// Component returned to the assigned action(s). public delegate void HardwareEventHandler(IHardware hardware); /// /// Basic abstract with methods for the class which can store all hardware and decides which devices are to be checked and updated. /// public interface IComputer : IElement { /// /// Triggered when a new is registered. /// event HardwareEventHandler HardwareAdded; /// /// Triggered when a is removed. /// event HardwareEventHandler HardwareRemoved; /// /// Gets a list of all known . /// Can be updated by . /// /// List of all enabled devices. IList Hardware { get; } /// /// Gets or sets a value indicating whether collecting information about devices should be enabled and updated. /// /// if a given category of devices is already enabled. bool IsBatteryEnabled { get; } /// /// Gets or sets a value indicating whether collecting information about: /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// devices should be enabled and updated. /// /// if a given category of devices is already enabled. bool IsControllerEnabled { get; } /// /// Gets or sets a value indicating whether collecting information about devices should be enabled and updated. /// /// if a given category of devices is already enabled. bool IsCpuEnabled { get; } /// /// Gets or sets a value indicating whether collecting information about or devices should be enabled and updated. /// /// if a given category of devices is already enabled. bool IsGpuEnabled { get; } /// /// Gets or sets a value indicating whether collecting information about devices should be enabled and updated. /// /// if a given category of devices is already enabled. bool IsMemoryEnabled { get; } /// /// Gets or sets a value indicating whether collecting information about devices should be enabled and updated. /// /// if a given category of devices is already enabled. bool IsMotherboardEnabled { get; } /// /// Gets or sets a value indicating whether collecting information about devices should be enabled and updated. /// /// if a given category of devices is already enabled. bool IsNetworkEnabled { get; } /// /// Gets or sets a value indicating whether collecting information about devices should be enabled and updated. /// /// if a given category of devices is already enabled. bool IsPsuEnabled { get; } /// /// Gets or sets a value indicating whether collecting information about devices should be enabled and updated. /// /// if a given category of devices is already enabled. bool IsStorageEnabled { get; } /// /// Generates full LibreHardwareMonitor report for devices that have been enabled. /// /// A formatted text string with library, OS and hardware information. string GetReport(); }