Compare commits
134 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1478f80c1a | ||
|
|
b2a64bf012 | ||
|
|
d734581493 | ||
|
|
31eef60e75 | ||
|
|
563d49d675 | ||
|
|
2a7bea83ad | ||
|
|
e57f61b07a | ||
|
|
bdc1f92f1b | ||
|
|
621835076b | ||
|
|
297ebe5d64 | ||
|
|
e04c4cd46f | ||
|
|
2b0ea99acc | ||
|
|
f2371b0931 | ||
|
|
bc75b154c3 | ||
|
|
279d07d674 | ||
|
|
8243d87824 | ||
|
|
3d95fb33ce | ||
|
|
736bead0a9 | ||
|
|
296527d994 | ||
|
|
d534f5440b | ||
|
|
9e08114363 | ||
|
|
ca8531cf26 | ||
|
|
cda04d3c3b | ||
|
|
8c5f4aa0f3 | ||
|
|
6f861957df | ||
|
|
8884b0d844 | ||
|
|
2987d750e3 | ||
|
|
b5e160bc00 | ||
|
|
fb33f426d3 | ||
|
|
163b35d6b0 | ||
|
|
325c6ff3ea | ||
|
|
7b34ec4a8c | ||
|
|
31b535a582 | ||
|
|
1fa2442023 | ||
|
|
39cc2b7563 | ||
|
|
8a37520453 | ||
|
|
fbfbe8e730 | ||
|
|
545e2cc705 | ||
|
|
a27b02ff62 | ||
|
|
06bfe8361d | ||
|
|
8531d903bb | ||
|
|
a3768bcedf | ||
|
|
ef1a823294 | ||
|
|
5e49c2e699 | ||
|
|
bbe1fd3d9f | ||
|
|
fff52f3f5c | ||
|
|
bb10fff4e2 | ||
|
|
5b3947c580 | ||
|
|
76e547c2dc | ||
|
|
d635dc275f | ||
|
|
5b96757939 | ||
|
|
3fbd833e21 | ||
|
|
a3fd1a2703 | ||
|
|
72dea26fde | ||
|
|
6e3fde8537 | ||
|
|
f8624c8954 | ||
|
|
ce0a1c0ed2 | ||
|
|
1b25017c18 | ||
|
|
0ac1a44800 | ||
|
|
d8bf8ed463 | ||
|
|
8b26e9aeba | ||
|
|
42ccbe8783 | ||
|
|
f1ef397ada | ||
|
|
97f2cc4332 | ||
|
|
b4039e1301 | ||
|
|
dedb2123f0 | ||
|
|
6d56bc1231 | ||
|
|
f0d8987806 | ||
|
|
c4ccdbe737 | ||
|
|
5607e4faec | ||
|
|
8eb920313d | ||
|
|
6479079212 | ||
|
|
db3804414e | ||
|
|
99dfcbb95c | ||
|
|
736cad7ff5 | ||
|
|
b3b0b512d2 | ||
|
|
2462bc92de | ||
|
|
fcfa1821a6 | ||
|
|
70e2e2e06e | ||
|
|
c0b5ef93d3 | ||
|
|
737c83ec22 | ||
|
|
fd1d929d0d | ||
|
|
c2aa4da1db | ||
|
|
adcbe33fbb | ||
|
|
31e52dbf00 | ||
|
|
acef2407c7 | ||
|
|
6dd4905b95 | ||
|
|
1657e89599 | ||
|
|
745deef642 | ||
|
|
21ad10ce4e | ||
|
|
5e7a2e8ced | ||
|
|
30fb32c3d5 | ||
|
|
ef442f3f11 | ||
|
|
7bfd80b20f | ||
|
|
4e1aa01fae | ||
|
|
2c8f14f783 | ||
|
|
cf46ed7eff | ||
|
|
8552eab367 | ||
|
|
abd28efb61 | ||
|
|
e161a76e66 | ||
|
|
0270a453b8 | ||
|
|
6e1081044b | ||
|
|
384a70c51c | ||
|
|
0da6540de4 | ||
|
|
83fed695e4 | ||
|
|
6bd69a6055 | ||
|
|
e125afde1a | ||
|
|
bc79784b2f | ||
|
|
a29cd7e1be | ||
|
|
5986707f90 | ||
|
|
3bd35074fe | ||
|
|
b1b187f098 | ||
|
|
1464a39eb4 | ||
|
|
f682646865 | ||
|
|
6a9d805838 | ||
|
|
0217b2a993 | ||
|
|
0a3256eb44 | ||
|
|
6eba7dadea | ||
|
|
772bd8e7a5 | ||
|
|
556a4ce4ee | ||
|
|
c0f88191df | ||
|
|
527769042f | ||
|
|
671c31848b | ||
|
|
00dc6a6ca3 | ||
|
|
765c03815e | ||
|
|
df35a576df | ||
|
|
becb71b69b | ||
|
|
aba4ab7742 | ||
|
|
2a9b9735d5 | ||
|
|
9ced493821 | ||
|
|
c6f3f73405 | ||
|
|
b8b82af613 | ||
|
|
4ab7ceb837 | ||
|
|
d7c85e8440 |
39
.github/ISSUE_TEMPLATE/bug_report.md
vendored
@@ -1,39 +0,0 @@
|
|||||||
---
|
|
||||||
name: Bug report
|
|
||||||
about: Create a report to help us improve
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## NOTE
|
|
||||||
Bug reports without clear information or scenario to reproduce and logs from ``%AppData%\GHelper`` will be closed without answer. Please respect the time of the developer. Thanks.
|
|
||||||
|
|
||||||
**Describe the bug**
|
|
||||||
A clear and concise description of what the bug is.
|
|
||||||
|
|
||||||
**Clear scenario to Reproduce**
|
|
||||||
Steps to reproduce the behavior:
|
|
||||||
1. Go to '...'
|
|
||||||
2. Click on '....'
|
|
||||||
3. Scroll down to '....'
|
|
||||||
4. Explanation of an error or a bug
|
|
||||||
|
|
||||||
**Expected behavior**
|
|
||||||
A clear and concise description of what you expected to happen.
|
|
||||||
|
|
||||||
**App Logs**
|
|
||||||
Please include and attach log.txt from ``%AppData%\GHelper``
|
|
||||||
|
|
||||||
**Screenshots or screencasts**
|
|
||||||
If applicable, add screenshots to help explain your problem.
|
|
||||||
|
|
||||||
**Desktop (please complete the following information):**
|
|
||||||
- OS: [e.g. Windows 11]
|
|
||||||
- Laptop model
|
|
||||||
|
|
||||||
**Asus software**
|
|
||||||
- Armoury Crate (or it's services installed)
|
|
||||||
- MyASUS installed
|
|
||||||
- Other Asus services running in background
|
|
||||||
|
|
||||||
**Additional context**
|
|
||||||
Add any other context about the problem here.
|
|
||||||
88
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
Normal file
@@ -0,0 +1,88 @@
|
|||||||
|
name: Bug Report
|
||||||
|
description: Something isn't working correctly
|
||||||
|
body:
|
||||||
|
- type: markdown
|
||||||
|
attributes:
|
||||||
|
value: |
|
||||||
|
Thanks for taking the time to fill out this bug report. The more information you provide, the easier it will be for me to fix it!
|
||||||
|
- type: checkboxes
|
||||||
|
id: rules
|
||||||
|
attributes:
|
||||||
|
label: Rules
|
||||||
|
options:
|
||||||
|
- label: I made myself familiar with the <a href='https://github.com/seerge/g-helper?tab=readme-ov-file'>Readme</a>, <a href='https://github.com/seerge/g-helper/wiki/FAQ'>FAQ</a> and <a href='https://github.com/seerge/g-helper/wiki/Troubleshooting'>Troubleshooting</a>.
|
||||||
|
required: true
|
||||||
|
- label: I understand that, if insufficient information or no app logs will be provided, my issue will be closed without an answer.
|
||||||
|
required: true
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
id: description
|
||||||
|
attributes:
|
||||||
|
label: What's wrong?
|
||||||
|
description: Provide detailed description of what is wrong or does not work as expected.
|
||||||
|
placeholder: Provide detailed description of what is wrong or does not work as expected.
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
id: reproduce
|
||||||
|
attributes:
|
||||||
|
label: How to reproduce the bug?
|
||||||
|
description: Describe how to reproduce the behavior. Be as specific as possible and provide as many details as possible.
|
||||||
|
placeholder: |
|
||||||
|
1. Go to '...'
|
||||||
|
2. Click on '....'
|
||||||
|
3. Scroll down to '....'
|
||||||
|
4. See error
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
id: logs
|
||||||
|
attributes:
|
||||||
|
label: Logs
|
||||||
|
placeholder: Please drag and drop complete log file from ``%APPDATA%\GHelper\log.txt``
|
||||||
|
description: Please drag and drop complete log file from ``%APPDATA%\GHelper\log.txt``
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: input
|
||||||
|
id: device
|
||||||
|
attributes:
|
||||||
|
label: Device and Model
|
||||||
|
description: Which laptop do you use?
|
||||||
|
placeholder: e.g. Asus Zephyrus G14 GA404RK
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
id: additional
|
||||||
|
attributes:
|
||||||
|
label: Additional information.
|
||||||
|
description: If applicable, add screenshots or other relevant information to help explain your problem.
|
||||||
|
- type: dropdown
|
||||||
|
id: armoury
|
||||||
|
attributes:
|
||||||
|
label: Armoury Crate
|
||||||
|
description: Do you have Armoury Crate installed?
|
||||||
|
options:
|
||||||
|
- Uninstalled
|
||||||
|
- Installed
|
||||||
|
- Never installed
|
||||||
|
default: 0
|
||||||
|
- type: input
|
||||||
|
id: asus
|
||||||
|
attributes:
|
||||||
|
label: Asus Services
|
||||||
|
description: How many Asus services do you have running (check ``Extra`` section in G-Helper)?
|
||||||
|
placeholder: e.g. None
|
||||||
|
- type: input
|
||||||
|
id: version
|
||||||
|
attributes:
|
||||||
|
label: Version
|
||||||
|
description: G-Helper version?
|
||||||
|
placeholder: e.g. 0.146
|
||||||
|
- type: input
|
||||||
|
id: os
|
||||||
|
attributes:
|
||||||
|
label: OS
|
||||||
|
description: Which operating system do you use?
|
||||||
|
placeholder: e.g. Windows 11 21H2
|
||||||
|
|
||||||
20
.github/ISSUE_TEMPLATE/feature_request.md
vendored
@@ -1,20 +0,0 @@
|
|||||||
---
|
|
||||||
name: Feature request
|
|
||||||
about: Suggest an idea for this project
|
|
||||||
title: ''
|
|
||||||
labels: ''
|
|
||||||
assignees: ''
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
**Is your feature request related to a problem? Please describe.**
|
|
||||||
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
|
||||||
|
|
||||||
**Describe the solution you'd like**
|
|
||||||
A clear and concise description of what you want to happen.
|
|
||||||
|
|
||||||
**Describe alternatives you've considered**
|
|
||||||
A clear and concise description of any alternative solutions or features you've considered.
|
|
||||||
|
|
||||||
**Additional context**
|
|
||||||
Add any other context or screenshots about the feature request here.
|
|
||||||
46
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
name: Feature request
|
||||||
|
description: Suggest an idea for this project
|
||||||
|
body:
|
||||||
|
- type: checkboxes
|
||||||
|
id: rules
|
||||||
|
attributes:
|
||||||
|
label: Rules
|
||||||
|
options:
|
||||||
|
- label: I made myself familiar with the <a href='https://github.com/seerge/g-helper?tab=readme-ov-file'>Readme</a>, <a href='https://github.com/seerge/g-helper/wiki/FAQ'>FAQ</a> and <a href='https://github.com/seerge/g-helper/wiki/Troubleshooting'>Troubleshooting</a>.
|
||||||
|
required: true
|
||||||
|
- label: I understand that, if insufficient information will be provided, my issue will be closed without an answer.
|
||||||
|
required: true
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
id: description
|
||||||
|
attributes:
|
||||||
|
label: Is your feature request related to a problem? Please describe
|
||||||
|
placeholder: A clear and concise description of what the problem is.
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
id: solution
|
||||||
|
attributes:
|
||||||
|
label: Describe the solution you'd like
|
||||||
|
placeholder: A clear and concise description of what you want to happen.
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
id: alternatives
|
||||||
|
attributes:
|
||||||
|
label: Describe alternatives you've considered
|
||||||
|
placeholder: A clear and concise description of any alternative solutions or features you've considered.
|
||||||
|
- type: input
|
||||||
|
id: device
|
||||||
|
attributes:
|
||||||
|
label: Device and Model
|
||||||
|
description: Which laptop do you use?
|
||||||
|
placeholder: e.g. Asus Zephyrus G14 GA404RK
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
id: additional
|
||||||
|
attributes:
|
||||||
|
label: Additional information.
|
||||||
|
placeholder: If applicable, add screenshots or other relevant information
|
||||||
4
.github/workflows/release.yml
vendored
@@ -22,9 +22,9 @@ jobs:
|
|||||||
- name: Publish
|
- name: Publish
|
||||||
run: |
|
run: |
|
||||||
dotnet publish app/GHelper.sln --configuration Release --runtime win-x64 -p:PublishSingleFile=true --no-self-contained
|
dotnet publish app/GHelper.sln --configuration Release --runtime win-x64 -p:PublishSingleFile=true --no-self-contained
|
||||||
powershell Compress-Archive app/bin/x64/Release/net7.0-windows/win-x64/publish/* GHelper.zip
|
powershell Compress-Archive app/bin/x64/Release/net7.0-windows/win-x64/publish/GHelper.exe GHelper.zip
|
||||||
- name: Upload
|
- name: Upload
|
||||||
env:
|
env:
|
||||||
GH_TOKEN: ${{ github.token }}
|
GH_TOKEN: ${{ github.token }}
|
||||||
run: |
|
run: |
|
||||||
gh release upload ${{ github.ref_name }} GHelper.zip
|
gh release upload ${{ github.ref_name }} app/bin/x64/Release/net7.0-windows/win-x64/publish/GHelper.exe GHelper.zip
|
||||||
|
|||||||
626
app/Ally/AllyControl.cs
Normal file
@@ -0,0 +1,626 @@
|
|||||||
|
using GHelper.Gpu.AMD;
|
||||||
|
using GHelper.Helpers;
|
||||||
|
using GHelper.Input;
|
||||||
|
using GHelper.USB;
|
||||||
|
using HidSharp;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace GHelper.Ally
|
||||||
|
{
|
||||||
|
|
||||||
|
public enum ControllerMode : int
|
||||||
|
{
|
||||||
|
Auto = 0,
|
||||||
|
Gamepad = 1,
|
||||||
|
WASD = 2,
|
||||||
|
Mouse = 3,
|
||||||
|
Skip = -1,
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum BindingZone : byte
|
||||||
|
{
|
||||||
|
DPadUpDown = 1,
|
||||||
|
DPadLeftRight = 2,
|
||||||
|
StickClick = 3,
|
||||||
|
Bumper = 4,
|
||||||
|
AB = 5,
|
||||||
|
XY = 6,
|
||||||
|
ViewMenu = 7,
|
||||||
|
M1M2 = 8,
|
||||||
|
Trigger = 9
|
||||||
|
}
|
||||||
|
|
||||||
|
public class AllyControl
|
||||||
|
{
|
||||||
|
System.Timers.Timer timer = default!;
|
||||||
|
static AmdGpuControl amdControl = new AmdGpuControl();
|
||||||
|
|
||||||
|
SettingsForm settings;
|
||||||
|
|
||||||
|
static ControllerMode _mode = ControllerMode.Auto;
|
||||||
|
static ControllerMode _applyMode = ControllerMode.Mouse;
|
||||||
|
static int _autoCount = 0;
|
||||||
|
|
||||||
|
static int fpsLimit = -1;
|
||||||
|
|
||||||
|
public const string BindA = "01-01";
|
||||||
|
public const string BindB = "01-02";
|
||||||
|
public const string BindX = "01-03";
|
||||||
|
public const string BindY = "01-04";
|
||||||
|
public const string BindLB = "01-05";
|
||||||
|
public const string BindRB = "01-06";
|
||||||
|
public const string BindLS = "01-07";
|
||||||
|
public const string BindRS = "01-08";
|
||||||
|
public const string BindDU = "01-09";
|
||||||
|
public const string BindDD = "01-0A";
|
||||||
|
public const string BindDL = "01-0B";
|
||||||
|
public const string BindDR = "01-0C";
|
||||||
|
public const string BindVB = "01-11";
|
||||||
|
public const string BindMB = "01-12";
|
||||||
|
public const string BindM1 = "02-8F";
|
||||||
|
public const string BindM2 = "02-8E";
|
||||||
|
public const string BindLT = "01-0D";
|
||||||
|
public const string BindRT = "01-0E";
|
||||||
|
public const string BindXB = "01-13";
|
||||||
|
|
||||||
|
public const string BindMouseL = "03-01";
|
||||||
|
public const string BindMouseR = "03-02";
|
||||||
|
|
||||||
|
public const string BindKBU = "02-98";
|
||||||
|
public const string BindKBD = "02-99";
|
||||||
|
public const string BindKBL = "02-9A";
|
||||||
|
public const string BindKBR = "02-9B";
|
||||||
|
|
||||||
|
public const string BindTab = "02-0D";
|
||||||
|
public const string BindEnter = "02-5A";
|
||||||
|
public const string BindBack = "02-66";
|
||||||
|
public const string BindEsc = "02-76";
|
||||||
|
|
||||||
|
public const string BindPgU = "02-96";
|
||||||
|
public const string BindPgD = "02-97";
|
||||||
|
|
||||||
|
public const string BindShift = "02-88";
|
||||||
|
public const string BindCtrl = "02-8C";
|
||||||
|
public const string BindAlt = "02-8A";
|
||||||
|
public const string BindWin = "02-82";
|
||||||
|
|
||||||
|
public const string BindTaskManager = "04-03-8C-88-76";
|
||||||
|
public const string BindCloseWindow = "04-02-8A-0C";
|
||||||
|
|
||||||
|
public const string BindBrightnessDown = "04-04-8C-88-8A-05";
|
||||||
|
public const string BindBrightnessUp = "04-04-8C-88-8A-06";
|
||||||
|
public const string BindXGM = "04-04-8C-88-8A-04";
|
||||||
|
public const string BindToggleMode = "04-04-8C-88-8A-0C";
|
||||||
|
|
||||||
|
public const string BindOverlay = "04-03-8C-88-44";
|
||||||
|
|
||||||
|
public const string BindShiftTab = "04-02-88-0D";
|
||||||
|
public const string BindAltTab = "04-02-8A-0D";
|
||||||
|
|
||||||
|
public const string BindVolUp = "05-03";
|
||||||
|
public const string BindVolDown = "05-02";
|
||||||
|
|
||||||
|
public const string BindPrintScrn = "02-C3";
|
||||||
|
|
||||||
|
public const string BindScreenshot = "04-03-82-88-1B";
|
||||||
|
public const string BindShowDesktop = "04-02-82-23";
|
||||||
|
|
||||||
|
public const string BindShowKeyboard = "05-19";
|
||||||
|
|
||||||
|
static byte[] CommandReady = new byte[] { AsusHid.INPUT_ID, 0xD1, 0x0A, 0x01 };
|
||||||
|
static byte[] CommandSave = new byte[] { AsusHid.INPUT_ID, 0xD1, 0x0F, 0x20 };
|
||||||
|
|
||||||
|
public static Dictionary<string, string> BindCodes = new Dictionary<string, string>
|
||||||
|
{
|
||||||
|
{ "", "--------" },
|
||||||
|
{ "00-00", "[ Disabled ]" },
|
||||||
|
|
||||||
|
{ BindM1, "M1" },
|
||||||
|
{ BindM2, "M2" },
|
||||||
|
|
||||||
|
{ BindA, "A" },
|
||||||
|
{ BindB, "B" },
|
||||||
|
|
||||||
|
{ BindX, "X" },
|
||||||
|
{ BindY, "Y" },
|
||||||
|
|
||||||
|
{ BindLB, "Left Bumper" },
|
||||||
|
{ BindRB, "Right Bumper" },
|
||||||
|
|
||||||
|
{ BindLS, "Left Stick Click" },
|
||||||
|
{ BindRS, "Right Stick Click" },
|
||||||
|
|
||||||
|
{ BindDU, "DPad Up" },
|
||||||
|
{ BindDD, "DPad Down" },
|
||||||
|
|
||||||
|
{ BindDL, "DPad Left" },
|
||||||
|
{ BindDR, "DPad Right" },
|
||||||
|
|
||||||
|
{ BindVB, "View Button" },
|
||||||
|
{ BindMB, "Menu Button" },
|
||||||
|
|
||||||
|
{ BindXB, "XBox/Steam" },
|
||||||
|
|
||||||
|
{ BindToggleMode, "Controller Mode" },
|
||||||
|
|
||||||
|
{ BindVolUp, "Vol Up" },
|
||||||
|
{ BindVolDown, "Vol Down" },
|
||||||
|
{ BindBrightnessUp, "Bright Up" },
|
||||||
|
{ BindBrightnessDown, "Bright Down" },
|
||||||
|
|
||||||
|
{ BindShowKeyboard, "Show Keyboard" },
|
||||||
|
{ BindShowDesktop, "Show Desktop" },
|
||||||
|
{ BindScreenshot, "Screenshot" },
|
||||||
|
|
||||||
|
{ BindOverlay, "AMD Overlay" },
|
||||||
|
{ BindTaskManager, "Task Manager" },
|
||||||
|
{ BindCloseWindow, "Close Window" },
|
||||||
|
{ BindShiftTab, "Shift-Tab" },
|
||||||
|
{ BindAltTab, "Alt-Tab" },
|
||||||
|
{ BindXGM, "XGM Toggle" },
|
||||||
|
|
||||||
|
|
||||||
|
{ BindEsc, "Esc" },
|
||||||
|
{ BindBack, "Backspace" },
|
||||||
|
{ BindTab, "Tab" },
|
||||||
|
{ BindEnter, "Enter" },
|
||||||
|
{ BindShift, "LShift" },
|
||||||
|
{ BindAlt, "LAlt" },
|
||||||
|
{ BindCtrl, "LCtl" },
|
||||||
|
{ BindWin, "WIN" },
|
||||||
|
{ BindPrintScrn, "PrntScn" },
|
||||||
|
|
||||||
|
{ BindPgU, "PgUp" },
|
||||||
|
{ BindPgD, "PgDwn" },
|
||||||
|
{ BindKBU, "UpArrow" },
|
||||||
|
{ BindKBD, "DownArrow" },
|
||||||
|
{ BindKBL, "LeftArrow" },
|
||||||
|
{ BindKBR, "RightArrow" },
|
||||||
|
|
||||||
|
{ "02-05", "F1" },
|
||||||
|
{ "02-06", "F2" },
|
||||||
|
{ "02-04", "F3" },
|
||||||
|
{ "02-0C", "F4" },
|
||||||
|
{ "02-03", "F5" },
|
||||||
|
{ "02-0B", "F6" },
|
||||||
|
{ "02-80", "F7" },
|
||||||
|
{ "02-0A", "F8" },
|
||||||
|
{ "02-01", "F9" },
|
||||||
|
{ "02-09", "F10" },
|
||||||
|
{ "02-78", "F11" },
|
||||||
|
{ "02-07", "F12" },
|
||||||
|
{ "02-0E", "`" },
|
||||||
|
{ "02-16", "1" },
|
||||||
|
{ "02-1E", "2" },
|
||||||
|
{ "02-26", "3" },
|
||||||
|
{ "02-25", "4" },
|
||||||
|
{ "02-2E", "5" },
|
||||||
|
{ "02-36", "6" },
|
||||||
|
{ "02-3D", "7" },
|
||||||
|
{ "02-3E", "8" },
|
||||||
|
{ "02-46", "9" },
|
||||||
|
{ "02-45", "0" },
|
||||||
|
{ "02-4E", "-" },
|
||||||
|
{ "02-55", "=" },
|
||||||
|
{ "02-15", "Q" },
|
||||||
|
{ "02-1D", "W" },
|
||||||
|
{ "02-24", "E" },
|
||||||
|
{ "02-2D", "R" },
|
||||||
|
{ "02-2C", "T" },
|
||||||
|
{ "02-35", "Y" },
|
||||||
|
{ "02-3C", "U" },
|
||||||
|
{ "02-44", "O" },
|
||||||
|
{ "02-4D", "P" },
|
||||||
|
{ "02-54", "[" },
|
||||||
|
{ "02-5B", "]" },
|
||||||
|
{ "02-5D", "|" },
|
||||||
|
{ "02-58", "Caps" },
|
||||||
|
{ "02-1C", "A" },
|
||||||
|
{ "02-1B", "S" },
|
||||||
|
{ "02-23", "D" },
|
||||||
|
{ "02-2B", "F" },
|
||||||
|
{ "02-34", "G" },
|
||||||
|
{ "02-33", "H" },
|
||||||
|
{ "02-3B", "J" },
|
||||||
|
{ "02-42", "k" },
|
||||||
|
{ "02-4B", "l" },
|
||||||
|
{ "02-4C", ";" },
|
||||||
|
{ "02-52", "'" },
|
||||||
|
{ "02-22", "X" },
|
||||||
|
{ "02-1A", "Z" },
|
||||||
|
{ "02-21", "C" },
|
||||||
|
{ "02-2A", "V" },
|
||||||
|
{ "02-32", "B" },
|
||||||
|
{ "02-31", "N" },
|
||||||
|
{ "02-3A", "M" },
|
||||||
|
{ "02-41", "," },
|
||||||
|
{ "02-49", "." },
|
||||||
|
{ "02-89", "RShift" },
|
||||||
|
{ "02-29", "Space" },
|
||||||
|
{ "02-8B", "RAlt" },
|
||||||
|
{ "02-84", "App menu" },
|
||||||
|
{ "02-8D", "RCtl" },
|
||||||
|
{ "02-7E", "ScrLk" },
|
||||||
|
{ "02-C2", "Insert" },
|
||||||
|
{ "02-C0", "Delete" },
|
||||||
|
{ "02-94", "Home" },
|
||||||
|
{ "02-95", "End" },
|
||||||
|
{ "02-77", "NumLock" },
|
||||||
|
{ "02-90", "NumSlash" },
|
||||||
|
{ "02-7C", "NumStar" },
|
||||||
|
{ "02-7B", "NumHyphen" },
|
||||||
|
{ "02-70", "Num0" },
|
||||||
|
{ "02-69", "Num1" },
|
||||||
|
{ "02-72", "Num2" },
|
||||||
|
{ "02-7A", "Num3" },
|
||||||
|
{ "02-6B", "Num4" },
|
||||||
|
{ "02-73", "Num5" },
|
||||||
|
{ "02-74", "Num6" },
|
||||||
|
{ "02-6C", "Num7" },
|
||||||
|
{ "02-75", "Num8" },
|
||||||
|
{ "02-7D", "Num9" },
|
||||||
|
{ "02-79", "NumPlus" },
|
||||||
|
{ "02-81", "NumEnter" },
|
||||||
|
{ "02-71", "NumPeriod" },
|
||||||
|
|
||||||
|
{ BindMouseL, "Mouse left click" },
|
||||||
|
{ BindMouseR, "Mouse right click" },
|
||||||
|
{ "03-03", "Mouse middle click" },
|
||||||
|
{ "03-04", "Mouse scroll up" },
|
||||||
|
{ "03-05", "Mouse scroll down" },
|
||||||
|
|
||||||
|
//{ "05-16", "Screenshot" },
|
||||||
|
//{ "05-1C", "Show desktop" },
|
||||||
|
|
||||||
|
{ "05-1E", "Begin recording" },
|
||||||
|
{ "05-01", "Mic off" },
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
public AllyControl(SettingsForm settingsForm)
|
||||||
|
{
|
||||||
|
if (!AppConfig.IsAlly()) return;
|
||||||
|
|
||||||
|
settings = settingsForm;
|
||||||
|
|
||||||
|
timer = new System.Timers.Timer(300);
|
||||||
|
timer.Elapsed += Timer_Elapsed;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Timer_Elapsed(object? sender, System.Timers.ElapsedEventArgs e)
|
||||||
|
{
|
||||||
|
float fps = amdControl.GetFPS();
|
||||||
|
|
||||||
|
ControllerMode newMode = (fps > 0) ? ControllerMode.Gamepad : ControllerMode.Mouse;
|
||||||
|
|
||||||
|
if (_applyMode != newMode) _autoCount++;
|
||||||
|
else _autoCount = 0;
|
||||||
|
|
||||||
|
if (_mode != ControllerMode.Auto) return;
|
||||||
|
|
||||||
|
if (_autoCount > 2)
|
||||||
|
{
|
||||||
|
_autoCount = 0;
|
||||||
|
ApplyMode(newMode);
|
||||||
|
Logger.WriteLine(fps.ToString());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Init()
|
||||||
|
{
|
||||||
|
if (AppConfig.IsAlly()) settings.VisualiseAlly(true);
|
||||||
|
else return;
|
||||||
|
|
||||||
|
SetMode((ControllerMode)AppConfig.Get("controller_mode", (int)ControllerMode.Auto), true);
|
||||||
|
|
||||||
|
settings.VisualiseBacklight(InputDispatcher.GetBacklight());
|
||||||
|
|
||||||
|
fpsLimit = amdControl.GetFPSLimit();
|
||||||
|
settings.VisualiseFPSLimit(fpsLimit);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ToggleFPSLimit()
|
||||||
|
{
|
||||||
|
switch (fpsLimit)
|
||||||
|
{
|
||||||
|
case 30:
|
||||||
|
fpsLimit = 45;
|
||||||
|
break;
|
||||||
|
case 45:
|
||||||
|
fpsLimit = 60;
|
||||||
|
break;
|
||||||
|
case 60:
|
||||||
|
fpsLimit = 90;
|
||||||
|
break;
|
||||||
|
case 90:
|
||||||
|
fpsLimit = 120;
|
||||||
|
break;
|
||||||
|
case 120:
|
||||||
|
fpsLimit = 240;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
fpsLimit = 30;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
int result = amdControl.SetFPSLimit(fpsLimit);
|
||||||
|
Logger.WriteLine($"FPS Limit {fpsLimit}: {result}");
|
||||||
|
|
||||||
|
settings.VisualiseFPSLimit(fpsLimit);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void ToggleBacklight()
|
||||||
|
{
|
||||||
|
InputDispatcher.SetBacklight(4, true);
|
||||||
|
settings.VisualiseBacklight(InputDispatcher.GetBacklight());
|
||||||
|
}
|
||||||
|
|
||||||
|
static private byte[] DecodeBinding(string binding = "")
|
||||||
|
{
|
||||||
|
byte[] bytes;
|
||||||
|
|
||||||
|
if (binding == "" || binding is null) return new byte[2];
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
bytes = AppConfig.StringToBytes(binding);
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
return new byte[2];
|
||||||
|
}
|
||||||
|
|
||||||
|
byte[] code = new byte[10];
|
||||||
|
code[0] = bytes[0];
|
||||||
|
|
||||||
|
switch (bytes[0])
|
||||||
|
{
|
||||||
|
case 0x02:
|
||||||
|
code[2] = bytes[1];
|
||||||
|
break;
|
||||||
|
case 0x03:
|
||||||
|
code[4] = bytes[1];
|
||||||
|
break;
|
||||||
|
case 0x04:
|
||||||
|
bytes.Skip(1).ToArray().CopyTo(code, 5);
|
||||||
|
break;
|
||||||
|
case 0x05:
|
||||||
|
code[3] = bytes[1];
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
code[1] = bytes[1];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return code;
|
||||||
|
}
|
||||||
|
|
||||||
|
static private void BindZone(BindingZone zone)
|
||||||
|
{
|
||||||
|
string KeyL1, KeyR1;
|
||||||
|
string KeyL2, KeyR2;
|
||||||
|
|
||||||
|
bool desktop = (_applyMode == ControllerMode.Mouse);
|
||||||
|
|
||||||
|
switch (zone)
|
||||||
|
{
|
||||||
|
case BindingZone.DPadUpDown:
|
||||||
|
KeyL1 = AppConfig.GetString("bind_du", desktop ? BindKBU : BindDU);
|
||||||
|
KeyR1 = AppConfig.GetString("bind_dd", desktop ? BindKBD : BindDD);
|
||||||
|
KeyL2 = AppConfig.GetString("bind2_du", BindShowKeyboard);
|
||||||
|
KeyR2 = AppConfig.GetString("bind2_dd", BindShowDesktop);
|
||||||
|
break;
|
||||||
|
case BindingZone.DPadLeftRight:
|
||||||
|
KeyL1 = AppConfig.GetString("bind_dl", desktop ? BindKBL : BindDL);
|
||||||
|
KeyR1 = AppConfig.GetString("bind_dr", desktop ? BindKBR : BindDR);
|
||||||
|
KeyL2 = AppConfig.GetString("bind2_dl", BindBrightnessDown);
|
||||||
|
KeyR2 = AppConfig.GetString("bind2_dr", BindBrightnessUp);
|
||||||
|
break;
|
||||||
|
case BindingZone.StickClick:
|
||||||
|
KeyL1 = AppConfig.GetString("bind_ls", desktop ? BindShift : BindLS);
|
||||||
|
KeyR1 = AppConfig.GetString("bind_rs", desktop ? BindMouseL : BindRS);
|
||||||
|
KeyL2 = AppConfig.GetString("bind2_ls");
|
||||||
|
KeyR2 = AppConfig.GetString("bind2_rs", BindToggleMode);
|
||||||
|
break;
|
||||||
|
case BindingZone.Bumper:
|
||||||
|
KeyL1 = AppConfig.GetString("bind_lb", desktop ? BindTab : BindLB);
|
||||||
|
KeyR1 = AppConfig.GetString("bind_rb", desktop ? BindMouseL : BindRB);
|
||||||
|
KeyL2 = AppConfig.GetString("bind2_lb");
|
||||||
|
KeyR2 = AppConfig.GetString("bind2_rb");
|
||||||
|
break;
|
||||||
|
case BindingZone.AB:
|
||||||
|
KeyL1 = AppConfig.GetString("bind_a", desktop ? BindEnter : BindA);
|
||||||
|
KeyR1 = AppConfig.GetString("bind_b", desktop ? BindEsc : BindB);
|
||||||
|
KeyL2 = AppConfig.GetString("bind2_a");
|
||||||
|
KeyR2 = AppConfig.GetString("bind2_b");
|
||||||
|
break;
|
||||||
|
case BindingZone.XY:
|
||||||
|
KeyL1 = AppConfig.GetString("bind_x", desktop ? BindPgD : BindX);
|
||||||
|
KeyR1 = AppConfig.GetString("bind_y", desktop ? BindPgU : BindY);
|
||||||
|
KeyL2 = AppConfig.GetString("bind2_x", BindScreenshot);
|
||||||
|
KeyR2 = AppConfig.GetString("bind2_y", BindOverlay);
|
||||||
|
break;
|
||||||
|
case BindingZone.ViewMenu:
|
||||||
|
KeyL1 = AppConfig.GetString("bind_vb", BindVB);
|
||||||
|
KeyR1 = AppConfig.GetString("bind_mb", BindMB);
|
||||||
|
KeyL2 = AppConfig.GetString("bind2_vb");
|
||||||
|
KeyR2 = AppConfig.GetString("bind2_mb");
|
||||||
|
break;
|
||||||
|
case BindingZone.M1M2:
|
||||||
|
KeyL1 = AppConfig.GetString("bind_m2", BindM2);
|
||||||
|
KeyR1 = AppConfig.GetString("bind_m1", BindM1);
|
||||||
|
KeyL2 = AppConfig.GetString("bind2_m2", BindM2);
|
||||||
|
KeyR2 = AppConfig.GetString("bind2_m1", BindM1);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
KeyL1 = AppConfig.GetString("bind_trl", desktop ? BindShiftTab : BindLT);
|
||||||
|
KeyR1 = AppConfig.GetString("bind_trr", desktop ? BindMouseR : BindRT);
|
||||||
|
KeyL2 = AppConfig.GetString("bind2_trl");
|
||||||
|
KeyR2 = AppConfig.GetString("bind2_trr");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (KeyL1 == "" && KeyR1 == "") return;
|
||||||
|
|
||||||
|
byte[] bindings = new byte[50];
|
||||||
|
byte[] init = new byte[] { AsusHid.INPUT_ID, 0xd1, 0x02, (byte)zone, 0x2c };
|
||||||
|
|
||||||
|
init.CopyTo(bindings, 0);
|
||||||
|
|
||||||
|
DecodeBinding(KeyL1).CopyTo(bindings, 5);
|
||||||
|
DecodeBinding(KeyL2).CopyTo(bindings, 16);
|
||||||
|
|
||||||
|
DecodeBinding(KeyR1).CopyTo(bindings, 27);
|
||||||
|
DecodeBinding(KeyR2).CopyTo(bindings, 38);
|
||||||
|
|
||||||
|
//AsusHid.WriteInput(CommandReady, null);
|
||||||
|
AsusHid.WriteInput(bindings, $"B{zone}");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
static void WakeUp()
|
||||||
|
{
|
||||||
|
AsusHid.WriteInput(Encoding.ASCII.GetBytes("ZASUS Tech.Inc."), "Init");
|
||||||
|
}
|
||||||
|
|
||||||
|
static public void SetDeadzones()
|
||||||
|
{
|
||||||
|
AsusHid.WriteInput(new byte[] { AsusHid.INPUT_ID, 0xd1, 4, 4,
|
||||||
|
(byte)AppConfig.Get("ls_min", 0),
|
||||||
|
(byte)AppConfig.Get("ls_max", 100),
|
||||||
|
(byte)AppConfig.Get("rs_min", 0),
|
||||||
|
(byte)AppConfig.Get("rs_max", 100)
|
||||||
|
}, "StickDeadzone");
|
||||||
|
|
||||||
|
AsusHid.WriteInput(new byte[] { AsusHid.INPUT_ID, 0xd1, 5, 4,
|
||||||
|
(byte)AppConfig.Get("lt_min", 0),
|
||||||
|
(byte)AppConfig.Get("lt_max", 100),
|
||||||
|
(byte)AppConfig.Get("rt_min", 0),
|
||||||
|
(byte)AppConfig.Get("rt_max", 100)
|
||||||
|
}, "TriggerDeadzone");
|
||||||
|
|
||||||
|
AsusHid.WriteInput(new byte[] { AsusHid.INPUT_ID, 0xd1, 6, 2,
|
||||||
|
(byte)AppConfig.Get("vibra", 100),
|
||||||
|
(byte)AppConfig.Get("vibra", 100)
|
||||||
|
}, "Vibration");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void ApplyXBoxStatus()
|
||||||
|
{
|
||||||
|
AsusHid.WriteInput(new byte[] { AsusHid.INPUT_ID, 0xD1, 0x0B, 0x01, AppConfig.Is("controller_disabled") ? (byte)0x02 : (byte)0x01 }, "Status");
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void ApplyMode(ControllerMode applyMode = ControllerMode.Auto, bool init = false)
|
||||||
|
{
|
||||||
|
Task.Run(() =>
|
||||||
|
{
|
||||||
|
|
||||||
|
if (applyMode == ControllerMode.Skip) return;
|
||||||
|
|
||||||
|
HidStream? input = AsusHid.FindHidStream(AsusHid.INPUT_ID);
|
||||||
|
int count = 0;
|
||||||
|
|
||||||
|
while (input == null && count++ < 10)
|
||||||
|
{
|
||||||
|
input = AsusHid.FindHidStream(AsusHid.INPUT_ID);
|
||||||
|
Thread.Sleep(500);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (input == null)
|
||||||
|
{
|
||||||
|
Logger.WriteLine($"Controller not found");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (applyMode != ControllerMode.Auto) _applyMode = applyMode;
|
||||||
|
|
||||||
|
if (init)
|
||||||
|
{
|
||||||
|
WakeUp();
|
||||||
|
InputDispatcher.SetBacklightAuto(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
AsusHid.WriteInput(new byte[] { AsusHid.INPUT_ID, 0xD1, 0x01, 0x01, (byte)_applyMode }, "Controller");
|
||||||
|
//AsusHid.WriteInput(CommandSave, null);
|
||||||
|
|
||||||
|
BindZone(BindingZone.M1M2);
|
||||||
|
BindZone(BindingZone.DPadUpDown);
|
||||||
|
BindZone(BindingZone.DPadLeftRight);
|
||||||
|
BindZone(BindingZone.StickClick);
|
||||||
|
BindZone(BindingZone.Bumper);
|
||||||
|
BindZone(BindingZone.AB);
|
||||||
|
BindZone(BindingZone.XY);
|
||||||
|
BindZone(BindingZone.ViewMenu);
|
||||||
|
BindZone(BindingZone.Trigger);
|
||||||
|
|
||||||
|
AsusHid.WriteInput(CommandSave, null);
|
||||||
|
|
||||||
|
SetDeadzones();
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SetMode(ControllerMode mode, bool init = false)
|
||||||
|
{
|
||||||
|
|
||||||
|
_mode = mode;
|
||||||
|
AppConfig.Set("controller_mode", (int)mode);
|
||||||
|
|
||||||
|
ApplyMode(mode, init);
|
||||||
|
|
||||||
|
if (mode == ControllerMode.Auto)
|
||||||
|
{
|
||||||
|
amdControl.StartFPS();
|
||||||
|
timer.Start();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
timer.Stop();
|
||||||
|
amdControl.StopFPS();
|
||||||
|
}
|
||||||
|
|
||||||
|
settings.VisualiseController(mode);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void ToggleModeHotkey()
|
||||||
|
{
|
||||||
|
if (_applyMode == ControllerMode.Gamepad)
|
||||||
|
{
|
||||||
|
SetMode(ControllerMode.Mouse);
|
||||||
|
Program.toast.RunToast("Mouse", ToastIcon.Controller);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
SetMode(ControllerMode.Gamepad);
|
||||||
|
Program.toast.RunToast("Gamepad", ToastIcon.Controller);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ToggleMode()
|
||||||
|
{
|
||||||
|
switch (_mode)
|
||||||
|
{
|
||||||
|
case ControllerMode.Auto:
|
||||||
|
SetMode(ControllerMode.Gamepad);
|
||||||
|
break;
|
||||||
|
case ControllerMode.Gamepad:
|
||||||
|
SetMode(ControllerMode.Mouse);
|
||||||
|
break;
|
||||||
|
case ControllerMode.Mouse:
|
||||||
|
SetMode(ControllerMode.Skip);
|
||||||
|
break;
|
||||||
|
case ControllerMode.Skip:
|
||||||
|
SetMode(ControllerMode.Auto);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -4,13 +4,12 @@ using Starlight.AnimeMatrix;
|
|||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.Drawing.Drawing2D;
|
using System.Drawing.Drawing2D;
|
||||||
using System.Drawing.Imaging;
|
using System.Drawing.Imaging;
|
||||||
using System.IO;
|
|
||||||
using System.Timers;
|
using System.Timers;
|
||||||
|
|
||||||
namespace GHelper.AnimeMatrix
|
namespace GHelper.AnimeMatrix
|
||||||
{
|
{
|
||||||
|
|
||||||
public class AniMatrixControl
|
public class AniMatrixControl : NAudio.CoreAudioApi.Interfaces.IMMNotificationClient
|
||||||
{
|
{
|
||||||
|
|
||||||
SettingsForm settings;
|
SettingsForm settings;
|
||||||
@@ -20,6 +19,8 @@ namespace GHelper.AnimeMatrix
|
|||||||
|
|
||||||
double[]? AudioValues;
|
double[]? AudioValues;
|
||||||
WasapiCapture? AudioDevice;
|
WasapiCapture? AudioDevice;
|
||||||
|
string? AudioDeviceId;
|
||||||
|
private MMDeviceEnumerator? AudioDeviceEnum;
|
||||||
|
|
||||||
public bool IsValid => device != null;
|
public bool IsValid => device != null;
|
||||||
|
|
||||||
@@ -67,49 +68,51 @@ namespace GHelper.AnimeMatrix
|
|||||||
StopMatrixTimer();
|
StopMatrixTimer();
|
||||||
StopMatrixAudio();
|
StopMatrixAudio();
|
||||||
|
|
||||||
try
|
Task.Run(() =>
|
||||||
{
|
{
|
||||||
device.SetProvider();
|
try
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
Logger.WriteLine(ex.Message);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (wakeUp && AppConfig.ContainsModel("401")) device.WakeUp();
|
|
||||||
|
|
||||||
if (brightness == 0 || (auto && SystemInformation.PowerStatus.PowerLineStatus != PowerLineStatus.Online))
|
|
||||||
{
|
|
||||||
device.SetDisplayState(false);
|
|
||||||
device.SetDisplayState(false); // some devices are dumb
|
|
||||||
Logger.WriteLine("Matrix Off");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
device.SetDisplayState(true);
|
|
||||||
device.SetBrightness((BrightnessMode)brightness);
|
|
||||||
|
|
||||||
switch (running)
|
|
||||||
{
|
{
|
||||||
case 2:
|
device.SetProvider();
|
||||||
SetMatrixPicture(AppConfig.GetString("matrix_picture"));
|
}
|
||||||
break;
|
catch (Exception ex)
|
||||||
case 3:
|
{
|
||||||
SetMatrixClock();
|
Logger.WriteLine(ex.Message);
|
||||||
break;
|
return;
|
||||||
case 4:
|
|
||||||
SetMatrixAudio();
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
device.SetBuiltInAnimation(true, animation);
|
|
||||||
Logger.WriteLine("Matrix builtin " + animation.AsByte);
|
|
||||||
break;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//mat.SetBrightness((BrightnessMode)brightness);
|
if (wakeUp && AppConfig.ContainsModel("401")) device.WakeUp();
|
||||||
}
|
|
||||||
|
if (brightness == 0 || (auto && SystemInformation.PowerStatus.PowerLineStatus != PowerLineStatus.Online))
|
||||||
|
{
|
||||||
|
device.SetDisplayState(false);
|
||||||
|
device.SetDisplayState(false); // some devices are dumb
|
||||||
|
Logger.WriteLine("Matrix Off");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
device.SetDisplayState(true);
|
||||||
|
device.SetBrightness((BrightnessMode)brightness);
|
||||||
|
|
||||||
|
switch (running)
|
||||||
|
{
|
||||||
|
case 2:
|
||||||
|
SetMatrixPicture(AppConfig.GetString("matrix_picture"));
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
SetMatrixClock();
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
SetMatrixAudio();
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
device.SetBuiltInAnimation(true, animation);
|
||||||
|
Logger.WriteLine("Matrix builtin " + animation.AsByte);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
private void StartMatrixTimer(int interval = 100)
|
private void StartMatrixTimer(int interval = 100)
|
||||||
@@ -167,6 +170,9 @@ namespace GHelper.AnimeMatrix
|
|||||||
Logger.WriteLine(ex.ToString());
|
Logger.WriteLine(ex.ToString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
AudioDeviceId = null;
|
||||||
|
AudioDeviceEnum?.Dispose();
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetMatrixAudio()
|
void SetMatrixAudio()
|
||||||
@@ -179,10 +185,13 @@ namespace GHelper.AnimeMatrix
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
using (var enumerator = new MMDeviceEnumerator())
|
AudioDeviceEnum = new MMDeviceEnumerator();
|
||||||
using (MMDevice device = enumerator.GetDefaultAudioEndpoint(DataFlow.Render, Role.Console))
|
AudioDeviceEnum.RegisterEndpointNotificationCallback(this);
|
||||||
|
|
||||||
|
using (MMDevice device = AudioDeviceEnum.GetDefaultAudioEndpoint(DataFlow.Render, Role.Console))
|
||||||
{
|
{
|
||||||
AudioDevice = new WasapiLoopbackCapture(device);
|
AudioDevice = new WasapiLoopbackCapture(device);
|
||||||
|
AudioDeviceId = device.ID;
|
||||||
WaveFormat fmt = AudioDevice.WaveFormat;
|
WaveFormat fmt = AudioDevice.WaveFormat;
|
||||||
|
|
||||||
AudioValues = new double[fmt.SampleRate / 1000];
|
AudioValues = new double[fmt.SampleRate / 1000];
|
||||||
@@ -350,10 +359,10 @@ namespace GHelper.AnimeMatrix
|
|||||||
|
|
||||||
int matrixZoom = AppConfig.Get("matrix_zoom", 100);
|
int matrixZoom = AppConfig.Get("matrix_zoom", 100);
|
||||||
int matrixContrast = AppConfig.Get("matrix_contrast", 100);
|
int matrixContrast = AppConfig.Get("matrix_contrast", 100);
|
||||||
|
|
||||||
int matrixSpeed = AppConfig.Get("matrix_speed", 50);
|
int matrixSpeed = AppConfig.Get("matrix_speed", 50);
|
||||||
|
|
||||||
MatrixRotation rotation = (MatrixRotation)AppConfig.Get("matrix_rotation", 0);
|
MatrixRotation rotation = (MatrixRotation)AppConfig.Get("matrix_rotation", 0);
|
||||||
|
|
||||||
InterpolationMode matrixQuality = (InterpolationMode)AppConfig.Get("matrix_quality", 0);
|
InterpolationMode matrixQuality = (InterpolationMode)AppConfig.Get("matrix_quality", 0);
|
||||||
|
|
||||||
@@ -374,7 +383,7 @@ namespace GHelper.AnimeMatrix
|
|||||||
device.GenerateFrame(image, matrixZoom, matrixX, matrixY, matrixQuality, matrixContrast);
|
device.GenerateFrame(image, matrixZoom, matrixX, matrixY, matrixQuality, matrixContrast);
|
||||||
else
|
else
|
||||||
device.GenerateFrameDiagonal(image, matrixZoom, matrixX, matrixY, matrixQuality, matrixContrast);
|
device.GenerateFrameDiagonal(image, matrixZoom, matrixX, matrixY, matrixQuality, matrixContrast);
|
||||||
|
|
||||||
device.AddFrame();
|
device.AddFrame();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -397,6 +406,48 @@ namespace GHelper.AnimeMatrix
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void OnDeviceStateChanged(string deviceId, DeviceState newState)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OnDeviceAdded(string pwstrDeviceId)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OnDeviceRemoved(string deviceId)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OnDefaultDeviceChanged(DataFlow flow, Role role, string defaultDeviceId)
|
||||||
|
{
|
||||||
|
if (AudioDeviceId == defaultDeviceId)
|
||||||
|
{
|
||||||
|
//We already caputre this device. No need to re-initialize
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
int running = AppConfig.Get("matrix_running");
|
||||||
|
if (flow != DataFlow.Render || role != Role.Console || running != 4)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//Restart audio if default audio changed
|
||||||
|
Logger.WriteLine("Matrix Audio: Default Output changed to " + defaultDeviceId);
|
||||||
|
|
||||||
|
//Already set the device here. Otherwise this will be called multiple times in a short succession and causes a crash due to dispose during initalization.
|
||||||
|
AudioDeviceId = defaultDeviceId;
|
||||||
|
|
||||||
|
//Delay is required or it will deadlock on dispose.
|
||||||
|
Task.Delay(50).ContinueWith(t => SetMatrixAudio());
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OnPropertyValueChanged(string pwstrDeviceId, PropertyKey key)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,6 @@
|
|||||||
using GHelper.AnimeMatrix.Communication;
|
using GHelper.AnimeMatrix.Communication;
|
||||||
using System.Drawing.Drawing2D;
|
using System.Drawing.Drawing2D;
|
||||||
using System.Drawing.Text;
|
using System.Drawing.Text;
|
||||||
using System.Management;
|
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
|
||||||
namespace Starlight.AnimeMatrix
|
namespace Starlight.AnimeMatrix
|
||||||
@@ -107,9 +106,7 @@ namespace Starlight.AnimeMatrix
|
|||||||
|
|
||||||
public AnimeMatrixDevice() : base(0x0B05, 0x193B, 640)
|
public AnimeMatrixDevice() : base(0x0B05, 0x193B, 640)
|
||||||
{
|
{
|
||||||
string model = GetModel();
|
if (AppConfig.ContainsModel("401"))
|
||||||
|
|
||||||
if (model.Contains("401"))
|
|
||||||
{
|
{
|
||||||
_model = AnimeType.GA401;
|
_model = AnimeType.GA401;
|
||||||
|
|
||||||
@@ -124,7 +121,7 @@ namespace Starlight.AnimeMatrix
|
|||||||
LedStart = 1;
|
LedStart = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (model.Contains("GU604"))
|
if (AppConfig.ContainsModel("GU604"))
|
||||||
{
|
{
|
||||||
_model = AnimeType.GU604;
|
_model = AnimeType.GU604;
|
||||||
|
|
||||||
@@ -154,18 +151,6 @@ namespace Starlight.AnimeMatrix
|
|||||||
System.Runtime.InteropServices.Marshal.FreeCoTaskMem(fontPtr);
|
System.Runtime.InteropServices.Marshal.FreeCoTaskMem(fontPtr);
|
||||||
}
|
}
|
||||||
|
|
||||||
public string GetModel()
|
|
||||||
{
|
|
||||||
using (var searcher = new ManagementObjectSearcher(@"Select * from Win32_ComputerSystem"))
|
|
||||||
{
|
|
||||||
foreach (var process in searcher.Get())
|
|
||||||
return process["Model"].ToString();
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public byte[] GetBuffer()
|
public byte[] GetBuffer()
|
||||||
{
|
{
|
||||||
return _displayBuffer;
|
return _displayBuffer;
|
||||||
@@ -293,7 +278,7 @@ namespace Starlight.AnimeMatrix
|
|||||||
|
|
||||||
if (x >= FirstX(y) && x < Width())
|
if (x >= FirstX(y) && x < Width())
|
||||||
SetLedLinear(RowToLinearAddress(y) - FirstX(y) + x, value);
|
SetLedLinear(RowToLinearAddress(y) - FirstX(y) + x, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetLedDiagonal(int x, int y, byte color, int deltaX = 0, int deltaY = 0)
|
public void SetLedDiagonal(int x, int y, byte color, int deltaX = 0, int deltaY = 0)
|
||||||
{
|
{
|
||||||
@@ -302,6 +287,9 @@ namespace Starlight.AnimeMatrix
|
|||||||
|
|
||||||
int plX = (x - y) / 2;
|
int plX = (x - y) / 2;
|
||||||
int plY = x + y;
|
int plY = x + y;
|
||||||
|
|
||||||
|
if (x - y == -1) plX = -1;
|
||||||
|
|
||||||
SetLedPlanar(plX, plY, color);
|
SetLedPlanar(plX, plY, color);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -408,7 +396,7 @@ namespace Starlight.AnimeMatrix
|
|||||||
var pixel = bmp.GetPixel(x, y);
|
var pixel = bmp.GetPixel(x, y);
|
||||||
var color = Math.Min((pixel.R + pixel.G + pixel.B) * contrast / 300, 255);
|
var color = Math.Min((pixel.R + pixel.G + pixel.B) * contrast / 300, 255);
|
||||||
if (color > 20)
|
if (color > 20)
|
||||||
SetLedDiagonal(x, y, (byte)color, deltaX + (FullRows / 2) + 1, deltaY - (FullRows / 2) - 1);
|
SetLedDiagonal(x, y, (byte)color, deltaX, deltaY - (FullRows / 2) - 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -431,7 +419,7 @@ namespace Starlight.AnimeMatrix
|
|||||||
public void Text(string text, float fontSize = 10, int x = 0, int y = 0)
|
public void Text(string text, float fontSize = 10, int x = 0, int y = 0)
|
||||||
{
|
{
|
||||||
|
|
||||||
int width = MaxRows - FullRows;
|
int width = MaxRows;
|
||||||
int height = MaxRows - FullRows;
|
int height = MaxRows - FullRows;
|
||||||
int textHeight, textWidth;
|
int textHeight, textWidth;
|
||||||
|
|
||||||
@@ -452,7 +440,7 @@ namespace Starlight.AnimeMatrix
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
SetBitmapDiagonal(bmp, (width - textWidth), height);
|
SetBitmapDiagonal(bmp, 5, height);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -501,8 +489,11 @@ namespace Starlight.AnimeMatrix
|
|||||||
|
|
||||||
public void GenerateFrameDiagonal(Image image, float zoom = 100, int panX = 0, int panY = 0, InterpolationMode quality = InterpolationMode.Default, int contrast = 100)
|
public void GenerateFrameDiagonal(Image image, float zoom = 100, int panX = 0, int panY = 0, InterpolationMode quality = InterpolationMode.Default, int contrast = 100)
|
||||||
{
|
{
|
||||||
int width = MaxRows - FullRows;
|
int width = MaxRows + FullRows;
|
||||||
int height = MaxRows - FullRows*2;
|
int height = MaxColumns + FullRows;
|
||||||
|
|
||||||
|
if ((image.Height / image.Width) > (height / width)) height = MaxColumns;
|
||||||
|
|
||||||
float scale;
|
float scale;
|
||||||
|
|
||||||
using (Bitmap bmp = new Bitmap(width, height))
|
using (Bitmap bmp = new Bitmap(width, height))
|
||||||
@@ -518,7 +509,7 @@ namespace Starlight.AnimeMatrix
|
|||||||
graph.CompositingQuality = CompositingQuality.HighQuality;
|
graph.CompositingQuality = CompositingQuality.HighQuality;
|
||||||
graph.SmoothingMode = SmoothingMode.AntiAlias;
|
graph.SmoothingMode = SmoothingMode.AntiAlias;
|
||||||
|
|
||||||
graph.DrawImage(image, width - scaleWidth, height - scaleHeight, scaleWidth, scaleHeight);
|
graph.DrawImage(image, (width - scaleWidth) / 2, height - scaleHeight, scaleWidth, scaleHeight);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -379,12 +379,12 @@ public static class AppConfig
|
|||||||
|
|
||||||
public static bool IsStrix()
|
public static bool IsStrix()
|
||||||
{
|
{
|
||||||
return ContainsModel("Strix") || ContainsModel("Scar");
|
return ContainsModel("Strix") || ContainsModel("Scar") || ContainsModel("G703G");
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool IsStrixLimitedRGB()
|
public static bool IsStrixLimitedRGB()
|
||||||
{
|
{
|
||||||
return ContainsModel("G614JV") || ContainsModel("G614JZ") || ContainsModel("G512LI") || ContainsModel("G513R") || ContainsModel("G713PV") || ContainsModel("G513IE") || ContainsModel("G713RC") || ContainsModel("G513QM");
|
return (ContainsModel("G614JV") || ContainsModel("G614JZ") || ContainsModel("G512LI") || ContainsModel("G513R") || ContainsModel("G713PV") || ContainsModel("G513IE") || ContainsModel("G713RC") || ContainsModel("G513QM") || ContainsModel("G531G")) && !Is("per_key_rgb");
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool IsNoDirectRGB()
|
public static bool IsNoDirectRGB()
|
||||||
@@ -412,6 +412,11 @@ public static class AppConfig
|
|||||||
return ContainsModel("X13");
|
return ContainsModel("X13");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static bool IsG14AMD()
|
||||||
|
{
|
||||||
|
return ContainsModel("GA402R");
|
||||||
|
}
|
||||||
|
|
||||||
public static bool DynamicBoost5()
|
public static bool DynamicBoost5()
|
||||||
{
|
{
|
||||||
return ContainsModel("GZ301ZE");
|
return ContainsModel("GZ301ZE");
|
||||||
@@ -490,6 +495,16 @@ public static class AppConfig
|
|||||||
return ContainsModel("FA507");
|
return ContainsModel("FA507");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static bool IsIntelHX()
|
||||||
|
{
|
||||||
|
return ContainsModel("G814") || ContainsModel("G614") || ContainsModel("G834") || ContainsModel("G634");
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool IsNewAura()
|
||||||
|
{
|
||||||
|
return ContainsModel("G834") || ContainsModel("G614") || ContainsModel("G834") || ContainsModel("G634");
|
||||||
|
}
|
||||||
|
|
||||||
public static bool IsASUS()
|
public static bool IsASUS()
|
||||||
{
|
{
|
||||||
return ContainsModel("ROG") || ContainsModel("TUF") || ContainsModel("Vivobook") || ContainsModel("Zenbook");
|
return ContainsModel("ROG") || ContainsModel("TUF") || ContainsModel("Vivobook") || ContainsModel("Zenbook");
|
||||||
|
|||||||
@@ -58,6 +58,8 @@ public class AsusACPI
|
|||||||
public const uint GPU_Fan = 0x00110014;
|
public const uint GPU_Fan = 0x00110014;
|
||||||
public const uint Mid_Fan = 0x00110031;
|
public const uint Mid_Fan = 0x00110031;
|
||||||
|
|
||||||
|
public const uint BatteryDischarge = 0x0012005A;
|
||||||
|
|
||||||
public const uint PerformanceMode = 0x00120075; // Performance modes
|
public const uint PerformanceMode = 0x00120075; // Performance modes
|
||||||
public const uint VivoBookMode = 0x00110019; // Vivobook performance modes
|
public const uint VivoBookMode = 0x00110019; // Vivobook performance modes
|
||||||
|
|
||||||
@@ -70,8 +72,10 @@ public class AsusACPI
|
|||||||
public const uint GPUMuxVivo = 0x00090026;
|
public const uint GPUMuxVivo = 0x00090026;
|
||||||
|
|
||||||
public const uint BatteryLimit = 0x00120057;
|
public const uint BatteryLimit = 0x00120057;
|
||||||
|
|
||||||
public const uint ScreenOverdrive = 0x00050019;
|
public const uint ScreenOverdrive = 0x00050019;
|
||||||
public const uint ScreenMiniled = 0x0005001E;
|
public const uint ScreenMiniled1 = 0x0005001E;
|
||||||
|
public const uint ScreenMiniled2 = 0x0005002E;
|
||||||
|
|
||||||
public const uint DevsCPUFan = 0x00110022;
|
public const uint DevsCPUFan = 0x00110022;
|
||||||
public const uint DevsGPUFan = 0x00110023;
|
public const uint DevsGPUFan = 0x00110023;
|
||||||
@@ -129,7 +133,7 @@ public class AsusACPI
|
|||||||
public const int MinTotal = 5;
|
public const int MinTotal = 5;
|
||||||
|
|
||||||
public static int MaxTotal = 150;
|
public static int MaxTotal = 150;
|
||||||
public static int DefaultTotal = 125;
|
public static int DefaultTotal = 80;
|
||||||
|
|
||||||
public const int MinCPU = 5;
|
public const int MinCPU = 5;
|
||||||
public const int MaxCPU = 100;
|
public const int MaxCPU = 100;
|
||||||
@@ -247,6 +251,11 @@ public class AsusACPI
|
|||||||
MaxTotal = 250;
|
MaxTotal = 250;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (AppConfig.IsG14AMD())
|
||||||
|
{
|
||||||
|
DefaultTotal = 125;
|
||||||
|
}
|
||||||
|
|
||||||
if (AppConfig.IsX13())
|
if (AppConfig.IsX13())
|
||||||
{
|
{
|
||||||
MaxTotal = 75;
|
MaxTotal = 75;
|
||||||
@@ -259,6 +268,11 @@ public class AsusACPI
|
|||||||
DefaultTotal = 30;
|
DefaultTotal = 30;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (AppConfig.IsIntelHX())
|
||||||
|
{
|
||||||
|
MaxTotal = 175;
|
||||||
|
}
|
||||||
|
|
||||||
if (AppConfig.DynamicBoost5())
|
if (AppConfig.DynamicBoost5())
|
||||||
{
|
{
|
||||||
MaxGPUBoost = 5;
|
MaxGPUBoost = 5;
|
||||||
@@ -367,6 +381,23 @@ public class AsusACPI
|
|||||||
return CallMethod(DSTS, args);
|
return CallMethod(DSTS, args);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public decimal? GetBatteryDischarge()
|
||||||
|
{
|
||||||
|
var buffer = DeviceGetBuffer(BatteryDischarge);
|
||||||
|
|
||||||
|
if (buffer[2] > 0)
|
||||||
|
{
|
||||||
|
buffer[2] = 0;
|
||||||
|
return (decimal)BitConverter.ToInt16(buffer, 0) / 100;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
public int SetGPUEco(int eco)
|
public int SetGPUEco(int eco)
|
||||||
{
|
{
|
||||||
int ecoFlag = DeviceGet(GPUEco);
|
int ecoFlag = DeviceGet(GPUEco);
|
||||||
@@ -407,6 +438,7 @@ public class AsusACPI
|
|||||||
return fan;
|
return fan;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public int SetFanRange(AsusFan device, byte[] curve)
|
public int SetFanRange(AsusFan device, byte[] curve)
|
||||||
{
|
{
|
||||||
|
|
||||||
@@ -508,7 +540,7 @@ public class AsusACPI
|
|||||||
|
|
||||||
for (int i = 0; i < 8; i++)
|
for (int i = 0; i < 8; i++)
|
||||||
{
|
{
|
||||||
if (curve[i] == old) curve[i]++; // preventing 2 points in same spot from default asus profiles
|
if (curve[i] <= old) curve[i] = (byte)Math.Min(100, old + 6); // preventing 2 points in same spot from default asus profiles
|
||||||
points[curve[i]] = curve[i + 8];
|
points[curve[i]] = curve[i + 8];
|
||||||
old = curve[i];
|
old = curve[i];
|
||||||
}
|
}
|
||||||
@@ -544,7 +576,6 @@ public class AsusACPI
|
|||||||
|
|
||||||
public bool IsXGConnected()
|
public bool IsXGConnected()
|
||||||
{
|
{
|
||||||
//return true;
|
|
||||||
return DeviceGet(GPUXGConnected) == 1;
|
return DeviceGet(GPUXGConnected) == 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
using System.Diagnostics;
|
using GHelper.Helpers;
|
||||||
|
using System.Diagnostics;
|
||||||
using System.Net;
|
using System.Net;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
using System.Text.Json;
|
using System.Text.Json;
|
||||||
@@ -119,7 +120,7 @@ namespace GHelper.AutoUpdate
|
|||||||
Logger.WriteLine(zipName);
|
Logger.WriteLine(zipName);
|
||||||
Logger.WriteLine(exeName);
|
Logger.WriteLine(exeName);
|
||||||
|
|
||||||
string command = $"Start-Sleep -Seconds 1; $ErrorActionPreference = \"Stop\"; Expand-Archive \"{zipName}\" -DestinationPath . -Force; Remove-Item \"{zipName}\" -Force; \".\\{exeName}\"; ";
|
string command = $"$ErrorActionPreference = \"Stop\"; Wait-Process -Name \"GHelper\"; Expand-Archive \"{zipName}\" -DestinationPath . -Force; Remove-Item \"{zipName}\" -Force; \".\\{exeName}\"; ";
|
||||||
Logger.WriteLine(command);
|
Logger.WriteLine(command);
|
||||||
|
|
||||||
try
|
try
|
||||||
@@ -130,6 +131,7 @@ namespace GHelper.AutoUpdate
|
|||||||
cmd.StartInfo.CreateNoWindow = true;
|
cmd.StartInfo.CreateNoWindow = true;
|
||||||
cmd.StartInfo.FileName = "powershell";
|
cmd.StartInfo.FileName = "powershell";
|
||||||
cmd.StartInfo.Arguments = command;
|
cmd.StartInfo.Arguments = command;
|
||||||
|
if (ProcessHelper.IsUserAdministrator()) cmd.StartInfo.Verb = "runas";
|
||||||
cmd.Start();
|
cmd.Start();
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
@@ -137,7 +139,7 @@ namespace GHelper.AutoUpdate
|
|||||||
Logger.WriteLine(ex.Message);
|
Logger.WriteLine(ex.Message);
|
||||||
}
|
}
|
||||||
|
|
||||||
Application.Exit();
|
Environment.Exit(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,7 +19,7 @@
|
|||||||
public static void UnSetBatteryLimitFull()
|
public static void UnSetBatteryLimitFull()
|
||||||
{
|
{
|
||||||
AppConfig.Set("charge_full", 0);
|
AppConfig.Set("charge_full", 0);
|
||||||
Program.settingsForm.VisualiseBatteryFull();
|
Program.settingsForm.Invoke(Program.settingsForm.VisualiseBatteryFull);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void AutoBattery(bool init = false)
|
public static void AutoBattery(bool init = false)
|
||||||
|
|||||||
@@ -49,8 +49,10 @@ namespace GHelper.Display
|
|||||||
|
|
||||||
if (miniled >= 0)
|
if (miniled >= 0)
|
||||||
{
|
{
|
||||||
Program.acpi.DeviceSet(AsusACPI.ScreenMiniled, miniled, "Miniled");
|
if (Program.acpi.DeviceGet(AsusACPI.ScreenMiniled1) >= 0)
|
||||||
Debug.WriteLine("Miniled " + miniled);
|
Program.acpi.DeviceSet(AsusACPI.ScreenMiniled1, miniled, "Miniled1");
|
||||||
|
else
|
||||||
|
Program.acpi.DeviceSet(AsusACPI.ScreenMiniled2, miniled, "Miniled2");
|
||||||
}
|
}
|
||||||
|
|
||||||
InitScreen();
|
InitScreen();
|
||||||
@@ -59,7 +61,26 @@ namespace GHelper.Display
|
|||||||
|
|
||||||
public int ToogleMiniled()
|
public int ToogleMiniled()
|
||||||
{
|
{
|
||||||
int miniled = (Program.acpi.DeviceGet(AsusACPI.ScreenMiniled) == 1) ? 0 : 1;
|
int miniled1 = Program.acpi.DeviceGet(AsusACPI.ScreenMiniled1);
|
||||||
|
int miniled2 = Program.acpi.DeviceGet(AsusACPI.ScreenMiniled2);
|
||||||
|
|
||||||
|
Logger.WriteLine($"MiniledToggle: {miniled1} {miniled2}");
|
||||||
|
|
||||||
|
int miniled;
|
||||||
|
|
||||||
|
if (miniled1 >= 0)
|
||||||
|
{
|
||||||
|
miniled = (miniled1 == 1) ? 0 : 1;
|
||||||
|
} else
|
||||||
|
{
|
||||||
|
switch (miniled2)
|
||||||
|
{
|
||||||
|
case 1: miniled = 2; break;
|
||||||
|
case 2: miniled = 0; break;
|
||||||
|
default: miniled = 1; break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
AppConfig.Set("miniled", miniled);
|
AppConfig.Set("miniled", miniled);
|
||||||
SetScreen(-1, -1, miniled);
|
SetScreen(-1, -1, miniled);
|
||||||
return miniled;
|
return miniled;
|
||||||
@@ -76,12 +97,16 @@ namespace GHelper.Display
|
|||||||
bool overdriveSetting = !AppConfig.Is("no_overdrive");
|
bool overdriveSetting = !AppConfig.Is("no_overdrive");
|
||||||
|
|
||||||
int overdrive = Program.acpi.DeviceGet(AsusACPI.ScreenOverdrive);
|
int overdrive = Program.acpi.DeviceGet(AsusACPI.ScreenOverdrive);
|
||||||
int miniled = Program.acpi.DeviceGet(AsusACPI.ScreenMiniled);
|
|
||||||
|
|
||||||
|
int miniled1 = Program.acpi.DeviceGet(AsusACPI.ScreenMiniled1);
|
||||||
|
int miniled2 = Program.acpi.DeviceGet(AsusACPI.ScreenMiniled2);
|
||||||
|
|
||||||
|
int miniled = (miniled1 >= 0) ? miniled1 : miniled2;
|
||||||
bool hdr = false;
|
bool hdr = false;
|
||||||
|
|
||||||
if (miniled >= 0)
|
if (miniled >= 0)
|
||||||
{
|
{
|
||||||
|
Logger.WriteLine($"Miniled: {miniled1} {miniled2}");
|
||||||
AppConfig.Set("miniled", miniled);
|
AppConfig.Set("miniled", miniled);
|
||||||
hdr = ScreenCCD.GetHDRStatus();
|
hdr = ScreenCCD.GetHDRStatus();
|
||||||
}
|
}
|
||||||
@@ -100,7 +125,8 @@ namespace GHelper.Display
|
|||||||
maxFrequency: maxFrequency,
|
maxFrequency: maxFrequency,
|
||||||
overdrive: overdrive,
|
overdrive: overdrive,
|
||||||
overdriveSetting: overdriveSetting,
|
overdriveSetting: overdriveSetting,
|
||||||
miniled: miniled,
|
miniled1: miniled1,
|
||||||
|
miniled2: miniled2,
|
||||||
hdr: hdr
|
hdr: hdr
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|||||||
31
app/Extra.cs
@@ -13,7 +13,6 @@ namespace GHelper
|
|||||||
{
|
{
|
||||||
|
|
||||||
ScreenControl screenControl = new ScreenControl();
|
ScreenControl screenControl = new ScreenControl();
|
||||||
ModeControl modeControl = new ModeControl();
|
|
||||||
ClamshellModeControl clamshellControl = new ClamshellModeControl();
|
ClamshellModeControl clamshellControl = new ClamshellModeControl();
|
||||||
|
|
||||||
const string EMPTY = "--------------";
|
const string EMPTY = "--------------";
|
||||||
@@ -45,6 +44,11 @@ namespace GHelper
|
|||||||
customActions.Add("screenpad_up", Properties.Strings.ScreenPadUp);
|
customActions.Add("screenpad_up", Properties.Strings.ScreenPadUp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (AppConfig.IsAlly())
|
||||||
|
{
|
||||||
|
customActions.Add("controller", "Controller Mode");
|
||||||
|
}
|
||||||
|
|
||||||
switch (name)
|
switch (name)
|
||||||
{
|
{
|
||||||
case "m1":
|
case "m1":
|
||||||
@@ -226,6 +230,10 @@ namespace GHelper
|
|||||||
SetKeyCombo(comboM4, textM4, "m4");
|
SetKeyCombo(comboM4, textM4, "m4");
|
||||||
SetKeyCombo(comboFNF4, textFNF4, "paddle");
|
SetKeyCombo(comboFNF4, textFNF4, "paddle");
|
||||||
|
|
||||||
|
checkGpuApps.Visible = false;
|
||||||
|
checkUSBC.Visible = false;
|
||||||
|
checkAutoToggleClamshellMode.Visible = false;
|
||||||
|
checkNoOverdrive.Visible = false;
|
||||||
|
|
||||||
int apuMem = Program.acpi.GetAPUMem();
|
int apuMem = Program.acpi.GetAPUMem();
|
||||||
if (apuMem >= 0)
|
if (apuMem >= 0)
|
||||||
@@ -311,18 +319,18 @@ namespace GHelper
|
|||||||
checkSleepLogo.CheckedChanged += CheckPower_CheckedChanged;
|
checkSleepLogo.CheckedChanged += CheckPower_CheckedChanged;
|
||||||
checkShutdownLogo.CheckedChanged += CheckPower_CheckedChanged;
|
checkShutdownLogo.CheckedChanged += CheckPower_CheckedChanged;
|
||||||
|
|
||||||
if (!AppConfig.IsStrix())
|
|
||||||
{
|
|
||||||
labelBacklightBar.Visible = false;
|
|
||||||
checkAwakeBar.Visible = false;
|
|
||||||
checkBootBar.Visible = false;
|
|
||||||
checkSleepBar.Visible = false;
|
|
||||||
checkShutdownBar.Visible = false;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((!AppConfig.IsStrix() && !AppConfig.IsZ13()) || AppConfig.IsStrixLimitedRGB() || AppConfig.IsARCNM())
|
if ((!AppConfig.IsStrix() && !AppConfig.IsZ13()) || AppConfig.IsStrixLimitedRGB() || AppConfig.IsARCNM())
|
||||||
{
|
{
|
||||||
|
|
||||||
|
if (!AppConfig.IsStrixLimitedRGB())
|
||||||
|
{
|
||||||
|
labelBacklightBar.Visible = false;
|
||||||
|
checkAwakeBar.Visible = false;
|
||||||
|
checkBootBar.Visible = false;
|
||||||
|
checkSleepBar.Visible = false;
|
||||||
|
checkShutdownBar.Visible = false;
|
||||||
|
}
|
||||||
|
|
||||||
labelBacklightLid.Visible = false;
|
labelBacklightLid.Visible = false;
|
||||||
checkAwakeLid.Visible = false;
|
checkAwakeLid.Visible = false;
|
||||||
checkBootLid.Visible = false;
|
checkBootLid.Visible = false;
|
||||||
@@ -334,7 +342,6 @@ namespace GHelper
|
|||||||
checkBootLogo.Visible = false;
|
checkBootLogo.Visible = false;
|
||||||
checkSleepLogo.Visible = false;
|
checkSleepLogo.Visible = false;
|
||||||
checkShutdownLogo.Visible = false;
|
checkShutdownLogo.Visible = false;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!AppConfig.IsStrix() && !AppConfig.IsZ13())
|
if (!AppConfig.IsStrix() && !AppConfig.IsZ13())
|
||||||
|
|||||||
106
app/Fans.Designer.cs
generated
@@ -31,14 +31,14 @@ namespace GHelper
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
private void InitializeComponent()
|
private void InitializeComponent()
|
||||||
{
|
{
|
||||||
ChartArea chartArea5 = new ChartArea();
|
ChartArea chartArea1 = new ChartArea();
|
||||||
Title title5 = new Title();
|
Title title1 = new Title();
|
||||||
ChartArea chartArea6 = new ChartArea();
|
ChartArea chartArea2 = new ChartArea();
|
||||||
Title title6 = new Title();
|
Title title2 = new Title();
|
||||||
ChartArea chartArea7 = new ChartArea();
|
ChartArea chartArea3 = new ChartArea();
|
||||||
Title title7 = new Title();
|
Title title3 = new Title();
|
||||||
ChartArea chartArea8 = new ChartArea();
|
ChartArea chartArea4 = new ChartArea();
|
||||||
Title title8 = new Title();
|
Title title4 = new Title();
|
||||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Fans));
|
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Fans));
|
||||||
panelFans = new Panel();
|
panelFans = new Panel();
|
||||||
labelTip = new Label();
|
labelTip = new Label();
|
||||||
@@ -85,6 +85,8 @@ namespace GHelper
|
|||||||
panelTitleTemp = new Panel();
|
panelTitleTemp = new Panel();
|
||||||
pictureTemp = new PictureBox();
|
pictureTemp = new PictureBox();
|
||||||
labelTempLimit = new Label();
|
labelTempLimit = new Label();
|
||||||
|
panelDownload = new Panel();
|
||||||
|
buttonDownload = new RButton();
|
||||||
panelPower = new Panel();
|
panelPower = new Panel();
|
||||||
panelApplyPower = new Panel();
|
panelApplyPower = new Panel();
|
||||||
checkApplyPower = new RCheckBox();
|
checkApplyPower = new RCheckBox();
|
||||||
@@ -168,6 +170,7 @@ namespace GHelper
|
|||||||
((System.ComponentModel.ISupportInitialize)trackTemp).BeginInit();
|
((System.ComponentModel.ISupportInitialize)trackTemp).BeginInit();
|
||||||
panelTitleTemp.SuspendLayout();
|
panelTitleTemp.SuspendLayout();
|
||||||
((System.ComponentModel.ISupportInitialize)pictureTemp).BeginInit();
|
((System.ComponentModel.ISupportInitialize)pictureTemp).BeginInit();
|
||||||
|
panelDownload.SuspendLayout();
|
||||||
panelPower.SuspendLayout();
|
panelPower.SuspendLayout();
|
||||||
panelApplyPower.SuspendLayout();
|
panelApplyPower.SuspendLayout();
|
||||||
panelCPU.SuspendLayout();
|
panelCPU.SuspendLayout();
|
||||||
@@ -257,8 +260,8 @@ namespace GHelper
|
|||||||
//
|
//
|
||||||
// chartGPU
|
// chartGPU
|
||||||
//
|
//
|
||||||
chartArea5.Name = "ChartArea1";
|
chartArea1.Name = "ChartArea1";
|
||||||
chartGPU.ChartAreas.Add(chartArea5);
|
chartGPU.ChartAreas.Add(chartArea1);
|
||||||
chartGPU.Dock = DockStyle.Fill;
|
chartGPU.Dock = DockStyle.Fill;
|
||||||
chartGPU.Location = new Point(12, 493);
|
chartGPU.Location = new Point(12, 493);
|
||||||
chartGPU.Margin = new Padding(2, 10, 2, 10);
|
chartGPU.Margin = new Padding(2, 10, 2, 10);
|
||||||
@@ -266,13 +269,13 @@ namespace GHelper
|
|||||||
chartGPU.Size = new Size(782, 463);
|
chartGPU.Size = new Size(782, 463);
|
||||||
chartGPU.TabIndex = 17;
|
chartGPU.TabIndex = 17;
|
||||||
chartGPU.Text = "chartGPU";
|
chartGPU.Text = "chartGPU";
|
||||||
title5.Name = "Title1";
|
title1.Name = "Title1";
|
||||||
chartGPU.Titles.Add(title5);
|
chartGPU.Titles.Add(title1);
|
||||||
//
|
//
|
||||||
// chartCPU
|
// chartCPU
|
||||||
//
|
//
|
||||||
chartArea6.Name = "ChartArea1";
|
chartArea2.Name = "ChartArea1";
|
||||||
chartCPU.ChartAreas.Add(chartArea6);
|
chartCPU.ChartAreas.Add(chartArea2);
|
||||||
chartCPU.Dock = DockStyle.Fill;
|
chartCPU.Dock = DockStyle.Fill;
|
||||||
chartCPU.Location = new Point(12, 10);
|
chartCPU.Location = new Point(12, 10);
|
||||||
chartCPU.Margin = new Padding(2, 10, 2, 10);
|
chartCPU.Margin = new Padding(2, 10, 2, 10);
|
||||||
@@ -280,13 +283,13 @@ namespace GHelper
|
|||||||
chartCPU.Size = new Size(782, 463);
|
chartCPU.Size = new Size(782, 463);
|
||||||
chartCPU.TabIndex = 14;
|
chartCPU.TabIndex = 14;
|
||||||
chartCPU.Text = "chartCPU";
|
chartCPU.Text = "chartCPU";
|
||||||
title6.Name = "Title1";
|
title2.Name = "Title1";
|
||||||
chartCPU.Titles.Add(title6);
|
chartCPU.Titles.Add(title2);
|
||||||
//
|
//
|
||||||
// chartXGM
|
// chartXGM
|
||||||
//
|
//
|
||||||
chartArea7.Name = "ChartAreaXGM";
|
chartArea3.Name = "ChartAreaXGM";
|
||||||
chartXGM.ChartAreas.Add(chartArea7);
|
chartXGM.ChartAreas.Add(chartArea3);
|
||||||
chartXGM.Dock = DockStyle.Fill;
|
chartXGM.Dock = DockStyle.Fill;
|
||||||
chartXGM.Location = new Point(12, 1459);
|
chartXGM.Location = new Point(12, 1459);
|
||||||
chartXGM.Margin = new Padding(2, 10, 2, 10);
|
chartXGM.Margin = new Padding(2, 10, 2, 10);
|
||||||
@@ -294,14 +297,14 @@ namespace GHelper
|
|||||||
chartXGM.Size = new Size(782, 463);
|
chartXGM.Size = new Size(782, 463);
|
||||||
chartXGM.TabIndex = 14;
|
chartXGM.TabIndex = 14;
|
||||||
chartXGM.Text = "chartXGM";
|
chartXGM.Text = "chartXGM";
|
||||||
title7.Name = "Title4";
|
title3.Name = "Title4";
|
||||||
chartXGM.Titles.Add(title7);
|
chartXGM.Titles.Add(title3);
|
||||||
chartXGM.Visible = false;
|
chartXGM.Visible = false;
|
||||||
//
|
//
|
||||||
// chartMid
|
// chartMid
|
||||||
//
|
//
|
||||||
chartArea8.Name = "ChartArea3";
|
chartArea4.Name = "ChartArea3";
|
||||||
chartMid.ChartAreas.Add(chartArea8);
|
chartMid.ChartAreas.Add(chartArea4);
|
||||||
chartMid.Dock = DockStyle.Fill;
|
chartMid.Dock = DockStyle.Fill;
|
||||||
chartMid.Location = new Point(12, 976);
|
chartMid.Location = new Point(12, 976);
|
||||||
chartMid.Margin = new Padding(2, 10, 2, 10);
|
chartMid.Margin = new Padding(2, 10, 2, 10);
|
||||||
@@ -309,8 +312,8 @@ namespace GHelper
|
|||||||
chartMid.Size = new Size(782, 463);
|
chartMid.Size = new Size(782, 463);
|
||||||
chartMid.TabIndex = 14;
|
chartMid.TabIndex = 14;
|
||||||
chartMid.Text = "chartMid";
|
chartMid.Text = "chartMid";
|
||||||
title8.Name = "Title3";
|
title4.Name = "Title3";
|
||||||
chartMid.Titles.Add(title8);
|
chartMid.Titles.Add(title4);
|
||||||
chartMid.Visible = false;
|
chartMid.Visible = false;
|
||||||
//
|
//
|
||||||
// panelTitleFans
|
// panelTitleFans
|
||||||
@@ -528,10 +531,11 @@ namespace GHelper
|
|||||||
panelAdvanced.Controls.Add(panelTitleAdvanced);
|
panelAdvanced.Controls.Add(panelTitleAdvanced);
|
||||||
panelAdvanced.Controls.Add(panelTemperature);
|
panelAdvanced.Controls.Add(panelTemperature);
|
||||||
panelAdvanced.Controls.Add(panelTitleTemp);
|
panelAdvanced.Controls.Add(panelTitleTemp);
|
||||||
|
panelAdvanced.Controls.Add(panelDownload);
|
||||||
panelAdvanced.Dock = DockStyle.Top;
|
panelAdvanced.Dock = DockStyle.Top;
|
||||||
panelAdvanced.Location = new Point(10, 1644);
|
panelAdvanced.Location = new Point(10, 1644);
|
||||||
panelAdvanced.Name = "panelAdvanced";
|
panelAdvanced.Name = "panelAdvanced";
|
||||||
panelAdvanced.Size = new Size(520, 888);
|
panelAdvanced.Size = new Size(520, 992);
|
||||||
panelAdvanced.TabIndex = 14;
|
panelAdvanced.TabIndex = 14;
|
||||||
panelAdvanced.Visible = false;
|
panelAdvanced.Visible = false;
|
||||||
//
|
//
|
||||||
@@ -540,7 +544,7 @@ namespace GHelper
|
|||||||
panelAdvancedAlways.AutoSize = true;
|
panelAdvancedAlways.AutoSize = true;
|
||||||
panelAdvancedAlways.Controls.Add(checkApplyUV);
|
panelAdvancedAlways.Controls.Add(checkApplyUV);
|
||||||
panelAdvancedAlways.Dock = DockStyle.Top;
|
panelAdvancedAlways.Dock = DockStyle.Top;
|
||||||
panelAdvancedAlways.Location = new Point(0, 827);
|
panelAdvancedAlways.Location = new Point(0, 931);
|
||||||
panelAdvancedAlways.Name = "panelAdvancedAlways";
|
panelAdvancedAlways.Name = "panelAdvancedAlways";
|
||||||
panelAdvancedAlways.Padding = new Padding(16, 0, 16, 15);
|
panelAdvancedAlways.Padding = new Padding(16, 0, 16, 15);
|
||||||
panelAdvancedAlways.Size = new Size(520, 61);
|
panelAdvancedAlways.Size = new Size(520, 61);
|
||||||
@@ -566,7 +570,7 @@ namespace GHelper
|
|||||||
panelAdvancedApply.AutoSize = true;
|
panelAdvancedApply.AutoSize = true;
|
||||||
panelAdvancedApply.Controls.Add(buttonApplyAdvanced);
|
panelAdvancedApply.Controls.Add(buttonApplyAdvanced);
|
||||||
panelAdvancedApply.Dock = DockStyle.Top;
|
panelAdvancedApply.Dock = DockStyle.Top;
|
||||||
panelAdvancedApply.Location = new Point(0, 747);
|
panelAdvancedApply.Location = new Point(0, 851);
|
||||||
panelAdvancedApply.Name = "panelAdvancedApply";
|
panelAdvancedApply.Name = "panelAdvancedApply";
|
||||||
panelAdvancedApply.Padding = new Padding(15);
|
panelAdvancedApply.Padding = new Padding(15);
|
||||||
panelAdvancedApply.Size = new Size(520, 80);
|
panelAdvancedApply.Size = new Size(520, 80);
|
||||||
@@ -595,7 +599,7 @@ namespace GHelper
|
|||||||
labelRisky.BackColor = Color.IndianRed;
|
labelRisky.BackColor = Color.IndianRed;
|
||||||
labelRisky.Dock = DockStyle.Top;
|
labelRisky.Dock = DockStyle.Top;
|
||||||
labelRisky.ForeColor = SystemColors.ControlLightLight;
|
labelRisky.ForeColor = SystemColors.ControlLightLight;
|
||||||
labelRisky.Location = new Point(0, 504);
|
labelRisky.Location = new Point(0, 608);
|
||||||
labelRisky.Margin = new Padding(0);
|
labelRisky.Margin = new Padding(0);
|
||||||
labelRisky.Name = "labelRisky";
|
labelRisky.Name = "labelRisky";
|
||||||
labelRisky.Padding = new Padding(10, 10, 10, 5);
|
labelRisky.Padding = new Padding(10, 10, 10, 5);
|
||||||
@@ -611,7 +615,7 @@ namespace GHelper
|
|||||||
panelUViGPU.Controls.Add(labelLeftUViGPU);
|
panelUViGPU.Controls.Add(labelLeftUViGPU);
|
||||||
panelUViGPU.Controls.Add(trackUViGPU);
|
panelUViGPU.Controls.Add(trackUViGPU);
|
||||||
panelUViGPU.Dock = DockStyle.Top;
|
panelUViGPU.Dock = DockStyle.Top;
|
||||||
panelUViGPU.Location = new Point(0, 380);
|
panelUViGPU.Location = new Point(0, 484);
|
||||||
panelUViGPU.Margin = new Padding(4);
|
panelUViGPU.Margin = new Padding(4);
|
||||||
panelUViGPU.MaximumSize = new Size(0, 124);
|
panelUViGPU.MaximumSize = new Size(0, 124);
|
||||||
panelUViGPU.Name = "panelUViGPU";
|
panelUViGPU.Name = "panelUViGPU";
|
||||||
@@ -659,7 +663,7 @@ namespace GHelper
|
|||||||
panelUV.Controls.Add(labelLeftUV);
|
panelUV.Controls.Add(labelLeftUV);
|
||||||
panelUV.Controls.Add(trackUV);
|
panelUV.Controls.Add(trackUV);
|
||||||
panelUV.Dock = DockStyle.Top;
|
panelUV.Dock = DockStyle.Top;
|
||||||
panelUV.Location = new Point(0, 256);
|
panelUV.Location = new Point(0, 360);
|
||||||
panelUV.Margin = new Padding(4);
|
panelUV.Margin = new Padding(4);
|
||||||
panelUV.MaximumSize = new Size(0, 124);
|
panelUV.MaximumSize = new Size(0, 124);
|
||||||
panelUV.Name = "panelUV";
|
panelUV.Name = "panelUV";
|
||||||
@@ -704,7 +708,7 @@ namespace GHelper
|
|||||||
panelTitleAdvanced.Controls.Add(pictureUV);
|
panelTitleAdvanced.Controls.Add(pictureUV);
|
||||||
panelTitleAdvanced.Controls.Add(labelTitleUV);
|
panelTitleAdvanced.Controls.Add(labelTitleUV);
|
||||||
panelTitleAdvanced.Dock = DockStyle.Top;
|
panelTitleAdvanced.Dock = DockStyle.Top;
|
||||||
panelTitleAdvanced.Location = new Point(0, 190);
|
panelTitleAdvanced.Location = new Point(0, 294);
|
||||||
panelTitleAdvanced.Name = "panelTitleAdvanced";
|
panelTitleAdvanced.Name = "panelTitleAdvanced";
|
||||||
panelTitleAdvanced.Size = new Size(520, 66);
|
panelTitleAdvanced.Size = new Size(520, 66);
|
||||||
panelTitleAdvanced.TabIndex = 48;
|
panelTitleAdvanced.TabIndex = 48;
|
||||||
@@ -740,7 +744,7 @@ namespace GHelper
|
|||||||
panelTemperature.Controls.Add(labelLeftTemp);
|
panelTemperature.Controls.Add(labelLeftTemp);
|
||||||
panelTemperature.Controls.Add(trackTemp);
|
panelTemperature.Controls.Add(trackTemp);
|
||||||
panelTemperature.Dock = DockStyle.Top;
|
panelTemperature.Dock = DockStyle.Top;
|
||||||
panelTemperature.Location = new Point(0, 66);
|
panelTemperature.Location = new Point(0, 170);
|
||||||
panelTemperature.Margin = new Padding(4);
|
panelTemperature.Margin = new Padding(4);
|
||||||
panelTemperature.MaximumSize = new Size(0, 124);
|
panelTemperature.MaximumSize = new Size(0, 124);
|
||||||
panelTemperature.Name = "panelTemperature";
|
panelTemperature.Name = "panelTemperature";
|
||||||
@@ -785,7 +789,7 @@ namespace GHelper
|
|||||||
panelTitleTemp.Controls.Add(pictureTemp);
|
panelTitleTemp.Controls.Add(pictureTemp);
|
||||||
panelTitleTemp.Controls.Add(labelTempLimit);
|
panelTitleTemp.Controls.Add(labelTempLimit);
|
||||||
panelTitleTemp.Dock = DockStyle.Top;
|
panelTitleTemp.Dock = DockStyle.Top;
|
||||||
panelTitleTemp.Location = new Point(0, 0);
|
panelTitleTemp.Location = new Point(0, 104);
|
||||||
panelTitleTemp.Name = "panelTitleTemp";
|
panelTitleTemp.Name = "panelTitleTemp";
|
||||||
panelTitleTemp.Size = new Size(520, 66);
|
panelTitleTemp.Size = new Size(520, 66);
|
||||||
panelTitleTemp.TabIndex = 50;
|
panelTitleTemp.TabIndex = 50;
|
||||||
@@ -813,6 +817,38 @@ namespace GHelper
|
|||||||
labelTempLimit.TabIndex = 47;
|
labelTempLimit.TabIndex = 47;
|
||||||
labelTempLimit.Text = "Temp Limit";
|
labelTempLimit.Text = "Temp Limit";
|
||||||
//
|
//
|
||||||
|
// panelDownload
|
||||||
|
//
|
||||||
|
panelDownload.AutoSize = true;
|
||||||
|
panelDownload.Controls.Add(buttonDownload);
|
||||||
|
panelDownload.Dock = DockStyle.Top;
|
||||||
|
panelDownload.Location = new Point(0, 0);
|
||||||
|
panelDownload.Name = "panelDownload";
|
||||||
|
panelDownload.Padding = new Padding(20);
|
||||||
|
panelDownload.Size = new Size(520, 104);
|
||||||
|
panelDownload.TabIndex = 52;
|
||||||
|
panelDownload.Visible = false;
|
||||||
|
//
|
||||||
|
// buttonDownload
|
||||||
|
//
|
||||||
|
buttonDownload.Activated = false;
|
||||||
|
buttonDownload.AutoSize = true;
|
||||||
|
buttonDownload.AutoSizeMode = AutoSizeMode.GrowAndShrink;
|
||||||
|
buttonDownload.BackColor = SystemColors.ControlLight;
|
||||||
|
buttonDownload.BorderColor = Color.Transparent;
|
||||||
|
buttonDownload.BorderRadius = 2;
|
||||||
|
buttonDownload.Dock = DockStyle.Top;
|
||||||
|
buttonDownload.FlatStyle = FlatStyle.Flat;
|
||||||
|
buttonDownload.Location = new Point(20, 20);
|
||||||
|
buttonDownload.Margin = new Padding(20);
|
||||||
|
buttonDownload.Name = "buttonDownload";
|
||||||
|
buttonDownload.Padding = new Padding(10);
|
||||||
|
buttonDownload.Secondary = true;
|
||||||
|
buttonDownload.Size = new Size(480, 64);
|
||||||
|
buttonDownload.TabIndex = 19;
|
||||||
|
buttonDownload.Text = "Download Advanced Settings Plugin";
|
||||||
|
buttonDownload.UseVisualStyleBackColor = false;
|
||||||
|
//
|
||||||
// panelPower
|
// panelPower
|
||||||
//
|
//
|
||||||
panelPower.AutoSize = true;
|
panelPower.AutoSize = true;
|
||||||
@@ -1634,6 +1670,8 @@ namespace GHelper
|
|||||||
panelTitleTemp.ResumeLayout(false);
|
panelTitleTemp.ResumeLayout(false);
|
||||||
panelTitleTemp.PerformLayout();
|
panelTitleTemp.PerformLayout();
|
||||||
((System.ComponentModel.ISupportInitialize)pictureTemp).EndInit();
|
((System.ComponentModel.ISupportInitialize)pictureTemp).EndInit();
|
||||||
|
panelDownload.ResumeLayout(false);
|
||||||
|
panelDownload.PerformLayout();
|
||||||
panelPower.ResumeLayout(false);
|
panelPower.ResumeLayout(false);
|
||||||
panelPower.PerformLayout();
|
panelPower.PerformLayout();
|
||||||
panelApplyPower.ResumeLayout(false);
|
panelApplyPower.ResumeLayout(false);
|
||||||
@@ -1793,5 +1831,7 @@ namespace GHelper
|
|||||||
private Label labelSlow;
|
private Label labelSlow;
|
||||||
private Label labelLeftSlow;
|
private Label labelLeftSlow;
|
||||||
private TrackBar trackSlow;
|
private TrackBar trackSlow;
|
||||||
|
private Panel panelDownload;
|
||||||
|
private RButton buttonDownload;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
36
app/Fans.cs
@@ -213,6 +213,8 @@ namespace GHelper
|
|||||||
|
|
||||||
buttonCalibrate.Click += ButtonCalibrate_Click;
|
buttonCalibrate.Click += ButtonCalibrate_Click;
|
||||||
|
|
||||||
|
buttonDownload.Click += ButtonDownload_Click;
|
||||||
|
|
||||||
ToggleNavigation(0);
|
ToggleNavigation(0);
|
||||||
|
|
||||||
if (Program.acpi.DeviceGet(AsusACPI.DevsCPUFanCurve) < 0) buttonCalibrate.Visible = false;
|
if (Program.acpi.DeviceGet(AsusACPI.DevsCPUFanCurve) < 0) buttonCalibrate.Visible = false;
|
||||||
@@ -221,7 +223,21 @@ namespace GHelper
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void ButtonDownload_Click(object? sender, EventArgs e)
|
||||||
|
{
|
||||||
|
RyzenControl.DownloadRing();
|
||||||
|
|
||||||
|
panelAdvancedAlways.Visible = true;
|
||||||
|
panelAdvancedApply.Visible = true;
|
||||||
|
labelRisky.Visible = true;
|
||||||
|
panelUViGPU.Visible = true;
|
||||||
|
panelUV.Visible = true;
|
||||||
|
panelTitleAdvanced.Visible = true;
|
||||||
|
panelTemperature.Visible = true;
|
||||||
|
panelTitleTemp.Visible = true;
|
||||||
|
|
||||||
|
VisualiseAdvanced();
|
||||||
|
}
|
||||||
|
|
||||||
private void ButtonCalibrate_Click(object? sender, EventArgs e)
|
private void ButtonCalibrate_Click(object? sender, EventArgs e)
|
||||||
{
|
{
|
||||||
@@ -365,6 +381,24 @@ namespace GHelper
|
|||||||
|
|
||||||
private void VisualiseAdvanced()
|
private void VisualiseAdvanced()
|
||||||
{
|
{
|
||||||
|
|
||||||
|
if (!RyzenControl.IsRingExsists())
|
||||||
|
{
|
||||||
|
panelTitleAdvanced.Visible = false;
|
||||||
|
labelRisky.Visible = false;
|
||||||
|
panelUV.Visible = false;
|
||||||
|
panelUViGPU.Visible = false;
|
||||||
|
panelTitleTemp.Visible = false;
|
||||||
|
panelTemperature.Visible = false;
|
||||||
|
panelAdvancedAlways.Visible = false;
|
||||||
|
panelAdvancedApply.Visible = false;
|
||||||
|
panelDownload.Visible = true;
|
||||||
|
|
||||||
|
} else
|
||||||
|
{
|
||||||
|
panelDownload.Visible = false;
|
||||||
|
}
|
||||||
|
|
||||||
if (!RyzenControl.IsSupportedUV())
|
if (!RyzenControl.IsSupportedUV())
|
||||||
{
|
{
|
||||||
panelTitleAdvanced.Visible = false;
|
panelTitleAdvanced.Visible = false;
|
||||||
@@ -828,7 +862,7 @@ namespace GHelper
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
panelSlow.Visible = true;
|
panelSlow.Visible = modeA;
|
||||||
|
|
||||||
if (RyzenControl.IsAMD())
|
if (RyzenControl.IsAMD())
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||||
<ProduceReferenceAssembly>False</ProduceReferenceAssembly>
|
<ProduceReferenceAssembly>False</ProduceReferenceAssembly>
|
||||||
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
|
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
|
||||||
<AssemblyVersion>0.146</AssemblyVersion>
|
<AssemblyVersion>0.151</AssemblyVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||||
|
|||||||
@@ -551,6 +551,65 @@ public class Adl2
|
|||||||
int iAdapterIndex,
|
int iAdapterIndex,
|
||||||
int iEnabled);
|
int iEnabled);
|
||||||
|
|
||||||
|
// FPS
|
||||||
|
|
||||||
|
[DllImport(Atiadlxx_FileName)]
|
||||||
|
public static extern int ADL2_Adapter_FrameMetrics_Start(
|
||||||
|
IntPtr context,
|
||||||
|
int iAdapterIndex,
|
||||||
|
int VidPnSourceId
|
||||||
|
);
|
||||||
|
|
||||||
|
[DllImport(Atiadlxx_FileName)]
|
||||||
|
public static extern int ADL2_Adapter_FrameMetrics_Stop(
|
||||||
|
IntPtr context,
|
||||||
|
int iAdapterIndex,
|
||||||
|
int VidPnSourceId
|
||||||
|
);
|
||||||
|
|
||||||
|
[DllImport(Atiadlxx_FileName)]
|
||||||
|
public static extern int ADL2_Adapter_FrameMetrics_Get(
|
||||||
|
IntPtr context,
|
||||||
|
int iAdapterIndex,
|
||||||
|
int VidPnSourceId,
|
||||||
|
out float iFramesPerSecond
|
||||||
|
);
|
||||||
|
|
||||||
|
[DllImport(Atiadlxx_FileName)]
|
||||||
|
public static extern int ADL2_FPS_Settings_Get(IntPtr context, int iAdapterIndex, out ADLFPSSettingsOutput lpFPSSettings);
|
||||||
|
|
||||||
|
[DllImport(Atiadlxx_FileName)]
|
||||||
|
public static extern int ADL2_FPS_Settings_Set(IntPtr context, int iAdapterIndex, ADLFPSSettingsInput lpFPSSettings);
|
||||||
|
|
||||||
|
[DllImport(Atiadlxx_FileName)]
|
||||||
|
public static extern int ADL2_FPS_Settings_Reset(IntPtr context, int iAdapterIndex);
|
||||||
|
|
||||||
|
[StructLayout(LayoutKind.Sequential)]
|
||||||
|
public struct ADLFPSSettingsOutput
|
||||||
|
{
|
||||||
|
public int ulSize;
|
||||||
|
public int bACFPSEnabled;
|
||||||
|
public int bDCFPSEnabled;
|
||||||
|
public int ulACFPSCurrent;
|
||||||
|
public int ulDCFPSCurrent;
|
||||||
|
public int ulACFPSMaximum;
|
||||||
|
public int ulACFPSMinimum;
|
||||||
|
public int ulDCFPSMaximum;
|
||||||
|
public int ulDCFPSMinimum;
|
||||||
|
}
|
||||||
|
|
||||||
|
[StructLayout(LayoutKind.Sequential)]
|
||||||
|
public struct ADLFPSSettingsInput
|
||||||
|
{
|
||||||
|
public int ulSize;
|
||||||
|
public int bGlobalSettings;
|
||||||
|
public int ulACFPSCurrent;
|
||||||
|
public int ulDCFPSCurrent;
|
||||||
|
|
||||||
|
// Assuming ulReserved is an array of 6 integers
|
||||||
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
|
||||||
|
public int[] ulReserved;
|
||||||
|
}
|
||||||
// Clocks
|
// Clocks
|
||||||
|
|
||||||
[StructLayout(LayoutKind.Sequential)]
|
[StructLayout(LayoutKind.Sequential)]
|
||||||
|
|||||||
@@ -9,7 +9,9 @@ public class AmdGpuControl : IGpuControl
|
|||||||
{
|
{
|
||||||
private bool _isReady;
|
private bool _isReady;
|
||||||
private nint _adlContextHandle;
|
private nint _adlContextHandle;
|
||||||
|
|
||||||
private readonly ADLAdapterInfo _internalDiscreteAdapter;
|
private readonly ADLAdapterInfo _internalDiscreteAdapter;
|
||||||
|
private readonly ADLAdapterInfo? _iGPU;
|
||||||
|
|
||||||
public bool IsNvidia => false;
|
public bool IsNvidia => false;
|
||||||
|
|
||||||
@@ -63,8 +65,14 @@ public class AmdGpuControl : IGpuControl
|
|||||||
if (!Adl2.Load())
|
if (!Adl2.Load())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (Adl2.ADL2_Main_Control_Create(1, out _adlContextHandle) != Adl2.ADL_SUCCESS)
|
try
|
||||||
|
{
|
||||||
|
if (Adl2.ADL2_Main_Control_Create(1, out _adlContextHandle) != Adl2.ADL_SUCCESS) return;
|
||||||
|
} catch (Exception ex)
|
||||||
|
{
|
||||||
|
Logger.WriteLine(ex.Message);
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
ADLAdapterInfo? internalDiscreteAdapter = FindByType(ADLAsicFamilyType.Discrete);
|
ADLAdapterInfo? internalDiscreteAdapter = FindByType(ADLAsicFamilyType.Discrete);
|
||||||
|
|
||||||
@@ -74,6 +82,8 @@ public class AmdGpuControl : IGpuControl
|
|||||||
_isReady = true;
|
_isReady = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_iGPU = FindByType(ADLAsicFamilyType.Integrated);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool IsValid => _isReady && _adlContextHandle != nint.Zero;
|
public bool IsValid => _isReady && _adlContextHandle != nint.Zero;
|
||||||
@@ -139,6 +149,52 @@ public class AmdGpuControl : IGpuControl
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void StartFPS()
|
||||||
|
{
|
||||||
|
if (_adlContextHandle == nint.Zero || _iGPU == null) return;
|
||||||
|
ADL2_Adapter_FrameMetrics_Start(_adlContextHandle, ((ADLAdapterInfo)_iGPU).AdapterIndex, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void StopFPS()
|
||||||
|
{
|
||||||
|
if (_adlContextHandle == nint.Zero || _iGPU == null) return;
|
||||||
|
ADL2_Adapter_FrameMetrics_Stop(_adlContextHandle, ((ADLAdapterInfo)_iGPU).AdapterIndex, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
public float GetFPS()
|
||||||
|
{
|
||||||
|
if (_adlContextHandle == nint.Zero || _iGPU == null) return 0;
|
||||||
|
float fps;
|
||||||
|
if (ADL2_Adapter_FrameMetrics_Get(_adlContextHandle, ((ADLAdapterInfo)_iGPU).AdapterIndex, 0, out fps) != Adl2.ADL_SUCCESS) return 0;
|
||||||
|
return fps;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int GetFPSLimit()
|
||||||
|
{
|
||||||
|
if (_adlContextHandle == nint.Zero || _iGPU == null) return -1;
|
||||||
|
ADLFPSSettingsOutput settings;
|
||||||
|
if (ADL2_FPS_Settings_Get(_adlContextHandle, ((ADLAdapterInfo)_iGPU).AdapterIndex, out settings) != Adl2.ADL_SUCCESS) return -1;
|
||||||
|
|
||||||
|
Logger.WriteLine($"FPS Limit: {settings.ulACFPSCurrent}");
|
||||||
|
|
||||||
|
return settings.ulACFPSCurrent;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int SetFPSLimit(int limit)
|
||||||
|
{
|
||||||
|
if (_adlContextHandle == nint.Zero || _iGPU == null) return -1;
|
||||||
|
|
||||||
|
ADLFPSSettingsInput settings = new ADLFPSSettingsInput();
|
||||||
|
|
||||||
|
settings.ulACFPSCurrent = limit;
|
||||||
|
settings.ulDCFPSCurrent = limit;
|
||||||
|
settings.bGlobalSettings = 1;
|
||||||
|
|
||||||
|
if (ADL2_FPS_Settings_Set(_adlContextHandle, ((ADLAdapterInfo)_iGPU).AdapterIndex, settings) != Adl2.ADL_SUCCESS) return 0;
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
public ADLODNPerformanceLevels? GetGPUClocks()
|
public ADLODNPerformanceLevels? GetGPUClocks()
|
||||||
{
|
{
|
||||||
if (!IsValid) return null;
|
if (!IsValid) return null;
|
||||||
|
|||||||
@@ -145,18 +145,6 @@ namespace GHelper.Gpu
|
|||||||
|
|
||||||
if (eco == 1)
|
if (eco == 1)
|
||||||
{
|
{
|
||||||
/*
|
|
||||||
if (NvidiaSmi.GetDisplayActiveStatus())
|
|
||||||
{
|
|
||||||
DialogResult dialogResult = MessageBox.Show(Properties.Strings.EnableOptimusText, Properties.Strings.EnableOptimusTitle, MessageBoxButtons.YesNo);
|
|
||||||
if (dialogResult == DialogResult.No)
|
|
||||||
{
|
|
||||||
InitGPUMode();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
HardwareControl.KillGPUApps();
|
HardwareControl.KillGPUApps();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -296,7 +284,7 @@ namespace GHelper.Gpu
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ToggleXGM()
|
public void ToggleXGM(bool silent = false)
|
||||||
{
|
{
|
||||||
|
|
||||||
Task.Run(async () =>
|
Task.Run(async () =>
|
||||||
@@ -308,12 +296,20 @@ namespace GHelper.Gpu
|
|||||||
XGM.Reset();
|
XGM.Reset();
|
||||||
HardwareControl.KillGPUApps();
|
HardwareControl.KillGPUApps();
|
||||||
|
|
||||||
DialogResult dialogResult = MessageBox.Show("Did you close all applications running on XG Mobile?", "Disabling XG Mobile", MessageBoxButtons.YesNo);
|
if (silent)
|
||||||
if (dialogResult == DialogResult.Yes)
|
|
||||||
{
|
{
|
||||||
Program.acpi.DeviceSet(AsusACPI.GPUXG, 0, "GPU XGM");
|
Program.acpi.DeviceSet(AsusACPI.GPUXG, 0, "GPU XGM");
|
||||||
await Task.Delay(TimeSpan.FromSeconds(15));
|
await Task.Delay(TimeSpan.FromSeconds(15));
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
DialogResult dialogResult = MessageBox.Show("Did you close all applications running on XG Mobile?", "Disabling XG Mobile", MessageBoxButtons.YesNo);
|
||||||
|
if (dialogResult == DialogResult.Yes)
|
||||||
|
{
|
||||||
|
Program.acpi.DeviceSet(AsusACPI.GPUXG, 0, "GPU XGM");
|
||||||
|
await Task.Delay(TimeSpan.FromSeconds(15));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -152,6 +152,8 @@ public class NvidiaGpuControl : IGpuControl
|
|||||||
|
|
||||||
int _clockLimit = GetMaxGPUCLock();
|
int _clockLimit = GetMaxGPUCLock();
|
||||||
|
|
||||||
|
if (_clockLimit < 0 && clock == 0) return 0;
|
||||||
|
|
||||||
if (_clockLimit != clock)
|
if (_clockLimit != clock)
|
||||||
{
|
{
|
||||||
if (clock > 0) RunPowershellCommand($"nvidia-smi -lgc 0,{clock}");
|
if (clock > 0) RunPowershellCommand($"nvidia-smi -lgc 0,{clock}");
|
||||||
@@ -178,10 +180,10 @@ public class NvidiaGpuControl : IGpuControl
|
|||||||
if (core < MinCoreOffset || core > MaxCoreOffset) return 0;
|
if (core < MinCoreOffset || core > MaxCoreOffset) return 0;
|
||||||
if (memory < MinMemoryOffset || memory > MaxMemoryOffset) return 0;
|
if (memory < MinMemoryOffset || memory > MaxMemoryOffset) return 0;
|
||||||
|
|
||||||
if (GetClocks(out int currentCore, out int currentMemory))
|
GetClocks(out int currentCore, out int currentMemory);
|
||||||
{
|
|
||||||
if (Math.Abs(core - currentCore) < 5 && Math.Abs(memory - currentMemory) < 5) return 0;
|
// Nothing to set
|
||||||
}
|
if (Math.Abs(core - currentCore) < 5 && Math.Abs(memory - currentMemory) < 5) return 0;
|
||||||
|
|
||||||
PhysicalGPU internalGpu = _internalGpu!;
|
PhysicalGPU internalGpu = _internalGpu!;
|
||||||
|
|
||||||
|
|||||||
1149
app/Handheld.Designer.cs
generated
Normal file
260
app/Handheld.cs
Normal file
@@ -0,0 +1,260 @@
|
|||||||
|
using GHelper.Ally;
|
||||||
|
using GHelper.UI;
|
||||||
|
|
||||||
|
namespace GHelper
|
||||||
|
{
|
||||||
|
public partial class Handheld : RForm
|
||||||
|
{
|
||||||
|
|
||||||
|
static string activeBinding = "";
|
||||||
|
static RButton? activeButton;
|
||||||
|
|
||||||
|
public Handheld()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
InitTheme(true);
|
||||||
|
|
||||||
|
Shown += Handheld_Shown;
|
||||||
|
|
||||||
|
Init();
|
||||||
|
|
||||||
|
trackLSMin.Scroll += Controller_Scroll;
|
||||||
|
trackLSMax.Scroll += Controller_Scroll;
|
||||||
|
trackRSMin.Scroll += Controller_Scroll;
|
||||||
|
trackRSMax.Scroll += Controller_Scroll;
|
||||||
|
|
||||||
|
trackLTMin.Scroll += Controller_Scroll;
|
||||||
|
trackLTMax.Scroll += Controller_Scroll;
|
||||||
|
trackRTMin.Scroll += Controller_Scroll;
|
||||||
|
trackRTMax.Scroll += Controller_Scroll;
|
||||||
|
|
||||||
|
trackVibra.Scroll += Controller_Scroll;
|
||||||
|
|
||||||
|
buttonReset.Click += ButtonReset_Click;
|
||||||
|
|
||||||
|
trackLSMin.ValueChanged += Controller_Complete;
|
||||||
|
trackLSMax.ValueChanged += Controller_Complete;
|
||||||
|
trackRSMin.ValueChanged += Controller_Complete;
|
||||||
|
trackRSMax.ValueChanged += Controller_Complete;
|
||||||
|
|
||||||
|
trackLTMin.ValueChanged += Controller_Complete;
|
||||||
|
trackLTMax.ValueChanged += Controller_Complete;
|
||||||
|
trackRTMin.ValueChanged += Controller_Complete;
|
||||||
|
trackRTMax.ValueChanged += Controller_Complete;
|
||||||
|
|
||||||
|
trackVibra.ValueChanged += Controller_Complete;
|
||||||
|
|
||||||
|
ButtonBinding("m1", "M1", buttonM1);
|
||||||
|
ButtonBinding("m2", "M2", buttonM2);
|
||||||
|
|
||||||
|
ButtonBinding("a", "A", buttonA);
|
||||||
|
ButtonBinding("b", "B", buttonB);
|
||||||
|
ButtonBinding("x", "X", buttonX);
|
||||||
|
ButtonBinding("y", "Y", buttonY);
|
||||||
|
|
||||||
|
ButtonBinding("du", "DPad Up", buttonDPU);
|
||||||
|
ButtonBinding("dd", "DPad Down", buttonDPD);
|
||||||
|
|
||||||
|
ButtonBinding("dl", "DPad Left", buttonDPL);
|
||||||
|
ButtonBinding("dr", "DPad Right", buttonDPR);
|
||||||
|
|
||||||
|
ButtonBinding("rt", "Right Trigger", buttonRT);
|
||||||
|
ButtonBinding("lt", "Left Trigger", buttonLT);
|
||||||
|
|
||||||
|
ButtonBinding("rb", "Right Bumper", buttonRB);
|
||||||
|
ButtonBinding("lb", "Left Bumper", buttonLB);
|
||||||
|
|
||||||
|
ButtonBinding("rs", "Right Stick", buttonRS);
|
||||||
|
ButtonBinding("ll", "Left Stick", buttonLS);
|
||||||
|
|
||||||
|
ButtonBinding("vb", "View", buttonView);
|
||||||
|
ButtonBinding("mb", "Menu", buttonMenu);
|
||||||
|
|
||||||
|
ComboBinding(comboPrimary);
|
||||||
|
ComboBinding(comboSecondary);
|
||||||
|
|
||||||
|
checkController.Checked = AppConfig.Is("controller_disabled");
|
||||||
|
checkController.CheckedChanged += CheckController_CheckedChanged;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void CheckController_CheckedChanged(object? sender, EventArgs e)
|
||||||
|
{
|
||||||
|
AppConfig.Set("controller_disabled", checkController.Checked ? 1 : 0);
|
||||||
|
AllyControl.ApplyXBoxStatus();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ComboBinding(RComboBox combo)
|
||||||
|
{
|
||||||
|
|
||||||
|
combo.DropDownStyle = ComboBoxStyle.DropDownList;
|
||||||
|
combo.DisplayMember = "Value";
|
||||||
|
combo.ValueMember = "Key";
|
||||||
|
foreach (var item in AllyControl.BindCodes)
|
||||||
|
combo.Items.Add(new KeyValuePair<string, string>(item.Key, item.Value));
|
||||||
|
|
||||||
|
combo.SelectedValueChanged += Binding_SelectedValueChanged;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Binding_SelectedValueChanged(object? sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (sender is null) return;
|
||||||
|
RComboBox combo = (RComboBox)sender;
|
||||||
|
|
||||||
|
string value = ((KeyValuePair<string, string>)combo.SelectedItem).Key;
|
||||||
|
string binding = "bind" + (combo.Name == "comboPrimary" ? "" : "2") + "_" + activeBinding;
|
||||||
|
|
||||||
|
if (value != "") AppConfig.Set(binding, value);
|
||||||
|
else AppConfig.Remove(binding);
|
||||||
|
|
||||||
|
VisualiseButton(activeButton, activeBinding);
|
||||||
|
|
||||||
|
AllyControl.ApplyMode();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SetComboValue(RComboBox combo, string value)
|
||||||
|
{
|
||||||
|
foreach (var item in AllyControl.BindCodes)
|
||||||
|
if (item.Key == value)
|
||||||
|
{
|
||||||
|
combo.SelectedItem = item;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
combo.SelectedIndex = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void VisualiseButton(RButton button, string binding)
|
||||||
|
{
|
||||||
|
if (button == null) return;
|
||||||
|
|
||||||
|
string primary = AppConfig.GetString("bind_" + binding, "");
|
||||||
|
string secondary = AppConfig.GetString("bind2_" + binding, "");
|
||||||
|
|
||||||
|
if (primary != "" || secondary != "")
|
||||||
|
{
|
||||||
|
button.BorderColor = colorStandard;
|
||||||
|
button.Activated = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
button.Activated = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ButtonBinding(string binding, string label, RButton button)
|
||||||
|
{
|
||||||
|
button.Click += (sender, EventArgs) => { buttonBinding_Click(sender, EventArgs, binding, label); };
|
||||||
|
VisualiseButton(button, binding);
|
||||||
|
}
|
||||||
|
|
||||||
|
void buttonBinding_Click(object sender, EventArgs e, string binding, string label)
|
||||||
|
{
|
||||||
|
|
||||||
|
if (sender is null) return;
|
||||||
|
RButton button = (RButton)sender;
|
||||||
|
|
||||||
|
panelBinding.Visible = true;
|
||||||
|
|
||||||
|
activeButton = button;
|
||||||
|
activeBinding = binding;
|
||||||
|
|
||||||
|
labelBinding.Text = "Binding: " + label;
|
||||||
|
|
||||||
|
SetComboValue(comboPrimary, AppConfig.GetString("bind_" + binding, ""));
|
||||||
|
SetComboValue(comboSecondary, AppConfig.GetString("bind2_" + binding, ""));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
private void Controller_Complete(object? sender, EventArgs e)
|
||||||
|
{
|
||||||
|
AllyControl.SetDeadzones();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ButtonReset_Click(object? sender, EventArgs e)
|
||||||
|
{
|
||||||
|
trackLSMin.Value = 0;
|
||||||
|
trackLSMax.Value = 100;
|
||||||
|
trackRSMin.Value = 0;
|
||||||
|
trackRSMax.Value = 100;
|
||||||
|
|
||||||
|
trackLTMin.Value = 0;
|
||||||
|
trackLTMax.Value = 100;
|
||||||
|
trackRTMin.Value = 0;
|
||||||
|
trackRTMax.Value = 100;
|
||||||
|
|
||||||
|
trackVibra.Value = 100;
|
||||||
|
|
||||||
|
AppConfig.Remove("ls_min");
|
||||||
|
AppConfig.Remove("ls_max");
|
||||||
|
AppConfig.Remove("rs_min");
|
||||||
|
AppConfig.Remove("rs_max");
|
||||||
|
|
||||||
|
AppConfig.Remove("lt_min");
|
||||||
|
AppConfig.Remove("lt_max");
|
||||||
|
AppConfig.Remove("rt_min");
|
||||||
|
AppConfig.Remove("rt_max");
|
||||||
|
AppConfig.Remove("vibra");
|
||||||
|
|
||||||
|
VisualiseController();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Init()
|
||||||
|
{
|
||||||
|
trackLSMin.Value = AppConfig.Get("ls_min", 0);
|
||||||
|
trackLSMax.Value = AppConfig.Get("ls_max", 100);
|
||||||
|
trackRSMin.Value = AppConfig.Get("rs_min", 0);
|
||||||
|
trackRSMax.Value = AppConfig.Get("rs_max", 100);
|
||||||
|
|
||||||
|
trackLTMin.Value = AppConfig.Get("lt_min", 0);
|
||||||
|
trackLTMax.Value = AppConfig.Get("lt_max", 100);
|
||||||
|
trackRTMin.Value = AppConfig.Get("rt_min", 0);
|
||||||
|
trackRTMax.Value = AppConfig.Get("rt_max", 100);
|
||||||
|
|
||||||
|
trackVibra.Value = AppConfig.Get("vibra", 100);
|
||||||
|
|
||||||
|
VisualiseController();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void VisualiseController()
|
||||||
|
{
|
||||||
|
labelLS.Text = $"{trackLSMin.Value} - {trackLSMax.Value}%";
|
||||||
|
labelRS.Text = $"{trackRSMin.Value} - {trackRSMax.Value}%";
|
||||||
|
|
||||||
|
labelLT.Text = $"{trackLTMin.Value} - {trackLTMax.Value}%";
|
||||||
|
labelRT.Text = $"{trackRTMin.Value} - {trackRTMax.Value}%";
|
||||||
|
|
||||||
|
labelVibra.Text = $"{trackVibra.Value}%";
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Controller_Scroll(object? sender, EventArgs e)
|
||||||
|
{
|
||||||
|
AppConfig.Set("ls_min", trackLSMin.Value);
|
||||||
|
AppConfig.Set("ls_max", trackLSMax.Value);
|
||||||
|
AppConfig.Set("rs_min", trackRSMin.Value);
|
||||||
|
AppConfig.Set("rs_max", trackRSMax.Value);
|
||||||
|
|
||||||
|
AppConfig.Set("lt_min", trackLTMin.Value);
|
||||||
|
AppConfig.Set("lt_max", trackLTMax.Value);
|
||||||
|
AppConfig.Set("rt_min", trackRTMin.Value);
|
||||||
|
AppConfig.Set("rt_max", trackRTMax.Value);
|
||||||
|
|
||||||
|
AppConfig.Set("vibra", trackVibra.Value);
|
||||||
|
|
||||||
|
VisualiseController();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Handheld_Shown(object? sender, EventArgs e)
|
||||||
|
{
|
||||||
|
Height = Program.settingsForm.Height;
|
||||||
|
Top = Program.settingsForm.Top;
|
||||||
|
Left = Program.settingsForm.Left - Width - 5;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
120
app/Handheld.resx
Normal file
@@ -0,0 +1,120 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
</root>
|
||||||
@@ -1,13 +1,12 @@
|
|||||||
using GHelper;
|
using GHelper;
|
||||||
|
using GHelper.Battery;
|
||||||
using GHelper.Fan;
|
using GHelper.Fan;
|
||||||
using GHelper.Gpu;
|
using GHelper.Gpu;
|
||||||
using GHelper.Gpu.NVidia;
|
|
||||||
using GHelper.Gpu.AMD;
|
using GHelper.Gpu.AMD;
|
||||||
|
using GHelper.Gpu.NVidia;
|
||||||
using GHelper.Helpers;
|
using GHelper.Helpers;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.Management;
|
using System.Management;
|
||||||
using GHelper.Battery;
|
|
||||||
|
|
||||||
public static class HardwareControl
|
public static class HardwareControl
|
||||||
{
|
{
|
||||||
@@ -68,9 +67,16 @@ public static class HardwareControl
|
|||||||
|
|
||||||
chargeCapacity = Convert.ToDecimal(obj["RemainingCapacity"]);
|
chargeCapacity = Convert.ToDecimal(obj["RemainingCapacity"]);
|
||||||
|
|
||||||
|
decimal? discharge = Program.acpi.GetBatteryDischarge();
|
||||||
|
if (discharge is not null)
|
||||||
|
{
|
||||||
|
batteryRate = discharge;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
decimal chargeRate = Convert.ToDecimal(obj["ChargeRate"]);
|
decimal chargeRate = Convert.ToDecimal(obj["ChargeRate"]);
|
||||||
decimal dischargeRate = Convert.ToDecimal(obj["DischargeRate"]);
|
decimal dischargeRate = Convert.ToDecimal(obj["DischargeRate"]);
|
||||||
|
|
||||||
if (chargeRate > 0)
|
if (chargeRate > 0)
|
||||||
batteryRate = chargeRate / 1000;
|
batteryRate = chargeRate / 1000;
|
||||||
else
|
else
|
||||||
@@ -155,7 +161,8 @@ public static class HardwareControl
|
|||||||
return health;
|
return health;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static float? GetCPUTemp() {
|
public static float? GetCPUTemp()
|
||||||
|
{
|
||||||
|
|
||||||
var last = DateTimeOffset.Now.ToUnixTimeSeconds();
|
var last = DateTimeOffset.Now.ToUnixTimeSeconds();
|
||||||
if (Math.Abs(last - lastUpdate) < 2) return cpuTemp;
|
if (Math.Abs(last - lastUpdate) < 2) return cpuTemp;
|
||||||
@@ -255,7 +262,7 @@ public static class HardwareControl
|
|||||||
GpuControl?.Dispose();
|
GpuControl?.Dispose();
|
||||||
|
|
||||||
IGpuControl _gpuControl = new NvidiaGpuControl();
|
IGpuControl _gpuControl = new NvidiaGpuControl();
|
||||||
|
|
||||||
if (_gpuControl.IsValid)
|
if (_gpuControl.IsValid)
|
||||||
{
|
{
|
||||||
GpuControl = _gpuControl;
|
GpuControl = _gpuControl;
|
||||||
|
|||||||
@@ -69,12 +69,14 @@ namespace GHelper.Helpers
|
|||||||
}
|
}
|
||||||
public static void DisableClamshellMode()
|
public static void DisableClamshellMode()
|
||||||
{
|
{
|
||||||
|
if (PowerNative.GetLidAction(true) == GetDefaultLidAction()) return;
|
||||||
PowerNative.SetLidAction(GetDefaultLidAction(), true);
|
PowerNative.SetLidAction(GetDefaultLidAction(), true);
|
||||||
Logger.WriteLine("Disengaging Clamshell Mode");
|
Logger.WriteLine("Disengaging Clamshell Mode");
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void EnableClamshellMode()
|
public static void EnableClamshellMode()
|
||||||
{
|
{
|
||||||
|
if (PowerNative.GetLidAction(true) == 0) return;
|
||||||
PowerNative.SetLidAction(0, true);
|
PowerNative.SetLidAction(0, true);
|
||||||
Logger.WriteLine("Engaging Clamshell Mode");
|
Logger.WriteLine("Engaging Clamshell Mode");
|
||||||
}
|
}
|
||||||
|
|||||||
176
app/Helpers/OnScreenKeyboard.cs
Normal file
@@ -0,0 +1,176 @@
|
|||||||
|
using System.Diagnostics;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
namespace GHelper.Helpers
|
||||||
|
{
|
||||||
|
public static class OnScreenKeyboard
|
||||||
|
{
|
||||||
|
static OnScreenKeyboard()
|
||||||
|
{
|
||||||
|
var version = Environment.OSVersion.Version;
|
||||||
|
switch (version.Major)
|
||||||
|
{
|
||||||
|
case 6:
|
||||||
|
switch (version.Minor)
|
||||||
|
{
|
||||||
|
case 2:
|
||||||
|
// Windows 10 (ok)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void StartTabTip()
|
||||||
|
{
|
||||||
|
var p = Process.Start(@"C:\Program Files\Common Files\Microsoft Shared\ink\TabTip.exe");
|
||||||
|
int handle = 0;
|
||||||
|
while ((handle = NativeMethods.FindWindow("IPTIP_Main_Window", "")) <= 0)
|
||||||
|
{
|
||||||
|
Thread.Sleep(100);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void ToggleVisibility()
|
||||||
|
{
|
||||||
|
var type = Type.GetTypeFromCLSID(Guid.Parse("4ce576fa-83dc-4F88-951c-9d0782b4e376"));
|
||||||
|
var instance = (ITipInvocation)Activator.CreateInstance(type);
|
||||||
|
instance.Toggle(NativeMethods.GetDesktopWindow());
|
||||||
|
Marshal.ReleaseComObject(instance);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void Show()
|
||||||
|
{
|
||||||
|
int handle = NativeMethods.FindWindow("IPTIP_Main_Window", "");
|
||||||
|
if (handle <= 0) // nothing found
|
||||||
|
{
|
||||||
|
StartTabTip();
|
||||||
|
Thread.Sleep(100);
|
||||||
|
}
|
||||||
|
// on some devices starting TabTip don't show keyboard, on some does ¯\_(ツ)_/¯
|
||||||
|
if (!IsOpen())
|
||||||
|
{
|
||||||
|
ToggleVisibility();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void Hide()
|
||||||
|
{
|
||||||
|
if (IsOpen())
|
||||||
|
{
|
||||||
|
ToggleVisibility();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static bool Close()
|
||||||
|
{
|
||||||
|
// find it
|
||||||
|
int handle = NativeMethods.FindWindow("IPTIP_Main_Window", "");
|
||||||
|
bool active = handle > 0;
|
||||||
|
if (active)
|
||||||
|
{
|
||||||
|
// don't check style - just close
|
||||||
|
NativeMethods.SendMessage(handle, NativeMethods.WM_SYSCOMMAND, NativeMethods.SC_CLOSE, 0);
|
||||||
|
}
|
||||||
|
return active;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool IsOpen()
|
||||||
|
{
|
||||||
|
return GetIsOpen1709() ?? GetIsOpenLegacy();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
[DllImport("user32.dll", SetLastError = false)]
|
||||||
|
private static extern IntPtr FindWindowEx(IntPtr parent, IntPtr after, string className, string title = null);
|
||||||
|
|
||||||
|
[DllImport("user32.dll", SetLastError = false)]
|
||||||
|
private static extern uint GetWindowLong(IntPtr wnd, int index);
|
||||||
|
|
||||||
|
private static bool? GetIsOpen1709()
|
||||||
|
{
|
||||||
|
// if there is a top-level window - the keyboard is closed
|
||||||
|
var wnd = FindWindowEx(IntPtr.Zero, IntPtr.Zero, WindowClass1709, WindowCaption1709);
|
||||||
|
if (wnd != IntPtr.Zero)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
var parent = IntPtr.Zero;
|
||||||
|
for (; ; )
|
||||||
|
{
|
||||||
|
parent = FindWindowEx(IntPtr.Zero, parent, WindowParentClass1709);
|
||||||
|
if (parent == IntPtr.Zero)
|
||||||
|
return null; // no more windows, keyboard state is unknown
|
||||||
|
|
||||||
|
// if it's a child of a WindowParentClass1709 window - the keyboard is open
|
||||||
|
wnd = FindWindowEx(parent, IntPtr.Zero, WindowClass1709, WindowCaption1709);
|
||||||
|
if (wnd != IntPtr.Zero)
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static bool GetIsOpenLegacy()
|
||||||
|
{
|
||||||
|
var wnd = FindWindowEx(IntPtr.Zero, IntPtr.Zero, WindowClass);
|
||||||
|
if (wnd == IntPtr.Zero)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
var style = GetWindowStyle(wnd);
|
||||||
|
return style.HasFlag(WindowStyle.Visible)
|
||||||
|
&& !style.HasFlag(WindowStyle.Disabled);
|
||||||
|
}
|
||||||
|
|
||||||
|
private const string WindowClass = "IPTip_Main_Window";
|
||||||
|
private const string WindowParentClass1709 = "ApplicationFrameWindow";
|
||||||
|
private const string WindowClass1709 = "Windows.UI.Core.CoreWindow";
|
||||||
|
private const string WindowCaption1709 = "Microsoft Text Input Application";
|
||||||
|
|
||||||
|
private enum WindowStyle : uint
|
||||||
|
{
|
||||||
|
Disabled = 0x08000000,
|
||||||
|
Visible = 0x10000000,
|
||||||
|
}
|
||||||
|
|
||||||
|
private static WindowStyle GetWindowStyle(IntPtr wnd)
|
||||||
|
{
|
||||||
|
return (WindowStyle)GetWindowLong(wnd, -16);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
[ComImport]
|
||||||
|
[Guid("37c994e7-432b-4834-a2f7-dce1f13b834b")]
|
||||||
|
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
|
||||||
|
interface ITipInvocation
|
||||||
|
{
|
||||||
|
void Toggle(IntPtr hwnd);
|
||||||
|
}
|
||||||
|
|
||||||
|
internal static class NativeMethods
|
||||||
|
{
|
||||||
|
[DllImport("user32.dll", EntryPoint = "FindWindow")]
|
||||||
|
internal static extern int FindWindow(string lpClassName, string lpWindowName);
|
||||||
|
|
||||||
|
[DllImport("user32.dll", EntryPoint = "SendMessage")]
|
||||||
|
internal static extern int SendMessage(int hWnd, uint Msg, int wParam, int lParam);
|
||||||
|
|
||||||
|
[DllImport("user32.dll", EntryPoint = "GetDesktopWindow", SetLastError = false)]
|
||||||
|
internal static extern IntPtr GetDesktopWindow();
|
||||||
|
|
||||||
|
[DllImport("user32.dll", EntryPoint = "GetWindowLong")]
|
||||||
|
internal static extern int GetWindowLong(int hWnd, int nIndex);
|
||||||
|
|
||||||
|
internal const int GWL_STYLE = -16;
|
||||||
|
internal const int GWL_EXSTYLE = -20;
|
||||||
|
internal const int WM_SYSCOMMAND = 0x0112;
|
||||||
|
internal const int SC_CLOSE = 0xF060;
|
||||||
|
|
||||||
|
internal const int WS_DISABLED = 0x08000000;
|
||||||
|
|
||||||
|
internal const int WS_VISIBLE = 0x10000000;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,7 +1,4 @@
|
|||||||
using Microsoft.Win32;
|
using System.Diagnostics;
|
||||||
using System.Diagnostics;
|
|
||||||
using System.Text;
|
|
||||||
using System.Text.RegularExpressions;
|
|
||||||
|
|
||||||
namespace GHelper.Helpers
|
namespace GHelper.Helpers
|
||||||
{
|
{
|
||||||
@@ -21,34 +18,15 @@ namespace GHelper.Helpers
|
|||||||
"AsusCertService"
|
"AsusCertService"
|
||||||
};
|
};
|
||||||
|
|
||||||
public static void SetChargeLimit(int newValue)
|
static List<string> processesAC = new() {
|
||||||
{
|
"ArmouryCrateSE.Service",
|
||||||
// Set the path to the .ini file
|
"LightingService",
|
||||||
string path = @"C:\ProgramData\ASUS\ASUS System Control Interface\ASUSOptimization\Customization.ini";
|
};
|
||||||
|
|
||||||
|
static List<string> servicesAC = new() {
|
||||||
// Make a backup copy of the INI file
|
"ArmouryCrateSEService",
|
||||||
string backupPath = path + ".bak";
|
"LightingService",
|
||||||
File.Copy(path, backupPath, true);
|
};
|
||||||
|
|
||||||
string fileContents = File.ReadAllText(path, Encoding.Unicode);
|
|
||||||
|
|
||||||
// Find the section [BatteryHealthCharging]
|
|
||||||
string sectionPattern = @"\[BatteryHealthCharging\]\s*(version=\d+)?\s+value=(\d+)";
|
|
||||||
Match sectionMatch = Regex.Match(fileContents, sectionPattern);
|
|
||||||
if (sectionMatch.Success)
|
|
||||||
{
|
|
||||||
// Replace the value with the new value
|
|
||||||
string oldValueString = sectionMatch.Groups[2].Value;
|
|
||||||
int oldValue = int.Parse(oldValueString);
|
|
||||||
string newSection = sectionMatch.Value.Replace($"value={oldValue}", $"value={newValue}");
|
|
||||||
|
|
||||||
// Replace the section in the file contents
|
|
||||||
fileContents = fileContents.Replace(sectionMatch.Value, newSection);
|
|
||||||
|
|
||||||
File.WriteAllText(path, fileContents, Encoding.Unicode);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static bool IsRunning()
|
public static bool IsRunning()
|
||||||
{
|
{
|
||||||
@@ -68,35 +46,37 @@ namespace GHelper.Helpers
|
|||||||
{
|
{
|
||||||
if (Process.GetProcessesByName(service).Count() > 0) count++;
|
if (Process.GetProcessesByName(service).Count() > 0) count++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (AppConfig.IsAlly())
|
||||||
|
foreach (string service in processesAC)
|
||||||
|
{
|
||||||
|
if (Process.GetProcessesByName(service).Count() > 0)
|
||||||
|
{
|
||||||
|
count++;
|
||||||
|
Logger.WriteLine(service);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static void SetBacklightOffDelay(int value = 60)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
RegistryKey myKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\ASUS\ASUS System Control Interface\AsusOptimization\ASUS Keyboard Hotkeys", true);
|
|
||||||
if (myKey != null)
|
|
||||||
{
|
|
||||||
myKey.SetValue("TurnOffKeybdLight", value, RegistryValueKind.DWord);
|
|
||||||
myKey.Close();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
Logger.WriteLine(ex.Message);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public static void StopAsusServices()
|
public static void StopAsusServices()
|
||||||
{
|
{
|
||||||
foreach (string service in services)
|
foreach (string service in services)
|
||||||
{
|
{
|
||||||
ProcessHelper.StopDisableService(service);
|
ProcessHelper.StopDisableService(service);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (AppConfig.IsAlly())
|
||||||
|
{
|
||||||
|
foreach (string service in servicesAC)
|
||||||
|
{
|
||||||
|
ProcessHelper.StopDisableService(service, "Manual");
|
||||||
|
}
|
||||||
|
Thread.Sleep(1000);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void StartAsusServices()
|
public static void StartAsusServices()
|
||||||
@@ -105,6 +85,16 @@ namespace GHelper.Helpers
|
|||||||
{
|
{
|
||||||
ProcessHelper.StartEnableService(service);
|
ProcessHelper.StartEnableService(service);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (AppConfig.IsAlly())
|
||||||
|
{
|
||||||
|
foreach (string service in servicesAC)
|
||||||
|
{
|
||||||
|
ProcessHelper.StartEnableService(service);
|
||||||
|
}
|
||||||
|
Thread.Sleep(1000);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,14 +37,14 @@ namespace GHelper.Helpers
|
|||||||
return principal.IsInRole(WindowsBuiltInRole.Administrator);
|
return principal.IsInRole(WindowsBuiltInRole.Administrator);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void RunAsAdmin(string? param = null)
|
public static void RunAsAdmin(string? param = null, bool force = false)
|
||||||
{
|
{
|
||||||
|
|
||||||
if (Math.Abs(DateTimeOffset.Now.ToUnixTimeMilliseconds() - lastAdmin) < 2000) return;
|
if (Math.Abs(DateTimeOffset.Now.ToUnixTimeMilliseconds() - lastAdmin) < 2000) return;
|
||||||
lastAdmin = DateTimeOffset.Now.ToUnixTimeMilliseconds();
|
lastAdmin = DateTimeOffset.Now.ToUnixTimeMilliseconds();
|
||||||
|
|
||||||
// Check if the current user is an administrator
|
// Check if the current user is an administrator
|
||||||
if (!IsUserAdministrator())
|
if (!IsUserAdministrator() || force)
|
||||||
{
|
{
|
||||||
ProcessStartInfo startInfo = new ProcessStartInfo();
|
ProcessStartInfo startInfo = new ProcessStartInfo();
|
||||||
startInfo.UseShellExecute = true;
|
startInfo.UseShellExecute = true;
|
||||||
@@ -94,11 +94,11 @@ namespace GHelper.Helpers
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void StopDisableService(string serviceName)
|
public static void StopDisableService(string serviceName, string disable = "Disabled")
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
string script = $"Get-Service -Name \"{serviceName}\" | Stop-Service -Force -PassThru | Set-Service -StartupType Disabled";
|
string script = $"Get-Service -Name \"{serviceName}\" | Stop-Service -Force -PassThru | Set-Service -StartupType {disable}";
|
||||||
Logger.WriteLine(script);
|
Logger.WriteLine(script);
|
||||||
RunCMD("powershell", script);
|
RunCMD("powershell", script);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -50,7 +50,8 @@ namespace GHelper.Helpers
|
|||||||
MicrophoneMute,
|
MicrophoneMute,
|
||||||
FnLock,
|
FnLock,
|
||||||
Battery,
|
Battery,
|
||||||
Charger
|
Charger,
|
||||||
|
Controller
|
||||||
}
|
}
|
||||||
|
|
||||||
public class ToastForm : OSDNativeForm
|
public class ToastForm : OSDNativeForm
|
||||||
@@ -111,6 +112,9 @@ namespace GHelper.Helpers
|
|||||||
case ToastIcon.Charger:
|
case ToastIcon.Charger:
|
||||||
icon = Properties.Resources.icons8_charging_battery_96;
|
icon = Properties.Resources.icons8_charging_battery_96;
|
||||||
break;
|
break;
|
||||||
|
case ToastIcon.Controller:
|
||||||
|
icon = Properties.Resources.icons8_controller_96;
|
||||||
|
break;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -116,11 +116,18 @@ namespace GHelper.Input
|
|||||||
|
|
||||||
if (keyApp != Keys.None) hook.RegisterHotKey(ModifierKeys.Shift | ModifierKeys.Control, keyApp);
|
if (keyApp != Keys.None) hook.RegisterHotKey(ModifierKeys.Shift | ModifierKeys.Control, keyApp);
|
||||||
|
|
||||||
hook.RegisterHotKey(ModifierKeys.Shift | ModifierKeys.Control | ModifierKeys.Alt, Keys.F14);
|
|
||||||
hook.RegisterHotKey(ModifierKeys.Shift | ModifierKeys.Control | ModifierKeys.Alt, Keys.F15);
|
|
||||||
|
|
||||||
if (!AppConfig.Is("skip_hotkeys"))
|
if (!AppConfig.Is("skip_hotkeys"))
|
||||||
{
|
{
|
||||||
|
hook.RegisterHotKey(ModifierKeys.Shift | ModifierKeys.Control | ModifierKeys.Alt, Keys.F14);
|
||||||
|
hook.RegisterHotKey(ModifierKeys.Shift | ModifierKeys.Control | ModifierKeys.Alt, Keys.F15);
|
||||||
|
|
||||||
|
hook.RegisterHotKey(ModifierKeys.Shift | ModifierKeys.Control | ModifierKeys.Alt, Keys.F16);
|
||||||
|
hook.RegisterHotKey(ModifierKeys.Shift | ModifierKeys.Control | ModifierKeys.Alt, Keys.F17);
|
||||||
|
hook.RegisterHotKey(ModifierKeys.Shift | ModifierKeys.Control | ModifierKeys.Alt, Keys.F18);
|
||||||
|
hook.RegisterHotKey(ModifierKeys.Shift | ModifierKeys.Control | ModifierKeys.Alt, Keys.F19);
|
||||||
|
hook.RegisterHotKey(ModifierKeys.Shift | ModifierKeys.Control | ModifierKeys.Alt, Keys.F20);
|
||||||
|
|
||||||
|
|
||||||
hook.RegisterHotKey(ModifierKeys.Control, Keys.VolumeDown);
|
hook.RegisterHotKey(ModifierKeys.Control, Keys.VolumeDown);
|
||||||
hook.RegisterHotKey(ModifierKeys.Control, Keys.VolumeUp);
|
hook.RegisterHotKey(ModifierKeys.Control, Keys.VolumeUp);
|
||||||
hook.RegisterHotKey(ModifierKeys.Shift, Keys.VolumeDown);
|
hook.RegisterHotKey(ModifierKeys.Shift, Keys.VolumeDown);
|
||||||
@@ -134,6 +141,14 @@ namespace GHelper.Input
|
|||||||
if (actionM2 is not null && actionM2.Length > 0) hook.RegisterHotKey(ModifierKeys.None, Keys.VolumeUp);
|
if (actionM2 is not null && actionM2.Length > 0) hook.RegisterHotKey(ModifierKeys.None, Keys.VolumeUp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (AppConfig.IsAlly())
|
||||||
|
{
|
||||||
|
hook.RegisterHotKey(ModifierKeys.Shift | ModifierKeys.Control | ModifierKeys.Alt, Keys.F1);
|
||||||
|
hook.RegisterHotKey(ModifierKeys.Shift | ModifierKeys.Control | ModifierKeys.Alt, Keys.F2);
|
||||||
|
hook.RegisterHotKey(ModifierKeys.Shift | ModifierKeys.Control | ModifierKeys.Alt, Keys.F3);
|
||||||
|
hook.RegisterHotKey(ModifierKeys.Shift | ModifierKeys.Control | ModifierKeys.Alt, Keys.F4);
|
||||||
|
}
|
||||||
|
|
||||||
// FN-Lock group
|
// FN-Lock group
|
||||||
|
|
||||||
if (AppConfig.Is("fn_lock") && !AppConfig.ContainsModel("VivoBook"))
|
if (AppConfig.Is("fn_lock") && !AppConfig.ContainsModel("VivoBook"))
|
||||||
@@ -351,12 +366,39 @@ namespace GHelper.Input
|
|||||||
|
|
||||||
switch (e.Key)
|
switch (e.Key)
|
||||||
{
|
{
|
||||||
|
case Keys.F1:
|
||||||
|
SetBrightness(-10);
|
||||||
|
break;
|
||||||
|
case Keys.F2:
|
||||||
|
SetBrightness(10);
|
||||||
|
break;
|
||||||
|
case Keys.F3:
|
||||||
|
Program.settingsForm.gpuControl.ToggleXGM(true);
|
||||||
|
break;
|
||||||
|
case Keys.F4:
|
||||||
|
Program.settingsForm.BeginInvoke(Program.settingsForm.allyControl.ToggleModeHotkey);
|
||||||
|
break;
|
||||||
case Keys.F14:
|
case Keys.F14:
|
||||||
Program.settingsForm.gpuControl.SetGPUMode(AsusACPI.GPUModeEco);
|
Program.settingsForm.gpuControl.SetGPUMode(AsusACPI.GPUModeEco);
|
||||||
break;
|
break;
|
||||||
case Keys.F15:
|
case Keys.F15:
|
||||||
Program.settingsForm.gpuControl.SetGPUMode(AsusACPI.GPUModeStandard);
|
Program.settingsForm.gpuControl.SetGPUMode(AsusACPI.GPUModeStandard);
|
||||||
break;
|
break;
|
||||||
|
case Keys.F16:
|
||||||
|
modeControl.SetPerformanceMode(2, true);
|
||||||
|
break;
|
||||||
|
case Keys.F17:
|
||||||
|
modeControl.SetPerformanceMode(0, true);
|
||||||
|
break;
|
||||||
|
case Keys.F18:
|
||||||
|
modeControl.SetPerformanceMode(1, true);
|
||||||
|
break;
|
||||||
|
case Keys.F19:
|
||||||
|
modeControl.SetPerformanceMode(3, true);
|
||||||
|
break;
|
||||||
|
case Keys.F20:
|
||||||
|
modeControl.SetPerformanceMode(4, true);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -478,6 +520,9 @@ namespace GHelper.Input
|
|||||||
case "calculator":
|
case "calculator":
|
||||||
LaunchProcess("calc");
|
LaunchProcess("calc");
|
||||||
break;
|
break;
|
||||||
|
case "controller":
|
||||||
|
Program.settingsForm.BeginInvoke(Program.settingsForm.allyControl.ToggleModeHotkey);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -568,6 +613,12 @@ namespace GHelper.Input
|
|||||||
case 56:
|
case 56:
|
||||||
KeyProcess("m4");
|
KeyProcess("m4");
|
||||||
return;
|
return;
|
||||||
|
case 162:
|
||||||
|
OnScreenKeyboard.Show();
|
||||||
|
return;
|
||||||
|
case 124:
|
||||||
|
KeyProcess("m3");
|
||||||
|
return;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
using HidSharp;
|
using GHelper.USB;
|
||||||
using GHelper.USB;
|
using HidSharp;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
namespace GHelper.Input
|
namespace GHelper.Input
|
||||||
{
|
{
|
||||||
@@ -7,17 +8,26 @@ namespace GHelper.Input
|
|||||||
{
|
{
|
||||||
|
|
||||||
CancellationTokenSource cancellationTokenSource = new CancellationTokenSource();
|
CancellationTokenSource cancellationTokenSource = new CancellationTokenSource();
|
||||||
|
Action<int> _handler;
|
||||||
|
|
||||||
public KeyboardListener(Action<int> KeyHandler)
|
public KeyboardListener(Action<int> KeyHandler)
|
||||||
{
|
{
|
||||||
|
_handler = KeyHandler;
|
||||||
|
var task = Task.Run(Listen);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Listen()
|
||||||
|
{
|
||||||
|
|
||||||
HidStream? input = AsusHid.FindHidStream(AsusHid.INPUT_ID);
|
HidStream? input = AsusHid.FindHidStream(AsusHid.INPUT_ID);
|
||||||
|
|
||||||
// Fallback
|
// Fallback
|
||||||
if (input == null)
|
int count = 0;
|
||||||
|
|
||||||
|
while (input == null && count++ < 10)
|
||||||
{
|
{
|
||||||
Aura.Init();
|
|
||||||
Thread.Sleep(1000);
|
Thread.Sleep(1000);
|
||||||
input = input = AsusHid.FindHidStream(AsusHid.INPUT_ID);
|
input = AsusHid.FindHidStream(AsusHid.INPUT_ID);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (input == null)
|
if (input == null)
|
||||||
@@ -26,41 +36,38 @@ namespace GHelper.Input
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
AsusHid.WriteInput(Encoding.ASCII.GetBytes("ZASUS Tech.Inc."));
|
||||||
Logger.WriteLine($"Input: {input.Device.DevicePath}");
|
Logger.WriteLine($"Input: {input.Device.DevicePath}");
|
||||||
|
|
||||||
var task = Task.Run(() =>
|
try
|
||||||
{
|
{
|
||||||
try
|
while (!cancellationTokenSource.Token.IsCancellationRequested)
|
||||||
{
|
{
|
||||||
while (!cancellationTokenSource.Token.IsCancellationRequested)
|
|
||||||
|
// Emergency break
|
||||||
|
if (input == null || !input.CanRead)
|
||||||
{
|
{
|
||||||
|
Logger.WriteLine("Listener terminated");
|
||||||
// Emergency break
|
break;
|
||||||
if (input == null || !input.CanRead)
|
|
||||||
{
|
|
||||||
Logger.WriteLine("Listener terminated");
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
input.ReadTimeout = int.MaxValue;
|
|
||||||
|
|
||||||
var data = input.Read();
|
|
||||||
if (data.Length > 1 && data[0] == AsusHid.INPUT_ID && data[1] > 0 && data[1] != 236)
|
|
||||||
{
|
|
||||||
Logger.WriteLine($"Key: {data[1]}");
|
|
||||||
KeyHandler(data[1]);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Logger.WriteLine("Listener stopped");
|
input.ReadTimeout = int.MaxValue;
|
||||||
|
|
||||||
|
var data = input.Read();
|
||||||
|
if (data.Length > 1 && data[0] == AsusHid.INPUT_ID && data[1] > 0 && data[1] != 236)
|
||||||
|
{
|
||||||
|
Logger.WriteLine($"Key: {data[1]}");
|
||||||
|
_handler(data[1]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
Logger.WriteLine(ex.ToString());
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
|
Logger.WriteLine("Listener stopped");
|
||||||
|
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Logger.WriteLine(ex.ToString());
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -319,7 +319,6 @@ namespace GHelper.Mode
|
|||||||
int clock_limit = AppConfig.GetMode("gpu_clock_limit");
|
int clock_limit = AppConfig.GetMode("gpu_clock_limit");
|
||||||
|
|
||||||
if (core == -1 && memory == -1 && clock_limit == -1) return;
|
if (core == -1 && memory == -1 && clock_limit == -1) return;
|
||||||
|
|
||||||
//if ((gpu_core > -5 && gpu_core < 5) && (gpu_memory > -5 && gpu_memory < 5)) launchAsAdmin = false;
|
//if ((gpu_core > -5 && gpu_core < 5) && (gpu_memory > -5 && gpu_memory < 5)) launchAsAdmin = false;
|
||||||
|
|
||||||
if (Program.acpi.DeviceGet(AsusACPI.GPUEco) == 1) { Logger.WriteLine("Clocks: Eco"); return; }
|
if (Program.acpi.DeviceGet(AsusACPI.GPUEco) == 1) { Logger.WriteLine("Clocks: Eco"); return; }
|
||||||
@@ -416,6 +415,8 @@ namespace GHelper.Mode
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!RyzenControl.IsRingExsists()) return;
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
SetUV(AppConfig.GetMode("cpu_uv", 0));
|
SetUV(AppConfig.GetMode("cpu_uv", 0));
|
||||||
|
|||||||
@@ -221,6 +221,63 @@
|
|||||||
LightingSetting[i] = ls;
|
LightingSetting[i] = ls;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
protected override PollingRate ParsePollingRate(byte[] packet)
|
||||||
|
{
|
||||||
|
if (packet[1] == 0x12 && packet[2] == 0x04 && packet[3] == 0x00)
|
||||||
|
{
|
||||||
|
return (PollingRate)packet[9];
|
||||||
|
}
|
||||||
|
|
||||||
|
return PollingRate.PR125Hz;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override byte[] GetUpdatePollingRatePacket(PollingRate pollingRate)
|
||||||
|
{
|
||||||
|
return new byte[] { reportId, 0x51, 0x31, 0x02, 0x00, (byte)pollingRate };
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override bool ParseAngleSnapping(byte[] packet)
|
||||||
|
{
|
||||||
|
if (packet[1] == 0x12 && packet[2] == 0x04 && packet[3] == 0x00)
|
||||||
|
{
|
||||||
|
return packet[13] == 0x01;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override byte[] GetUpdateAngleSnappingPacket(bool angleSnapping)
|
||||||
|
{
|
||||||
|
return new byte[] { reportId, 0x51, 0x31, 0x04, 0x00, (byte)(angleSnapping ? 0x01 : 0x00) };
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override DebounceTime ParseDebounce(byte[] packet)
|
||||||
|
{
|
||||||
|
if (packet[1] != 0x12 || packet[2] != 0x04 || packet[3] != 0x00)
|
||||||
|
{
|
||||||
|
return DebounceTime.MS12;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (packet[11] < 0x02)
|
||||||
|
{
|
||||||
|
return DebounceTime.MS12;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (packet[11] > 0x07)
|
||||||
|
{
|
||||||
|
return DebounceTime.MS32;
|
||||||
|
}
|
||||||
|
|
||||||
|
return (DebounceTime)packet[11];
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override byte[] GetUpdateDebouncePacket(DebounceTime debounce)
|
||||||
|
{
|
||||||
|
return new byte[] { reportId, 0x51, 0x31, 0x03, 0x00, ((byte)debounce) };
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//P502
|
//P502
|
||||||
|
|||||||
106
app/Peripherals/Mouse/Models/SpathaX.cs
Normal file
@@ -0,0 +1,106 @@
|
|||||||
|
|
||||||
|
namespace GHelper.Peripherals.Mouse.Models
|
||||||
|
{
|
||||||
|
//SPATHA_WIRELESS
|
||||||
|
public class SpathaX : AsusMouse
|
||||||
|
{
|
||||||
|
public SpathaX() : base(0x0B05, 0x1979, "mi_00", true)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
protected SpathaX(ushort vendorId, bool wireless) : base(0x0B05, vendorId, "mi_00", wireless)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public override string GetDisplayName()
|
||||||
|
{
|
||||||
|
return "ROG Spatha X (Wireless)";
|
||||||
|
}
|
||||||
|
|
||||||
|
public override PollingRate[] SupportedPollingrates()
|
||||||
|
{
|
||||||
|
return new PollingRate[] {
|
||||||
|
PollingRate.PR250Hz,
|
||||||
|
PollingRate.PR500Hz,
|
||||||
|
PollingRate.PR1000Hz
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool HasAngleSnapping()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override int ProfileCount()
|
||||||
|
{
|
||||||
|
return 5;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override int DPIProfileCount()
|
||||||
|
{
|
||||||
|
return 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override int MaxDPI()
|
||||||
|
{
|
||||||
|
return 19_000;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool HasXYDPI()
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool HasDebounceSetting()
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool HasLiftOffSetting()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool HasRGB()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override LightingZone[] SupportedLightingZones()
|
||||||
|
{
|
||||||
|
return new LightingZone[] { LightingZone.Logo, LightingZone.Scrollwheel, LightingZone.Underglow };
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool HasAutoPowerOff()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool HasAngleTuning()
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool HasLowBatteryWarning()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool HasDPIColors()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SpathaXWired : SpathaX
|
||||||
|
{
|
||||||
|
public SpathaXWired() : base(0x1977, false)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public override string GetDisplayName()
|
||||||
|
{
|
||||||
|
return "ROG Spatha X (Wired)";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
179
app/Peripherals/Mouse/Models/StrixCarry.cs
Normal file
@@ -0,0 +1,179 @@
|
|||||||
|
namespace GHelper.Peripherals.Mouse.Models
|
||||||
|
{
|
||||||
|
//P508
|
||||||
|
public class StrixCarry : AsusMouse
|
||||||
|
{
|
||||||
|
public StrixCarry() : base(0x0B05, 0x18B4, "mi_01", true)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public override int DPIProfileCount()
|
||||||
|
{
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override string GetDisplayName()
|
||||||
|
{
|
||||||
|
return "ROG Strix Carry (Wireless)";
|
||||||
|
}
|
||||||
|
|
||||||
|
public override PollingRate[] SupportedPollingrates()
|
||||||
|
{
|
||||||
|
return new PollingRate[] {
|
||||||
|
PollingRate.PR125Hz,
|
||||||
|
PollingRate.PR250Hz,
|
||||||
|
PollingRate.PR500Hz,
|
||||||
|
PollingRate.PR1000Hz
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public override int ProfileCount()
|
||||||
|
{
|
||||||
|
return 3;
|
||||||
|
}
|
||||||
|
public override int MaxDPI()
|
||||||
|
{
|
||||||
|
return 7_200;
|
||||||
|
}
|
||||||
|
public override int DPIIncrements()
|
||||||
|
{
|
||||||
|
return 100;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool HasDebounceSetting()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool HasLiftOffSetting()
|
||||||
|
{
|
||||||
|
//Potentially does nothing. AC does not show the setting, but the mouse responds to it and stores it.
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool HasRGB()
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool HasAutoPowerOff()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool HasAngleSnapping()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
public override bool HasXYDPI()
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool CanChangeDPIProfile()
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
//Has 25% increments only.
|
||||||
|
protected override int ParseBattery(byte[] packet)
|
||||||
|
{
|
||||||
|
if (packet[1] == 0x12 && packet[2] == 0x07)
|
||||||
|
{
|
||||||
|
return packet[7] * 25;
|
||||||
|
}
|
||||||
|
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override PowerOffSetting ParsePowerOffSetting(byte[] packet)
|
||||||
|
{
|
||||||
|
if (packet[1] == 0x12 && packet[2] == 0x07)
|
||||||
|
{
|
||||||
|
return (PowerOffSetting)packet[5];
|
||||||
|
}
|
||||||
|
|
||||||
|
return PowerOffSetting.Never;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override PollingRate ParsePollingRate(byte[] packet)
|
||||||
|
{
|
||||||
|
if (packet[1] == 0x12 && packet[2] == 0x04 && packet[3] == 0x00)
|
||||||
|
{
|
||||||
|
return (PollingRate)packet[9];
|
||||||
|
}
|
||||||
|
|
||||||
|
return PollingRate.PR125Hz;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override byte[] GetUpdatePollingRatePacket(PollingRate pollingRate)
|
||||||
|
{
|
||||||
|
return new byte[] { reportId, 0x51, 0x31, 0x02, 0x00, (byte)pollingRate };
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override bool ParseAngleSnapping(byte[] packet)
|
||||||
|
{
|
||||||
|
if (packet[1] == 0x12 && packet[2] == 0x04 && packet[3] == 0x00)
|
||||||
|
{
|
||||||
|
return packet[13] == 0x01;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override byte[] GetUpdateAngleSnappingPacket(bool angleSnapping)
|
||||||
|
{
|
||||||
|
return new byte[] { reportId, 0x51, 0x31, 0x04, 0x00, (byte)(angleSnapping ? 0x01 : 0x00) };
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override DebounceTime ParseDebounce(byte[] packet)
|
||||||
|
{
|
||||||
|
if (packet[1] != 0x12 || packet[2] != 0x04 || packet[3] != 0x00)
|
||||||
|
{
|
||||||
|
return DebounceTime.MS12;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (packet[11] < 0x02)
|
||||||
|
{
|
||||||
|
return DebounceTime.MS12;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (packet[11] > 0x07)
|
||||||
|
{
|
||||||
|
return DebounceTime.MS32;
|
||||||
|
}
|
||||||
|
|
||||||
|
return (DebounceTime)packet[11];
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override byte[] GetUpdateDebouncePacket(DebounceTime debounce)
|
||||||
|
{
|
||||||
|
return new byte[] { reportId, 0x51, 0x31, 0x03, 0x00, ((byte)debounce) };
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override int ParseProfile(byte[] packet)
|
||||||
|
{
|
||||||
|
if (packet[1] == 0x12 && packet[2] == 0x00 && packet[3] == 0x00)
|
||||||
|
{
|
||||||
|
return packet[10];
|
||||||
|
}
|
||||||
|
Logger.WriteLine(GetDisplayName() + ": Failed to decode active profile");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override int ParseDPIProfile(byte[] packet)
|
||||||
|
{
|
||||||
|
if (packet[1] == 0x12 && packet[2] == 0x00 && packet[3] == 0x00)
|
||||||
|
{
|
||||||
|
return packet[11];
|
||||||
|
}
|
||||||
|
Logger.WriteLine(GetDisplayName() + ": Failed to decode active profile");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override byte[] GetUpdateEnergySettingsPacket(int lowBatteryWarning, PowerOffSetting powerOff)
|
||||||
|
{
|
||||||
|
return new byte[] { 0x00, 0x51, 0x37, 0x00, 0x00, (byte)powerOff, 0x00, (byte)lowBatteryWarning };
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -212,6 +212,8 @@ namespace GHelper.Peripherals
|
|||||||
DetectMouse(new Chakram());
|
DetectMouse(new Chakram());
|
||||||
DetectMouse(new ChakramWired());
|
DetectMouse(new ChakramWired());
|
||||||
DetectMouse(new ChakramCore());
|
DetectMouse(new ChakramCore());
|
||||||
|
DetectMouse(new SpathaX());
|
||||||
|
DetectMouse(new StrixCarry());
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void DetectMouse(AsusMouse am)
|
public static void DetectMouse(AsusMouse am)
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
using GHelper.Ally;
|
||||||
using GHelper.Battery;
|
using GHelper.Battery;
|
||||||
using GHelper.Display;
|
using GHelper.Display;
|
||||||
using GHelper.Gpu;
|
using GHelper.Gpu;
|
||||||
@@ -30,6 +31,7 @@ namespace GHelper
|
|||||||
|
|
||||||
public static ModeControl modeControl = new ModeControl();
|
public static ModeControl modeControl = new ModeControl();
|
||||||
public static GPUModeControl gpuControl = new GPUModeControl(settingsForm);
|
public static GPUModeControl gpuControl = new GPUModeControl(settingsForm);
|
||||||
|
public static AllyControl allyControl = new AllyControl(settingsForm);
|
||||||
public static ScreenControl screenControl = new ScreenControl();
|
public static ScreenControl screenControl = new ScreenControl();
|
||||||
public static ClamshellModeControl clamshellControl = new ClamshellModeControl();
|
public static ClamshellModeControl clamshellControl = new ClamshellModeControl();
|
||||||
|
|
||||||
@@ -194,6 +196,10 @@ namespace GHelper
|
|||||||
|
|
||||||
if (settingsForm.matrixForm is not null && settingsForm.matrixForm.Text != "")
|
if (settingsForm.matrixForm is not null && settingsForm.matrixForm.Text != "")
|
||||||
settingsForm.matrixForm.InitTheme();
|
settingsForm.matrixForm.InitTheme();
|
||||||
|
|
||||||
|
if (settingsForm.handheldForm is not null && settingsForm.handheldForm.Text != "")
|
||||||
|
settingsForm.handheldForm.InitTheme();
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -223,8 +229,15 @@ namespace GHelper
|
|||||||
|
|
||||||
BatteryControl.AutoBattery(init);
|
BatteryControl.AutoBattery(init);
|
||||||
|
|
||||||
settingsForm.AutoKeyboard();
|
|
||||||
settingsForm.matrixControl.SetMatrix(true);
|
settingsForm.matrixControl.SetMatrix(true);
|
||||||
|
|
||||||
|
if (AppConfig.IsAlly())
|
||||||
|
{
|
||||||
|
allyControl.Init();
|
||||||
|
} else
|
||||||
|
{
|
||||||
|
settingsForm.AutoKeyboard();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void SystemEvents_PowerModeChanged(object sender, PowerModeChangedEventArgs e)
|
private static void SystemEvents_PowerModeChanged(object sender, PowerModeChangedEventArgs e)
|
||||||
@@ -265,7 +278,11 @@ namespace GHelper
|
|||||||
settingsForm.Activate();
|
settingsForm.Activate();
|
||||||
|
|
||||||
settingsForm.Left = Screen.FromControl(settingsForm).WorkingArea.Width - 10 - settingsForm.Width;
|
settingsForm.Left = Screen.FromControl(settingsForm).WorkingArea.Width - 10 - settingsForm.Width;
|
||||||
settingsForm.Top = Screen.FromControl(settingsForm).WorkingArea.Height - 10 - settingsForm.Height;
|
|
||||||
|
if (AppConfig.IsAlly())
|
||||||
|
settingsForm.Top = Math.Max(10, Screen.FromControl(settingsForm).Bounds.Height - 110 - settingsForm.Height);
|
||||||
|
else
|
||||||
|
settingsForm.Top = Screen.FromControl(settingsForm).WorkingArea.Height - 10 - settingsForm.Height;
|
||||||
|
|
||||||
settingsForm.VisualiseGPUMode();
|
settingsForm.VisualiseGPUMode();
|
||||||
}
|
}
|
||||||
|
|||||||
110
app/Properties/Resources.Designer.cs
generated
@@ -60,6 +60,16 @@ namespace GHelper.Properties {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap ally {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("ally", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -160,6 +170,16 @@ namespace GHelper.Properties {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap icons8_animation_32 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("icons8-animation-32", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -220,6 +240,36 @@ namespace GHelper.Properties {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap icons8_controller_32 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("icons8-controller-32", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap icons8_controller_96 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("icons8_controller_96", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap icons8_controls_32 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("icons8-controls-32", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -290,6 +340,16 @@ namespace GHelper.Properties {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap icons8_heartbeat_32 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("icons8-heartbeat-32", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -310,6 +370,16 @@ namespace GHelper.Properties {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap icons8_joystick_32 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("icons8-joystick-32", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -430,6 +500,16 @@ namespace GHelper.Properties {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap icons8_next_32 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("icons8-next-32", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -550,6 +630,16 @@ namespace GHelper.Properties {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap icons8_soonvibes_32 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("icons8-soonvibes-32", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -610,6 +700,26 @@ namespace GHelper.Properties {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap icons8_xbox_lt_32 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("icons8-xbox-lt-32", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap icons8_xbox_rt_32 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("icons8-xbox-rt-32", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -118,176 +118,170 @@
|
|||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
<data name="brightness_up" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="lighting_dot_24" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\brightness-up.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\lighting_dot_24.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
|
||||||
<data name="icons8_temperature_32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\icons8-temperature-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="backlight_down" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\backlight-down.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="icons8_mute_unmute_96" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\icons8-mute-unmute-96.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="icons8-hibernate-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\icons8-hibernate-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="icons8-quit-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\icons8-quit-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="icons8-fiat-500-48" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\icons8-fiat-500-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="icons8_microphone_96" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\icons8-microphone-96.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="icons8_voltage_32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\icons8-voltage-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="icons8-project-management-48 (1)" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\icons8-project-management-48 (1).png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="icons8-charging-battery-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\icons8-charging-battery-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="lighting_dot_32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\lighting_dot_32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="icons8_touchpad_96" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\icons8-touchpad-96.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="icons8-automation-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\icons8-automation-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="icons8_maus_32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\icons8-maus-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="icons8-help-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\icons8-help-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="icons8-software-32-white" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\icons8-software-32-white.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="icons8_add_64" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\icons8-add-64.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="icons8-game-controller-48" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\icons8-game-controller-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="icons8-refresh-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\icons8-refresh-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="icons8_share_32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\icons8-share-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="standard" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\standard.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
</data>
|
||||||
<data name="icons8_charged_battery_96" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="icons8_charged_battery_96" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\icons8-charged-battery-96.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\icons8-charged-battery-96.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="lighting_dot_24" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\lighting_dot_24.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="icons8-bicycle-48 (1)" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\icons8-bicycle-48 (1).png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="brightness_down" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\brightness-down.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="icons8_batterie_voll_geladen_48" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\icons8-batterie-voll-geladen-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="icons8_charging_battery_96" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\icons8-charging-battery-96.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="eco" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\eco.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="icons8-video-card-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\icons8-video-card-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="lighting_dot_48" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\lighting_dot_48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="icons8-rocket-48" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\icons8-rocket-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="icons8_edit_32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="icons8_edit_32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\icons8-edit-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\icons8-edit-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="backlight_up" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="icons8_microphone_96" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\backlight-up.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\icons8-microphone-96.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
|
||||||
<data name="icons8_video_48" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\icons8-video-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="icons8-save-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\icons8-save-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="icons8-log-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\icons8-log-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="icons8_function" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\icons8-function-mac-96.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="icons8-keyboard-32 (1)" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\icons8-keyboard-32 (1).png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="icons8-fan-48" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\icons8-fan-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
</data>
|
||||||
<data name="icons8_maus_48" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="icons8_maus_48" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\icons8-maus-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\icons8-maus-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="icons8_remove_64" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="icons8-bicycle-48 (1)" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\icons8-remove-64.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\icons8-bicycle-48 (1).png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="icons8_mauszeiger_50" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="eco" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\icons8-mauszeiger-50.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\eco.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="icons8-matrix-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="icons8_mute_unmute_96" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\icons8-matrix-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\icons8-mute-unmute-96.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="icons8-keyboard-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="icons8_batterie_voll_geladen_48" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\icons8-keyboard-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\icons8-batterie-voll-geladen-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="icons8_fan_32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="lighting_dot_48" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\icons8-fan-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\lighting_dot_48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="icons8_software_32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="icons8-quit-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\icons8-software-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\icons8-quit-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="icons8-gauge-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="icons8-controller-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\icons8-gauge-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\icons8-controller-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="icons8-leaf-48" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="icons8-controls-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\icons8-leaf-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\icons8-controls-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ultimate" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="icons8-next-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\ultimate.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\icons8-next-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="icons8-spa-flower-48" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="icons8-automation-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\icons8-spa-flower-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\icons8-automation-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="backlight" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="brightness_up" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\backlight.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\brightness-up.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
|
||||||
<data name="icons8-settings-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\icons8-settings-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
</data>
|
||||||
<data name="icons8_processor_32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="icons8_processor_32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\icons8-processor-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\icons8-processor-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="icons8-fiat-500-48" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\icons8-fiat-500-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="icons8_touchpad_96" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\icons8-touchpad-96.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="icons8-game-controller-48" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\icons8-game-controller-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="icons8-help-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\icons8-help-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="icons8-matrix-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\icons8-matrix-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
<data name="icons8-laptop-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="icons8-laptop-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\icons8-laptop-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\icons8-laptop-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="ally" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\ally.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="icons8_remove_64" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\icons8-remove-64.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="icons8_share_32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\icons8-share-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="icons8_function" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\icons8-function-mac-96.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="icons8-joystick-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\icons8-joystick-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="icons8-keyboard-32 (1)" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\icons8-keyboard-32 (1).png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="icons8-xbox-lt-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\icons8-xbox-lt-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="icons8-video-card-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\icons8-video-card-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="backlight" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\backlight.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="icons8-refresh-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\icons8-refresh-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="icons8-hibernate-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\icons8-hibernate-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="ultimate" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\ultimate.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="icons8-keyboard-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\icons8-keyboard-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="icons8-xbox-rt-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\icons8-xbox-rt-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="icons8_controller_96" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\icons8-controller-96.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="icons8-fan-48" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\icons8-fan-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="icons8-settings-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\icons8-settings-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="icons8_maus_32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\icons8-maus-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="icons8_charging_battery_96" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\icons8-charging-battery-96.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="icons8-animation-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\icons8-animation-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="dot_ultimate" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\dot-ultimate.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="brightness_down" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\brightness-down.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="backlight_up" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\backlight-up.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="backlight_down" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\backlight-down.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="icons8-spa-flower-48" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\icons8-spa-flower-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="dot_standard" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\dot-standard.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="icons8_rocket_32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\icons8-rocket-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="icons8-project-management-48 (1)" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\icons8-project-management-48 (1).png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="icons8_mauszeiger_50" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\icons8-mauszeiger-50.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="icons8-save-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\icons8-save-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
<data name="icons8_ladende_batterie_48" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="icons8_ladende_batterie_48" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\icons8-ladende-batterie-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\icons8-ladende-batterie-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="icons8_rocket_32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="icons8_video_48" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\icons8-rocket-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\icons8-video-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MFont" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="MFont" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\Font.otf;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>..\Resources\Font.otf;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
@@ -295,10 +289,49 @@
|
|||||||
<data name="dot_eco" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="dot_eco" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\dot-eco.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\dot-eco.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="dot_standard" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="icons8-gauge-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\dot-standard.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\icons8-gauge-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="dot_ultimate" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="icons8-rocket-48" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\dot-ultimate.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\icons8-rocket-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="icons8_fan_32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\icons8-fan-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="icons8_voltage_32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\icons8-voltage-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="icons8-software-32-white" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\icons8-software-32-white.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="icons8-log-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\icons8-log-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="icons8_temperature_32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\icons8-temperature-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="icons8-leaf-48" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\icons8-leaf-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="icons8_add_64" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\icons8-add-64.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="icons8_software_32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\icons8-software-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="standard" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\standard.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="icons8-soonvibes-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\icons8-soonvibes-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="lighting_dot_32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\lighting_dot_32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="icons8-charging-battery-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\icons8-charging-battery-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="icons8-heartbeat-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\icons8-heartbeat-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
</root>
|
</root>
|
||||||
20
app/Properties/Strings.Designer.cs
generated
@@ -1215,7 +1215,7 @@ namespace GHelper.Properties {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to Multizone.
|
/// Looks up a localized string similar to Multi Zone.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
internal static string Multizone {
|
internal static string Multizone {
|
||||||
get {
|
get {
|
||||||
@@ -1223,6 +1223,15 @@ namespace GHelper.Properties {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Multi Zone Strong.
|
||||||
|
/// </summary>
|
||||||
|
internal static string MultizoneStrong {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("MultizoneStrong", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to Mute Mic.
|
/// Looks up a localized string similar to Mute Mic.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -1268,6 +1277,15 @@ namespace GHelper.Properties {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to One Zone.
|
||||||
|
/// </summary>
|
||||||
|
internal static string OneZone {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("OneZone", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to Open G-Helper window.
|
/// Looks up a localized string similar to Open G-Helper window.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -504,7 +504,10 @@ Trotzdem fortfahren?</value>
|
|||||||
<value>Maus synchronisieren</value>
|
<value>Maus synchronisieren</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Multizone" xml:space="preserve">
|
<data name="Multizone" xml:space="preserve">
|
||||||
<value>Multi-Zone</value>
|
<value>Multi Zone</value>
|
||||||
|
</data>
|
||||||
|
<data name="MultizoneStrong" xml:space="preserve">
|
||||||
|
<value>Multi Zone Strong</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MuteMic" xml:space="preserve">
|
<data name="MuteMic" xml:space="preserve">
|
||||||
<value>Mikrofon stummschalten</value>
|
<value>Mikrofon stummschalten</value>
|
||||||
@@ -521,6 +524,9 @@ Trotzdem fortfahren?</value>
|
|||||||
<data name="NotConnected" xml:space="preserve">
|
<data name="NotConnected" xml:space="preserve">
|
||||||
<value>Nicht verbunden</value>
|
<value>Nicht verbunden</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="OneZone" xml:space="preserve">
|
||||||
|
<value>One Zone</value>
|
||||||
|
</data>
|
||||||
<data name="OpenGHelper" xml:space="preserve">
|
<data name="OpenGHelper" xml:space="preserve">
|
||||||
<value>G-Helper Fenster öffnen</value>
|
<value>G-Helper Fenster öffnen</value>
|
||||||
</data>
|
</data>
|
||||||
|
|||||||
@@ -506,6 +506,9 @@
|
|||||||
<data name="Multizone" xml:space="preserve">
|
<data name="Multizone" xml:space="preserve">
|
||||||
<value>Multizona</value>
|
<value>Multizona</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="MultizoneStrong" xml:space="preserve">
|
||||||
|
<value>Multizona fuerte</value>
|
||||||
|
</data>
|
||||||
<data name="MuteMic" xml:space="preserve">
|
<data name="MuteMic" xml:space="preserve">
|
||||||
<value>Silenciar micrófono</value>
|
<value>Silenciar micrófono</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -521,6 +524,9 @@
|
|||||||
<data name="NotConnected" xml:space="preserve">
|
<data name="NotConnected" xml:space="preserve">
|
||||||
<value>No conectado</value>
|
<value>No conectado</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="OneZone" xml:space="preserve">
|
||||||
|
<value>Una zona</value>
|
||||||
|
</data>
|
||||||
<data name="OpenGHelper" xml:space="preserve">
|
<data name="OpenGHelper" xml:space="preserve">
|
||||||
<value>Abrir ventana G-Helper</value>
|
<value>Abrir ventana G-Helper</value>
|
||||||
</data>
|
</data>
|
||||||
|
|||||||
@@ -504,7 +504,10 @@ Voulez-vous continuer ?</value>
|
|||||||
<value>Synchroniser avec le pointeur</value>
|
<value>Synchroniser avec le pointeur</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Multizone" xml:space="preserve">
|
<data name="Multizone" xml:space="preserve">
|
||||||
<value>Multi-zone</value>
|
<value>Multi Zone</value>
|
||||||
|
</data>
|
||||||
|
<data name="MultizoneStrong" xml:space="preserve">
|
||||||
|
<value>Multi Zone Strong</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MuteMic" xml:space="preserve">
|
<data name="MuteMic" xml:space="preserve">
|
||||||
<value>Désactiver le micro</value>
|
<value>Désactiver le micro</value>
|
||||||
@@ -521,6 +524,9 @@ Voulez-vous continuer ?</value>
|
|||||||
<data name="NotConnected" xml:space="preserve">
|
<data name="NotConnected" xml:space="preserve">
|
||||||
<value>Non connecté</value>
|
<value>Non connecté</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="OneZone" xml:space="preserve">
|
||||||
|
<value>One Zone</value>
|
||||||
|
</data>
|
||||||
<data name="OpenGHelper" xml:space="preserve">
|
<data name="OpenGHelper" xml:space="preserve">
|
||||||
<value>Ouvrir G-Helper</value>
|
<value>Ouvrir G-Helper</value>
|
||||||
</data>
|
</data>
|
||||||
|
|||||||
@@ -504,7 +504,10 @@ Do you still want to continue?</value>
|
|||||||
<value>Szinkronizálás egérrel</value>
|
<value>Szinkronizálás egérrel</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Multizone" xml:space="preserve">
|
<data name="Multizone" xml:space="preserve">
|
||||||
<value>Többzónás</value>
|
<value>Multi Zone</value>
|
||||||
|
</data>
|
||||||
|
<data name="MultizoneStrong" xml:space="preserve">
|
||||||
|
<value>Multi Zone Strong</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MuteMic" xml:space="preserve">
|
<data name="MuteMic" xml:space="preserve">
|
||||||
<value>Mikrofon némítása</value>
|
<value>Mikrofon némítása</value>
|
||||||
@@ -521,6 +524,9 @@ Do you still want to continue?</value>
|
|||||||
<data name="NotConnected" xml:space="preserve">
|
<data name="NotConnected" xml:space="preserve">
|
||||||
<value>Nincs csatlakoztatva</value>
|
<value>Nincs csatlakoztatva</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="OneZone" xml:space="preserve">
|
||||||
|
<value>One Zone</value>
|
||||||
|
</data>
|
||||||
<data name="OpenGHelper" xml:space="preserve">
|
<data name="OpenGHelper" xml:space="preserve">
|
||||||
<value>G-Helper ablak megnyitása</value>
|
<value>G-Helper ablak megnyitása</value>
|
||||||
</data>
|
</data>
|
||||||
|
|||||||
@@ -504,7 +504,10 @@ Apakah Anda masih ingin melanjutkan?</value>
|
|||||||
<value>Sinkronkan dengan mouse</value>
|
<value>Sinkronkan dengan mouse</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Multizone" xml:space="preserve">
|
<data name="Multizone" xml:space="preserve">
|
||||||
<value>Multizona</value>
|
<value>Multi Zone</value>
|
||||||
|
</data>
|
||||||
|
<data name="MultizoneStrong" xml:space="preserve">
|
||||||
|
<value>Multi Zone Strong</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MuteMic" xml:space="preserve">
|
<data name="MuteMic" xml:space="preserve">
|
||||||
<value>Bisukan Mic</value>
|
<value>Bisukan Mic</value>
|
||||||
@@ -521,6 +524,9 @@ Apakah Anda masih ingin melanjutkan?</value>
|
|||||||
<data name="NotConnected" xml:space="preserve">
|
<data name="NotConnected" xml:space="preserve">
|
||||||
<value>Tidak Tersambung</value>
|
<value>Tidak Tersambung</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="OneZone" xml:space="preserve">
|
||||||
|
<value>One Zone</value>
|
||||||
|
</data>
|
||||||
<data name="OpenGHelper" xml:space="preserve">
|
<data name="OpenGHelper" xml:space="preserve">
|
||||||
<value>Buka Jendela G-Helper</value>
|
<value>Buka Jendela G-Helper</value>
|
||||||
</data>
|
</data>
|
||||||
|
|||||||
@@ -504,7 +504,10 @@ Sei sicuro di voler continuare?</value>
|
|||||||
<value>Sincronizza con Mouse</value>
|
<value>Sincronizza con Mouse</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Multizone" xml:space="preserve">
|
<data name="Multizone" xml:space="preserve">
|
||||||
<value>Multizona</value>
|
<value>Multi Zone</value>
|
||||||
|
</data>
|
||||||
|
<data name="MultizoneStrong" xml:space="preserve">
|
||||||
|
<value>Multi Zone Strong</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MuteMic" xml:space="preserve">
|
<data name="MuteMic" xml:space="preserve">
|
||||||
<value>Silenzia microfono</value>
|
<value>Silenzia microfono</value>
|
||||||
@@ -521,6 +524,9 @@ Sei sicuro di voler continuare?</value>
|
|||||||
<data name="NotConnected" xml:space="preserve">
|
<data name="NotConnected" xml:space="preserve">
|
||||||
<value>Non Connesso</value>
|
<value>Non Connesso</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="OneZone" xml:space="preserve">
|
||||||
|
<value>One Zone</value>
|
||||||
|
</data>
|
||||||
<data name="OpenGHelper" xml:space="preserve">
|
<data name="OpenGHelper" xml:space="preserve">
|
||||||
<value>Apri G-Helper</value>
|
<value>Apri G-Helper</value>
|
||||||
</data>
|
</data>
|
||||||
|
|||||||
@@ -504,7 +504,10 @@
|
|||||||
<value>마우스와 동기화</value>
|
<value>마우스와 동기화</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Multizone" xml:space="preserve">
|
<data name="Multizone" xml:space="preserve">
|
||||||
<value>멀티존</value>
|
<value>Multi Zone</value>
|
||||||
|
</data>
|
||||||
|
<data name="MultizoneStrong" xml:space="preserve">
|
||||||
|
<value>Multi Zone Strong</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MuteMic" xml:space="preserve">
|
<data name="MuteMic" xml:space="preserve">
|
||||||
<value>마이크 음소거</value>
|
<value>마이크 음소거</value>
|
||||||
@@ -521,6 +524,9 @@
|
|||||||
<data name="NotConnected" xml:space="preserve">
|
<data name="NotConnected" xml:space="preserve">
|
||||||
<value>연결되지 않음</value>
|
<value>연결되지 않음</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="OneZone" xml:space="preserve">
|
||||||
|
<value>One Zone</value>
|
||||||
|
</data>
|
||||||
<data name="OpenGHelper" xml:space="preserve">
|
<data name="OpenGHelper" xml:space="preserve">
|
||||||
<value>G-Helper 열기</value>
|
<value>G-Helper 열기</value>
|
||||||
</data>
|
</data>
|
||||||
|
|||||||
@@ -504,7 +504,10 @@ Vis tiek norite tęsti?</value>
|
|||||||
<value>Sinchronizuoti su pele</value>
|
<value>Sinchronizuoti su pele</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Multizone" xml:space="preserve">
|
<data name="Multizone" xml:space="preserve">
|
||||||
<value>Daugiazonis</value>
|
<value>Multi Zone</value>
|
||||||
|
</data>
|
||||||
|
<data name="MultizoneStrong" xml:space="preserve">
|
||||||
|
<value>Multi Zone Strong</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MuteMic" xml:space="preserve">
|
<data name="MuteMic" xml:space="preserve">
|
||||||
<value>Mikrofono nutildymas</value>
|
<value>Mikrofono nutildymas</value>
|
||||||
@@ -521,6 +524,9 @@ Vis tiek norite tęsti?</value>
|
|||||||
<data name="NotConnected" xml:space="preserve">
|
<data name="NotConnected" xml:space="preserve">
|
||||||
<value>Neprijungta</value>
|
<value>Neprijungta</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="OneZone" xml:space="preserve">
|
||||||
|
<value>One Zone</value>
|
||||||
|
</data>
|
||||||
<data name="OpenGHelper" xml:space="preserve">
|
<data name="OpenGHelper" xml:space="preserve">
|
||||||
<value>Atidaryti G-Helper langą</value>
|
<value>Atidaryti G-Helper langą</value>
|
||||||
</data>
|
</data>
|
||||||
|
|||||||
@@ -504,7 +504,10 @@ Nadal chcesz kontynuować?</value>
|
|||||||
<value>Synchronizuj z myszką</value>
|
<value>Synchronizuj z myszką</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Multizone" xml:space="preserve">
|
<data name="Multizone" xml:space="preserve">
|
||||||
<value>Multizone</value>
|
<value>Wiele stref</value>
|
||||||
|
</data>
|
||||||
|
<data name="MultizoneStrong" xml:space="preserve">
|
||||||
|
<value>Wiele stref (mocniejsze)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MuteMic" xml:space="preserve">
|
<data name="MuteMic" xml:space="preserve">
|
||||||
<value>Wyciszenie mikrofonu</value>
|
<value>Wyciszenie mikrofonu</value>
|
||||||
@@ -521,6 +524,9 @@ Nadal chcesz kontynuować?</value>
|
|||||||
<data name="NotConnected" xml:space="preserve">
|
<data name="NotConnected" xml:space="preserve">
|
||||||
<value>Nie połączono</value>
|
<value>Nie połączono</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="OneZone" xml:space="preserve">
|
||||||
|
<value>Jedna strefa</value>
|
||||||
|
</data>
|
||||||
<data name="OpenGHelper" xml:space="preserve">
|
<data name="OpenGHelper" xml:space="preserve">
|
||||||
<value>Otwórz okno G-Helper</value>
|
<value>Otwórz okno G-Helper</value>
|
||||||
</data>
|
</data>
|
||||||
|
|||||||
@@ -504,7 +504,10 @@ Do you still want to continue?</value>
|
|||||||
<value>Synchronize with mouse</value>
|
<value>Synchronize with mouse</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Multizone" xml:space="preserve">
|
<data name="Multizone" xml:space="preserve">
|
||||||
<value>Multizona</value>
|
<value>Multi Zone</value>
|
||||||
|
</data>
|
||||||
|
<data name="MultizoneStrong" xml:space="preserve">
|
||||||
|
<value>Multi Zone Strong</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MuteMic" xml:space="preserve">
|
<data name="MuteMic" xml:space="preserve">
|
||||||
<value>Desligar microfone</value>
|
<value>Desligar microfone</value>
|
||||||
@@ -521,6 +524,9 @@ Do you still want to continue?</value>
|
|||||||
<data name="NotConnected" xml:space="preserve">
|
<data name="NotConnected" xml:space="preserve">
|
||||||
<value>Not Connected</value>
|
<value>Not Connected</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="OneZone" xml:space="preserve">
|
||||||
|
<value>One Zone</value>
|
||||||
|
</data>
|
||||||
<data name="OpenGHelper" xml:space="preserve">
|
<data name="OpenGHelper" xml:space="preserve">
|
||||||
<value>Abrir G-Helper</value>
|
<value>Abrir G-Helper</value>
|
||||||
</data>
|
</data>
|
||||||
|
|||||||
@@ -124,10 +124,10 @@
|
|||||||
<value>Não foi possível conectar ao ASUS ACPI. O programa não funciona sem esse serviço. Tente instalar Asus System Control Interface</value>
|
<value>Não foi possível conectar ao ASUS ACPI. O programa não funciona sem esse serviço. Tente instalar Asus System Control Interface</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AlertAPUMemoryRestart" xml:space="preserve">
|
<data name="AlertAPUMemoryRestart" xml:space="preserve">
|
||||||
<value>Restart your device to apply changes</value>
|
<value>Reinicie o dispositivo para aplicar as alterações</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AlertAPUMemoryRestartTitle" xml:space="preserve">
|
<data name="AlertAPUMemoryRestartTitle" xml:space="preserve">
|
||||||
<value>Restart now?</value>
|
<value>Reiniciar agora?</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AlertDGPU" xml:space="preserve">
|
<data name="AlertDGPU" xml:space="preserve">
|
||||||
<value>Parece que o GPU está em uso pesado, desativá-lo?</value>
|
<value>Parece que o GPU está em uso pesado, desativá-lo?</value>
|
||||||
@@ -169,7 +169,7 @@
|
|||||||
<value>Ajuste automático dos modos de energia do Windows</value>
|
<value>Ajuste automático dos modos de energia do Windows</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="APUMemory" xml:space="preserve">
|
<data name="APUMemory" xml:space="preserve">
|
||||||
<value>Memory Assigned to GPU</value>
|
<value>Memória Alocada à GPU</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AsusServicesRunning" xml:space="preserve">
|
<data name="AsusServicesRunning" xml:space="preserve">
|
||||||
<value>Serviços da Asus em execução</value>
|
<value>Serviços da Asus em execução</value>
|
||||||
@@ -250,10 +250,10 @@
|
|||||||
<value>Tempo limite ligado à corrente / na bateria (0 - ON)</value>
|
<value>Tempo limite ligado à corrente / na bateria (0 - ON)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BacklightTimeoutBattery" xml:space="preserve">
|
<data name="BacklightTimeoutBattery" xml:space="preserve">
|
||||||
<value>Backlight Timeout when on battery</value>
|
<value>Desligar o ecrã após (em Bateria)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BacklightTimeoutPlugged" xml:space="preserve">
|
<data name="BacklightTimeoutPlugged" xml:space="preserve">
|
||||||
<value>Backlight Timeout when plugged</value>
|
<value>Desligar o ecrã após (ligado à corrente)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Balanced" xml:space="preserve">
|
<data name="Balanced" xml:space="preserve">
|
||||||
<value>Equilibrado</value>
|
<value>Equilibrado</value>
|
||||||
@@ -504,7 +504,10 @@ Quer prosseguir?</value>
|
|||||||
<value>Sincronizar com o rato</value>
|
<value>Sincronizar com o rato</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Multizone" xml:space="preserve">
|
<data name="Multizone" xml:space="preserve">
|
||||||
<value>Multizona</value>
|
<value>Multi Zone</value>
|
||||||
|
</data>
|
||||||
|
<data name="MultizoneStrong" xml:space="preserve">
|
||||||
|
<value>Multi Zone Strong</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MuteMic" xml:space="preserve">
|
<data name="MuteMic" xml:space="preserve">
|
||||||
<value>Desligar microfone</value>
|
<value>Desligar microfone</value>
|
||||||
@@ -521,6 +524,9 @@ Quer prosseguir?</value>
|
|||||||
<data name="NotConnected" xml:space="preserve">
|
<data name="NotConnected" xml:space="preserve">
|
||||||
<value>Não conectado</value>
|
<value>Não conectado</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="OneZone" xml:space="preserve">
|
||||||
|
<value>One Zone</value>
|
||||||
|
</data>
|
||||||
<data name="OpenGHelper" xml:space="preserve">
|
<data name="OpenGHelper" xml:space="preserve">
|
||||||
<value>Abrir G-Helper</value>
|
<value>Abrir G-Helper</value>
|
||||||
</data>
|
</data>
|
||||||
|
|||||||
@@ -504,7 +504,10 @@ Do you still want to continue?</value>
|
|||||||
<value>Synchronize with mouse</value>
|
<value>Synchronize with mouse</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Multizone" xml:space="preserve">
|
<data name="Multizone" xml:space="preserve">
|
||||||
<value>Multizone</value>
|
<value>Multi Zone</value>
|
||||||
|
</data>
|
||||||
|
<data name="MultizoneStrong" xml:space="preserve">
|
||||||
|
<value>Multi Zone Strong</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MuteMic" xml:space="preserve">
|
<data name="MuteMic" xml:space="preserve">
|
||||||
<value>Mute Mic</value>
|
<value>Mute Mic</value>
|
||||||
@@ -521,6 +524,9 @@ Do you still want to continue?</value>
|
|||||||
<data name="NotConnected" xml:space="preserve">
|
<data name="NotConnected" xml:space="preserve">
|
||||||
<value>Not Connected</value>
|
<value>Not Connected</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="OneZone" xml:space="preserve">
|
||||||
|
<value>One Zone</value>
|
||||||
|
</data>
|
||||||
<data name="OpenGHelper" xml:space="preserve">
|
<data name="OpenGHelper" xml:space="preserve">
|
||||||
<value>Open G-Helper window</value>
|
<value>Open G-Helper window</value>
|
||||||
</data>
|
</data>
|
||||||
|
|||||||
@@ -118,16 +118,16 @@
|
|||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<data name="Acceleration" xml:space="preserve">
|
<data name="Acceleration" xml:space="preserve">
|
||||||
<value>Acceleration</value>
|
<value>Accelerare</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ACPIError" xml:space="preserve">
|
<data name="ACPIError" xml:space="preserve">
|
||||||
<value>Nu se poate conecta la ASUS ACPI. Aplicația nu poate funcționa fără aceasta. Încercați să instalați Asus System Control Interface</value>
|
<value>Nu se poate conecta la ASUS ACPI. Aplicația nu poate funcționa fără aceasta. Încercați să instalați Asus System Control Interface</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AlertAPUMemoryRestart" xml:space="preserve">
|
<data name="AlertAPUMemoryRestart" xml:space="preserve">
|
||||||
<value>Restart your device to apply changes</value>
|
<value>Reporniți dispozitivul pentru a aplica modificările</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AlertAPUMemoryRestartTitle" xml:space="preserve">
|
<data name="AlertAPUMemoryRestartTitle" xml:space="preserve">
|
||||||
<value>Restart now?</value>
|
<value>Reporniți acum?</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AlertDGPU" xml:space="preserve">
|
<data name="AlertDGPU" xml:space="preserve">
|
||||||
<value>Se pare că GPU-ul este folosit intens, dezactivați?</value>
|
<value>Se pare că GPU-ul este folosit intens, dezactivați?</value>
|
||||||
@@ -169,34 +169,34 @@
|
|||||||
<value>Reglare automată a modului de alimentare Windows</value>
|
<value>Reglare automată a modului de alimentare Windows</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="APUMemory" xml:space="preserve">
|
<data name="APUMemory" xml:space="preserve">
|
||||||
<value>Memory Assigned to GPU</value>
|
<value>Memorie alocată GPU-ului</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AsusServicesRunning" xml:space="preserve">
|
<data name="AsusServicesRunning" xml:space="preserve">
|
||||||
<value>Servicii Asus în derulare</value>
|
<value>Servicii Asus în derulare</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AuraBatteryState" xml:space="preserve">
|
<data name="AuraBatteryState" xml:space="preserve">
|
||||||
<value>Battery State</value>
|
<value>Starea bateriei</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AuraBreathe" xml:space="preserve">
|
<data name="AuraBreathe" xml:space="preserve">
|
||||||
<value>Respirație</value>
|
<value>Respirație</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AuraClockwise" xml:space="preserve">
|
<data name="AuraClockwise" xml:space="preserve">
|
||||||
<value>Clockwise</value>
|
<value>În sensul acelor de ceas</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AuraColorCycle" xml:space="preserve">
|
<data name="AuraColorCycle" xml:space="preserve">
|
||||||
<value>Ciclu de culori</value>
|
<value>Ciclu de culori</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AuraComet" xml:space="preserve">
|
<data name="AuraComet" xml:space="preserve">
|
||||||
<value>Comet</value>
|
<value>Cometă</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AuraCounterClockwise" xml:space="preserve">
|
<data name="AuraCounterClockwise" xml:space="preserve">
|
||||||
<value>Counterclockwise</value>
|
<value>În sens invers acelor de ceas</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AuraFast" xml:space="preserve">
|
<data name="AuraFast" xml:space="preserve">
|
||||||
<value>Rapid</value>
|
<value>Rapid</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AuraLightingMode" xml:space="preserve">
|
<data name="AuraLightingMode" xml:space="preserve">
|
||||||
<value>Lighting Mode</value>
|
<value>Mod iluminare</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AuraNormal" xml:space="preserve">
|
<data name="AuraNormal" xml:space="preserve">
|
||||||
<value>Normal</value>
|
<value>Normal</value>
|
||||||
@@ -205,10 +205,10 @@
|
|||||||
<value>Curcubeu</value>
|
<value>Curcubeu</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AuraRandomColor" xml:space="preserve">
|
<data name="AuraRandomColor" xml:space="preserve">
|
||||||
<value>Random</value>
|
<value>Aleatoriu</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AuraReact" xml:space="preserve">
|
<data name="AuraReact" xml:space="preserve">
|
||||||
<value>React</value>
|
<value>Reacție</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AuraSlow" xml:space="preserve">
|
<data name="AuraSlow" xml:space="preserve">
|
||||||
<value>Încet</value>
|
<value>Încet</value>
|
||||||
@@ -220,7 +220,7 @@
|
|||||||
<value>Stroboscop</value>
|
<value>Stroboscop</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AuraZoneAll" xml:space="preserve">
|
<data name="AuraZoneAll" xml:space="preserve">
|
||||||
<value>All</value>
|
<value>Toate</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AuraZoneDock" xml:space="preserve">
|
<data name="AuraZoneDock" xml:space="preserve">
|
||||||
<value>Dock</value>
|
<value>Dock</value>
|
||||||
@@ -229,10 +229,10 @@
|
|||||||
<value>Logo</value>
|
<value>Logo</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AuraZoneScroll" xml:space="preserve">
|
<data name="AuraZoneScroll" xml:space="preserve">
|
||||||
<value>Scrollwheel</value>
|
<value>Rotiță scroll</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AuraZoneUnderglow" xml:space="preserve">
|
<data name="AuraZoneUnderglow" xml:space="preserve">
|
||||||
<value>Underglow</value>
|
<value>Iluminare de jos</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AutoApply" xml:space="preserve">
|
<data name="AutoApply" xml:space="preserve">
|
||||||
<value>Aplicare automată</value>
|
<value>Aplicare automată</value>
|
||||||
@@ -250,16 +250,16 @@
|
|||||||
<value>Timeout conectat / folosind bateria (0 - ON)</value>
|
<value>Timeout conectat / folosind bateria (0 - ON)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BacklightTimeoutBattery" xml:space="preserve">
|
<data name="BacklightTimeoutBattery" xml:space="preserve">
|
||||||
<value>Backlight Timeout when on battery</value>
|
<value>Timp oprire iluminare pe baterie</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BacklightTimeoutPlugged" xml:space="preserve">
|
<data name="BacklightTimeoutPlugged" xml:space="preserve">
|
||||||
<value>Backlight Timeout when plugged</value>
|
<value>Timp oprire iluminare când e conectat</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Balanced" xml:space="preserve">
|
<data name="Balanced" xml:space="preserve">
|
||||||
<value>Echilibrat</value>
|
<value>Echilibrat</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BatteryCharge" xml:space="preserve">
|
<data name="BatteryCharge" xml:space="preserve">
|
||||||
<value>Charge</value>
|
<value>Încărcare</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BatteryChargeLimit" xml:space="preserve">
|
<data name="BatteryChargeLimit" xml:space="preserve">
|
||||||
<value>Limita de încărcare a bateriei</value>
|
<value>Limita de încărcare a bateriei</value>
|
||||||
@@ -268,7 +268,7 @@
|
|||||||
<value>Sănătatea bateriei</value>
|
<value>Sănătatea bateriei</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BatteryLimitFull" xml:space="preserve">
|
<data name="BatteryLimitFull" xml:space="preserve">
|
||||||
<value>One time charge to 100%</value>
|
<value>Încarcă o dată la 100%</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BiosAndDriverUpdates" xml:space="preserve">
|
<data name="BiosAndDriverUpdates" xml:space="preserve">
|
||||||
<value>Actualizări BIOS și Driver</value>
|
<value>Actualizări BIOS și Driver</value>
|
||||||
@@ -277,7 +277,7 @@
|
|||||||
<value>Pornire</value>
|
<value>Pornire</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BootSound" xml:space="preserve">
|
<data name="BootSound" xml:space="preserve">
|
||||||
<value>Boot Sound</value>
|
<value>Sunet la pornire</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Brightness" xml:space="preserve">
|
<data name="Brightness" xml:space="preserve">
|
||||||
<value>Luminozitate</value>
|
<value>Luminozitate</value>
|
||||||
@@ -289,7 +289,7 @@
|
|||||||
<value>Mărirea luminozității</value>
|
<value>Mărirea luminozității</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Calibrate" xml:space="preserve">
|
<data name="Calibrate" xml:space="preserve">
|
||||||
<value>Calibrate</value>
|
<value>Calibrează</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Charging" xml:space="preserve">
|
<data name="Charging" xml:space="preserve">
|
||||||
<value>Se încarcă</value>
|
<value>Se încarcă</value>
|
||||||
@@ -304,7 +304,7 @@
|
|||||||
<value>Personalizat</value>
|
<value>Personalizat</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Deceleration" xml:space="preserve">
|
<data name="Deceleration" xml:space="preserve">
|
||||||
<value>Deceleration</value>
|
<value>Decelerare</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Default" xml:space="preserve">
|
<data name="Default" xml:space="preserve">
|
||||||
<value>Implicit</value>
|
<value>Implicit</value>
|
||||||
@@ -316,7 +316,7 @@
|
|||||||
<value>Se descarcă</value>
|
<value>Se descarcă</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="DownloadUpdate" xml:space="preserve">
|
<data name="DownloadUpdate" xml:space="preserve">
|
||||||
<value>Download</value>
|
<value>Descarcă</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="DriverAndSoftware" xml:space="preserve">
|
<data name="DriverAndSoftware" xml:space="preserve">
|
||||||
<value>Drivers și Aplicații</value>
|
<value>Drivers și Aplicații</value>
|
||||||
@@ -336,7 +336,7 @@
|
|||||||
<value>NVIDIA Display Mode nu este setat la modul Optimus</value>
|
<value>NVIDIA Display Mode nu este setat la modul Optimus</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="EnergySettings" xml:space="preserve">
|
<data name="EnergySettings" xml:space="preserve">
|
||||||
<value>Energy Settings</value>
|
<value>Setări energie</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Extra" xml:space="preserve">
|
<data name="Extra" xml:space="preserve">
|
||||||
<value>Extra</value>
|
<value>Extra</value>
|
||||||
@@ -405,10 +405,10 @@
|
|||||||
<value>Temperatura țintă</value>
|
<value>Temperatura țintă</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="HibernateAfter" xml:space="preserve">
|
<data name="HibernateAfter" xml:space="preserve">
|
||||||
<value>Minutes till Hibernation in sleep on battery (0 - OFF)</value>
|
<value>Minute până la Hibernare în mod repaus pe baterie (0 - Oprit)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="High" xml:space="preserve">
|
<data name="High" xml:space="preserve">
|
||||||
<value>High</value>
|
<value>Ridicat</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="KeyBindings" xml:space="preserve">
|
<data name="KeyBindings" xml:space="preserve">
|
||||||
<value>Asocieri taste</value>
|
<value>Asocieri taste</value>
|
||||||
@@ -429,19 +429,19 @@
|
|||||||
<value>Ecran Laptop</value>
|
<value>Ecran Laptop</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Lid" xml:space="preserve">
|
<data name="Lid" xml:space="preserve">
|
||||||
<value>Lid</value>
|
<value>Capac</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Lightbar" xml:space="preserve">
|
<data name="Lightbar" xml:space="preserve">
|
||||||
<value>Lightbar</value>
|
<value>Lightbar</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Lighting" xml:space="preserve">
|
<data name="Lighting" xml:space="preserve">
|
||||||
<value>Lighting</value>
|
<value>Iluminare</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Logo" xml:space="preserve">
|
<data name="Logo" xml:space="preserve">
|
||||||
<value>Logo-ul</value>
|
<value>Logo-ul</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Low" xml:space="preserve">
|
<data name="Low" xml:space="preserve">
|
||||||
<value>Low</value>
|
<value>Scăzut</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MatrixAudio" xml:space="preserve">
|
<data name="MatrixAudio" xml:space="preserve">
|
||||||
<value>Vizualizator audio</value>
|
<value>Vizualizator audio</value>
|
||||||
@@ -471,46 +471,49 @@
|
|||||||
<value>Imagine</value>
|
<value>Imagine</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MaxRefreshTooltip" xml:space="preserve">
|
<data name="MaxRefreshTooltip" xml:space="preserve">
|
||||||
<value>Valoare maximă refresh rate pentru latență mai mică</value>
|
<value>Rata maximă de reîmprospătare pentru latență mai mică</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MinRefreshTooltip" xml:space="preserve">
|
<data name="MinRefreshTooltip" xml:space="preserve">
|
||||||
<value>60Hz refresh rate pentru a economisi bateria</value>
|
<value>60Hz rată de reîmprospătare pentru a economisi bateria</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Minute" xml:space="preserve">
|
<data name="Minute" xml:space="preserve">
|
||||||
<value>Minute</value>
|
<value>Minut</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Minutes" xml:space="preserve">
|
<data name="Minutes" xml:space="preserve">
|
||||||
<value>Minutes</value>
|
<value>Minute</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MouseAngleSnapping" xml:space="preserve">
|
<data name="MouseAngleSnapping" xml:space="preserve">
|
||||||
<value>Angle Snapping</value>
|
<value>Fixare mișcare la unghi</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MouseAutoPowerOff" xml:space="preserve">
|
<data name="MouseAutoPowerOff" xml:space="preserve">
|
||||||
<value>Auto Power Off After</value>
|
<value>Oprire automată după</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MouseButtonResponse" xml:space="preserve">
|
<data name="MouseButtonResponse" xml:space="preserve">
|
||||||
<value>Button Response</value>
|
<value>Răspuns buton</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MouseLiftOffDistance" xml:space="preserve">
|
<data name="MouseLiftOffDistance" xml:space="preserve">
|
||||||
<value>Lift Off Distance</value>
|
<value>Distanța de oprire</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MouseLowBatteryWarning" xml:space="preserve">
|
<data name="MouseLowBatteryWarning" xml:space="preserve">
|
||||||
<value>Low Battery Warning at</value>
|
<value>Avertizare baterie scăzută la</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MousePerformance" xml:space="preserve">
|
<data name="MousePerformance" xml:space="preserve">
|
||||||
<value>Performance</value>
|
<value>Performanță</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MouseSynchronize" xml:space="preserve">
|
<data name="MouseSynchronize" xml:space="preserve">
|
||||||
<value>Synchronize with mouse</value>
|
<value>Sincronizare cu mouse-ul</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Multizone" xml:space="preserve">
|
<data name="Multizone" xml:space="preserve">
|
||||||
<value>Multizone</value>
|
<value>Multi Zone</value>
|
||||||
|
</data>
|
||||||
|
<data name="MultizoneStrong" xml:space="preserve">
|
||||||
|
<value>Multi Zone Strong</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MuteMic" xml:space="preserve">
|
<data name="MuteMic" xml:space="preserve">
|
||||||
<value>Oprire microfon</value>
|
<value>Oprire microfon</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Never" xml:space="preserve">
|
<data name="Never" xml:space="preserve">
|
||||||
<value>Never</value>
|
<value>Niciodată</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="NewUpdates" xml:space="preserve">
|
<data name="NewUpdates" xml:space="preserve">
|
||||||
<value>Actualizări noi</value>
|
<value>Actualizări noi</value>
|
||||||
@@ -519,7 +522,10 @@
|
|||||||
<value>Nu există actualizări noi</value>
|
<value>Nu există actualizări noi</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="NotConnected" xml:space="preserve">
|
<data name="NotConnected" xml:space="preserve">
|
||||||
<value>Not Connected</value>
|
<value>Neconectat</value>
|
||||||
|
</data>
|
||||||
|
<data name="OneZone" xml:space="preserve">
|
||||||
|
<value>One Zone</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="OpenGHelper" xml:space="preserve">
|
<data name="OpenGHelper" xml:space="preserve">
|
||||||
<value>Deschide fereastra G-Helper</value>
|
<value>Deschide fereastra G-Helper</value>
|
||||||
@@ -543,7 +549,7 @@
|
|||||||
<value>Mod</value>
|
<value>Mod</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Peripherals" xml:space="preserve">
|
<data name="Peripherals" xml:space="preserve">
|
||||||
<value>Peripherals</value>
|
<value>Periferice</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="PictureGif" xml:space="preserve">
|
<data name="PictureGif" xml:space="preserve">
|
||||||
<value>Poză / Gif</value>
|
<value>Poză / Gif</value>
|
||||||
@@ -552,7 +558,7 @@
|
|||||||
<value>Redare / Pauză</value>
|
<value>Redare / Pauză</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="PollingRate" xml:space="preserve">
|
<data name="PollingRate" xml:space="preserve">
|
||||||
<value>Polling Rate</value>
|
<value>Rată sondaj</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="PowerLimits" xml:space="preserve">
|
<data name="PowerLimits" xml:space="preserve">
|
||||||
<value>Limite de putere</value>
|
<value>Limite de putere</value>
|
||||||
@@ -564,13 +570,13 @@
|
|||||||
<value>PrintScreen</value>
|
<value>PrintScreen</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Profile" xml:space="preserve">
|
<data name="Profile" xml:space="preserve">
|
||||||
<value>Profile</value>
|
<value>Profil</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Quit" xml:space="preserve">
|
<data name="Quit" xml:space="preserve">
|
||||||
<value>Închide</value>
|
<value>Închide</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="RestartGPU" xml:space="preserve">
|
<data name="RestartGPU" xml:space="preserve">
|
||||||
<value>Something is using dGPU and preventing Eco mode. Let G-Helper try to restart dGPU in device manager? (Please proceed at your own risk)</value>
|
<value>Ceva folosește dGPU și previne modul Eco. Permiteți G-Helper să repornească dGPU în managerul de dispozitive? (Continuați pe propriul risc)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="RPM" xml:space="preserve">
|
<data name="RPM" xml:space="preserve">
|
||||||
<value>RPM</value>
|
<value>RPM</value>
|
||||||
|
|||||||
@@ -504,7 +504,10 @@ Yine de devam etmek istiyor musunuz?</value>
|
|||||||
<value>Fare ile senkronize edin</value>
|
<value>Fare ile senkronize edin</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Multizone" xml:space="preserve">
|
<data name="Multizone" xml:space="preserve">
|
||||||
<value>Çoklu Bölge</value>
|
<value>Multi Zone</value>
|
||||||
|
</data>
|
||||||
|
<data name="MultizoneStrong" xml:space="preserve">
|
||||||
|
<value>Multi Zone Strong</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MuteMic" xml:space="preserve">
|
<data name="MuteMic" xml:space="preserve">
|
||||||
<value>Mikrofonu Sustur</value>
|
<value>Mikrofonu Sustur</value>
|
||||||
@@ -521,6 +524,9 @@ Yine de devam etmek istiyor musunuz?</value>
|
|||||||
<data name="NotConnected" xml:space="preserve">
|
<data name="NotConnected" xml:space="preserve">
|
||||||
<value>Bağlantı Yok</value>
|
<value>Bağlantı Yok</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="OneZone" xml:space="preserve">
|
||||||
|
<value>One Zone</value>
|
||||||
|
</data>
|
||||||
<data name="OpenGHelper" xml:space="preserve">
|
<data name="OpenGHelper" xml:space="preserve">
|
||||||
<value>G-Helper penceresini aç</value>
|
<value>G-Helper penceresini aç</value>
|
||||||
</data>
|
</data>
|
||||||
|
|||||||
@@ -504,7 +504,10 @@
|
|||||||
<value>Синхронізувати з мишею</value>
|
<value>Синхронізувати з мишею</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Multizone" xml:space="preserve">
|
<data name="Multizone" xml:space="preserve">
|
||||||
<value>Мультизони</value>
|
<value>Multi Zone</value>
|
||||||
|
</data>
|
||||||
|
<data name="MultizoneStrong" xml:space="preserve">
|
||||||
|
<value>Multi Zone Strong</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MuteMic" xml:space="preserve">
|
<data name="MuteMic" xml:space="preserve">
|
||||||
<value>Вимкнути мікрофон</value>
|
<value>Вимкнути мікрофон</value>
|
||||||
@@ -521,6 +524,9 @@
|
|||||||
<data name="NotConnected" xml:space="preserve">
|
<data name="NotConnected" xml:space="preserve">
|
||||||
<value>Не під'єднано</value>
|
<value>Не під'єднано</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="OneZone" xml:space="preserve">
|
||||||
|
<value>One Zone</value>
|
||||||
|
</data>
|
||||||
<data name="OpenGHelper" xml:space="preserve">
|
<data name="OpenGHelper" xml:space="preserve">
|
||||||
<value>Відкрити вікно G-Helper</value>
|
<value>Відкрити вікно G-Helper</value>
|
||||||
</data>
|
</data>
|
||||||
|
|||||||
@@ -504,7 +504,10 @@ Do you still want to continue?</value>
|
|||||||
<value>Synchronize with mouse</value>
|
<value>Synchronize with mouse</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Multizone" xml:space="preserve">
|
<data name="Multizone" xml:space="preserve">
|
||||||
<value>Đèn nền Đa vùng(Multi-Zone)</value>
|
<value>Multi Zone</value>
|
||||||
|
</data>
|
||||||
|
<data name="MultizoneStrong" xml:space="preserve">
|
||||||
|
<value>Multi Zone Strong</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MuteMic" xml:space="preserve">
|
<data name="MuteMic" xml:space="preserve">
|
||||||
<value>Tắt Mic</value>
|
<value>Tắt Mic</value>
|
||||||
@@ -521,6 +524,9 @@ Do you still want to continue?</value>
|
|||||||
<data name="NotConnected" xml:space="preserve">
|
<data name="NotConnected" xml:space="preserve">
|
||||||
<value>Not Connected</value>
|
<value>Not Connected</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="OneZone" xml:space="preserve">
|
||||||
|
<value>One Zone</value>
|
||||||
|
</data>
|
||||||
<data name="OpenGHelper" xml:space="preserve">
|
<data name="OpenGHelper" xml:space="preserve">
|
||||||
<value>Mở cửa sổ G-Helper</value>
|
<value>Mở cửa sổ G-Helper</value>
|
||||||
</data>
|
</data>
|
||||||
|
|||||||
@@ -504,7 +504,10 @@
|
|||||||
<value>和鼠标同步</value>
|
<value>和鼠标同步</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Multizone" xml:space="preserve">
|
<data name="Multizone" xml:space="preserve">
|
||||||
<value>多区域设置</value>
|
<value>Multi Zone</value>
|
||||||
|
</data>
|
||||||
|
<data name="MultizoneStrong" xml:space="preserve">
|
||||||
|
<value>Multi Zone Strong</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MuteMic" xml:space="preserve">
|
<data name="MuteMic" xml:space="preserve">
|
||||||
<value>静音麦克风</value>
|
<value>静音麦克风</value>
|
||||||
@@ -521,6 +524,9 @@
|
|||||||
<data name="NotConnected" xml:space="preserve">
|
<data name="NotConnected" xml:space="preserve">
|
||||||
<value>未连接</value>
|
<value>未连接</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="OneZone" xml:space="preserve">
|
||||||
|
<value>One Zone</value>
|
||||||
|
</data>
|
||||||
<data name="OpenGHelper" xml:space="preserve">
|
<data name="OpenGHelper" xml:space="preserve">
|
||||||
<value>打开G-Helper窗口</value>
|
<value>打开G-Helper窗口</value>
|
||||||
</data>
|
</data>
|
||||||
|
|||||||
@@ -250,10 +250,10 @@
|
|||||||
<value>閒置幾秒後關閉燈光:插電時 / 使用電池 (0 = 不關閉)</value>
|
<value>閒置幾秒後關閉燈光:插電時 / 使用電池 (0 = 不關閉)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BacklightTimeoutBattery" xml:space="preserve">
|
<data name="BacklightTimeoutBattery" xml:space="preserve">
|
||||||
<value>Backlight Timeout when on battery</value>
|
<value>閒置時關閉燈光(電池模式)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BacklightTimeoutPlugged" xml:space="preserve">
|
<data name="BacklightTimeoutPlugged" xml:space="preserve">
|
||||||
<value>Backlight Timeout when plugged</value>
|
<value>閒置時關閉燈光(充電模式)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Balanced" xml:space="preserve">
|
<data name="Balanced" xml:space="preserve">
|
||||||
<value>平衡模式</value>
|
<value>平衡模式</value>
|
||||||
@@ -271,7 +271,7 @@
|
|||||||
<value>僅本次將電力充滿</value>
|
<value>僅本次將電力充滿</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BiosAndDriverUpdates" xml:space="preserve">
|
<data name="BiosAndDriverUpdates" xml:space="preserve">
|
||||||
<value>BIOS與驅動程式更新 Updates</value>
|
<value>BIOS與驅動程式更新</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Boot" xml:space="preserve">
|
<data name="Boot" xml:space="preserve">
|
||||||
<value>開機時</value>
|
<value>開機時</value>
|
||||||
@@ -504,7 +504,10 @@
|
|||||||
<value>與滑鼠同步</value>
|
<value>與滑鼠同步</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Multizone" xml:space="preserve">
|
<data name="Multizone" xml:space="preserve">
|
||||||
<value>多區域</value>
|
<value>Multi Zone</value>
|
||||||
|
</data>
|
||||||
|
<data name="MultizoneStrong" xml:space="preserve">
|
||||||
|
<value>Multi Zone Strong</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MuteMic" xml:space="preserve">
|
<data name="MuteMic" xml:space="preserve">
|
||||||
<value>麥克風開關</value>
|
<value>麥克風開關</value>
|
||||||
@@ -521,6 +524,9 @@
|
|||||||
<data name="NotConnected" xml:space="preserve">
|
<data name="NotConnected" xml:space="preserve">
|
||||||
<value>未連線</value>
|
<value>未連線</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="OneZone" xml:space="preserve">
|
||||||
|
<value>One Zone</value>
|
||||||
|
</data>
|
||||||
<data name="OpenGHelper" xml:space="preserve">
|
<data name="OpenGHelper" xml:space="preserve">
|
||||||
<value>開啟G-Helper視窗</value>
|
<value>開啟G-Helper視窗</value>
|
||||||
</data>
|
</data>
|
||||||
|
|||||||
BIN
app/Resources/ally.png
Normal file
|
After Width: | Height: | Size: 26 KiB |
BIN
app/Resources/icons8-animation-32.png
Normal file
|
After Width: | Height: | Size: 297 B |
BIN
app/Resources/icons8-controller-32.png
Normal file
|
After Width: | Height: | Size: 396 B |
BIN
app/Resources/icons8-controller-96.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
app/Resources/icons8-controls-32.png
Normal file
|
After Width: | Height: | Size: 309 B |
BIN
app/Resources/icons8-heartbeat-32.png
Normal file
|
After Width: | Height: | Size: 387 B |
BIN
app/Resources/icons8-joystick-32.png
Normal file
|
After Width: | Height: | Size: 288 B |
BIN
app/Resources/icons8-next-32.png
Normal file
|
After Width: | Height: | Size: 248 B |
BIN
app/Resources/icons8-soonvibes-32.png
Normal file
|
After Width: | Height: | Size: 773 B |
BIN
app/Resources/icons8-xbox-lt-32.png
Normal file
|
After Width: | Height: | Size: 458 B |
BIN
app/Resources/icons8-xbox-rt-32.png
Normal file
|
After Width: | Height: | Size: 448 B |
@@ -4,7 +4,10 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
|
using GHelper.Helpers;
|
||||||
using System.Management;
|
using System.Management;
|
||||||
|
using System.Net;
|
||||||
|
using System.Reflection;
|
||||||
|
|
||||||
namespace Ryzen
|
namespace Ryzen
|
||||||
{
|
{
|
||||||
@@ -52,7 +55,8 @@ namespace Ryzen
|
|||||||
CPUName = obj["Name"].ToString();
|
CPUName = obj["Name"].ToString();
|
||||||
CPUModel = obj["Caption"].ToString();
|
CPUModel = obj["Caption"].ToString();
|
||||||
}
|
}
|
||||||
} catch (Exception ex)
|
}
|
||||||
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
Logger.WriteLine(ex.Message);
|
Logger.WriteLine(ex.Message);
|
||||||
}
|
}
|
||||||
@@ -142,6 +146,55 @@ namespace Ryzen
|
|||||||
return CPUName.Contains("6900H") || CPUName.Contains("7945H") || CPUName.Contains("7845H");
|
return CPUName.Contains("6900H") || CPUName.Contains("7945H") || CPUName.Contains("7845H");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static bool IsRingExsists()
|
||||||
|
{
|
||||||
|
string exeDir = Path.GetDirectoryName(Application.ExecutablePath);
|
||||||
|
return File.Exists(exeDir + "\\" + "WinRing0x64.dll");
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void DownloadRing()
|
||||||
|
{
|
||||||
|
//var appVersion = new Version(Assembly.GetExecutingAssembly().GetName().Version.ToString());
|
||||||
|
//string requestUri = "https://github.com/seerge/g-helper/releases/download/v" + appVersion.Major + "." + appVersion.Minor + "/PluginAdvancedSettings.zip";
|
||||||
|
string requestUri = "https://github.com/seerge/g-helper/releases/download/v0.150/PluginAdvancedSettings.zip";
|
||||||
|
|
||||||
|
Uri uri = new Uri(requestUri);
|
||||||
|
|
||||||
|
string exeDir = Path.GetDirectoryName(Application.ExecutablePath);
|
||||||
|
string zipName = Path.GetFileName(uri.LocalPath);
|
||||||
|
string zipLocation = exeDir + "\\" + zipName;
|
||||||
|
|
||||||
|
using (WebClient client = new WebClient())
|
||||||
|
{
|
||||||
|
Logger.WriteLine(requestUri);
|
||||||
|
Logger.WriteLine(exeDir);
|
||||||
|
Logger.WriteLine(zipName);
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
client.DownloadFile(uri, zipLocation);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Logger.WriteLine(ex.Message);
|
||||||
|
Logger.WriteLine(ex.ToString());
|
||||||
|
if (!ProcessHelper.IsUserAdministrator() && !ex.Message.Contains("remote server")) ProcessHelper.RunAsAdmin("uv");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
System.IO.Compression.ZipFile.ExtractToDirectory(zipLocation, exeDir, overwriteFiles: true);
|
||||||
|
File.Delete(zipLocation);
|
||||||
|
ProcessHelper.RunAsAdmin("uv", true);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Logger.WriteLine(ex.ToString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static void SetAddresses()
|
public static void SetAddresses()
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|||||||
256
app/Settings.Designer.cs
generated
@@ -64,6 +64,8 @@ namespace GHelper
|
|||||||
labelCPUFan = new Label();
|
labelCPUFan = new Label();
|
||||||
panelGPU = new Panel();
|
panelGPU = new Panel();
|
||||||
labelTipGPU = new Label();
|
labelTipGPU = new Label();
|
||||||
|
tableAMD = new TableLayoutPanel();
|
||||||
|
buttonFPS = new RButton();
|
||||||
tableGPU = new TableLayoutPanel();
|
tableGPU = new TableLayoutPanel();
|
||||||
buttonStopGPU = new RButton();
|
buttonStopGPU = new RButton();
|
||||||
buttonEco = new RButton();
|
buttonEco = new RButton();
|
||||||
@@ -108,6 +110,15 @@ namespace GHelper
|
|||||||
panelPeripheralsTile = new Panel();
|
panelPeripheralsTile = new Panel();
|
||||||
picturePeripherals = new PictureBox();
|
picturePeripherals = new PictureBox();
|
||||||
labelPeripherals = new Label();
|
labelPeripherals = new Label();
|
||||||
|
panelAlly = new Panel();
|
||||||
|
tableLayoutAlly = new TableLayoutPanel();
|
||||||
|
buttonController = new RButton();
|
||||||
|
buttonBacklight = new RButton();
|
||||||
|
buttonControllerMode = new RButton();
|
||||||
|
panelAllyTitle = new Panel();
|
||||||
|
pictureAlly = new PictureBox();
|
||||||
|
labelAlly = new Label();
|
||||||
|
buttonOverlay = new RButton();
|
||||||
panelMatrix.SuspendLayout();
|
panelMatrix.SuspendLayout();
|
||||||
tableLayoutMatrix.SuspendLayout();
|
tableLayoutMatrix.SuspendLayout();
|
||||||
panelMatrixTitle.SuspendLayout();
|
panelMatrixTitle.SuspendLayout();
|
||||||
@@ -122,6 +133,7 @@ namespace GHelper
|
|||||||
panelCPUTitle.SuspendLayout();
|
panelCPUTitle.SuspendLayout();
|
||||||
((System.ComponentModel.ISupportInitialize)picturePerf).BeginInit();
|
((System.ComponentModel.ISupportInitialize)picturePerf).BeginInit();
|
||||||
panelGPU.SuspendLayout();
|
panelGPU.SuspendLayout();
|
||||||
|
tableAMD.SuspendLayout();
|
||||||
tableGPU.SuspendLayout();
|
tableGPU.SuspendLayout();
|
||||||
panelGPUTitle.SuspendLayout();
|
panelGPUTitle.SuspendLayout();
|
||||||
((System.ComponentModel.ISupportInitialize)pictureGPU).BeginInit();
|
((System.ComponentModel.ISupportInitialize)pictureGPU).BeginInit();
|
||||||
@@ -141,6 +153,10 @@ namespace GHelper
|
|||||||
tableLayoutPeripherals.SuspendLayout();
|
tableLayoutPeripherals.SuspendLayout();
|
||||||
panelPeripheralsTile.SuspendLayout();
|
panelPeripheralsTile.SuspendLayout();
|
||||||
((System.ComponentModel.ISupportInitialize)picturePeripherals).BeginInit();
|
((System.ComponentModel.ISupportInitialize)picturePeripherals).BeginInit();
|
||||||
|
panelAlly.SuspendLayout();
|
||||||
|
tableLayoutAlly.SuspendLayout();
|
||||||
|
panelAllyTitle.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)pictureAlly).BeginInit();
|
||||||
SuspendLayout();
|
SuspendLayout();
|
||||||
//
|
//
|
||||||
// panelMatrix
|
// panelMatrix
|
||||||
@@ -152,7 +168,7 @@ namespace GHelper
|
|||||||
panelMatrix.Controls.Add(panelMatrixTitle);
|
panelMatrix.Controls.Add(panelMatrixTitle);
|
||||||
panelMatrix.Controls.Add(checkMatrix);
|
panelMatrix.Controls.Add(checkMatrix);
|
||||||
panelMatrix.Dock = DockStyle.Top;
|
panelMatrix.Dock = DockStyle.Top;
|
||||||
panelMatrix.Location = new Point(11, 747);
|
panelMatrix.Location = new Point(11, 827);
|
||||||
panelMatrix.Margin = new Padding(0);
|
panelMatrix.Margin = new Padding(0);
|
||||||
panelMatrix.Name = "panelMatrix";
|
panelMatrix.Name = "panelMatrix";
|
||||||
panelMatrix.Padding = new Padding(20, 20, 20, 10);
|
panelMatrix.Padding = new Padding(20, 20, 20, 10);
|
||||||
@@ -282,7 +298,7 @@ namespace GHelper
|
|||||||
panelBattery.Controls.Add(sliderBattery);
|
panelBattery.Controls.Add(sliderBattery);
|
||||||
panelBattery.Controls.Add(panelBatteryTitle);
|
panelBattery.Controls.Add(panelBatteryTitle);
|
||||||
panelBattery.Dock = DockStyle.Top;
|
panelBattery.Dock = DockStyle.Top;
|
||||||
panelBattery.Location = new Point(11, 1265);
|
panelBattery.Location = new Point(11, 1485);
|
||||||
panelBattery.Margin = new Padding(0);
|
panelBattery.Margin = new Padding(0);
|
||||||
panelBattery.Name = "panelBattery";
|
panelBattery.Name = "panelBattery";
|
||||||
panelBattery.Padding = new Padding(20, 20, 20, 10);
|
panelBattery.Padding = new Padding(20, 20, 20, 10);
|
||||||
@@ -374,7 +390,7 @@ namespace GHelper
|
|||||||
panelFooter.AutoSizeMode = AutoSizeMode.GrowAndShrink;
|
panelFooter.AutoSizeMode = AutoSizeMode.GrowAndShrink;
|
||||||
panelFooter.Controls.Add(tableButtons);
|
panelFooter.Controls.Add(tableButtons);
|
||||||
panelFooter.Dock = DockStyle.Top;
|
panelFooter.Dock = DockStyle.Top;
|
||||||
panelFooter.Location = new Point(11, 1440);
|
panelFooter.Location = new Point(11, 1660);
|
||||||
panelFooter.Margin = new Padding(0);
|
panelFooter.Margin = new Padding(0);
|
||||||
panelFooter.Name = "panelFooter";
|
panelFooter.Name = "panelFooter";
|
||||||
panelFooter.Padding = new Padding(20);
|
panelFooter.Padding = new Padding(20);
|
||||||
@@ -649,6 +665,7 @@ namespace GHelper
|
|||||||
panelGPU.AutoSize = true;
|
panelGPU.AutoSize = true;
|
||||||
panelGPU.AutoSizeMode = AutoSizeMode.GrowAndShrink;
|
panelGPU.AutoSizeMode = AutoSizeMode.GrowAndShrink;
|
||||||
panelGPU.Controls.Add(labelTipGPU);
|
panelGPU.Controls.Add(labelTipGPU);
|
||||||
|
panelGPU.Controls.Add(tableAMD);
|
||||||
panelGPU.Controls.Add(tableGPU);
|
panelGPU.Controls.Add(tableGPU);
|
||||||
panelGPU.Controls.Add(panelGPUTitle);
|
panelGPU.Controls.Add(panelGPUTitle);
|
||||||
panelGPU.Dock = DockStyle.Top;
|
panelGPU.Dock = DockStyle.Top;
|
||||||
@@ -656,7 +673,7 @@ namespace GHelper
|
|||||||
panelGPU.Margin = new Padding(0);
|
panelGPU.Margin = new Padding(0);
|
||||||
panelGPU.Name = "panelGPU";
|
panelGPU.Name = "panelGPU";
|
||||||
panelGPU.Padding = new Padding(20, 20, 20, 0);
|
panelGPU.Padding = new Padding(20, 20, 20, 0);
|
||||||
panelGPU.Size = new Size(827, 352);
|
panelGPU.Size = new Size(827, 432);
|
||||||
panelGPU.TabIndex = 1;
|
panelGPU.TabIndex = 1;
|
||||||
panelGPU.TabStop = true;
|
panelGPU.TabStop = true;
|
||||||
//
|
//
|
||||||
@@ -664,12 +681,54 @@ namespace GHelper
|
|||||||
//
|
//
|
||||||
labelTipGPU.Dock = DockStyle.Top;
|
labelTipGPU.Dock = DockStyle.Top;
|
||||||
labelTipGPU.ForeColor = SystemColors.GrayText;
|
labelTipGPU.ForeColor = SystemColors.GrayText;
|
||||||
labelTipGPU.Location = new Point(20, 316);
|
labelTipGPU.Location = new Point(20, 396);
|
||||||
labelTipGPU.Margin = new Padding(4, 0, 4, 0);
|
labelTipGPU.Margin = new Padding(4, 0, 4, 0);
|
||||||
labelTipGPU.Name = "labelTipGPU";
|
labelTipGPU.Name = "labelTipGPU";
|
||||||
labelTipGPU.Size = new Size(787, 36);
|
labelTipGPU.Size = new Size(787, 36);
|
||||||
labelTipGPU.TabIndex = 20;
|
labelTipGPU.TabIndex = 20;
|
||||||
//
|
//
|
||||||
|
// tableAMD
|
||||||
|
//
|
||||||
|
tableAMD.AutoSize = true;
|
||||||
|
tableAMD.AutoSizeMode = AutoSizeMode.GrowAndShrink;
|
||||||
|
tableAMD.ColumnCount = 3;
|
||||||
|
tableAMD.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 33F));
|
||||||
|
tableAMD.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 33F));
|
||||||
|
tableAMD.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 33F));
|
||||||
|
tableAMD.Controls.Add(buttonOverlay, 0, 0);
|
||||||
|
tableAMD.Controls.Add(buttonFPS, 0, 0);
|
||||||
|
tableAMD.Dock = DockStyle.Top;
|
||||||
|
tableAMD.Location = new Point(20, 316);
|
||||||
|
tableAMD.Margin = new Padding(8, 4, 8, 4);
|
||||||
|
tableAMD.Name = "tableAMD";
|
||||||
|
tableAMD.RowCount = 1;
|
||||||
|
tableAMD.RowStyles.Add(new RowStyle(SizeType.Absolute, 80F));
|
||||||
|
tableAMD.Size = new Size(787, 80);
|
||||||
|
tableAMD.TabIndex = 24;
|
||||||
|
tableAMD.Visible = false;
|
||||||
|
//
|
||||||
|
// buttonFPS
|
||||||
|
//
|
||||||
|
buttonFPS.Activated = false;
|
||||||
|
buttonFPS.BackColor = SystemColors.ControlLightLight;
|
||||||
|
buttonFPS.BorderColor = Color.Transparent;
|
||||||
|
buttonFPS.BorderRadius = 5;
|
||||||
|
buttonFPS.Dock = DockStyle.Fill;
|
||||||
|
buttonFPS.FlatAppearance.BorderSize = 0;
|
||||||
|
buttonFPS.FlatStyle = FlatStyle.Flat;
|
||||||
|
buttonFPS.ForeColor = SystemColors.ControlText;
|
||||||
|
buttonFPS.Image = Properties.Resources.icons8_animation_32;
|
||||||
|
buttonFPS.ImageAlign = ContentAlignment.MiddleRight;
|
||||||
|
buttonFPS.Location = new Point(4, 4);
|
||||||
|
buttonFPS.Margin = new Padding(4);
|
||||||
|
buttonFPS.Name = "buttonFPS";
|
||||||
|
buttonFPS.Secondary = false;
|
||||||
|
buttonFPS.Size = new Size(254, 72);
|
||||||
|
buttonFPS.TabIndex = 11;
|
||||||
|
buttonFPS.Text = "FPS Limit OFF";
|
||||||
|
buttonFPS.TextImageRelation = TextImageRelation.ImageBeforeText;
|
||||||
|
buttonFPS.UseVisualStyleBackColor = false;
|
||||||
|
//
|
||||||
// tableGPU
|
// tableGPU
|
||||||
//
|
//
|
||||||
tableGPU.AutoSize = true;
|
tableGPU.AutoSize = true;
|
||||||
@@ -885,7 +944,7 @@ namespace GHelper
|
|||||||
panelScreen.Controls.Add(tableScreen);
|
panelScreen.Controls.Add(tableScreen);
|
||||||
panelScreen.Controls.Add(panelScreenTitle);
|
panelScreen.Controls.Add(panelScreenTitle);
|
||||||
panelScreen.Dock = DockStyle.Top;
|
panelScreen.Dock = DockStyle.Top;
|
||||||
panelScreen.Location = new Point(11, 571);
|
panelScreen.Location = new Point(11, 651);
|
||||||
panelScreen.Margin = new Padding(0);
|
panelScreen.Margin = new Padding(0);
|
||||||
panelScreen.Name = "panelScreen";
|
panelScreen.Name = "panelScreen";
|
||||||
panelScreen.Padding = new Padding(20, 20, 20, 0);
|
panelScreen.Padding = new Padding(20, 20, 20, 0);
|
||||||
@@ -1056,7 +1115,7 @@ namespace GHelper
|
|||||||
panelKeyboard.Controls.Add(tableLayoutKeyboard);
|
panelKeyboard.Controls.Add(tableLayoutKeyboard);
|
||||||
panelKeyboard.Controls.Add(panelKeyboardTitle);
|
panelKeyboard.Controls.Add(panelKeyboardTitle);
|
||||||
panelKeyboard.Dock = DockStyle.Top;
|
panelKeyboard.Dock = DockStyle.Top;
|
||||||
panelKeyboard.Location = new Point(11, 923);
|
panelKeyboard.Location = new Point(11, 1143);
|
||||||
panelKeyboard.Margin = new Padding(0);
|
panelKeyboard.Margin = new Padding(0);
|
||||||
panelKeyboard.Name = "panelKeyboard";
|
panelKeyboard.Name = "panelKeyboard";
|
||||||
panelKeyboard.Padding = new Padding(20);
|
panelKeyboard.Padding = new Padding(20);
|
||||||
@@ -1232,7 +1291,7 @@ namespace GHelper
|
|||||||
panelVersion.Controls.Add(labelCharge);
|
panelVersion.Controls.Add(labelCharge);
|
||||||
panelVersion.Controls.Add(checkStartup);
|
panelVersion.Controls.Add(checkStartup);
|
||||||
panelVersion.Dock = DockStyle.Top;
|
panelVersion.Dock = DockStyle.Top;
|
||||||
panelVersion.Location = new Point(11, 1384);
|
panelVersion.Location = new Point(11, 1604);
|
||||||
panelVersion.Margin = new Padding(4);
|
panelVersion.Margin = new Padding(4);
|
||||||
panelVersion.Name = "panelVersion";
|
panelVersion.Name = "panelVersion";
|
||||||
panelVersion.Size = new Size(827, 56);
|
panelVersion.Size = new Size(827, 56);
|
||||||
@@ -1257,7 +1316,7 @@ namespace GHelper
|
|||||||
panelPeripherals.Controls.Add(tableLayoutPeripherals);
|
panelPeripherals.Controls.Add(tableLayoutPeripherals);
|
||||||
panelPeripherals.Controls.Add(panelPeripheralsTile);
|
panelPeripherals.Controls.Add(panelPeripheralsTile);
|
||||||
panelPeripherals.Dock = DockStyle.Top;
|
panelPeripherals.Dock = DockStyle.Top;
|
||||||
panelPeripherals.Location = new Point(11, 1067);
|
panelPeripherals.Location = new Point(11, 1287);
|
||||||
panelPeripherals.Margin = new Padding(0);
|
panelPeripherals.Margin = new Padding(0);
|
||||||
panelPeripherals.Name = "panelPeripherals";
|
panelPeripherals.Name = "panelPeripherals";
|
||||||
panelPeripherals.Padding = new Padding(20, 20, 20, 10);
|
panelPeripherals.Padding = new Padding(20, 20, 20, 10);
|
||||||
@@ -1391,18 +1450,177 @@ namespace GHelper
|
|||||||
labelPeripherals.TabIndex = 40;
|
labelPeripherals.TabIndex = 40;
|
||||||
labelPeripherals.Text = "Peripherals";
|
labelPeripherals.Text = "Peripherals";
|
||||||
//
|
//
|
||||||
|
// panelAlly
|
||||||
|
//
|
||||||
|
panelAlly.AccessibleRole = AccessibleRole.Grouping;
|
||||||
|
panelAlly.AutoSize = true;
|
||||||
|
panelAlly.AutoSizeMode = AutoSizeMode.GrowAndShrink;
|
||||||
|
panelAlly.Controls.Add(tableLayoutAlly);
|
||||||
|
panelAlly.Controls.Add(panelAllyTitle);
|
||||||
|
panelAlly.Dock = DockStyle.Top;
|
||||||
|
panelAlly.Location = new Point(11, 1003);
|
||||||
|
panelAlly.Margin = new Padding(0);
|
||||||
|
panelAlly.Name = "panelAlly";
|
||||||
|
panelAlly.Padding = new Padding(20, 20, 20, 0);
|
||||||
|
panelAlly.Size = new Size(827, 140);
|
||||||
|
panelAlly.TabIndex = 8;
|
||||||
|
panelAlly.TabStop = true;
|
||||||
|
panelAlly.Visible = false;
|
||||||
|
//
|
||||||
|
// tableLayoutAlly
|
||||||
|
//
|
||||||
|
tableLayoutAlly.AutoSize = true;
|
||||||
|
tableLayoutAlly.AutoSizeMode = AutoSizeMode.GrowAndShrink;
|
||||||
|
tableLayoutAlly.ColumnCount = 3;
|
||||||
|
tableLayoutAlly.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 33F));
|
||||||
|
tableLayoutAlly.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 33F));
|
||||||
|
tableLayoutAlly.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 33F));
|
||||||
|
tableLayoutAlly.Controls.Add(buttonController, 0, 0);
|
||||||
|
tableLayoutAlly.Controls.Add(buttonBacklight, 0, 0);
|
||||||
|
tableLayoutAlly.Controls.Add(buttonControllerMode, 0, 0);
|
||||||
|
tableLayoutAlly.Dock = DockStyle.Top;
|
||||||
|
tableLayoutAlly.Location = new Point(20, 60);
|
||||||
|
tableLayoutAlly.Margin = new Padding(8, 4, 8, 4);
|
||||||
|
tableLayoutAlly.Name = "tableLayoutAlly";
|
||||||
|
tableLayoutAlly.RowCount = 1;
|
||||||
|
tableLayoutAlly.RowStyles.Add(new RowStyle(SizeType.Absolute, 80F));
|
||||||
|
tableLayoutAlly.Size = new Size(787, 80);
|
||||||
|
tableLayoutAlly.TabIndex = 23;
|
||||||
|
//
|
||||||
|
// buttonController
|
||||||
|
//
|
||||||
|
buttonController.Activated = false;
|
||||||
|
buttonController.BackColor = SystemColors.ControlLight;
|
||||||
|
buttonController.BorderColor = Color.Transparent;
|
||||||
|
buttonController.BorderRadius = 5;
|
||||||
|
buttonController.Dock = DockStyle.Fill;
|
||||||
|
buttonController.FlatAppearance.BorderSize = 0;
|
||||||
|
buttonController.FlatStyle = FlatStyle.Flat;
|
||||||
|
buttonController.ForeColor = SystemColors.ControlText;
|
||||||
|
buttonController.Image = Properties.Resources.icons8_controls_32;
|
||||||
|
buttonController.ImageAlign = ContentAlignment.MiddleRight;
|
||||||
|
buttonController.Location = new Point(528, 4);
|
||||||
|
buttonController.Margin = new Padding(4);
|
||||||
|
buttonController.Name = "buttonController";
|
||||||
|
buttonController.Secondary = true;
|
||||||
|
buttonController.Size = new Size(255, 72);
|
||||||
|
buttonController.TabIndex = 11;
|
||||||
|
buttonController.Text = "Controller";
|
||||||
|
buttonController.TextImageRelation = TextImageRelation.ImageBeforeText;
|
||||||
|
buttonController.UseVisualStyleBackColor = false;
|
||||||
|
//
|
||||||
|
// buttonBacklight
|
||||||
|
//
|
||||||
|
buttonBacklight.Activated = false;
|
||||||
|
buttonBacklight.BackColor = SystemColors.ControlLightLight;
|
||||||
|
buttonBacklight.BorderColor = Color.Transparent;
|
||||||
|
buttonBacklight.BorderRadius = 5;
|
||||||
|
buttonBacklight.Dock = DockStyle.Fill;
|
||||||
|
buttonBacklight.FlatAppearance.BorderSize = 0;
|
||||||
|
buttonBacklight.FlatStyle = FlatStyle.Flat;
|
||||||
|
buttonBacklight.ForeColor = SystemColors.ControlText;
|
||||||
|
buttonBacklight.Image = Properties.Resources.backlight;
|
||||||
|
buttonBacklight.ImageAlign = ContentAlignment.MiddleRight;
|
||||||
|
buttonBacklight.Location = new Point(266, 4);
|
||||||
|
buttonBacklight.Margin = new Padding(4);
|
||||||
|
buttonBacklight.Name = "buttonBacklight";
|
||||||
|
buttonBacklight.Secondary = false;
|
||||||
|
buttonBacklight.Size = new Size(254, 72);
|
||||||
|
buttonBacklight.TabIndex = 10;
|
||||||
|
buttonBacklight.Text = "100%";
|
||||||
|
buttonBacklight.TextImageRelation = TextImageRelation.ImageBeforeText;
|
||||||
|
buttonBacklight.UseVisualStyleBackColor = false;
|
||||||
|
//
|
||||||
|
// buttonControllerMode
|
||||||
|
//
|
||||||
|
buttonControllerMode.Activated = false;
|
||||||
|
buttonControllerMode.BackColor = SystemColors.ControlLightLight;
|
||||||
|
buttonControllerMode.BorderColor = Color.Transparent;
|
||||||
|
buttonControllerMode.BorderRadius = 5;
|
||||||
|
buttonControllerMode.Dock = DockStyle.Fill;
|
||||||
|
buttonControllerMode.FlatAppearance.BorderSize = 0;
|
||||||
|
buttonControllerMode.FlatStyle = FlatStyle.Flat;
|
||||||
|
buttonControllerMode.ForeColor = SystemColors.ControlText;
|
||||||
|
buttonControllerMode.Image = Properties.Resources.icons8_game_controller_48;
|
||||||
|
buttonControllerMode.ImageAlign = ContentAlignment.MiddleRight;
|
||||||
|
buttonControllerMode.Location = new Point(4, 4);
|
||||||
|
buttonControllerMode.Margin = new Padding(4);
|
||||||
|
buttonControllerMode.Name = "buttonControllerMode";
|
||||||
|
buttonControllerMode.Secondary = false;
|
||||||
|
buttonControllerMode.Size = new Size(254, 72);
|
||||||
|
buttonControllerMode.TabIndex = 9;
|
||||||
|
buttonControllerMode.Text = Properties.Strings.AutoMode;
|
||||||
|
buttonControllerMode.TextImageRelation = TextImageRelation.ImageBeforeText;
|
||||||
|
buttonControllerMode.UseVisualStyleBackColor = false;
|
||||||
|
//
|
||||||
|
// panelAllyTitle
|
||||||
|
//
|
||||||
|
panelAllyTitle.Controls.Add(pictureAlly);
|
||||||
|
panelAllyTitle.Controls.Add(labelAlly);
|
||||||
|
panelAllyTitle.Dock = DockStyle.Top;
|
||||||
|
panelAllyTitle.Location = new Point(20, 20);
|
||||||
|
panelAllyTitle.Margin = new Padding(4);
|
||||||
|
panelAllyTitle.Name = "panelAllyTitle";
|
||||||
|
panelAllyTitle.Size = new Size(787, 40);
|
||||||
|
panelAllyTitle.TabIndex = 25;
|
||||||
|
//
|
||||||
|
// pictureAlly
|
||||||
|
//
|
||||||
|
pictureAlly.BackgroundImage = Properties.Resources.icons8_controller_32;
|
||||||
|
pictureAlly.BackgroundImageLayout = ImageLayout.Zoom;
|
||||||
|
pictureAlly.Location = new Point(5, 0);
|
||||||
|
pictureAlly.Margin = new Padding(4);
|
||||||
|
pictureAlly.Name = "pictureAlly";
|
||||||
|
pictureAlly.Size = new Size(32, 32);
|
||||||
|
pictureAlly.TabIndex = 27;
|
||||||
|
pictureAlly.TabStop = false;
|
||||||
|
//
|
||||||
|
// labelAlly
|
||||||
|
//
|
||||||
|
labelAlly.AutoSize = true;
|
||||||
|
labelAlly.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
|
||||||
|
labelAlly.Location = new Point(42, -2);
|
||||||
|
labelAlly.Margin = new Padding(8, 0, 8, 0);
|
||||||
|
labelAlly.Name = "labelAlly";
|
||||||
|
labelAlly.Size = new Size(181, 32);
|
||||||
|
labelAlly.TabIndex = 26;
|
||||||
|
labelAlly.Text = "Ally Controller";
|
||||||
|
//
|
||||||
|
// buttonOverlay
|
||||||
|
//
|
||||||
|
buttonOverlay.Activated = false;
|
||||||
|
buttonOverlay.BackColor = SystemColors.ControlLightLight;
|
||||||
|
buttonOverlay.BorderColor = Color.Transparent;
|
||||||
|
buttonOverlay.BorderRadius = 5;
|
||||||
|
buttonOverlay.Dock = DockStyle.Fill;
|
||||||
|
buttonOverlay.FlatAppearance.BorderSize = 0;
|
||||||
|
buttonOverlay.FlatStyle = FlatStyle.Flat;
|
||||||
|
buttonOverlay.ForeColor = SystemColors.ControlText;
|
||||||
|
buttonOverlay.Image = Properties.Resources.icons8_heartbeat_32;
|
||||||
|
buttonOverlay.ImageAlign = ContentAlignment.MiddleRight;
|
||||||
|
buttonOverlay.Location = new Point(266, 4);
|
||||||
|
buttonOverlay.Margin = new Padding(4);
|
||||||
|
buttonOverlay.Name = "buttonOverlay";
|
||||||
|
buttonOverlay.Secondary = false;
|
||||||
|
buttonOverlay.Size = new Size(254, 72);
|
||||||
|
buttonOverlay.TabIndex = 12;
|
||||||
|
buttonOverlay.Text = "AMD Overlay";
|
||||||
|
buttonOverlay.TextImageRelation = TextImageRelation.ImageBeforeText;
|
||||||
|
buttonOverlay.UseVisualStyleBackColor = false;
|
||||||
|
//
|
||||||
// SettingsForm
|
// SettingsForm
|
||||||
//
|
//
|
||||||
AutoScaleDimensions = new SizeF(192F, 192F);
|
AutoScaleDimensions = new SizeF(192F, 192F);
|
||||||
AutoScaleMode = AutoScaleMode.Dpi;
|
AutoScaleMode = AutoScaleMode.Dpi;
|
||||||
AutoSize = true;
|
AutoSize = true;
|
||||||
AutoSizeMode = AutoSizeMode.GrowAndShrink;
|
AutoSizeMode = AutoSizeMode.GrowAndShrink;
|
||||||
ClientSize = new Size(849, 1552);
|
ClientSize = new Size(849, 1717);
|
||||||
Controls.Add(panelFooter);
|
Controls.Add(panelFooter);
|
||||||
Controls.Add(panelVersion);
|
Controls.Add(panelVersion);
|
||||||
Controls.Add(panelBattery);
|
Controls.Add(panelBattery);
|
||||||
Controls.Add(panelPeripherals);
|
Controls.Add(panelPeripherals);
|
||||||
Controls.Add(panelKeyboard);
|
Controls.Add(panelKeyboard);
|
||||||
|
Controls.Add(panelAlly);
|
||||||
Controls.Add(panelMatrix);
|
Controls.Add(panelMatrix);
|
||||||
Controls.Add(panelScreen);
|
Controls.Add(panelScreen);
|
||||||
Controls.Add(panelGPU);
|
Controls.Add(panelGPU);
|
||||||
@@ -1437,6 +1655,7 @@ namespace GHelper
|
|||||||
((System.ComponentModel.ISupportInitialize)picturePerf).EndInit();
|
((System.ComponentModel.ISupportInitialize)picturePerf).EndInit();
|
||||||
panelGPU.ResumeLayout(false);
|
panelGPU.ResumeLayout(false);
|
||||||
panelGPU.PerformLayout();
|
panelGPU.PerformLayout();
|
||||||
|
tableAMD.ResumeLayout(false);
|
||||||
tableGPU.ResumeLayout(false);
|
tableGPU.ResumeLayout(false);
|
||||||
panelGPUTitle.ResumeLayout(false);
|
panelGPUTitle.ResumeLayout(false);
|
||||||
panelGPUTitle.PerformLayout();
|
panelGPUTitle.PerformLayout();
|
||||||
@@ -1465,6 +1684,12 @@ namespace GHelper
|
|||||||
panelPeripheralsTile.ResumeLayout(false);
|
panelPeripheralsTile.ResumeLayout(false);
|
||||||
panelPeripheralsTile.PerformLayout();
|
panelPeripheralsTile.PerformLayout();
|
||||||
((System.ComponentModel.ISupportInitialize)picturePeripherals).EndInit();
|
((System.ComponentModel.ISupportInitialize)picturePeripherals).EndInit();
|
||||||
|
panelAlly.ResumeLayout(false);
|
||||||
|
panelAlly.PerformLayout();
|
||||||
|
tableLayoutAlly.ResumeLayout(false);
|
||||||
|
panelAllyTitle.ResumeLayout(false);
|
||||||
|
panelAllyTitle.PerformLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)pictureAlly).EndInit();
|
||||||
ResumeLayout(false);
|
ResumeLayout(false);
|
||||||
PerformLayout();
|
PerformLayout();
|
||||||
}
|
}
|
||||||
@@ -1548,5 +1773,16 @@ namespace GHelper
|
|||||||
private Label labelCharge;
|
private Label labelCharge;
|
||||||
private RButton buttonFnLock;
|
private RButton buttonFnLock;
|
||||||
private RButton buttonBatteryFull;
|
private RButton buttonBatteryFull;
|
||||||
|
private Panel panelAlly;
|
||||||
|
private TableLayoutPanel tableLayoutAlly;
|
||||||
|
private RButton buttonControllerMode;
|
||||||
|
private Panel panelAllyTitle;
|
||||||
|
private Label labelAlly;
|
||||||
|
private PictureBox pictureAlly;
|
||||||
|
private RButton buttonBacklight;
|
||||||
|
private TableLayoutPanel tableAMD;
|
||||||
|
private RButton buttonFPS;
|
||||||
|
private RButton buttonController;
|
||||||
|
private RButton buttonOverlay;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
144
app/Settings.cs
@@ -1,4 +1,5 @@
|
|||||||
using GHelper.AnimeMatrix;
|
using GHelper.Ally;
|
||||||
|
using GHelper.AnimeMatrix;
|
||||||
using GHelper.AutoUpdate;
|
using GHelper.AutoUpdate;
|
||||||
using GHelper.Battery;
|
using GHelper.Battery;
|
||||||
using GHelper.Display;
|
using GHelper.Display;
|
||||||
@@ -11,6 +12,7 @@ using GHelper.Peripherals;
|
|||||||
using GHelper.Peripherals.Mouse;
|
using GHelper.Peripherals.Mouse;
|
||||||
using GHelper.UI;
|
using GHelper.UI;
|
||||||
using GHelper.USB;
|
using GHelper.USB;
|
||||||
|
using System;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.Timers;
|
using System.Timers;
|
||||||
|
|
||||||
@@ -22,6 +24,7 @@ namespace GHelper
|
|||||||
ToolStripMenuItem menuSilent, menuBalanced, menuTurbo, menuEco, menuStandard, menuUltimate, menuOptimized;
|
ToolStripMenuItem menuSilent, menuBalanced, menuTurbo, menuEco, menuStandard, menuUltimate, menuOptimized;
|
||||||
|
|
||||||
public GPUModeControl gpuControl;
|
public GPUModeControl gpuControl;
|
||||||
|
public AllyControl allyControl;
|
||||||
ScreenControl screenControl = new ScreenControl();
|
ScreenControl screenControl = new ScreenControl();
|
||||||
AutoUpdateControl updateControl;
|
AutoUpdateControl updateControl;
|
||||||
|
|
||||||
@@ -35,6 +38,7 @@ namespace GHelper
|
|||||||
public Fans? fansForm;
|
public Fans? fansForm;
|
||||||
public Extra? extraForm;
|
public Extra? extraForm;
|
||||||
public Updates? updatesForm;
|
public Updates? updatesForm;
|
||||||
|
public Handheld? handheldForm;
|
||||||
|
|
||||||
static long lastRefresh;
|
static long lastRefresh;
|
||||||
static long lastBatteryRefresh;
|
static long lastBatteryRefresh;
|
||||||
@@ -54,6 +58,7 @@ namespace GHelper
|
|||||||
gpuControl = new GPUModeControl(this);
|
gpuControl = new GPUModeControl(this);
|
||||||
updateControl = new AutoUpdateControl(this);
|
updateControl = new AutoUpdateControl(this);
|
||||||
matrixControl = new AniMatrixControl(this);
|
matrixControl = new AniMatrixControl(this);
|
||||||
|
allyControl = new AllyControl(this);
|
||||||
|
|
||||||
buttonSilent.Text = Properties.Strings.Silent;
|
buttonSilent.Text = Properties.Strings.Silent;
|
||||||
buttonBalanced.Text = Properties.Strings.Balanced;
|
buttonBalanced.Text = Properties.Strings.Balanced;
|
||||||
@@ -156,6 +161,7 @@ namespace GHelper
|
|||||||
|
|
||||||
buttonFans.Click += ButtonFans_Click;
|
buttonFans.Click += ButtonFans_Click;
|
||||||
buttonKeyboard.Click += ButtonKeyboard_Click;
|
buttonKeyboard.Click += ButtonKeyboard_Click;
|
||||||
|
buttonController.Click += ButtonHandheld_Click;
|
||||||
|
|
||||||
pictureColor.Click += PictureColor_Click;
|
pictureColor.Click += PictureColor_Click;
|
||||||
pictureColor2.Click += PictureColor2_Click;
|
pictureColor2.Click += PictureColor2_Click;
|
||||||
@@ -227,6 +233,12 @@ namespace GHelper
|
|||||||
buttonBatteryFull.MouseLeave += ButtonBatteryFull_MouseLeave;
|
buttonBatteryFull.MouseLeave += ButtonBatteryFull_MouseLeave;
|
||||||
buttonBatteryFull.Click += ButtonBatteryFull_Click;
|
buttonBatteryFull.Click += ButtonBatteryFull_Click;
|
||||||
|
|
||||||
|
buttonControllerMode.Click += ButtonControllerMode_Click;
|
||||||
|
buttonBacklight.Click += ButtonBacklight_Click;
|
||||||
|
|
||||||
|
buttonFPS.Click += ButtonFPS_Click;
|
||||||
|
buttonOverlay.Click += ButtonOverlay_Click;
|
||||||
|
|
||||||
Text = "G-Helper " + (ProcessHelper.IsUserAdministrator() ? "—" : "-") + " " + AppConfig.GetModelShort();
|
Text = "G-Helper " + (ProcessHelper.IsUserAdministrator() ? "—" : "-") + " " + AppConfig.GetModelShort();
|
||||||
TopMost = AppConfig.Is("topmost");
|
TopMost = AppConfig.Is("topmost");
|
||||||
|
|
||||||
@@ -240,6 +252,85 @@ namespace GHelper
|
|||||||
panelPerformance.Focus();
|
panelPerformance.Focus();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void ButtonOverlay_Click(object? sender, EventArgs e)
|
||||||
|
{
|
||||||
|
KeyboardHook.KeyKeyKeyPress(Keys.LControlKey, Keys.LShiftKey, Keys.O);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ButtonHandheld_Click(object? sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (handheldForm == null || handheldForm.Text == "")
|
||||||
|
{
|
||||||
|
handheldForm = new Handheld();
|
||||||
|
AddOwnedForm(handheldForm);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (handheldForm.Visible)
|
||||||
|
{
|
||||||
|
handheldForm.Close();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//handheldForm.FormPosition();
|
||||||
|
handheldForm.Show();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ButtonFPS_Click(object? sender, EventArgs e)
|
||||||
|
{
|
||||||
|
allyControl.ToggleFPSLimit();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ButtonBacklight_Click(object? sender, EventArgs e)
|
||||||
|
{
|
||||||
|
allyControl.ToggleBacklight();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ButtonControllerMode_Click(object? sender, EventArgs e)
|
||||||
|
{
|
||||||
|
allyControl.ToggleMode();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void VisualiseAlly(bool visible = false)
|
||||||
|
{
|
||||||
|
if (!visible) return;
|
||||||
|
|
||||||
|
panelAlly.Visible = true;
|
||||||
|
panelKeyboardTitle.Visible = false;
|
||||||
|
panelKeyboard.Padding = new Padding(20, 0, 20, 20);
|
||||||
|
|
||||||
|
tableAMD.Visible = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void VisualiseController(ControllerMode mode)
|
||||||
|
{
|
||||||
|
switch (mode)
|
||||||
|
{
|
||||||
|
case ControllerMode.Gamepad:
|
||||||
|
buttonControllerMode.Text = "Gamepad";
|
||||||
|
break;
|
||||||
|
case ControllerMode.Mouse:
|
||||||
|
buttonControllerMode.Text = "Mouse";
|
||||||
|
break;
|
||||||
|
case ControllerMode.Skip:
|
||||||
|
buttonControllerMode.Text = "Skip";
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
buttonControllerMode.Text = "Auto";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void VisualiseBacklight(int backlight)
|
||||||
|
{
|
||||||
|
buttonBacklight.Text = Math.Round((double)backlight*33.33).ToString() + "%";
|
||||||
|
}
|
||||||
|
|
||||||
|
public void VisualiseFPSLimit(int limit)
|
||||||
|
{
|
||||||
|
buttonFPS.Text = "FPS Limit " + ((limit > 0 && limit <= 120) ? limit : "OFF");
|
||||||
|
}
|
||||||
|
|
||||||
private void SettingsForm_LostFocus(object? sender, EventArgs e)
|
private void SettingsForm_LostFocus(object? sender, EventArgs e)
|
||||||
{
|
{
|
||||||
lastLostFocus = DateTimeOffset.Now.ToUnixTimeMilliseconds();
|
lastLostFocus = DateTimeOffset.Now.ToUnixTimeMilliseconds();
|
||||||
@@ -845,7 +936,7 @@ namespace GHelper
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
public void VisualiseScreen(bool screenEnabled, bool screenAuto, int frequency, int maxFrequency, int overdrive, bool overdriveSetting, int miniled, bool hdr)
|
public void VisualiseScreen(bool screenEnabled, bool screenAuto, int frequency, int maxFrequency, int overdrive, bool overdriveSetting, int miniled1, int miniled2, bool hdr)
|
||||||
{
|
{
|
||||||
|
|
||||||
ButtonEnabled(button60Hz, screenEnabled);
|
ButtonEnabled(button60Hz, screenEnabled);
|
||||||
@@ -884,10 +975,36 @@ namespace GHelper
|
|||||||
panelScreen.Visible = false;
|
panelScreen.Visible = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (miniled >= 0)
|
if (miniled1 >= 0)
|
||||||
{
|
{
|
||||||
buttonMiniled.Activated = (miniled == 1) || hdr;
|
|
||||||
buttonMiniled.Enabled = !hdr;
|
buttonMiniled.Enabled = !hdr;
|
||||||
|
buttonMiniled.Activated = miniled1 == 1 || hdr;
|
||||||
|
}
|
||||||
|
else if (miniled2 >= 0)
|
||||||
|
{
|
||||||
|
buttonMiniled.Enabled = !hdr;
|
||||||
|
|
||||||
|
switch (miniled2)
|
||||||
|
{
|
||||||
|
// Multizone On
|
||||||
|
case 0:
|
||||||
|
buttonMiniled.Text = Properties.Strings.Multizone;
|
||||||
|
buttonMiniled.BorderColor = colorStandard;
|
||||||
|
buttonMiniled.Activated = true;
|
||||||
|
break;
|
||||||
|
// Multizone Strong
|
||||||
|
case 1:
|
||||||
|
buttonMiniled.Text = Properties.Strings.MultizoneStrong;
|
||||||
|
buttonMiniled.BorderColor = colorTurbo;
|
||||||
|
buttonMiniled.Activated = true;
|
||||||
|
break;
|
||||||
|
// Multizone Off
|
||||||
|
case 2:
|
||||||
|
buttonMiniled.Text = hdr ? Properties.Strings.Multizone : Properties.Strings.OneZone;
|
||||||
|
buttonMiniled.BorderColor = colorStandard;
|
||||||
|
buttonMiniled.Activated = hdr;
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -914,6 +1031,7 @@ namespace GHelper
|
|||||||
if (extraForm != null && extraForm.Text != "") extraForm.Close();
|
if (extraForm != null && extraForm.Text != "") extraForm.Close();
|
||||||
if (updatesForm != null && updatesForm.Text != "") updatesForm.Close();
|
if (updatesForm != null && updatesForm.Text != "") updatesForm.Close();
|
||||||
if (matrixForm != null && matrixForm.Text != "") matrixForm.Close();
|
if (matrixForm != null && matrixForm.Text != "") matrixForm.Close();
|
||||||
|
if (handheldForm != null && handheldForm.Text != "") handheldForm.Close();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -934,6 +1052,7 @@ namespace GHelper
|
|||||||
(extraForm != null && extraForm.ContainsFocus) ||
|
(extraForm != null && extraForm.ContainsFocus) ||
|
||||||
(updatesForm != null && updatesForm.ContainsFocus) ||
|
(updatesForm != null && updatesForm.ContainsFocus) ||
|
||||||
(matrixForm != null && matrixForm.ContainsFocus) ||
|
(matrixForm != null && matrixForm.ContainsFocus) ||
|
||||||
|
(handheldForm != null && handheldForm.ContainsFocus) ||
|
||||||
this.ContainsFocus ||
|
this.ContainsFocus ||
|
||||||
(lostFocusCheck && Math.Abs(DateTimeOffset.Now.ToUnixTimeMilliseconds() - lastLostFocus) < 300);
|
(lostFocusCheck && Math.Abs(DateTimeOffset.Now.ToUnixTimeMilliseconds() - lastLostFocus) < 300);
|
||||||
}
|
}
|
||||||
@@ -1104,14 +1223,14 @@ namespace GHelper
|
|||||||
public void AutoKeyboard()
|
public void AutoKeyboard()
|
||||||
{
|
{
|
||||||
|
|
||||||
|
InputDispatcher.SetBacklightAuto(true);
|
||||||
|
|
||||||
if (!AppConfig.Is("skip_aura"))
|
if (!AppConfig.Is("skip_aura"))
|
||||||
{
|
{
|
||||||
Aura.ApplyPower();
|
Aura.ApplyPower();
|
||||||
Aura.ApplyAura();
|
Aura.ApplyAura();
|
||||||
}
|
}
|
||||||
|
|
||||||
InputDispatcher.SetBacklightAuto(true);
|
|
||||||
|
|
||||||
if (Program.acpi.IsXGConnected())
|
if (Program.acpi.IsXGConnected())
|
||||||
XGM.Light(AppConfig.Is("xmg_light"));
|
XGM.Light(AppConfig.Is("xmg_light"));
|
||||||
|
|
||||||
@@ -1214,6 +1333,18 @@ namespace GHelper
|
|||||||
|
|
||||||
public void VisualiseGPUMode(int GPUMode = -1)
|
public void VisualiseGPUMode(int GPUMode = -1)
|
||||||
{
|
{
|
||||||
|
if (AppConfig.IsAlly())
|
||||||
|
{
|
||||||
|
tableGPU.Visible = false;
|
||||||
|
labelGPU.Text = "GPU";
|
||||||
|
if (Program.acpi.IsXGConnected())
|
||||||
|
{
|
||||||
|
tableAMD.Controls.Add(buttonXGM, 1, 0);
|
||||||
|
VisualizeXGM();
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
ButtonEnabled(buttonOptimized, true);
|
ButtonEnabled(buttonOptimized, true);
|
||||||
ButtonEnabled(buttonEco, true);
|
ButtonEnabled(buttonEco, true);
|
||||||
ButtonEnabled(buttonStandard, true);
|
ButtonEnabled(buttonStandard, true);
|
||||||
@@ -1254,7 +1385,6 @@ namespace GHelper
|
|||||||
|
|
||||||
VisualizeXGM(GPUMode);
|
VisualizeXGM(GPUMode);
|
||||||
|
|
||||||
|
|
||||||
if (isGpuSection)
|
if (isGpuSection)
|
||||||
{
|
{
|
||||||
menuEco.Checked = buttonEco.Activated;
|
menuEco.Checked = buttonEco.Activated;
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ using System.Runtime.InteropServices;
|
|||||||
|
|
||||||
namespace GHelper.UI
|
namespace GHelper.UI
|
||||||
{
|
{
|
||||||
|
|
||||||
public class RForm : Form
|
public class RForm : Form
|
||||||
{
|
{
|
||||||
|
|
||||||
@@ -57,7 +57,7 @@ public static class AsusHid
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void WriteInput(byte[] data, string log = "USB")
|
public static void WriteInput(byte[] data, string? log = "USB")
|
||||||
{
|
{
|
||||||
foreach (var device in FindDevices(INPUT_ID))
|
foreach (var device in FindDevices(INPUT_ID))
|
||||||
{
|
{
|
||||||
@@ -68,7 +68,7 @@ public static class AsusHid
|
|||||||
var payload = new byte[device.GetMaxFeatureReportLength()];
|
var payload = new byte[device.GetMaxFeatureReportLength()];
|
||||||
Array.Copy(data, payload, data.Length);
|
Array.Copy(data, payload, data.Length);
|
||||||
stream.SetFeature(payload);
|
stream.SetFeature(payload);
|
||||||
Logger.WriteLine($"{log} Feature {device.ProductID.ToString("X")}|{device.GetMaxFeatureReportLength()}: {BitConverter.ToString(data)}");
|
if (log is not null) Logger.WriteLine($"{log} {device.ProductID.ToString("X")}|{device.GetMaxFeatureReportLength()}: {BitConverter.ToString(data)}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
|
|||||||
110
app/USB/Aura.cs
@@ -77,7 +77,7 @@ namespace GHelper.USB
|
|||||||
public static Color Color2 = Color.Black;
|
public static Color Color2 = Color.Black;
|
||||||
|
|
||||||
static bool isACPI = AppConfig.IsTUF() || AppConfig.IsVivobook() || AppConfig.IsProArt();
|
static bool isACPI = AppConfig.IsTUF() || AppConfig.IsVivobook() || AppConfig.IsProArt();
|
||||||
static bool isStrix = AppConfig.IsStrix();
|
static bool isStrix = AppConfig.IsStrix() && !AppConfig.IsNoDirectRGB();
|
||||||
|
|
||||||
static bool isStrix4Zone = AppConfig.IsStrixLimitedRGB();
|
static bool isStrix4Zone = AppConfig.IsStrixLimitedRGB();
|
||||||
static bool isStrixNumpad = AppConfig.IsStrixNumpad();
|
static bool isStrixNumpad = AppConfig.IsStrixNumpad();
|
||||||
@@ -105,6 +105,15 @@ namespace GHelper.USB
|
|||||||
{ AuraMode.AMBIENT, "Ambient"},
|
{ AuraMode.AMBIENT, "Ambient"},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
private static Dictionary<AuraMode, string> _modesAlly = new Dictionary<AuraMode, string>
|
||||||
|
{
|
||||||
|
{ AuraMode.AuraStatic, Properties.Strings.AuraStatic },
|
||||||
|
{ AuraMode.AuraBreathe, Properties.Strings.AuraBreathe },
|
||||||
|
{ AuraMode.AuraColorCycle, Properties.Strings.AuraColorCycle },
|
||||||
|
{ AuraMode.AuraRainbow, Properties.Strings.AuraRainbow },
|
||||||
|
{ AuraMode.AuraStrobe, Properties.Strings.AuraStrobe },
|
||||||
|
};
|
||||||
|
|
||||||
private static Dictionary<AuraMode, string> _modesStrix = new Dictionary<AuraMode, string>
|
private static Dictionary<AuraMode, string> _modesStrix = new Dictionary<AuraMode, string>
|
||||||
{
|
{
|
||||||
{ AuraMode.AuraStatic, Properties.Strings.AuraStatic },
|
{ AuraMode.AuraStatic, Properties.Strings.AuraStatic },
|
||||||
@@ -161,6 +170,11 @@ namespace GHelper.USB
|
|||||||
return _modesSingleColor;
|
return _modesSingleColor;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (AppConfig.IsAlly())
|
||||||
|
{
|
||||||
|
return _modesAlly;
|
||||||
|
}
|
||||||
|
|
||||||
if (AppConfig.IsAdvantageEdition())
|
if (AppConfig.IsAdvantageEdition())
|
||||||
{
|
{
|
||||||
return _modes;
|
return _modes;
|
||||||
@@ -224,19 +238,19 @@ namespace GHelper.USB
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static byte[] AuraMessage(AuraMode mode, Color color, Color color2, int speed, bool mono = false)
|
public static byte[] AuraMessage(AuraMode mode, Color color, Color color2, int speed, bool mono = false, byte zoneByte = 0x00)
|
||||||
{
|
{
|
||||||
|
|
||||||
byte[] msg = new byte[17];
|
byte[] msg = new byte[17];
|
||||||
msg[0] = AsusHid.AURA_ID;
|
msg[0] = AsusHid.AURA_ID;
|
||||||
msg[1] = 0xb3;
|
msg[1] = 0xB3;
|
||||||
msg[2] = 0x00; // Zone
|
msg[2] = zoneByte; // Zone
|
||||||
msg[3] = (byte)mode; // Aura Mode
|
msg[3] = (byte)mode; // Aura Mode
|
||||||
msg[4] = color.R; // R
|
msg[4] = color.R; // R
|
||||||
msg[5] = mono ? (byte)0 : color.G; // G
|
msg[5] = mono ? (byte)0 : color.G; // G
|
||||||
msg[6] = mono ? (byte)0 : color.B; // B
|
msg[6] = mono ? (byte)0 : color.B; // B
|
||||||
msg[7] = (byte)speed; // aura.speed as u8;
|
msg[7] = (byte)speed; // aura.speed as u8;
|
||||||
msg[8] = 0; // aura.direction as u8;
|
msg[8] = 0x00; // aura.direction as u8;
|
||||||
msg[9] = mode == AuraMode.AuraBreathe ? (byte)1 : (byte)0;
|
msg[9] = mode == AuraMode.AuraBreathe ? (byte)1 : (byte)0;
|
||||||
msg[10] = color2.R; // R
|
msg[10] = color2.R; // R
|
||||||
msg[11] = mono ? (byte)0 : color2.G; // G
|
msg[11] = mono ? (byte)0 : color2.G; // G
|
||||||
@@ -247,12 +261,29 @@ namespace GHelper.USB
|
|||||||
public static void Init()
|
public static void Init()
|
||||||
{
|
{
|
||||||
AsusHid.Write(new List<byte[]> {
|
AsusHid.Write(new List<byte[]> {
|
||||||
new byte[] { AsusHid.AURA_ID, 0xb9 },
|
new byte[] { AsusHid.AURA_ID, 0xB9 },
|
||||||
Encoding.ASCII.GetBytes("]ASUS Tech.Inc."),
|
Encoding.ASCII.GetBytes("]ASUS Tech.Inc."),
|
||||||
new byte[] { AsusHid.AURA_ID, 0x05, 0x20, 0x31, 0, 0x1a },
|
new byte[] { AsusHid.AURA_ID, 0x05, 0x20, 0x31, 0, 0x1A },
|
||||||
//Encoding.ASCII.GetBytes("^ASUS Tech.Inc."),
|
|
||||||
//new byte[] { 0x5e, 0x05, 0x20, 0x31, 0, 0x1a }
|
|
||||||
}, "Init");
|
}, "Init");
|
||||||
|
|
||||||
|
// Random data AC sends to keyboard on start, that seem to wake up keyboard on 2024
|
||||||
|
if (AppConfig.IsNewAura())
|
||||||
|
{
|
||||||
|
AsusHid.Write(new List<byte[]> {
|
||||||
|
new byte[] { AsusHid.AURA_ID, 0x9F, 0x01 },
|
||||||
|
new byte[] { AsusHid.AURA_ID, 0xBF },
|
||||||
|
|
||||||
|
new byte[] { AsusHid.AURA_ID, 0x05, 0x20, 0x31, 0, 0x10 },
|
||||||
|
new byte[] { AsusHid.AURA_ID, 0x05, 0x20, 0x31, 0, 0x20 },
|
||||||
|
|
||||||
|
new byte[] { AsusHid.AURA_ID, 0xC0, 0x03, 0x01 },
|
||||||
|
new byte[] { AsusHid.AURA_ID, 0x9E, 0x01, 0x20 },
|
||||||
|
|
||||||
|
Encoding.ASCII.GetBytes("]ASUS Tech.Inc."),
|
||||||
|
new byte[] { AsusHid.AURA_ID, 0x05, 0x20, 0x31, 0, 0x1A },
|
||||||
|
new byte[] { AsusHid.AURA_ID, 0xC0, 0x00, 0x01 },
|
||||||
|
}, "Init");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -263,9 +294,12 @@ namespace GHelper.USB
|
|||||||
if (delay) await Task.Delay(TimeSpan.FromSeconds(1));
|
if (delay) await Task.Delay(TimeSpan.FromSeconds(1));
|
||||||
if (isACPI) Program.acpi.TUFKeyboardBrightness(brightness);
|
if (isACPI) Program.acpi.TUFKeyboardBrightness(brightness);
|
||||||
|
|
||||||
AsusHid.Write(new byte[] { AsusHid.AURA_ID, 0xba, 0xc5, 0xc4, (byte)brightness }, log);
|
AsusHid.Write(new byte[] { AsusHid.AURA_ID, 0xBA, 0xC5, 0xC4, (byte)brightness }, log);
|
||||||
|
|
||||||
|
if (AppConfig.IsAlly()) ApplyAura();
|
||||||
|
|
||||||
if (AppConfig.ContainsModel("GA503"))
|
if (AppConfig.ContainsModel("GA503"))
|
||||||
AsusHid.WriteInput(new byte[] { AsusHid.INPUT_ID, 0xba, 0xc5, 0xc4, (byte)brightness }, log);
|
AsusHid.WriteInput(new byte[] { AsusHid.INPUT_ID, 0xBA, 0xC5, 0xC4, (byte)brightness }, log);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
@@ -284,6 +318,7 @@ namespace GHelper.USB
|
|||||||
if (flags.ShutdownLogo) keyb |= 1 << 6;
|
if (flags.ShutdownLogo) keyb |= 1 << 6;
|
||||||
if (flags.ShutdownKeyb) keyb |= 1 << 7;
|
if (flags.ShutdownKeyb) keyb |= 1 << 7;
|
||||||
|
|
||||||
|
if (flags.AwakeBar) bar |= 1 << 0;
|
||||||
if (flags.BootBar) bar |= 1 << 1;
|
if (flags.BootBar) bar |= 1 << 1;
|
||||||
if (flags.AwakeBar) bar |= 1 << 2;
|
if (flags.AwakeBar) bar |= 1 << 2;
|
||||||
if (flags.SleepBar) bar |= 1 << 3;
|
if (flags.SleepBar) bar |= 1 << 3;
|
||||||
@@ -309,7 +344,17 @@ namespace GHelper.USB
|
|||||||
if (flags.SleepRear) rear |= 1 << 6;
|
if (flags.SleepRear) rear |= 1 << 6;
|
||||||
if (flags.ShutdownRear) rear |= 1 << 7;
|
if (flags.ShutdownRear) rear |= 1 << 7;
|
||||||
|
|
||||||
return new byte[] { 0x5d, 0xbd, 0x01, keyb, bar, lid, rear, 0xFF };
|
return new byte[] { AsusHid.AURA_ID, 0xBD, 0x01, keyb, bar, lid, rear, 0xFF };
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void ApplyAllyPower(AuraPower flags)
|
||||||
|
{
|
||||||
|
byte power = 0x00;
|
||||||
|
if (flags.BootKeyb) power |= 0x01;
|
||||||
|
if (flags.AwakeKeyb) power |= 0x02;
|
||||||
|
if (flags.SleepKeyb) power |= 0x04;
|
||||||
|
if (flags.ShutdownKeyb) power |= 0x08;
|
||||||
|
AsusHid.WriteInput(new byte[] { AsusHid.INPUT_ID, 0xD1, 0x09, 0x01, power }, "Aura");
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void ApplyPower()
|
public static void ApplyPower()
|
||||||
@@ -347,6 +392,12 @@ namespace GHelper.USB
|
|||||||
flags.SleepRear = AppConfig.IsNotFalse("keyboard_sleep_lid");
|
flags.SleepRear = AppConfig.IsNotFalse("keyboard_sleep_lid");
|
||||||
flags.ShutdownRear = AppConfig.IsNotFalse("keyboard_shutdown_lid");
|
flags.ShutdownRear = AppConfig.IsNotFalse("keyboard_shutdown_lid");
|
||||||
|
|
||||||
|
if (AppConfig.IsAlly())
|
||||||
|
{
|
||||||
|
ApplyAllyPower(flags);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
AsusHid.Write(AuraPowerMessage(flags));
|
AsusHid.Write(AuraPowerMessage(flags));
|
||||||
|
|
||||||
if (isACPI)
|
if (isACPI)
|
||||||
@@ -451,7 +502,7 @@ namespace GHelper.USB
|
|||||||
byte[] keyBuf = new byte[mapSize];
|
byte[] keyBuf = new byte[mapSize];
|
||||||
|
|
||||||
buffer[0] = AsusHid.AURA_ID;
|
buffer[0] = AsusHid.AURA_ID;
|
||||||
buffer[1] = 0xbc;
|
buffer[1] = 0xBC;
|
||||||
buffer[2] = 0;
|
buffer[2] = 0;
|
||||||
buffer[3] = 1;
|
buffer[3] = 1;
|
||||||
buffer[4] = 1;
|
buffer[4] = 1;
|
||||||
@@ -462,7 +513,7 @@ namespace GHelper.USB
|
|||||||
if (init)
|
if (init)
|
||||||
{
|
{
|
||||||
Init();
|
Init();
|
||||||
AsusHid.WriteAura(new byte[] { AsusHid.AURA_ID, 0xbc });
|
AsusHid.WriteAura(new byte[] { AsusHid.AURA_ID, 0xBC });
|
||||||
}
|
}
|
||||||
|
|
||||||
Array.Clear(keyBuf, 0, keyBuf.Length);
|
Array.Clear(keyBuf, 0, keyBuf.Length);
|
||||||
@@ -499,7 +550,8 @@ namespace GHelper.USB
|
|||||||
buffer[6] = 0x00;
|
buffer[6] = 0x00;
|
||||||
buffer[7] = 0x00;
|
buffer[7] = 0x00;
|
||||||
|
|
||||||
if (isStrix4Zone) { // per zone
|
if (isStrix4Zone)
|
||||||
|
{ // per zone
|
||||||
var leds_4_zone = packet4Zone.Count();
|
var leds_4_zone = packet4Zone.Count();
|
||||||
for (int ledIndex = 0; ledIndex < leds_4_zone; ledIndex++)
|
for (int ledIndex = 0; ledIndex < leds_4_zone; ledIndex++)
|
||||||
{
|
{
|
||||||
@@ -558,7 +610,7 @@ namespace GHelper.USB
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void ApplyAura()
|
public static void ApplyAura(double colorDim = 1)
|
||||||
{
|
{
|
||||||
|
|
||||||
Mode = (AuraMode)AppConfig.Get("aura_mode");
|
Mode = (AuraMode)AppConfig.Get("aura_mode");
|
||||||
@@ -566,6 +618,25 @@ namespace GHelper.USB
|
|||||||
SetColor(AppConfig.Get("aura_color"));
|
SetColor(AppConfig.Get("aura_color"));
|
||||||
SetColor2(AppConfig.Get("aura_color2"));
|
SetColor2(AppConfig.Get("aura_color2"));
|
||||||
|
|
||||||
|
Color _Color1 = Color1;
|
||||||
|
Color _Color2 = Color2;
|
||||||
|
|
||||||
|
// Ally lower brightness fix
|
||||||
|
if (AppConfig.IsAlly())
|
||||||
|
{
|
||||||
|
switch (InputDispatcher.GetBacklight())
|
||||||
|
{
|
||||||
|
case 1: colorDim = 0.1; break;
|
||||||
|
case 2: colorDim = 0.3; break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (colorDim < 1)
|
||||||
|
{
|
||||||
|
_Color1 = Color.FromArgb((int)(Color1.R * colorDim), (int)(Color1.G * colorDim), (int)(Color1.B * colorDim));
|
||||||
|
_Color2 = Color.FromArgb((int)(Color2.R * colorDim), (int)(Color2.G * colorDim), (int)(Color2.B * colorDim));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
timer.Enabled = false;
|
timer.Enabled = false;
|
||||||
|
|
||||||
Logger.WriteLine($"AuraMode: {Mode}");
|
Logger.WriteLine($"AuraMode: {Mode}");
|
||||||
@@ -593,8 +664,7 @@ namespace GHelper.USB
|
|||||||
}
|
}
|
||||||
|
|
||||||
int _speed = (Speed == AuraSpeed.Normal) ? 0xeb : (Speed == AuraSpeed.Fast) ? 0xf5 : 0xe1;
|
int _speed = (Speed == AuraSpeed.Normal) ? 0xeb : (Speed == AuraSpeed.Fast) ? 0xf5 : 0xe1;
|
||||||
|
AsusHid.Write(new List<byte[]> { AuraMessage(Mode, _Color1, _Color2, _speed, isSingleColor), MESSAGE_SET, MESSAGE_APPLY });
|
||||||
AsusHid.Write(new List<byte[]> { AuraMessage(Mode, Color1, Color2, _speed, isSingleColor), MESSAGE_APPLY, MESSAGE_SET });
|
|
||||||
|
|
||||||
if (isACPI)
|
if (isACPI)
|
||||||
Program.acpi.TUFKeyboardRGB(Mode, Color1, _speed);
|
Program.acpi.TUFKeyboardRGB(Mode, Color1, _speed);
|
||||||
@@ -624,6 +694,8 @@ namespace GHelper.USB
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (isACPI) Program.acpi.TUFKeyboardRGB(AuraMode.AuraStatic, color, 0xeb);
|
||||||
|
|
||||||
AsusHid.Write(new List<byte[]> { AuraMessage(AuraMode.AuraStatic, color, color, 0xeb, isSingleColor), MESSAGE_APPLY, MESSAGE_SET });
|
AsusHid.Write(new List<byte[]> { AuraMessage(AuraMode.AuraStatic, color, color, 0xeb, isSingleColor), MESSAGE_APPLY, MESSAGE_SET });
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -652,7 +724,7 @@ namespace GHelper.USB
|
|||||||
bound.Y += bound.Height / 3;
|
bound.Y += bound.Height / 3;
|
||||||
bound.Height -= (int)Math.Round(bound.Height * (0.33f + 0.022f)); // cut 1/3 of the top screen + windows panel
|
bound.Height -= (int)Math.Round(bound.Height * (0.33f + 0.022f)); // cut 1/3 of the top screen + windows panel
|
||||||
|
|
||||||
Bitmap screen_low = AmbientData.CamptureScreen(bound, 512, 288); //quality decreases greatly if it is less 512 ;
|
Bitmap screen_low = AmbientData.CamptureScreen(bound, 512, 288); //quality decreases greatly if it is less 512 ;
|
||||||
Bitmap screeb_pxl = AmbientData.ResizeImage(screen_low, 4, 2); // 4x2 zone. top for keyboard and bot for lightbar;
|
Bitmap screeb_pxl = AmbientData.ResizeImage(screen_low, 4, 2); // 4x2 zone. top for keyboard and bot for lightbar;
|
||||||
|
|
||||||
int zones = AURA_ZONES;
|
int zones = AURA_ZONES;
|
||||||
|
|||||||
@@ -78,7 +78,6 @@ namespace GHelper
|
|||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
InitTheme(true);
|
InitTheme(true);
|
||||||
|
|
||||||
|
|
||||||
LoadUpdates(true);
|
LoadUpdates(true);
|
||||||
|
|
||||||
//buttonRefresh.Visible = false;
|
//buttonRefresh.Visible = false;
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
Small and lightweight Armoury Crate alternative for Asus laptops offering almost same functionality without extra bloat and unnecessary services.
|
Small and lightweight Armoury Crate alternative for Asus laptops offering almost same functionality without extra bloat and unnecessary services.
|
||||||
Works with all popular models, such as ROG Zephyrus G14, G15, G16, M16, Flow X13, Flow X16, Flow Z13, TUF Series, Strix / Scar Series, ProArt, VivoBook and many more!
|
Works with all popular models, such as ROG Zephyrus G14, G15, G16, M16, Flow X13, Flow X16, Flow Z13, TUF Series, Strix / Scar Series, ProArt, VivoBook and many more!
|
||||||
|
|
||||||
# [:floppy_disk:Download](https://github.com/seerge/g-helper/releases/latest/download/GHelper.zip)
|
# [:floppy_disk:Download](https://github.com/seerge/g-helper/releases/latest/download/GHelper.zip)
|
||||||
|
|
||||||
- [FAQ](https://github.com/seerge/g-helper/wiki/FAQ)
|
- [FAQ](https://github.com/seerge/g-helper/wiki/FAQ)
|
||||||
- [Setup and Requirements](https://github.com/seerge/g-helper/wiki/Requirements)
|
- [Setup and Requirements](https://github.com/seerge/g-helper/wiki/Requirements)
|
||||||
@@ -82,25 +82,20 @@ Each BIOS mode is paired with matching Windows Power Mode. You can adjust this s
|
|||||||
|
|
||||||

|

|
||||||
|
|
||||||
### 🔖 Important Notice
|
|
||||||
|
|
||||||
G-Helper is **NOT** an operating system, firmware or a driver. It **DOESN'T** "run" your hardware in realtime anyhow.
|
|
||||||
|
|
||||||
It's an app that lets you select (already predefined and stored in BIOS) operating modes and (optionally) set some settings that already exist on your device (same as Armoury Crate). If you use same mode / settings as in Armoury Crate - performance of your device won't be different.
|
|
||||||
|
|
||||||
Role of G-Helper for your laptop is similar to a role of a remote control for your TV.
|
|
||||||
|
|
||||||
### :mouse: Asus Mouse and other peripherals support
|
### :mouse: Asus Mouse and other peripherals support
|
||||||
|
|
||||||
[Currently supported models](https://github.com/seerge/g-helper/discussions/900)
|
[Currently supported models](https://github.com/seerge/g-helper/discussions/900)
|
||||||
- ROG Harpe Ace Aim Lab Edition
|
|
||||||
- ROG Keris Wireless
|
|
||||||
- ROG Chakram X (P708)
|
- ROG Chakram X (P708)
|
||||||
- ROG Chakram Core (P511)
|
- ROG Chakram Core (P511)
|
||||||
- ROG Strix III Gladius III Aimpoint Wireless (P711)
|
|
||||||
- ROG Gladius II and Gladius II Origin (P502 and P504)
|
- ROG Gladius II and Gladius II Origin (P502 and P504)
|
||||||
- ROG Gladius III
|
- ROG Gladius III
|
||||||
- ROG Gladius III Wireless
|
- ROG Gladius III Wireless
|
||||||
|
- ROG Harpe Ace Aim Lab Edition
|
||||||
|
- ROG Keris Wireless
|
||||||
|
- ROG Strix Carry (P508)
|
||||||
|
- ROG Strix III Gladius III Aimpoint Wireless (P711)
|
||||||
|
- ROG Spatha
|
||||||
- ROG Strix Impact II Wireless
|
- ROG Strix Impact II Wireless
|
||||||
- TUF Gaming M4 Wireless (P306)
|
- TUF Gaming M4 Wireless (P306)
|
||||||
- TUF Gaming M3
|
- TUF Gaming M3
|
||||||
@@ -119,8 +114,13 @@ Huge thanks to [@IceStormNG](https://github.com/IceStormNG) 👑 for contributio
|
|||||||
- ``Fn + Shift + F7 / F8`` - Matrix brightness Down / Up
|
- ``Fn + Shift + F7 / F8`` - Matrix brightness Down / Up
|
||||||
- ``Fn + Shift + F7 / F8`` - Screenpad brightness Down / Up
|
- ``Fn + Shift + F7 / F8`` - Screenpad brightness Down / Up
|
||||||
- ``Ctrl + Shift + F20`` - Mute Microphone
|
- ``Ctrl + Shift + F20`` - Mute Microphone
|
||||||
- ``Ctrl + Shift + Alt + F14`` - Eco Mode
|
- ``Ctrl + Shift + Alt + F14`` - Eco GPU Mode
|
||||||
- ``Ctrl + Shift + Alt + F15`` - Standard Mode
|
- ``Ctrl + Shift + Alt + F15`` - Standard GPU Mode
|
||||||
|
- ``Ctrl + Shift + Alt + F16`` - Silent
|
||||||
|
- ``Ctrl + Shift + Alt + F17`` - Balanced
|
||||||
|
- ``Ctrl + Shift + Alt + F18`` - Turbo
|
||||||
|
- ``Ctrl + Shift + Alt + F19`` - Custom 1 (if exists)
|
||||||
|
- ``Ctrl + Shift + Alt + F20`` - Custom 2 (if exists)
|
||||||
- [Custom keybindings / hotkeys](https://github.com/seerge/g-helper/wiki/Power-user-settings#custom-hotkey-actions)
|
- [Custom keybindings / hotkeys](https://github.com/seerge/g-helper/wiki/Power-user-settings#custom-hotkey-actions)
|
||||||
|
|
||||||
------------------
|
------------------
|
||||||
@@ -132,13 +132,24 @@ Huge thanks to [@IceStormNG](https://github.com/IceStormNG) 👑 for contributio
|
|||||||
|
|
||||||
------------------
|
------------------
|
||||||
|
|
||||||
**Libraries and projects used**
|
### 🔖 Important Notice
|
||||||
|
|
||||||
|
G-Helper is **NOT** an operating system, firmware, or driver. It **DOES NOT** "run" your hardware in real-time anyhow.
|
||||||
|
|
||||||
|
It's an app that lets you select one of the predefined operating modes created by manufacturer (and stored in BIOS) and optionally(!) set some settings that already exist on your device same as Armoury Crate can. It does it by using the Asus System Control Interface "driver" that Armoury uses for it.
|
||||||
|
|
||||||
|
If you use equivalent mode/settings as in Armoury Crate - the performance or the behavior of your device won't be different.
|
||||||
|
|
||||||
|
The role of G-Helper for your laptop is similar to the role of a remote control for your TV.
|
||||||
|
|
||||||
|
### Libraries and projects used
|
||||||
- [Linux Kernel](https://github.com/torvalds/linux/blob/master/drivers/platform/x86/asus-wmi.c) for some basic endpoints in ASUS ACPI/WMI interface
|
- [Linux Kernel](https://github.com/torvalds/linux/blob/master/drivers/platform/x86/asus-wmi.c) for some basic endpoints in ASUS ACPI/WMI interface
|
||||||
- [NvAPIWrapper](https://github.com/falahati/NvAPIWrapper) for accessing Nvidia API
|
- [NvAPIWrapper](https://github.com/falahati/NvAPIWrapper) for accessing Nvidia API
|
||||||
- [Starlight](https://github.com/vddCore/Starlight) for anime matrix communication protocol
|
- [Starlight](https://github.com/vddCore/Starlight) for anime matrix communication protocol
|
||||||
- [UXTU](https://github.com/JamesCJ60/Universal-x86-Tuning-Utility) for undervolting using Ryzen System Management Unit
|
- [UXTU](https://github.com/JamesCJ60/Universal-x86-Tuning-Utility) for undervolting using Ryzen System Management Unit
|
||||||
|
- [AsusCtl](https://gitlab.com/asus-linux/asusctl) for inspiration and some reverse engineering
|
||||||
|
|
||||||
**Disclaimers**
|
### Disclaimers
|
||||||
"ROG", "TUF", and "Armoury Crate" are trademarked by and belong to AsusTek Computer, Inc. I make no claims to these or any assets belonging to AsusTek Computer and use them purely for informational purposes only.
|
"ROG", "TUF", and "Armoury Crate" are trademarked by and belong to AsusTek Computer, Inc. I make no claims to these or any assets belonging to AsusTek Computer and use them purely for informational purposes only.
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED “AS IS” AND WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. MISUSE OF THIS SOFTWARE COULD CAUSE SYSTEM INSTABILITY OR MALFUNCTION.
|
THE SOFTWARE IS PROVIDED “AS IS” AND WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. MISUSE OF THIS SOFTWARE COULD CAUSE SYSTEM INSTABILITY OR MALFUNCTION.
|
||||||
|
|||||||