* Add background tinting and color picker to gadget
-Replaced barblue.png and gadget.png with desaturated versions.
-Added background tinting support (_backTinted, _backgroundColor, _backgroundDirty), switched _barFore to use bar.png, and dispose tinted background resources during cleanup.
-Reworked font color selection UX and mirrored the same chooser flow for background color.
* Fix Gadget bars and HSV color picker UI + Icon
-Fixed gadget bars to tint with selected background color
-Updated color picker flow with a themed, resizable HSV picker.
-Applied LibreHardwareMonitor icon and current app theme to the picker window.
* Hex values and finalize color tinting
-Added Copy/Paste to hex value field.
-Fixed color tinting to respect true grayscale/dark hex values (e.g. #000000) .
-Utilization bars now follow font color tinting.
* Utilization bars fix
-Fixed utilization bar tinting to follow the selected font color directly
* Github Copilot Suggestions
-Forced grayscale-safe background tint behavior, switched background tint processing to LockBits.
-Preserved custom bar override images by skipping tint on user-provided bar assets.
-Fixed PArgb premultiplication in tint output to remove edge halo artifacts.
* Restrict workingSource to Format32bppArgb
-Normalized CreateBackgroundTint sources to Format32bppArgb before LockBits so premultiplied PArgb images are not processed with non-premultiplied ARGB tint math.
* Windows accessibility text scaling
-Adjusted picker layout to scale correctly when Windows Text Size is increased in Accessibility settings.
* Implement Fan control for TG WVP2.
Calculate approximate fan speed.
Catch two exceptions.
Remove leftover close in ReadConfig.
* Support for multi device detection
* Add more data to report
* Add group for power monitors and remove from GenericGpu.
* Move files.
Add option for Power Monitor in Computer + UI.
* Added query parameters to the /metrics endpoint
* Fixed a Typo and Some Style corrections
* Update HttpServer.cs
---------
Co-authored-by: PhyxionNL <7643972+PhyxionNL@users.noreply.github.com>
* Bug fixes and Distinctive aliases
Fixed an exception when a Type was not registered in the dictionary
Added distinctive aliases for hardware and sensors to prevent confusion due to duplicated names
Reviewed units and factors
* Skip null values as per #1979
* On prometheus null value show full tagName if possible
* Using Dictionaries to keep track of hardware and sensor's names
* Fixing some logic errors.
* Bugfix: Typo in message
* Report up to 5 values per sensor.
* Renamed variables for clarity
Modified labels as requested
* Removed unused variables
Fixed error in dictionary key
* Fixed a logic error
* Removed remote debug
* Replaced alilas logic for a simpler `name (id)`
* Bugfix: Prometheus requires a colon here
Specially in strict mode and in victoriametrics.
* Forcing invariant locale conversion of numbers.
* Minor Code formatting
* Bug fixes and Distinctive aliases
Fixed an exception when a Type was not registered in the dictionary
Added distinctive aliases for hardware and sensors to prevent confusion due to duplicated names
Reviewed units and factors
* Skip null values as per #1979
* On prometheus null value show full tagName if possible
* Using Dictionaries to keep track of hardware and sensor's names
* Fixing some logic errors.
* Bugfix: Typo in message
* Report up to 5 values per sensor.
* Renamed variables for clarity
Modified labels as requested
* Removed unused variables
Fixed error in dictionary key
* Fixed a logic error
* Removed remote debug
* Replaced alilas logic for a simpler `name (id)`
* Bugfix: Prometheus requires a colon here
Specially in strict mode and in victoriametrics.
* Forcing invariant locale conversion of numbers.
* Minor Code formatting
* Misc
---------
Co-authored-by: PhyxionNL <7643972+PhyxionNL@users.noreply.github.com>
* Replace Storage implementation with CrystalDiskInfo based implementation.
* Formatting.
* Code review.
* Code review.
* Increase space for attribute name in report.
* Implement dynamic disk handling for usage sensor.
Disable unused warnings.
* Further cleanup in NativeMethods.txt and referenced.
* Experimental Prometheus support
Refactors text response to accept responseType
Generates a plaintext output in prometheus format using standard units and factors
Only called if and when endpoint (/metrics) is accessed
Exceptions are reported in the text output
This tries to minimize changes and uses no extra dependencies
* Changed strings to interpolation and raw literals to improve readability
* Fixed a typo
* Adding the Async HttpServer from Master
* Added back the http headers to SendResponseAsync
* Adding no-cache to sensor and prometheus
* Fix restore command on workflows.
- Correct path when restoring application packages.
- Add --no-restore for application build.
* Add RuntimeIdentifiers.
So restore knows what packages to pick.
* Add ARM64 platform support to build and projects
Added ARM64 as a supported platform in project files and solution configuration. Updated GitHub Actions workflows to build and publish ARM64 libraries. This enables building and distributing ARM64 binaries alongside x64 and x86.
* Add ARM64 support to NuGet packaging
Updated main.nuget.target to include ARM64 DLL and XML files in the NuGet package, enabling multi-platform support for win-arm64 in addition to x64 and x86.
* Fix ARM64 configuration mappings in solution file
Corrects the Debug and Release configuration mappings for ARM64 targets in LibreHardwareMonitor.sln, ensuring ARM64 builds use the proper platform instead of x64.
* Use PawnIO driver directly.
- Implemented PawnIO library in C#
- Builds in AnyCPU, x64 and x86
- Fixes#1895
* Implement review changes for PawnIO.
- Use existing Kernel32.CreateFile import.
- Move new DeviceIOControl to Kernel32.
- Replace Lazy Version loading with static property.
- Remove bin resource cache.
- Add constant for function name length.
* More review changes for PawnIO.
- Replace redundant internal checks with IsLoaded.
- Convert Win32 error code to HRESULT before returning it in
ExecuteHR()
* Drop KernelDriver
---------
Co-authored-by: PhyxionNL <7643972+PhyxionNL@users.noreply.github.com>
* Remove redundant second null check for sensor value
* Add base formatted raw values to data.json for consistent units
* Update HttpServer.cs
---------
Co-authored-by: PhyxionNL <7643972+PhyxionNL@users.noreply.github.com>
* Workaround for page changing on DDR5 systems with SPD Write Protection active has been implemented in new version of RAMSPDToolkit.
Code for LHM has been adjusted accordingly.
Added more sensors (timings).
* Move abbreviation of timings to start of string.
* Simplify names for timings.
* Update version.
* Remove extra padding.