mirror of
https://github.com/jkocon/g-helper.git
synced 2026-02-23 13:00:52 +01:00
Compare commits
681 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1efda38ccf | ||
|
|
88eb4916b6 | ||
|
|
741d9cf1e2 | ||
|
|
45e3d5e75f | ||
|
|
443f6726c7 | ||
|
|
f22f6eb960 | ||
|
|
a83b42c263 | ||
|
|
b97bd9af65 | ||
|
|
a70956eaf8 | ||
|
|
a8fd049090 | ||
|
|
9817769d62 | ||
|
|
39f919213f | ||
|
|
709f2b89ca | ||
|
|
950d082fc3 | ||
|
|
ceaa8c4110 | ||
|
|
fefbe94a8c | ||
|
|
c96a7749be | ||
|
|
bc9917b69a | ||
|
|
f5964b60c7 | ||
|
|
b3133ede7a | ||
|
|
c245a929f3 | ||
|
|
4c4e6c8291 | ||
|
|
887e769bc6 | ||
|
|
5858a9d45b | ||
|
|
69f6be8941 | ||
|
|
258bf3048a | ||
|
|
c35cbe51fe | ||
|
|
42da641f60 | ||
|
|
1c8260ce28 | ||
|
|
37f4022366 | ||
|
|
10163db7ea | ||
|
|
1a7b7b3761 | ||
|
|
45f46aab4e | ||
|
|
90f74948cb | ||
|
|
28d9a15f0c | ||
|
|
01630dc195 | ||
|
|
8ff9d1203b | ||
|
|
0eb31b75a1 | ||
|
|
675317dcc1 | ||
|
|
2ed6f1fefb | ||
|
|
b80a069220 | ||
|
|
652ed23bed | ||
|
|
6a71fe5665 | ||
|
|
3129741fcd | ||
|
|
c2db0fc36d | ||
|
|
810d2e5f75 | ||
|
|
977ced629d | ||
|
|
ce76537687 | ||
|
|
ce3ccf965b | ||
|
|
7b1e088f0b | ||
|
|
7e79da221e | ||
|
|
35c7f4283e | ||
|
|
d0d409b37f | ||
|
|
1c1cdf1bec | ||
|
|
d177fac656 | ||
|
|
7591eb1043 | ||
|
|
fd66254130 | ||
|
|
f8efcb047a | ||
|
|
aaf2fb15f4 | ||
|
|
e68c29fc6f | ||
|
|
5ddc93d275 | ||
|
|
fe6f3bc3bf | ||
|
|
9bf31c3235 | ||
|
|
0f333e90c3 | ||
|
|
33c4406f95 | ||
|
|
2abae6ac86 | ||
|
|
c795807c75 | ||
|
|
16bdb5d32a | ||
|
|
773c50579c | ||
|
|
59bfe845c6 | ||
|
|
95909bd951 | ||
|
|
ac89645476 | ||
|
|
a33089921e | ||
|
|
23647e268e | ||
|
|
2df256ca66 | ||
|
|
c5b9fda3de | ||
|
|
7bfc9e0bda | ||
|
|
b8fa771f36 | ||
|
|
c0bb6015a0 | ||
|
|
181f8e4a0f | ||
|
|
ab76e524cd | ||
|
|
9686f4ed38 | ||
|
|
f21b1e2045 | ||
|
|
ff92229ecb | ||
|
|
ea5964d8bb | ||
|
|
c7c147882d | ||
|
|
26423c9d16 | ||
|
|
0ff362a75e | ||
|
|
d76dcf9830 | ||
|
|
9469cc06de | ||
|
|
67677adad6 | ||
|
|
8e9fea3a69 | ||
|
|
89951e1464 | ||
|
|
c7d6e9ee70 | ||
|
|
59f7500a36 | ||
|
|
7d0bc58abd | ||
|
|
c5550d1fd0 | ||
|
|
a7d5b38a1b | ||
|
|
07d93955f6 | ||
|
|
abc5b25800 | ||
|
|
5da61ded0f | ||
|
|
583d706cd2 | ||
|
|
8fe7a535af | ||
|
|
6523540834 | ||
|
|
211d8d3e61 | ||
|
|
f3723e9d6f | ||
|
|
d47990c056 | ||
|
|
c2a68d3022 | ||
|
|
26e26b9701 | ||
|
|
a315f27a4f | ||
|
|
26642a0020 | ||
|
|
6f1236b16c | ||
|
|
f07c481b3b | ||
|
|
c30fcd6ba7 | ||
|
|
53bb4b8760 | ||
|
|
34ec26dba0 | ||
|
|
b6c7da53c1 | ||
|
|
344a0269ef | ||
|
|
5157357c8b | ||
|
|
ad622f3924 | ||
|
|
2799936909 | ||
|
|
134ca5d680 | ||
|
|
d076765d5c | ||
|
|
9514caef94 | ||
|
|
64b5547126 | ||
|
|
d133abba1c | ||
|
|
bf4eae6081 | ||
|
|
8ff9b07a60 | ||
|
|
1011469628 | ||
|
|
22434ff86a | ||
|
|
7f0c3143f4 | ||
|
|
4216c2d73d | ||
|
|
34161eee7c | ||
|
|
6129f79b68 | ||
|
|
01fc5a3265 | ||
|
|
fd5c7cd8e4 | ||
|
|
ced4eac341 | ||
|
|
51c7738f15 | ||
|
|
b62fe46759 | ||
|
|
51c099163e | ||
|
|
61c114625a | ||
|
|
f794110c2a | ||
|
|
740a10fed8 | ||
|
|
696f6f046f | ||
|
|
79c0db6c4c | ||
|
|
008a00e121 | ||
|
|
52952e74db | ||
|
|
87ee3e4681 | ||
|
|
05434f5a00 | ||
|
|
7e4de0d064 | ||
|
|
51b7e8e9bd | ||
|
|
bacea8ede1 | ||
|
|
e69b6ea5b0 | ||
|
|
cf142f847d | ||
|
|
fabc7e194b | ||
|
|
98d255d8fd | ||
|
|
1d1cef12c3 | ||
|
|
9c3d19c7a4 | ||
|
|
06b4df29cb | ||
|
|
2628695bbc | ||
|
|
8c5fc0f643 | ||
|
|
cf3c61e467 | ||
|
|
9a3b689d29 | ||
|
|
ae94f66699 | ||
|
|
71b5e24f63 | ||
|
|
3139252740 | ||
|
|
50a020dd58 | ||
|
|
c804d6a6b1 | ||
|
|
f2b3f2fe64 | ||
|
|
c7d3b4ea3a | ||
|
|
a0c15e6732 | ||
|
|
6ab48b1540 | ||
|
|
5b383b2884 | ||
|
|
df56e2af23 | ||
|
|
a618866804 | ||
|
|
877feeab02 | ||
|
|
b697ed5a66 | ||
|
|
e642c550f9 | ||
|
|
660aae0f3e | ||
|
|
ed41766108 | ||
|
|
a43479dbba | ||
|
|
43c71b833d | ||
|
|
2948a29b71 | ||
|
|
8f2a13b1ad | ||
|
|
b75471a052 | ||
|
|
c8bd2a9c1c | ||
|
|
9eb853d8b2 | ||
|
|
ba0bac11b5 | ||
|
|
8241700fe7 | ||
|
|
2ff1a59ff9 | ||
|
|
18d6f694a0 | ||
|
|
9fe283b620 | ||
|
|
b7e4ec50a6 | ||
|
|
927fc382a5 | ||
|
|
ed728de661 | ||
|
|
a1a317d952 | ||
|
|
123fbc414f | ||
|
|
d26d9c46ad | ||
|
|
a58230fdd2 | ||
|
|
00393ef67d | ||
|
|
a687d074ee | ||
|
|
201ef48cd4 | ||
|
|
7b16adf0f5 | ||
|
|
e52ee2094c | ||
|
|
7e523d02c0 | ||
|
|
6d36794f5e | ||
|
|
271b2fd627 | ||
|
|
15da5f64e5 | ||
|
|
0a2e755b72 | ||
|
|
1b371b6e38 | ||
|
|
f1286af4b7 | ||
|
|
d634bdb26c | ||
|
|
950c1802e8 | ||
|
|
660e15667a | ||
|
|
c69b3ffab2 | ||
|
|
009c947d30 | ||
|
|
3981d2e028 | ||
|
|
b03453d721 | ||
|
|
a5a34df139 | ||
|
|
8877bb5938 | ||
|
|
945fa9ea59 | ||
|
|
09b0eeeff8 | ||
|
|
40098293ca | ||
|
|
ceb1386ca7 | ||
|
|
231edde166 | ||
|
|
8f70f2a65f | ||
|
|
e193290736 | ||
|
|
23ee21e351 | ||
|
|
1e18b94a9c | ||
|
|
bdba153ddc | ||
|
|
c65002cbae | ||
|
|
b6682522d8 | ||
|
|
c6247f630c | ||
|
|
cd4936c839 | ||
|
|
5dc9061162 | ||
|
|
81b128e76c | ||
|
|
5fc999efe8 | ||
|
|
ae41aedb1e | ||
|
|
51bf22e6a6 | ||
|
|
ad3d31cba4 | ||
|
|
f13209f403 | ||
|
|
2a949732a2 | ||
|
|
fc1f594a61 | ||
|
|
300eb7af70 | ||
|
|
55f45fba03 | ||
|
|
b41055ce0f | ||
|
|
ebb8cda8f0 | ||
|
|
f983bdac42 | ||
|
|
04143abf7c | ||
|
|
b219ff5af4 | ||
|
|
df20fa63a9 | ||
|
|
501dcb3235 | ||
|
|
322c5dd7c5 | ||
|
|
f68b9218b6 | ||
|
|
f35ad1804c | ||
|
|
5739b63225 | ||
|
|
4cdfb6710b | ||
|
|
db9e4d75cb | ||
|
|
2d52345f11 | ||
|
|
64745ca01e | ||
|
|
4b42106c31 | ||
|
|
387e869833 | ||
|
|
2a8e24bc74 | ||
|
|
5c000c0bb0 | ||
|
|
1f22887197 | ||
|
|
a3913e0ea8 | ||
|
|
2aa34edfb2 | ||
|
|
d7fe4a3bee | ||
|
|
f072dbe020 | ||
|
|
ccfd514081 | ||
|
|
558f8b2cc0 | ||
|
|
bbf4c10a2e | ||
|
|
fe4e2ea478 | ||
|
|
8d7108bc1e | ||
|
|
3e28d3f027 | ||
|
|
0e42f7955e | ||
|
|
fff3c2924e | ||
|
|
65716048ff | ||
|
|
2e0eed3ab9 | ||
|
|
bde76ead7e | ||
|
|
ebb8de4103 | ||
|
|
8a4d553591 | ||
|
|
c25ec71104 | ||
|
|
6a9cf45490 | ||
|
|
11da574c48 | ||
|
|
98a22802a0 | ||
|
|
5594be868b | ||
|
|
13c2e725fa | ||
|
|
11e0dc2df3 | ||
|
|
6758bde975 | ||
|
|
ed92dd236f | ||
|
|
3fc5d6a124 | ||
|
|
351566e24a | ||
|
|
65b40a4f7a | ||
|
|
e2a8688581 | ||
|
|
9445c1c60b | ||
|
|
9be602b230 | ||
|
|
2f83ae7cf6 | ||
|
|
ead49d117e | ||
|
|
9c0e2b4123 | ||
|
|
0355ca1420 | ||
|
|
b5274ae9be | ||
|
|
0fc261cfa7 | ||
|
|
efa2f0760a | ||
|
|
822391c98f | ||
|
|
22ffa19114 | ||
|
|
af90645d6d | ||
|
|
a5590a9ed6 | ||
|
|
ed8f056c6e | ||
|
|
0b2c962386 | ||
|
|
77e63f7703 | ||
|
|
8e686aded3 | ||
|
|
f866f724b2 | ||
|
|
29408c4256 | ||
|
|
c77a87f435 | ||
|
|
66a1774d78 | ||
|
|
2532aadb13 | ||
|
|
2ba6c9de20 | ||
|
|
e6938ea5cf | ||
|
|
5bf60e24b5 | ||
|
|
731a6c845f | ||
|
|
af7823ffe9 | ||
|
|
014b107dbe | ||
|
|
7373c60a20 | ||
|
|
9c628b2fe9 | ||
|
|
2a4a2444c1 | ||
|
|
0ef78c7174 | ||
|
|
084a200020 | ||
|
|
41b6955906 | ||
|
|
8daa990b5d | ||
|
|
599d8dd53a | ||
|
|
f3b4fe0e25 | ||
|
|
46adb6bc7f | ||
|
|
69eb0c289f | ||
|
|
4513c9ee9c | ||
|
|
206d33a54c | ||
|
|
88756092e4 | ||
|
|
6e9efb73a3 | ||
|
|
22cede52b9 | ||
|
|
70710fd8ea | ||
|
|
e082932e1d | ||
|
|
e15e0e9c70 | ||
|
|
0960a8db2b | ||
|
|
a7da8505ba | ||
|
|
6f3fb62661 | ||
|
|
37011bbf0c | ||
|
|
5b4b1e3417 | ||
|
|
79bb17c6f5 | ||
|
|
bf95ad7a98 | ||
|
|
e51322405c | ||
|
|
21cfa6cdba | ||
|
|
7d5b70c4b4 | ||
|
|
883d473ad4 | ||
|
|
983d1c9af3 | ||
|
|
9f21974307 | ||
|
|
1dfc8f476e | ||
|
|
018b4a159f | ||
|
|
c10bd5c845 | ||
|
|
9377c5f3e0 | ||
|
|
27607b2ce0 | ||
|
|
4996273163 | ||
|
|
574c6ccda1 | ||
|
|
0d91042369 | ||
|
|
0c78dc640e | ||
|
|
0c3b87b4cb | ||
|
|
091a00cba0 | ||
|
|
7039f58e05 | ||
|
|
a3e1286296 | ||
|
|
d005b59b2e | ||
|
|
fb00b7ccec | ||
|
|
e984ba796e | ||
|
|
18a0c4c801 | ||
|
|
08c41301ea | ||
|
|
c571cb3f30 | ||
|
|
e66e06a57c | ||
|
|
8eb17e2bc1 | ||
|
|
bc930495eb | ||
|
|
0d9ddd6215 | ||
|
|
c5a5a0bc9c | ||
|
|
b3726025c5 | ||
|
|
be1585b3d2 | ||
|
|
eedbc6ef36 | ||
|
|
23b3809632 | ||
|
|
3cc27369a3 | ||
|
|
cbbcecef9d | ||
|
|
f4b3d6182e | ||
|
|
a5ef58dbee | ||
|
|
2b20500c6d | ||
|
|
a235531e28 | ||
|
|
092fd537ce | ||
|
|
623282dccf | ||
|
|
a02f6c595f | ||
|
|
a06f7f6810 | ||
|
|
26c845f87e | ||
|
|
f134f45d64 | ||
|
|
ec8474ded8 | ||
|
|
925375ce18 | ||
|
|
4ef54d89d7 | ||
|
|
5f02596479 | ||
|
|
4502433d36 | ||
|
|
1e68017de2 | ||
|
|
2d9f06435a | ||
|
|
b7bed11b71 | ||
|
|
e784b9475c | ||
|
|
37fe17ecea | ||
|
|
5996aec86f | ||
|
|
edf4db332e | ||
|
|
fff466a30e | ||
|
|
2448a4b1df | ||
|
|
94c20050f6 | ||
|
|
f59ac2e673 | ||
|
|
22a84a647c | ||
|
|
35c3bf7ef3 | ||
|
|
f7d353a8d0 | ||
|
|
ca012c8140 | ||
|
|
d3dfa5ae09 | ||
|
|
fa188ffa13 | ||
|
|
7dd4ea6d9d | ||
|
|
84bf767e47 | ||
|
|
313db0aa43 | ||
|
|
2d23166d9d | ||
|
|
fcaee2221f | ||
|
|
7516735a0d | ||
|
|
e9a01af4c4 | ||
|
|
8ec97da829 | ||
|
|
5d4297c879 | ||
|
|
62f37667ab | ||
|
|
8bac14a69d | ||
|
|
286ec3877f | ||
|
|
b1f6754dae | ||
|
|
4e45d1464c | ||
|
|
cb03848cd7 | ||
|
|
5f7fc0077b | ||
|
|
4c653eddb1 | ||
|
|
f93c37ad97 | ||
|
|
62cac76200 | ||
|
|
5401ea952a | ||
|
|
1458f62ff0 | ||
|
|
f04d06815e | ||
|
|
24067a2c96 | ||
|
|
a49ac1072e | ||
|
|
1b098cd3ee | ||
|
|
a05eaea343 | ||
|
|
f749bfc888 | ||
|
|
84f03d7455 | ||
|
|
816988eb6c | ||
|
|
312028f97c | ||
|
|
211b855e8a | ||
|
|
d3d2f3189f | ||
|
|
4120113cbe | ||
|
|
1191208f70 | ||
|
|
c7db5a403c | ||
|
|
35ceea878f | ||
|
|
06378162c8 | ||
|
|
a688275ca2 | ||
|
|
4c5e05d6f8 | ||
|
|
d77acfd97a | ||
|
|
092ecc7ede | ||
|
|
0b3d52fc0e | ||
|
|
2797807d7b | ||
|
|
6075676372 | ||
|
|
0705edd83d | ||
|
|
6dcfff704e | ||
|
|
abc9acd3a8 | ||
|
|
53d7382417 | ||
|
|
64f4572113 | ||
|
|
8ab1f1fc81 | ||
|
|
251d32e115 | ||
|
|
947e32b97c | ||
|
|
091303d90f | ||
|
|
c8b929310a | ||
|
|
c32fa46991 | ||
|
|
b94e20a3fc | ||
|
|
2d0defd484 | ||
|
|
6f49af19ed | ||
|
|
097d91b5a4 | ||
|
|
f36a55f086 | ||
|
|
c1a6019d57 | ||
|
|
63b357a71b | ||
|
|
c337103806 | ||
|
|
268e55d47a | ||
|
|
3cc4955dd7 | ||
|
|
db8e4b9c5e | ||
|
|
c517f340dc | ||
|
|
f0da110a83 | ||
|
|
88ab4f396e | ||
|
|
4378118951 | ||
|
|
df71595b45 | ||
|
|
e7bb9c81d2 | ||
|
|
3b54e89d8e | ||
|
|
aa07a39c35 | ||
|
|
48e65dea97 | ||
|
|
b3e4578c02 | ||
|
|
76f29c5934 | ||
|
|
c57a60079c | ||
|
|
25470ed579 | ||
|
|
95b9a833c1 | ||
|
|
d156d8ace9 | ||
|
|
6d696c5c77 | ||
|
|
b644402155 | ||
|
|
0e4422f103 | ||
|
|
a9c6033c35 | ||
|
|
4889f0277f | ||
|
|
267662e15b | ||
|
|
34d2273ff5 | ||
|
|
61cc54b709 | ||
|
|
4ee93775f5 | ||
|
|
285cd81509 | ||
|
|
034b46e557 | ||
|
|
4697c37cad | ||
|
|
2a4e1f41f6 | ||
|
|
4196ccf33f | ||
|
|
c24dac2e4f | ||
|
|
555a6f4ed7 | ||
|
|
f10dee4e47 | ||
|
|
c82bc874cf | ||
|
|
a6a453704a | ||
|
|
c33edac4b4 | ||
|
|
16e30598e9 | ||
|
|
970de2adef | ||
|
|
293b261b37 | ||
|
|
03bff51850 | ||
|
|
42a598f177 | ||
|
|
ebfb9b3875 | ||
|
|
60c4e08347 | ||
|
|
e98cd2f5c1 | ||
|
|
697b5f0d2f | ||
|
|
b638382799 | ||
|
|
5f6afc0c6e | ||
|
|
8de06ce5ad | ||
|
|
85725fb782 | ||
|
|
d2cb6965e0 | ||
|
|
3f8083be50 | ||
|
|
1d30699fa2 | ||
|
|
060e3b7f7d | ||
|
|
2785bc6267 | ||
|
|
094fce0117 | ||
|
|
af9d3eb50e | ||
|
|
03f7d717b6 | ||
|
|
833b750227 | ||
|
|
b6dbc1ed25 | ||
|
|
103c65a43d | ||
|
|
d19ff265ab | ||
|
|
5d71a40987 | ||
|
|
9b33a43b49 | ||
|
|
df5bcbc376 | ||
|
|
71b74801ba | ||
|
|
6bab2fc9cb | ||
|
|
428b624ec6 | ||
|
|
af001b056a | ||
|
|
c4e251afa0 | ||
|
|
e5e079896d | ||
|
|
3bdcb5a630 | ||
|
|
b879a4f83f | ||
|
|
b825b0dcd4 | ||
|
|
5875c1ed2c | ||
|
|
d428bfa3c8 | ||
|
|
b8c8508fd7 | ||
|
|
490d40a244 | ||
|
|
236e6215e7 | ||
|
|
106ac8aca5 | ||
|
|
6afc813de1 | ||
|
|
c9458494aa | ||
|
|
a32920586c | ||
|
|
b86588457b | ||
|
|
1f55878894 | ||
|
|
b0e60d5d78 | ||
|
|
e1ba87fa2b | ||
|
|
71c31d6dde | ||
|
|
338e5719db | ||
|
|
b402535a73 | ||
|
|
accb8e13d6 | ||
|
|
e01df60c5e | ||
|
|
aed26d2fda | ||
|
|
993e123032 | ||
|
|
d6386c3977 | ||
|
|
00595b80f0 | ||
|
|
4ca5db4560 | ||
|
|
d440846cac | ||
|
|
222cefcee2 | ||
|
|
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 |
13
.github/FUNDING.yml
vendored
13
.github/FUNDING.yml
vendored
@@ -1,13 +0,0 @@
|
||||
# These are supported funding model platforms
|
||||
|
||||
github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
|
||||
patreon: # Replace with a single Patreon username
|
||||
open_collective: # Replace with a single Open Collective username
|
||||
ko_fi: # Replace with a single Ko-fi username
|
||||
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
|
||||
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
|
||||
liberapay: # Replace with a single Liberapay username
|
||||
issuehunt: # Replace with a single IssueHunt username
|
||||
otechie: # Replace with a single Otechie username
|
||||
lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
|
||||
custom: https://www.paypal.com/donate/?hosted_button_id=4HMSHS4EBQWTA
|
||||
24
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
24
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
@@ -1,6 +1,5 @@
|
||||
name: Bug Report
|
||||
description: Something isn't working correctly
|
||||
labels: ["bug"]
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
@@ -13,7 +12,7 @@ body:
|
||||
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 was provided, my issue will be closed without an answer.
|
||||
- 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
|
||||
@@ -58,15 +57,22 @@ body:
|
||||
attributes:
|
||||
label: Additional information.
|
||||
description: If applicable, add screenshots or other relevant information to help explain your problem.
|
||||
- type: checkboxes
|
||||
- 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 Software Running
|
||||
description: Please check what Asus/Armoury Services do you have installed and running
|
||||
options:
|
||||
- label: Armoury Crate
|
||||
- label: MyAsus
|
||||
- label: Other Asus Services
|
||||
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:
|
||||
|
||||
20
.github/ISSUE_TEMPLATE/feature_request.md
vendored
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
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
|
||||
31
.github/ISSUE_TEMPLATE/peripherals_request.yml
vendored
Normal file
31
.github/ISSUE_TEMPLATE/peripherals_request.yml
vendored
Normal file
@@ -0,0 +1,31 @@
|
||||
name: Mouse and other peripherals support request
|
||||
description: Request support for a new device
|
||||
body:
|
||||
- type: input
|
||||
id: device
|
||||
attributes:
|
||||
label: Mouse / peripheral model and version
|
||||
placeholder: e.g. Asus TUF M4 Wireless
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: Armoury Crate Screenshots
|
||||
description: Connect your mouse to Armoury Crate (maybe in a VM if you do not want to install it on your PC) and upload here screenshots of all the pages for your mouse for settings.
|
||||
placeholder: Drag and drop screenshots here
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: solution
|
||||
attributes:
|
||||
label: USB Details
|
||||
description: Also, please use <a href=https://www.uwe-sieber.de/usbtreeview.html>USB Tree View</a> and send the text (especially the block with all the child devices) of the mouse. <img width="1168" alt="image" src="https://github.com/seerge/g-helper/assets/12786283/8b51dd4d-c9fe-444e-b1b1-415175e10555">
|
||||
placeholder: USB Tree View details
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: additional
|
||||
attributes:
|
||||
label: Additional information.
|
||||
placeholder: If applicable, add screenshots or other relevant information
|
||||
4
.github/SECURITY.md
vendored
4
.github/SECURITY.md
vendored
@@ -4,8 +4,8 @@
|
||||
|
||||
| Version | Supported |
|
||||
| ------- | ------------------ |
|
||||
| 0.89+ | :white_check_mark: |
|
||||
| < 0.89 | :x: |
|
||||
| 0.170+ | :white_check_mark: |
|
||||
| < 0.170 | :x: |
|
||||
|
||||
## Reporting a Vulnerability
|
||||
|
||||
|
||||
2
.github/workflows/build.yml
vendored
2
.github/workflows/build.yml
vendored
@@ -19,7 +19,7 @@ jobs:
|
||||
uses: actions/setup-dotnet@v3
|
||||
with:
|
||||
dotnet-version: |
|
||||
7.0.x
|
||||
8.0.x
|
||||
- name: Build
|
||||
run: |
|
||||
dotnet build app/GHelper.sln
|
||||
|
||||
6
.github/workflows/release.yml
vendored
6
.github/workflows/release.yml
vendored
@@ -18,13 +18,13 @@ jobs:
|
||||
uses: actions/setup-dotnet@v3
|
||||
with:
|
||||
dotnet-version: |
|
||||
7.0.x
|
||||
8.0.x
|
||||
- name: Publish
|
||||
run: |
|
||||
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/net8.0-windows/win-x64/publish/GHelper.exe GHelper.zip
|
||||
- name: Upload
|
||||
env:
|
||||
GH_TOKEN: ${{ github.token }}
|
||||
run: |
|
||||
gh release upload ${{ github.ref_name }} GHelper.zip
|
||||
gh release upload ${{ github.ref_name }} app/bin/x64/Release/net8.0-windows/win-x64/publish/GHelper.exe GHelper.zip
|
||||
|
||||
@@ -1,6 +1,12 @@
|
||||
using GHelper.Gpu.AMD;
|
||||
using GHelper.Helpers;
|
||||
using GHelper.Input;
|
||||
using GHelper.Mode;
|
||||
using GHelper.USB;
|
||||
using HidSharp;
|
||||
using System.Text;
|
||||
|
||||
|
||||
|
||||
namespace GHelper.Ally
|
||||
{
|
||||
@@ -9,50 +15,395 @@ namespace GHelper.Ally
|
||||
{
|
||||
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 System.Timers.Timer timer = default!;
|
||||
static AmdGpuControl amdControl = new AmdGpuControl();
|
||||
|
||||
SettingsForm settings;
|
||||
|
||||
static ControllerMode mode = ControllerMode.Auto;
|
||||
static ControllerMode _autoMode = ControllerMode.Auto;
|
||||
static ControllerMode _mode = ControllerMode.Auto;
|
||||
static ControllerMode _applyMode = ControllerMode.Mouse;
|
||||
|
||||
static int _autoCount = 0;
|
||||
|
||||
static int _upCount = 0;
|
||||
static int _downCount = 0;
|
||||
|
||||
static int tdpMin = 6;
|
||||
static int tdpStable = tdpMin;
|
||||
static int tdpCurrent = -1;
|
||||
|
||||
static bool autoTDP = false;
|
||||
|
||||
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(500);
|
||||
timer.Elapsed += Timer_Elapsed;
|
||||
if (timer is null)
|
||||
{
|
||||
timer = new System.Timers.Timer(300);
|
||||
timer.Elapsed += Timer_Elapsed;
|
||||
Logger.WriteLine("Ally timer");
|
||||
}
|
||||
}
|
||||
|
||||
private int GetMaxTDP()
|
||||
{
|
||||
int tdp = AppConfig.GetMode("limit_total");
|
||||
if (tdp > 0) return tdp;
|
||||
switch (Modes.GetCurrentBase())
|
||||
{
|
||||
case 1:
|
||||
return 25;
|
||||
case 2:
|
||||
return 10;
|
||||
default:
|
||||
return 15;
|
||||
}
|
||||
}
|
||||
|
||||
private int GetTDP()
|
||||
{
|
||||
if (tdpCurrent < 0) tdpCurrent = GetMaxTDP();
|
||||
return tdpCurrent;
|
||||
}
|
||||
|
||||
private void SetTDP(int tdp, string log)
|
||||
{
|
||||
if (tdp < tdpStable) tdp = tdpStable;
|
||||
|
||||
int max = GetMaxTDP();
|
||||
if (tdp > max) tdp = max;
|
||||
|
||||
if (tdp == tdpCurrent) return;
|
||||
if (!autoTDP) return;
|
||||
|
||||
Program.acpi.DeviceSet(AsusACPI.PPT_APUA0, tdp, log);
|
||||
Program.acpi.DeviceSet(AsusACPI.PPT_APUA3, tdp, null);
|
||||
Program.acpi.DeviceSet(AsusACPI.PPT_APUC1, tdp, null);
|
||||
|
||||
tdpCurrent = tdp;
|
||||
}
|
||||
|
||||
private void Timer_Elapsed(object? sender, System.Timers.ElapsedEventArgs e)
|
||||
{
|
||||
if (!autoTDP && _mode != ControllerMode.Auto) return;
|
||||
|
||||
float fps = amdControl.GetFPS();
|
||||
|
||||
ControllerMode _newMode = (fps > 0) ? ControllerMode.Gamepad : ControllerMode.Mouse;
|
||||
|
||||
if (_autoMode != _newMode) _autoCount++;
|
||||
else _autoCount = 0;
|
||||
|
||||
if (_autoCount > 2)
|
||||
if (autoTDP && fpsLimit > 0 && fpsLimit <= 120)
|
||||
{
|
||||
_autoMode = _newMode;
|
||||
_autoCount = 0;
|
||||
AsusHid.WriteInput(new byte[] { AsusHid.INPUT_ID, 0xd1, 1, 1, (byte)_autoMode }, "ControllerAuto " + _autoMode);
|
||||
Logger.WriteLine(fps.ToString());
|
||||
int power = (int)amdControl.GetGpuPower();
|
||||
//Debug.WriteLine($"{power}: {fps}");
|
||||
|
||||
if (fps <= Math.Min(fpsLimit * 0.9, fpsLimit - 4)) _upCount++;
|
||||
else _upCount = 0;
|
||||
|
||||
if (fps >= Math.Min(fpsLimit * 0.95, fpsLimit - 2)) _downCount++;
|
||||
else _downCount = 0;
|
||||
|
||||
var tdp = GetTDP();
|
||||
if (_upCount >= 1)
|
||||
{
|
||||
_downCount = 0;
|
||||
_upCount = 0;
|
||||
SetTDP(tdp + 1, $"AutoTDP+ [{power}]{fps}");
|
||||
}
|
||||
|
||||
if (_downCount >= 8 && power < tdp)
|
||||
{
|
||||
_upCount = 0;
|
||||
_downCount--;
|
||||
SetTDP(tdp - 1, $"AutoTDP- [{power}]{fps}");
|
||||
}
|
||||
}
|
||||
|
||||
if (_mode == ControllerMode.Auto)
|
||||
{
|
||||
ControllerMode newMode = (fps > 0) ? ControllerMode.Gamepad : ControllerMode.Mouse;
|
||||
|
||||
if (_applyMode != newMode) _autoCount++;
|
||||
else _autoCount = 0;
|
||||
|
||||
if (_autoCount == 3)
|
||||
{
|
||||
_autoCount = 0;
|
||||
ApplyMode(newMode);
|
||||
Logger.WriteLine($"Controller Mode {fps}: {newMode}");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void ToggleAutoTDP()
|
||||
{
|
||||
autoTDP = !autoTDP;
|
||||
tdpCurrent = -1;
|
||||
|
||||
if (!autoTDP)
|
||||
{
|
||||
Program.modeControl.SetPerformanceMode();
|
||||
}
|
||||
|
||||
settings.VisualiseAutoTDP(autoTDP);
|
||||
|
||||
}
|
||||
|
||||
public void Init()
|
||||
@@ -60,15 +411,12 @@ namespace GHelper.Ally
|
||||
if (AppConfig.IsAlly()) settings.VisualiseAlly(true);
|
||||
else return;
|
||||
|
||||
Deadzones();
|
||||
SetMode((ControllerMode)AppConfig.Get("controller_mode", (int)ControllerMode.Auto));
|
||||
|
||||
SetMode((ControllerMode)AppConfig.Get("controller_mode", (int)ControllerMode.Auto), true);
|
||||
|
||||
settings.VisualiseBacklight(InputDispatcher.GetBacklight());
|
||||
|
||||
fpsLimit = amdControl.GetFPSLimit();
|
||||
Logger.WriteLine($"FPS Limit: {fpsLimit}");
|
||||
settings.VisualiseFPSLimit(fpsLimit);
|
||||
|
||||
}
|
||||
|
||||
public void ToggleFPSLimit()
|
||||
@@ -79,11 +427,23 @@ namespace GHelper.Ally
|
||||
fpsLimit = 40;
|
||||
break;
|
||||
case 40:
|
||||
fpsLimit = 45;
|
||||
break;
|
||||
case 45:
|
||||
fpsLimit = 50;
|
||||
break;
|
||||
case 50:
|
||||
fpsLimit = 60;
|
||||
break;
|
||||
case 60:
|
||||
fpsLimit = 90;
|
||||
break;
|
||||
case 90:
|
||||
fpsLimit = 120;
|
||||
break;
|
||||
case 120:
|
||||
fpsLimit = 240;
|
||||
break;
|
||||
default:
|
||||
fpsLimit = 30;
|
||||
break;
|
||||
@@ -103,48 +463,259 @@ namespace GHelper.Ally
|
||||
settings.VisualiseBacklight(InputDispatcher.GetBacklight());
|
||||
}
|
||||
|
||||
private void Deadzones()
|
||||
static private byte[] DecodeBinding(string binding = "")
|
||||
{
|
||||
AsusHid.WriteInput(new byte[] { AsusHid.INPUT_ID, 0xd1, 4, 4, 0, 100, 0, 100 }, "ControllerDeadzone");
|
||||
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;
|
||||
}
|
||||
|
||||
private void SetMode(ControllerMode mode)
|
||||
static private void BindZone(BindingZone zone)
|
||||
{
|
||||
if (mode == ControllerMode.Auto)
|
||||
string KeyL1, KeyR1;
|
||||
string KeyL2, KeyR2;
|
||||
|
||||
bool desktop = (_applyMode == ControllerMode.Mouse);
|
||||
|
||||
switch (zone)
|
||||
{
|
||||
_autoMode = ControllerMode.Auto;
|
||||
amdControl.StartFPS();
|
||||
timer.Start();
|
||||
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, null);
|
||||
|
||||
}
|
||||
|
||||
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)
|
||||
}, null);
|
||||
|
||||
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)
|
||||
}, null);
|
||||
|
||||
AsusHid.WriteInput(new byte[] { AsusHid.INPUT_ID, 0xd1, 6, 2,
|
||||
(byte)AppConfig.Get("vibra", 100),
|
||||
(byte)AppConfig.Get("vibra", 100)
|
||||
}, null);
|
||||
|
||||
}
|
||||
|
||||
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);
|
||||
|
||||
amdControl.StopFPS();
|
||||
ApplyMode(mode, init);
|
||||
|
||||
amdControl.StartFPS();
|
||||
timer.Start();
|
||||
|
||||
settings.VisualiseController(mode);
|
||||
}
|
||||
|
||||
|
||||
public void ToggleModeHotkey()
|
||||
{
|
||||
if (_applyMode == ControllerMode.Gamepad)
|
||||
{
|
||||
SetMode(ControllerMode.Mouse);
|
||||
Program.toast.RunToast("Mouse", ToastIcon.Controller);
|
||||
}
|
||||
else
|
||||
{
|
||||
timer.Stop();
|
||||
amdControl.StopFPS();
|
||||
|
||||
AsusHid.WriteInput(new byte[] { AsusHid.INPUT_ID, 0xd1, 1, 1, (byte)mode }, "ControllerMode");
|
||||
SetMode(ControllerMode.Gamepad);
|
||||
Program.toast.RunToast("Gamepad", ToastIcon.Controller);
|
||||
}
|
||||
|
||||
AppConfig.Set("controller_mode", (int)mode);
|
||||
settings.VisualiseController(mode);
|
||||
}
|
||||
|
||||
public void ToggleMode()
|
||||
{
|
||||
|
||||
switch (mode)
|
||||
switch (_mode)
|
||||
{
|
||||
case ControllerMode.Auto:
|
||||
mode = ControllerMode.Gamepad;
|
||||
SetMode(ControllerMode.Gamepad);
|
||||
break;
|
||||
case ControllerMode.Gamepad:
|
||||
mode = ControllerMode.Mouse;
|
||||
SetMode(ControllerMode.Mouse);
|
||||
break;
|
||||
case ControllerMode.Mouse:
|
||||
mode = ControllerMode.Auto;
|
||||
SetMode(ControllerMode.Skip);
|
||||
break;
|
||||
case ControllerMode.Skip:
|
||||
SetMode(ControllerMode.Auto);
|
||||
break;
|
||||
}
|
||||
|
||||
SetMode(mode);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,10 +1,8 @@
|
||||
using NAudio.CoreAudioApi;
|
||||
using NAudio.Wave;
|
||||
using Starlight.AnimeMatrix;
|
||||
using System.Diagnostics;
|
||||
using System.Drawing.Drawing2D;
|
||||
using System.Drawing.Imaging;
|
||||
using System.IO;
|
||||
using System.Timers;
|
||||
|
||||
namespace GHelper.AnimeMatrix
|
||||
@@ -16,14 +14,21 @@ namespace GHelper.AnimeMatrix
|
||||
SettingsForm settings;
|
||||
|
||||
System.Timers.Timer matrixTimer = default!;
|
||||
public AnimeMatrixDevice? device;
|
||||
System.Timers.Timer slashTimer = default!;
|
||||
|
||||
public AnimeMatrixDevice? deviceMatrix;
|
||||
public SlashDevice? deviceSlash;
|
||||
|
||||
public static bool lidClose = false;
|
||||
private static bool _wakeUp = false;
|
||||
|
||||
double[]? AudioValues;
|
||||
WasapiCapture? AudioDevice;
|
||||
string? AudioDeviceId;
|
||||
private MMDeviceEnumerator? AudioDeviceEnum;
|
||||
|
||||
public bool IsValid => device != null;
|
||||
public bool IsValid => deviceMatrix != null || deviceSlash != null;
|
||||
public bool IsSlash => deviceSlash != null;
|
||||
|
||||
private long lastPresent;
|
||||
private List<double> maxes = new List<double>();
|
||||
@@ -34,86 +39,209 @@ namespace GHelper.AnimeMatrix
|
||||
|
||||
try
|
||||
{
|
||||
device = new AnimeMatrixDevice();
|
||||
Task.Run(device.WakeUp);
|
||||
if (AppConfig.IsSlash())
|
||||
{
|
||||
if (AppConfig.IsSlashAura())
|
||||
deviceSlash = new SlashDeviceAura();
|
||||
else
|
||||
deviceSlash = new SlashDevice();
|
||||
}
|
||||
else
|
||||
{
|
||||
deviceMatrix = new AnimeMatrixDevice();
|
||||
}
|
||||
|
||||
matrixTimer = new System.Timers.Timer(100);
|
||||
matrixTimer.Elapsed += MatrixTimer_Elapsed;
|
||||
|
||||
}
|
||||
catch
|
||||
catch (Exception ex)
|
||||
{
|
||||
device = null;
|
||||
Logger.WriteLine(ex.Message);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void SetDevice(bool wakeUp = false)
|
||||
{
|
||||
if (deviceMatrix is not null) SetMatrix(wakeUp);
|
||||
if (deviceSlash is not null) SetSlash(wakeUp);
|
||||
}
|
||||
|
||||
public void SetSlash(bool wakeUp = false)
|
||||
{
|
||||
if (deviceSlash is null) return;
|
||||
|
||||
int brightness = AppConfig.Get("matrix_brightness", 0);
|
||||
int running = AppConfig.Get("matrix_running", 0);
|
||||
int inteval = AppConfig.Get("matrix_interval", 0);
|
||||
|
||||
bool auto = AppConfig.Is("matrix_auto");
|
||||
bool lid = AppConfig.Is("matrix_lid");
|
||||
|
||||
Task.Run(() =>
|
||||
{
|
||||
try
|
||||
{
|
||||
deviceSlash.SetProvider();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Logger.WriteLine(ex.Message);
|
||||
return;
|
||||
}
|
||||
|
||||
if (wakeUp) _wakeUp = true;
|
||||
|
||||
if (brightness == 0 || (auto && SystemInformation.PowerStatus.PowerLineStatus != PowerLineStatus.Online) || (lid && lidClose))
|
||||
{
|
||||
deviceSlash.SetEnabled(false);
|
||||
//deviceSlash.Init();
|
||||
//deviceSlash.SetOptions(false, 0, 0);
|
||||
deviceSlash.SetSleepActive(false);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (_wakeUp)
|
||||
{
|
||||
deviceSlash.WakeUp();
|
||||
_wakeUp = false;
|
||||
}
|
||||
|
||||
deviceSlash.SetEnabled(true);
|
||||
deviceSlash.Init();
|
||||
|
||||
switch ((SlashMode)running)
|
||||
{
|
||||
case SlashMode.Static:
|
||||
var custom = AppConfig.GetString("slash_custom");
|
||||
if (custom is not null && custom.Length > 0)
|
||||
{
|
||||
deviceSlash.SetCustom(AppConfig.StringToBytes(custom));
|
||||
}
|
||||
else
|
||||
{
|
||||
deviceSlash.SetStatic(brightness);
|
||||
}
|
||||
break;
|
||||
case SlashMode.BatteryLevel:
|
||||
// call tick to immediately update the pattern
|
||||
SlashTimer_start();
|
||||
SlashTimer_tick();
|
||||
break;
|
||||
default:
|
||||
deviceSlash.SetMode((SlashMode)running);
|
||||
deviceSlash.SetOptions(true, brightness, inteval);
|
||||
deviceSlash.Save();
|
||||
break;
|
||||
}
|
||||
// kill the timer if we are not displaying battery pattern
|
||||
|
||||
deviceSlash.SetSleepActive(true);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void SetLidMode(bool force = false)
|
||||
{
|
||||
bool matrixLid = AppConfig.Is("matrix_lid");
|
||||
|
||||
if (deviceSlash is not null)
|
||||
{
|
||||
deviceSlash.SetLidMode(true);
|
||||
}
|
||||
|
||||
if (matrixLid || force)
|
||||
{
|
||||
Logger.WriteLine($"Matrix LidClosed: {lidClose}");
|
||||
SetDevice(true);
|
||||
}
|
||||
}
|
||||
|
||||
public void SetBatteryAuto()
|
||||
{
|
||||
if (deviceSlash is not null)
|
||||
{
|
||||
bool auto = AppConfig.Is("matrix_auto");
|
||||
deviceSlash.SetBatterySaver(auto);
|
||||
if (!auto) SetSlash();
|
||||
}
|
||||
|
||||
if (deviceMatrix is not null) SetMatrix();
|
||||
}
|
||||
|
||||
public void SetMatrix(bool wakeUp = false)
|
||||
{
|
||||
|
||||
if (!IsValid) return;
|
||||
|
||||
int brightness = AppConfig.Get("matrix_brightness");
|
||||
int running = AppConfig.Get("matrix_running");
|
||||
if (deviceMatrix is null) return;
|
||||
|
||||
int brightness = AppConfig.Get("matrix_brightness", 0);
|
||||
int running = AppConfig.Get("matrix_running", 0);
|
||||
bool auto = AppConfig.Is("matrix_auto");
|
||||
|
||||
if (brightness < 0) brightness = 0;
|
||||
if (running < 0) running = 0;
|
||||
|
||||
BuiltInAnimation animation = new BuiltInAnimation(
|
||||
(BuiltInAnimation.Running)running,
|
||||
BuiltInAnimation.Sleeping.Starfield,
|
||||
BuiltInAnimation.Shutdown.SeeYa,
|
||||
BuiltInAnimation.Startup.StaticEmergence
|
||||
);
|
||||
bool lid = AppConfig.Is("matrix_lid");
|
||||
|
||||
StopMatrixTimer();
|
||||
StopMatrixAudio();
|
||||
|
||||
try
|
||||
Task.Run(() =>
|
||||
{
|
||||
device.SetProvider();
|
||||
}
|
||||
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)
|
||||
try
|
||||
{
|
||||
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;
|
||||
|
||||
deviceMatrix.SetProvider();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Logger.WriteLine(ex.Message);
|
||||
return;
|
||||
}
|
||||
|
||||
//mat.SetBrightness((BrightnessMode)brightness);
|
||||
}
|
||||
if (wakeUp) deviceMatrix.WakeUp();
|
||||
|
||||
if (brightness == 0 || (auto && SystemInformation.PowerStatus.PowerLineStatus != PowerLineStatus.Online) || (lid && lidClose))
|
||||
{
|
||||
deviceMatrix.SetDisplayState(false);
|
||||
deviceMatrix.SetDisplayState(false); // some devices are dumb
|
||||
Logger.WriteLine("Matrix Off");
|
||||
}
|
||||
else
|
||||
{
|
||||
deviceMatrix.SetDisplayState(true);
|
||||
deviceMatrix.SetBrightness((BrightnessMode)brightness);
|
||||
|
||||
switch (running)
|
||||
{
|
||||
case 2:
|
||||
SetMatrixPicture(AppConfig.GetString("matrix_picture"));
|
||||
break;
|
||||
case 3:
|
||||
SetMatrixClock();
|
||||
break;
|
||||
case 4:
|
||||
SetMatrixAudio();
|
||||
break;
|
||||
default:
|
||||
SetBuiltIn(running);
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
|
||||
private void SetBuiltIn(int running)
|
||||
{
|
||||
BuiltInAnimation animation = new BuiltInAnimation(
|
||||
(BuiltInAnimation.Running)running,
|
||||
(BuiltInAnimation.Sleeping)AppConfig.Get("matrix_sleep", (int)BuiltInAnimation.Sleeping.Starfield),
|
||||
(BuiltInAnimation.Shutdown)AppConfig.Get("matrix_shutdown", (int)BuiltInAnimation.Shutdown.SeeYa),
|
||||
(BuiltInAnimation.Startup)AppConfig.Get("matrix_startup", (int)BuiltInAnimation.Startup.StaticEmergence)
|
||||
);
|
||||
deviceMatrix.SetBuiltInAnimation(true, animation);
|
||||
Logger.WriteLine("Matrix builtin: " + animation.AsByte);
|
||||
}
|
||||
|
||||
private void StartMatrixTimer(int interval = 100)
|
||||
{
|
||||
matrixTimer.Interval = interval;
|
||||
@@ -125,31 +253,76 @@ namespace GHelper.AnimeMatrix
|
||||
matrixTimer.Stop();
|
||||
}
|
||||
|
||||
|
||||
private void MatrixTimer_Elapsed(object? sender, ElapsedEventArgs e)
|
||||
{
|
||||
//if (!IsValid) return;
|
||||
|
||||
if (deviceMatrix is null) return;
|
||||
|
||||
switch (AppConfig.Get("matrix_running"))
|
||||
{
|
||||
case 2:
|
||||
device.PresentNextFrame();
|
||||
deviceMatrix.PresentNextFrame();
|
||||
break;
|
||||
case 3:
|
||||
device.PresentClock();
|
||||
deviceMatrix.PresentClock();
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
public void SetMatrixClock()
|
||||
{
|
||||
device.SetBuiltInAnimation(false);
|
||||
deviceMatrix.SetBuiltInAnimation(false);
|
||||
StartMatrixTimer(1000);
|
||||
Logger.WriteLine("Matrix Clock");
|
||||
}
|
||||
|
||||
|
||||
private void SlashTimer_start(int interval = 60000)
|
||||
{
|
||||
// 100% to 0% in 1hr = 1% every 36 seconds
|
||||
// 1 bracket every 14.2857 * 36s = 514s ~ 8m 30s
|
||||
// only ~5 actually distinguishable levels, so refresh every <= 514/5 ~ 100s
|
||||
// default is 60s
|
||||
|
||||
// create the timer if first call
|
||||
// this way, the timer only spawns if user tries to use battery pattern
|
||||
if (slashTimer == default(System.Timers.Timer))
|
||||
{
|
||||
slashTimer = new System.Timers.Timer(interval);
|
||||
slashTimer.Elapsed += SlashTimer_elapsed;
|
||||
slashTimer.AutoReset = true;
|
||||
}
|
||||
// only write if interval changed
|
||||
if (slashTimer.Interval != interval)
|
||||
{
|
||||
slashTimer.Interval = interval;
|
||||
}
|
||||
|
||||
slashTimer.Start();
|
||||
}
|
||||
|
||||
private void SlashTimer_elapsed(object? sender, ElapsedEventArgs e)
|
||||
{
|
||||
SlashTimer_tick();
|
||||
}
|
||||
|
||||
private void SlashTimer_tick()
|
||||
{
|
||||
if (deviceSlash is null) return;
|
||||
|
||||
//kill timer if called but not in battery pattern mode
|
||||
if ((SlashMode)AppConfig.Get("matrix_running", 0) != SlashMode.BatteryLevel)
|
||||
{
|
||||
slashTimer.Stop();
|
||||
slashTimer.Dispose();
|
||||
return;
|
||||
}
|
||||
|
||||
deviceSlash.SetBatteryPattern(AppConfig.Get("matrix_brightness", 0));
|
||||
}
|
||||
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
StopMatrixAudio();
|
||||
@@ -176,9 +349,9 @@ namespace GHelper.AnimeMatrix
|
||||
|
||||
void SetMatrixAudio()
|
||||
{
|
||||
if (!IsValid) return;
|
||||
if (deviceMatrix is null) return;
|
||||
|
||||
device.SetBuiltInAnimation(false);
|
||||
deviceMatrix.SetBuiltInAnimation(false);
|
||||
StopMatrixTimer();
|
||||
StopMatrixAudio();
|
||||
|
||||
@@ -250,18 +423,20 @@ namespace GHelper.AnimeMatrix
|
||||
for (int x = 0; x < 2 - (y % 2); x++)
|
||||
{
|
||||
//color = (byte)(Math.Min(1,(h - y - 2)*2) * 255);
|
||||
device.SetLedPlanar(x + dx, dy + y, (byte)(h * 255 / 30));
|
||||
device.SetLedPlanar(x + dx, dy - y, 255);
|
||||
deviceMatrix.SetLedPlanar(x + dx, dy + y, (byte)(h * 255 / 30));
|
||||
deviceMatrix.SetLedPlanar(x + dx, dy - y, 255);
|
||||
}
|
||||
}
|
||||
|
||||
void PresentAudio(double[] audio)
|
||||
{
|
||||
|
||||
if (deviceMatrix is null) return;
|
||||
|
||||
if (Math.Abs(DateTimeOffset.Now.ToUnixTimeMilliseconds() - lastPresent) < 70) return;
|
||||
lastPresent = DateTimeOffset.Now.ToUnixTimeMilliseconds();
|
||||
|
||||
device.Clear();
|
||||
deviceMatrix.Clear();
|
||||
|
||||
int size = 20;
|
||||
double[] bars = new double[size];
|
||||
@@ -279,10 +454,9 @@ namespace GHelper.AnimeMatrix
|
||||
|
||||
for (int i = 0; i < size; i++) DrawBar(20 - i, bars[i] * 20 / maxAverage);
|
||||
|
||||
device.Present();
|
||||
deviceMatrix.Present();
|
||||
}
|
||||
|
||||
|
||||
public void OpenMatrixPicture()
|
||||
{
|
||||
string fileName = null;
|
||||
@@ -308,7 +482,7 @@ namespace GHelper.AnimeMatrix
|
||||
AppConfig.Set("matrix_running", 2);
|
||||
|
||||
SetMatrixPicture(fileName);
|
||||
settings.SetMatrixRunning(2);
|
||||
settings.VisualiseMatrixRunning(2);
|
||||
|
||||
}
|
||||
|
||||
@@ -317,7 +491,8 @@ namespace GHelper.AnimeMatrix
|
||||
public void SetMatrixPicture(string fileName, bool visualise = true)
|
||||
{
|
||||
|
||||
if (!IsValid) return;
|
||||
if (deviceMatrix is null) return;
|
||||
|
||||
StopMatrixTimer();
|
||||
|
||||
try
|
||||
@@ -337,7 +512,7 @@ namespace GHelper.AnimeMatrix
|
||||
}
|
||||
|
||||
fs.Close();
|
||||
if (visualise) settings.VisualiseMatrix(fileName);
|
||||
if (visualise) settings.VisualiseMatrixPicture(fileName);
|
||||
}
|
||||
}
|
||||
catch
|
||||
@@ -350,18 +525,19 @@ namespace GHelper.AnimeMatrix
|
||||
|
||||
protected void ProcessPicture(Image image)
|
||||
{
|
||||
device.SetBuiltInAnimation(false);
|
||||
device.ClearFrames();
|
||||
deviceMatrix.SetBuiltInAnimation(false);
|
||||
deviceMatrix.ClearFrames();
|
||||
|
||||
int matrixX = AppConfig.Get("matrix_x", 0);
|
||||
int matrixY = AppConfig.Get("matrix_y", 0);
|
||||
|
||||
int matrixZoom = AppConfig.Get("matrix_zoom", 100);
|
||||
int matrixContrast = AppConfig.Get("matrix_contrast", 100);
|
||||
|
||||
int matrixGamma = AppConfig.Get("matrix_gamma", 0);
|
||||
|
||||
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);
|
||||
|
||||
@@ -379,11 +555,11 @@ namespace GHelper.AnimeMatrix
|
||||
image.SelectActiveFrame(dimension, i);
|
||||
|
||||
if (rotation == MatrixRotation.Planar)
|
||||
device.GenerateFrame(image, matrixZoom, matrixX, matrixY, matrixQuality, matrixContrast);
|
||||
deviceMatrix.GenerateFrame(image, matrixZoom, matrixX, matrixY, matrixQuality, matrixContrast, matrixGamma);
|
||||
else
|
||||
device.GenerateFrameDiagonal(image, matrixZoom, matrixX, matrixY, matrixQuality, matrixContrast);
|
||||
|
||||
device.AddFrame();
|
||||
deviceMatrix.GenerateFrameDiagonal(image, matrixZoom, matrixX, matrixY, matrixQuality, matrixContrast, matrixGamma);
|
||||
|
||||
deviceMatrix.AddFrame();
|
||||
}
|
||||
|
||||
|
||||
@@ -396,11 +572,11 @@ namespace GHelper.AnimeMatrix
|
||||
else
|
||||
{
|
||||
if (rotation == MatrixRotation.Planar)
|
||||
device.GenerateFrame(image, matrixZoom, matrixX, matrixY, matrixQuality, matrixContrast);
|
||||
deviceMatrix.GenerateFrame(image, matrixZoom, matrixX, matrixY, matrixQuality, matrixContrast, matrixGamma);
|
||||
else
|
||||
device.GenerateFrameDiagonal(image, matrixZoom, matrixX, matrixY, matrixQuality, matrixContrast);
|
||||
deviceMatrix.GenerateFrameDiagonal(image, matrixZoom, matrixX, matrixY, matrixQuality, matrixContrast, matrixGamma);
|
||||
|
||||
device.Present();
|
||||
deviceMatrix.Present();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -3,10 +3,9 @@
|
||||
using GHelper.AnimeMatrix.Communication;
|
||||
using System.Drawing.Drawing2D;
|
||||
using System.Drawing.Text;
|
||||
using System.Management;
|
||||
using System.Text;
|
||||
|
||||
namespace Starlight.AnimeMatrix
|
||||
namespace GHelper.AnimeMatrix
|
||||
{
|
||||
public class BuiltInAnimation
|
||||
{
|
||||
@@ -72,7 +71,6 @@ namespace Starlight.AnimeMatrix
|
||||
}
|
||||
|
||||
|
||||
|
||||
public enum BrightnessMode : byte
|
||||
{
|
||||
Off = 0,
|
||||
@@ -82,7 +80,6 @@ namespace Starlight.AnimeMatrix
|
||||
}
|
||||
|
||||
|
||||
|
||||
public class AnimeMatrixDevice : Device
|
||||
{
|
||||
int UpdatePageLength = 490;
|
||||
@@ -94,7 +91,6 @@ namespace Starlight.AnimeMatrix
|
||||
public int MaxRows = 61;
|
||||
public int MaxColumns = 34;
|
||||
public int LedStart = 0;
|
||||
|
||||
public int FullRows = 11;
|
||||
|
||||
private int frameIndex = 0;
|
||||
@@ -107,9 +103,7 @@ namespace Starlight.AnimeMatrix
|
||||
|
||||
public AnimeMatrixDevice() : base(0x0B05, 0x193B, 640)
|
||||
{
|
||||
string model = GetModel();
|
||||
|
||||
if (model.Contains("401"))
|
||||
if (AppConfig.ContainsModel("401"))
|
||||
{
|
||||
_model = AnimeType.GA401;
|
||||
|
||||
@@ -124,7 +118,7 @@ namespace Starlight.AnimeMatrix
|
||||
LedStart = 1;
|
||||
}
|
||||
|
||||
if (model.Contains("GU604"))
|
||||
if (AppConfig.ContainsModel("GU604"))
|
||||
{
|
||||
_model = AnimeType.GU604;
|
||||
|
||||
@@ -142,6 +136,56 @@ namespace Starlight.AnimeMatrix
|
||||
|
||||
}
|
||||
|
||||
public void WakeUp()
|
||||
{
|
||||
Set(Packet<AnimeMatrixPacket>(Encoding.ASCII.GetBytes("ASUS Tech.Inc.")));
|
||||
}
|
||||
|
||||
public void SetBrightness(BrightnessMode mode)
|
||||
{
|
||||
Set(Packet<AnimeMatrixPacket>(0xC0, 0x04, (byte)mode));
|
||||
}
|
||||
|
||||
public void SetDisplayState(bool enable)
|
||||
{
|
||||
Set(Packet<AnimeMatrixPacket>(0xC3, 0x01, enable ? (byte)0x00 : (byte)0x80));
|
||||
}
|
||||
|
||||
public void SetBuiltInAnimation(bool enable)
|
||||
{
|
||||
Set(Packet<AnimeMatrixPacket>(0xC4, 0x01, enable ? (byte)0x00 : (byte)0x80));
|
||||
}
|
||||
|
||||
public void SetBuiltInAnimation(bool enable, BuiltInAnimation animation)
|
||||
{
|
||||
SetBuiltInAnimation(enable);
|
||||
Set(Packet<AnimeMatrixPacket>(0xC5, animation.AsByte));
|
||||
}
|
||||
|
||||
public void Present()
|
||||
{
|
||||
|
||||
int page = 0;
|
||||
int start, end;
|
||||
|
||||
while (page * UpdatePageLength < LedCount)
|
||||
{
|
||||
start = page * UpdatePageLength;
|
||||
end = Math.Min(LedCount, (page + 1) * UpdatePageLength);
|
||||
|
||||
Set(Packet<AnimeMatrixPacket>(0xC0, 0x02)
|
||||
.AppendData(BitConverter.GetBytes((ushort)(start + 1)))
|
||||
.AppendData(BitConverter.GetBytes((ushort)(end - start)))
|
||||
.AppendData(_displayBuffer[start..end])
|
||||
);
|
||||
|
||||
page++;
|
||||
}
|
||||
|
||||
Set(Packet<AnimeMatrixPacket>(0xC0, 0x03));
|
||||
}
|
||||
|
||||
|
||||
private void LoadMFont()
|
||||
{
|
||||
byte[] fontData = GHelper.Properties.Resources.MFont;
|
||||
@@ -154,22 +198,6 @@ namespace Starlight.AnimeMatrix
|
||||
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()
|
||||
{
|
||||
return _displayBuffer;
|
||||
}
|
||||
|
||||
public void PresentNextFrame()
|
||||
{
|
||||
@@ -190,12 +218,6 @@ namespace Starlight.AnimeMatrix
|
||||
frames.Add(_displayBuffer.ToArray());
|
||||
}
|
||||
|
||||
public void SendRaw(params byte[] data)
|
||||
{
|
||||
Set(Packet<AnimeMatrixPacket>(data));
|
||||
}
|
||||
|
||||
|
||||
public int Width()
|
||||
{
|
||||
switch (_model)
|
||||
@@ -293,7 +315,7 @@ namespace Starlight.AnimeMatrix
|
||||
|
||||
if (x >= FirstX(y) && x < Width())
|
||||
SetLedLinear(RowToLinearAddress(y) - FirstX(y) + x, value);
|
||||
}
|
||||
}
|
||||
|
||||
public void SetLedDiagonal(int x, int y, byte color, int deltaX = 0, int deltaY = 0)
|
||||
{
|
||||
@@ -302,118 +324,41 @@ namespace Starlight.AnimeMatrix
|
||||
|
||||
int plX = (x - y) / 2;
|
||||
int plY = x + y;
|
||||
|
||||
if (x - y == -1) plX = -1;
|
||||
|
||||
SetLedPlanar(plX, plY, color);
|
||||
}
|
||||
|
||||
|
||||
public void WakeUp()
|
||||
{
|
||||
Set(Packet<AnimeMatrixPacket>(Encoding.ASCII.GetBytes("ASUS Tech.Inc.")));
|
||||
}
|
||||
|
||||
public void SetLedLinear(int address, byte value)
|
||||
{
|
||||
if (!IsAddressableLed(address)) return;
|
||||
_displayBuffer[address] = value;
|
||||
}
|
||||
|
||||
public void SetLedLinearImmediate(int address, byte value)
|
||||
{
|
||||
if (!IsAddressableLed(address)) return;
|
||||
_displayBuffer[address] = value;
|
||||
|
||||
Set(Packet<AnimeMatrixPacket>(0xC0, 0x02)
|
||||
.AppendData(BitConverter.GetBytes((ushort)(address + 1)))
|
||||
.AppendData(BitConverter.GetBytes((ushort)0x0001))
|
||||
.AppendData(value)
|
||||
);
|
||||
|
||||
Set(Packet<AnimeMatrixPacket>(0xC0, 0x03));
|
||||
}
|
||||
|
||||
|
||||
|
||||
public void Clear(bool present = false)
|
||||
{
|
||||
for (var i = 0; i < _displayBuffer.Length; i++)
|
||||
_displayBuffer[i] = 0;
|
||||
|
||||
if (present)
|
||||
Present();
|
||||
for (var i = 0; i < _displayBuffer.Length; i++) _displayBuffer[i] = 0;
|
||||
if (present) Present();
|
||||
}
|
||||
|
||||
public void Present()
|
||||
{
|
||||
|
||||
int page = 0;
|
||||
int start, end;
|
||||
|
||||
while (page * UpdatePageLength < LedCount)
|
||||
{
|
||||
start = page * UpdatePageLength;
|
||||
end = Math.Min(LedCount, (page + 1) * UpdatePageLength);
|
||||
|
||||
Set(Packet<AnimeMatrixPacket>(0xC0, 0x02)
|
||||
.AppendData(BitConverter.GetBytes((ushort)(start + 1)))
|
||||
.AppendData(BitConverter.GetBytes((ushort)(end - start)))
|
||||
.AppendData(_displayBuffer[start..end])
|
||||
);
|
||||
|
||||
page++;
|
||||
}
|
||||
|
||||
Set(Packet<AnimeMatrixPacket>(0xC0, 0x03));
|
||||
}
|
||||
|
||||
public void SetDisplayState(bool enable)
|
||||
{
|
||||
if (enable)
|
||||
{
|
||||
Set(Packet<AnimeMatrixPacket>(0xC3, 0x01)
|
||||
.AppendData(0x00));
|
||||
}
|
||||
else
|
||||
{
|
||||
Set(Packet<AnimeMatrixPacket>(0xC3, 0x01)
|
||||
.AppendData(0x80));
|
||||
}
|
||||
}
|
||||
|
||||
public void SetBrightness(BrightnessMode mode)
|
||||
{
|
||||
Set(Packet<AnimeMatrixPacket>(0xC0, 0x04)
|
||||
.AppendData((byte)mode)
|
||||
);
|
||||
}
|
||||
|
||||
public void SetBuiltInAnimation(bool enable)
|
||||
{
|
||||
var enabled = enable ? (byte)0x00 : (byte)0x80;
|
||||
Set(Packet<AnimeMatrixPacket>(0xC4, 0x01, enabled));
|
||||
}
|
||||
|
||||
public void SetBuiltInAnimation(bool enable, BuiltInAnimation animation)
|
||||
{
|
||||
SetBuiltInAnimation(enable);
|
||||
Set(Packet<AnimeMatrixPacket>(0xC5, animation.AsByte));
|
||||
}
|
||||
|
||||
|
||||
private void SetBitmapDiagonal(Bitmap bmp, int deltaX = 0, int deltaY = 0, int contrast = 100)
|
||||
private void SetBitmapDiagonal(Bitmap bmp, int deltaX = 0, int deltaY = 0, int contrast = 100, int gamma = 0)
|
||||
{
|
||||
for (int y = 0; y < bmp.Height; y++)
|
||||
{
|
||||
for (int x = 0; x < bmp.Width; x++)
|
||||
{
|
||||
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 + gamma) * contrast / 300, 255);
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void SetBitmapLinear(Bitmap bmp, int contrast = 100)
|
||||
private void SetBitmapLinear(Bitmap bmp, int contrast = 100, int gamma = 0)
|
||||
{
|
||||
for (int y = 0; y < bmp.Height; y++)
|
||||
{
|
||||
@@ -421,7 +366,7 @@ namespace Starlight.AnimeMatrix
|
||||
if (x % 2 == y % 2)
|
||||
{
|
||||
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 + gamma) * contrast / 300, 255);
|
||||
if (color > 20)
|
||||
SetLedPlanar(x / 2, y, (byte)color);
|
||||
}
|
||||
@@ -431,7 +376,7 @@ namespace Starlight.AnimeMatrix
|
||||
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 textHeight, textWidth;
|
||||
|
||||
@@ -452,23 +397,25 @@ namespace Starlight.AnimeMatrix
|
||||
}
|
||||
}
|
||||
|
||||
SetBitmapDiagonal(bmp, (width - textWidth), height);
|
||||
SetBitmapDiagonal(bmp, 5, height);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public void PresentClock()
|
||||
{
|
||||
string second = (DateTime.Now.Second % 2 == 0) ? ":" : " ";
|
||||
string time = DateTime.Now.ToString("HH" + second + "mm");
|
||||
string timeFormat = AppConfig.GetString("matrix_time", "HH:mm");
|
||||
string dateFormat = AppConfig.GetString("matrix_date", "yy.MM.dd");
|
||||
|
||||
if (DateTime.Now.Second % 2 != 0) timeFormat = timeFormat.Replace(":", " ");
|
||||
|
||||
Clear();
|
||||
Text(time, 15, 0, 25);
|
||||
Text(DateTime.Now.ToString("yy'. 'MM'. 'dd"), 11.5F, 0, 14);
|
||||
Text(DateTime.Now.ToString(timeFormat), 15, 2, 25);
|
||||
Text(DateTime.Now.ToString(dateFormat), 11.5F, 0, 14);
|
||||
Present();
|
||||
|
||||
}
|
||||
public void GenerateFrame(Image image, float zoom = 100, int panX = 0, int panY = 0, InterpolationMode quality = InterpolationMode.Default, int contrast = 100)
|
||||
public void GenerateFrame(Image image, float zoom = 100, int panX = 0, int panY = 0, InterpolationMode quality = InterpolationMode.Default, int contrast = 100, int gamma = 0)
|
||||
{
|
||||
int width = MaxColumns / 2 * 6;
|
||||
int height = MaxRows;
|
||||
@@ -495,14 +442,17 @@ namespace Starlight.AnimeMatrix
|
||||
}
|
||||
|
||||
Clear();
|
||||
SetBitmapLinear(bmp, contrast);
|
||||
SetBitmapLinear(bmp, contrast, gamma);
|
||||
}
|
||||
}
|
||||
|
||||
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 gamma = 0)
|
||||
{
|
||||
int width = MaxRows - FullRows;
|
||||
int height = MaxRows - FullRows*2;
|
||||
int width = MaxRows + FullRows;
|
||||
int height = MaxColumns + FullRows;
|
||||
|
||||
if ((image.Height / image.Width) > (height / width)) height = MaxColumns;
|
||||
|
||||
float scale;
|
||||
|
||||
using (Bitmap bmp = new Bitmap(width, height))
|
||||
@@ -518,12 +468,12 @@ namespace Starlight.AnimeMatrix
|
||||
graph.CompositingQuality = CompositingQuality.HighQuality;
|
||||
graph.SmoothingMode = SmoothingMode.AntiAlias;
|
||||
|
||||
graph.DrawImage(image, width - scaleWidth, height - scaleHeight, scaleWidth, scaleHeight);
|
||||
graph.DrawImage(image, (width - scaleWidth) / 2, height - scaleHeight, scaleWidth, scaleHeight);
|
||||
|
||||
}
|
||||
|
||||
Clear();
|
||||
SetBitmapDiagonal(bmp, -panX, height + panY, contrast);
|
||||
SetBitmapDiagonal(bmp, -panX, height + panY, contrast, gamma);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -36,11 +36,12 @@ namespace GHelper.AnimeMatrix.Communication.Platform
|
||||
{
|
||||
HidDevice = DeviceList.Local
|
||||
.GetHidDevices(vendorId, productId)
|
||||
.First(x => x.GetMaxFeatureReportLength() == maxFeatureReportLength);
|
||||
.First(x => x.GetMaxFeatureReportLength() >= maxFeatureReportLength);
|
||||
Logger.WriteLine("Matrix Device: " + HidDevice.DevicePath + " " + HidDevice.GetMaxFeatureReportLength());
|
||||
}
|
||||
catch
|
||||
{
|
||||
throw new IOException("AniMe Matrix control device was not found on your machine.");
|
||||
throw new IOException("Matrix control device was not found on your machine.");
|
||||
}
|
||||
|
||||
var config = new OpenConfiguration();
|
||||
|
||||
242
app/AnimeMatrix/SlashDevice.cs
Normal file
242
app/AnimeMatrix/SlashDevice.cs
Normal file
@@ -0,0 +1,242 @@
|
||||
using GHelper.AnimeMatrix.Communication;
|
||||
using System.Management;
|
||||
using System.Text;
|
||||
|
||||
namespace GHelper.AnimeMatrix
|
||||
{
|
||||
public enum SlashMode
|
||||
{
|
||||
Bounce,
|
||||
Slash,
|
||||
Loading,
|
||||
BitStream,
|
||||
Transmission,
|
||||
Flow,
|
||||
Flux,
|
||||
Phantom,
|
||||
Spectrum,
|
||||
Hazard,
|
||||
Interfacing,
|
||||
Ramp,
|
||||
GameOver,
|
||||
Start,
|
||||
Buzzer,
|
||||
Static,
|
||||
BatteryLevel,
|
||||
}
|
||||
|
||||
public class SlashPacket : Packet
|
||||
{
|
||||
public SlashPacket(byte[] command, byte reportID = 0x5E) : base(reportID, 128, command)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public class SlashDevice : Device
|
||||
{
|
||||
|
||||
protected virtual byte reportID => 0x5E;
|
||||
|
||||
protected virtual SlashPacket CreatePacket(byte[] command)
|
||||
{
|
||||
return new SlashPacket(command, reportID);
|
||||
}
|
||||
|
||||
public static Dictionary<SlashMode, string> Modes = new Dictionary<SlashMode, string>
|
||||
{
|
||||
{ SlashMode.Bounce, "Bounce"},
|
||||
{ SlashMode.Slash, "Slash"},
|
||||
{ SlashMode.Loading, "Loading"},
|
||||
|
||||
{ SlashMode.BitStream, "Bit Stream"},
|
||||
{ SlashMode.Transmission, "Transmission"},
|
||||
|
||||
{ SlashMode.Flow, "Flow"},
|
||||
{ SlashMode.Flux, "Flux"},
|
||||
{ SlashMode.Phantom, "Phantom"},
|
||||
{ SlashMode.Spectrum, "Spectrum"},
|
||||
|
||||
{ SlashMode.Hazard, "Hazard"},
|
||||
{ SlashMode.Interfacing, "Interfacing"},
|
||||
{ SlashMode.Ramp, "Ramp"},
|
||||
|
||||
{ SlashMode.GameOver, "Game Over"},
|
||||
{ SlashMode.Start, "Start"},
|
||||
{ SlashMode.Buzzer, "Buzzer"},
|
||||
|
||||
{ SlashMode.Static, "Static"},
|
||||
{ SlashMode.BatteryLevel, "Battery Level"}
|
||||
};
|
||||
|
||||
private static Dictionary<SlashMode, byte> modeCodes = new Dictionary<SlashMode, byte>
|
||||
{
|
||||
{ SlashMode.Bounce, 0x10},
|
||||
{ SlashMode.Slash, 0x12},
|
||||
{ SlashMode.Loading, 0x13},
|
||||
|
||||
{ SlashMode.BitStream, 0x1D},
|
||||
{ SlashMode.Transmission, 0x1A},
|
||||
|
||||
{ SlashMode.Flow, 0x19},
|
||||
{ SlashMode.Flux, 0x25},
|
||||
{ SlashMode.Phantom, 0x24},
|
||||
{ SlashMode.Spectrum, 0x26},
|
||||
|
||||
{ SlashMode.Hazard, 0x32},
|
||||
{ SlashMode.Interfacing, 0x33},
|
||||
{ SlashMode.Ramp, 0x34},
|
||||
|
||||
{ SlashMode.GameOver, 0x42},
|
||||
{ SlashMode.Start, 0x43},
|
||||
{ SlashMode.Buzzer, 0x44},
|
||||
};
|
||||
|
||||
public SlashDevice(ushort productId = 0x193B) : base(0x0B05, productId, 128)
|
||||
{
|
||||
}
|
||||
|
||||
public void WakeUp()
|
||||
{
|
||||
Set(CreatePacket(Encoding.ASCII.GetBytes("ASUS Tech.Inc.")), "SlashWakeUp");
|
||||
Set(CreatePacket([0xC2]), "SlashWakeUp");
|
||||
Set(CreatePacket([0xD1, 0x01, 0x00, 0x01 ]), "SlashWakeUp");
|
||||
}
|
||||
|
||||
public void Init()
|
||||
{
|
||||
Set(CreatePacket([0xD7, 0x00, 0x00, 0x01, 0xAC]), "SlashInit");
|
||||
Set(CreatePacket([0xD2, 0x02, 0x01, 0x08, 0xAB]), "SlashInit");
|
||||
}
|
||||
|
||||
public void SetEnabled(bool status = true)
|
||||
{
|
||||
Set(CreatePacket([0xD8, 0x02, 0x00, 0x01, status ? (byte)0x00 : (byte)0x80]), $"SlashEnable {status}");
|
||||
}
|
||||
|
||||
public void Save()
|
||||
{
|
||||
Set(CreatePacket([0xD4, 0x00, 0x00, 0x01, 0xAB]), "SlashSave");
|
||||
}
|
||||
|
||||
public void SetMode(SlashMode mode)
|
||||
{
|
||||
byte modeByte;
|
||||
|
||||
try
|
||||
{
|
||||
modeByte = modeCodes[mode];
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
modeByte = 0x00;
|
||||
}
|
||||
|
||||
Set(CreatePacket([0xD2, 0x03, 0x00, 0x0C]), "SlashMode");
|
||||
Set(CreatePacket([0xD3, 0x04, 0x00, 0x0C, 0x01, modeByte, 0x02, 0x19, 0x03, 0x13, 0x04, 0x11, 0x05, 0x12, 0x06, 0x13]), "SlashMode");
|
||||
}
|
||||
|
||||
public void SetStatic(int brightness = 0)
|
||||
{
|
||||
SetCustom(Enumerable.Repeat((byte)(brightness * 85.333), 7).ToArray());
|
||||
}
|
||||
|
||||
public static double GetBatteryChargePercentage()
|
||||
{
|
||||
double batteryCharge = 0;
|
||||
try
|
||||
{
|
||||
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_Battery");
|
||||
foreach (ManagementObject battery in searcher.Get())
|
||||
{
|
||||
batteryCharge = Convert.ToDouble(battery["EstimatedChargeRemaining"]);
|
||||
break; // Assuming only one battery
|
||||
}
|
||||
}
|
||||
catch (ManagementException e)
|
||||
{
|
||||
Console.WriteLine("An error occurred while querying for WMI data: " + e.Message);
|
||||
}
|
||||
return batteryCharge;
|
||||
}
|
||||
|
||||
private byte[] GetBatteryPattern(int brightness, double percentage)
|
||||
{
|
||||
// because 7 segments, within each led segment represents a percentage bracket of (100/7 = 14.2857%)
|
||||
// set brightness to reflect battery's percentage within that range
|
||||
|
||||
int bracket = (int)Math.Floor(percentage / 14.2857);
|
||||
if (bracket >= 7) return Enumerable.Repeat((byte)(brightness * 85.333), 7).ToArray();
|
||||
|
||||
byte[] batteryPattern = Enumerable.Repeat((byte)(0x00), 7).ToArray();
|
||||
for (int i = 6; i > 6 - bracket; i--)
|
||||
{
|
||||
batteryPattern[i] = (byte)(brightness * 85.333);
|
||||
}
|
||||
|
||||
//set the "selected" bracket to the percentage of that bracket filled from 0 to 255 as a hex
|
||||
batteryPattern[6 - bracket] = (byte)(((percentage % 14.2857) * brightness * 85.333) / 14.2857);
|
||||
|
||||
return batteryPattern;
|
||||
}
|
||||
|
||||
public void SetBatteryPattern(int brightness)
|
||||
{
|
||||
SetCustom(GetBatteryPattern(brightness, 100 * (GetBatteryChargePercentage() / AppConfig.Get("charge_limit", 100))));
|
||||
}
|
||||
|
||||
public void SetCustom(byte[] data)
|
||||
{
|
||||
Set(CreatePacket([0xD2, 0x02, 0x01, 0x08, 0xAC]), "Static");
|
||||
Set(CreatePacket([0xD3, 0x03, 0x01, 0x08, 0xAC, 0xFF, 0xFF, 0x01, 0x05, 0xFF, 0xFF]), "StaticSettings");
|
||||
Set(CreatePacket([0xD4, 0x00, 0x00, 0x01, 0xAC]), "StaticSave");
|
||||
|
||||
byte[] payload = new byte[] { 0xD3, 0x00, 0x00, 0x07 };
|
||||
Set(CreatePacket(payload.Concat(data.Take(7)).ToArray()), "Static Data");
|
||||
}
|
||||
|
||||
public void SetOptions(bool status, int brightness = 0, int interval = 0)
|
||||
{
|
||||
byte brightnessByte = (byte)(brightness * 85.333);
|
||||
|
||||
Set(CreatePacket([0xD3, 0x03, 0x01, 0x08, 0xAB, 0xFF, 0x01, status ? (byte)0x01 : (byte)0x00, 0x06, brightnessByte, 0xFF, (byte)interval]), "SlashOptions");
|
||||
}
|
||||
|
||||
public void SetBatterySaver(bool status)
|
||||
{
|
||||
Set(CreatePacket([0xD8, 0x01, 0x00, 0x01, status ? (byte)0x80 : (byte)0x00]), $"SlashBatterySaver {status}");
|
||||
}
|
||||
|
||||
public void SetLidMode(bool status)
|
||||
{
|
||||
Set(CreatePacket([0xD8, 0x00, 0x00, 0x02, 0xA5, status ? (byte)0x80 : (byte)0x00]), $"DisableLidClose {status}");
|
||||
}
|
||||
|
||||
public void SetSleepActive(bool status)
|
||||
{
|
||||
Set(CreatePacket([0xD2, 0x02, 0x01, 0x08, 0xA1]), "SleepInit");
|
||||
Set(CreatePacket([0xD3, 0x03, 0x01, 0x08, 0xA1, 0x00, 0xFF, status ? (byte)0x01 : (byte)0x00, 0x02, 0xFF, 0xFF]), $"Sleep {status}");
|
||||
}
|
||||
|
||||
public void Set(Packet packet, string? log = null)
|
||||
{
|
||||
_usbProvider?.Set(packet.Data);
|
||||
if (log is not null) Logger.WriteLine($"{log}:" + BitConverter.ToString(packet.Data).Substring(0, 48));
|
||||
}
|
||||
}
|
||||
|
||||
public class SlashDeviceAura : SlashDevice
|
||||
{
|
||||
protected override byte reportID => 0x5D;
|
||||
|
||||
public SlashDeviceAura() : base(0x19B6)
|
||||
{
|
||||
}
|
||||
|
||||
protected override SlashPacket CreatePacket(byte[] command)
|
||||
{
|
||||
return new SlashPacket(command, reportID);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
209
app/AppConfig.cs
209
app/AppConfig.cs
@@ -1,4 +1,4 @@
|
||||
using GHelper.Mode;
|
||||
using GHelper.Mode;
|
||||
using System.Management;
|
||||
using System.Text.Json;
|
||||
|
||||
@@ -67,9 +67,17 @@ public static class AppConfig
|
||||
{
|
||||
File.WriteAllText(backup, jsonString);
|
||||
}
|
||||
catch (Exception ex)
|
||||
catch (Exception)
|
||||
{
|
||||
Logger.WriteLine(ex.ToString());
|
||||
Thread.Sleep(100);
|
||||
try
|
||||
{
|
||||
File.WriteAllText(backup, jsonString);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Logger.WriteLine(ex.Message);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -91,16 +99,25 @@ public static class AppConfig
|
||||
if (_model is null)
|
||||
{
|
||||
_model = "";
|
||||
using (var searcher = new ManagementObjectSearcher(@"Select * from Win32_ComputerSystem"))
|
||||
try
|
||||
{
|
||||
foreach (var process in searcher.Get())
|
||||
using (var searcher = new ManagementObjectSearcher(@"Select * from Win32_ComputerSystem"))
|
||||
{
|
||||
_model = process["Model"].ToString();
|
||||
break;
|
||||
foreach (var process in searcher.Get())
|
||||
{
|
||||
_model = process["Model"].ToString();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Logger.WriteLine(ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
//if (_model.Contains("GA402RK")) _model = "ROG Zephyrus G14 GA403UI"; // Debug Purposes
|
||||
|
||||
return _model;
|
||||
}
|
||||
|
||||
@@ -179,6 +196,11 @@ public static class AppConfig
|
||||
return Get(name) != 0;
|
||||
}
|
||||
|
||||
public static bool IsOnBattery(string zone)
|
||||
{
|
||||
return Get(zone + "_bat", Get(zone)) != 0;
|
||||
}
|
||||
|
||||
public static string GetString(string name, string empty = null)
|
||||
{
|
||||
if (config.ContainsKey(name))
|
||||
@@ -321,13 +343,14 @@ public static class AppConfig
|
||||
|
||||
public static bool IsAlly()
|
||||
{
|
||||
return ContainsModel("RC71");
|
||||
return ContainsModel("RC71") || ContainsModel("RC72");
|
||||
}
|
||||
|
||||
public static bool NoMKeys()
|
||||
{
|
||||
return (ContainsModel("Z13") && !IsARCNM()) ||
|
||||
ContainsModel("FX706") ||
|
||||
ContainsModel("FA706") ||
|
||||
ContainsModel("FA506") ||
|
||||
ContainsModel("FX506") ||
|
||||
ContainsModel("Duo") ||
|
||||
@@ -349,21 +372,21 @@ public static class AppConfig
|
||||
return ContainsModel("ProArt");
|
||||
}
|
||||
|
||||
public static bool IsVivobook()
|
||||
public static bool IsVivoZenbook()
|
||||
{
|
||||
return ContainsModel("Vivobook");
|
||||
return ContainsModel("Vivobook") || ContainsModel("Zenbook");
|
||||
}
|
||||
|
||||
// Devices with bugged bios command to change brightness
|
||||
public static bool SwappedBrightness()
|
||||
{
|
||||
return ContainsModel("FA506IH") || ContainsModel("FA506IC") || ContainsModel("FX506LU") || ContainsModel("FX506IC") || ContainsModel("FX506LH") || ContainsModel("FA506IV");
|
||||
return ContainsModel("FA506IH") || ContainsModel("FA506IC") || ContainsModel("FX506LU") || ContainsModel("FX506IC") || ContainsModel("FX506LH") || ContainsModel("FA506IV") || ContainsModel("FA706IC");
|
||||
}
|
||||
|
||||
|
||||
public static bool IsDUO()
|
||||
{
|
||||
return ContainsModel("Duo");
|
||||
return ContainsModel("Duo") || ContainsModel("GX550") || ContainsModel("GX650");
|
||||
}
|
||||
|
||||
// G14 2020 has no aura, but media keys instead
|
||||
@@ -372,24 +395,94 @@ public static class AppConfig
|
||||
return ContainsModel("GA401I") && !ContainsModel("GA401IHR");
|
||||
}
|
||||
|
||||
public static bool MediaKeys()
|
||||
{
|
||||
return NoAura() || ContainsModel("G712L");
|
||||
}
|
||||
|
||||
public static bool IsSingleColor()
|
||||
{
|
||||
return ContainsModel("GA401") || ContainsModel("FX517Z") || ContainsModel("FX516P") || ContainsModel("X13") || IsARCNM() || ContainsModel("GA502IU");
|
||||
return ContainsModel("GA401") || ContainsModel("FX517Z") || ContainsModel("FX516P") || ContainsModel("X13") || IsARCNM() || ContainsModel("GA502IU") || ContainsModel("FA617N") || ContainsModel("FA617X");
|
||||
}
|
||||
|
||||
public static bool IsSlash()
|
||||
{
|
||||
return ContainsModel("GA403") || ContainsModel("GU605") || ContainsModel("GA605");
|
||||
}
|
||||
|
||||
public static bool IsSlashAura()
|
||||
{
|
||||
return ContainsModel("GA605");
|
||||
}
|
||||
|
||||
public static bool IsInputBacklight()
|
||||
{
|
||||
return ContainsModel("GA503") || IsSlash();
|
||||
}
|
||||
|
||||
public static bool IsInvertedFNLock()
|
||||
{
|
||||
return ContainsModel("M140");
|
||||
}
|
||||
|
||||
public static bool IsOLED()
|
||||
{
|
||||
return ContainsModel("OLED") || IsSlash() || ContainsModel("M7600") || ContainsModel("UX64") || ContainsModel("UX34") || ContainsModel("UX53") || ContainsModel("K360") || ContainsModel("X150") || ContainsModel("M350") || ContainsModel("K650") || ContainsModel("UM53") || ContainsModel("K660") || ContainsModel("UX84") || ContainsModel("M650") || ContainsModel("K340") || ContainsModel("K350") || ContainsModel("M140") || ContainsModel("UM340") || ContainsModel("S540") || ContainsModel("M7400") || ContainsModel("N650");
|
||||
}
|
||||
|
||||
public static bool IsNoOverdrive()
|
||||
{
|
||||
return Is("no_overdrive");
|
||||
}
|
||||
|
||||
public static bool IsNoSleepEvent()
|
||||
{
|
||||
return ContainsModel("FX505");
|
||||
}
|
||||
|
||||
public static bool IsStrix()
|
||||
{
|
||||
return ContainsModel("Strix") || ContainsModel("Scar");
|
||||
return ContainsModel("Strix") || ContainsModel("Scar") || ContainsModel("G703G");
|
||||
}
|
||||
|
||||
public static bool IsAdvancedRGB()
|
||||
{
|
||||
return IsStrix() || ContainsModel("GX650");
|
||||
}
|
||||
|
||||
public static bool IsBacklightZones()
|
||||
{
|
||||
return IsStrix() || IsZ13();
|
||||
}
|
||||
|
||||
public static bool IsStrixLimitedRGB()
|
||||
{
|
||||
return (ContainsModel("G614JV") || ContainsModel("G614JZ") || ContainsModel("G512LI") || ContainsModel("G513R") || ContainsModel("G713PV") || ContainsModel("G513IE") || ContainsModel("G713RC") || ContainsModel("G513QM")) && !Is("per_key_rgb");
|
||||
return ContainsModel("G512LI") || ContainsModel("G513R") || ContainsModel("G713PV") || ContainsModel("G513IE") || ContainsModel("G713RC") || ContainsModel("G513QM") || ContainsModel("G531G");
|
||||
}
|
||||
|
||||
public static bool IsPossible4ZoneRGB()
|
||||
{
|
||||
return ContainsModel("G614JI_") || ContainsModel("G614JV_") || ContainsModel("G614JZ") || IsStrixLimitedRGB();
|
||||
}
|
||||
|
||||
public static bool Is4ZoneRGB()
|
||||
{
|
||||
return IsPossible4ZoneRGB() && !Is("per_key_rgb");
|
||||
}
|
||||
|
||||
public static bool IsNoAirplaneMode()
|
||||
{
|
||||
return ContainsModel("FX506");
|
||||
}
|
||||
|
||||
public static bool NoWMI()
|
||||
{
|
||||
return ContainsModel("GL704G") || ContainsModel("GM501G");
|
||||
}
|
||||
|
||||
public static bool IsNoDirectRGB()
|
||||
{
|
||||
return ContainsModel("GA503") || ContainsModel("G533Q");
|
||||
return ContainsModel("GA503") || ContainsModel("G533Q") || ContainsModel("GU502") || IsSlash();
|
||||
}
|
||||
|
||||
public static bool IsStrixNumpad()
|
||||
@@ -402,6 +495,11 @@ public static class AppConfig
|
||||
return ContainsModel("Z13");
|
||||
}
|
||||
|
||||
public static bool IsS17()
|
||||
{
|
||||
return ContainsModel("S17");
|
||||
}
|
||||
|
||||
public static bool HasTabletMode()
|
||||
{
|
||||
return ContainsModel("X16") || ContainsModel("X13");
|
||||
@@ -412,6 +510,11 @@ public static class AppConfig
|
||||
return ContainsModel("X13");
|
||||
}
|
||||
|
||||
public static bool IsG14AMD()
|
||||
{
|
||||
return ContainsModel("GA402R");
|
||||
}
|
||||
|
||||
public static bool DynamicBoost5()
|
||||
{
|
||||
return ContainsModel("GZ301ZE");
|
||||
@@ -422,6 +525,11 @@ public static class AppConfig
|
||||
return ContainsModel("FX507ZC4");
|
||||
}
|
||||
|
||||
public static bool DynamicBoost20()
|
||||
{
|
||||
return ContainsModel("GU605") || ContainsModel("GA605");
|
||||
}
|
||||
|
||||
public static bool IsAdvantageEdition()
|
||||
{
|
||||
return ContainsModel("13QY");
|
||||
@@ -429,7 +537,7 @@ public static class AppConfig
|
||||
|
||||
public static bool NoAutoUltimate()
|
||||
{
|
||||
return ContainsModel("G614") || ContainsModel("GU604") || ContainsModel("FX507") || ContainsModel("G513") || ContainsModel("FA617") || ContainsModel("G834");
|
||||
return ContainsModel("G614") || ContainsModel("GU604") || ContainsModel("FX507") || ContainsModel("G513") || ContainsModel("FA617") || ContainsModel("G834") || ContainsModel("GA403") || ContainsModel("GU605") || ContainsModel("GA605") || ContainsModel("GU603VV");
|
||||
}
|
||||
|
||||
|
||||
@@ -460,9 +568,37 @@ public static class AppConfig
|
||||
}
|
||||
}
|
||||
|
||||
public static bool IsSwappedFans()
|
||||
{
|
||||
if (!ContainsModel("GA503R")) return false;
|
||||
|
||||
try
|
||||
{
|
||||
var (bios, model) = GetBiosAndModel();
|
||||
var biosVersion = Int32.Parse(bios);
|
||||
if (ContainsModel("GA503RM") && biosVersion == 317) return true;
|
||||
if ((ContainsModel("GA503RS") || ContainsModel("GA503RW")) && biosVersion == 316) return true;
|
||||
return false;
|
||||
}
|
||||
catch
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public static bool IsResetRequired()
|
||||
{
|
||||
return ContainsModel("GA403");
|
||||
}
|
||||
|
||||
public static bool IsFanRequired()
|
||||
{
|
||||
return ContainsModel("GA402X") || ContainsModel("G513") || ContainsModel("G713R") || ContainsModel("G713P");
|
||||
return ContainsModel("GA402X") || ContainsModel("G513") || ContainsModel("G713R") || ContainsModel("G713P") || ContainsModel("GU605") || ContainsModel("GA403") || ContainsModel("G634J") || ContainsModel("G834J") || ContainsModel("G614J") || ContainsModel("G814J") || ContainsModel("FX507V");
|
||||
}
|
||||
|
||||
public static bool IsAMDLight()
|
||||
{
|
||||
return ContainsModel("GA402X") || ContainsModel("GA403") || ContainsModel("FA507N") || ContainsModel("FA507X") || ContainsModel("FA707N") || ContainsModel("FA707X");
|
||||
}
|
||||
|
||||
public static bool IsPowerRequired()
|
||||
@@ -495,8 +631,45 @@ public static class AppConfig
|
||||
return ContainsModel("G814") || ContainsModel("G614") || ContainsModel("G834") || ContainsModel("G634");
|
||||
}
|
||||
|
||||
public static bool IsNoFNV()
|
||||
{
|
||||
return ContainsModel("FX507") || ContainsModel("FX707");
|
||||
}
|
||||
|
||||
public static bool IsROG()
|
||||
{
|
||||
return ContainsModel("ROG");
|
||||
}
|
||||
public static bool IsASUS()
|
||||
{
|
||||
return ContainsModel("ROG") || ContainsModel("TUF") || ContainsModel("Vivobook") || ContainsModel("Zenbook");
|
||||
}
|
||||
|
||||
public static bool IsBWIcon()
|
||||
{
|
||||
return Is("bw_icon");
|
||||
}
|
||||
|
||||
public static bool IsStopAC()
|
||||
{
|
||||
return IsAlly() || Is("stop_ac");
|
||||
}
|
||||
|
||||
public static bool IsChargeLimit6080()
|
||||
{
|
||||
return ContainsModel("GA403U") || ContainsModel("GU605") || ContainsModel("GA605") || ContainsModel("GA503R") || (IsTUF() && !(ContainsModel("FX507Z") || ContainsModel("FA617")));
|
||||
|
||||
}
|
||||
|
||||
// 2024 Models support Dynamic Lighting
|
||||
public static bool IsDynamicLighting()
|
||||
{
|
||||
return IsSlash() || IsIntelHX() || ContainsModel("FA607P") || ContainsModel("FX607J") || ContainsModel("FA507U");
|
||||
}
|
||||
|
||||
public static bool IsForceMiniled()
|
||||
{
|
||||
return ContainsModel("G834JYR") || Is("force_miniled");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
174
app/AsusACPI.cs
174
app/AsusACPI.cs
@@ -43,10 +43,13 @@ public class AsusACPI
|
||||
public const int Brightness_Down = 0x10;
|
||||
public const int Brightness_Up = 0x20;
|
||||
public const int KB_Sleep = 0x6c;
|
||||
|
||||
public const int KB_TouchpadToggle = 0x6b;
|
||||
public const int KB_MuteToggle = 0x7c;
|
||||
|
||||
public const int KB_DUO_PgUpDn = 0x4B;
|
||||
public const int KB_DUO_SecondDisplay = 0x6A;
|
||||
|
||||
|
||||
public const int Touchpad_Toggle = 0x6B;
|
||||
|
||||
public const int ChargerMode = 0x0012006C;
|
||||
@@ -58,20 +61,26 @@ public class AsusACPI
|
||||
public const uint GPU_Fan = 0x00110014;
|
||||
public const uint Mid_Fan = 0x00110031;
|
||||
|
||||
public const uint BatteryDischarge = 0x0012005A;
|
||||
|
||||
public const uint PerformanceMode = 0x00120075; // Performance modes
|
||||
public const uint VivoBookMode = 0x00110019; // Vivobook performance modes
|
||||
|
||||
public const uint GPUEco = 0x00090020;
|
||||
public const uint GPUEcoROG = 0x00090020;
|
||||
public const uint GPUEcoVivo = 0x00090120;
|
||||
|
||||
public const uint GPUXGConnected = 0x00090018;
|
||||
public const uint GPUXG = 0x00090019;
|
||||
|
||||
public const uint GPUMux = 0x00090016;
|
||||
public const uint GPUMuxROG = 0x00090016;
|
||||
public const uint GPUMuxVivo = 0x00090026;
|
||||
|
||||
public const uint BatteryLimit = 0x00120057;
|
||||
|
||||
public const uint ScreenOverdrive = 0x00050019;
|
||||
public const uint ScreenMiniled = 0x0005001E;
|
||||
public const uint ScreenMiniled1 = 0x0005001E;
|
||||
public const uint ScreenMiniled2 = 0x0005002E;
|
||||
public const uint ScreenFHD = 0x0005001C;
|
||||
|
||||
public const uint DevsCPUFan = 0x00110022;
|
||||
public const uint DevsGPUFan = 0x00110023;
|
||||
@@ -95,6 +104,12 @@ public class AsusACPI
|
||||
public const int PPT_APUC1 = 0x001200C1; // fPPT (fast boost limit)
|
||||
public const int PPT_GPUC2 = 0x001200C2; // NVIDIA GPU Temp Target (75.. 87 C)
|
||||
|
||||
public const uint CORES_CPU = 0x001200D2; // Intel E-core and P-core configuration in a format 0x0[E]0[P]
|
||||
public const uint CORES_MAX = 0x001200D3; // Maximum Intel E-core and P-core availability
|
||||
|
||||
public const uint GPU_BASE = 0x00120099; // Base part GPU TGP
|
||||
public const uint GPU_POWER = 0x00120098; // Additonal part of GPU TGP
|
||||
|
||||
public const int APU_MEM = 0x000600C1;
|
||||
|
||||
public const int TUF_KB_BRIGHTNESS = 0x00050021;
|
||||
@@ -102,7 +117,7 @@ public class AsusACPI
|
||||
public const int TUF_KB2 = 0x0010005a;
|
||||
public const int TUF_KB_STATE = 0x00100057;
|
||||
|
||||
public const int MICMUTE_LED = 0x00040017;
|
||||
public const int MicMuteLed = 0x00040017;
|
||||
|
||||
public const int TabletState = 0x00060077;
|
||||
public const int FnLock = 0x00100023;
|
||||
@@ -110,6 +125,9 @@ public class AsusACPI
|
||||
public const int ScreenPadToggle = 0x00050031;
|
||||
public const int ScreenPadBrightness = 0x00050032;
|
||||
|
||||
public const int CameraLed = 0x00060079;
|
||||
public const int StatusLed = 0x000600C2;
|
||||
|
||||
public const int BootSound = 0x00130022;
|
||||
|
||||
public const int Tablet_Notebook = 0;
|
||||
@@ -129,7 +147,7 @@ public class AsusACPI
|
||||
public const int MinTotal = 5;
|
||||
|
||||
public static int MaxTotal = 150;
|
||||
public static int DefaultTotal = 125;
|
||||
public static int DefaultTotal = 80;
|
||||
|
||||
public const int MinCPU = 5;
|
||||
public const int MaxCPU = 100;
|
||||
@@ -138,9 +156,23 @@ public class AsusACPI
|
||||
public const int MinGPUBoost = 5;
|
||||
public static int MaxGPUBoost = 25;
|
||||
|
||||
public static int MinGPUPower = 0;
|
||||
public static int MaxGPUPower = 70;
|
||||
|
||||
public const int MinGPUTemp = 75;
|
||||
public const int MaxGPUTemp = 87;
|
||||
|
||||
public const int PCoreMin = 4;
|
||||
public const int ECoreMin = 0;
|
||||
|
||||
public const int PCoreMax = 16;
|
||||
public const int ECoreMax = 16;
|
||||
|
||||
private bool? _allAMD = null;
|
||||
private bool? _overdrive = null;
|
||||
|
||||
public static uint GPUEco => (AppConfig.IsVivoZenbook() || AppConfig.IsProArt()) ? GPUEcoVivo : GPUEcoROG;
|
||||
public static uint GPUMux => AppConfig.IsVivoZenbook() ? GPUMuxVivo : GPUMuxROG;
|
||||
|
||||
[DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Unicode)]
|
||||
private static extern IntPtr CreateFile(
|
||||
@@ -247,6 +279,11 @@ public class AsusACPI
|
||||
MaxTotal = 250;
|
||||
}
|
||||
|
||||
if (AppConfig.IsG14AMD())
|
||||
{
|
||||
DefaultTotal = 125;
|
||||
}
|
||||
|
||||
if (AppConfig.IsX13())
|
||||
{
|
||||
MaxTotal = 75;
|
||||
@@ -273,6 +310,19 @@ public class AsusACPI
|
||||
{
|
||||
MaxGPUBoost = 15;
|
||||
}
|
||||
|
||||
if (AppConfig.DynamicBoost20())
|
||||
{
|
||||
MaxGPUBoost = 20;
|
||||
}
|
||||
|
||||
if (AppConfig.IsAMDLight())
|
||||
{
|
||||
MaxTotal = 90;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
public void Control(uint dwIoControlCode, byte[] lpInBuffer, byte[] lpOutBuffer)
|
||||
@@ -372,16 +422,42 @@ public class AsusACPI
|
||||
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 SetVivoMode(int mode)
|
||||
{
|
||||
if (mode == 1) mode = 2;
|
||||
else if (mode == 2) mode = 1;
|
||||
return Program.acpi.DeviceSet(VivoBookMode, mode, "VivoMode");
|
||||
}
|
||||
|
||||
public int SetGPUEco(int eco)
|
||||
{
|
||||
int ecoFlag = DeviceGet(GPUEco);
|
||||
uint ecoEndpoint = GPUEco;
|
||||
|
||||
int ecoFlag = DeviceGet(ecoEndpoint);
|
||||
if (ecoFlag < 0) return -1;
|
||||
|
||||
if (ecoFlag == 1 && eco == 0)
|
||||
return DeviceSet(GPUEco, eco, "GPUEco");
|
||||
return DeviceSet(ecoEndpoint, eco, "GPUEco");
|
||||
|
||||
if (ecoFlag == 0 && eco == 1)
|
||||
return DeviceSet(GPUEco, eco, "GPUEco");
|
||||
return DeviceSet(ecoEndpoint, eco, "GPUEco");
|
||||
|
||||
return -1;
|
||||
}
|
||||
@@ -412,6 +488,7 @@ public class AsusACPI
|
||||
return fan;
|
||||
}
|
||||
|
||||
|
||||
public int SetFanRange(AsusFan device, byte[] curve)
|
||||
{
|
||||
|
||||
@@ -450,7 +527,11 @@ public class AsusACPI
|
||||
|
||||
if (fanScale != 100 && device == AsusFan.CPU) Logger.WriteLine("Custom fan scale: " + fanScale);
|
||||
|
||||
// it seems to be a bug, when some old model's bios can go nuts if fan is set to 100%
|
||||
if (AppConfig.IsSwappedFans())
|
||||
{
|
||||
device = (device == AsusFan.CPU) ? AsusFan.GPU : AsusFan.CPU;
|
||||
Logger.WriteLine("Swapped fan fix");
|
||||
}
|
||||
|
||||
for (int i = 8; i < curve.Length; i++) curve[i] = (byte)(Math.Max((byte)0, Math.Min((byte)100, curve[i])) * fanScale / 100);
|
||||
|
||||
@@ -482,16 +563,25 @@ public class AsusACPI
|
||||
default: fan_mode = 0; break;
|
||||
}
|
||||
|
||||
byte[] result;
|
||||
|
||||
switch (device)
|
||||
{
|
||||
case AsusFan.GPU:
|
||||
return DeviceGetBuffer(DevsGPUFanCurve, fan_mode);
|
||||
result = DeviceGetBuffer(DevsGPUFanCurve, fan_mode);
|
||||
break;
|
||||
case AsusFan.Mid:
|
||||
return DeviceGetBuffer(DevsMidFanCurve, fan_mode);
|
||||
result = DeviceGetBuffer(DevsMidFanCurve, fan_mode);
|
||||
break;
|
||||
default:
|
||||
return DeviceGetBuffer(DevsCPUFanCurve, fan_mode);
|
||||
result = DeviceGetBuffer(DevsCPUFanCurve, fan_mode);
|
||||
break;
|
||||
}
|
||||
|
||||
//Logger.WriteLine($"GetFan {device} :" + BitConverter.ToString(result));
|
||||
|
||||
return result;
|
||||
|
||||
}
|
||||
|
||||
public static bool IsInvalidCurve(byte[] curve)
|
||||
@@ -549,14 +639,19 @@ public class AsusACPI
|
||||
|
||||
public bool IsXGConnected()
|
||||
{
|
||||
//return true;
|
||||
return DeviceGet(GPUXGConnected) == 1;
|
||||
}
|
||||
|
||||
public bool IsAllAmdPPT()
|
||||
{
|
||||
//return false;
|
||||
return DeviceGet(PPT_CPUB0) >= 0 && DeviceGet(PPT_GPUC0) < 0;
|
||||
if (_allAMD is null) _allAMD = DeviceGet(PPT_CPUB0) >= 0 && DeviceGet(PPT_GPUC0) < 0 && !AppConfig.IsAlly();
|
||||
return (bool)_allAMD;
|
||||
}
|
||||
|
||||
public bool IsOverdriveSupported()
|
||||
{
|
||||
if (_overdrive is null) _overdrive = DeviceGet(ScreenOverdrive) >= 0;
|
||||
return (bool)_overdrive;
|
||||
}
|
||||
|
||||
public bool IsNVidiaGPU()
|
||||
@@ -634,22 +729,55 @@ public class AsusACPI
|
||||
}
|
||||
}
|
||||
|
||||
public void ScanRange()
|
||||
public (int, int) GetCores(bool max = false)
|
||||
{
|
||||
int value = Program.acpi.DeviceGet(max ? CORES_MAX : CORES_CPU);
|
||||
//value = max ? 0x406 : 0x605;
|
||||
|
||||
if (value < 0) return (-1, -1);
|
||||
Logger.WriteLine("Cores" + (max ? "Max" : "") + ": 0x" + value.ToString("X4"));
|
||||
|
||||
return ((value >> 8) & 0xFF, (value) & 0xFF);
|
||||
}
|
||||
|
||||
public void SetCores(int eCores, int pCores)
|
||||
{
|
||||
if (eCores < ECoreMin || eCores > ECoreMax || pCores < PCoreMin || pCores > PCoreMax)
|
||||
{
|
||||
Logger.WriteLine($"Incorrect Core config ({eCores}, {pCores})");
|
||||
return;
|
||||
};
|
||||
|
||||
int value = (eCores << 8) | pCores;
|
||||
Program.acpi.DeviceSet(CORES_CPU, value, "Cores (0x" + value.ToString("X4") + ")");
|
||||
}
|
||||
|
||||
public string ScanRange()
|
||||
{
|
||||
int value;
|
||||
string appPath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\GHelper";
|
||||
string logFile = appPath + "\\scan.txt";
|
||||
for (uint i = 0x00000000; i <= 0x00160000; i++)
|
||||
using (StreamWriter w = File.AppendText(logFile))
|
||||
{
|
||||
value = DeviceGet(i);
|
||||
if (value >= 0)
|
||||
using (StreamWriter w = File.AppendText(logFile))
|
||||
w.WriteLine($"Scan started {DateTime.Now}");
|
||||
for (uint i = 0x00000000; i <= 0x00160000; i += 0x10000)
|
||||
{
|
||||
for (uint j = 0x00; j <= 0xFF; j++)
|
||||
{
|
||||
w.WriteLine(i.ToString("X8") + ": " + value.ToString("X4") + " (" + value + ")");
|
||||
w.Close();
|
||||
uint id = i + j;
|
||||
value = DeviceGet(id);
|
||||
if (value >= 0)
|
||||
{
|
||||
w.WriteLine(id.ToString("X8") + ": " + value.ToString("X4") + " (" + value + ")");
|
||||
}
|
||||
}
|
||||
}
|
||||
w.WriteLine($"---------------------");
|
||||
w.Close();
|
||||
}
|
||||
|
||||
return logFile;
|
||||
|
||||
}
|
||||
|
||||
public void TUFKeyboardBrightness(int brightness)
|
||||
|
||||
523
app/AsusMouseSettings.Designer.cs
generated
523
app/AsusMouseSettings.Designer.cs
generated
File diff suppressed because it is too large
Load Diff
@@ -55,6 +55,9 @@ namespace GHelper
|
||||
buttonLightingZoneAll.Text = Properties.Strings.AuraZoneAll;
|
||||
buttonLightingZoneDock.Text = Properties.Strings.AuraZoneDock;
|
||||
|
||||
buttonExport.Text = Properties.Strings.Export;
|
||||
buttonImport.Text = Properties.Strings.Import;
|
||||
|
||||
InitTheme();
|
||||
|
||||
this.Text = mouse.GetDisplayName();
|
||||
@@ -863,14 +866,23 @@ namespace GHelper
|
||||
|
||||
private void VisualizeCurrentDPIProfile()
|
||||
{
|
||||
if (mouse.DpiProfile > mouse.DpiSettings.Count())
|
||||
if (mouse.DpiProfile > mouse.DpiSettings.Length)
|
||||
{
|
||||
Logger.WriteLine($"Wrong mouse DPI: {mouse.DpiProfile}");
|
||||
return;
|
||||
}
|
||||
|
||||
AsusMouseDPI dpi = mouse.DpiSettings[mouse.DpiProfile - 1];
|
||||
|
||||
AsusMouseDPI dpi;
|
||||
|
||||
try
|
||||
{
|
||||
dpi = mouse.DpiSettings[mouse.DpiProfile - 1];
|
||||
} catch (Exception ex)
|
||||
{
|
||||
Logger.WriteLine($"Wrong mouse DPI: {mouse.DpiProfile} {mouse.DpiSettings.Length} {ex.Message}");
|
||||
return;
|
||||
}
|
||||
|
||||
if (dpi is null)
|
||||
{
|
||||
return;
|
||||
@@ -903,5 +915,64 @@ namespace GHelper
|
||||
{
|
||||
RefreshMouseData();
|
||||
}
|
||||
|
||||
private void buttonImport_Click(object sender, EventArgs e)
|
||||
{
|
||||
byte[] data = null;
|
||||
|
||||
Thread t = new Thread(() =>
|
||||
{
|
||||
OpenFileDialog ofd = new OpenFileDialog();
|
||||
ofd.Filter = "G-Helper Mouse Profile V1 (*.gmp1)|*.gmp1";
|
||||
|
||||
if (ofd.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
data = File.ReadAllBytes(ofd.FileName);
|
||||
}
|
||||
});
|
||||
|
||||
t.SetApartmentState(ApartmentState.STA);
|
||||
t.Start();
|
||||
t.Join();
|
||||
|
||||
if (data == null)
|
||||
{
|
||||
//User aborted loading
|
||||
return;
|
||||
}
|
||||
|
||||
if (!mouse.Import(data))
|
||||
{
|
||||
Logger.WriteLine("Failed to import mouse profile");
|
||||
MessageBox.Show(Properties.Strings.MouseImportFailed);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!mouse.IsLightingZoned())
|
||||
{
|
||||
visibleZone = LightingZone.All;
|
||||
}
|
||||
|
||||
RefreshMouseData();
|
||||
}
|
||||
}
|
||||
|
||||
private void buttonExport_Click(object sender, EventArgs e)
|
||||
{
|
||||
Thread t = new Thread(() =>
|
||||
{
|
||||
SaveFileDialog sfd = new SaveFileDialog();
|
||||
sfd.Filter = "G-Helper Mouse Profile V1 (*.gmp1)|*.gmp1";
|
||||
|
||||
if (sfd.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
File.WriteAllBytes(sfd.FileName, mouse.Export());
|
||||
}
|
||||
});
|
||||
|
||||
t.SetApartmentState(ApartmentState.STA);
|
||||
t.Start();
|
||||
t.Join();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,7 +36,13 @@ namespace GHelper.AutoUpdate
|
||||
|
||||
public void LoadReleases()
|
||||
{
|
||||
Process.Start(new ProcessStartInfo(versionUrl) { UseShellExecute = true });
|
||||
try
|
||||
{
|
||||
Process.Start(new ProcessStartInfo(versionUrl) { UseShellExecute = true });
|
||||
} catch (Exception ex)
|
||||
{
|
||||
Logger.WriteLine("Failed to open releases page:" + ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
async void CheckForUpdatesAsync()
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
namespace GHelper.Battery
|
||||
using System.Diagnostics;
|
||||
|
||||
namespace GHelper.Battery
|
||||
{
|
||||
internal class BatteryControl
|
||||
{
|
||||
@@ -19,7 +21,7 @@
|
||||
public static void UnSetBatteryLimitFull()
|
||||
{
|
||||
AppConfig.Set("charge_full", 0);
|
||||
Program.settingsForm.VisualiseBatteryFull();
|
||||
Program.settingsForm.Invoke(Program.settingsForm.VisualiseBatteryFull);
|
||||
}
|
||||
|
||||
public static void AutoBattery(bool init = false)
|
||||
@@ -34,6 +36,12 @@
|
||||
if (limit < 0) limit = AppConfig.Get("charge_limit");
|
||||
if (limit < 40 || limit > 100) return;
|
||||
|
||||
if (AppConfig.IsChargeLimit6080())
|
||||
{
|
||||
if (limit > 80) limit = 100;
|
||||
else if (limit < 60) limit = 60;
|
||||
}
|
||||
|
||||
Program.acpi.DeviceSet(AsusACPI.BatteryLimit, limit, "BatteryLimit");
|
||||
|
||||
AppConfig.Set("charge_limit", limit);
|
||||
@@ -42,5 +50,25 @@
|
||||
Program.settingsForm.VisualiseBattery(limit);
|
||||
}
|
||||
|
||||
public static void BatteryReport()
|
||||
{
|
||||
var reportDir = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile);
|
||||
|
||||
try
|
||||
{
|
||||
var cmd = new Process();
|
||||
cmd.StartInfo.WorkingDirectory = reportDir;
|
||||
cmd.StartInfo.UseShellExecute = false;
|
||||
cmd.StartInfo.CreateNoWindow = true;
|
||||
cmd.StartInfo.FileName = "powershell";
|
||||
cmd.StartInfo.Arguments = "powercfg /batteryreport; explorer battery-report.html";
|
||||
cmd.Start();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Logger.WriteLine(ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
549
app/Display/ColorProfileHelper.cs
Normal file
549
app/Display/ColorProfileHelper.cs
Normal file
@@ -0,0 +1,549 @@
|
||||
using GHelper.Helpers;
|
||||
using System.IO.Compression;
|
||||
|
||||
namespace GHelper.Display
|
||||
{
|
||||
public static class ColorProfileHelper
|
||||
{
|
||||
public static string? GetProfileUrl(string model)
|
||||
{
|
||||
byte[] data = Convert.FromBase64String("aHR0cHM6Ly9kbGNkbi1yb2dib3hidTEuYXN1cy5jb20vcHViL0FTVVMvQVBTZXJ2aWNlL0dhbWluZy9TWVMvUk9HUy8=");
|
||||
string baseUrl = System.Text.Encoding.UTF8.GetString(data);
|
||||
|
||||
var profiles = new Dictionary<string, string>()
|
||||
{
|
||||
{"FA_Series", "2177-APOR41-de476ec68578c865e886ef6872aa56ee.zip"},
|
||||
{"FA506IC", "7822-ZGQ1KC-bc80be3be7ca585bef60f526b6461c86.zip"},
|
||||
{"FA506ICB", "13914-2HYCD7-95fabfe5669a204620517f0158c0cea1.zip"},
|
||||
{"FA506IE", "7828-57N8GH-9fe07a7e4ebde12a8d4682d3ffa66fe4.zip"},
|
||||
{"FA506IEB", "14661-ZYWH5T-3b45ebeb7fca81d98796d5960e11226c.zip"},
|
||||
{"FA506IH", "3407-VZBOUN-8a12385fa46e077010677d330e9320d5.zip"},
|
||||
{"FA506IHR", "7823-15HGA0-44d621a3c0f0dd2c407f67d262871be0.zip"},
|
||||
{"FA506II", "3410-9ZXQO2-aa08794537699c5dbfcca49b63fb7f8d.zip"},
|
||||
{"FA506IM", "7824-EKKW9A-21c7e073a81fc868b78e605b17290839.zip"},
|
||||
{"FA506IR", "7825-G6XND9-c16ea7e98b58e878c61d1071b100ee60.zip"},
|
||||
{"FA506IU", "3413-AMCR39-2a8b889a8810da4e8692f87e1ae3ea2c.zip"},
|
||||
{"FA506IV", "3415-VA0CJ6-266febe84bcecc5ed89fdc286f444ce2.zip"},
|
||||
{"FA506NC", "18359-BM2XCN-3ca9de427310b05afa92dcbe1babf947.zip"},
|
||||
{"FA506NF", "18361-CU7H6I-55beba8445b9aa0fe9cbeb8ec9a47ccf.zip"},
|
||||
{"FA506QC", "7829-LBYY5U-b14343c260b738563b69ad0e4f4b88d1.zip"},
|
||||
{"FA506QE", "7827-75P3DP-b664f4da04e77ed1faa722bf0c781d82.zip"},
|
||||
{"FA506QM", "9440-87VQKP-48357026f1f3099cfed1161a320587f0.zip"},
|
||||
{"FA506QR", "7830-KO7FQ6-618480f72c2e68bafc594b5323a5d13c.zip"},
|
||||
{"FA507NI", "14451-N6AX9R-0bc8e15be5cf889c755aaa7052f6fee8.zip"},
|
||||
{"FA507NJ", "14454-QXKHOE-d28f2eb001f9b7ce0582cbe33961a6ad.zip"},
|
||||
{"FA507NU", "14452-EZXLVF-c64dd3d7efede78df653b029888d9d04.zip"},
|
||||
{"FA507NUR", "18871-WR3YMP-6cbcd0502eb9bf200465e36c4de8c9fd.zip"},
|
||||
{"FA507NV", "14453-VC333P-41549f64788d59c9711eccec892fa8c1.zip"},
|
||||
{"FA507NVR", "18872-HVR4UY-220dc7f3f73cf12b2af2505db6ce67ab.zip"},
|
||||
{"FA507RC", "11448-0TRT8V-7712eb9302300dd82815027efbbe4787.zip"},
|
||||
{"FA507RE", "11449-ONC7VG-a7ac70468292336f63532c21204d69d4.zip"},
|
||||
{"FA507RF", "14311-X72FIU-66bf16069a82bdf2cc09f8b92cb25c67.zip"},
|
||||
{"FA507RH", "11453-W4B8H4-e1645d3ce1e0216a30246ad6a84c3819.zip"},
|
||||
{"FA507RM", "11452-ZGHOOO-f3bddf2fddd3c027568646bc5afe3c7d.zip"},
|
||||
{"FA507RR", "11450-UU8KFV-2c718d16687fa3b038e625f504ccd13f.zip"},
|
||||
{"FA507RW", "11451-XHL0SH-c2702d2047b7b93636cc1372caf25a75.zip"},
|
||||
{"FA507UI", "17850-4J1GCV-c30e3d47aa82df4e3f0754888903c5dd.zip"},
|
||||
{"FA507UU", "17851-PIGBD6-45227ab485302ec2cca63f0bbb71d473.zip"},
|
||||
{"FA507UV", "17852-T32MPT-a2fd989758365b8a04e4dc5bbb146af1.zip"},
|
||||
{"FA507XI", "14817-A522MM-fad14cb28f00b94735eb55c2b3b7b892.zip"},
|
||||
{"FA507XJ", "14820-8RT0TF-9d341fae2a290494206deb5fcf1fd427.zip"},
|
||||
{"FA507XU", "14818-3PA2GD-2d1e2d035309ec7282a1c47e27f7c7fd.zip"},
|
||||
{"FA507XV", "14819-ET4L73-daf905274776ae9c92a7b74e687dc63d.zip"},
|
||||
{"FA607PI", "17579-FL63B4-df08bf92fe3c156ce738e43de7824d65.zip"},
|
||||
{"FA607PU", "17580-WM413K-eff7721ca9ec5b633ef196dbfcd58ff2.zip"},
|
||||
{"FA607PV", "17581-JNXO2Q-15d026a4ae630d44b28c18aee0a99e51.zip"},
|
||||
{"FA607RC", "10190-XHDRTQ-0e6c248e3dab6bb07e052edd963c5218.zip"},
|
||||
{"FA607RE", "10194-AF495K-23a4d74be5132e4babc64bb13237a12b.zip"},
|
||||
{"FA607RH", "10191-9BS333-c6deb5f9fd5a37d446d2722da54c0ec3.zip"},
|
||||
{"FA607RM", "10195-4U5EEF-cf98d168cacdd5a60782e881a9c143be.zip"},
|
||||
{"FA607RR", "10193-FYX2N7-730c76e49ef71a6164804eafd2621dab.zip"},
|
||||
{"FA607RW", "10192-UFOOP3-f52a50dac189ffa96560f73e04c53a6c.zip"},
|
||||
{"FA617NS", "15967-YKHJ0B-89095e43578e64c160d2952bb14513f2.zip"},
|
||||
{"FA617NT", "15970-C1BW39-2ef1c5d5d9a967cf2fc1f511d3db3a43.zip"},
|
||||
{"FA617XS", "15968-Y9NFXN-cb420fe6e177fc1cf675e9d42a6fd0ea.zip"},
|
||||
{"FA617XT", "15969-UKYP5L-ad54051ebbad4b17693b65f5bceda799.zip"},
|
||||
{"FA706IC", "5215-5J3H5Y-d2cdc2f5e03d68e5e5e562581a77c8e6.zip"},
|
||||
{"FA706IE", "8827-43DTPG-ba6be621f7d0dda88e5391164cbc7a74.zip"},
|
||||
{"FA706IH", "2610-2EJ0EQ-245d43d7bd14bb3e664fa96e9f5a690e.zip"},
|
||||
{"FA706IHR", "8828-XBJAQU-5d8064b0fb63ca7866ee4cf821ece676.zip"},
|
||||
{"FA706II", "2611-HO3IK9-2fb972a395137c940151723b01e9b9cb.zip"},
|
||||
{"FA706IM", "8829-GWFKN5-5ab773eb09bfb3099137fae3c7d547c1.zip"},
|
||||
{"FA706IR", "8825-63J2NY-2496ecf21b5fa71e65671531b670cdac.zip"},
|
||||
{"FA706IU", "2608-EI64MF-64c35bda7789e6e71298e22d793b78d4.zip"},
|
||||
{"FA706NF", "18362-1V7Z1Z-0bc79f01bdfadc5b39342fba622a5b8d.zip"},
|
||||
{"FA706QC", "8826-032S4E-868933565b1a7d762bda8cafc1e77458.zip"},
|
||||
{"FA706QE", "8824-KZNJL9-9d827f4973d4c9787ff050dc1bf35eef.zip"},
|
||||
{"FA706QM", "8830-6NX7U4-b7bbfe663aa954534d33d2f822181728.zip"},
|
||||
{"FA706QR", "8823-RXSLAC-a2720365e842af1dd826920fb447fba5.zip"},
|
||||
{"FA707NI", "14455-19J6WZ-10282c6083ee018a614e75bc809ecf1f.zip"},
|
||||
{"FA707NJ", "14457-BGJD0K-d963ff94009c9a2a5b99606eac711a95.zip"},
|
||||
{"FA707NU", "14456-VAZ4LS-1d798d3873c55e9d10b43a3f2b12cd15.zip"},
|
||||
{"FA707NV", "14458-7G8B40-08117ddb45ed3c6978aa4ad60e3d2c96.zip"},
|
||||
{"FA707RC", "10196-81D3O0-94ccf4d908c9bcb44f8f9092ef9fa2e2.zip"},
|
||||
{"FA707RE", "10200-AUS9AW-7f366055be2ae2b4c659aa9590bb4d5e.zip"},
|
||||
{"FA707RF", "14312-6KGU80-09ba6d3e3b490c3d1dce3d16df62cd8a.zip"},
|
||||
{"FA707RH", "10197-BB5746-a958ff2eeedcfd1753c2e7151c0a3f96.zip"},
|
||||
{"FA707RM", "10198-TBWO12-e35e49d79fcc03c5cc84b5b40c222e80.zip"},
|
||||
{"FA707RR", "10199-LILM59-05448f5e429c6c4be7b531d0b6aa2319.zip"},
|
||||
{"FA707RW", "10201-0KXC4K-3dca8e95a9e676a1010efc79becde228.zip"},
|
||||
{"FA707XI", "14821-JO8WIQ-77921f1a7a523fe5674f39f10e66f4a3.zip"},
|
||||
{"FA707XIN", "14822-7W7Q8W-e2e50358e878b092fc888e8e70575985.zip"},
|
||||
{"FA707XJ", "14823-MX6CGK-0d0862cd441f96a72b1c8baeaa8aa3b4.zip"},
|
||||
{"FA707XU", "14824-O2LZZA-f0ea2bf54bbc4fd4e7391048f4a083e4.zip"},
|
||||
{"FA707XV", "14825-DUSKD1-7d0a055d869a7366105380c44788724b.zip"},
|
||||
{"FX_Series", "2174-J1XJKV-bd932ade5eebb0b2f1a36eac85bc5c7d.zip"},
|
||||
{"FX505DD", "3439-CJLCNE-3df3a90619c571de2917a35a402fe6cb.zip"},
|
||||
{"FX505DT", "3427-H77L9I-2f3f50fbbb1dc4ac6e703b2820acb491.zip"},
|
||||
{"FX505DU", "3426-9P4PXL-7e640e1e38c6395bc5455bdf838ea83d.zip"},
|
||||
{"FX505DV", "3425-31OQ2O-3ab11acfb17dca8f339fe0b8a4efa33d.zip"},
|
||||
{"FX505DY", "162-H1YFBE-1e5c82e28fa35559e5f7a6aa934d7405.zip"},
|
||||
{"FX505GT", "3423-8CCGEQ-a72ef69d8d5aab7bfd3eb34e2a55cd48.zip"},
|
||||
{"FX505GU", "3424-9J0I5H-1c209ee72d9f7ba2caa559fddd9f5fdc.zip"},
|
||||
{"FX506HC", "7821-BDCXZM-23e718ce9f58cbef286e77c7d97752d0.zip"},
|
||||
{"FX506HCB", "8452-QZYXAU-9385f6b96812173b12dcf23934d2729d.zip"},
|
||||
{"FX506HE", "7831-C0XU6K-16e393308545bf5fa327997b33edeba9.zip"},
|
||||
{"FX506HEB", "8453-42FVNT-a7c6b122bb1f2e16340c016d09b43c13.zip"},
|
||||
{"FX506HF", "14511-KKQA1F-9129e79baf1215ce451e791b51fee304.zip"},
|
||||
{"FX506HHR", "7832-KJD4ZK-d6e5fcf84caf94be5b312d6233876322.zip"},
|
||||
{"FX506HM", "7833-2EVLVM-3082377bce59838bf06bd09c3c9911fe.zip"},
|
||||
{"FX506HMB", "8454-32DRJH-818506f55eef4d13839ea8e8d8765534.zip"},
|
||||
{"FX506LH", "10917-Y6JJC7-4596433cf10a71242d9a9255c2b31458.zip"},
|
||||
{"FX506LHB", "16838-WYAR19-d3f87642f6cf12ec77e231b7d405fa61.zip"},
|
||||
{"FX506LI", "4428-Y7KRBX-df2c328780c4506a2cb2279ddf84ca58.zip"},
|
||||
{"FX506LU", "4429-34SZ6D-2df0b447ff1dcf6d887cad5c679331de.zip"},
|
||||
{"FX507VI", "14064-MTRMKH-169de48f4b0b3035315106bde1a1020f.zip"},
|
||||
{"FX507VI4", "14065-9VTCNA-b5e0ac043ffd3e3ffab879f6401b2e07.zip"},
|
||||
{"FX507VJ", "14066-W5FPY3-89180f515ba2c785b1f87c895e09cee9.zip"},
|
||||
{"FX507VJ4", "14067-DKVRHI-bc0fa5ec61259e31536356ec67d27cb5.zip"},
|
||||
{"FX507VU", "14071-EEJKDG-95e42e7c6ebaea33206a1de566588ae8.zip"},
|
||||
{"FX507VU4", "14069-1JAF2A-4d328ede6adf0796924734da3e04a18f.zip"},
|
||||
{"FX507VV", "14068-QO62TU-b6aadf3d84f816a42f111649bb1381ae.zip"},
|
||||
{"FX507VV4", "14070-WHB99Q-57b4d0c8f9405038db3e298f72474505.zip"},
|
||||
{"FX507ZC", "11454-8DEVNS-3503e698cf0b56b387bf65ebd0169786.zip"},
|
||||
{"FX507ZC4", "13785-D9YTVH-2fb9db83c6f04518f230d1d453373e5d.zip"},
|
||||
{"FX507ZE", "11459-DKP456-c8d8862da76207dc0a3bf2642b98632d.zip"},
|
||||
{"FX507ZE4", "13786-3YM16F-fa4c0a13c74e6c1253d464bbb035cbc3.zip"},
|
||||
{"FX507ZH", "11455-OQI6ZD-866eb458d7ab9ac51cb88966b2c4acf1.zip"},
|
||||
{"FX507ZI4", "14056-D01K4S-bb2cfa4d564b8a6834c78d675aebdd1c.zip"},
|
||||
{"FX507ZJ4", "14057-YY0XRG-4f7570dee1902f2012b812d50b0d2334.zip"},
|
||||
{"FX507ZM", "11456-OM12KU-7c91b2d14b093dc2eef17a555e14ada3.zip"},
|
||||
{"FX507ZR", "11458-P8RTC8-2b3802527c98749fb68397f35c6bb86b.zip"},
|
||||
{"FX507ZU4", "14058-9ZYS4E-7e244d3e7dc3641d602130563c1c84b7.zip"},
|
||||
{"FX507ZV4", "14059-VBGCNK-0314facaf02290da1a75d1b00455cb3a.zip"},
|
||||
{"FX507ZW", "11457-4F1FOO-5f24a98f90735cedf1ad9fb5ac90adbf.zip"},
|
||||
{"FX516PC", "7788-GJYPET-06cf200d5b8fb92c807de03796535e80.zip"},
|
||||
{"FX516PE", "7789-WIT1BW-b32fd9546ac9ac5b6878a3f46c30247c.zip"},
|
||||
{"FX516PH", "7237-G94WZH-30c10f820dcdf03cc661fd9b73c2927a.zip"},
|
||||
{"FX516PM", "7790-OG0DVJ-e7ad44e2fa38eb4256e09a62a744659a.zip"},
|
||||
{"FX516PR", "7791-LJ7RQ7-36c58a0b55aeb5c3782302fd58139815.zip"},
|
||||
{"FX517ZC", "13757-QJDW9D-ab71bd2ecf24d182bf32fbd931b24e58.zip"},
|
||||
{"FX517ZE", "13758-75WLCE-fac3186e372a6e0e422d3d78de1addb3.zip"},
|
||||
{"FX517ZH", "11461-A4BH34-2464f8a583b064ab2bdb336dc13d8b2e.zip"},
|
||||
{"FX517ZM", "13759-694BOG-7b8f61a1d8a387715721fd2b8e0bd766.zip"},
|
||||
{"FX517ZR", "11463-MCHEWS-7a732705aea49eb663fe1e8930c463de.zip"},
|
||||
{"FX517ZW", "11464-S41ORA-d99633ecf421ba4ab73800bc9ebf2e5b.zip"},
|
||||
{"FX607JI", "17739-YJBJMA-59c984b28eeb6c02498190f768b12b52.zip"},
|
||||
{"FX607JIR", "17740-78V0QP-43bf1ea30f94d3d3a286f42dd90a1816.zip"},
|
||||
{"FX607JU", "17744-JEFX0I-f1ee2104c17a5cc511efefa3dc7b9601.zip"},
|
||||
{"FX607JUR", "17743-A2JS5H-224a1f32f7dbfecb0d6b91fdb6ffac8e.zip"},
|
||||
{"FX607JV", "17741-OWALZC-eb293a03c7b4595270939bccfe891656.zip"},
|
||||
{"FX607JVR", "17742-3OOC7N-f28635b55ce56f9e32672b2e409a075c.zip"},
|
||||
{"FX607VI", "14072-0Z0LX5-c3145816b5c9b045a3e829e194425624.zip"},
|
||||
{"FX607VJ", "14073-H1KA78-95472184994955393ebf635af4a55c71.zip"},
|
||||
{"FX607VU", "14074-RCMD10-b606bf5fd03bdf6a8aef412202de86ff.zip"},
|
||||
{"FX607VV", "14075-BX4NJX-a9e24be091f08e6cc3885397f143bdc5.zip"},
|
||||
{"FX607ZC", "9267-SQXQMT-edf1ee77d7f276d9b2f14fbe80e86459.zip"},
|
||||
{"FX607ZE", "9268-MI06A0-5f60b76f497adb2c80dc5d34e7ca00ef.zip"},
|
||||
{"FX607ZH", "9266-75PO51-12f649be993639c1ff986129977bc516.zip"},
|
||||
{"FX607ZM", "9269-MEPP17-baf25a9abae3ae712da40dc6c4f2de22.zip"},
|
||||
{"FX607ZR", "9285-7B20C5-9a0ee909d954eda9fd9f334a6b76bdda.zip"},
|
||||
{"FX607ZW", "9265-9H05OM-5b2735efc15db9c49302451b728338a8.zip"},
|
||||
{"FX617ZC", "9263-3PLDC1-74d554f08fac5b1689c7dbb581fc97c4.zip"},
|
||||
{"FX617ZE", "9264-9L5V7F-203b8f8a48d47470aef80dd42bbef60b.zip"},
|
||||
{"FX617ZH", "9261-DIXTFE-b20887acff77b59a80e62088caf695f3.zip"},
|
||||
{"FX617ZM", "9262-OXO77E-8476443cfd885a718b915731b9807bc0.zip"},
|
||||
{"FX617ZR", "9286-VA9VXJ-8c69c08b5812b00656142d93cb5a5013.zip"},
|
||||
{"FX617ZW", "9260-O8UGYN-9678cab288d9b85ec59961647ca94ff7.zip"},
|
||||
{"FX705DY", "163-N6IM0Z-3bee0b29abd2d6b419ba322661d64a6a.zip"},
|
||||
{"FX706HC", "8834-3HMY7W-fb49a16bc9cda208a3acf5f2ea32fc63.zip"},
|
||||
{"FX706HCB", "8835-FHPH4O-319d35ab96a1eef3b5ae7fefde106cf2.zip"},
|
||||
{"FX706HE", "8833-SW8GIL-71ae2ebbdb18ec3380cf682be0ca32a3.zip"},
|
||||
{"FX706HEB", "8836-SUE4HH-55876358bbe39f53ea2010c8f66e9093.zip"},
|
||||
{"FX706HF", "17052-8B8C18-0c762fb15cd6367d08c954ce5e01f497.zip"},
|
||||
{"FX706HHR", "7837-S711RT-ed9d8a61e80895a6403dda19ac873f62.zip"},
|
||||
{"FX706HM", "8832-O7W1D2-853dd8eb62665c369cd2c3b716a53b80.zip"},
|
||||
{"FX706HMB", "8831-NKXZ56-437ac6d56280dd0734f9f56db3ba6a6f.zip"},
|
||||
{"FX707VI", "14076-C4CQ2E-0771f0ec46072ac38a7dbb8829783298.zip"},
|
||||
{"FX707VI4", "14078-UXPPY2-ffe538cd58da15c780e6263c2818f995.zip"},
|
||||
{"FX707VJ", "14077-6KB0BJ-af4fae81000b0143477091deaca569da.zip"},
|
||||
{"FX707VJ4", "14080-YBM0VD-bef842b5fcc1b49cb054cfb1eb3d2258.zip"},
|
||||
{"FX707VU", "14081-I8JRY3-2ab8a5dcab2033a19de169e424da1530.zip"},
|
||||
{"FX707VU4", "14079-TALDGM-c7d6c6820a223967463a76152e178af4.zip"},
|
||||
{"FX707VV", "14082-2UYJNX-a21d4e4e856e8a4fe52b30593705d818.zip"},
|
||||
{"FX707VV4", "14083-79JC8K-74d96cb066ded2d86255755fdc1f3167.zip"},
|
||||
{"FX707ZC", "9278-7TRFVL-9a0693a78d8d69a265cb7101314dd055.zip"},
|
||||
{"FX707ZC4", "13358-EPBJ9S-035eca4acee4db9814f693f4aeef0147.zip"},
|
||||
{"FX707ZE", "9279-QYJXB7-17ff65bda614791358426882d48be6fe.zip"},
|
||||
{"FX707ZE4", "13357-V3LZL7-64a1ecac6b4657e98a422cd5657cc89b.zip"},
|
||||
{"FX707ZH", "9280-62FAFQ-3193a4215440ecbe7fece9091fad6205.zip"},
|
||||
{"FX707ZI4", "14060-EEB7IW-e716f0f9a1f8f91e5ae93d902de96385.zip"},
|
||||
{"FX707ZJ4", "14061-T7UBPM-91f62b48749f5ed42e3c3d1f2b8bb645.zip"},
|
||||
{"FX707ZM", "9281-YKO83G-ff6a896b4e055cc6500470636cf9e1ad.zip"},
|
||||
{"FX707ZR", "9284-GYDQK8-bfdc718699fb7030b0f133402933e12f.zip"},
|
||||
{"FX707ZU4", "14062-52EB12-8a85d0170af52dfbaf216b98085015d0.zip"},
|
||||
{"FX707ZV4", "14063-R6EM57-62ad692f855e33bb05aaae1823207415.zip"},
|
||||
{"FX707ZW", "9282-E6GYQU-5f673e25b2ef5e57c78e36668e9c5e9f.zip"},
|
||||
{"G_Series", "2176-RS8S2K-e815e5e0be51e1bd76674cd3826cbfec.zip"},
|
||||
{"G512LH", "3312-AM98EE-e9a32238fa66ffe8683ff0a34019f216.zip"},
|
||||
{"G512LI", "3310-9MDL49-daee5dd162a699f60f2bb68a3cba7ef7.zip"},
|
||||
{"G512LU", "4150-SX012C-b6e7d21b645495f57b2fb7bd9734e839.zip"},
|
||||
{"G512LV", "4151-LUEHCJ-f145d1dd67079a3739a564cb04eaa6ff.zip"},
|
||||
{"G512LW", "4152-4IMGHN-f0a946d2f21860039a9181b17ca1f1be.zip"},
|
||||
{"G512LWS", "4153-IZDAY7-3cc48027800d6d123db4f584a5a2e4a4.zip"},
|
||||
{"G513IC", "7233-I1XU1L-57f580817efeb347c2e64b467b569d48.zip"},
|
||||
{"G513IE", "7232-7C4QK2-effb8e534fc4639d7fd72e957e1a13fc.zip"},
|
||||
{"G513IH", "7231-YGY2HL-ef7e448a0e3b2502219c74c2f8a26a72.zip"},
|
||||
{"G513IM", "7883-JSH1ET-04fb928a7fe54481b8156627d30451ce.zip"},
|
||||
{"G513IR", "7884-DB01TN-5bdc2457c9a42ad9c0b1ab82139beeac.zip"},
|
||||
{"G513QC", "7228-I73APA-79e1e7f9582bdc44f510d651e909250b.zip"},
|
||||
{"G513QE", "7227-9J3H2Y-d222e0119fef169bbe0f20f754743ca7.zip"},
|
||||
{"G513QH", "7226-MUU2SQ-05a65cada4f1c986b7b2c5e2cf7ea796.zip"},
|
||||
{"G513QM", "7882-2FWOWK-ca956a4c309edb8cd9d9c24178ec3912.zip"},
|
||||
{"G513QR", "7885-4VL6WK-6a21c044bb2d69f55febdb6ffcd5b7d8.zip"},
|
||||
{"G513QY", "7881-S6R4GZ-5832d1de6fc107509803927e4a52ebf7.zip"},
|
||||
{"G513RC", "14513-WMQ0GS-4018fc7459d96efec72f15f724c33062.zip"},
|
||||
{"G513RE", "14516-VXJYUR-fbaadee0ba8dea2a24282b2be882d571.zip"},
|
||||
{"G513RH", "11732-8ODACG-845738811f5dcaee76c7ba113ed0c8bd.zip"},
|
||||
{"G513RM", "11735-UXEJT9-03457f6d6350f0a860fe6386de27a659.zip"},
|
||||
{"G513RS", "11733-9SABRD-3a4c8dee5ff96668dc9ff509d626e17e.zip"},
|
||||
{"G513RW", "11737-VS9IFQ-b9c6657578263ac3ab1062b32ab599bb.zip"},
|
||||
{"G513RX", "11736-CHOX6M-ca19a5d6e7153102c3825f8b3371b4d7.zip"},
|
||||
{"G531GD", "3698-YSDO31-352980933199182c587573ecf056711b.zip"},
|
||||
{"G531GT", "3697-OYLYLQ-4916a89afb3a6964cb2b0ddd8dc45fe1.zip"},
|
||||
{"G531GU", "744-S7QQP3-8572157fa95e0eb235f29df0227d5064.zip"},
|
||||
{"G532LU", "4146-NF3MBY-79c262fe416eb469fdff811d501233c9.zip"},
|
||||
{"G532LV", "4147-F6P59K-328b1796ee854653a1470be865e06d0e.zip"},
|
||||
{"G532LW", "4148-KUJ0SA-affcc286138b433b9b051dffc8158672.zip"},
|
||||
{"G532LWS", "4149-RDJKG0-c5f4470225e184cdbc34b9b41c9e2666.zip"},
|
||||
{"G533QM", "7880-VL41LZ-ea6868a4918e7a2571a169b0b20d53de.zip"},
|
||||
{"G533QR", "7879-3915UU-cec5ce6e895bc9acf0367b1ae69d7d01.zip"},
|
||||
{"G533QS", "7878-SLEHTN-4844d16bf258768105873010c17398ea.zip"},
|
||||
{"G533ZC", "11725-BVSBSP-1f91feb49662e4f4257a27ea081db4ac.zip"},
|
||||
{"G533ZE", "11730-DEG4Q9-3d77f3901752747e449fdaa5467a250b.zip"},
|
||||
{"G533ZM", "11726-01FCGK-180459312539e4c38def3c7323a60494.zip"},
|
||||
{"G533ZS", "11728-KGTOE8-4fe0474fc6e8944dbdcf726bad1a7db1.zip"},
|
||||
{"G533ZW", "11727-98BKOJ-93e373e64e92c21ff018ba6c66a9de9d.zip"},
|
||||
{"G533ZX", "11729-XNFMPR-e0aad4e4d4956dba8629f419b1f86026.zip"},
|
||||
{"G614JF", "14496-NAATJZ-a3847e890e57aa749645b854b28ead79.zip"},
|
||||
{"G614JI", "14168-4VTU0U-37decb2df809672eccf1156769eda929.zip"},
|
||||
{"G614JIR", "18120-52TT5M-28a5c8e138ed1660e9eadc81121f789a.zip"},
|
||||
{"G614JJ", "14497-P0D5PL-abe178509e0316da9ee56b24e15d0384.zip"},
|
||||
{"G614JU", "14498-5D71EB-2300be03087494ee34356470ca022b7c.zip"},
|
||||
{"G614JV", "14500-SPJCAL-a8e2e223857c334ba4c20c8122151bb7.zip"},
|
||||
{"G614JVR", "18121-2WOF0H-4e7045c7a210693fef2b99b8e032316b.zip"},
|
||||
{"G614JZ", "18199-P9WWOH-093d361358629a2bddd5bff7b5fb7a5f.zip"},
|
||||
{"G634JY", "14163-JLRBOO-8ea519425efe56cc144e38d22cebd3f0.zip"},
|
||||
{"G634JYR", "18087-6Z1W8Q-cd92004b6b9392e2cf07317db8ca9c6d.zip"},
|
||||
{"G634JZ", "15827-MSW5I1-0f39e92313e54afe3e35f5636dc37fd5.zip"},
|
||||
{"G634JZR", "17891-O7PAGL-5c6e6d059ff7bc1b9245fdf8a8066263.zip"},
|
||||
{"G703GX", "105-NMT9XG-76a0810ddf16ee376fa049bd179377fc.zip"},
|
||||
{"G712LU", "3364-3GYELH-a0f545d6a2f5ca2516e91f0495f98110.zip"},
|
||||
{"G712LV", "3365-UYDEWV-6675727e4e0588b95d9faa2df69b1972.zip"},
|
||||
{"G712LW", "3366-OK41IE-fc01da1e3d6217e6bce24f3237b5631e.zip"},
|
||||
{"G712LWS", "3367-N1B9F6-72dd79495de9b660a8b120579c708623.zip"},
|
||||
{"G713IC", "14187-GKTF5N-c602fb66b48f86aa2ab7b14367dba7b0.zip"},
|
||||
{"G713IE", "11023-PVEVI5-bfa9a58633213b87629c5117030d54f2.zip"},
|
||||
{"G713IH", "6317-I3AGUT-a0a1e3b68265d7bd3a2a1657afa0cfb6.zip"},
|
||||
{"G713IM", "7890-IC1UIL-85b242f2f61aef5cd16166178b6a1adc.zip"},
|
||||
{"G713IR", "7891-832AOR-104e408922a3f0c4e8d97d03dd000083.zip"},
|
||||
{"G713PI", "14527-XK0JY1-ffe9b04acfd36ebcf3b1331577515b8c.zip"},
|
||||
{"G713PU", "14528-AC10R7-ee30e2f76e16c16db44758ac911e9d61.zip"},
|
||||
{"G713PV", "14530-3ONUVM-abf27eca2271dcdfd150acdf6cc26800.zip"},
|
||||
{"G713PVN", "14529-YMPI29-b958f3ae6ad8118997c16c87d9840fb9.zip"},
|
||||
{"G713QC", "5496-KAW7ZL-7a45d99d71ba375d79d047a015c27c2a.zip"},
|
||||
{"G713QE", "5497-T7QUN2-f5c00e128ed96b9727dcdfb4d857dbb7.zip"},
|
||||
{"G713QH", "6316-ANOUE8-9b18e7d3aeaeb5cc4520be09df860617.zip"},
|
||||
{"G713QM", "7892-JCIYF7-acf05d6b34e417efed385e84dc079677.zip"},
|
||||
{"G713QR", "7888-XIBCC9-d2e608529ce49f0daf90bf3d81cbd69e.zip"},
|
||||
{"G713QY", "7889-FH9X9W-5c4d00f5506924fc9f29e1c190b1bf51.zip"},
|
||||
{"G713RC", "14514-8R6TFS-eb95e08804622256fc5be85a1f14301c.zip"},
|
||||
{"G713RE", "14515-LTB9LQ-a6a522a9d63083e0366d13f40af54ebf.zip"},
|
||||
{"G713RH", "11305-VO5JTS-7cb1b763f054da29ce2ba1e08c897a60.zip"},
|
||||
{"G713RM", "11309-GX2AYR-5b172b743c185242080b08dd7e2b7fc7.zip"},
|
||||
{"G713RS", "11306-E1A3OM-37679d1dfc144d892325420d784f5d8e.zip"},
|
||||
{"G713RW", "11308-IPZSAB-6c8827c63a27cee6257c755bf0bd9c41.zip"},
|
||||
{"G713RX", "11307-JGFO1D-cff83a2f34e3c0ed755ed63c20d2905d.zip"},
|
||||
{"G732LU", "3368-C89MVD-1ecb4a036b697bd4bd027d2bd160d219.zip"},
|
||||
{"G732LV", "3369-TI19K6-56ca5eb37397117c97e0bae42e82b2b4.zip"},
|
||||
{"G732LW", "3370-HLPSUS-9c7615d0220bde50de5ecd4c7e51182c.zip"},
|
||||
{"G732LWS", "3371-B4CG89-c22a9f4deb49d6e1e921ebd5a0cab685.zip"},
|
||||
{"G732LXS", "3372-OJEP07-c0e21f578660bec502aec19a3645b067.zip"},
|
||||
{"G733CM", "11332-V8B7E9-2a7f61f88106051be62b57250ed33eaf.zip"},
|
||||
{"G733CW", "11334-MQ3PJE-f03f2950247ac635dda1b30245d220aa.zip"},
|
||||
{"G733CX", "11333-XS984I-d48bb5ee3416d47fa203090bc8bce04d.zip"},
|
||||
{"G733PY", "14531-B4NFUU-4ec97a54081ea4b713975fd1ab7c1b80.zip"},
|
||||
{"G733PYV", "15178-1CIVEB-5a9d09a4d22d6361992c7cd6ca27fb41.zip"},
|
||||
{"G733PZ", "14532-4UUM5E-296ee92ca5416a8c59bffd6f101feaa5.zip"},
|
||||
{"G733PZV", "15179-EDHNHX-ce69d260b1e8077d8d522d3b4326322c.zip"},
|
||||
{"G733QM", "7893-OW1O2I-a2dcb8ff88cae20c7086bac8d9312dbc.zip"},
|
||||
{"G733QR", "7887-OA7Z12-bc86110ff0d1f359d9230fca8bbabe51.zip"},
|
||||
{"G733QS", "7886-V9PIMC-27ca6272c2b093264d88a32f1093a4fe.zip"},
|
||||
{"G733QSA", "5501-LX7POZ-9289c2079bdb48e2fdd76d7981fb0e5d.zip"},
|
||||
{"G733ZC", "10077-J3XTHP-525deb09f2ada7dc36dc82772f7a9cce.zip"},
|
||||
{"G733ZE", "10079-KAW34P-16c4b5e812e10019f21b4d7f879acfaf.zip"},
|
||||
{"G733ZM", "10078-K6B3CR-63dd00f6ecc3eb61e92439ef5caaea17.zip"},
|
||||
{"G733ZS", "10081-VM2AN1-517b1e41388f12048ec3a88c780f1d65.zip"},
|
||||
{"G733ZW", "10080-HY42QH-aa285046069cfe113953b91f1a28d101.zip"},
|
||||
{"G733ZX", "10082-JS5F1Y-41bccc831aec7bf1c0a59a309bc607c7.zip"},
|
||||
{"G814JI", "18243-BAU912-671afb033d3b1c44f9852ff608910f42.zip"},
|
||||
{"G814JIR", "17315-02XE3O-7a00ed5b91bc305aade5a1830691d0d6.zip"},
|
||||
{"G814JU", "18193-Y5GMF0-843cee9ed982a3d5aba21e99efbc396c.zip"},
|
||||
{"G814JV", "18194-9Q537I-c5c2ca782d26dcd5346c110767347903.zip"},
|
||||
{"G814JVR", "17313-P6P61Y-5960dc1d0bd8ba2057bc22aaa8bf89e5.zip"},
|
||||
{"G814JZ", "18195-V98WBX-19d4c2e52916bf9c96fcaed6f1d9bdda.zip"},
|
||||
{"G834JY", "15954-HAV3KR-d219c43750d485279e12cf76f5b2569b.zip"},
|
||||
{"G834JYR", "17314-YYBQF3-a65b1bc3fd1e8de145dc9d606e8c45c8.zip"},
|
||||
{"G834JZ", "15953-C7XC62-a987058c0a26fa3c929b300d099296a5.zip"},
|
||||
{"G834JZR", "17316-AFT379-743360d9b36031d91a72fe03e3fafca0.zip"},
|
||||
{"GA401IC", "5864-KC8TTP-082f9a62dda322ccaed82ff3e3466bf8.zip"},
|
||||
{"GA401IE", "5866-JO8504-dde5402bdecafc1cef55a7dc3d6167ec.zip"},
|
||||
{"GA401IHR", "5865-7DV6TB-9833a54c7334dc3aef1b9e99f56b9e95.zip"},
|
||||
{"GA401QC", "5129-PY283Y-ac372208c57a7f558db6c169cd50d091.zip"},
|
||||
{"GA401QE", "5130-C2G5CO-8ea0eb1ca537d77d19bad13dee55294c.zip"},
|
||||
{"GA401QH", "5124-QQ97GA-bbde59c5235d8b72b78059b95e8a23a2.zip"},
|
||||
{"GA401QM", "4922-222SBA-340a82b955a5f57ff39f6d2d08af365b.zip"},
|
||||
{"GA402NF", "14160-ORONGT-ca84f0561683e1a07548d0cb7e42c275.zip"},
|
||||
{"GA402NI", "14159-SDCMA5-300bd29af08b0f5d1527a375f8c326f2.zip"},
|
||||
{"GA402NJ", "14158-O7H0GR-10db546f9901ac02d3ce8d5a28cb4772.zip"},
|
||||
{"GA402NU", "14157-QJ4W59-69222faad499f94b4d96f7d85504930d.zip"},
|
||||
{"GA402NV", "14156-ZKGYBE-ae1ac3947eb8684cabc0cd45f8d4c67e.zip"},
|
||||
{"GA402NY", "14155-AL3KZU-17ac9e4b88c03ebaf983134f76f9a4b2.zip"},
|
||||
{"GA402NZ", "14154-SY6J4X-7d8416a09b51e32f856f3353173ccc70.zip"},
|
||||
{"GA402RI", "10145-9W1623-272e082c57c6e41074b2cace72adc92e.zip"},
|
||||
{"GA402RJ", "10146-IY7ENY-f6d2d25b5b6b21616ceddc4e9aefa656.zip"},
|
||||
{"GA402RK", "10151-7RPIER-2588aa83188168f8375ed9bab7bb67d2.zip"},
|
||||
{"GA402RQ", "10147-9NQMQH-7ff3944c376e91b26c0a1c18122a4262.zip"},
|
||||
{"GA402RU", "10149-3F10IX-43c96d30b6702261c3cf85467857eec9.zip"},
|
||||
{"GA402RW", "10150-5H5ISD-1badfa856f0ec8d15d9d5832a8d54fc9.zip"},
|
||||
{"GA402RX", "10148-QFCU8O-704d371255ae8a72737f5f8eca75eb9d.zip"},
|
||||
{"GA402XI", "14899-86ZX57-5940ed56b182781334ca2856f6ba0b9e.zip"},
|
||||
{"GA402XJ", "14901-MDIR3C-5022331539bb187bf041a7e3ab0a46bf.zip"},
|
||||
{"GA402XU", "14900-KYCOC7-361bb364d26ff834d6bd716d14f70006.zip"},
|
||||
{"GA402XV", "14902-EL34M9-731ba1cc0d27d2db9a79d872673e7958.zip"},
|
||||
{"GA402XY", "14903-ICC56W-0456739d8ba5ee543dfba99eb6ad217a.zip"},
|
||||
{"GA402XZ", "14904-B3K2NR-928b7272790e7da0079c549cd4885d5d.zip"},
|
||||
{"GA403UI", "18084-XTMSW5-6cad333378f3b1059688a419a8422fc1.zip"},
|
||||
{"GA403UU", "18086-WXV037-ad90bc3f20ff056c45dbbb848fa72a67.zip"},
|
||||
{"GA403UV", "18085-G56QVI-3f24b5bd1eaa8dd9086b86092cb62ffb.zip"},
|
||||
{"GA502II", "3554-REAPZQ-5f94c7ecd52ae2cad50aaac4341bec7b.zip"},
|
||||
{"GA502IU", "3555-15UWZ4-d1cd040265773efd61bdfd146140a990.zip"},
|
||||
{"GA502IV", "3556-ULLH3K-1f56134e43e1ffa353256fbeb9840d3f.zip"},
|
||||
{"GA503IC", "7457-RENJRP-5b833a2bd8e1e13ec41f0acf7ef04fd0.zip"},
|
||||
{"GA503IE", "7465-QO1Q0F-663f0c9501e649bcb0069413f3081a49.zip"},
|
||||
{"GA503IH", "7458-D6CHF3-4c6b83cb3efc11713fddd9c41cfd127c.zip"},
|
||||
{"GA503IM", "7741-F8GHPK-63e17aca55a11e838b1079eb0c6bea16.zip"},
|
||||
{"GA503QC", "7459-308BEA-bcf2604511112df5fa810faa9cdece89.zip"},
|
||||
{"GA503QE", "7464-4T2J1D-3920997d2f44d3b40dffd6ba9f028075.zip"},
|
||||
{"GA503QM", "7739-BSD39S-f9858fd4a68ff8ef60b8abf2cda92dd7.zip"},
|
||||
{"GA503QN", "7740-QT19P2-33054dbe06ae3baa435a44ce529eddb5.zip"},
|
||||
{"GA503QR", "7738-QVCIRY-4e612ff997f11448c77068e39ee0681e.zip"},
|
||||
{"GA503QS", "7737-B5L4LD-4400a4ddc94eebefb0678fb281b63fa0.zip"},
|
||||
{"GA503RJ", "10630-MSC4Q2-f16f1ef2847069e50aad62083836b220.zip"},
|
||||
{"GA503RK", "10631-VXWRAN-b2a1aa499bf33f1f9bd3d80e31dd9d69.zip"},
|
||||
{"GA503RM", "12054-38JGOX-35e7b1afb150daea1eab90ae97f0da7b.zip"},
|
||||
{"GA503RR", "10632-IOY3C0-bf16d1028f572ede9dd8e1a2fd632ae5.zip"},
|
||||
{"GA503RS", "11745-689QTC-6c441a7161a34b871918fce5997c4e2e.zip"},
|
||||
{"GA503RW", "12055-SG6VTH-91cc5782da63cf3dcc16804a47db25a2.zip"},
|
||||
{"GA503RX", "12056-MR9J0D-b7dad63f751d2e53aeee479524986bdd.zip"},
|
||||
{"GL_Series", "2167-P7ELNB-44d357ee720a0c48c2eb37eee785316c.zip"},
|
||||
{"GL503GE", "57-YI7HPS-9ed36ba45ff6398f3648a44ced4e5e61.zip"},
|
||||
{"GL504GM", "58-JOZ3S5-998677afd41375cb8fd60ace8d11a788.zip"},
|
||||
{"GL504GS", "59-KS4SJK-b1c9807c7d7dc847fa895516b3b9a8cb.zip"},
|
||||
{"GL504GV", "167-OX51EF-b8b5c713bff267d315e0255370956e75.zip"},
|
||||
{"GL504GW", "168-NMGNB6-1f6d79b87d077c235c57d4505ce802e7.zip"},
|
||||
{"GL703GE", "60-M0UOZ3-1474ef8209bf010de4c6e6ae94ce351d.zip"},
|
||||
{"GL703GM", "61-WJGLV3-b8005e077aa4825799459412849e346c.zip"},
|
||||
{"GL703GS", "62-HU12J1-a88023229e3a2dbc5fc1aca1b07e4d76.zip"},
|
||||
{"GL704GV", "106-3IHGVF-5d15db39c04a44e3503d3536d4f0c132.zip"},
|
||||
{"GL704GW", "107-NZ7VZL-cae8497c2eb8479f4808d2b61e7c8e70.zip"},
|
||||
{"GM_Series", "2169-K05CUW-841a5508c96649de28d613e32dfb7fcf.zip"},
|
||||
{"GM501GM", "63-3CL0UZ-eee6728dd2517d6e3af581f1caef0114.zip"},
|
||||
{"GM501GS", "64-GH66XC-5e69efa00bbe486efd897414ed329545.zip"},
|
||||
{"GU_Series", "2170-FYLCER-f45e5d5e38121b7bfe275b780e739a8e.zip"},
|
||||
{"GU501GM", "65-LSRZXK-658dc6e1c89a7787201ec7c74eebf2d5.zip"},
|
||||
{"GU502DU", "4004-T40IY1-74f962c9d9d27544c964bdb347074472.zip"},
|
||||
{"GU603HE", "11674-VGXXML-41035c5f9dbf4e0b64a74eb3f89d95e4.zip"},
|
||||
{"GU603HM", "11676-GO5KVF-581b4f49e0e12d9d6654ab2c1db9ab11.zip"},
|
||||
{"GU603HR", "11675-AZPXHF-48a9979ce428acfcc57c4e295f8a9840.zip"},
|
||||
{"GU603VI", "14579-CUHZFU-ea9e6cf216e1359b0f3e300e137720f7.zip"},
|
||||
{"GU603VJ", "14580-18G1FP-4456270d80c37a0597b3bfc559222f64.zip"},
|
||||
{"GU603VQ", "14581-8YY8TX-e7aa10a20a41245500f40841b2298a42.zip"},
|
||||
{"GU603VU", "14582-9I3GQS-564dd1ba9ee37dc03bef022bd2e29049.zip"},
|
||||
{"GU603VV", "14583-XH4I69-879293a1a305dc952afb15b481722e09.zip"},
|
||||
{"GU603ZE", "9817-3EENL9-3187794df7ec8ddef2fe04d0787eff63.zip"},
|
||||
{"GU603ZEB", "9818-KOP3C1-11ab717fddedafb9066b362d8da5af85.zip"},
|
||||
{"GU603ZI", "14431-H4XZCU-1c907d4e22bbd5000a6c81cfc2e1dae4.zip"},
|
||||
{"GU603ZJ", "14432-Y5HC6R-b50edb7a5ad9469b89c35e5cd9fc114f.zip"},
|
||||
{"GU603ZM", "9819-718DH0-30bf094253e5178aba765436bb8b150f.zip"},
|
||||
{"GU603ZQ", "14434-3KPJU7-211e518352b0660babc4816fa5dd80bd.zip"},
|
||||
{"GU603ZR", "9820-LIQ8FP-6a60aee97d7028e7ea63bd2ab6c2b099.zip"},
|
||||
{"GU603ZU", "14435-2ZW8FL-65ab99a80fe08d8d088d8fdc998076f4.zip"},
|
||||
{"GU603ZV", "14433-FEY59U-cd0508e779a6b3874a61668f39ff78e0.zip"},
|
||||
{"GU603ZW", "9822-3R2PGP-f2d24c6931e733a5e0e41dc8560b80cc.zip"},
|
||||
{"GU603ZX", "9821-AQYG62-f42f167ec7b4f4fe003f05b1c1c61d58.zip"},
|
||||
{"GU604VI", "14284-R38BM3-e2591bfa2582ce68b2c8aba63beac5e3.zip"},
|
||||
{"GU604VY", "14282-78N7V4-25e76896744c53317fa41a80788a2241.zip"},
|
||||
{"GU604VZ", "14283-U4JX5C-f31dff75d52f48ceca0102fd1bc76e31.zip"},
|
||||
{"GU605MI", "17935-R3OAJH-55a4fbb2be67a37226accd279357268b.zip"},
|
||||
{"GU605MU", "17936-VBZ5PL-ad3a380f62bc87ee738c09c8e5255f91.zip"},
|
||||
{"GU605MV", "17938-7DGM0T-caed792b162e94846167888f36fc632e.zip"},
|
||||
{"GU605MY", "17937-HZWNQ4-72d9c4fed1b31f188874cd6461ffba83.zip"},
|
||||
{"GU605MZ", "17939-IEJ2X5-fe077100dc4eafbae46d7eb831a791a8.zip"},
|
||||
{"GV301QC", "5128-RN42GR-9a6049e7adabd1ff2aeed24293fe03a8.zip"},
|
||||
{"GV301QCZ", "6778-152PHS-7a9ad124aef1059471542dfc8912ed7b.zip"},
|
||||
{"GV301QE", "5125-PD15GR-9a7f72cbf5bd97d283464d8e407f0231.zip"},
|
||||
{"GV301QEZ", "6780-N3Y08B-222db095847d99663a575be36fbcf410.zip"},
|
||||
{"GV301QH", "5077-0BEYRT-ff8e30857ab4af017381f5703b39abed.zip"},
|
||||
{"GV301QHZ", "6779-9XZE32-329974b938dff4baf3097e3d745839eb.zip"},
|
||||
{"GV301RA", "10272-1B7YAA-45e3697377ff2e7dd68c57f5919eecd2.zip"},
|
||||
{"GV301RC", "10273-UJ0Q76-53bdfe00929ccf3f594f813ba235438b.zip"},
|
||||
{"GV301RE", "10274-1J3P7N-42dabc435e4daa40d4be2fa482624321.zip"},
|
||||
{"GV302NA", "14663-N4C4U4-1654950fbc1fad0e37a016c4a1e8a934.zip"},
|
||||
{"GV302NF", "14668-GMKBGC-1bd7957eb1a688f8eb0e6fb85395b839.zip"},
|
||||
{"GV302NI", "14664-ZQXAM8-1dec6b07c9589698c8cccdbc3a3211a6.zip"},
|
||||
{"GV302NJ", "14667-OFKJGT-60db594b4af90c481212ee31ffa96d38.zip"},
|
||||
{"GV302NU", "14666-6M0N3K-3d08325f6c4b3fcacf53a2f863a0e6c5.zip"},
|
||||
{"GV302NV", "14665-DWLIIQ-9b3b8b0aaca3a071f82cbb30fbbe2fd1.zip"},
|
||||
{"GV302XA", "14934-AU5P0J-1873c4e95dadcf72b1fad550108a0eb5.zip"},
|
||||
{"GV302XF", "14935-D5PHI6-aa9715b2328c499c8cd72b4958ba6641.zip"},
|
||||
{"GV302XI", "14936-CHYX8S-f5fe72833a34f1f002dae6789f2760fe.zip"},
|
||||
{"GV302XJ", "14937-LMH57E-651161fb27c3ef9904e15fc42e5d8352.zip"},
|
||||
{"GV302XU", "14938-4DXJJV-82feb9f0156bb914ccbde2de6d59ad14.zip"},
|
||||
{"GV302XV", "14939-KLW56G-32ffda0b7ee35bbe4ca5789da7210cc9.zip"},
|
||||
{"GV601RA", "11078-109U4J-33e9d7342819b8a7a534632df659e509.zip"},
|
||||
{"GV601RE", "11079-U5MUWC-8c22738f13a798376733fead5f091a4b.zip"},
|
||||
{"GV601RM", "11082-XN5PLH-5c405808680f6bfc36c5069bcd5dc366.zip"},
|
||||
{"GV601RW", "11081-FK9JFY-b82e25b8f9bcd2ad1d3ae23c7cb327d0.zip"},
|
||||
{"GV601RX", "11080-45B7E2-b64fdbf32877dc996b4efe274ff51f41.zip"},
|
||||
{"GV601VI", "14446-JS3QXL-72327a76c47c2ffdeaad392197a4b2ce.zip"},
|
||||
{"GV601VJ", "14448-TIX8CU-ed84b2ee1d92d2f38a891ed1c684eddf.zip"},
|
||||
{"GV601VQ", "14447-7C8UIX-13cc4d4632406ca5976358a4080f26af.zip"},
|
||||
{"GV601VU", "14450-0SP39K-8071216d3c679d013fffe57eca9f790c.zip"},
|
||||
{"GV601VV", "14449-QZS5FH-6a7771cbbf9bcc641a5418f250ef3b43.zip"},
|
||||
{"GX_Series", "2171-LHV7R6-bf1d918fd26714f10c3f3de990e30a1b.zip"},
|
||||
{"GX501GI", "66-U9BQN2-9a12abd42e07169ec6ebf4d4a6d2c148.zip"},
|
||||
{"GX502LWS", "3552-YRITSK-6f08012703e7718be25477f20ccd4d7e.zip"},
|
||||
{"GX502LXS", "3553-3ACO9T-20757861512ff920da316c949249b62d.zip"},
|
||||
{"GX531GM", "67-ER25S2-71ec74e4e8d14fc9c6cc8608d1616e5f.zip"},
|
||||
{"GX531GS", "68-V9PHXL-3cabb33363337795287458e3b10114f8.zip"},
|
||||
{"GX531GV", "108-VCV90K-00cec46bd49df326109c060367eaa57c.zip"},
|
||||
{"GX531GW", "109-0GH5PV-ce1ff55527d5da0b547df776af887276.zip"},
|
||||
{"GX531GX", "110-A0TZ36-4cf1c1cdeee6e0e27567e317444c62cb.zip"},
|
||||
{"GX550LWS", "3671-DEEX56-d93255f509e16f740c71e8c358e8ff36.zip"},
|
||||
{"GX550LXS", "3672-O3V2FT-6572c1aa661e3f406ce6e840075d81ab.zip"},
|
||||
{"GX551QM", "8108-47QAG6-7d57f542a91fca797f6bad910af5b864.zip"},
|
||||
{"GX551QR", "8109-ADSI6K-87224022e84f6a6c0ed2820cc4642a66.zip"},
|
||||
{"GX551QS", "8110-NLPALF-6ec9938f67229be071cdb8c436303734.zip"},
|
||||
{"GX650PI", "14591-ODJA1G-23aaf98034a279ae87f93f67db9b3b95.zip"},
|
||||
{"GX650PU", "14592-A6IJIM-e847943987f3cf4f1d0278fe1d5ee984.zip"},
|
||||
{"GX650PV", "14595-XKP10A-e14bb5df924255dc965bb975e1d64434.zip"},
|
||||
{"GX650PY", "14593-KC9ZMM-6e519dbcdd0139ed1d8e7649e407d8a8.zip"},
|
||||
{"GX650PZ", "14594-AETGOJ-4ba96caa5ae0ee68d8b457e0fbc03a17.zip"},
|
||||
{"GX650RM", "11320-E8SQ6M-5673cb197e000111c0d406b1156d44af.zip"},
|
||||
{"GX650RS", "11321-UEO888-cbff96301261591d9130980fcc5950e5.zip"},
|
||||
{"GX650RW", "11322-YIN6KH-2a804a1dd4da59662e6746f83d636452.zip"},
|
||||
{"GX650RX", "11323-64AK0P-9929933ff3fda3dcabfef096d7242a7c.zip"},
|
||||
{"GX701GV", "166-EI8VY0-1568b74c5bbf22297720b548ce6bcefa.zip"},
|
||||
{"GX701GW", "165-C6KON3-9b95db9f024e457420793b4915749fbd.zip"},
|
||||
{"GX701GX", "164-I4CRXM-b5e8ddc68c884eda5cf4676dd2683624.zip"},
|
||||
{"GX701LV", "3309-DPFMBZ-ffda0b00117a5f1c69a091158b631bbe.zip"},
|
||||
{"GX701LWS", "3308-PQVG48-ad364af358f946382f840c969c73d49b.zip"},
|
||||
{"GX701LXS", "3307-AY5DMD-681ac8295b6f98fda4c66b891f19be4d.zip"},
|
||||
{"GX703HM", "7962-KBDQY2-ff82594ee47f5c1058bc2115b6a74841.zip"},
|
||||
{"GX703HMD", "7963-A3TM3L-5f39a856e3f694e9db1ed5a5410baa39.zip"},
|
||||
{"GX703HR", "7967-5LQ4FV-7b6af6e1dc3a6c0786bec0ec084ee5c2.zip"},
|
||||
{"GX703HRD", "7964-TFYJ6L-4bec23647da2f9bc8403d060635dbdda.zip"},
|
||||
{"GX703HS", "7965-3HSRRO-c1869c30564e2db44a97c1e8953093b9.zip"},
|
||||
{"GX703HSD", "7966-9CCDGL-96f0c0f9e1e50ee66894e7b168e59cc3.zip"},
|
||||
{"GZ_Series", "2172-Z8OHBD-393c5060aaa27883e2fcbebc7e53997e.zip"},
|
||||
{"GZ301VF", "13604-50UADT-4df87ac6eab6ac261647875d727db9d4.zip"},
|
||||
{"GZ301VFC", "13787-WB73LI-b148b7cf3c90bc90fca4938bfc6fbbe5.zip"},
|
||||
{"GZ301VI", "13601-DPC6YI-17ac748ec814ec3152ad973f3a0cff4b.zip"},
|
||||
{"GZ301VIC", "13790-Z6V8RW-7a4f735f65c545158c7ba715694aa3c7.zip"},
|
||||
{"GZ301VJ", "13600-UNQHZ7-e7d0cbf757eeed28dba9295b517ef835.zip"},
|
||||
{"GZ301VJC", "13788-QVWJWQ-a13027f81094f94eea1d86152fe69ba9.zip"},
|
||||
{"GZ301VQ", "13789-K6I7SO-4a8594363610c383e39940ff135c0d7e.zip"},
|
||||
{"GZ301VQC", "13791-DBRKCU-a10ec3e290c5dc93bbb45f52c714a9b8.zip"},
|
||||
{"GZ301VU", "13602-6JQ2BK-4353d6c0b83589477ff4570b49258217.zip"},
|
||||
{"GZ301VUC", "13792-009F1L-4ee6b0014eca72c7d0217219ebe9e365.zip"},
|
||||
{"GZ301VV", "13603-OOLT27-8788c068fdad2a64da9925a5411b30af.zip"},
|
||||
{"GZ301VVC", "13793-8DIIWY-72aca4ea0f1db6c991b3e24da5a7907c.zip"},
|
||||
{"GZ301ZA", "10139-YXT5A7-521746c1b4991657abc37999a318219e.zip"},
|
||||
{"GZ301ZC", "10140-QA59M0-be0cf751aba85c98832f4a0f16456330.zip"},
|
||||
{"GZ301ZE", "10141-P1OXLB-318b5c3601e0d5c55d3b4307eba08ab2.zip"},
|
||||
{"GZ301ZH", "10142-ELMX6M-f9c50110ca0a763bf4b6d1e9dd9e3afa.zip"},
|
||||
{"NR2301L", "14736-3DM4T5-41c1b0b5c2d726da7c66e0c39ea08017.zip"},
|
||||
{"RC71L", "17126-IIDPFS-718c077a118724bb0045b35e30d5ac4e.zip"},
|
||||
{"RC71X", "15182-KWVC62-c754d9ea39f9160df7e21e4538ce60df.zip"},
|
||||
};
|
||||
|
||||
if (profiles.ContainsKey(model))
|
||||
{
|
||||
return baseUrl + profiles[model];
|
||||
}
|
||||
else
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public static bool ProfileExists()
|
||||
{
|
||||
(string bios, string model) = AppConfig.GetBiosAndModel();
|
||||
return (GetProfileUrl(model) is not null);
|
||||
}
|
||||
|
||||
public static async Task InstallProfile()
|
||||
{
|
||||
ProcessHelper.RunAsAdmin();
|
||||
|
||||
(string bios, string model) = AppConfig.GetBiosAndModel();
|
||||
string? profileUrl = GetProfileUrl(model);
|
||||
|
||||
if (profileUrl == null)
|
||||
{
|
||||
Logger.WriteLine($"No ICC Profile found for {model}");
|
||||
return;
|
||||
}
|
||||
|
||||
await DownloadAndExtractZip(profileUrl, VisualControl.GetGameVisualPath());
|
||||
}
|
||||
|
||||
static async Task DownloadAndExtractZip(string zipUrl, string extractPath)
|
||||
{
|
||||
using (HttpClient client = new HttpClient())
|
||||
{
|
||||
try
|
||||
{
|
||||
Logger.WriteLine($"Getting: {zipUrl}");
|
||||
byte[] zipData = await client.GetByteArrayAsync(zipUrl);
|
||||
|
||||
Directory.CreateDirectory(extractPath);
|
||||
|
||||
string tempZipPath = Path.Combine(extractPath, "temp.zip");
|
||||
await File.WriteAllBytesAsync(tempZipPath, zipData);
|
||||
|
||||
ZipFile.ExtractToDirectory(tempZipPath, extractPath, true);
|
||||
|
||||
File.Delete(tempZipPath);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Logger.WriteLine($"Error: {ex.Message}");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
112
app/Display/DisplayGammaRamp.cs
Normal file
112
app/Display/DisplayGammaRamp.cs
Normal file
@@ -0,0 +1,112 @@
|
||||
namespace GHelper.Display
|
||||
{
|
||||
|
||||
public class DisplayGammaRamp
|
||||
{
|
||||
|
||||
public DisplayGammaRamp(ushort[] red, ushort[] green, ushort[] blue)
|
||||
{
|
||||
if (red?.Length != GammaRamp.DataPoints)
|
||||
{
|
||||
throw new ArgumentOutOfRangeException(nameof(red));
|
||||
}
|
||||
|
||||
if (green?.Length != GammaRamp.DataPoints)
|
||||
{
|
||||
throw new ArgumentOutOfRangeException(nameof(green));
|
||||
}
|
||||
|
||||
if (blue?.Length != GammaRamp.DataPoints)
|
||||
{
|
||||
throw new ArgumentOutOfRangeException(nameof(blue));
|
||||
}
|
||||
|
||||
Red = red;
|
||||
Green = green;
|
||||
Blue = blue;
|
||||
}
|
||||
|
||||
public DisplayGammaRamp(double brightness = 1, double contrast = 1, double gamma = 1)
|
||||
: this(
|
||||
CalculateLUT(brightness, contrast, gamma),
|
||||
CalculateLUT(brightness, contrast, gamma),
|
||||
CalculateLUT(brightness, contrast, gamma)
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
public DisplayGammaRamp(
|
||||
double redBrightness,
|
||||
double redContrast,
|
||||
double redGamma,
|
||||
double greenBrightness,
|
||||
double greenContrast,
|
||||
double greenGamma,
|
||||
double blueBrightness,
|
||||
double blueContrast,
|
||||
double blueGamma
|
||||
)
|
||||
: this(
|
||||
CalculateLUT(redBrightness, redContrast, redGamma),
|
||||
CalculateLUT(greenBrightness, greenContrast, greenGamma),
|
||||
CalculateLUT(blueBrightness, blueContrast, blueGamma)
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
internal DisplayGammaRamp(GammaRamp ramp) :
|
||||
this(ramp.Red, ramp.Green, ramp.Blue)
|
||||
{
|
||||
}
|
||||
public ushort[] Blue { get; }
|
||||
public ushort[] Green { get; }
|
||||
public ushort[] Red { get; }
|
||||
private static ushort[] CalculateLUT(double brightness, double contrast, double gamma)
|
||||
{
|
||||
brightness = 0.5 + brightness / 2;
|
||||
var result = new ushort[GammaRamp.DataPoints];
|
||||
for (var i = 0; i < result.Length; i++)
|
||||
{
|
||||
result[i] = (ushort)(brightness * ushort.MaxValue * i / (float)(result.Length - 1));
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public bool IsOriginal()
|
||||
{
|
||||
int MaxRed = Red[Red.Length - 1];
|
||||
int MaxGreen = Green[Green.Length - 1];
|
||||
int MaxBlue = Blue[Blue.Length - 1];
|
||||
return (Math.Abs((MaxRed + MaxGreen + MaxBlue) / 3 - ushort.MaxValue) < 256);
|
||||
}
|
||||
|
||||
private static ushort[] Brightness(ushort[] data, double brightness)
|
||||
{
|
||||
var result = new ushort[GammaRamp.DataPoints];
|
||||
for (var i = 0; i < result.Length; i++)
|
||||
{
|
||||
if (brightness < 0.5)
|
||||
result[i] = (ushort)(0.5 * ushort.MaxValue * Math.Pow((float)i/(result.Length - 1), 2 - brightness*2));
|
||||
else
|
||||
result[i] = (ushort)(data[i] * brightness);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
internal GammaRamp AsBrightnessRamp(double brightness)
|
||||
{
|
||||
return new GammaRamp(
|
||||
Brightness(Red, brightness),
|
||||
Brightness(Green, brightness),
|
||||
Brightness(Blue, brightness)
|
||||
);
|
||||
}
|
||||
|
||||
internal GammaRamp AsRamp()
|
||||
{
|
||||
return new GammaRamp(Red, Green, Blue);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
56
app/Display/GammaRamp.cs
Normal file
56
app/Display/GammaRamp.cs
Normal file
@@ -0,0 +1,56 @@
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace GHelper.Display
|
||||
{
|
||||
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
internal struct GammaRamp
|
||||
{
|
||||
public const int DataPoints = 256;
|
||||
|
||||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = DataPoints)]
|
||||
public readonly ushort[] Red;
|
||||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = DataPoints)]
|
||||
public readonly ushort[] Green;
|
||||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = DataPoints)]
|
||||
public readonly ushort[] Blue;
|
||||
|
||||
public GammaRamp(ushort[] red, ushort[] green, ushort[] blue)
|
||||
{
|
||||
if (red == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(red));
|
||||
}
|
||||
|
||||
if (green == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(green));
|
||||
}
|
||||
|
||||
if (blue == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(blue));
|
||||
}
|
||||
|
||||
if (red.Length != DataPoints)
|
||||
{
|
||||
throw new ArgumentOutOfRangeException(nameof(red));
|
||||
}
|
||||
|
||||
if (green.Length != DataPoints)
|
||||
{
|
||||
throw new ArgumentOutOfRangeException(nameof(green));
|
||||
}
|
||||
|
||||
if (blue.Length != DataPoints)
|
||||
{
|
||||
throw new ArgumentOutOfRangeException(nameof(blue));
|
||||
}
|
||||
|
||||
Red = red;
|
||||
Green = green;
|
||||
Blue = blue;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -6,7 +6,7 @@ namespace GHelper.Display
|
||||
public class ScreenCCD
|
||||
{
|
||||
|
||||
public static bool GetHDRStatus()
|
||||
public static bool GetHDRStatus(bool log = true)
|
||||
{
|
||||
var err = GetDisplayConfigBufferSizes(QDC.QDC_ONLY_ACTIVE_PATHS, out var pathCount, out var modeCount);
|
||||
if (err != 0)
|
||||
@@ -46,8 +46,8 @@ namespace GHelper.Display
|
||||
info.outputTechnology == DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY.DISPLAYCONFIG_OUTPUT_TECHNOLOGY_DISPLAYPORT_EMBEDDED ||
|
||||
info.monitorFriendlyDeviceName == internalName)
|
||||
{
|
||||
Logger.WriteLine(info.monitorFriendlyDeviceName + " HDR: " + colorInfo.advancedColorEnabled);
|
||||
return colorInfo.advancedColorEnabled;
|
||||
if (log) Logger.WriteLine(info.monitorFriendlyDeviceName + " HDR: " + colorInfo.advancedColorEnabled + " " + colorInfo.bitsPerColorChannel + " " + colorInfo.value + " " + colorInfo.wideColorEnforced);
|
||||
return colorInfo.advancedColorEnabled && (colorInfo.bitsPerColorChannel > 8 || !colorInfo.wideColorEnforced);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@ namespace GHelper.Display
|
||||
|
||||
public const int MAX_REFRESH = 1000;
|
||||
|
||||
|
||||
public void AutoScreen(bool force = false)
|
||||
{
|
||||
if (force || AppConfig.Is("screen_auto"))
|
||||
@@ -22,72 +23,172 @@ namespace GHelper.Display
|
||||
}
|
||||
}
|
||||
|
||||
public void ToggleScreenRate()
|
||||
{
|
||||
var laptopScreen = ScreenNative.FindLaptopScreen(true);
|
||||
var refreshRate = ScreenNative.GetRefreshRate(laptopScreen);
|
||||
if (refreshRate < 0) return;
|
||||
|
||||
ScreenNative.SetRefreshRate(laptopScreen, refreshRate > 60 ? 60 : ScreenNative.GetMaxRefreshRate(laptopScreen));
|
||||
InitScreen();
|
||||
}
|
||||
|
||||
|
||||
public void SetScreen(int frequency = -1, int overdrive = -1, int miniled = -1)
|
||||
{
|
||||
var laptopScreen = ScreenNative.FindLaptopScreen(true);
|
||||
var refreshRate = ScreenNative.GetRefreshRate(laptopScreen);
|
||||
|
||||
if (laptopScreen is null) return;
|
||||
|
||||
if (ScreenNative.GetRefreshRate(laptopScreen) < 0) return;
|
||||
if (refreshRate < 0) return;
|
||||
|
||||
if (frequency >= MAX_REFRESH)
|
||||
{
|
||||
frequency = ScreenNative.GetMaxRefreshRate(laptopScreen);
|
||||
}
|
||||
|
||||
if (frequency > 0)
|
||||
if (frequency > 0 && frequency != refreshRate)
|
||||
{
|
||||
ScreenNative.SetRefreshRate(laptopScreen, frequency);
|
||||
}
|
||||
|
||||
if (overdrive >= 0)
|
||||
if (Program.acpi.IsOverdriveSupported() && overdrive >= 0)
|
||||
{
|
||||
if (AppConfig.Get("no_overdrive") == 1) overdrive = 0;
|
||||
Program.acpi.DeviceSet(AsusACPI.ScreenOverdrive, overdrive, "ScreenOverdrive");
|
||||
|
||||
if (AppConfig.IsNoOverdrive()) overdrive = 0;
|
||||
if (overdrive != Program.acpi.DeviceGet(AsusACPI.ScreenOverdrive))
|
||||
{
|
||||
Program.acpi.DeviceSet(AsusACPI.ScreenOverdrive, overdrive, "ScreenOverdrive");
|
||||
}
|
||||
}
|
||||
|
||||
if (miniled >= 0)
|
||||
{
|
||||
Program.acpi.DeviceSet(AsusACPI.ScreenMiniled, miniled, "Miniled");
|
||||
Debug.WriteLine("Miniled " + miniled);
|
||||
}
|
||||
SetMiniled(miniled);
|
||||
|
||||
InitScreen();
|
||||
}
|
||||
|
||||
|
||||
public int ToogleMiniled()
|
||||
public void SetMiniled(int miniled = -1)
|
||||
{
|
||||
int miniled = (Program.acpi.DeviceGet(AsusACPI.ScreenMiniled) == 1) ? 0 : 1;
|
||||
if (miniled >= 0)
|
||||
{
|
||||
if (Program.acpi.DeviceGet(AsusACPI.ScreenMiniled1) >= 0)
|
||||
Program.acpi.DeviceSet(AsusACPI.ScreenMiniled1, miniled, "Miniled1");
|
||||
else
|
||||
{
|
||||
Program.acpi.DeviceSet(AsusACPI.ScreenMiniled2, miniled, "Miniled2");
|
||||
Thread.Sleep(100);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void InitMiniled()
|
||||
{
|
||||
if (AppConfig.IsForceMiniled())
|
||||
SetMiniled(AppConfig.Get("miniled"));
|
||||
}
|
||||
|
||||
public void ToogleFHD()
|
||||
{
|
||||
int fhd = Program.acpi.DeviceGet(AsusACPI.ScreenFHD);
|
||||
Logger.WriteLine($"FHD Toggle: {fhd}");
|
||||
|
||||
DialogResult dialogResult = MessageBox.Show("Changing display mode requires reboot", Properties.Strings.AlertUltimateTitle, MessageBoxButtons.YesNo);
|
||||
if (dialogResult == DialogResult.Yes)
|
||||
{
|
||||
Program.acpi.DeviceSet(AsusACPI.ScreenFHD, (fhd == 1) ? 0 : 1, "FHD");
|
||||
Process.Start("shutdown", "/r /t 1");
|
||||
}
|
||||
}
|
||||
|
||||
public string ToogleMiniled()
|
||||
{
|
||||
int miniled1 = Program.acpi.DeviceGet(AsusACPI.ScreenMiniled1);
|
||||
int miniled2 = Program.acpi.DeviceGet(AsusACPI.ScreenMiniled2);
|
||||
|
||||
Logger.WriteLine($"MiniledToggle: {miniled1} {miniled2}");
|
||||
|
||||
int miniled;
|
||||
string name;
|
||||
|
||||
if (miniled1 >= 0)
|
||||
{
|
||||
switch (miniled1)
|
||||
{
|
||||
case 1:
|
||||
miniled = 0;
|
||||
name = Properties.Strings.OneZone;
|
||||
break;
|
||||
default:
|
||||
miniled = 1;
|
||||
name = Properties.Strings.Multizone;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
switch (miniled2)
|
||||
{
|
||||
case 1:
|
||||
miniled = 2;
|
||||
name = Properties.Strings.OneZone;
|
||||
break;
|
||||
case 2:
|
||||
miniled = 0;
|
||||
name = Properties.Strings.Multizone;
|
||||
break;
|
||||
default:
|
||||
miniled = 1;
|
||||
name = Properties.Strings.MultizoneStrong;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
AppConfig.Set("miniled", miniled);
|
||||
SetScreen(-1, -1, miniled);
|
||||
return miniled;
|
||||
SetScreen(miniled: miniled);
|
||||
|
||||
return name;
|
||||
}
|
||||
|
||||
public void InitScreen()
|
||||
{
|
||||
var laptopScreen = ScreenNative.FindLaptopScreen();
|
||||
|
||||
int frequency = ScreenNative.GetRefreshRate(laptopScreen);
|
||||
int maxFrequency = ScreenNative.GetMaxRefreshRate(laptopScreen);
|
||||
|
||||
if (maxFrequency > 0) AppConfig.Set("max_frequency", maxFrequency);
|
||||
else maxFrequency = AppConfig.Get("max_frequency");
|
||||
|
||||
bool screenAuto = AppConfig.Is("screen_auto");
|
||||
bool overdriveSetting = !AppConfig.Is("no_overdrive");
|
||||
bool overdriveSetting = Program.acpi.IsOverdriveSupported() && !AppConfig.IsNoOverdrive();
|
||||
|
||||
int overdrive = Program.acpi.DeviceGet(AsusACPI.ScreenOverdrive);
|
||||
int miniled = Program.acpi.DeviceGet(AsusACPI.ScreenMiniled);
|
||||
int overdrive = AppConfig.IsNoOverdrive() ? 0 : Program.acpi.DeviceGet(AsusACPI.ScreenOverdrive);
|
||||
|
||||
int miniled1 = Program.acpi.DeviceGet(AsusACPI.ScreenMiniled1);
|
||||
int miniled2 = Program.acpi.DeviceGet(AsusACPI.ScreenMiniled2);
|
||||
|
||||
int miniled = (miniled1 >= 0) ? miniled1 : miniled2;
|
||||
bool hdr = false;
|
||||
|
||||
if (miniled >= 0)
|
||||
{
|
||||
Logger.WriteLine($"Miniled: {miniled1} {miniled2}");
|
||||
AppConfig.Set("miniled", miniled);
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
hdr = ScreenCCD.GetHDRStatus();
|
||||
} catch (Exception ex)
|
||||
{
|
||||
Logger.WriteLine(ex.Message);
|
||||
}
|
||||
|
||||
bool screenEnabled = (frequency >= 0);
|
||||
|
||||
int fhd = -1;
|
||||
if (AppConfig.IsDUO())
|
||||
{
|
||||
fhd = Program.acpi.DeviceGet(AsusACPI.ScreenFHD);
|
||||
}
|
||||
|
||||
AppConfig.Set("frequency", frequency);
|
||||
AppConfig.Set("overdrive", overdrive);
|
||||
|
||||
@@ -100,8 +201,10 @@ namespace GHelper.Display
|
||||
maxFrequency: maxFrequency,
|
||||
overdrive: overdrive,
|
||||
overdriveSetting: overdriveSetting,
|
||||
miniled: miniled,
|
||||
hdr: hdr
|
||||
miniled1: miniled1,
|
||||
miniled2: miniled2,
|
||||
hdr: hdr,
|
||||
fhd: fhd
|
||||
);
|
||||
});
|
||||
|
||||
|
||||
@@ -339,7 +339,20 @@ namespace GHelper.Display
|
||||
|
||||
for (var i = 0; i < modeCount; i++)
|
||||
if (displayModes[i].infoType == DISPLAYCONFIG_MODE_INFO_TYPE.DISPLAYCONFIG_MODE_INFO_TYPE_TARGET)
|
||||
yield return DeviceName(displayModes[i].adapterId, displayModes[i].id);
|
||||
{
|
||||
DISPLAYCONFIG_TARGET_DEVICE_NAME? displayName = null;
|
||||
try
|
||||
{
|
||||
displayName = DeviceName(displayModes[i].adapterId, displayModes[i].id);
|
||||
|
||||
} catch (Exception e)
|
||||
{
|
||||
Logger.WriteLine(e.Message);
|
||||
}
|
||||
|
||||
if (displayName is not null) yield return (DISPLAYCONFIG_TARGET_DEVICE_NAME)displayName;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -32,6 +32,22 @@ namespace GHelper.Display
|
||||
}
|
||||
internal class ScreenNative
|
||||
{
|
||||
|
||||
[DllImport("gdi32", CharSet = CharSet.Unicode)]
|
||||
internal static extern IntPtr CreateDC(string driver, string device, string port, IntPtr deviceMode);
|
||||
|
||||
[DllImport("gdi32")]
|
||||
internal static extern bool SetDeviceGammaRamp(IntPtr dcHandle, ref GammaRamp ramp);
|
||||
|
||||
[DllImport("gdi32")]
|
||||
internal static extern bool GetDeviceGammaRamp(IntPtr dcHandle, ref GammaRamp ramp);
|
||||
|
||||
[DllImport("gdi32", CharSet = CharSet.Unicode)]
|
||||
internal static extern bool SetICMProfileW(IntPtr dcHandle, string lpFileName);
|
||||
|
||||
[DllImport("gdi32", CharSet = CharSet.Unicode)]
|
||||
internal static extern bool SetICMMode(IntPtr dcHandle, int mode);
|
||||
|
||||
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
|
||||
public struct DEVMODE
|
||||
{
|
||||
@@ -146,11 +162,12 @@ namespace GHelper.Display
|
||||
public const string defaultDevice = @"\\.\DISPLAY1";
|
||||
|
||||
|
||||
private static string? FindInternalName(bool log = false)
|
||||
public static string? FindInternalName(bool log = false)
|
||||
{
|
||||
try
|
||||
{
|
||||
var devices = GetAllDevices().ToArray();
|
||||
var devicesList = GetAllDevices();
|
||||
var devices = devicesList.ToArray();
|
||||
string internalName = AppConfig.GetString("internal_display");
|
||||
|
||||
foreach (var device in devices)
|
||||
|
||||
400
app/Display/VisualControl.cs
Normal file
400
app/Display/VisualControl.cs
Normal file
@@ -0,0 +1,400 @@
|
||||
using GHelper.Helpers;
|
||||
using System.Management;
|
||||
|
||||
namespace GHelper.Display
|
||||
{
|
||||
public enum SplendidGamut : int
|
||||
{
|
||||
VivoNative = 0,
|
||||
VivoSRGB = 1,
|
||||
VivoDCIP3 = 3,
|
||||
ViviDisplayP3 = 4,
|
||||
Native = 50,
|
||||
sRGB = 51,
|
||||
DCIP3 = 53,
|
||||
DisplayP3 = 54
|
||||
}
|
||||
|
||||
public enum SplendidCommand : int
|
||||
{
|
||||
None = -1,
|
||||
|
||||
VivoNormal = 1,
|
||||
VivoVivid = 2,
|
||||
VivoManual = 6,
|
||||
VivoEycare = 7,
|
||||
|
||||
Init = 10,
|
||||
DimmingVivo = 9,
|
||||
DimmingVisual = 19,
|
||||
GamutMode = 200,
|
||||
|
||||
Default = 11,
|
||||
Racing = 21,
|
||||
Scenery = 22,
|
||||
RTS = 23,
|
||||
FPS = 24,
|
||||
Cinema = 25,
|
||||
Vivid = 13,
|
||||
Eyecare = 17,
|
||||
}
|
||||
public static class VisualControl
|
||||
{
|
||||
public static DisplayGammaRamp? gammaRamp;
|
||||
|
||||
private static int _brightness = 100;
|
||||
private static bool _init = true;
|
||||
private static string? _splendidPath = null;
|
||||
|
||||
private static System.Timers.Timer brightnessTimer = new System.Timers.Timer(200);
|
||||
|
||||
public const int DefaultColorTemp = 50;
|
||||
|
||||
public static bool forceVisual = false;
|
||||
public static bool skipGamut = false;
|
||||
|
||||
static VisualControl()
|
||||
{
|
||||
brightnessTimer.Elapsed += BrightnessTimerTimer_Elapsed;
|
||||
}
|
||||
|
||||
public static string GetGameVisualPath()
|
||||
{
|
||||
return Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) + "\\ASUS\\GameVisual";
|
||||
}
|
||||
|
||||
public static string GetVivobookPath()
|
||||
{
|
||||
return Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) + "\\ASUS\\ASUS System Control Interface\\ASUSOptimization\\Splendid";
|
||||
}
|
||||
|
||||
public static SplendidGamut GetDefaultGamut()
|
||||
{
|
||||
return AppConfig.IsVivoZenbook() ? SplendidGamut.VivoNative : SplendidGamut.Native;
|
||||
}
|
||||
|
||||
public static Dictionary<SplendidGamut, string> GetGamutModes()
|
||||
{
|
||||
|
||||
bool isVivo = AppConfig.IsVivoZenbook();
|
||||
|
||||
Dictionary<SplendidGamut, string> _modes = new Dictionary<SplendidGamut, string>();
|
||||
|
||||
string iccPath = isVivo ? GetVivobookPath() : GetGameVisualPath();
|
||||
|
||||
if (!Directory.Exists(iccPath))
|
||||
{
|
||||
Logger.WriteLine(iccPath + " doesn't exit");
|
||||
return _modes;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
DirectoryInfo d = new DirectoryInfo(iccPath);
|
||||
FileInfo[] icms = d.GetFiles("*.icm");
|
||||
if (icms.Length == 0) return _modes;
|
||||
|
||||
_modes.Add(isVivo ? SplendidGamut.VivoNative : SplendidGamut.Native, "Gamut: Native");
|
||||
foreach (FileInfo icm in icms)
|
||||
{
|
||||
//Logger.WriteLine(icm.FullName);
|
||||
|
||||
if (icm.Name.Contains("sRGB"))
|
||||
{
|
||||
try
|
||||
{
|
||||
_modes.Add(isVivo ? SplendidGamut.VivoSRGB : SplendidGamut.sRGB, "Gamut: sRGB");
|
||||
Logger.WriteLine(icm.FullName + " sRGB");
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
if (icm.Name.Contains("DCIP3"))
|
||||
{
|
||||
try
|
||||
{
|
||||
_modes.Add(isVivo ? SplendidGamut.VivoDCIP3 : SplendidGamut.DCIP3, "Gamut: DCIP3");
|
||||
Logger.WriteLine(icm.FullName + " DCIP3");
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
if (icm.Name.Contains("DisplayP3"))
|
||||
{
|
||||
try
|
||||
{
|
||||
_modes.Add(isVivo ? SplendidGamut.ViviDisplayP3 : SplendidGamut.DisplayP3, "Gamut: DisplayP3");
|
||||
Logger.WriteLine(icm.FullName + " DisplayP3");
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
return _modes;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
//Logger.WriteLine(ex.Message);
|
||||
Logger.WriteLine(ex.ToString());
|
||||
return _modes;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static SplendidCommand GetDefaultVisualMode()
|
||||
{
|
||||
return AppConfig.IsVivoZenbook() ? SplendidCommand.VivoNormal : SplendidCommand.Default;
|
||||
}
|
||||
|
||||
public static Dictionary<SplendidCommand, string> GetVisualModes()
|
||||
{
|
||||
|
||||
if (AppConfig.IsVivoZenbook())
|
||||
{
|
||||
return new Dictionary<SplendidCommand, string>
|
||||
{
|
||||
{ SplendidCommand.VivoNormal, "Default" },
|
||||
{ SplendidCommand.VivoVivid, "Vivid" },
|
||||
{ SplendidCommand.VivoManual, "Manual" },
|
||||
{ SplendidCommand.VivoEycare, "Eyecare" },
|
||||
};
|
||||
}
|
||||
|
||||
return new Dictionary<SplendidCommand, string>
|
||||
{
|
||||
{ SplendidCommand.Default, "Default"},
|
||||
{ SplendidCommand.Racing, "Racing"},
|
||||
{ SplendidCommand.Scenery, "Scenery"},
|
||||
{ SplendidCommand.RTS, "RTS/RPG"},
|
||||
{ SplendidCommand.FPS, "FPS"},
|
||||
{ SplendidCommand.Cinema, "Cinema"},
|
||||
{ SplendidCommand.Vivid, "Vivid" },
|
||||
{ SplendidCommand.Eyecare, "Eyecare"}
|
||||
};
|
||||
}
|
||||
|
||||
public static Dictionary<int, string> GetTemperatures()
|
||||
{
|
||||
return new Dictionary<int, string>
|
||||
{
|
||||
{ 0, "Warmest"},
|
||||
{ 15, "Warmer"},
|
||||
{ 30, "Warm"},
|
||||
{ 50, "Neutral"},
|
||||
{ 70, "Cold"},
|
||||
{ 85, "Colder"},
|
||||
{ 100, "Coldest"},
|
||||
};
|
||||
}
|
||||
|
||||
public static Dictionary<int, string> GetEyeCares()
|
||||
{
|
||||
return new Dictionary<int, string>
|
||||
{
|
||||
{ 0, "0"},
|
||||
{ 1, "1"},
|
||||
{ 2, "2"},
|
||||
{ 3, "3"},
|
||||
{ 4, "4"},
|
||||
};
|
||||
}
|
||||
|
||||
public static void SetGamut(int mode = -1)
|
||||
{
|
||||
if (skipGamut) return;
|
||||
if (mode < 0) mode = (int)GetDefaultGamut();
|
||||
|
||||
AppConfig.Set("gamut", mode);
|
||||
|
||||
if (RunSplendid(SplendidCommand.GamutMode, 0, mode)) return;
|
||||
|
||||
if (_init)
|
||||
{
|
||||
_init = false;
|
||||
RunSplendid(SplendidCommand.Init);
|
||||
RunSplendid(SplendidCommand.GamutMode, 0, mode);
|
||||
}
|
||||
}
|
||||
|
||||
public static void SetVisual(SplendidCommand mode = SplendidCommand.Default, int whiteBalance = DefaultColorTemp, bool init = false)
|
||||
{
|
||||
if (mode == SplendidCommand.None) return;
|
||||
if (mode == SplendidCommand.Default && init) return; // Skip default setting on init
|
||||
|
||||
if (!forceVisual && ScreenCCD.GetHDRStatus(true)) return;
|
||||
if (!forceVisual && ScreenNative.GetRefreshRate(ScreenNative.FindLaptopScreen(true)) < 0) return;
|
||||
|
||||
AppConfig.Set("visual", (int)mode);
|
||||
AppConfig.Set("color_temp", whiteBalance);
|
||||
|
||||
if (whiteBalance != DefaultColorTemp && !init) ProcessHelper.RunAsAdmin();
|
||||
|
||||
int? balance;
|
||||
|
||||
switch (mode)
|
||||
{
|
||||
case SplendidCommand.Eyecare:
|
||||
balance = 2;
|
||||
break;
|
||||
case SplendidCommand.VivoNormal:
|
||||
case SplendidCommand.VivoVivid:
|
||||
balance = null;
|
||||
break;
|
||||
case SplendidCommand.VivoEycare:
|
||||
balance = Math.Abs(whiteBalance - 50) * 4 / 50;
|
||||
break;
|
||||
default:
|
||||
balance = whiteBalance;
|
||||
break;
|
||||
}
|
||||
|
||||
if (RunSplendid(mode, 0, balance)) return;
|
||||
|
||||
if (_init)
|
||||
{
|
||||
_init = false;
|
||||
RunSplendid(SplendidCommand.Init);
|
||||
RunSplendid(mode, 0, balance);
|
||||
}
|
||||
}
|
||||
|
||||
private static string GetSplendidPath()
|
||||
{
|
||||
if (_splendidPath == null)
|
||||
{
|
||||
try
|
||||
{
|
||||
using (var searcher = new ManagementObjectSearcher(@"Select * from Win32_SystemDriver WHERE Name='ATKWMIACPIIO'"))
|
||||
{
|
||||
foreach (var driver in searcher.Get())
|
||||
{
|
||||
string path = driver["PathName"].ToString();
|
||||
_splendidPath = Path.GetDirectoryName(path) + "\\AsusSplendid.exe";
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Logger.WriteLine(ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
return _splendidPath;
|
||||
}
|
||||
|
||||
private static bool RunSplendid(SplendidCommand command, int? param1 = null, int? param2 = null)
|
||||
{
|
||||
var splendid = GetSplendidPath();
|
||||
bool isVivo = AppConfig.IsVivoZenbook();
|
||||
bool isSplenddid = File.Exists(splendid);
|
||||
|
||||
if (isSplenddid)
|
||||
{
|
||||
if (command == SplendidCommand.DimmingVisual && isVivo) command = SplendidCommand.DimmingVivo;
|
||||
var result = ProcessHelper.RunCMD(splendid, (int)command + " " + param1 + " " + param2);
|
||||
if (result.Contains("file not exist") || (result.Length == 0 && !isVivo)) return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private static void BrightnessTimerTimer_Elapsed(object? sender, System.Timers.ElapsedEventArgs e)
|
||||
{
|
||||
brightnessTimer.Stop();
|
||||
|
||||
|
||||
if (RunSplendid(SplendidCommand.DimmingVisual, 0, (int)(40 + _brightness * 0.6))) return;
|
||||
|
||||
if (_init)
|
||||
{
|
||||
_init = false;
|
||||
RunSplendid(SplendidCommand.Init);
|
||||
RunSplendid(SplendidCommand.Init, 4);
|
||||
if (RunSplendid(SplendidCommand.DimmingVisual, 0, (int)(40 + _brightness * 0.6))) return;
|
||||
}
|
||||
|
||||
// GammaRamp Fallback
|
||||
SetGamma(_brightness);
|
||||
}
|
||||
|
||||
public static int SetBrightness(int brightness = -1, int delta = 0)
|
||||
{
|
||||
if (!AppConfig.IsOLED()) return -1;
|
||||
|
||||
if (brightness < 0) brightness = AppConfig.Get("brightness", 100);
|
||||
|
||||
_brightness = Math.Max(0, Math.Min(100, brightness + delta));
|
||||
AppConfig.Set("brightness", _brightness);
|
||||
|
||||
brightnessTimer.Start();
|
||||
|
||||
Program.settingsForm.VisualiseBrightness();
|
||||
//if (brightness < 100) ResetGamut();
|
||||
|
||||
return _brightness;
|
||||
}
|
||||
|
||||
public static void ResetGamut()
|
||||
{
|
||||
int defaultGamut = (int)GetDefaultGamut();
|
||||
|
||||
if (AppConfig.Get("gamut") != defaultGamut)
|
||||
{
|
||||
skipGamut = true;
|
||||
AppConfig.Set("gamut", defaultGamut);
|
||||
Program.settingsForm.VisualiseGamut();
|
||||
skipGamut = false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static void SetGamma(int brightness = 100)
|
||||
{
|
||||
var bright = Math.Round((float)brightness / 200 + 0.5, 2);
|
||||
|
||||
var screenName = ScreenNative.FindLaptopScreen();
|
||||
if (screenName is null) return;
|
||||
|
||||
try
|
||||
{
|
||||
var handle = ScreenNative.CreateDC(screenName, screenName, null, IntPtr.Zero);
|
||||
if (gammaRamp is null)
|
||||
{
|
||||
var gammaDump = new GammaRamp();
|
||||
if (ScreenNative.GetDeviceGammaRamp(handle, ref gammaDump))
|
||||
{
|
||||
gammaRamp = new DisplayGammaRamp(gammaDump);
|
||||
//Logger.WriteLine("Gamma R: " + string.Join("-", gammaRamp.Red));
|
||||
//Logger.WriteLine("Gamma G: " + string.Join("-", gammaRamp.Green));
|
||||
//Logger.WriteLine("Gamma B: " + string.Join("-", gammaRamp.Blue));
|
||||
}
|
||||
}
|
||||
|
||||
if (gammaRamp is null || !gammaRamp.IsOriginal())
|
||||
{
|
||||
Logger.WriteLine("Not default Gamma");
|
||||
gammaRamp = new DisplayGammaRamp();
|
||||
}
|
||||
|
||||
var ramp = gammaRamp.AsBrightnessRamp(bright);
|
||||
bool result = ScreenNative.SetDeviceGammaRamp(handle, ref ramp);
|
||||
|
||||
Logger.WriteLine("Gamma " + bright.ToString() + ": " + result);
|
||||
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Logger.WriteLine(ex.ToString());
|
||||
}
|
||||
|
||||
//ScreenBrightness.Set(60 + (int)(40 * bright));
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
860
app/Extra.Designer.cs
generated
860
app/Extra.Designer.cs
generated
File diff suppressed because it is too large
Load Diff
200
app/Extra.cs
200
app/Extra.cs
@@ -13,7 +13,6 @@ namespace GHelper
|
||||
{
|
||||
|
||||
ScreenControl screenControl = new ScreenControl();
|
||||
ModeControl modeControl = new ModeControl();
|
||||
ClamshellModeControl clamshellControl = new ClamshellModeControl();
|
||||
|
||||
const string EMPTY = "--------------";
|
||||
@@ -31,10 +30,13 @@ namespace GHelper
|
||||
{"aura", Properties.Strings.ToggleAura},
|
||||
{"performance", Properties.Strings.PerformanceMode},
|
||||
{"screen", Properties.Strings.ToggleScreen},
|
||||
{"lock", Properties.Strings.LockScreen},
|
||||
{"miniled", Properties.Strings.ToggleMiniled},
|
||||
{"fnlock", Properties.Strings.ToggleFnLock},
|
||||
{"brightness_down", Properties.Strings.BrightnessDown},
|
||||
{"brightness_up", Properties.Strings.BrightnessUp},
|
||||
{"visual", Properties.Strings.VisualMode},
|
||||
{"touchscreen", Properties.Strings.ToggleTouchscreen },
|
||||
{"ghelper", Properties.Strings.OpenGHelper},
|
||||
{"custom", Properties.Strings.Custom}
|
||||
};
|
||||
@@ -45,6 +47,11 @@ namespace GHelper
|
||||
customActions.Add("screenpad_up", Properties.Strings.ScreenPadUp);
|
||||
}
|
||||
|
||||
if (AppConfig.IsAlly())
|
||||
{
|
||||
customActions.Add("controller", "Controller Mode");
|
||||
}
|
||||
|
||||
switch (name)
|
||||
{
|
||||
case "m1":
|
||||
@@ -68,6 +75,9 @@ namespace GHelper
|
||||
customActions[""] = Properties.Strings.ToggleFnLock;
|
||||
customActions.Remove("fnlock");
|
||||
break;
|
||||
case "fnv":
|
||||
customActions[""] = EMPTY;
|
||||
break;
|
||||
case "fne":
|
||||
customActions[""] = "Calculator";
|
||||
break;
|
||||
@@ -119,6 +129,7 @@ namespace GHelper
|
||||
checkBoot.Text = Properties.Strings.Boot;
|
||||
checkShutdown.Text = Properties.Strings.Shutdown;
|
||||
checkBootSound.Text = Properties.Strings.BootSound;
|
||||
checkStatusLed.Text = Properties.Strings.LEDStatusIndicators;
|
||||
|
||||
labelSpeed.Text = Properties.Strings.AnimationSpeed;
|
||||
//labelBrightness.Text = Properties.Strings.Brightness;
|
||||
@@ -126,6 +137,7 @@ namespace GHelper
|
||||
labelBacklightTimeout.Text = Properties.Strings.BacklightTimeout;
|
||||
//labelBacklightTimeoutPlugged.Text = Properties.Strings.BacklightTimeoutPlugged;
|
||||
|
||||
checkGPUFix.Text = Properties.Strings.EnableGPUOnShutdown;
|
||||
checkNoOverdrive.Text = Properties.Strings.DisableOverdrive;
|
||||
checkTopmost.Text = Properties.Strings.WindowTop;
|
||||
checkUSBC.Text = Properties.Strings.OptimizedUSBC;
|
||||
@@ -137,6 +149,7 @@ namespace GHelper
|
||||
labelBacklightLogo.Text = Properties.Strings.Logo;
|
||||
|
||||
checkGpuApps.Text = Properties.Strings.KillGpuApps;
|
||||
checkBWIcon.Text = Properties.Strings.BWTrayIcon;
|
||||
labelHibernateAfter.Text = Properties.Strings.HibernateAfter;
|
||||
|
||||
labelAPUMem.Text = Properties.Strings.APUMemory;
|
||||
@@ -155,6 +168,7 @@ namespace GHelper
|
||||
comboM4.AccessibleName = "M4 Action";
|
||||
comboFNF4.AccessibleName = "Fn+F4 Action";
|
||||
comboFNC.AccessibleName = "Fn+C Action";
|
||||
comboFNV.AccessibleName = "Fn+V Action";
|
||||
comboFNE.AccessibleName = "Fn+Numpad Action";
|
||||
|
||||
numericBacklightPluggedTime.AccessibleName = Properties.Strings.BacklightTimeoutPlugged;
|
||||
@@ -189,7 +203,7 @@ namespace GHelper
|
||||
labelFNF4.Visible = comboFNF4.Visible = textFNF4.Visible = false;
|
||||
}
|
||||
|
||||
if (AppConfig.NoAura())
|
||||
if (AppConfig.MediaKeys())
|
||||
{
|
||||
labelFNF4.Visible = comboFNF4.Visible = textFNF4.Visible = false;
|
||||
}
|
||||
@@ -199,12 +213,19 @@ namespace GHelper
|
||||
labelFNE.Visible = comboFNE.Visible = textFNE.Visible = false;
|
||||
}
|
||||
|
||||
if (AppConfig.IsNoFNV())
|
||||
{
|
||||
labelFNV.Visible = comboFNV.Visible = textFNV.Visible = false;
|
||||
}
|
||||
|
||||
if (Program.acpi.DeviceGet(AsusACPI.GPUEco) < 0)
|
||||
{
|
||||
checkGpuApps.Visible = false;
|
||||
checkUSBC.Visible = false;
|
||||
}
|
||||
|
||||
checkNoOverdrive.Visible = Program.acpi.IsOverdriveSupported();
|
||||
|
||||
// Change text and hide irrelevant options on the ROG Ally,
|
||||
// which is a bit of a special case piece of hardware.
|
||||
if (AppConfig.IsAlly())
|
||||
@@ -213,7 +234,7 @@ namespace GHelper
|
||||
labelM2.Visible = comboM2.Visible = textM2.Visible = false;
|
||||
|
||||
// Re-label M3 and M4 and FNF4 to match the front labels.
|
||||
labelM3.Text = "Ctrl Center";
|
||||
labelM3.Text = "Cmd Center";
|
||||
labelM4.Text = "ROG";
|
||||
labelFNF4.Text = "Back Paddles";
|
||||
|
||||
@@ -222,12 +243,17 @@ namespace GHelper
|
||||
comboFNC.Visible = false;
|
||||
textFNC.Visible = false;
|
||||
|
||||
labelFNV.Visible = false;
|
||||
comboFNV.Visible = false;
|
||||
textFNV.Visible = false;
|
||||
|
||||
SetKeyCombo(comboM3, textM3, "cc");
|
||||
SetKeyCombo(comboM4, textM4, "m4");
|
||||
SetKeyCombo(comboFNF4, textFNF4, "paddle");
|
||||
|
||||
checkGpuApps.Visible = false;
|
||||
checkUSBC.Visible = false;
|
||||
checkAutoToggleClamshellMode.Visible = false;
|
||||
|
||||
int apuMem = Program.acpi.GetAPUMem();
|
||||
if (apuMem >= 0)
|
||||
@@ -250,6 +276,7 @@ namespace GHelper
|
||||
SetKeyCombo(comboFNF4, textFNF4, "fnf4");
|
||||
|
||||
SetKeyCombo(comboFNC, textFNC, "fnc");
|
||||
SetKeyCombo(comboFNV, textFNV, "fnv");
|
||||
SetKeyCombo(comboFNE, textFNE, "fne");
|
||||
}
|
||||
|
||||
@@ -271,77 +298,88 @@ namespace GHelper
|
||||
|
||||
// Keyboard
|
||||
checkAwake.Checked = AppConfig.IsNotFalse("keyboard_awake");
|
||||
checkBattery.Checked = AppConfig.IsOnBattery("keyboard_awake");
|
||||
checkBoot.Checked = AppConfig.IsNotFalse("keyboard_boot");
|
||||
checkSleep.Checked = AppConfig.IsNotFalse("keyboard_sleep");
|
||||
checkShutdown.Checked = AppConfig.IsNotFalse("keyboard_shutdown");
|
||||
|
||||
// Lightbar
|
||||
checkAwakeBar.Checked = AppConfig.IsNotFalse("keyboard_awake_bar");
|
||||
checkBatteryBar.Checked = AppConfig.IsOnBattery("keyboard_awake_bar");
|
||||
checkBootBar.Checked = AppConfig.IsNotFalse("keyboard_boot_bar");
|
||||
checkSleepBar.Checked = AppConfig.IsNotFalse("keyboard_sleep_bar");
|
||||
checkShutdownBar.Checked = AppConfig.IsNotFalse("keyboard_shutdown_bar");
|
||||
|
||||
// Lid
|
||||
checkAwakeLid.Checked = AppConfig.IsNotFalse("keyboard_awake_lid");
|
||||
checkBatteryLid.Checked = AppConfig.IsOnBattery("keyboard_awake_lid");
|
||||
checkBootLid.Checked = AppConfig.IsNotFalse("keyboard_boot_lid");
|
||||
checkSleepLid.Checked = AppConfig.IsNotFalse("keyboard_sleep_lid");
|
||||
checkShutdownLid.Checked = AppConfig.IsNotFalse("keyboard_shutdown_lid");
|
||||
|
||||
// Logo
|
||||
checkAwakeLogo.Checked = AppConfig.IsNotFalse("keyboard_awake_logo");
|
||||
checkBatteryLogo.Checked = AppConfig.IsOnBattery("keyboard_awake_logo");
|
||||
checkBootLogo.Checked = AppConfig.IsNotFalse("keyboard_boot_logo");
|
||||
checkSleepLogo.Checked = AppConfig.IsNotFalse("keyboard_sleep_logo");
|
||||
checkShutdownLogo.Checked = AppConfig.IsNotFalse("keyboard_shutdown_logo");
|
||||
|
||||
checkAwake.CheckedChanged += CheckPower_CheckedChanged;
|
||||
checkBattery.CheckedChanged += CheckPower_CheckedChanged;
|
||||
checkBoot.CheckedChanged += CheckPower_CheckedChanged;
|
||||
checkSleep.CheckedChanged += CheckPower_CheckedChanged;
|
||||
checkShutdown.CheckedChanged += CheckPower_CheckedChanged;
|
||||
|
||||
checkAwakeBar.CheckedChanged += CheckPower_CheckedChanged;
|
||||
checkBatteryBar.CheckedChanged += CheckPower_CheckedChanged;
|
||||
checkBootBar.CheckedChanged += CheckPower_CheckedChanged;
|
||||
checkSleepBar.CheckedChanged += CheckPower_CheckedChanged;
|
||||
checkShutdownBar.CheckedChanged += CheckPower_CheckedChanged;
|
||||
|
||||
checkAwakeLid.CheckedChanged += CheckPower_CheckedChanged;
|
||||
checkBatteryLid.CheckedChanged += CheckPower_CheckedChanged;
|
||||
checkBootLid.CheckedChanged += CheckPower_CheckedChanged;
|
||||
checkSleepLid.CheckedChanged += CheckPower_CheckedChanged;
|
||||
checkShutdownLid.CheckedChanged += CheckPower_CheckedChanged;
|
||||
|
||||
checkAwakeLogo.CheckedChanged += CheckPower_CheckedChanged;
|
||||
checkBatteryLogo.CheckedChanged += CheckPower_CheckedChanged;
|
||||
checkBootLogo.CheckedChanged += CheckPower_CheckedChanged;
|
||||
checkSleepLogo.CheckedChanged += CheckPower_CheckedChanged;
|
||||
checkShutdownLogo.CheckedChanged += CheckPower_CheckedChanged;
|
||||
|
||||
if (!AppConfig.IsStrix())
|
||||
if (!AppConfig.IsBacklightZones() || AppConfig.IsStrixLimitedRGB() || AppConfig.IsARCNM())
|
||||
{
|
||||
labelBacklightBar.Visible = false;
|
||||
checkAwakeBar.Visible = false;
|
||||
checkBootBar.Visible = false;
|
||||
checkSleepBar.Visible = false;
|
||||
checkShutdownBar.Visible = false;
|
||||
|
||||
}
|
||||
if (!AppConfig.IsStrixLimitedRGB())
|
||||
{
|
||||
labelBacklightBar.Visible = false;
|
||||
checkAwakeBar.Visible = false;
|
||||
checkBatteryBar.Visible = false;
|
||||
checkBootBar.Visible = false;
|
||||
checkSleepBar.Visible = false;
|
||||
checkShutdownBar.Visible = false;
|
||||
}
|
||||
|
||||
if ((!AppConfig.IsStrix() && !AppConfig.IsZ13()) || AppConfig.IsStrixLimitedRGB() || AppConfig.IsARCNM())
|
||||
{
|
||||
labelBacklightLid.Visible = false;
|
||||
checkAwakeLid.Visible = false;
|
||||
checkBatteryLid.Visible = false;
|
||||
checkBootLid.Visible = false;
|
||||
checkSleepLid.Visible = false;
|
||||
checkShutdownLid.Visible = false;
|
||||
|
||||
labelBacklightLogo.Visible = false;
|
||||
checkAwakeLogo.Visible = false;
|
||||
checkBatteryLogo.Visible = false;
|
||||
checkBootLogo.Visible = false;
|
||||
checkSleepLogo.Visible = false;
|
||||
checkShutdownLogo.Visible = false;
|
||||
|
||||
}
|
||||
|
||||
if (!AppConfig.IsStrix() && !AppConfig.IsZ13())
|
||||
if (!AppConfig.IsBacklightZones())
|
||||
{
|
||||
labelBacklightKeyboard.Visible = false;
|
||||
checkBattery.Visible = false;
|
||||
}
|
||||
|
||||
//checkAutoToggleClamshellMode.Visible = clamshellControl.IsExternalDisplayConnected();
|
||||
@@ -351,7 +389,7 @@ namespace GHelper
|
||||
checkTopmost.Checked = AppConfig.Is("topmost");
|
||||
checkTopmost.CheckedChanged += CheckTopmost_CheckedChanged; ;
|
||||
|
||||
checkNoOverdrive.Checked = AppConfig.Is("no_overdrive");
|
||||
checkNoOverdrive.Checked = AppConfig.IsNoOverdrive();
|
||||
checkNoOverdrive.CheckedChanged += CheckNoOverdrive_CheckedChanged;
|
||||
|
||||
checkUSBC.Checked = AppConfig.Is("optimized_usbc");
|
||||
@@ -373,9 +411,21 @@ namespace GHelper
|
||||
checkGpuApps.Checked = AppConfig.Is("kill_gpu_apps");
|
||||
checkGpuApps.CheckedChanged += CheckGpuApps_CheckedChanged;
|
||||
|
||||
checkBootSound.Checked = (Program.acpi.DeviceGet(AsusACPI.BootSound) == 1);
|
||||
int bootSound = Program.acpi.DeviceGet(AsusACPI.BootSound);
|
||||
if (bootSound < 0 || bootSound > UInt16.MaxValue) bootSound = AppConfig.Get("boot_sound", 0);
|
||||
|
||||
checkBootSound.Checked = (bootSound == 1);
|
||||
checkBootSound.CheckedChanged += CheckBootSound_CheckedChanged;
|
||||
|
||||
var statusLed = Program.acpi.DeviceGet(AsusACPI.StatusLed);
|
||||
checkStatusLed.Visible = statusLed >= 0;
|
||||
checkStatusLed.Checked = (statusLed > 0);
|
||||
checkStatusLed.CheckedChanged += CheckLEDStatus_CheckedChanged; ;
|
||||
|
||||
|
||||
checkBWIcon.Checked = AppConfig.IsBWIcon();
|
||||
checkBWIcon.CheckedChanged += CheckBWIcon_CheckedChanged;
|
||||
|
||||
pictureHelp.Click += PictureHelp_Click;
|
||||
buttonServices.Click += ButtonServices_Click;
|
||||
|
||||
@@ -385,11 +435,115 @@ namespace GHelper
|
||||
checkGPUFix.Checked = AppConfig.IsGPUFix();
|
||||
checkGPUFix.CheckedChanged += CheckGPUFix_CheckedChanged;
|
||||
|
||||
checkPerKeyRGB.Visible = AppConfig.IsPossible4ZoneRGB();
|
||||
checkPerKeyRGB.Checked = AppConfig.Is("per_key_rgb");
|
||||
checkPerKeyRGB.CheckedChanged += CheckPerKeyRGB_CheckedChanged;
|
||||
|
||||
toolTip.SetToolTip(checkAutoToggleClamshellMode, "Disable sleep on lid close when plugged in and external monitor is connected");
|
||||
|
||||
InitCores();
|
||||
InitVariBright();
|
||||
InitServices();
|
||||
InitHibernate();
|
||||
|
||||
InitACPITesting();
|
||||
|
||||
}
|
||||
|
||||
private void CheckPerKeyRGB_CheckedChanged(object? sender, EventArgs e)
|
||||
{
|
||||
AppConfig.Set("per_key_rgb", (checkPerKeyRGB.Checked ? 1 : 0));
|
||||
}
|
||||
|
||||
private void CheckLEDStatus_CheckedChanged(object? sender, EventArgs e)
|
||||
{
|
||||
Program.acpi.DeviceSet(AsusACPI.StatusLed, (checkStatusLed.Checked ? 7 : 0), "StatusLED");
|
||||
}
|
||||
|
||||
private void CheckBWIcon_CheckedChanged(object? sender, EventArgs e)
|
||||
{
|
||||
AppConfig.Set("bw_icon", (checkBWIcon.Checked ? 1 : 0));
|
||||
Program.settingsForm.VisualiseIcon();
|
||||
}
|
||||
|
||||
private void InitACPITesting()
|
||||
{
|
||||
if (!AppConfig.Is("debug")) return;
|
||||
|
||||
pictureScan.Visible = true;
|
||||
panelACPI.Visible = true;
|
||||
|
||||
textACPICommand.Text = "120098";
|
||||
textACPIParam.Text = "25";
|
||||
|
||||
buttonACPISend.Click += ButtonACPISend_Click;
|
||||
pictureScan.Click += PictureScan_Click;
|
||||
}
|
||||
|
||||
private void ButtonACPISend_Click(object? sender, EventArgs e)
|
||||
{
|
||||
try {
|
||||
int deviceID = Convert.ToInt32(textACPICommand.Text, 16);
|
||||
int status = Convert.ToInt32(textACPIParam.Text, textACPIParam.Text.Contains("x") ? 16 : 10);
|
||||
int result = Program.acpi.DeviceSet((uint)deviceID, status, "TestACPI " + deviceID.ToString("X8") + " " + status.ToString("X4"));
|
||||
labelACPITitle.Text = "ACPI DEVS Test : " + result.ToString();
|
||||
} catch (Exception ex)
|
||||
{
|
||||
Logger.WriteLine(ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
private void InitCores()
|
||||
{
|
||||
(int eCores, int pCores) = Program.acpi.GetCores();
|
||||
(int eCoresMax, int pCoresMax) = Program.acpi.GetCores(true);
|
||||
|
||||
if (eCores < 0 || pCores < 0 || eCoresMax < 0 || pCoresMax < 0)
|
||||
{
|
||||
panelCores.Visible = false;
|
||||
return;
|
||||
}
|
||||
|
||||
eCoresMax = Math.Max(8, eCoresMax);
|
||||
pCoresMax = Math.Max(6, pCoresMax);
|
||||
|
||||
panelCores.Visible = true;
|
||||
|
||||
comboCoresE.DropDownStyle = ComboBoxStyle.DropDownList;
|
||||
comboCoresP.DropDownStyle = ComboBoxStyle.DropDownList;
|
||||
|
||||
for (int i = AsusACPI.PCoreMin; i <= pCoresMax; i++) comboCoresP.Items.Add(i.ToString() + " Pcores");
|
||||
for (int i = AsusACPI.ECoreMin; i <= eCoresMax; i++) comboCoresE.Items.Add(i.ToString() + " Ecores");
|
||||
|
||||
comboCoresP.SelectedIndex = Math.Max(Math.Min(pCores - AsusACPI.PCoreMin, comboCoresP.Items.Count - 1), 0);
|
||||
comboCoresE.SelectedIndex = Math.Max(Math.Min(eCores - AsusACPI.ECoreMin, comboCoresE.Items.Count - 1), 0);
|
||||
|
||||
buttonCores.Click += ButtonCores_Click;
|
||||
|
||||
}
|
||||
|
||||
private void ButtonCores_Click(object? sender, EventArgs e)
|
||||
{
|
||||
DialogResult dialogResult = MessageBox.Show(Properties.Strings.AlertAPUMemoryRestart, Properties.Strings.AlertAPUMemoryRestartTitle, MessageBoxButtons.YesNo);
|
||||
|
||||
if (dialogResult == DialogResult.Yes)
|
||||
{
|
||||
Program.acpi.SetCores(AsusACPI.ECoreMin + comboCoresE.SelectedIndex, AsusACPI.PCoreMin + comboCoresP.SelectedIndex);
|
||||
Process.Start("shutdown", "/r /t 1");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void PictureScan_Click(object? sender, EventArgs e)
|
||||
{
|
||||
string logFile = Program.acpi.ScanRange();
|
||||
new Process
|
||||
{
|
||||
StartInfo = new ProcessStartInfo(logFile)
|
||||
{
|
||||
UseShellExecute = true
|
||||
}
|
||||
}.Start();
|
||||
}
|
||||
|
||||
private void ComboAPU_SelectedIndexChanged(object? sender, EventArgs e)
|
||||
@@ -407,7 +561,9 @@ namespace GHelper
|
||||
|
||||
private void CheckBootSound_CheckedChanged(object? sender, EventArgs e)
|
||||
{
|
||||
Program.acpi.DeviceSet(AsusACPI.BootSound, (checkBootSound.Checked ? 1 : 0), "BootSound");
|
||||
int bootSound = checkBootSound.Checked ? 1 : 0;
|
||||
Program.acpi.DeviceSet(AsusACPI.BootSound, bootSound, "BootSound");
|
||||
AppConfig.Set("boot_sound", bootSound);
|
||||
}
|
||||
|
||||
private void CheckGPUFix_CheckedChanged(object? sender, EventArgs e)
|
||||
@@ -583,7 +739,7 @@ namespace GHelper
|
||||
|
||||
private void PictureHelp_Click(object? sender, EventArgs e)
|
||||
{
|
||||
Process.Start(new ProcessStartInfo("https://github.com/seerge/g-helper#custom-hotkey-actions") { UseShellExecute = true });
|
||||
Process.Start(new ProcessStartInfo("https://github.com/seerge/g-helper/wiki/Power-user-settings#custom-hotkey-actions") { UseShellExecute = true });
|
||||
}
|
||||
|
||||
private void CheckNoOverdrive_CheckedChanged(object? sender, EventArgs e)
|
||||
@@ -621,6 +777,14 @@ namespace GHelper
|
||||
AppConfig.Set("keyboard_sleep_logo", (checkSleepLogo.Checked ? 1 : 0));
|
||||
AppConfig.Set("keyboard_shutdown_logo", (checkShutdownLogo.Checked ? 1 : 0));
|
||||
|
||||
if (AppConfig.IsBacklightZones())
|
||||
{
|
||||
AppConfig.Set("keyboard_awake_bat", (checkBattery.Checked ? 1 : 0));
|
||||
AppConfig.Set("keyboard_awake_bar_bat", (checkBatteryBar.Checked ? 1 : 0));
|
||||
AppConfig.Set("keyboard_awake_lid_bat", (checkBatteryLid.Checked ? 1 : 0));
|
||||
AppConfig.Set("keyboard_awake_logo_bat", (checkBatteryLogo.Checked ? 1 : 0));
|
||||
}
|
||||
|
||||
Aura.ApplyPower();
|
||||
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ namespace GHelper.Fan
|
||||
|
||||
public const int XGM_FAN_MAX = 72;
|
||||
|
||||
public const int INADEQUATE_MAX = 92;
|
||||
public const int INADEQUATE_MAX = 104;
|
||||
|
||||
const int FAN_COUNT = 3;
|
||||
|
||||
@@ -58,6 +58,8 @@ namespace GHelper.Fan
|
||||
if (AppConfig.ContainsModel("FA507R")) return new int[3] { 63, 57, DEFAULT_FAN_MAX };
|
||||
if (AppConfig.ContainsModel("FA507X")) return new int[3] { 63, 68, DEFAULT_FAN_MAX };
|
||||
|
||||
if (AppConfig.ContainsModel("FX607J")) return new int[3] { 74, 72, DEFAULT_FAN_MAX };
|
||||
|
||||
if (AppConfig.ContainsModel("GX650")) return new int[3] { 62, 62, DEFAULT_FAN_MAX };
|
||||
|
||||
if (AppConfig.ContainsModel("G732")) return new int[3] { 61, 60, DEFAULT_FAN_MAX };
|
||||
@@ -67,6 +69,9 @@ namespace GHelper.Fan
|
||||
|
||||
if (AppConfig.ContainsModel("GV601")) return new int[3] { 78, 59, 85 };
|
||||
|
||||
if (AppConfig.ContainsModel("GA403")) return new int[3] { 68, 68, 80 };
|
||||
if (AppConfig.ContainsModel("GU605")) return new int[3] { 62, 62, 92 };
|
||||
|
||||
return new int[3] { DEFAULT_FAN_MAX, DEFAULT_FAN_MAX, DEFAULT_FAN_MAX };
|
||||
}
|
||||
|
||||
|
||||
209
app/Fans.Designer.cs
generated
209
app/Fans.Designer.cs
generated
@@ -31,14 +31,14 @@ namespace GHelper
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
ChartArea chartArea5 = new ChartArea();
|
||||
Title title5 = new Title();
|
||||
ChartArea chartArea6 = new ChartArea();
|
||||
Title title6 = new Title();
|
||||
ChartArea chartArea7 = new ChartArea();
|
||||
Title title7 = new Title();
|
||||
ChartArea chartArea8 = new ChartArea();
|
||||
Title title8 = new Title();
|
||||
ChartArea chartArea1 = new ChartArea();
|
||||
Title title1 = new Title();
|
||||
ChartArea chartArea2 = new ChartArea();
|
||||
Title title2 = new Title();
|
||||
ChartArea chartArea3 = new ChartArea();
|
||||
Title title3 = new Title();
|
||||
ChartArea chartArea4 = new ChartArea();
|
||||
Title title4 = new Title();
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Fans));
|
||||
panelFans = new Panel();
|
||||
labelTip = new Label();
|
||||
@@ -85,6 +85,8 @@ namespace GHelper
|
||||
panelTitleTemp = new Panel();
|
||||
pictureTemp = new PictureBox();
|
||||
labelTempLimit = new Label();
|
||||
panelDownload = new Panel();
|
||||
buttonDownload = new RButton();
|
||||
panelPower = new Panel();
|
||||
panelApplyPower = new Panel();
|
||||
checkApplyPower = new RCheckBox();
|
||||
@@ -125,6 +127,10 @@ namespace GHelper
|
||||
labelGPUBoost = new Label();
|
||||
labelGPUBoostTitle = new Label();
|
||||
trackGPUBoost = new TrackBar();
|
||||
panelGPUPower = new Panel();
|
||||
labelGPUPower = new Label();
|
||||
labelGPUPowerTitle = new Label();
|
||||
trackGPUPower = new TrackBar();
|
||||
panelGPUMemory = new Panel();
|
||||
labelGPUMemory = new Label();
|
||||
labelGPUMemoryTitle = new Label();
|
||||
@@ -168,6 +174,7 @@ namespace GHelper
|
||||
((System.ComponentModel.ISupportInitialize)trackTemp).BeginInit();
|
||||
panelTitleTemp.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)pictureTemp).BeginInit();
|
||||
panelDownload.SuspendLayout();
|
||||
panelPower.SuspendLayout();
|
||||
panelApplyPower.SuspendLayout();
|
||||
panelCPU.SuspendLayout();
|
||||
@@ -191,6 +198,8 @@ namespace GHelper
|
||||
((System.ComponentModel.ISupportInitialize)trackGPUTemp).BeginInit();
|
||||
panelGPUBoost.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)trackGPUBoost).BeginInit();
|
||||
panelGPUPower.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)trackGPUPower).BeginInit();
|
||||
panelGPUMemory.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)trackGPUMemory).BeginInit();
|
||||
panelGPUCore.SuspendLayout();
|
||||
@@ -211,14 +220,13 @@ namespace GHelper
|
||||
panelFans.Controls.Add(tableFanCharts);
|
||||
panelFans.Controls.Add(panelTitleFans);
|
||||
panelFans.Controls.Add(panelApplyFans);
|
||||
panelFans.Dock = DockStyle.Left;
|
||||
panelFans.Dock = DockStyle.Fill;
|
||||
panelFans.Location = new Point(530, 0);
|
||||
panelFans.Margin = new Padding(0);
|
||||
panelFans.MaximumSize = new Size(816, 0);
|
||||
panelFans.MinimumSize = new Size(816, 0);
|
||||
panelFans.Name = "panelFans";
|
||||
panelFans.Padding = new Padding(0, 0, 10, 0);
|
||||
panelFans.Size = new Size(816, 2119);
|
||||
panelFans.Size = new Size(820, 2119);
|
||||
panelFans.TabIndex = 12;
|
||||
//
|
||||
// labelTip
|
||||
@@ -252,65 +260,65 @@ namespace GHelper
|
||||
tableFanCharts.RowStyles.Add(new RowStyle(SizeType.Percent, 25F));
|
||||
tableFanCharts.RowStyles.Add(new RowStyle(SizeType.Percent, 25F));
|
||||
tableFanCharts.RowStyles.Add(new RowStyle(SizeType.Percent, 25F));
|
||||
tableFanCharts.Size = new Size(806, 1937);
|
||||
tableFanCharts.Size = new Size(810, 1937);
|
||||
tableFanCharts.TabIndex = 36;
|
||||
//
|
||||
// chartGPU
|
||||
//
|
||||
chartArea5.Name = "ChartArea1";
|
||||
chartGPU.ChartAreas.Add(chartArea5);
|
||||
chartArea1.Name = "ChartArea1";
|
||||
chartGPU.ChartAreas.Add(chartArea1);
|
||||
chartGPU.Dock = DockStyle.Fill;
|
||||
chartGPU.Location = new Point(12, 493);
|
||||
chartGPU.Margin = new Padding(2, 10, 2, 10);
|
||||
chartGPU.Name = "chartGPU";
|
||||
chartGPU.Size = new Size(782, 463);
|
||||
chartGPU.Size = new Size(786, 463);
|
||||
chartGPU.TabIndex = 17;
|
||||
chartGPU.Text = "chartGPU";
|
||||
title5.Name = "Title1";
|
||||
chartGPU.Titles.Add(title5);
|
||||
title1.Name = "Title1";
|
||||
chartGPU.Titles.Add(title1);
|
||||
//
|
||||
// chartCPU
|
||||
//
|
||||
chartArea6.Name = "ChartArea1";
|
||||
chartCPU.ChartAreas.Add(chartArea6);
|
||||
chartArea2.Name = "ChartArea1";
|
||||
chartCPU.ChartAreas.Add(chartArea2);
|
||||
chartCPU.Dock = DockStyle.Fill;
|
||||
chartCPU.Location = new Point(12, 10);
|
||||
chartCPU.Margin = new Padding(2, 10, 2, 10);
|
||||
chartCPU.Name = "chartCPU";
|
||||
chartCPU.Size = new Size(782, 463);
|
||||
chartCPU.Size = new Size(786, 463);
|
||||
chartCPU.TabIndex = 14;
|
||||
chartCPU.Text = "chartCPU";
|
||||
title6.Name = "Title1";
|
||||
chartCPU.Titles.Add(title6);
|
||||
title2.Name = "Title1";
|
||||
chartCPU.Titles.Add(title2);
|
||||
//
|
||||
// chartXGM
|
||||
//
|
||||
chartArea7.Name = "ChartAreaXGM";
|
||||
chartXGM.ChartAreas.Add(chartArea7);
|
||||
chartArea3.Name = "ChartAreaXGM";
|
||||
chartXGM.ChartAreas.Add(chartArea3);
|
||||
chartXGM.Dock = DockStyle.Fill;
|
||||
chartXGM.Location = new Point(12, 1459);
|
||||
chartXGM.Margin = new Padding(2, 10, 2, 10);
|
||||
chartXGM.Name = "chartXGM";
|
||||
chartXGM.Size = new Size(782, 463);
|
||||
chartXGM.Size = new Size(786, 463);
|
||||
chartXGM.TabIndex = 14;
|
||||
chartXGM.Text = "chartXGM";
|
||||
title7.Name = "Title4";
|
||||
chartXGM.Titles.Add(title7);
|
||||
title3.Name = "Title4";
|
||||
chartXGM.Titles.Add(title3);
|
||||
chartXGM.Visible = false;
|
||||
//
|
||||
// chartMid
|
||||
//
|
||||
chartArea8.Name = "ChartArea3";
|
||||
chartMid.ChartAreas.Add(chartArea8);
|
||||
chartArea4.Name = "ChartArea3";
|
||||
chartMid.ChartAreas.Add(chartArea4);
|
||||
chartMid.Dock = DockStyle.Fill;
|
||||
chartMid.Location = new Point(12, 976);
|
||||
chartMid.Margin = new Padding(2, 10, 2, 10);
|
||||
chartMid.Name = "chartMid";
|
||||
chartMid.Size = new Size(782, 463);
|
||||
chartMid.Size = new Size(786, 463);
|
||||
chartMid.TabIndex = 14;
|
||||
chartMid.Text = "chartMid";
|
||||
title8.Name = "Title3";
|
||||
chartMid.Titles.Add(title8);
|
||||
title4.Name = "Title3";
|
||||
chartMid.Titles.Add(title4);
|
||||
chartMid.Visible = false;
|
||||
//
|
||||
// panelTitleFans
|
||||
@@ -325,7 +333,7 @@ namespace GHelper
|
||||
panelTitleFans.Location = new Point(0, 0);
|
||||
panelTitleFans.Margin = new Padding(4);
|
||||
panelTitleFans.Name = "panelTitleFans";
|
||||
panelTitleFans.Size = new Size(806, 66);
|
||||
panelTitleFans.Size = new Size(810, 66);
|
||||
panelTitleFans.TabIndex = 42;
|
||||
//
|
||||
// buttonRename
|
||||
@@ -337,7 +345,7 @@ namespace GHelper
|
||||
buttonRename.BorderRadius = 2;
|
||||
buttonRename.FlatStyle = FlatStyle.Flat;
|
||||
buttonRename.Image = Properties.Resources.icons8_edit_32;
|
||||
buttonRename.Location = new Point(376, 10);
|
||||
buttonRename.Location = new Point(380, 10);
|
||||
buttonRename.Margin = new Padding(4, 2, 4, 2);
|
||||
buttonRename.Name = "buttonRename";
|
||||
buttonRename.Secondary = true;
|
||||
@@ -354,7 +362,7 @@ namespace GHelper
|
||||
buttonRemove.BorderRadius = 2;
|
||||
buttonRemove.FlatStyle = FlatStyle.Flat;
|
||||
buttonRemove.Image = Properties.Resources.icons8_remove_64;
|
||||
buttonRemove.Location = new Point(322, 10);
|
||||
buttonRemove.Location = new Point(326, 10);
|
||||
buttonRemove.Margin = new Padding(4, 2, 4, 2);
|
||||
buttonRemove.Name = "buttonRemove";
|
||||
buttonRemove.Secondary = true;
|
||||
@@ -371,7 +379,7 @@ namespace GHelper
|
||||
buttonAdd.BorderRadius = 2;
|
||||
buttonAdd.FlatStyle = FlatStyle.Flat;
|
||||
buttonAdd.Image = Properties.Resources.icons8_add_64;
|
||||
buttonAdd.Location = new Point(744, 10);
|
||||
buttonAdd.Location = new Point(748, 10);
|
||||
buttonAdd.Margin = new Padding(4, 2, 4, 2);
|
||||
buttonAdd.Name = "buttonAdd";
|
||||
buttonAdd.Secondary = true;
|
||||
@@ -386,7 +394,7 @@ namespace GHelper
|
||||
comboModes.ButtonColor = Color.FromArgb(255, 255, 255);
|
||||
comboModes.FlatStyle = FlatStyle.Flat;
|
||||
comboModes.FormattingEnabled = true;
|
||||
comboModes.Location = new Point(436, 14);
|
||||
comboModes.Location = new Point(440, 14);
|
||||
comboModes.Margin = new Padding(0);
|
||||
comboModes.Name = "comboModes";
|
||||
comboModes.Size = new Size(302, 40);
|
||||
@@ -425,7 +433,7 @@ namespace GHelper
|
||||
panelApplyFans.Location = new Point(0, 2003);
|
||||
panelApplyFans.Margin = new Padding(4);
|
||||
panelApplyFans.Name = "panelApplyFans";
|
||||
panelApplyFans.Size = new Size(806, 116);
|
||||
panelApplyFans.Size = new Size(810, 116);
|
||||
panelApplyFans.TabIndex = 43;
|
||||
//
|
||||
// buttonCalibrate
|
||||
@@ -461,7 +469,7 @@ namespace GHelper
|
||||
checkApplyFans.Anchor = AnchorStyles.Bottom | AnchorStyles.Right;
|
||||
checkApplyFans.AutoSize = true;
|
||||
checkApplyFans.BackColor = SystemColors.ControlLight;
|
||||
checkApplyFans.Location = new Point(450, 42);
|
||||
checkApplyFans.Location = new Point(454, 42);
|
||||
checkApplyFans.Margin = new Padding(0);
|
||||
checkApplyFans.Name = "checkApplyFans";
|
||||
checkApplyFans.Padding = new Padding(16, 6, 16, 6);
|
||||
@@ -528,10 +536,11 @@ namespace GHelper
|
||||
panelAdvanced.Controls.Add(panelTitleAdvanced);
|
||||
panelAdvanced.Controls.Add(panelTemperature);
|
||||
panelAdvanced.Controls.Add(panelTitleTemp);
|
||||
panelAdvanced.Controls.Add(panelDownload);
|
||||
panelAdvanced.Dock = DockStyle.Top;
|
||||
panelAdvanced.Location = new Point(10, 1644);
|
||||
panelAdvanced.Location = new Point(10, 1768);
|
||||
panelAdvanced.Name = "panelAdvanced";
|
||||
panelAdvanced.Size = new Size(520, 888);
|
||||
panelAdvanced.Size = new Size(520, 992);
|
||||
panelAdvanced.TabIndex = 14;
|
||||
panelAdvanced.Visible = false;
|
||||
//
|
||||
@@ -540,7 +549,7 @@ namespace GHelper
|
||||
panelAdvancedAlways.AutoSize = true;
|
||||
panelAdvancedAlways.Controls.Add(checkApplyUV);
|
||||
panelAdvancedAlways.Dock = DockStyle.Top;
|
||||
panelAdvancedAlways.Location = new Point(0, 827);
|
||||
panelAdvancedAlways.Location = new Point(0, 931);
|
||||
panelAdvancedAlways.Name = "panelAdvancedAlways";
|
||||
panelAdvancedAlways.Padding = new Padding(16, 0, 16, 15);
|
||||
panelAdvancedAlways.Size = new Size(520, 61);
|
||||
@@ -566,7 +575,7 @@ namespace GHelper
|
||||
panelAdvancedApply.AutoSize = true;
|
||||
panelAdvancedApply.Controls.Add(buttonApplyAdvanced);
|
||||
panelAdvancedApply.Dock = DockStyle.Top;
|
||||
panelAdvancedApply.Location = new Point(0, 747);
|
||||
panelAdvancedApply.Location = new Point(0, 851);
|
||||
panelAdvancedApply.Name = "panelAdvancedApply";
|
||||
panelAdvancedApply.Padding = new Padding(15);
|
||||
panelAdvancedApply.Size = new Size(520, 80);
|
||||
@@ -595,7 +604,7 @@ namespace GHelper
|
||||
labelRisky.BackColor = Color.IndianRed;
|
||||
labelRisky.Dock = DockStyle.Top;
|
||||
labelRisky.ForeColor = SystemColors.ControlLightLight;
|
||||
labelRisky.Location = new Point(0, 504);
|
||||
labelRisky.Location = new Point(0, 608);
|
||||
labelRisky.Margin = new Padding(0);
|
||||
labelRisky.Name = "labelRisky";
|
||||
labelRisky.Padding = new Padding(10, 10, 10, 5);
|
||||
@@ -611,7 +620,7 @@ namespace GHelper
|
||||
panelUViGPU.Controls.Add(labelLeftUViGPU);
|
||||
panelUViGPU.Controls.Add(trackUViGPU);
|
||||
panelUViGPU.Dock = DockStyle.Top;
|
||||
panelUViGPU.Location = new Point(0, 380);
|
||||
panelUViGPU.Location = new Point(0, 484);
|
||||
panelUViGPU.Margin = new Padding(4);
|
||||
panelUViGPU.MaximumSize = new Size(0, 124);
|
||||
panelUViGPU.Name = "panelUViGPU";
|
||||
@@ -659,7 +668,7 @@ namespace GHelper
|
||||
panelUV.Controls.Add(labelLeftUV);
|
||||
panelUV.Controls.Add(trackUV);
|
||||
panelUV.Dock = DockStyle.Top;
|
||||
panelUV.Location = new Point(0, 256);
|
||||
panelUV.Location = new Point(0, 360);
|
||||
panelUV.Margin = new Padding(4);
|
||||
panelUV.MaximumSize = new Size(0, 124);
|
||||
panelUV.Name = "panelUV";
|
||||
@@ -704,7 +713,7 @@ namespace GHelper
|
||||
panelTitleAdvanced.Controls.Add(pictureUV);
|
||||
panelTitleAdvanced.Controls.Add(labelTitleUV);
|
||||
panelTitleAdvanced.Dock = DockStyle.Top;
|
||||
panelTitleAdvanced.Location = new Point(0, 190);
|
||||
panelTitleAdvanced.Location = new Point(0, 294);
|
||||
panelTitleAdvanced.Name = "panelTitleAdvanced";
|
||||
panelTitleAdvanced.Size = new Size(520, 66);
|
||||
panelTitleAdvanced.TabIndex = 48;
|
||||
@@ -740,7 +749,7 @@ namespace GHelper
|
||||
panelTemperature.Controls.Add(labelLeftTemp);
|
||||
panelTemperature.Controls.Add(trackTemp);
|
||||
panelTemperature.Dock = DockStyle.Top;
|
||||
panelTemperature.Location = new Point(0, 66);
|
||||
panelTemperature.Location = new Point(0, 170);
|
||||
panelTemperature.Margin = new Padding(4);
|
||||
panelTemperature.MaximumSize = new Size(0, 124);
|
||||
panelTemperature.Name = "panelTemperature";
|
||||
@@ -785,7 +794,7 @@ namespace GHelper
|
||||
panelTitleTemp.Controls.Add(pictureTemp);
|
||||
panelTitleTemp.Controls.Add(labelTempLimit);
|
||||
panelTitleTemp.Dock = DockStyle.Top;
|
||||
panelTitleTemp.Location = new Point(0, 0);
|
||||
panelTitleTemp.Location = new Point(0, 104);
|
||||
panelTitleTemp.Name = "panelTitleTemp";
|
||||
panelTitleTemp.Size = new Size(520, 66);
|
||||
panelTitleTemp.TabIndex = 50;
|
||||
@@ -813,6 +822,38 @@ namespace GHelper
|
||||
labelTempLimit.TabIndex = 47;
|
||||
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.AutoSize = true;
|
||||
@@ -828,7 +869,7 @@ namespace GHelper
|
||||
panelPower.Controls.Add(panelPowerMode);
|
||||
panelPower.Controls.Add(panelPowerModeTItle);
|
||||
panelPower.Dock = DockStyle.Top;
|
||||
panelPower.Location = new Point(10, 764);
|
||||
panelPower.Location = new Point(10, 888);
|
||||
panelPower.Margin = new Padding(4);
|
||||
panelPower.Name = "panelPower";
|
||||
panelPower.Size = new Size(520, 880);
|
||||
@@ -1201,6 +1242,7 @@ namespace GHelper
|
||||
panelGPU.AutoSize = true;
|
||||
panelGPU.Controls.Add(panelGPUTemp);
|
||||
panelGPU.Controls.Add(panelGPUBoost);
|
||||
panelGPU.Controls.Add(panelGPUPower);
|
||||
panelGPU.Controls.Add(panelGPUMemory);
|
||||
panelGPU.Controls.Add(panelGPUCore);
|
||||
panelGPU.Controls.Add(panelGPUClockLimit);
|
||||
@@ -1210,7 +1252,7 @@ namespace GHelper
|
||||
panelGPU.Margin = new Padding(4);
|
||||
panelGPU.Name = "panelGPU";
|
||||
panelGPU.Padding = new Padding(0, 0, 0, 18);
|
||||
panelGPU.Size = new Size(520, 698);
|
||||
panelGPU.Size = new Size(520, 822);
|
||||
panelGPU.TabIndex = 44;
|
||||
panelGPU.Visible = false;
|
||||
//
|
||||
@@ -1222,7 +1264,7 @@ namespace GHelper
|
||||
panelGPUTemp.Controls.Add(labelGPUTempTitle);
|
||||
panelGPUTemp.Controls.Add(trackGPUTemp);
|
||||
panelGPUTemp.Dock = DockStyle.Top;
|
||||
panelGPUTemp.Location = new Point(0, 556);
|
||||
panelGPUTemp.Location = new Point(0, 680);
|
||||
panelGPUTemp.Margin = new Padding(4);
|
||||
panelGPUTemp.MaximumSize = new Size(0, 124);
|
||||
panelGPUTemp.Name = "panelGPUTemp";
|
||||
@@ -1271,7 +1313,7 @@ namespace GHelper
|
||||
panelGPUBoost.Controls.Add(labelGPUBoostTitle);
|
||||
panelGPUBoost.Controls.Add(trackGPUBoost);
|
||||
panelGPUBoost.Dock = DockStyle.Top;
|
||||
panelGPUBoost.Location = new Point(0, 432);
|
||||
panelGPUBoost.Location = new Point(0, 556);
|
||||
panelGPUBoost.Margin = new Padding(4);
|
||||
panelGPUBoost.MaximumSize = new Size(0, 124);
|
||||
panelGPUBoost.Name = "panelGPUBoost";
|
||||
@@ -1312,6 +1354,55 @@ namespace GHelper
|
||||
trackGPUBoost.TickStyle = TickStyle.TopLeft;
|
||||
trackGPUBoost.Value = 25;
|
||||
//
|
||||
// panelGPUPower
|
||||
//
|
||||
panelGPUPower.AutoSize = true;
|
||||
panelGPUPower.AutoSizeMode = AutoSizeMode.GrowAndShrink;
|
||||
panelGPUPower.Controls.Add(labelGPUPower);
|
||||
panelGPUPower.Controls.Add(labelGPUPowerTitle);
|
||||
panelGPUPower.Controls.Add(trackGPUPower);
|
||||
panelGPUPower.Dock = DockStyle.Top;
|
||||
panelGPUPower.Location = new Point(0, 432);
|
||||
panelGPUPower.Margin = new Padding(4);
|
||||
panelGPUPower.MaximumSize = new Size(0, 124);
|
||||
panelGPUPower.Name = "panelGPUPower";
|
||||
panelGPUPower.Size = new Size(520, 124);
|
||||
panelGPUPower.TabIndex = 49;
|
||||
//
|
||||
// labelGPUPower
|
||||
//
|
||||
labelGPUPower.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
|
||||
labelGPUPower.Location = new Point(374, 14);
|
||||
labelGPUPower.Margin = new Padding(4, 0, 4, 0);
|
||||
labelGPUPower.Name = "labelGPUPower";
|
||||
labelGPUPower.Size = new Size(124, 32);
|
||||
labelGPUPower.TabIndex = 44;
|
||||
labelGPUPower.Text = "105W";
|
||||
labelGPUPower.TextAlign = ContentAlignment.TopRight;
|
||||
//
|
||||
// labelGPUPowerTitle
|
||||
//
|
||||
labelGPUPowerTitle.AutoSize = true;
|
||||
labelGPUPowerTitle.Location = new Point(10, 14);
|
||||
labelGPUPowerTitle.Margin = new Padding(4, 0, 4, 0);
|
||||
labelGPUPowerTitle.Name = "labelGPUPowerTitle";
|
||||
labelGPUPowerTitle.Size = new Size(130, 32);
|
||||
labelGPUPowerTitle.TabIndex = 43;
|
||||
labelGPUPowerTitle.Text = "GPU Power";
|
||||
//
|
||||
// trackGPUPower
|
||||
//
|
||||
trackGPUPower.Location = new Point(6, 48);
|
||||
trackGPUPower.Margin = new Padding(4, 2, 4, 2);
|
||||
trackGPUPower.Maximum = 25;
|
||||
trackGPUPower.Minimum = 5;
|
||||
trackGPUPower.Name = "trackGPUPower";
|
||||
trackGPUPower.Size = new Size(496, 90);
|
||||
trackGPUPower.TabIndex = 42;
|
||||
trackGPUPower.TickFrequency = 5;
|
||||
trackGPUPower.TickStyle = TickStyle.TopLeft;
|
||||
trackGPUPower.Value = 25;
|
||||
//
|
||||
// panelGPUMemory
|
||||
//
|
||||
panelGPUMemory.AutoSize = true;
|
||||
@@ -1593,7 +1684,6 @@ namespace GHelper
|
||||
Controls.Add(panelFans);
|
||||
Controls.Add(panelSliders);
|
||||
Margin = new Padding(4, 2, 4, 2);
|
||||
MaximizeBox = false;
|
||||
MinimizeBox = false;
|
||||
MinimumSize = new Size(26, 1100);
|
||||
Name = "Fans";
|
||||
@@ -1634,6 +1724,8 @@ namespace GHelper
|
||||
panelTitleTemp.ResumeLayout(false);
|
||||
panelTitleTemp.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)pictureTemp).EndInit();
|
||||
panelDownload.ResumeLayout(false);
|
||||
panelDownload.PerformLayout();
|
||||
panelPower.ResumeLayout(false);
|
||||
panelPower.PerformLayout();
|
||||
panelApplyPower.ResumeLayout(false);
|
||||
@@ -1668,6 +1760,9 @@ namespace GHelper
|
||||
panelGPUBoost.ResumeLayout(false);
|
||||
panelGPUBoost.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)trackGPUBoost).EndInit();
|
||||
panelGPUPower.ResumeLayout(false);
|
||||
panelGPUPower.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)trackGPUPower).EndInit();
|
||||
panelGPUMemory.ResumeLayout(false);
|
||||
panelGPUMemory.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)trackGPUMemory).EndInit();
|
||||
@@ -1793,5 +1888,11 @@ namespace GHelper
|
||||
private Label labelSlow;
|
||||
private Label labelLeftSlow;
|
||||
private TrackBar trackSlow;
|
||||
private Panel panelDownload;
|
||||
private RButton buttonDownload;
|
||||
private Panel panelGPUPower;
|
||||
private Label labelGPUPower;
|
||||
private Label labelGPUPowerTitle;
|
||||
private TrackBar trackGPUPower;
|
||||
}
|
||||
}
|
||||
291
app/Fans.cs
291
app/Fans.cs
@@ -31,6 +31,9 @@ namespace GHelper
|
||||
|
||||
FanSensorControl fanSensorControl;
|
||||
|
||||
static int gpuPowerBase = 0;
|
||||
static bool isGPUPower => gpuPowerBase > 0;
|
||||
|
||||
public Fans()
|
||||
{
|
||||
|
||||
@@ -46,7 +49,7 @@ namespace GHelper
|
||||
labelPowerLimits.Text = Properties.Strings.PowerLimits;
|
||||
checkApplyPower.Text = Properties.Strings.ApplyPowerLimits;
|
||||
|
||||
labelFans.Text = Properties.Strings.FanCurves;
|
||||
labelFans.Text = "BIOS " + Properties.Strings.FanCurves;
|
||||
labelBoost.Text = Properties.Strings.CPUBoost;
|
||||
buttonReset.Text = Properties.Strings.FactoryDefaults;
|
||||
checkApplyFans.Text = Properties.Strings.ApplyFanCurve;
|
||||
@@ -57,6 +60,7 @@ namespace GHelper
|
||||
labelGPUMemoryTitle.Text = Properties.Strings.GPUMemoryClockOffset;
|
||||
labelGPUBoostTitle.Text = Properties.Strings.GPUBoost;
|
||||
labelGPUTempTitle.Text = Properties.Strings.GPUTempTarget;
|
||||
labelGPUPowerTitle.Text = Properties.Strings.GPUPower;
|
||||
|
||||
labelRisky.Text = Properties.Strings.UndervoltingRisky;
|
||||
buttonApplyAdvanced.Text = Properties.Strings.Apply;
|
||||
@@ -69,8 +73,6 @@ namespace GHelper
|
||||
labelTip.Visible = false;
|
||||
labelTip.BackColor = Color.Transparent;
|
||||
|
||||
FormClosing += Fans_FormClosing;
|
||||
|
||||
seriesCPU = chartCPU.Series.Add("CPU");
|
||||
seriesGPU = chartGPU.Series.Add("GPU");
|
||||
seriesMid = chartMid.Series.Add("Mid");
|
||||
@@ -116,16 +118,21 @@ namespace GHelper
|
||||
trackFast.Maximum = AsusACPI.MaxTotal;
|
||||
trackFast.Minimum = AsusACPI.MinTotal;
|
||||
|
||||
trackFast.Scroll += TrackPower_Scroll;
|
||||
trackCPU.Scroll += TrackPower_Scroll;
|
||||
trackTotal.Scroll += TrackPower_Scroll;
|
||||
trackSlow.Scroll += TrackPower_Scroll;
|
||||
trackTotal.Scroll += TrackTotal_Scroll;
|
||||
trackSlow.Scroll += TrackSlow_Scroll;
|
||||
trackFast.Scroll += TrackFast_Scroll;
|
||||
trackCPU.Scroll += TrackCPU_Scroll;
|
||||
|
||||
trackFast.MouseUp += TrackPower_MouseUp;
|
||||
trackCPU.MouseUp += TrackPower_MouseUp;
|
||||
trackTotal.MouseUp += TrackPower_MouseUp;
|
||||
trackSlow.MouseUp += TrackPower_MouseUp;
|
||||
|
||||
trackFast.KeyUp += TrackPower_KeyUp;
|
||||
trackCPU.KeyUp += TrackPower_KeyUp;
|
||||
trackTotal.KeyUp += TrackPower_KeyUp;
|
||||
trackSlow.KeyUp += TrackPower_KeyUp;
|
||||
|
||||
checkApplyFans.Click += CheckApplyFans_Click;
|
||||
checkApplyPower.Click += CheckApplyPower_Click;
|
||||
|
||||
@@ -144,19 +151,25 @@ namespace GHelper
|
||||
trackGPUTemp.Minimum = AsusACPI.MinGPUTemp;
|
||||
trackGPUTemp.Maximum = AsusACPI.MaxGPUTemp;
|
||||
|
||||
trackGPUPower.Minimum = AsusACPI.MinGPUPower;
|
||||
trackGPUPower.Maximum = AsusACPI.MaxGPUPower;
|
||||
|
||||
trackGPUClockLimit.Scroll += trackGPUClockLimit_Scroll;
|
||||
trackGPUCore.Scroll += trackGPU_Scroll;
|
||||
trackGPUMemory.Scroll += trackGPU_Scroll;
|
||||
|
||||
trackGPUBoost.Scroll += trackGPUPower_Scroll;
|
||||
trackGPUTemp.Scroll += trackGPUPower_Scroll;
|
||||
trackGPUPower.Scroll += trackGPUPower_Scroll;
|
||||
|
||||
trackGPUCore.MouseUp += TrackGPUClocks_MouseUp;
|
||||
trackGPUMemory.MouseUp += TrackGPUClocks_MouseUp;
|
||||
trackGPUClockLimit.MouseUp += TrackGPUClocks_MouseUp;
|
||||
|
||||
trackGPUCore.MouseUp += TrackGPU_MouseUp;
|
||||
trackGPUMemory.MouseUp += TrackGPU_MouseUp;
|
||||
trackGPUBoost.MouseUp += TrackGPU_MouseUp;
|
||||
trackGPUTemp.MouseUp += TrackGPU_MouseUp;
|
||||
trackGPUPower.MouseUp += TrackGPU_MouseUp;
|
||||
|
||||
trackGPUClockLimit.MouseUp += TrackGPU_MouseUp;
|
||||
|
||||
//labelInfo.MaximumSize = new Size(280, 0);
|
||||
labelFansResult.Visible = false;
|
||||
@@ -213,6 +226,8 @@ namespace GHelper
|
||||
|
||||
buttonCalibrate.Click += ButtonCalibrate_Click;
|
||||
|
||||
buttonDownload.Click += ButtonDownload_Click;
|
||||
|
||||
ToggleNavigation(0);
|
||||
|
||||
if (Program.acpi.DeviceGet(AsusACPI.DevsCPUFanCurve) < 0) buttonCalibrate.Visible = false;
|
||||
@@ -222,6 +237,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)
|
||||
{
|
||||
@@ -365,6 +395,24 @@ namespace GHelper
|
||||
|
||||
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())
|
||||
{
|
||||
panelTitleAdvanced.Visible = false;
|
||||
@@ -380,6 +428,7 @@ namespace GHelper
|
||||
|
||||
labelUV.Text = trackUV.Value.ToString();
|
||||
labelUViGPU.Text = trackUViGPU.Value.ToString();
|
||||
|
||||
labelTemp.Text = (trackTemp.Value < RyzenControl.MaxTemp) ? trackTemp.Value.ToString() + "°C" : "Default";
|
||||
}
|
||||
|
||||
@@ -479,9 +528,46 @@ namespace GHelper
|
||||
private void TrackGPU_MouseUp(object? sender, MouseEventArgs e)
|
||||
{
|
||||
modeControl.SetGPUPower();
|
||||
}
|
||||
|
||||
private void TrackGPUClocks_MouseUp(object? sender, MouseEventArgs e)
|
||||
{
|
||||
modeControl.SetGPUClocks(true);
|
||||
}
|
||||
|
||||
private void InitGPUPower()
|
||||
{
|
||||
gpuPowerBase = Program.acpi.DeviceGet(AsusACPI.GPU_BASE);
|
||||
if (gpuPowerBase >= 0) Logger.WriteLine($"ReadGPUPowerBase: {gpuPowerBase}");
|
||||
|
||||
panelGPUPower.Visible = isGPUPower;
|
||||
if (!isGPUPower) return;
|
||||
|
||||
int maxGPUPower = NvidiaSmi.GetMaxGPUPower();
|
||||
if (maxGPUPower > 0)
|
||||
{
|
||||
AsusACPI.MaxGPUPower = maxGPUPower - gpuPowerBase - AsusACPI.MaxGPUBoost;
|
||||
trackGPUPower.Minimum = AsusACPI.MinGPUPower;
|
||||
trackGPUPower.Maximum = AsusACPI.MaxGPUPower;
|
||||
}
|
||||
|
||||
Task.Run(async () =>
|
||||
{
|
||||
await Task.Delay(TimeSpan.FromMilliseconds(200));
|
||||
int gpuPowerVar = Program.acpi.DeviceGet(AsusACPI.GPU_POWER);
|
||||
Logger.WriteLine($"ReadGPUPower ({Modes.GetCurrentBase()}): {gpuPowerVar}");
|
||||
|
||||
int gpu_power = AppConfig.GetMode("gpu_power");
|
||||
if (gpu_power < 0) gpu_power = (gpuPowerVar >= 0) ? gpuPowerVar : AsusACPI.MaxGPUPower;
|
||||
|
||||
Invoke(delegate
|
||||
{
|
||||
trackGPUPower.Value = Math.Max(Math.Min(gpu_power, AsusACPI.MaxGPUPower), AsusACPI.MinGPUPower);
|
||||
VisualiseGPUSettings();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
public void InitGPU()
|
||||
{
|
||||
|
||||
@@ -521,27 +607,29 @@ namespace GHelper
|
||||
if (memory == -1) memory = 0;
|
||||
if (clock_limit == -1) clock_limit = NvidiaGpuControl.MaxClockLimit;
|
||||
|
||||
if (nvControl.GetClocks(out int current_core, out int current_memory))
|
||||
if (nvControl is not null)
|
||||
{
|
||||
core = current_core;
|
||||
memory = current_memory;
|
||||
if (nvControl.GetClocks(out int current_core, out int current_memory))
|
||||
{
|
||||
core = current_core;
|
||||
memory = current_memory;
|
||||
}
|
||||
|
||||
int _clockLimit = nvControl.GetMaxGPUCLock();
|
||||
|
||||
if (_clockLimit == 0) clock_limit = NvidiaGpuControl.MaxClockLimit;
|
||||
else if (_clockLimit > 0) clock_limit = _clockLimit;
|
||||
|
||||
try
|
||||
{
|
||||
labelGPU.Text = nvControl.FullName;
|
||||
}
|
||||
catch
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
int _clockLimit = nvControl.GetMaxGPUCLock();
|
||||
|
||||
if (_clockLimit == 0) clock_limit = NvidiaGpuControl.MaxClockLimit;
|
||||
else if (_clockLimit > 0) clock_limit = _clockLimit;
|
||||
|
||||
try
|
||||
{
|
||||
labelGPU.Text = nvControl.FullName;
|
||||
}
|
||||
catch
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
//}
|
||||
trackGPUClockLimit.Value = Math.Max(Math.Min(clock_limit, NvidiaGpuControl.MaxClockLimit), NvidiaGpuControl.MinClockLimit);
|
||||
|
||||
trackGPUCore.Value = Math.Max(Math.Min(core, NvidiaGpuControl.MaxCoreOffset), NvidiaGpuControl.MinCoreOffset);
|
||||
@@ -550,11 +638,14 @@ namespace GHelper
|
||||
trackGPUBoost.Value = Math.Max(Math.Min(gpu_boost, AsusACPI.MaxGPUBoost), AsusACPI.MinGPUBoost);
|
||||
trackGPUTemp.Value = Math.Max(Math.Min(gpu_temp, AsusACPI.MaxGPUTemp), AsusACPI.MinGPUTemp);
|
||||
|
||||
|
||||
panelGPUBoost.Visible = (Program.acpi.DeviceGet(AsusACPI.PPT_GPUC0) >= 0);
|
||||
panelGPUTemp.Visible = (Program.acpi.DeviceGet(AsusACPI.PPT_GPUC2) >= 0);
|
||||
|
||||
VisualiseGPUSettings();
|
||||
|
||||
InitGPUPower();
|
||||
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
@@ -576,12 +667,15 @@ namespace GHelper
|
||||
labelGPUClockLimit.Text = "Default";
|
||||
else
|
||||
labelGPUClockLimit.Text = $"{trackGPUClockLimit.Value} MHz";
|
||||
|
||||
labelGPUPower.Text = (gpuPowerBase + trackGPUPower.Value) + "W";
|
||||
|
||||
}
|
||||
|
||||
private void trackGPUClockLimit_Scroll(object? sender, EventArgs e)
|
||||
{
|
||||
|
||||
int maxClock = (int)Math.Round((float)trackGPUClockLimit.Value / 50) * 50;
|
||||
int maxClock = (int)Math.Round((float)trackGPUClockLimit.Value / 5) * 5;
|
||||
|
||||
trackGPUClockLimit.Value = maxClock;
|
||||
AppConfig.SetMode("gpu_clock_limit", maxClock);
|
||||
@@ -607,6 +701,8 @@ namespace GHelper
|
||||
AppConfig.SetMode("gpu_boost", trackGPUBoost.Value);
|
||||
AppConfig.SetMode("gpu_temp", trackGPUTemp.Value);
|
||||
|
||||
if (isGPUPower) AppConfig.SetMode("gpu_power", trackGPUPower.Value);
|
||||
|
||||
VisualiseGPUSettings();
|
||||
}
|
||||
|
||||
@@ -706,10 +802,21 @@ namespace GHelper
|
||||
|
||||
private void TrackPower_MouseUp(object? sender, MouseEventArgs e)
|
||||
{
|
||||
modeControl.AutoPower();
|
||||
Task.Run(() =>
|
||||
{
|
||||
modeControl.AutoPower(true);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
private void TrackPower_KeyUp(object? sender, KeyEventArgs e)
|
||||
{
|
||||
Task.Run(() =>
|
||||
{
|
||||
modeControl.AutoPower(true);
|
||||
});
|
||||
}
|
||||
|
||||
public void InitPowerPlan()
|
||||
{
|
||||
int boost = PowerNative.GetCPUBoost();
|
||||
@@ -794,18 +901,8 @@ namespace GHelper
|
||||
});
|
||||
}
|
||||
|
||||
private void Fans_FormClosing(object? sender, FormClosingEventArgs e)
|
||||
{
|
||||
/*
|
||||
if (e.CloseReason == CloseReason.UserClosing)
|
||||
{
|
||||
e.Cancel = true;
|
||||
Hide();
|
||||
}*/
|
||||
}
|
||||
|
||||
|
||||
public void InitPower(bool changed = false)
|
||||
public void InitPower()
|
||||
{
|
||||
|
||||
bool modeA = Program.acpi.DeviceGet(AsusACPI.PPT_APUA0) >= 0 || RyzenControl.IsAMD();
|
||||
@@ -832,57 +929,37 @@ namespace GHelper
|
||||
|
||||
if (RyzenControl.IsAMD())
|
||||
{
|
||||
labelLeftTotal.Text = "CPU Sustained (SPL)";
|
||||
labelLeftSlow.Text = "CPU Slow (sPPT)";
|
||||
labelLeftFast.Text = "CPU Fast (fPPT)";
|
||||
labelLeftTotal.Text = "SPL (CPU sustained)";
|
||||
labelLeftSlow.Text = "sPPT (CPU 2 min boost)";
|
||||
labelLeftFast.Text = "fPPT (CPU 2 sec boost)";
|
||||
panelFast.Visible = modeC1;
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
labelLeftTotal.Text = "CPU Slow (PL1)";
|
||||
labelLeftSlow.Text = "CPU Fast (PL2)";
|
||||
labelLeftTotal.Text = "PL1 (CPU sustained)";
|
||||
labelLeftSlow.Text = "PL2 (CPU 2 min boost)";
|
||||
panelFast.Visible = false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
int limit_total;
|
||||
int limit_slow;
|
||||
int limit_cpu;
|
||||
int limit_fast;
|
||||
checkApplyPower.Checked = AppConfig.IsMode("auto_apply_power");
|
||||
|
||||
bool apply = AppConfig.IsMode("auto_apply_power");
|
||||
int limit_total = AppConfig.GetMode("limit_total", AsusACPI.DefaultTotal);
|
||||
int limit_slow = AppConfig.GetMode("limit_slow", limit_total);
|
||||
int limit_fast = AppConfig.GetMode("limit_fast", limit_total);
|
||||
int limit_cpu = AppConfig.GetMode("limit_cpu", AsusACPI.DefaultCPU);
|
||||
|
||||
if (changed)
|
||||
{
|
||||
limit_total = trackTotal.Value;
|
||||
limit_slow = trackSlow.Value;
|
||||
limit_cpu = trackCPU.Value;
|
||||
limit_fast = trackFast.Value;
|
||||
}
|
||||
else
|
||||
{
|
||||
limit_total = AppConfig.GetMode("limit_total");
|
||||
limit_slow = AppConfig.GetMode("limit_slow");
|
||||
limit_cpu = AppConfig.GetMode("limit_cpu");
|
||||
limit_fast = AppConfig.GetMode("limit_fast");
|
||||
}
|
||||
|
||||
if (limit_total < 0) limit_total = AsusACPI.DefaultTotal;
|
||||
if (limit_total > AsusACPI.MaxTotal) limit_total = AsusACPI.MaxTotal;
|
||||
if (limit_total < AsusACPI.MinTotal) limit_total = AsusACPI.MinTotal;
|
||||
|
||||
if (limit_cpu < 0) limit_cpu = AsusACPI.DefaultCPU;
|
||||
if (limit_cpu > AsusACPI.MaxCPU) limit_cpu = AsusACPI.MaxCPU;
|
||||
if (limit_cpu < AsusACPI.MinCPU) limit_cpu = AsusACPI.MinCPU;
|
||||
if (limit_cpu > limit_total) limit_cpu = limit_total;
|
||||
|
||||
if (limit_slow < 0) limit_slow = limit_total;
|
||||
|
||||
if (limit_slow > AsusACPI.MaxTotal) limit_slow = AsusACPI.MaxTotal;
|
||||
if (limit_slow < AsusACPI.MinTotal) limit_slow = AsusACPI.MinTotal;
|
||||
|
||||
if (limit_fast < 0) limit_fast = AsusACPI.DefaultTotal;
|
||||
if (limit_fast > AsusACPI.MaxTotal) limit_fast = AsusACPI.MaxTotal;
|
||||
if (limit_fast < AsusACPI.MinTotal) limit_fast = AsusACPI.MinTotal;
|
||||
|
||||
@@ -891,27 +968,50 @@ namespace GHelper
|
||||
trackCPU.Value = limit_cpu;
|
||||
trackFast.Value = limit_fast;
|
||||
|
||||
checkApplyPower.Checked = apply;
|
||||
SavePower();
|
||||
|
||||
}
|
||||
|
||||
private void SavePower()
|
||||
{
|
||||
labelTotal.Text = trackTotal.Value.ToString() + "W";
|
||||
labelSlow.Text = trackSlow.Value.ToString() + "W";
|
||||
labelCPU.Text = trackCPU.Value.ToString() + "W";
|
||||
labelFast.Text = trackFast.Value.ToString() + "W";
|
||||
|
||||
AppConfig.SetMode("limit_total", limit_total);
|
||||
AppConfig.SetMode("limit_slow", limit_slow);
|
||||
AppConfig.SetMode("limit_cpu", limit_cpu);
|
||||
AppConfig.SetMode("limit_fast", limit_fast);
|
||||
|
||||
|
||||
AppConfig.SetMode("limit_total", trackTotal.Value);
|
||||
AppConfig.SetMode("limit_slow", trackSlow.Value);
|
||||
AppConfig.SetMode("limit_cpu", trackCPU.Value);
|
||||
AppConfig.SetMode("limit_fast", trackFast.Value);
|
||||
}
|
||||
|
||||
|
||||
private void TrackPower_Scroll(object? sender, EventArgs e)
|
||||
private void TrackTotal_Scroll(object? sender, EventArgs e)
|
||||
{
|
||||
InitPower(true);
|
||||
if (trackTotal.Value > trackSlow.Value) trackSlow.Value = trackTotal.Value;
|
||||
if (trackTotal.Value > trackFast.Value) trackFast.Value = trackTotal.Value;
|
||||
if (trackTotal.Value < trackCPU.Value) trackCPU.Value = trackTotal.Value;
|
||||
SavePower();
|
||||
}
|
||||
|
||||
private void TrackSlow_Scroll(object? sender, EventArgs e)
|
||||
{
|
||||
if (trackSlow.Value < trackTotal.Value) trackTotal.Value = trackSlow.Value;
|
||||
if (trackSlow.Value > trackFast.Value) trackFast.Value = trackSlow.Value;
|
||||
SavePower();
|
||||
}
|
||||
|
||||
private void TrackFast_Scroll(object? sender, EventArgs e)
|
||||
{
|
||||
if (trackFast.Value < trackSlow.Value) trackSlow.Value = trackFast.Value;
|
||||
if (trackFast.Value < trackTotal.Value) trackTotal.Value = trackFast.Value;
|
||||
SavePower();
|
||||
}
|
||||
|
||||
private void TrackCPU_Scroll(object? sender, EventArgs e)
|
||||
{
|
||||
if (trackCPU.Value > trackTotal.Value) trackTotal.Value = trackCPU.Value;
|
||||
SavePower();
|
||||
}
|
||||
|
||||
public void InitFans()
|
||||
{
|
||||
@@ -919,7 +1019,7 @@ namespace GHelper
|
||||
int chartCount = 2;
|
||||
|
||||
// Middle / system fan check
|
||||
if (!AsusACPI.IsEmptyCurve(Program.acpi.GetFanCurve(AsusFan.Mid)))
|
||||
if (!AsusACPI.IsEmptyCurve(Program.acpi.GetFanCurve(AsusFan.Mid)) || Program.acpi.GetFan(AsusFan.Mid) >= 0)
|
||||
{
|
||||
AppConfig.Set("mid_fan", 1);
|
||||
chartCount++;
|
||||
@@ -949,7 +1049,7 @@ namespace GHelper
|
||||
try
|
||||
{
|
||||
if (chartCount > 2)
|
||||
Size = MinimumSize = new Size(Size.Width, (int)(ControlHelper.GetDpiScale(this).Value * (chartCount * 200 + 100)));
|
||||
Size = MinimumSize = new Size(Size.Width, Math.Max(MinimumSize.Height, (int)(ControlHelper.GetDpiScale(this).Value * (chartCount * 200 + 100))));
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
@@ -1020,7 +1120,6 @@ namespace GHelper
|
||||
|
||||
}
|
||||
|
||||
|
||||
private void ButtonReset_Click(object? sender, EventArgs e)
|
||||
{
|
||||
|
||||
@@ -1044,7 +1143,7 @@ namespace GHelper
|
||||
trackTemp.Value = RyzenControl.MaxTemp;
|
||||
|
||||
AdvancedScroll();
|
||||
AppConfig.SetMode("cpu_temp", -1);
|
||||
AppConfig.RemoveMode("cpu_temp");
|
||||
|
||||
modeControl.ResetPerformanceMode();
|
||||
|
||||
@@ -1058,19 +1157,25 @@ namespace GHelper
|
||||
trackGPUClockLimit.Value = NvidiaGpuControl.MaxClockLimit;
|
||||
trackGPUCore.Value = 0;
|
||||
trackGPUMemory.Value = 0;
|
||||
|
||||
trackGPUBoost.Value = AsusACPI.MaxGPUBoost;
|
||||
trackGPUTemp.Value = AsusACPI.MaxGPUTemp;
|
||||
|
||||
AppConfig.SetMode("gpu_clock_limit", trackGPUClockLimit.Value);
|
||||
//AppConfig.SetMode("gpu_boost", trackGPUBoost.Value);
|
||||
//AppConfig.SetMode("gpu_temp", trackGPUTemp.Value);
|
||||
|
||||
AppConfig.RemoveMode("gpu_boost");
|
||||
AppConfig.RemoveMode("gpu_temp");
|
||||
|
||||
AppConfig.SetMode("gpu_boost", trackGPUBoost.Value);
|
||||
AppConfig.SetMode("gpu_temp", trackGPUTemp.Value);
|
||||
AppConfig.RemoveMode("gpu_power");
|
||||
AppConfig.RemoveMode("gpu_clock_limit");
|
||||
AppConfig.RemoveMode("gpu_core");
|
||||
AppConfig.RemoveMode("gpu_memory");
|
||||
|
||||
AppConfig.SetMode("gpu_core", trackGPUCore.Value);
|
||||
AppConfig.SetMode("gpu_memory", trackGPUMemory.Value);
|
||||
InitGPUPower();
|
||||
|
||||
VisualiseGPUSettings();
|
||||
modeControl.SetGPUClocks(true);
|
||||
modeControl.SetGPUClocks(true, true);
|
||||
modeControl.SetGPUPower();
|
||||
}
|
||||
|
||||
@@ -1170,7 +1275,7 @@ namespace GHelper
|
||||
|
||||
labelTip.Text = Math.Floor(curPoint.XValue) + "C, " + ChartYLabel((int)curPoint.YValues[0], device, " " + Properties.Strings.RPM);
|
||||
labelTip.Top = e.Y + ((Control)sender).Top;
|
||||
labelTip.Left = e.X - 50;
|
||||
labelTip.Left = Math.Min(chart.Width - labelTip.Width - 20, e.X - 50);
|
||||
|
||||
}
|
||||
catch
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<TargetFramework>net7.0-windows</TargetFramework>
|
||||
<TargetFramework>net8.0-windows</TargetFramework>
|
||||
<Nullable>enable</Nullable>
|
||||
<UseWindowsForms>True</UseWindowsForms>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
@@ -15,7 +15,7 @@
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<ProduceReferenceAssembly>False</ProduceReferenceAssembly>
|
||||
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
|
||||
<AssemblyVersion>0.147</AssemblyVersion>
|
||||
<AssemblyVersion>0.183</AssemblyVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||
@@ -62,7 +62,7 @@
|
||||
<PackageReference Include="HidSharpCore" Version="1.2.1.1" />
|
||||
<PackageReference Include="NAudio" Version="2.1.0" />
|
||||
<PackageReference Include="NvAPIWrapper.Net" Version="0.8.1.101" />
|
||||
<PackageReference Include="System.Management" Version="7.0.1" />
|
||||
<PackageReference Include="System.Management" Version="8.0.0" />
|
||||
<PackageReference Include="TaskScheduler" Version="2.10.1" />
|
||||
<PackageReference Include="WinForms.DataVisualization" Version="1.8.0" />
|
||||
</ItemGroup>
|
||||
@@ -71,18 +71,6 @@
|
||||
<Content Include="Resources\eco.ico">
|
||||
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Resources\icons8-charging-battery-48.png">
|
||||
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Resources\icons8-laptop-48.png">
|
||||
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Resources\icons8-speed-48.png">
|
||||
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Resources\icons8-video-card-48.png">
|
||||
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Resources\ultimate.ico">
|
||||
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
|
||||
</Content>
|
||||
@@ -140,4 +128,4 @@
|
||||
</None>
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
</Project>
|
||||
|
||||
@@ -65,8 +65,14 @@ public class AmdGpuControl : IGpuControl
|
||||
if (!Adl2.Load())
|
||||
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;
|
||||
}
|
||||
|
||||
ADLAdapterInfo? internalDiscreteAdapter = FindByType(ADLAsicFamilyType.Discrete);
|
||||
|
||||
@@ -113,6 +119,18 @@ public class AmdGpuControl : IGpuControl
|
||||
|
||||
}
|
||||
|
||||
public int? GetGpuPower()
|
||||
{
|
||||
if (_adlContextHandle == nint.Zero || _iGPU == null) return null;
|
||||
if (ADL2_New_QueryPMLogData_Get(_adlContextHandle, ((ADLAdapterInfo)_iGPU).AdapterIndex, out ADLPMLogDataOutput adlpmLogDataOutput) != Adl2.ADL_SUCCESS) return null;
|
||||
|
||||
ADLSingleSensorData gpuUsage = adlpmLogDataOutput.Sensors[(int)ADLSensorType.PMLOG_ASIC_POWER];
|
||||
if (gpuUsage.Supported == 0) return null;
|
||||
|
||||
return gpuUsage.Value;
|
||||
|
||||
}
|
||||
|
||||
|
||||
public bool SetVariBright(int enabled)
|
||||
{
|
||||
@@ -168,6 +186,9 @@ public class AmdGpuControl : IGpuControl
|
||||
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;
|
||||
}
|
||||
|
||||
|
||||
@@ -25,8 +25,6 @@ namespace GHelper.Gpu
|
||||
int eco = Program.acpi.DeviceGet(AsusACPI.GPUEco);
|
||||
int mux = Program.acpi.DeviceGet(AsusACPI.GPUMux);
|
||||
|
||||
if (mux < 0) mux = Program.acpi.DeviceGet(AsusACPI.GPUMuxVivo);
|
||||
|
||||
Logger.WriteLine("Eco flag : " + eco);
|
||||
Logger.WriteLine("Mux flag : " + mux);
|
||||
|
||||
@@ -83,7 +81,6 @@ namespace GHelper.Gpu
|
||||
if (dialogResult == DialogResult.Yes)
|
||||
{
|
||||
status = Program.acpi.DeviceSet(AsusACPI.GPUMux, 1, "GPUMux");
|
||||
if (status != 1) Program.acpi.DeviceSet(AsusACPI.GPUMuxVivo, 1, "GPUMuxVivo");
|
||||
restart = true;
|
||||
changed = true;
|
||||
}
|
||||
@@ -99,7 +96,6 @@ namespace GHelper.Gpu
|
||||
Thread.Sleep(100);
|
||||
}
|
||||
status = Program.acpi.DeviceSet(AsusACPI.GPUMux, 0, "GPUMux");
|
||||
if (status != 1) Program.acpi.DeviceSet(AsusACPI.GPUMuxVivo, 0, "GPUMuxVivo");
|
||||
restart = true;
|
||||
changed = true;
|
||||
}
|
||||
@@ -145,18 +141,6 @@ namespace GHelper.Gpu
|
||||
|
||||
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();
|
||||
}
|
||||
|
||||
@@ -197,10 +181,12 @@ namespace GHelper.Gpu
|
||||
if (SystemInformation.PowerStatus.PowerLineStatus != PowerLineStatus.Online) return false;
|
||||
if (!AppConfig.Is("optimized_usbc")) return true;
|
||||
|
||||
if (AppConfig.ContainsModel("FA507")) Thread.Sleep(1000);
|
||||
|
||||
int chargerMode = Program.acpi.DeviceGet(AsusACPI.ChargerMode);
|
||||
Logger.WriteLine("ChargerStatus: " + chargerMode);
|
||||
|
||||
if (chargerMode < 0) return true;
|
||||
if (chargerMode <= 0) return true;
|
||||
return (chargerMode & AsusACPI.ChargerBarrel) > 0;
|
||||
|
||||
}
|
||||
@@ -296,7 +282,7 @@ namespace GHelper.Gpu
|
||||
|
||||
}
|
||||
|
||||
public void ToggleXGM()
|
||||
public void ToggleXGM(bool silent = false)
|
||||
{
|
||||
|
||||
Task.Run(async () =>
|
||||
@@ -308,12 +294,20 @@ namespace GHelper.Gpu
|
||||
XGM.Reset();
|
||||
HardwareControl.KillGPUApps();
|
||||
|
||||
DialogResult dialogResult = MessageBox.Show("Did you close all applications running on XG Mobile?", "Disabling XG Mobile", MessageBoxButtons.YesNo);
|
||||
if (dialogResult == DialogResult.Yes)
|
||||
if (silent)
|
||||
{
|
||||
Program.acpi.DeviceSet(AsusACPI.GPUXG, 0, "GPU XGM");
|
||||
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
|
||||
{
|
||||
@@ -324,7 +318,6 @@ namespace GHelper.Gpu
|
||||
Program.acpi.DeviceSet(AsusACPI.GPUXG, 1, "GPU XGM");
|
||||
|
||||
InitXGM();
|
||||
|
||||
XGM.Light(AppConfig.Is("xmg_light"));
|
||||
|
||||
await Task.Delay(TimeSpan.FromSeconds(15));
|
||||
|
||||
@@ -18,7 +18,7 @@ public class NvidiaGpuControl : IGpuControl
|
||||
public static int MinCoreOffset = AppConfig.Get("min_gpu_core", -250);
|
||||
public static int MinMemoryOffset = AppConfig.Get("min_gpu_memory", -500);
|
||||
|
||||
public const int MinClockLimit = 400;
|
||||
public static int MinClockLimit = AppConfig.Get("min_gpu_clock", 400);
|
||||
public const int MaxClockLimit = 3000;
|
||||
|
||||
private static PhysicalGPU? _internalGpu;
|
||||
@@ -152,6 +152,8 @@ public class NvidiaGpuControl : IGpuControl
|
||||
|
||||
int _clockLimit = GetMaxGPUCLock();
|
||||
|
||||
if (_clockLimit < 0 && clock == 0) return 0;
|
||||
|
||||
if (_clockLimit != 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 (memory < MinMemoryOffset || memory > MaxMemoryOffset) return 0;
|
||||
|
||||
if (GetClocks(out int currentCore, out int currentMemory))
|
||||
{
|
||||
if (Math.Abs(core - currentCore) < 5 && Math.Abs(memory - currentMemory) < 5) return 0;
|
||||
}
|
||||
GetClocks(out int currentCore, out int currentMemory);
|
||||
|
||||
// Nothing to set
|
||||
if (Math.Abs(core - currentCore) < 5 && Math.Abs(memory - currentMemory) < 5) return 0;
|
||||
|
||||
PhysicalGPU internalGpu = _internalGpu!;
|
||||
|
||||
|
||||
@@ -30,6 +30,28 @@ public static class NvidiaSmi
|
||||
return false; // Return false if the "Display Active" status is not found
|
||||
}
|
||||
|
||||
public static int GetDefaultMaxGPUPower()
|
||||
{
|
||||
if (AppConfig.ContainsModel("GU605")) return 125;
|
||||
if (AppConfig.ContainsModel("GA403")) return 90;
|
||||
if (AppConfig.ContainsModel("FA607")) return 140;
|
||||
else return 175;
|
||||
}
|
||||
|
||||
public static int GetMaxGPUPower()
|
||||
{
|
||||
string output = RunNvidiaSmiCommand("--query-gpu=power.max_limit --format csv,noheader,nounits");
|
||||
output = output.Trim().Trim('\n', '\r');
|
||||
|
||||
if (float.TryParse(output, out float floatValue))
|
||||
{
|
||||
int intValue = (int)floatValue;
|
||||
if (intValue >= 50 && intValue <= 175) return intValue;
|
||||
}
|
||||
|
||||
return GetDefaultMaxGPUPower();
|
||||
}
|
||||
|
||||
private static string RunNvidiaSmiCommand(string arguments = "-i 0 -q")
|
||||
{
|
||||
ProcessStartInfo startInfo = new ProcessStartInfo
|
||||
|
||||
1149
app/Handheld.Designer.cs
generated
Normal file
1149
app/Handheld.Designer.cs
generated
Normal file
File diff suppressed because it is too large
Load Diff
273
app/Handheld.cs
Normal file
273
app/Handheld.cs
Normal file
@@ -0,0 +1,273 @@
|
||||
using GHelper.Ally;
|
||||
using GHelper.UI;
|
||||
|
||||
namespace GHelper
|
||||
{
|
||||
public partial class Handheld : RForm
|
||||
{
|
||||
|
||||
static string activeBinding = "";
|
||||
static RButton? activeButton;
|
||||
|
||||
public Handheld()
|
||||
{
|
||||
InitializeComponent();
|
||||
InitTheme(true);
|
||||
|
||||
Text = Properties.Strings.Controller;
|
||||
|
||||
labelLSTitle.Text = Properties.Strings.LSDeadzones;
|
||||
labelRSTitle.Text = Properties.Strings.RSDeadzones;
|
||||
labelLTTitle.Text = Properties.Strings.LTDeadzones;
|
||||
labelRTTitle.Text = Properties.Strings.RTDeadzones;
|
||||
labelVibraTitle.Text = Properties.Strings.VibrationStrength;
|
||||
checkController.Text = Properties.Strings.DisableController;
|
||||
buttonReset.Text = Properties.Strings.Reset;
|
||||
|
||||
labelPrimary.Text = Properties.Strings.BindingPrimary;
|
||||
labelSecondary.Text = Properties.Strings.BindingSecondary;
|
||||
|
||||
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 = Properties.Strings.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
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.Battery;
|
||||
using GHelper.Fan;
|
||||
using GHelper.Gpu;
|
||||
using GHelper.Gpu.NVidia;
|
||||
using GHelper.Gpu.AMD;
|
||||
|
||||
using GHelper.Gpu.NVidia;
|
||||
using GHelper.Helpers;
|
||||
using System.Diagnostics;
|
||||
using System.Management;
|
||||
using GHelper.Battery;
|
||||
|
||||
public static class HardwareControl
|
||||
{
|
||||
@@ -15,6 +14,8 @@ public static class HardwareControl
|
||||
public static IGpuControl? GpuControl;
|
||||
|
||||
public static float? cpuTemp = -1;
|
||||
public static float? gpuTemp = -1;
|
||||
|
||||
public static decimal? batteryRate = 0;
|
||||
public static decimal batteryHealth = -1;
|
||||
public static decimal batteryCapacity = -1;
|
||||
@@ -24,7 +25,6 @@ public static class HardwareControl
|
||||
public static decimal? chargeCapacity;
|
||||
|
||||
|
||||
public static int? gpuTemp = null;
|
||||
|
||||
public static string? cpuFan;
|
||||
public static string? gpuFan;
|
||||
@@ -68,9 +68,16 @@ public static class HardwareControl
|
||||
|
||||
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 dischargeRate = Convert.ToDecimal(obj["DischargeRate"]);
|
||||
|
||||
|
||||
if (chargeRate > 0)
|
||||
batteryRate = chargeRate / 1000;
|
||||
else
|
||||
@@ -155,7 +162,8 @@ public static class HardwareControl
|
||||
return health;
|
||||
}
|
||||
|
||||
public static float? GetCPUTemp() {
|
||||
public static float? GetCPUTemp()
|
||||
{
|
||||
|
||||
var last = DateTimeOffset.Now.ToUnixTimeSeconds();
|
||||
if (Math.Abs(last - lastUpdate) < 2) return cpuTemp;
|
||||
@@ -172,26 +180,15 @@ public static class HardwareControl
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Debug.WriteLine("Failed reading CPU temp :" + ex.Message);
|
||||
//Debug.WriteLine("Failed reading CPU temp :" + ex.Message);
|
||||
}
|
||||
|
||||
|
||||
return cpuTemp;
|
||||
}
|
||||
|
||||
|
||||
public static void ReadSensors()
|
||||
public static float? GetGPUTemp()
|
||||
{
|
||||
batteryRate = 0;
|
||||
gpuTemp = -1;
|
||||
gpuUse = -1;
|
||||
|
||||
cpuFan = FanSensorControl.FormatFan(AsusFan.CPU, Program.acpi.GetFan(AsusFan.CPU));
|
||||
gpuFan = FanSensorControl.FormatFan(AsusFan.GPU, Program.acpi.GetFan(AsusFan.GPU));
|
||||
midFan = FanSensorControl.FormatFan(AsusFan.Mid, Program.acpi.GetFan(AsusFan.Mid));
|
||||
|
||||
cpuTemp = GetCPUTemp();
|
||||
|
||||
try
|
||||
{
|
||||
gpuTemp = GpuControl?.GetCurrentTemperature();
|
||||
@@ -200,11 +197,29 @@ public static class HardwareControl
|
||||
catch (Exception ex)
|
||||
{
|
||||
gpuTemp = -1;
|
||||
Debug.WriteLine("Failed reading GPU temp :" + ex.Message);
|
||||
//Debug.WriteLine("Failed reading GPU temp :" + ex.Message);
|
||||
}
|
||||
|
||||
if (gpuTemp is null || gpuTemp < 0)
|
||||
{
|
||||
gpuTemp = Program.acpi.DeviceGet(AsusACPI.Temp_GPU);
|
||||
}
|
||||
|
||||
return gpuTemp;
|
||||
}
|
||||
|
||||
|
||||
public static void ReadSensors()
|
||||
{
|
||||
batteryRate = 0;
|
||||
gpuUse = -1;
|
||||
|
||||
cpuFan = FanSensorControl.FormatFan(AsusFan.CPU, Program.acpi.GetFan(AsusFan.CPU));
|
||||
gpuFan = FanSensorControl.FormatFan(AsusFan.GPU, Program.acpi.GetFan(AsusFan.GPU));
|
||||
midFan = FanSensorControl.FormatFan(AsusFan.Mid, Program.acpi.GetFan(AsusFan.Mid));
|
||||
|
||||
cpuTemp = GetCPUTemp();
|
||||
gpuTemp = GetGPUTemp();
|
||||
|
||||
ReadFullChargeCapacity();
|
||||
GetBatteryStatus();
|
||||
@@ -255,7 +270,7 @@ public static class HardwareControl
|
||||
GpuControl?.Dispose();
|
||||
|
||||
IGpuControl _gpuControl = new NvidiaGpuControl();
|
||||
|
||||
|
||||
if (_gpuControl.IsValid)
|
||||
{
|
||||
GpuControl = _gpuControl;
|
||||
@@ -290,7 +305,8 @@ public static class HardwareControl
|
||||
public static void KillGPUApps()
|
||||
{
|
||||
|
||||
List<string> tokill = new() { "EADesktop", "RadeonSoftware", "epicgameslauncher", "ASUSSmartDisplayControl" };
|
||||
List<string> tokill = new() { "EADesktop", "epicgameslauncher", "ASUSSmartDisplayControl" };
|
||||
|
||||
foreach (string kill in tokill) ProcessHelper.KillByName(kill);
|
||||
|
||||
if (AppConfig.Is("kill_gpu_apps") && GpuControl is not null)
|
||||
|
||||
@@ -15,22 +15,29 @@ namespace GHelper.Helpers
|
||||
|
||||
public bool IsExternalDisplayConnected()
|
||||
{
|
||||
var devices = ScreenInterrogatory.GetAllDevices().ToArray();
|
||||
|
||||
string internalName = AppConfig.GetString("internal_display");
|
||||
|
||||
foreach (var device in devices)
|
||||
try
|
||||
{
|
||||
if (device.outputTechnology != ScreenInterrogatory.DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY.DISPLAYCONFIG_OUTPUT_TECHNOLOGY_INTERNAL &&
|
||||
device.outputTechnology != ScreenInterrogatory.DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY.DISPLAYCONFIG_OUTPUT_TECHNOLOGY_DISPLAYPORT_EMBEDDED
|
||||
&& device.monitorFriendlyDeviceName != internalName)
|
||||
var devicesList = ScreenInterrogatory.GetAllDevices();
|
||||
var devices = devicesList.ToArray();
|
||||
|
||||
string internalName = AppConfig.GetString("internal_display");
|
||||
|
||||
foreach (var device in devices)
|
||||
{
|
||||
Logger.WriteLine("Found external screen: " + device.monitorFriendlyDeviceName + ":" + device.outputTechnology.ToString());
|
||||
if (device.outputTechnology != ScreenInterrogatory.DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY.DISPLAYCONFIG_OUTPUT_TECHNOLOGY_INTERNAL &&
|
||||
device.outputTechnology != ScreenInterrogatory.DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY.DISPLAYCONFIG_OUTPUT_TECHNOLOGY_DISPLAYPORT_EMBEDDED
|
||||
&& device.monitorFriendlyDeviceName != internalName)
|
||||
{
|
||||
Logger.WriteLine("Found external screen: " + device.monitorFriendlyDeviceName + ":" + device.outputTechnology.ToString());
|
||||
|
||||
//Already found one, we do not have to check whether there are more
|
||||
return true;
|
||||
}
|
||||
|
||||
//Already found one, we do not have to check whether there are more
|
||||
return true;
|
||||
}
|
||||
|
||||
} catch (Exception ex)
|
||||
{
|
||||
Logger.WriteLine(ex.ToString());
|
||||
}
|
||||
|
||||
return false;
|
||||
@@ -69,12 +76,14 @@ namespace GHelper.Helpers
|
||||
}
|
||||
public static void DisableClamshellMode()
|
||||
{
|
||||
if (PowerNative.GetLidAction(true) == GetDefaultLidAction()) return;
|
||||
PowerNative.SetLidAction(GetDefaultLidAction(), true);
|
||||
Logger.WriteLine("Disengaging Clamshell Mode");
|
||||
}
|
||||
|
||||
public static void EnableClamshellMode()
|
||||
{
|
||||
if (PowerNative.GetLidAction(true) == 0) return;
|
||||
PowerNative.SetLidAction(0, true);
|
||||
Logger.WriteLine("Engaging Clamshell Mode");
|
||||
}
|
||||
@@ -99,6 +108,9 @@ namespace GHelper.Helpers
|
||||
if (Program.settingsForm.Visible)
|
||||
Program.screenControl.InitScreen();
|
||||
|
||||
if (AppConfig.IsForceMiniled())
|
||||
Program.screenControl.InitMiniled();
|
||||
|
||||
}
|
||||
|
||||
private static int CheckAndSaveLidAction()
|
||||
|
||||
24
app/Helpers/DynamicLightingHelper.cs
Normal file
24
app/Helpers/DynamicLightingHelper.cs
Normal file
@@ -0,0 +1,24 @@
|
||||
using Microsoft.Win32;
|
||||
|
||||
namespace GHelper.Helpers
|
||||
{
|
||||
public static class DynamicLightingHelper
|
||||
{
|
||||
|
||||
public static bool IsEnabled()
|
||||
{
|
||||
using var key = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Lighting");
|
||||
var registryValueObject = key?.GetValue("AmbientLightingEnabled");
|
||||
|
||||
if (registryValueObject == null) return true;
|
||||
return (int)registryValueObject > 0;
|
||||
}
|
||||
|
||||
public static void OpenSettings()
|
||||
{
|
||||
ProcessHelper.RunCMD("explorer","ms-settings:personalization-lighting");
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -30,7 +30,7 @@ public static class Logger
|
||||
try
|
||||
{
|
||||
var file = File.ReadAllLines(logFile);
|
||||
int skip = Math.Max(0, file.Count() - 1000);
|
||||
int skip = Math.Max(0, file.Count() - 2000);
|
||||
File.WriteAllLines(logFile, file.Skip(skip).ToArray());
|
||||
}
|
||||
catch { }
|
||||
|
||||
176
app/Helpers/OnScreenKeyboard.cs
Normal file
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;
|
||||
|
||||
}
|
||||
}
|
||||
@@ -7,17 +7,31 @@ namespace GHelper.Helpers
|
||||
|
||||
static List<string> services = new() {
|
||||
"ArmouryCrateControlInterface",
|
||||
"AsHidService",
|
||||
"ASUSOptimization",
|
||||
"AsusAppService",
|
||||
"ASUSLinkNear",
|
||||
"ASUSLinkRemote",
|
||||
"ASUSSoftwareManager",
|
||||
"ASUSLiveUpdateAgent",
|
||||
"ASUSSwitch",
|
||||
"ASUSSystemAnalysis",
|
||||
"ASUSSystemDiagnosis",
|
||||
"AsusCertService"
|
||||
};
|
||||
|
||||
static List<string> processesAC = new() {
|
||||
"ArmouryCrateSE.Service",
|
||||
"ArmouryCrate.Service",
|
||||
"LightingService",
|
||||
};
|
||||
|
||||
static List<string> servicesAC = new() {
|
||||
"ArmouryCrateSEService",
|
||||
"ArmouryCrateService",
|
||||
"LightingService",
|
||||
};
|
||||
|
||||
public static bool IsRunning()
|
||||
{
|
||||
return Process.GetProcessesByName("AsusOptimization").Count() > 0;
|
||||
@@ -36,6 +50,17 @@ namespace GHelper.Helpers
|
||||
{
|
||||
if (Process.GetProcessesByName(service).Count() > 0) count++;
|
||||
}
|
||||
|
||||
if (AppConfig.IsStopAC())
|
||||
foreach (string service in processesAC)
|
||||
{
|
||||
if (Process.GetProcessesByName(service).Count() > 0)
|
||||
{
|
||||
count++;
|
||||
Logger.WriteLine(service);
|
||||
}
|
||||
}
|
||||
|
||||
return count;
|
||||
}
|
||||
|
||||
@@ -46,6 +71,16 @@ namespace GHelper.Helpers
|
||||
{
|
||||
ProcessHelper.StopDisableService(service);
|
||||
}
|
||||
|
||||
if (AppConfig.IsStopAC())
|
||||
{
|
||||
foreach (string service in servicesAC)
|
||||
{
|
||||
ProcessHelper.StopDisableService(service, "Manual");
|
||||
}
|
||||
Thread.Sleep(1000);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static void StartAsusServices()
|
||||
@@ -54,6 +89,16 @@ namespace GHelper.Helpers
|
||||
{
|
||||
ProcessHelper.StartEnableService(service);
|
||||
}
|
||||
|
||||
if (AppConfig.IsStopAC())
|
||||
{
|
||||
foreach (string service in servicesAC)
|
||||
{
|
||||
ProcessHelper.StartEnableService(service);
|
||||
}
|
||||
Thread.Sleep(1000);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -37,14 +37,14 @@ namespace GHelper.Helpers
|
||||
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;
|
||||
lastAdmin = DateTimeOffset.Now.ToUnixTimeMilliseconds();
|
||||
|
||||
// Check if the current user is an administrator
|
||||
if (!IsUserAdministrator())
|
||||
if (!IsUserAdministrator() || force)
|
||||
{
|
||||
ProcessStartInfo startInfo = new ProcessStartInfo();
|
||||
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
|
||||
{
|
||||
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);
|
||||
RunCMD("powershell", script);
|
||||
}
|
||||
@@ -122,7 +122,7 @@ namespace GHelper.Helpers
|
||||
}
|
||||
}
|
||||
|
||||
public static void RunCMD(string name, string args)
|
||||
public static string RunCMD(string name, string args)
|
||||
{
|
||||
var cmd = new Process();
|
||||
cmd.StartInfo.UseShellExecute = false;
|
||||
@@ -133,13 +133,13 @@ namespace GHelper.Helpers
|
||||
cmd.StartInfo.Arguments = args;
|
||||
cmd.Start();
|
||||
|
||||
Logger.WriteLine(args);
|
||||
|
||||
Logger.WriteLine(name + " " + args);
|
||||
string result = cmd.StandardOutput.ReadToEnd().Replace(Environment.NewLine, " ").Trim(' ');
|
||||
|
||||
Logger.WriteLine(result);
|
||||
|
||||
cmd.WaitForExit();
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
|
||||
376
app/Helpers/RestrictedProcessHelper.cs
Normal file
376
app/Helpers/RestrictedProcessHelper.cs
Normal file
@@ -0,0 +1,376 @@
|
||||
using System.Diagnostics;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
|
||||
public static class RestrictedProcessHelper
|
||||
{
|
||||
/// Runs a process as a non-elevated version of the current user.
|
||||
public static Process? RunAsRestrictedUser(string fileName, string? args = null)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(fileName))
|
||||
throw new ArgumentException("Value cannot be null or whitespace.", nameof(fileName));
|
||||
|
||||
if (!GetRestrictedSessionUserToken(out var hRestrictedToken))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
var si = new STARTUPINFO();
|
||||
si.cb = Marshal.SizeOf(si);
|
||||
si.dwFlags = 0x1;
|
||||
si.wShowWindow = 0x00; // Set the window to be hidden
|
||||
|
||||
var pi = new PROCESS_INFORMATION();
|
||||
var cmd = new StringBuilder();
|
||||
cmd.Append('"').Append(fileName).Append('"');
|
||||
if (!string.IsNullOrWhiteSpace(args))
|
||||
{
|
||||
cmd.Append(' ').Append(args);
|
||||
}
|
||||
|
||||
Logger.WriteLine($"Launching {cmd}");
|
||||
|
||||
if (!CreateProcessAsUser(
|
||||
hRestrictedToken,
|
||||
null,
|
||||
cmd,
|
||||
IntPtr.Zero,
|
||||
IntPtr.Zero,
|
||||
true, // inherit handle
|
||||
0,
|
||||
IntPtr.Zero,
|
||||
Path.GetDirectoryName(fileName),
|
||||
ref si,
|
||||
out pi))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
return Process.GetProcessById(pi.dwProcessId);
|
||||
}
|
||||
finally
|
||||
{
|
||||
CloseHandle(hRestrictedToken);
|
||||
}
|
||||
}
|
||||
|
||||
private static bool GetRestrictedSessionUserToken(out IntPtr token)
|
||||
{
|
||||
token = IntPtr.Zero;
|
||||
if (!SaferCreateLevel(SaferScope.User, SaferLevel.NormalUser, SaferOpenFlags.Open, out var hLevel, IntPtr.Zero))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
IntPtr hRestrictedToken = IntPtr.Zero;
|
||||
TOKEN_MANDATORY_LABEL tml = default;
|
||||
tml.Label.Sid = IntPtr.Zero;
|
||||
IntPtr tmlPtr = IntPtr.Zero;
|
||||
|
||||
try
|
||||
{
|
||||
if (!SaferComputeTokenFromLevel(hLevel, IntPtr.Zero, out hRestrictedToken, 0, IntPtr.Zero))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
// Set the token to medium integrity.
|
||||
tml.Label.Attributes = SE_GROUP_INTEGRITY;
|
||||
tml.Label.Sid = IntPtr.Zero;
|
||||
if (!ConvertStringSidToSid("S-1-16-8192", out tml.Label.Sid))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
tmlPtr = Marshal.AllocHGlobal(Marshal.SizeOf(tml));
|
||||
Marshal.StructureToPtr(tml, tmlPtr, false);
|
||||
if (!SetTokenInformation(hRestrictedToken,
|
||||
TOKEN_INFORMATION_CLASS.TokenIntegrityLevel,
|
||||
tmlPtr, (uint)Marshal.SizeOf(tml)))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
token = hRestrictedToken;
|
||||
hRestrictedToken = IntPtr.Zero; // make sure finally() doesn't close the handle
|
||||
}
|
||||
finally
|
||||
{
|
||||
SaferCloseLevel(hLevel);
|
||||
SafeCloseHandle(hRestrictedToken);
|
||||
if (tml.Label.Sid != IntPtr.Zero)
|
||||
{
|
||||
LocalFree(tml.Label.Sid);
|
||||
}
|
||||
if (tmlPtr != IntPtr.Zero)
|
||||
{
|
||||
Marshal.FreeHGlobal(tmlPtr);
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
private struct PROCESS_INFORMATION
|
||||
{
|
||||
public IntPtr hProcess;
|
||||
public IntPtr hThread;
|
||||
public int dwProcessId;
|
||||
public int dwThreadId;
|
||||
}
|
||||
|
||||
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
|
||||
private struct STARTUPINFO
|
||||
{
|
||||
public Int32 cb;
|
||||
public string lpReserved;
|
||||
public string lpDesktop;
|
||||
public string lpTitle;
|
||||
public Int32 dwX;
|
||||
public Int32 dwY;
|
||||
public Int32 dwXSize;
|
||||
public Int32 dwYSize;
|
||||
public Int32 dwXCountChars;
|
||||
public Int32 dwYCountChars;
|
||||
public Int32 dwFillAttribute;
|
||||
public Int32 dwFlags;
|
||||
public Int16 wShowWindow;
|
||||
public Int16 cbReserved2;
|
||||
public IntPtr lpReserved2;
|
||||
public IntPtr hStdInput;
|
||||
public IntPtr hStdOutput;
|
||||
public IntPtr hStdError;
|
||||
}
|
||||
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
private struct SID_AND_ATTRIBUTES
|
||||
{
|
||||
public IntPtr Sid;
|
||||
public uint Attributes;
|
||||
}
|
||||
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
private struct TOKEN_MANDATORY_LABEL
|
||||
{
|
||||
public SID_AND_ATTRIBUTES Label;
|
||||
}
|
||||
|
||||
public enum SaferLevel : uint
|
||||
{
|
||||
Disallowed = 0,
|
||||
Untrusted = 0x1000,
|
||||
Constrained = 0x10000,
|
||||
NormalUser = 0x20000,
|
||||
FullyTrusted = 0x40000
|
||||
}
|
||||
|
||||
public enum SaferScope : uint
|
||||
{
|
||||
Machine = 1,
|
||||
User = 2
|
||||
}
|
||||
|
||||
[Flags]
|
||||
public enum SaferOpenFlags : uint
|
||||
{
|
||||
Open = 1
|
||||
}
|
||||
|
||||
[DllImport("advapi32", SetLastError = true, CallingConvention = CallingConvention.StdCall)]
|
||||
private static extern bool SaferCreateLevel(SaferScope scope, SaferLevel level, SaferOpenFlags openFlags, out IntPtr pLevelHandle, IntPtr lpReserved);
|
||||
|
||||
[DllImport("advapi32", SetLastError = true, CallingConvention = CallingConvention.StdCall)]
|
||||
private static extern bool SaferComputeTokenFromLevel(IntPtr LevelHandle, IntPtr InAccessToken, out IntPtr OutAccessToken, int dwFlags, IntPtr lpReserved);
|
||||
|
||||
[DllImport("advapi32", SetLastError = true)]
|
||||
private static extern bool SaferCloseLevel(IntPtr hLevelHandle);
|
||||
|
||||
[DllImport("advapi32.dll", SetLastError = true, CharSet = CharSet.Unicode)]
|
||||
private static extern bool ConvertStringSidToSid(string StringSid, out IntPtr ptrSid);
|
||||
|
||||
[DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
|
||||
[return: MarshalAs(UnmanagedType.Bool)]
|
||||
private static extern bool CloseHandle(IntPtr hObject);
|
||||
|
||||
private static bool SafeCloseHandle(IntPtr hObject)
|
||||
{
|
||||
return (hObject == IntPtr.Zero) ? true : CloseHandle(hObject);
|
||||
}
|
||||
|
||||
[DllImport("kernel32.dll", SetLastError = true)]
|
||||
static extern IntPtr LocalFree(IntPtr hMem);
|
||||
|
||||
enum TOKEN_INFORMATION_CLASS
|
||||
{
|
||||
/// <summary>
|
||||
/// The buffer receives a TOKEN_USER structure that contains the user account of the token.
|
||||
/// </summary>
|
||||
TokenUser = 1,
|
||||
|
||||
/// <summary>
|
||||
/// The buffer receives a TOKEN_GROUPS structure that contains the group accounts associated with the token.
|
||||
/// </summary>
|
||||
TokenGroups,
|
||||
|
||||
/// <summary>
|
||||
/// The buffer receives a TOKEN_PRIVILEGES structure that contains the privileges of the token.
|
||||
/// </summary>
|
||||
TokenPrivileges,
|
||||
|
||||
/// <summary>
|
||||
/// The buffer receives a TOKEN_OWNER structure that contains the default owner security identifier (SID) for newly created objects.
|
||||
/// </summary>
|
||||
TokenOwner,
|
||||
|
||||
/// <summary>
|
||||
/// The buffer receives a TOKEN_PRIMARY_GROUP structure that contains the default primary group SID for newly created objects.
|
||||
/// </summary>
|
||||
TokenPrimaryGroup,
|
||||
|
||||
/// <summary>
|
||||
/// The buffer receives a TOKEN_DEFAULT_DACL structure that contains the default DACL for newly created objects.
|
||||
/// </summary>
|
||||
TokenDefaultDacl,
|
||||
|
||||
/// <summary>
|
||||
/// The buffer receives a TOKEN_SOURCE structure that contains the source of the token. TOKEN_QUERY_SOURCE access is needed to retrieve this information.
|
||||
/// </summary>
|
||||
TokenSource,
|
||||
|
||||
/// <summary>
|
||||
/// The buffer receives a TOKEN_TYPE value that indicates whether the token is a primary or impersonation token.
|
||||
/// </summary>
|
||||
TokenType,
|
||||
|
||||
/// <summary>
|
||||
/// The buffer receives a SECURITY_IMPERSONATION_LEVEL value that indicates the impersonation level of the token. If the access token is not an impersonation token, the function fails.
|
||||
/// </summary>
|
||||
TokenImpersonationLevel,
|
||||
|
||||
/// <summary>
|
||||
/// The buffer receives a TOKEN_STATISTICS structure that contains various token statistics.
|
||||
/// </summary>
|
||||
TokenStatistics,
|
||||
|
||||
/// <summary>
|
||||
/// The buffer receives a TOKEN_GROUPS structure that contains the list of restricting SIDs in a restricted token.
|
||||
/// </summary>
|
||||
TokenRestrictedSids,
|
||||
|
||||
/// <summary>
|
||||
/// The buffer receives a DWORD value that indicates the Terminal Services session identifier that is associated with the token.
|
||||
/// </summary>
|
||||
TokenSessionId,
|
||||
|
||||
/// <summary>
|
||||
/// The buffer receives a TOKEN_GROUPS_AND_PRIVILEGES structure that contains the user SID, the group accounts, the restricted SIDs, and the authentication ID associated with the token.
|
||||
/// </summary>
|
||||
TokenGroupsAndPrivileges,
|
||||
|
||||
/// <summary>
|
||||
/// Reserved.
|
||||
/// </summary>
|
||||
TokenSessionReference,
|
||||
|
||||
/// <summary>
|
||||
/// The buffer receives a DWORD value that is nonzero if the token includes the SANDBOX_INERT flag.
|
||||
/// </summary>
|
||||
TokenSandBoxInert,
|
||||
|
||||
/// <summary>
|
||||
/// Reserved.
|
||||
/// </summary>
|
||||
TokenAuditPolicy,
|
||||
|
||||
/// <summary>
|
||||
/// The buffer receives a TOKEN_ORIGIN value.
|
||||
/// </summary>
|
||||
TokenOrigin,
|
||||
|
||||
/// <summary>
|
||||
/// The buffer receives a TOKEN_ELEVATION_TYPE value that specifies the elevation level of the token.
|
||||
/// </summary>
|
||||
TokenElevationType,
|
||||
|
||||
/// <summary>
|
||||
/// The buffer receives a TOKEN_LINKED_TOKEN structure that contains a handle to another token that is linked to this token.
|
||||
/// </summary>
|
||||
TokenLinkedToken,
|
||||
|
||||
/// <summary>
|
||||
/// The buffer receives a TOKEN_ELEVATION structure that specifies whether the token is elevated.
|
||||
/// </summary>
|
||||
TokenElevation,
|
||||
|
||||
/// <summary>
|
||||
/// The buffer receives a DWORD value that is nonzero if the token has ever been filtered.
|
||||
/// </summary>
|
||||
TokenHasRestrictions,
|
||||
|
||||
/// <summary>
|
||||
/// The buffer receives a TOKEN_ACCESS_INFORMATION structure that specifies security information contained in the token.
|
||||
/// </summary>
|
||||
TokenAccessInformation,
|
||||
|
||||
/// <summary>
|
||||
/// The buffer receives a DWORD value that is nonzero if virtualization is allowed for the token.
|
||||
/// </summary>
|
||||
TokenVirtualizationAllowed,
|
||||
|
||||
/// <summary>
|
||||
/// The buffer receives a DWORD value that is nonzero if virtualization is enabled for the token.
|
||||
/// </summary>
|
||||
TokenVirtualizationEnabled,
|
||||
|
||||
/// <summary>
|
||||
/// The buffer receives a TOKEN_MANDATORY_LABEL structure that specifies the token's integrity level.
|
||||
/// </summary>
|
||||
TokenIntegrityLevel,
|
||||
|
||||
/// <summary>
|
||||
/// The buffer receives a DWORD value that is nonzero if the token has the UIAccess flag set.
|
||||
/// </summary>
|
||||
TokenUIAccess,
|
||||
|
||||
/// <summary>
|
||||
/// The buffer receives a TOKEN_MANDATORY_POLICY structure that specifies the token's mandatory integrity policy.
|
||||
/// </summary>
|
||||
TokenMandatoryPolicy,
|
||||
|
||||
/// <summary>
|
||||
/// The buffer receives the token's logon security identifier (SID).
|
||||
/// </summary>
|
||||
TokenLogonSid,
|
||||
|
||||
/// <summary>
|
||||
/// The maximum value for this enumeration
|
||||
/// </summary>
|
||||
MaxTokenInfoClass
|
||||
}
|
||||
|
||||
[DllImport("advapi32.dll", SetLastError = true)]
|
||||
static extern Boolean SetTokenInformation(
|
||||
IntPtr TokenHandle,
|
||||
TOKEN_INFORMATION_CLASS TokenInformationClass,
|
||||
IntPtr TokenInformation,
|
||||
UInt32 TokenInformationLength);
|
||||
|
||||
const uint SE_GROUP_INTEGRITY = 0x00000020;
|
||||
|
||||
[DllImport("advapi32.dll", SetLastError = true, CharSet = CharSet.Unicode)]
|
||||
static extern bool CreateProcessAsUser(
|
||||
IntPtr hToken,
|
||||
string? lpApplicationName,
|
||||
StringBuilder? lpCommandLine,
|
||||
IntPtr lpProcessAttributes,
|
||||
IntPtr lpThreadAttributes,
|
||||
bool bInheritHandles,
|
||||
uint dwCreationFlags,
|
||||
IntPtr lpEnvironment,
|
||||
string? lpCurrentDirectory,
|
||||
ref STARTUPINFO lpStartupInfo,
|
||||
out PROCESS_INFORMATION lpProcessInformation);
|
||||
}
|
||||
@@ -30,15 +30,22 @@ public class Startup
|
||||
var task = taskService.RootFolder.AllTasks.FirstOrDefault(t => t.Name == taskName);
|
||||
if (task != null)
|
||||
{
|
||||
string strExeFilePath = Application.ExecutablePath.Trim();
|
||||
string action = task.Definition.Actions.FirstOrDefault()!.ToString().Trim();
|
||||
if (!strExeFilePath.Equals(action, StringComparison.OrdinalIgnoreCase) && !File.Exists(action))
|
||||
try
|
||||
{
|
||||
Logger.WriteLine("File doesn't exist: " + action);
|
||||
Logger.WriteLine("Rescheduling to: " + strExeFilePath);
|
||||
UnSchedule();
|
||||
Schedule();
|
||||
string strExeFilePath = Application.ExecutablePath.Trim();
|
||||
string action = task.Definition.Actions.FirstOrDefault()!.ToString().Trim();
|
||||
if (!strExeFilePath.Equals(action, StringComparison.OrdinalIgnoreCase) && !File.Exists(action))
|
||||
{
|
||||
Logger.WriteLine("File doesn't exist: " + action);
|
||||
Logger.WriteLine("Rescheduling to: " + strExeFilePath);
|
||||
UnSchedule();
|
||||
Schedule();
|
||||
}
|
||||
} catch (Exception ex)
|
||||
{
|
||||
Logger.WriteLine($"Can't check startup task: {ex.Message}");
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System.Drawing.Drawing2D;
|
||||
using System.Diagnostics;
|
||||
using System.Drawing.Drawing2D;
|
||||
|
||||
namespace GHelper.Helpers
|
||||
{
|
||||
@@ -50,7 +51,8 @@ namespace GHelper.Helpers
|
||||
MicrophoneMute,
|
||||
FnLock,
|
||||
Battery,
|
||||
Charger
|
||||
Charger,
|
||||
Controller
|
||||
}
|
||||
|
||||
public class ToastForm : OSDNativeForm
|
||||
@@ -71,6 +73,8 @@ namespace GHelper.Helpers
|
||||
protected override void PerformPaint(PaintEventArgs e)
|
||||
{
|
||||
Brush brush = new SolidBrush(Color.FromArgb(150, Color.Black));
|
||||
|
||||
e.Graphics.SmoothingMode = SmoothingMode.AntiAlias;
|
||||
e.Graphics.FillRoundedRectangle(brush, Bound, 10);
|
||||
|
||||
StringFormat format = new StringFormat();
|
||||
@@ -111,6 +115,9 @@ namespace GHelper.Helpers
|
||||
case ToastIcon.Charger:
|
||||
icon = Properties.Resources.icons8_charging_battery_96;
|
||||
break;
|
||||
case ToastIcon.Controller:
|
||||
icon = Properties.Resources.icons8_controller_96;
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
@@ -130,6 +137,16 @@ namespace GHelper.Helpers
|
||||
|
||||
}
|
||||
|
||||
public static void ReadText(string text)
|
||||
{
|
||||
ProcessStartInfo startInfo = new ProcessStartInfo();
|
||||
startInfo.FileName = "PowerShell.exe";
|
||||
startInfo.Arguments = $"-Command \"Add-Type -AssemblyName System.Speech; (New-Object System.Speech.Synthesis.SpeechSynthesizer).Speak('{text}')\"";
|
||||
startInfo.CreateNoWindow = true;
|
||||
Process.Start(startInfo);
|
||||
}
|
||||
|
||||
|
||||
public void RunToast(string text, ToastIcon? icon = null)
|
||||
{
|
||||
|
||||
@@ -152,6 +169,14 @@ namespace GHelper.Helpers
|
||||
|
||||
Show();
|
||||
timer.Start();
|
||||
|
||||
//if (AppConfig.Is("narrator")) ReadText(text);
|
||||
|
||||
Program.settingsForm.AccessibilityObject.RaiseAutomationNotification(
|
||||
System.Windows.Forms.Automation.AutomationNotificationKind.ActionCompleted,
|
||||
System.Windows.Forms.Automation.AutomationNotificationProcessing.MostRecent,
|
||||
text);
|
||||
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
23
app/Helpers/TouchscreenHelper.cs
Normal file
23
app/Helpers/TouchscreenHelper.cs
Normal file
@@ -0,0 +1,23 @@
|
||||
using GHelper.Helpers;
|
||||
|
||||
public static class TouchscreenHelper
|
||||
{
|
||||
public static bool? ToggleTouchscreen()
|
||||
{
|
||||
try
|
||||
{
|
||||
ProcessHelper.RunAsAdmin();
|
||||
|
||||
var status = !ProcessHelper.RunCMD("powershell", "(Get-PnpDevice -FriendlyName '*touch*screen*').Status").Contains("OK");
|
||||
ProcessHelper.RunCMD("powershell", (status ? "Enable-PnpDevice" : "Disable-PnpDevice") + " -InstanceId (Get-PnpDevice -FriendlyName '*touch*screen*').InstanceId -Confirm:$false");
|
||||
|
||||
return status;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Logger.WriteLine($"Can't toggle touchscreen: {ex.Message}");
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -85,7 +85,8 @@ namespace GHelper.Input
|
||||
|
||||
InitBacklightTimer();
|
||||
|
||||
if (AppConfig.ContainsModel("VivoBook")) Program.acpi.DeviceSet(AsusACPI.FnLock, AppConfig.Is("fn_lock") ? 1 : 0, "FnLock");
|
||||
if (AppConfig.IsVivoZenbook())
|
||||
Program.acpi.DeviceSet(AsusACPI.FnLock, AppConfig.Is("fn_lock") ^ AppConfig.IsInvertedFNLock() ? 1 : 0, "FnLock");
|
||||
|
||||
}
|
||||
|
||||
@@ -116,11 +117,21 @@ namespace GHelper.Input
|
||||
|
||||
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"))
|
||||
{
|
||||
hook.RegisterHotKey(ModifierKeys.Shift | ModifierKeys.Control | ModifierKeys.Alt, Keys.F13);
|
||||
|
||||
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.VolumeUp);
|
||||
hook.RegisterHotKey(ModifierKeys.Shift, Keys.VolumeDown);
|
||||
@@ -134,9 +145,17 @@ namespace GHelper.Input
|
||||
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
|
||||
|
||||
if (AppConfig.Is("fn_lock") && !AppConfig.ContainsModel("VivoBook"))
|
||||
if (AppConfig.Is("fn_lock") && !AppConfig.IsVivoZenbook())
|
||||
for (Keys i = Keys.F1; i <= Keys.F11; i++) hook.RegisterHotKey(ModifierKeys.None, i);
|
||||
|
||||
// Arrow-lock group
|
||||
@@ -199,6 +218,9 @@ namespace GHelper.Input
|
||||
case 3:
|
||||
KeyboardHook.KeyKeyKeyPress((Keys)hexKeys[0], (Keys)hexKeys[1], (Keys)hexKeys[2]);
|
||||
break;
|
||||
case 4:
|
||||
KeyboardHook.KeyKeyKeyKeyPress((Keys)hexKeys[0], (Keys)hexKeys[1], (Keys)hexKeys[2], (Keys)hexKeys[3]);
|
||||
break;
|
||||
default:
|
||||
LaunchProcess(command);
|
||||
break;
|
||||
@@ -229,13 +251,20 @@ namespace GHelper.Input
|
||||
|
||||
}
|
||||
|
||||
static void SetBrightnessDimming(int delta)
|
||||
{
|
||||
int brightness = VisualControl.SetBrightness(delta: delta);
|
||||
if (brightness >= 0)
|
||||
Program.toast.RunToast(brightness + "%", (delta < 0) ? ToastIcon.BrightnessDown : ToastIcon.BrightnessUp);
|
||||
}
|
||||
|
||||
public void KeyPressed(object sender, KeyPressedEventArgs e)
|
||||
{
|
||||
|
||||
Logger.WriteLine(e.Key.ToString() + " " + e.Modifier.ToString());
|
||||
|
||||
if (e.Modifier == ModifierKeys.None)
|
||||
{
|
||||
Logger.WriteLine(e.Key.ToString());
|
||||
|
||||
if (AppConfig.NoMKeys())
|
||||
{
|
||||
switch (e.Key)
|
||||
@@ -262,7 +291,7 @@ namespace GHelper.Input
|
||||
}
|
||||
}
|
||||
|
||||
if (AppConfig.NoAura())
|
||||
if (AppConfig.MediaKeys())
|
||||
{
|
||||
switch (e.Key)
|
||||
{
|
||||
@@ -351,12 +380,42 @@ namespace GHelper.Input
|
||||
|
||||
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.F13:
|
||||
ToggleScreenRate();
|
||||
break;
|
||||
case Keys.F14:
|
||||
Program.settingsForm.gpuControl.SetGPUMode(AsusACPI.GPUModeEco);
|
||||
break;
|
||||
case Keys.F15:
|
||||
Program.settingsForm.gpuControl.SetGPUMode(AsusACPI.GPUModeStandard);
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -424,18 +483,25 @@ namespace GHelper.Input
|
||||
case "screenshot":
|
||||
KeyboardHook.KeyPress(Keys.Snapshot);
|
||||
break;
|
||||
case "lock":
|
||||
Logger.WriteLine("Screen lock");
|
||||
NativeMethods.LockScreen();
|
||||
break;
|
||||
case "screen":
|
||||
Logger.WriteLine("Screen off toggle");
|
||||
NativeMethods.TurnOffScreen();
|
||||
break;
|
||||
case "miniled":
|
||||
if (ScreenCCD.GetHDRStatus()) return;
|
||||
int miniled = screenControl.ToogleMiniled();
|
||||
Program.toast.RunToast(miniled == 1 ? "Multi-Zone" : "Single-Zone", miniled == 1 ? ToastIcon.BrightnessUp : ToastIcon.BrightnessDown);
|
||||
string miniledName = screenControl.ToogleMiniled();
|
||||
Program.toast.RunToast(miniledName, miniledName == Properties.Strings.OneZone ? ToastIcon.BrightnessDown : ToastIcon.BrightnessUp);
|
||||
break;
|
||||
case "aura":
|
||||
Program.settingsForm.BeginInvoke(Program.settingsForm.CycleAuraMode);
|
||||
break;
|
||||
case "visual":
|
||||
Program.settingsForm.BeginInvoke(Program.settingsForm.CycleVisualMode);
|
||||
break;
|
||||
case "performance":
|
||||
modeControl.CyclePerformanceMode(Control.ModifierKeys == Keys.Shift);
|
||||
break;
|
||||
@@ -457,8 +523,8 @@ namespace GHelper.Input
|
||||
break;
|
||||
case "micmute":
|
||||
bool muteStatus = Audio.ToggleMute();
|
||||
Program.toast.RunToast(muteStatus ? "Muted" : "Unmuted", muteStatus ? ToastIcon.MicrophoneMute : ToastIcon.Microphone);
|
||||
if (AppConfig.IsVivobook()) Program.acpi.DeviceSet(AsusACPI.MICMUTE_LED, muteStatus ? 1 : 0, "MicmuteLed");
|
||||
Program.toast.RunToast(muteStatus ? Properties.Strings.Muted : Properties.Strings.Unmuted, muteStatus ? ToastIcon.MicrophoneMute : ToastIcon.Microphone);
|
||||
if (AppConfig.IsVivoZenbook()) Program.acpi.DeviceSet(AsusACPI.MicMuteLed, muteStatus ? 1 : 0, "MicmuteLed");
|
||||
break;
|
||||
case "brightness_up":
|
||||
SetBrightness(+10);
|
||||
@@ -478,6 +544,14 @@ namespace GHelper.Input
|
||||
case "calculator":
|
||||
LaunchProcess("calc");
|
||||
break;
|
||||
case "controller":
|
||||
Program.settingsForm.BeginInvoke(Program.settingsForm.allyControl.ToggleModeHotkey);
|
||||
break;
|
||||
case "touchscreen":
|
||||
var touchscreenStatus = TouchscreenHelper.ToggleTouchscreen();
|
||||
if (touchscreenStatus is not null)
|
||||
Program.toast.RunToast(Properties.Strings.Touchscreen + " " + ((bool)touchscreenStatus ? Properties.Strings.On : Properties.Strings.Off), ToastIcon.Touchpad);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@@ -496,7 +570,7 @@ namespace GHelper.Input
|
||||
{
|
||||
if (hotkey || !AppConfig.IsHardwareTouchpadToggle()) ToggleTouchpad();
|
||||
Thread.Sleep(200);
|
||||
Program.toast.RunToast(GetTouchpadState() ? "On" : "Off", ToastIcon.Touchpad);
|
||||
Program.toast.RunToast(GetTouchpadState() ? Properties.Strings.On : Properties.Strings.Off, ToastIcon.Touchpad);
|
||||
}
|
||||
|
||||
static void ToggleTouchpad()
|
||||
@@ -515,22 +589,22 @@ namespace GHelper.Input
|
||||
AppConfig.Set("arrow_lock", arLock);
|
||||
|
||||
Program.settingsForm.BeginInvoke(Program.inputDispatcher.RegisterKeys);
|
||||
Program.toast.RunToast("Arrow-Lock " + (arLock == 1 ? "On" : "Off"), ToastIcon.FnLock);
|
||||
Program.toast.RunToast("Arrow-Lock " + (arLock == 1 ? Properties.Strings.On : Properties.Strings.Off), ToastIcon.FnLock);
|
||||
}
|
||||
|
||||
public static void ToggleFnLock()
|
||||
{
|
||||
int fnLock = AppConfig.Is("fn_lock") ? 0 : 1;
|
||||
AppConfig.Set("fn_lock", fnLock);
|
||||
bool fnLock = !AppConfig.Is("fn_lock");
|
||||
AppConfig.Set("fn_lock", fnLock ? 1 : 0);
|
||||
|
||||
if (AppConfig.ContainsModel("VivoBook"))
|
||||
Program.acpi.DeviceSet(AsusACPI.FnLock, fnLock == 1 ? 1 : 0, "FnLock");
|
||||
if (AppConfig.IsVivoZenbook())
|
||||
Program.acpi.DeviceSet(AsusACPI.FnLock, fnLock ^ AppConfig.IsInvertedFNLock() ? 1 : 0, "FnLock");
|
||||
else
|
||||
Program.settingsForm.BeginInvoke(Program.inputDispatcher.RegisterKeys);
|
||||
|
||||
Program.settingsForm.BeginInvoke(Program.settingsForm.VisualiseFnLock);
|
||||
|
||||
Program.toast.RunToast("Fn-Lock " + (fnLock == 1 ? "On" : "Off"), ToastIcon.FnLock);
|
||||
Program.toast.RunToast(fnLock ? Properties.Strings.FnLockOn : Properties.Strings.FnLockOff, ToastIcon.FnLock);
|
||||
}
|
||||
|
||||
public static void TabletMode()
|
||||
@@ -568,6 +642,12 @@ namespace GHelper.Input
|
||||
case 56:
|
||||
KeyProcess("m4");
|
||||
return;
|
||||
case 162:
|
||||
OnScreenKeyboard.Show();
|
||||
return;
|
||||
case 124:
|
||||
KeyProcess("m3");
|
||||
return;
|
||||
|
||||
}
|
||||
}
|
||||
@@ -577,6 +657,9 @@ namespace GHelper.Input
|
||||
{
|
||||
switch (EventID)
|
||||
{
|
||||
case 134: // FN + F12 ON OLD DEVICES
|
||||
KeyProcess("m4");
|
||||
return;
|
||||
case 124: // M3
|
||||
KeyProcess("m3");
|
||||
return;
|
||||
@@ -587,7 +670,7 @@ namespace GHelper.Input
|
||||
KeyProcess("m6");
|
||||
return;
|
||||
case 136: // FN + F12
|
||||
Program.acpi.DeviceSet(AsusACPI.UniversalControl, AsusACPI.Airplane, "Airplane");
|
||||
if (!AppConfig.IsNoAirplaneMode()) Program.acpi.DeviceSet(AsusACPI.UniversalControl, AsusACPI.Airplane, "Airplane");
|
||||
return;
|
||||
case 181: // FN + Numpad Enter
|
||||
KeyProcess("fne");
|
||||
@@ -599,6 +682,9 @@ namespace GHelper.Input
|
||||
case 178: // FN+F4
|
||||
KeyProcess("fnf4");
|
||||
return;
|
||||
case 138: // Fn + V
|
||||
KeyProcess("fnv");
|
||||
return;
|
||||
case 158: // Fn + C
|
||||
KeyProcess("fnc");
|
||||
return;
|
||||
@@ -620,10 +706,18 @@ namespace GHelper.Input
|
||||
case 199: // ON Z13 - FN+F11 - cycles backlight
|
||||
SetBacklight(4);
|
||||
return;
|
||||
case 51: // Fn+F6 on old TUFs
|
||||
case 53: // Fn+F6 on GA-502DU model
|
||||
NativeMethods.TurnOffScreen();
|
||||
return;
|
||||
case 46: // Fn + F4 Vivobook Brightness down
|
||||
if (Control.ModifierKeys == Keys.Control && AppConfig.IsOLED())
|
||||
{
|
||||
SetBrightnessDimming(-10);
|
||||
}
|
||||
break;
|
||||
case 47: // Fn + F5 Vivobook Brightness up
|
||||
if (Control.ModifierKeys == Keys.Control && AppConfig.IsOLED())
|
||||
{
|
||||
SetBrightnessDimming(10);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -643,8 +737,14 @@ namespace GHelper.Input
|
||||
if (AppConfig.IsDUO()) SetScreenpad(-10);
|
||||
else Program.settingsForm.BeginInvoke(Program.settingsForm.CycleMatrix, -1);
|
||||
}
|
||||
else if (Control.ModifierKeys == Keys.Control && AppConfig.IsOLED())
|
||||
{
|
||||
SetBrightnessDimming(-10);
|
||||
}
|
||||
else
|
||||
{
|
||||
Program.acpi.DeviceSet(AsusACPI.UniversalControl, AsusACPI.Brightness_Down, "Brightness");
|
||||
}
|
||||
break;
|
||||
case 32: // FN+F8
|
||||
if (Control.ModifierKeys == Keys.Shift)
|
||||
@@ -652,8 +752,17 @@ namespace GHelper.Input
|
||||
if (AppConfig.IsDUO()) SetScreenpad(10);
|
||||
else Program.settingsForm.BeginInvoke(Program.settingsForm.CycleMatrix, 1);
|
||||
}
|
||||
else if (Control.ModifierKeys == Keys.Control && AppConfig.IsOLED())
|
||||
{
|
||||
SetBrightnessDimming(10);
|
||||
}
|
||||
else
|
||||
{
|
||||
Program.acpi.DeviceSet(AsusACPI.UniversalControl, AsusACPI.Brightness_Up, "Brightness");
|
||||
}
|
||||
break;
|
||||
case 133: // Camera Toggle
|
||||
ToggleCamera();
|
||||
break;
|
||||
case 107: // FN+F10
|
||||
ToggleTouchpadEvent();
|
||||
@@ -667,6 +776,10 @@ namespace GHelper.Input
|
||||
else
|
||||
SetScreenpad(100);
|
||||
break;
|
||||
case 51: // Fn+F6 on old TUFs
|
||||
case 53: // Fn+F6 on GA-502DU model
|
||||
NativeMethods.TurnOffScreen();
|
||||
return;
|
||||
|
||||
|
||||
}
|
||||
@@ -718,7 +831,7 @@ namespace GHelper.Input
|
||||
|
||||
if (!OptimizationService.IsOSDRunning())
|
||||
{
|
||||
string[] backlightNames = new string[] { "Off", "Low", "Mid", "Max" };
|
||||
string[] backlightNames = new string[] { Properties.Strings.BacklightOff, Properties.Strings.BacklightLow, Properties.Strings.BacklightMid, Properties.Strings.BacklightMax };
|
||||
Program.toast.RunToast(backlightNames[backlight], delta > 0 ? ToastIcon.BacklightUp : ToastIcon.BacklightDown);
|
||||
}
|
||||
|
||||
@@ -727,12 +840,84 @@ namespace GHelper.Input
|
||||
public static void ToggleScreenpad()
|
||||
{
|
||||
int toggle = AppConfig.Is("screenpad_toggle") ? 0 : 1;
|
||||
int brightness = toggle == 0 ? -10 : AppConfig.Get("screenpad", 100);
|
||||
|
||||
Debug.WriteLine($"Screenpad toggle = {toggle}");
|
||||
|
||||
ApplyScreenpadAction(brightness, true);
|
||||
|
||||
Program.acpi.DeviceSet(AsusACPI.ScreenPadToggle, toggle, "ScreenpadToggle");
|
||||
AppConfig.Set("screenpad_toggle", toggle);
|
||||
|
||||
Program.toast.RunToast($"Screen Pad " + (toggle == 1 ? "On" : "Off"), toggle > 0 ? ToastIcon.BrightnessUp : ToastIcon.BrightnessDown);
|
||||
}
|
||||
|
||||
public static void ToggleScreenRate()
|
||||
{
|
||||
AppConfig.Set("screen_auto", 0);
|
||||
screenControl.ToggleScreenRate();
|
||||
}
|
||||
|
||||
public static void ToggleCamera()
|
||||
{
|
||||
if (!ProcessHelper.IsUserAdministrator()) return;
|
||||
|
||||
string CameraRegistryKeyPath = @"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\webcam";
|
||||
string CameraRegistryValueName = "Value";
|
||||
|
||||
try
|
||||
{
|
||||
var status = (string?)Registry.GetValue(CameraRegistryKeyPath, CameraRegistryValueName, "");
|
||||
|
||||
if (status == "Allow") status = "Deny";
|
||||
else if (status == "Deny") status = "Allow";
|
||||
else
|
||||
{
|
||||
Logger.WriteLine("Unknown camera status");
|
||||
return;
|
||||
}
|
||||
|
||||
Registry.SetValue(CameraRegistryKeyPath, CameraRegistryValueName, status, RegistryValueKind.String);
|
||||
Program.acpi.DeviceSet(AsusACPI.CameraLed, (status == "Deny" ? 1 : 0), "Camera");
|
||||
Program.toast.RunToast($"Camera " + (status == "Deny" ? "Off" : "On"));
|
||||
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Logger.WriteLine(ex.ToString());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private static System.Threading.Timer screenpadActionTimer;
|
||||
private static int screenpadBrightnessToSet;
|
||||
public static void ApplyScreenpadAction(int brightness, bool doToggle = false)
|
||||
{
|
||||
var delay = AppConfig.Get("screenpad_delay", 1500);
|
||||
|
||||
//Action
|
||||
Action<int> action = (b) =>
|
||||
{
|
||||
if (b >= 0) Program.acpi.DeviceSet(AsusACPI.ScreenPadToggle, 1, "ScreenpadOn");
|
||||
Program.acpi.DeviceSet(AsusACPI.ScreenPadBrightness, Math.Max(b * 255 / 100, 0), "Screenpad");
|
||||
if (b < 0) Program.acpi.DeviceSet(AsusACPI.ScreenPadToggle, 0, "ScreenpadOff");
|
||||
};
|
||||
|
||||
if(delay <= 0 || (brightness > 0 && brightness < 100 && doToggle == false)) //instant action
|
||||
{
|
||||
action(brightness);
|
||||
}
|
||||
else //delayed action
|
||||
{
|
||||
//Timer Approach
|
||||
if (screenpadActionTimer == null)
|
||||
{
|
||||
screenpadActionTimer = new System.Threading.Timer(_ => action(screenpadBrightnessToSet), null, Timeout.Infinite, Timeout.Infinite);
|
||||
}
|
||||
//Start Timer
|
||||
screenpadBrightnessToSet = brightness;
|
||||
screenpadActionTimer.Change(delay, Timeout.Infinite);
|
||||
}
|
||||
}
|
||||
|
||||
public static void SetScreenpad(int delta)
|
||||
{
|
||||
@@ -743,7 +928,6 @@ namespace GHelper.Input
|
||||
if (brightness < 0) brightness = 100;
|
||||
else if (brightness >= 100) brightness = 0;
|
||||
else brightness = -10;
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -752,11 +936,7 @@ namespace GHelper.Input
|
||||
|
||||
AppConfig.Set("screenpad", brightness);
|
||||
|
||||
if (brightness >= 0) Program.acpi.DeviceSet(AsusACPI.ScreenPadToggle, 1, "ScreenpadOn");
|
||||
|
||||
Program.acpi.DeviceSet(AsusACPI.ScreenPadBrightness, Math.Max(brightness * 255 / 100, 0), "Screenpad");
|
||||
|
||||
if (brightness < 0) Program.acpi.DeviceSet(AsusACPI.ScreenPadToggle, 0, "ScreenpadOff");
|
||||
ApplyScreenpadAction(brightness);
|
||||
|
||||
string toast;
|
||||
|
||||
@@ -765,44 +945,30 @@ namespace GHelper.Input
|
||||
else toast = brightness.ToString() + "%";
|
||||
|
||||
Program.toast.RunToast($"Screen Pad {toast}", delta > 0 ? ToastIcon.BrightnessUp : ToastIcon.BrightnessDown);
|
||||
|
||||
}
|
||||
|
||||
|
||||
static void LaunchProcess(string command = "")
|
||||
{
|
||||
|
||||
if (string.IsNullOrEmpty(command)) return;
|
||||
try
|
||||
{
|
||||
|
||||
//string executable = command.Split(' ')[0];
|
||||
//string arguments = command.Substring(executable.Length).Trim();
|
||||
ProcessStartInfo startInfo = new ProcessStartInfo("cmd", "/C " + command);
|
||||
|
||||
startInfo.RedirectStandardOutput = true;
|
||||
startInfo.RedirectStandardError = true;
|
||||
startInfo.UseShellExecute = false;
|
||||
startInfo.CreateNoWindow = true;
|
||||
|
||||
startInfo.WorkingDirectory = Environment.CurrentDirectory;
|
||||
//startInfo.Arguments = arguments;
|
||||
Process proc = Process.Start(startInfo);
|
||||
if (command.StartsWith("shutdown"))
|
||||
ProcessHelper.RunCMD("cmd", "/C " + command);
|
||||
else
|
||||
RestrictedProcessHelper.RunAsRestrictedUser(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System), "cmd.exe"), "/C " + command);
|
||||
}
|
||||
catch
|
||||
catch (Exception ex)
|
||||
{
|
||||
Logger.WriteLine("Failed to run " + command);
|
||||
Logger.WriteLine($"Failed to run: {command} {ex.Message}");
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
static void WatcherEventArrived(object sender, EventArrivedEventArgs e)
|
||||
{
|
||||
if (e.NewEvent is null) return;
|
||||
int EventID = int.Parse(e.NewEvent["EventID"].ToString());
|
||||
Logger.WriteLine("WMI event " + EventID);
|
||||
if (AppConfig.NoWMI()) return;
|
||||
HandleEvent(EventID);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,35 +21,77 @@ public sealed class KeyboardHook : IDisposable
|
||||
private const byte VK_LWIN = 0x5B;
|
||||
private const byte VK_LCONTROL = 0xA2;
|
||||
|
||||
[DllImport("user32.dll")]
|
||||
public static extern void mouse_event(uint dwFlags, uint dx, uint dy, uint cButtons, uint dwExtraInfo);
|
||||
//Mouse actions
|
||||
private const int MOUSEEVENTF_LEFTDOWN = 0x02;
|
||||
private const int MOUSEEVENTF_LEFTUP = 0x04;
|
||||
|
||||
private const int MOUSEEVENTF_RIGHTDOWN = 0x08;
|
||||
private const int MOUSEEVENTF_RIGHTUP = 0x10;
|
||||
|
||||
private const int MOUSEEVENTF_MIDDOWN = 0x20;
|
||||
private const int MOUSEEVENTF_MIDTUP = 0x40;
|
||||
|
||||
public static void KeyPress(Keys key)
|
||||
{
|
||||
switch (key)
|
||||
{
|
||||
case Keys.LButton:
|
||||
mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, (uint)Cursor.Position.X, (uint)Cursor.Position.Y, 0, 0);
|
||||
return;
|
||||
case Keys.RButton:
|
||||
mouse_event(MOUSEEVENTF_RIGHTDOWN | MOUSEEVENTF_RIGHTUP, (uint)Cursor.Position.X, (uint)Cursor.Position.Y, 0, 0);
|
||||
return;
|
||||
case Keys.MButton:
|
||||
mouse_event(MOUSEEVENTF_MIDDOWN | MOUSEEVENTF_MIDTUP, (uint)Cursor.Position.X, (uint)Cursor.Position.Y, 0, 0);
|
||||
return;
|
||||
}
|
||||
|
||||
keybd_event((byte)key, 0, KEYEVENTF_EXTENDEDKEY, IntPtr.Zero);
|
||||
Thread.Sleep(1);
|
||||
keybd_event((byte)key, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, IntPtr.Zero);
|
||||
}
|
||||
|
||||
public static void KeyKeyPress(Keys key, Keys key2)
|
||||
{
|
||||
keybd_event((byte)key, 0, KEYEVENTF_EXTENDEDKEY, IntPtr.Zero);
|
||||
keybd_event((byte)key2, 0, KEYEVENTF_EXTENDEDKEY, IntPtr.Zero);
|
||||
|
||||
Thread.Sleep(1);
|
||||
|
||||
keybd_event((byte)key2, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, IntPtr.Zero);
|
||||
keybd_event((byte)key, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, IntPtr.Zero);
|
||||
}
|
||||
|
||||
public static void KeyKeyKeyPress(Keys key, Keys key2, Keys key3, int sleep = 0)
|
||||
public static void KeyKeyKeyPress(Keys key, Keys key2, Keys key3, int sleep = 1)
|
||||
{
|
||||
keybd_event((byte)key, 0, KEYEVENTF_EXTENDEDKEY, IntPtr.Zero);
|
||||
keybd_event((byte)key2, 0, KEYEVENTF_EXTENDEDKEY, IntPtr.Zero);
|
||||
keybd_event((byte)key3, 0, KEYEVENTF_EXTENDEDKEY, IntPtr.Zero);
|
||||
|
||||
if (sleep > 0)
|
||||
{
|
||||
Thread.Sleep(sleep);
|
||||
}
|
||||
Thread.Sleep(sleep);
|
||||
|
||||
keybd_event((byte)key3, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, IntPtr.Zero);
|
||||
keybd_event((byte)key2, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, IntPtr.Zero);
|
||||
keybd_event((byte)key, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, IntPtr.Zero);
|
||||
}
|
||||
|
||||
public static void KeyKeyKeyKeyPress(Keys key, Keys key2, Keys key3, Keys key4, int sleep = 1)
|
||||
{
|
||||
keybd_event((byte)key, 0, KEYEVENTF_EXTENDEDKEY, IntPtr.Zero);
|
||||
keybd_event((byte)key2, 0, KEYEVENTF_EXTENDEDKEY, IntPtr.Zero);
|
||||
keybd_event((byte)key3, 0, KEYEVENTF_EXTENDEDKEY, IntPtr.Zero);
|
||||
keybd_event((byte)key4, 0, KEYEVENTF_EXTENDEDKEY, IntPtr.Zero);
|
||||
|
||||
Thread.Sleep(sleep);
|
||||
|
||||
keybd_event((byte)key4, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, IntPtr.Zero);
|
||||
keybd_event((byte)key3, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, IntPtr.Zero);
|
||||
keybd_event((byte)key2, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, IntPtr.Zero);
|
||||
keybd_event((byte)key, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, IntPtr.Zero);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Represents the window that is used internally to get the messages.
|
||||
/// </summary>
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using HidSharp;
|
||||
using GHelper.USB;
|
||||
using GHelper.USB;
|
||||
using HidSharp;
|
||||
using System.Text;
|
||||
|
||||
namespace GHelper.Input
|
||||
{
|
||||
@@ -12,20 +13,19 @@ namespace GHelper.Input
|
||||
public KeyboardListener(Action<int> KeyHandler)
|
||||
{
|
||||
_handler = KeyHandler;
|
||||
Listen();
|
||||
var task = Task.Run(Listen);
|
||||
}
|
||||
|
||||
private void Listen () {
|
||||
private void Listen()
|
||||
{
|
||||
|
||||
HidStream? input = AsusHid.FindHidStream(AsusHid.INPUT_ID);
|
||||
|
||||
// Fallback
|
||||
|
||||
int count = 0;
|
||||
|
||||
while (input == null && count++ < 60)
|
||||
while (input == null && count++ < 10)
|
||||
{
|
||||
Aura.Init();
|
||||
Thread.Sleep(1000);
|
||||
input = AsusHid.FindHidStream(AsusHid.INPUT_ID);
|
||||
}
|
||||
@@ -36,41 +36,38 @@ namespace GHelper.Input
|
||||
return;
|
||||
}
|
||||
|
||||
AsusHid.WriteInput(Encoding.ASCII.GetBytes("ZASUS Tech.Inc."));
|
||||
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)
|
||||
{
|
||||
|
||||
// Emergency 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]}");
|
||||
_handler(data[1]);
|
||||
}
|
||||
Logger.WriteLine("Listener terminated");
|
||||
break;
|
||||
}
|
||||
|
||||
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($"Listener exited: {ex.Message}");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
74
app/Matrix.Designer.cs
generated
74
app/Matrix.Designer.cs
generated
@@ -35,6 +35,10 @@
|
||||
panelMain = new Panel();
|
||||
panelButtons = new Panel();
|
||||
buttonReset = new UI.RButton();
|
||||
panelGamma = new Panel();
|
||||
labelGamma = new Label();
|
||||
labelGammaTitle = new Label();
|
||||
trackGamma = new TrackBar();
|
||||
panelContrast = new Panel();
|
||||
labelContrast = new Label();
|
||||
labelContrastTitle = new Label();
|
||||
@@ -53,6 +57,8 @@
|
||||
panelPicture.SuspendLayout();
|
||||
panelMain.SuspendLayout();
|
||||
panelButtons.SuspendLayout();
|
||||
panelGamma.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)trackGamma).BeginInit();
|
||||
panelContrast.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)trackContrast).BeginInit();
|
||||
panelRotation.SuspendLayout();
|
||||
@@ -117,6 +123,7 @@
|
||||
//
|
||||
panelMain.AutoSize = true;
|
||||
panelMain.Controls.Add(panelButtons);
|
||||
panelMain.Controls.Add(panelGamma);
|
||||
panelMain.Controls.Add(panelContrast);
|
||||
panelMain.Controls.Add(panelRotation);
|
||||
panelMain.Controls.Add(panelScaling);
|
||||
@@ -125,7 +132,7 @@
|
||||
panelMain.Dock = DockStyle.Top;
|
||||
panelMain.Location = new Point(20, 20);
|
||||
panelMain.Name = "panelMain";
|
||||
panelMain.Size = new Size(834, 959);
|
||||
panelMain.Size = new Size(834, 1104);
|
||||
panelMain.TabIndex = 5;
|
||||
//
|
||||
// panelButtons
|
||||
@@ -133,7 +140,7 @@
|
||||
panelButtons.Controls.Add(buttonReset);
|
||||
panelButtons.Controls.Add(buttonPicture);
|
||||
panelButtons.Dock = DockStyle.Top;
|
||||
panelButtons.Location = new Point(0, 865);
|
||||
panelButtons.Location = new Point(0, 1010);
|
||||
panelButtons.Name = "panelButtons";
|
||||
panelButtons.Size = new Size(834, 94);
|
||||
panelButtons.TabIndex = 6;
|
||||
@@ -157,6 +164,52 @@
|
||||
buttonReset.TextImageRelation = TextImageRelation.ImageBeforeText;
|
||||
buttonReset.UseVisualStyleBackColor = false;
|
||||
//
|
||||
// panelGamma
|
||||
//
|
||||
panelGamma.AutoSize = true;
|
||||
panelGamma.Controls.Add(labelGamma);
|
||||
panelGamma.Controls.Add(labelGammaTitle);
|
||||
panelGamma.Controls.Add(trackGamma);
|
||||
panelGamma.Dock = DockStyle.Top;
|
||||
panelGamma.Location = new Point(0, 865);
|
||||
panelGamma.Name = "panelGamma";
|
||||
panelGamma.Size = new Size(834, 145);
|
||||
panelGamma.TabIndex = 7;
|
||||
//
|
||||
// labelGamma
|
||||
//
|
||||
labelGamma.Anchor = AnchorStyles.Top | AnchorStyles.Right;
|
||||
labelGamma.Font = new Font("Segoe UI", 9F, FontStyle.Regular, GraphicsUnit.Point);
|
||||
labelGamma.Location = new Point(673, 17);
|
||||
labelGamma.Name = "labelGamma";
|
||||
labelGamma.Size = new Size(125, 32);
|
||||
labelGamma.TabIndex = 4;
|
||||
labelGamma.Text = "Brightness";
|
||||
labelGamma.TextAlign = ContentAlignment.TopRight;
|
||||
//
|
||||
// labelGammaTitle
|
||||
//
|
||||
labelGammaTitle.AutoSize = true;
|
||||
labelGammaTitle.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
|
||||
labelGammaTitle.Location = new Point(16, 17);
|
||||
labelGammaTitle.Name = "labelGammaTitle";
|
||||
labelGammaTitle.Size = new Size(134, 32);
|
||||
labelGammaTitle.TabIndex = 3;
|
||||
labelGammaTitle.Text = "Brightness";
|
||||
//
|
||||
// trackGamma
|
||||
//
|
||||
trackGamma.LargeChange = 50;
|
||||
trackGamma.Location = new Point(16, 52);
|
||||
trackGamma.Maximum = 100;
|
||||
trackGamma.Minimum = -100;
|
||||
trackGamma.Name = "trackGamma";
|
||||
trackGamma.Size = new Size(782, 90);
|
||||
trackGamma.SmallChange = 10;
|
||||
trackGamma.TabIndex = 2;
|
||||
trackGamma.TickFrequency = 20;
|
||||
trackGamma.TickStyle = TickStyle.TopLeft;
|
||||
//
|
||||
// panelContrast
|
||||
//
|
||||
panelContrast.AutoSize = true;
|
||||
@@ -172,13 +225,13 @@
|
||||
// labelContrast
|
||||
//
|
||||
labelContrast.Anchor = AnchorStyles.Top | AnchorStyles.Right;
|
||||
labelContrast.AutoSize = true;
|
||||
labelContrast.Font = new Font("Segoe UI", 9F, FontStyle.Regular, GraphicsUnit.Point);
|
||||
labelContrast.Location = new Point(705, 17);
|
||||
labelContrast.Location = new Point(701, 17);
|
||||
labelContrast.Name = "labelContrast";
|
||||
labelContrast.Size = new Size(103, 32);
|
||||
labelContrast.TabIndex = 4;
|
||||
labelContrast.Text = "Contrast";
|
||||
labelContrast.TextAlign = ContentAlignment.TopRight;
|
||||
//
|
||||
// labelContrastTitle
|
||||
//
|
||||
@@ -222,7 +275,7 @@
|
||||
comboRotation.FormattingEnabled = true;
|
||||
comboRotation.ItemHeight = 32;
|
||||
comboRotation.Items.AddRange(new object[] { "Straight", "Diagonal" });
|
||||
comboRotation.Location = new Point(229, 17);
|
||||
comboRotation.Location = new Point(279, 17);
|
||||
comboRotation.Margin = new Padding(4, 11, 4, 8);
|
||||
comboRotation.Name = "comboRotation";
|
||||
comboRotation.Size = new Size(322, 40);
|
||||
@@ -256,7 +309,7 @@
|
||||
comboScaling.FormattingEnabled = true;
|
||||
comboScaling.ItemHeight = 32;
|
||||
comboScaling.Items.AddRange(new object[] { "Default", "Low", "High", "Bilinear", "Bicubic", "NearestNeighbor", "HighQualityBilinear", "HighQualityBicubic" });
|
||||
comboScaling.Location = new Point(229, 17);
|
||||
comboScaling.Location = new Point(279, 17);
|
||||
comboScaling.Margin = new Padding(4, 11, 4, 8);
|
||||
comboScaling.Name = "comboScaling";
|
||||
comboScaling.Size = new Size(322, 40);
|
||||
@@ -310,7 +363,7 @@
|
||||
AutoScaleDimensions = new SizeF(192F, 192F);
|
||||
AutoScaleMode = AutoScaleMode.Dpi;
|
||||
AutoSize = true;
|
||||
ClientSize = new Size(874, 1006);
|
||||
ClientSize = new Size(874, 1142);
|
||||
Controls.Add(panelMain);
|
||||
MaximizeBox = false;
|
||||
MinimizeBox = false;
|
||||
@@ -326,6 +379,9 @@
|
||||
panelMain.ResumeLayout(false);
|
||||
panelMain.PerformLayout();
|
||||
panelButtons.ResumeLayout(false);
|
||||
panelGamma.ResumeLayout(false);
|
||||
panelGamma.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)trackGamma).EndInit();
|
||||
panelContrast.ResumeLayout(false);
|
||||
panelContrast.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)trackContrast).EndInit();
|
||||
@@ -361,5 +417,9 @@
|
||||
private Label labelContrast;
|
||||
private Label labelContrastTitle;
|
||||
private TrackBar trackContrast;
|
||||
private Panel panelGamma;
|
||||
private Label labelGamma;
|
||||
private Label labelGammaTitle;
|
||||
private TrackBar trackGamma;
|
||||
}
|
||||
}
|
||||
@@ -25,6 +25,14 @@ namespace GHelper
|
||||
InitializeComponent();
|
||||
InitTheme(true);
|
||||
|
||||
Text = Properties.Strings.AnimeMatrix;
|
||||
labelZoomTitle.Text = Properties.Strings.Zoom;
|
||||
labelScaling.Text = Properties.Strings.ScalingQuality;
|
||||
labelRotation.Text = Properties.Strings.ImageRotation;
|
||||
labelContrastTitle.Text = Properties.Strings.Contrast;
|
||||
buttonPicture.Text = Properties.Strings.PictureGif;
|
||||
buttonReset.Text = Properties.Strings.Reset;
|
||||
|
||||
Shown += Matrix_Shown;
|
||||
FormClosing += Matrix_FormClosed;
|
||||
|
||||
@@ -39,10 +47,14 @@ namespace GHelper
|
||||
trackZoom.ValueChanged += TrackZoom_Changed;
|
||||
trackZoom.Value = Math.Min(trackZoom.Maximum, AppConfig.Get("matrix_zoom", 100));
|
||||
|
||||
trackContrast.MouseUp += TrackContrast_MouseUp; ;
|
||||
trackContrast.ValueChanged += TrackContrast_ValueChanged; ;
|
||||
trackContrast.MouseUp += TrackMatrix_MouseUp;
|
||||
trackContrast.ValueChanged += TrackMatrix_ValueChanged;
|
||||
trackContrast.Value = Math.Min(trackContrast.Maximum, AppConfig.Get("matrix_contrast", 100));
|
||||
|
||||
trackGamma.MouseUp += TrackMatrix_MouseUp;
|
||||
trackGamma.ValueChanged += TrackMatrix_ValueChanged;
|
||||
trackGamma.Value = Math.Min(trackGamma.Maximum, AppConfig.Get("matrix_gamma", 0));
|
||||
|
||||
VisualiseMatrix();
|
||||
|
||||
comboScaling.DropDownStyle = ComboBoxStyle.DropDownList;
|
||||
@@ -54,22 +66,24 @@ namespace GHelper
|
||||
comboRotation.SelectedValueChanged += ComboRotation_SelectedValueChanged; ;
|
||||
|
||||
|
||||
uiScale = panelPicture.Width / matrixControl.device.MaxColumns / 3;
|
||||
panelPicture.Height = (int)(matrixControl.device.MaxRows * uiScale);
|
||||
uiScale = panelPicture.Width / matrixControl.deviceMatrix.MaxColumns / 3;
|
||||
panelPicture.Height = (int)(matrixControl.deviceMatrix.MaxRows * uiScale);
|
||||
|
||||
}
|
||||
|
||||
private void TrackContrast_ValueChanged(object? sender, EventArgs e)
|
||||
private void TrackMatrix_ValueChanged(object? sender, EventArgs e)
|
||||
{
|
||||
VisualiseMatrix();
|
||||
}
|
||||
|
||||
private void TrackContrast_MouseUp(object? sender, MouseEventArgs e)
|
||||
private void TrackMatrix_MouseUp(object? sender, MouseEventArgs e)
|
||||
{
|
||||
AppConfig.Set("matrix_contrast", trackContrast.Value);
|
||||
AppConfig.Set("matrix_gamma", trackGamma.Value);
|
||||
SetMatrixPicture();
|
||||
}
|
||||
|
||||
|
||||
private void ComboRotation_SelectedValueChanged(object? sender, EventArgs e)
|
||||
{
|
||||
AppConfig.Set("matrix_rotation", comboRotation.SelectedIndex);
|
||||
@@ -96,10 +110,12 @@ namespace GHelper
|
||||
{
|
||||
labelZoom.Text = trackZoom.Value + "%";
|
||||
labelContrast.Text = trackContrast.Value + "%";
|
||||
labelGamma.Text = trackGamma.Value + "%";
|
||||
}
|
||||
|
||||
private void ButtonReset_Click(object? sender, EventArgs e)
|
||||
{
|
||||
AppConfig.Set("matrix_gamma", 0);
|
||||
AppConfig.Set("matrix_contrast", 100);
|
||||
AppConfig.Set("matrix_zoom", 100);
|
||||
AppConfig.Set("matrix_x", 0);
|
||||
@@ -107,6 +123,7 @@ namespace GHelper
|
||||
|
||||
trackZoom.Value = 100;
|
||||
trackContrast.Value = 100;
|
||||
trackGamma.Value = 0;
|
||||
|
||||
SetMatrixPicture();
|
||||
|
||||
|
||||
@@ -15,19 +15,23 @@ namespace GHelper.Mode
|
||||
|
||||
private int _cpuUV = 0;
|
||||
private int _igpuUV = 0;
|
||||
private bool _ryzenPower = false;
|
||||
|
||||
static System.Timers.Timer reapplyTimer = default!;
|
||||
static System.Timers.Timer modeToggleTimer = default!;
|
||||
|
||||
public ModeControl()
|
||||
{
|
||||
reapplyTimer = new System.Timers.Timer(AppConfig.GetMode("reapply_time", 30) * 1000);
|
||||
reapplyTimer.Elapsed += ReapplyTimer_Elapsed;
|
||||
reapplyTimer.Enabled = false;
|
||||
reapplyTimer.Elapsed += ReapplyTimer_Elapsed;
|
||||
}
|
||||
|
||||
|
||||
private void ReapplyTimer_Elapsed(object? sender, System.Timers.ElapsedEventArgs e)
|
||||
{
|
||||
SetCPUTemp(AppConfig.GetMode("cpu_temp"), false);
|
||||
SetCPUTemp(AppConfig.GetMode("cpu_temp"));
|
||||
SetRyzenPower();
|
||||
}
|
||||
|
||||
public void AutoPerformance(bool powerChanged = false)
|
||||
@@ -54,6 +58,11 @@ namespace GHelper.Mode
|
||||
PowerNative.SetPowerMode(Modes.GetCurrentBase());
|
||||
}
|
||||
|
||||
public void Toast()
|
||||
{
|
||||
Program.toast.RunToast(Modes.GetCurrentName(), SystemInformation.PowerStatus.PowerLineStatus == PowerLineStatus.Online ? ToastIcon.Charger : ToastIcon.Battery);
|
||||
}
|
||||
|
||||
public void SetPerformanceMode(int mode = -1, bool notify = false)
|
||||
{
|
||||
|
||||
@@ -62,33 +71,44 @@ namespace GHelper.Mode
|
||||
|
||||
if (!Modes.Exists(mode)) mode = 0;
|
||||
|
||||
customFans = false;
|
||||
customPower = 0;
|
||||
|
||||
settings.ShowMode(mode);
|
||||
SetModeLabel();
|
||||
|
||||
Modes.SetCurrent(mode);
|
||||
|
||||
int status = Program.acpi.DeviceSet(AsusACPI.PerformanceMode, AppConfig.IsManualModeRequired() ? AsusACPI.PerformanceManual : Modes.GetBase(mode), "Mode");
|
||||
|
||||
// Vivobook fallback
|
||||
if (status != 1)
|
||||
Task.Run(async () =>
|
||||
{
|
||||
int vivoMode = Modes.GetBase(mode);
|
||||
if (vivoMode == 1) vivoMode = 2;
|
||||
else if (vivoMode == 2) vivoMode = 1;
|
||||
Program.acpi.DeviceSet(AsusACPI.VivoBookMode, vivoMode, "VivoMode");
|
||||
}
|
||||
bool reset = AppConfig.IsResetRequired() && (Modes.GetBase(oldMode) == Modes.GetBase(mode)) && customPower > 0 && !AppConfig.IsMode("auto_apply_power");
|
||||
|
||||
customFans = false;
|
||||
customPower = 0;
|
||||
SetModeLabel();
|
||||
|
||||
// Workaround for not properly resetting limits on G14 2024
|
||||
if (reset)
|
||||
{
|
||||
Program.acpi.DeviceSet(AsusACPI.PerformanceMode, (Modes.GetBase(oldMode) != 1) ? AsusACPI.PerformanceTurbo : AsusACPI.PerformanceBalanced, "ModeReset");
|
||||
await Task.Delay(TimeSpan.FromMilliseconds(1500));
|
||||
}
|
||||
|
||||
int status = Program.acpi.DeviceSet(AsusACPI.PerformanceMode, AppConfig.IsManualModeRequired() ? AsusACPI.PerformanceManual : Modes.GetBase(mode), "Mode");
|
||||
// Vivobook fallback
|
||||
if (status != 1) Program.acpi.SetVivoMode(Modes.GetBase(mode));
|
||||
|
||||
SetGPUClocks();
|
||||
|
||||
await Task.Delay(TimeSpan.FromMilliseconds(100));
|
||||
AutoFans();
|
||||
await Task.Delay(TimeSpan.FromMilliseconds(1000));
|
||||
AutoPower();
|
||||
|
||||
|
||||
});
|
||||
|
||||
|
||||
if (AppConfig.Is("xgm_fan") && Program.acpi.IsXGConnected()) XGM.Reset();
|
||||
|
||||
if (notify)
|
||||
Program.toast.RunToast(Modes.GetCurrentName(), SystemInformation.PowerStatus.PowerLineStatus == PowerLineStatus.Online ? ToastIcon.Charger : ToastIcon.Battery);
|
||||
|
||||
SetGPUClocks();
|
||||
AutoFans();
|
||||
AutoPower(1000);
|
||||
if (notify) Toast();
|
||||
|
||||
// Power plan from config or defaulting to balanced
|
||||
if (AppConfig.GetModeString("scheme") is not null)
|
||||
@@ -119,9 +139,34 @@ namespace GHelper.Mode
|
||||
}
|
||||
|
||||
|
||||
private void ModeToggleTimer_Elapsed(object? sender, System.Timers.ElapsedEventArgs e)
|
||||
{
|
||||
modeToggleTimer.Stop();
|
||||
Logger.WriteLine($"Timed mode: {Modes.GetCurrent()}");
|
||||
SetPerformanceMode();
|
||||
|
||||
}
|
||||
|
||||
public void CyclePerformanceMode(bool back = false)
|
||||
{
|
||||
SetPerformanceMode(Modes.GetNext(back), true);
|
||||
int delay = AppConfig.Get("mode_delay");
|
||||
if (delay > 0)
|
||||
{
|
||||
if (modeToggleTimer is null)
|
||||
{
|
||||
modeToggleTimer = new System.Timers.Timer(delay);
|
||||
modeToggleTimer.Elapsed += ModeToggleTimer_Elapsed;
|
||||
}
|
||||
|
||||
modeToggleTimer.Stop();
|
||||
modeToggleTimer.Start();
|
||||
Modes.SetCurrent(Modes.GetNext(back));
|
||||
Toast();
|
||||
} else
|
||||
{
|
||||
SetPerformanceMode(Modes.GetNext(back), true);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void AutoFans(bool force = false)
|
||||
@@ -145,18 +190,17 @@ namespace GHelper.Mode
|
||||
Program.acpi.SetFanCurve(AsusFan.Mid, AppConfig.GetFanConfig(AsusFan.Mid));
|
||||
|
||||
|
||||
// something went wrong, resetting to default profile
|
||||
// Alternative way to set fan curve
|
||||
if (cpuResult != 1 || gpuResult != 1)
|
||||
{
|
||||
cpuResult = Program.acpi.SetFanRange(AsusFan.CPU, AppConfig.GetFanConfig(AsusFan.CPU));
|
||||
gpuResult = Program.acpi.SetFanRange(AsusFan.GPU, AppConfig.GetFanConfig(AsusFan.GPU));
|
||||
|
||||
// Something went wrong, resetting to default profile
|
||||
if (cpuResult != 1 || gpuResult != 1)
|
||||
{
|
||||
int mode = Modes.GetCurrentBase();
|
||||
Logger.WriteLine("ASUS BIOS rejected fan curve, resetting mode to " + mode);
|
||||
Program.acpi.DeviceSet(AsusACPI.PerformanceMode, mode, "Reset Mode");
|
||||
settings.LabelFansResult("ASUS BIOS rejected fan curve");
|
||||
Program.acpi.DeviceSet(AsusACPI.PerformanceMode, Modes.GetCurrentBase(), "Reset Mode");
|
||||
settings.LabelFansResult("Model doesn't support custom fan curves");
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -182,52 +226,25 @@ namespace GHelper.Mode
|
||||
|
||||
}
|
||||
|
||||
public void AutoPower(int delay = 0)
|
||||
public void AutoPower(bool launchAsAdmin = false)
|
||||
{
|
||||
|
||||
customPower = 0;
|
||||
|
||||
bool applyPower = AppConfig.IsMode("auto_apply_power");
|
||||
bool applyFans = AppConfig.IsMode("auto_apply");
|
||||
//bool applyGPU = true;
|
||||
|
||||
if (applyPower && !applyFans)
|
||||
if (applyPower && !applyFans && (AppConfig.IsFanRequired() || AppConfig.IsManualModeRequired()))
|
||||
{
|
||||
// force fan curve for misbehaving bios PPTs on some models
|
||||
if (AppConfig.IsFanRequired())
|
||||
{
|
||||
delay = 500;
|
||||
AutoFans(true);
|
||||
}
|
||||
|
||||
// Fix for models that don't support PPT settings in all modes, setting a "manual" mode for them
|
||||
if (AppConfig.IsManualModeRequired())
|
||||
{
|
||||
AutoFans(true);
|
||||
}
|
||||
AutoFans(true);
|
||||
Thread.Sleep(500);
|
||||
}
|
||||
|
||||
if (delay > 0)
|
||||
{
|
||||
var timer = new System.Timers.Timer(delay);
|
||||
timer.Elapsed += delegate
|
||||
{
|
||||
timer.Stop();
|
||||
timer.Dispose();
|
||||
if (applyPower) SetPower(launchAsAdmin);
|
||||
|
||||
if (applyPower) SetPower();
|
||||
Thread.Sleep(500);
|
||||
SetGPUPower();
|
||||
AutoRyzen();
|
||||
};
|
||||
timer.Start();
|
||||
}
|
||||
else
|
||||
{
|
||||
if (applyPower) SetPower(true);
|
||||
SetGPUPower();
|
||||
AutoRyzen();
|
||||
}
|
||||
Thread.Sleep(500);
|
||||
SetGPUPower();
|
||||
AutoRyzen();
|
||||
|
||||
}
|
||||
|
||||
@@ -236,10 +253,39 @@ namespace GHelper.Mode
|
||||
settings.SetModeLabel(Properties.Strings.PerformanceMode + ": " + Modes.GetCurrentName() + (customFans ? "+" : "") + ((customPower > 0) ? " " + customPower + "W" : ""));
|
||||
}
|
||||
|
||||
public void SetRyzenPower(bool init = false)
|
||||
{
|
||||
if (init) _ryzenPower = true;
|
||||
|
||||
if (!_ryzenPower) return;
|
||||
if (!RyzenControl.IsRingExsists()) return;
|
||||
if (!AppConfig.IsMode("auto_apply_power")) return;
|
||||
|
||||
int limit_total = AppConfig.GetMode("limit_total");
|
||||
int limit_slow = AppConfig.GetMode("limit_slow", limit_total);
|
||||
|
||||
if (limit_total > AsusACPI.MaxTotal) return;
|
||||
if (limit_total < AsusACPI.MinTotal) return;
|
||||
|
||||
var stapmResult = SendCommand.set_stapm_limit((uint)limit_total * 1000);
|
||||
if (init) Logger.WriteLine($"STAPM: {limit_total} {stapmResult}");
|
||||
|
||||
var stapmResult2 = SendCommand.set_stapm2_limit((uint)limit_total * 1000);
|
||||
if (init) Logger.WriteLine($"STAPM2: {limit_total} {stapmResult2}");
|
||||
|
||||
var slowResult = SendCommand.set_slow_limit((uint)limit_slow * 1000);
|
||||
if (init) Logger.WriteLine($"SLOW: {limit_slow} {slowResult}");
|
||||
|
||||
var fastResult = SendCommand.set_fast_limit((uint)limit_slow * 1000);
|
||||
if (init) Logger.WriteLine($"FAST: {limit_slow} {fastResult}");
|
||||
|
||||
}
|
||||
|
||||
public void SetPower(bool launchAsAdmin = false)
|
||||
{
|
||||
|
||||
bool allAMD = Program.acpi.IsAllAmdPPT();
|
||||
bool isAMD = RyzenControl.IsAMD();
|
||||
|
||||
int limit_total = AppConfig.GetMode("limit_total");
|
||||
int limit_cpu = AppConfig.GetMode("limit_cpu");
|
||||
@@ -267,24 +313,12 @@ namespace GHelper.Mode
|
||||
Program.acpi.DeviceSet(AsusACPI.PPT_APUA0, limit_slow, "PowerLimit A0");
|
||||
customPower = limit_total;
|
||||
}
|
||||
else if (RyzenControl.IsAMD())
|
||||
else if (isAMD)
|
||||
{
|
||||
|
||||
if (ProcessHelper.IsUserAdministrator())
|
||||
{
|
||||
var stapmResult = SendCommand.set_stapm_limit((uint)limit_total * 1000);
|
||||
Logger.WriteLine($"STAPM: {limit_total} {stapmResult}");
|
||||
|
||||
var stapmResult2 = SendCommand.set_stapm2_limit((uint)limit_total * 1000);
|
||||
Logger.WriteLine($"STAPM2: {limit_total} {stapmResult2}");
|
||||
|
||||
var slowResult = SendCommand.set_slow_limit((uint)limit_total * 1000);
|
||||
Logger.WriteLine($"SLOW: {limit_total} {slowResult}");
|
||||
|
||||
var fastResult = SendCommand.set_fast_limit((uint)limit_total * 1000);
|
||||
Logger.WriteLine($"FAST: {limit_total} {fastResult}");
|
||||
|
||||
customPower = limit_total;
|
||||
SetRyzenPower(true);
|
||||
}
|
||||
else if (launchAsAdmin)
|
||||
{
|
||||
@@ -298,10 +332,9 @@ namespace GHelper.Mode
|
||||
Program.acpi.DeviceSet(AsusACPI.PPT_CPUB0, limit_cpu, "PowerLimit B0");
|
||||
customPower = limit_cpu;
|
||||
}
|
||||
else if (Program.acpi.DeviceGet(AsusACPI.PPT_APUC1) >= 0) // FPPT boost for non all-amd models
|
||||
else if (isAMD && Program.acpi.DeviceGet(AsusACPI.PPT_APUC1) >= 0) // FPPT boost for non all-amd models
|
||||
{
|
||||
Program.acpi.DeviceSet(AsusACPI.PPT_APUC1, limit_fast, "PowerLimit C1");
|
||||
customPower = limit_fast;
|
||||
}
|
||||
|
||||
|
||||
@@ -309,7 +342,7 @@ namespace GHelper.Mode
|
||||
|
||||
}
|
||||
|
||||
public void SetGPUClocks(bool launchAsAdmin = true)
|
||||
public void SetGPUClocks(bool launchAsAdmin = true, bool reset = false)
|
||||
{
|
||||
Task.Run(() =>
|
||||
{
|
||||
@@ -318,8 +351,9 @@ namespace GHelper.Mode
|
||||
int memory = AppConfig.GetMode("gpu_memory");
|
||||
int clock_limit = AppConfig.GetMode("gpu_clock_limit");
|
||||
|
||||
if (core == -1 && memory == -1 && clock_limit == -1) return;
|
||||
if (reset) core = memory = clock_limit = 0;
|
||||
|
||||
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 (Program.acpi.DeviceGet(AsusACPI.GPUEco) == 1) { Logger.WriteLine("Clocks: Eco"); return; }
|
||||
@@ -347,39 +381,31 @@ namespace GHelper.Mode
|
||||
|
||||
int gpu_boost = AppConfig.GetMode("gpu_boost");
|
||||
int gpu_temp = AppConfig.GetMode("gpu_temp");
|
||||
int gpu_power = AppConfig.GetMode("gpu_power");
|
||||
|
||||
int boostResult = -1;
|
||||
|
||||
if (gpu_boost < AsusACPI.MinGPUBoost || gpu_boost > AsusACPI.MaxGPUBoost) return;
|
||||
if (gpu_temp < AsusACPI.MinGPUTemp || gpu_temp > AsusACPI.MaxGPUTemp) return;
|
||||
if (gpu_power >= AsusACPI.MinGPUPower && gpu_power <= AsusACPI.MaxGPUPower && Program.acpi.DeviceGet(AsusACPI.GPU_POWER) >= 0)
|
||||
Program.acpi.DeviceSet(AsusACPI.GPU_POWER, gpu_power, "PowerLimit TGP (GPU VAR)");
|
||||
|
||||
if (Program.acpi.DeviceGet(AsusACPI.PPT_GPUC0) >= 0)
|
||||
boostResult = Program.acpi.DeviceSet(AsusACPI.PPT_GPUC0, gpu_boost, "PowerLimit C0");
|
||||
if (gpu_boost >= AsusACPI.MinGPUBoost && gpu_boost <= AsusACPI.MaxGPUBoost && Program.acpi.DeviceGet(AsusACPI.PPT_GPUC0) >= 0)
|
||||
boostResult = Program.acpi.DeviceSet(AsusACPI.PPT_GPUC0, gpu_boost, "PowerLimit C0 (GPU BOOST)");
|
||||
|
||||
if (Program.acpi.DeviceGet(AsusACPI.PPT_GPUC2) >= 0)
|
||||
Program.acpi.DeviceSet(AsusACPI.PPT_GPUC2, gpu_temp, "PowerLimit C2");
|
||||
if (gpu_temp >= AsusACPI.MinGPUTemp && gpu_temp <= AsusACPI.MaxGPUTemp && Program.acpi.DeviceGet(AsusACPI.PPT_GPUC2) >= 0)
|
||||
Program.acpi.DeviceSet(AsusACPI.PPT_GPUC2, gpu_temp, "PowerLimit C2 (GPU TEMP)");
|
||||
|
||||
// Fallback
|
||||
if (boostResult == 0)
|
||||
Program.acpi.DeviceSet(AsusACPI.PPT_GPUC0, gpu_boost, "PowerLimit C0");
|
||||
|
||||
}
|
||||
|
||||
public void SetCPUTemp(int? cpuTemp, bool log = true)
|
||||
public void SetCPUTemp(int? cpuTemp, bool init = false)
|
||||
{
|
||||
if (cpuTemp >= RyzenControl.MinTemp && cpuTemp < RyzenControl.MaxTemp)
|
||||
{
|
||||
var resultCPU = SendCommand.set_tctl_temp((uint)cpuTemp);
|
||||
if (log) Logger.WriteLine($"CPU Temp: {cpuTemp} {resultCPU}");
|
||||
|
||||
var restultAPU = SendCommand.set_apu_skin_temp_limit((uint)cpuTemp);
|
||||
if (log) Logger.WriteLine($"APU Temp: {cpuTemp} {restultAPU}");
|
||||
|
||||
reapplyTimer.Enabled = AppConfig.IsMode("auto_uv");
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
reapplyTimer.Enabled = false;
|
||||
if (init) Logger.WriteLine($"CPU Temp: {cpuTemp} {resultCPU}");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -416,22 +442,27 @@ namespace GHelper.Mode
|
||||
return;
|
||||
}
|
||||
|
||||
if (!RyzenControl.IsRingExsists()) return;
|
||||
|
||||
try
|
||||
{
|
||||
SetUV(AppConfig.GetMode("cpu_uv", 0));
|
||||
SetUViGPU(AppConfig.GetMode("igpu_uv", 0));
|
||||
SetCPUTemp(AppConfig.GetMode("cpu_temp"));
|
||||
SetCPUTemp(AppConfig.GetMode("cpu_temp"), true);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Logger.WriteLine("UV Error: " + ex.ToString());
|
||||
}
|
||||
|
||||
reapplyTimer.Enabled = AppConfig.IsMode("auto_uv");
|
||||
}
|
||||
|
||||
public void ResetRyzen()
|
||||
{
|
||||
if (_cpuUV != 0) SetUV(0);
|
||||
if (_igpuUV != 0) SetUViGPU(0);
|
||||
reapplyTimer.Enabled = false;
|
||||
}
|
||||
|
||||
public void AutoRyzen()
|
||||
|
||||
@@ -163,7 +163,7 @@ namespace GHelper.Mode
|
||||
if (status != 0 || activeScheme != guidScheme)
|
||||
{
|
||||
status = PowerSetActiveOverlayScheme(guidScheme);
|
||||
Logger.WriteLine("Power Mode " + scheme + ":" + (status == 0 ? "OK" : status));
|
||||
Logger.WriteLine("Power Mode " + activeScheme + " -> " + scheme + ":" + (status == 0 ? "OK" : status));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -27,14 +27,25 @@ public class NativeMethods
|
||||
private const int MONITOR_OFF = 2;
|
||||
|
||||
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
|
||||
private static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam);
|
||||
private static extern IntPtr SendMessage(nint hWnd, int hMsg, int wParam, int lParam);
|
||||
|
||||
[DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
|
||||
private static extern uint FormatMessage(uint dwFlags, IntPtr lpSource, uint dwMessageId, uint dwLanguageId, out string lpBuffer, uint nSize, IntPtr Arguments);
|
||||
|
||||
[DllImport("user32.dll", SetLastError = true)]
|
||||
[return: MarshalAs(UnmanagedType.Bool)]
|
||||
private static extern bool LockWorkStation();
|
||||
|
||||
public static void LockScreen()
|
||||
{
|
||||
LockWorkStation();
|
||||
}
|
||||
|
||||
public static void TurnOffScreen()
|
||||
{
|
||||
IntPtr result = SendMessage(-1, WM_SYSCOMMAND, (IntPtr)SC_MONITORPOWER, (IntPtr)MONITOR_OFF);
|
||||
Form f = new Form();
|
||||
IntPtr result = SendMessage(f.Handle, WM_SYSCOMMAND, SC_MONITORPOWER, MONITOR_OFF);
|
||||
|
||||
if (result == IntPtr.Zero)
|
||||
{
|
||||
int error = Marshal.GetLastWin32Error();
|
||||
@@ -73,36 +84,38 @@ public class NativeMethods
|
||||
public class PowerSettingGuid
|
||||
{
|
||||
// 0=Powered by AC, 1=Powered by Battery, 2=Powered by short-term source (UPC)
|
||||
public Guid AcdcPowerSource { get; } = new Guid("5d3e9a59-e9D5-4b00-a6bd-ff34ff516548");
|
||||
public static Guid AcdcPowerSource { get; } = new Guid("5d3e9a59-e9D5-4b00-a6bd-ff34ff516548");
|
||||
// POWERBROADCAST_SETTING.Data = 1-100
|
||||
public Guid BatteryPercentageRemaining { get; } = new Guid("a7ad8041-b45a-4cae-87a3-eecbb468a9e1");
|
||||
public static Guid BatteryPercentageRemaining { get; } = new Guid("a7ad8041-b45a-4cae-87a3-eecbb468a9e1");
|
||||
// Windows 8+: 0=Monitor Off, 1=Monitor On, 2=Monitor Dimmed
|
||||
public Guid ConsoleDisplayState { get; } = new Guid("6fe69556-704a-47a0-8f24-c28d936fda47");
|
||||
public static Guid ConsoleDisplayState { get; } = new Guid("6fe69556-704a-47a0-8f24-c28d936fda47");
|
||||
// Windows 8+, Session 0 enabled: 0=User providing Input, 2=User Idle
|
||||
public Guid GlobalUserPresence { get; } = new Guid("786E8A1D-B427-4344-9207-09E70BDCBEA9");
|
||||
public static Guid GlobalUserPresence { get; } = new Guid("786E8A1D-B427-4344-9207-09E70BDCBEA9");
|
||||
// 0=Monitor Off, 1=Monitor On.
|
||||
public Guid MonitorPowerGuid { get; } = new Guid("02731015-4510-4526-99e6-e5a17ebd1aea");
|
||||
public static Guid MonitorPowerGuid { get; } = new Guid("02731015-4510-4526-99e6-e5a17ebd1aea");
|
||||
// 0=Battery Saver Off, 1=Battery Saver On.
|
||||
public Guid PowerSavingStatus { get; } = new Guid("E00958C0-C213-4ACE-AC77-FECCED2EEEA5");
|
||||
public static Guid PowerSavingStatus { get; } = new Guid("E00958C0-C213-4ACE-AC77-FECCED2EEEA5");
|
||||
|
||||
// Windows 8+: 0=Off, 1=On, 2=Dimmed
|
||||
public Guid SessionDisplayStatus { get; } = new Guid("2B84C20E-AD23-4ddf-93DB-05FFBD7EFCA5");
|
||||
public static Guid SessionDisplayStatus { get; } = new Guid("2B84C20E-AD23-4ddf-93DB-05FFBD7EFCA5");
|
||||
|
||||
// Windows 8+, no Session 0: 0=User providing Input, 2=User Idle
|
||||
public Guid SessionUserPresence { get; } = new Guid("3C0F4548-C03F-4c4d-B9F2-237EDE686376");
|
||||
public static Guid SessionUserPresence { get; } = new Guid("3C0F4548-C03F-4c4d-B9F2-237EDE686376");
|
||||
// 0=Exiting away mode 1=Entering away mode
|
||||
public Guid SystemAwaymode { get; } = new Guid("98a7f580-01f7-48aa-9c0f-44352c29e5C0");
|
||||
public static Guid SystemAwaymode { get; } = new Guid("98a7f580-01f7-48aa-9c0f-44352c29e5C0");
|
||||
|
||||
/* Windows 8+ */
|
||||
// POWERBROADCAST_SETTING.Data not used
|
||||
public Guid IdleBackgroundTask { get; } = new Guid(0x515C31D8, 0xF734, 0x163D, 0xA0, 0xFD, 0x11, 0xA0, 0x8C, 0x91, 0xE8, 0xF1);
|
||||
public static Guid IdleBackgroundTask { get; } = new Guid(0x515C31D8, 0xF734, 0x163D, 0xA0, 0xFD, 0x11, 0xA0, 0x8C, 0x91, 0xE8, 0xF1);
|
||||
|
||||
public Guid PowerSchemePersonality { get; } = new Guid(0x245D8541, 0x3943, 0x4422, 0xB0, 0x25, 0x13, 0xA7, 0x84, 0xF6, 0x79, 0xB7);
|
||||
public static Guid PowerSchemePersonality { get; } = new Guid(0x245D8541, 0x3943, 0x4422, 0xB0, 0x25, 0x13, 0xA7, 0x84, 0xF6, 0x79, 0xB7);
|
||||
|
||||
// The Following 3 Guids are the POWERBROADCAST_SETTING.Data result of PowerSchemePersonality
|
||||
public Guid MinPowerSavings { get; } = new Guid("8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c");
|
||||
public Guid MaxPowerSavings { get; } = new Guid("a1841308-3541-4fab-bc81-f71556f20b4a");
|
||||
public Guid TypicalPowerSavings { get; } = new Guid("381b4222-f694-41f0-9685-ff5bb260df2e");
|
||||
public static Guid MinPowerSavings { get; } = new Guid("8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c");
|
||||
public static Guid MaxPowerSavings { get; } = new Guid("a1841308-3541-4fab-bc81-f71556f20b4a");
|
||||
public static Guid TypicalPowerSavings { get; } = new Guid("381b4222-f694-41f0-9685-ff5bb260df2e");
|
||||
|
||||
public static Guid LIDSWITCH_STATE_CHANGE = new Guid("ba3e0f4d-b817-4094-a2d1-d56379e6a0f3");
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,9 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
|
||||
namespace GHelper.Peripherals
|
||||
{
|
||||
public enum PeripheralType
|
||||
@@ -19,6 +14,10 @@ namespace GHelper.Peripherals
|
||||
public int Battery { get; }
|
||||
public bool Charging { get; }
|
||||
|
||||
public bool CanExport();
|
||||
public byte[] Export();
|
||||
public bool Import(byte[] blob);
|
||||
|
||||
public PeripheralType DeviceType();
|
||||
|
||||
public string GetDisplayName();
|
||||
|
||||
@@ -97,6 +97,43 @@ namespace GHelper.Peripherals.Mouse
|
||||
|
||||
public AnimationDirection AnimationDirection { get; set; }
|
||||
|
||||
public byte[] Export()
|
||||
{
|
||||
byte[] data = new byte[0];
|
||||
|
||||
data = data
|
||||
.Append((byte)LightingMode) // 1 Byte
|
||||
.Concat(BitConverter.GetBytes(Brightness)) // 4 Bytes
|
||||
.Concat(BitConverter.GetBytes(RGBColor.ToArgb())) // 4 Bytes
|
||||
.Concat(BitConverter.GetBytes(RandomColor)) // 1 Byte
|
||||
.Append((byte)AnimationSpeed) // 1 Byte
|
||||
.Append((byte)AnimationDirection) // 1 Byte
|
||||
.ToArray();
|
||||
|
||||
//12 bytes
|
||||
return data;
|
||||
}
|
||||
|
||||
public bool Import(byte[] blob)
|
||||
{
|
||||
if (blob.Length != 12)
|
||||
{
|
||||
//Data must be 12 bytes
|
||||
return false;
|
||||
}
|
||||
|
||||
LightingMode = (LightingMode)blob[0];
|
||||
|
||||
Brightness = BitConverter.ToInt32(blob, 1);
|
||||
RGBColor = Color.FromArgb(BitConverter.ToInt32(blob, 5));
|
||||
RandomColor = BitConverter.ToBoolean(blob, 9);
|
||||
|
||||
AnimationSpeed = (AnimationSpeed)blob[10];
|
||||
AnimationDirection = (AnimationDirection)blob[11];
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public override bool Equals(object? obj)
|
||||
{
|
||||
return obj is LightingSetting setting &&
|
||||
@@ -135,6 +172,33 @@ namespace GHelper.Peripherals.Mouse
|
||||
{
|
||||
return "DPI: " + DPI + ", Color (" + Color.R + ", " + Color.G + ", " + Color.B + ")";
|
||||
}
|
||||
|
||||
public byte[] Export()
|
||||
{
|
||||
byte[] data = new byte[0];
|
||||
|
||||
data = data
|
||||
.Concat(BitConverter.GetBytes(DPI)) // 4 bytes
|
||||
.Concat(BitConverter.GetBytes(Color.ToArgb())) // 4 bytes
|
||||
.ToArray();
|
||||
|
||||
//8 bytes
|
||||
return data;
|
||||
}
|
||||
|
||||
public bool Import(byte[] blob)
|
||||
{
|
||||
if (blob.Length != 8)
|
||||
{
|
||||
//Data must be 8 bytes
|
||||
return false;
|
||||
}
|
||||
|
||||
DPI = BitConverter.ToUInt32(blob, 0);
|
||||
Color = Color.FromArgb(BitConverter.ToInt32(blob, 4));
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
public abstract class AsusMouse : Device, IPeripheral
|
||||
@@ -206,6 +270,165 @@ namespace GHelper.Peripherals.Mouse
|
||||
this.reportId = reportId;
|
||||
}
|
||||
|
||||
|
||||
public bool CanExport()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
//GMP1 = G-Helper Mouse Profile Version 1 :D
|
||||
private static readonly byte[] MAGIC = { (byte)'G', (byte)'M', (byte)'P', (byte)'1' };
|
||||
|
||||
public byte[] Export()
|
||||
{
|
||||
byte[] data = new byte[0];
|
||||
|
||||
data = data
|
||||
.Concat(MAGIC) // 4 Byte Magic
|
||||
.ToArray();
|
||||
|
||||
foreach (LightingSetting ls in LightingSetting)
|
||||
{
|
||||
data = data.Concat(ls.Export()).ToArray(); // Append 12 bytes for each Lighting setting
|
||||
}
|
||||
|
||||
|
||||
data = data // = 6 Bytes
|
||||
.Concat(BitConverter.GetBytes(LowBatteryWarning)) // 4 Bytes
|
||||
.Append((byte)PowerOffSetting) // 1 Byte
|
||||
.Append((byte)LiftOffDistance) // 1 Byte
|
||||
.ToArray();
|
||||
|
||||
foreach (AsusMouseDPI dpi in DpiSettings)
|
||||
{
|
||||
data = data.Concat(dpi.Export()).ToArray(); // Append 8 bytes for each DPI Profile
|
||||
}
|
||||
|
||||
|
||||
|
||||
data = data // = 13 Bytes
|
||||
.Append((byte)PollingRate) // 1 Byte
|
||||
.Concat(BitConverter.GetBytes(AngleSnapping)) // 1 Byte
|
||||
.Concat(BitConverter.GetBytes(AngleAdjustmentDegrees)) // 2 Bytes
|
||||
.Append((byte)Debounce) // 1 Byte
|
||||
.Concat(BitConverter.GetBytes(Acceleration)) // 4 Bytes
|
||||
.Concat(BitConverter.GetBytes(Deceleration)) // 4 Bytes
|
||||
.ToArray();
|
||||
|
||||
//Total length: 4 + (LightingSetting.Length * 12) + 6 + (DPIProfileCount() + 8) + 13 Bytes
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
public bool Import(byte[] blob)
|
||||
{
|
||||
int expectedLength = 4 + (LightingSetting.Length * 12) + 6 + (DPIProfileCount() * 8) + 13;
|
||||
|
||||
if (blob.Length != expectedLength)
|
||||
{
|
||||
//Wrong lenght. Will not decode properly anyways.
|
||||
Logger.WriteLine(GetDisplayName() + " Import: Failed to import due to wrong data Lenght. Expected: " + expectedLength + " Is: " + blob.Length);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (blob[0] != MAGIC[0] || blob[1] != MAGIC[1] || blob[2] != MAGIC[2] || blob[3] != MAGIC[3])
|
||||
{
|
||||
//MAGIC does not match. Maybe some other profile or not even a profile at all.
|
||||
Logger.WriteLine(GetDisplayName() + " Import: Failed to import. Magic Wrong: " + ByteArrayToString(blob));
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
int offset = 4; // skip MAGIC
|
||||
|
||||
for (int i = 0; i < LightingSetting.Length; ++i)
|
||||
{
|
||||
byte[] data = blob.Skip(offset).Take(12).ToArray(); // Read 12 Byte blocks
|
||||
offset += 12;
|
||||
|
||||
|
||||
if (!LightingSetting[i].Import(data))
|
||||
{
|
||||
Logger.WriteLine(GetDisplayName() + " Import: Failed to import LightingSetting. Data: " + ByteArrayToString(data));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
LowBatteryWarning = BitConverter.ToInt32(blob, offset);
|
||||
offset += 4;
|
||||
|
||||
PowerOffSetting = (PowerOffSetting)blob[offset++];
|
||||
LiftOffDistance = (LiftOffDistance)blob[offset++];
|
||||
|
||||
for (int i = 0; i < DpiSettings.Length; ++i)
|
||||
{
|
||||
byte[] data = blob.Skip(offset).Take(8).ToArray(); // Read 8 Byte blocks
|
||||
offset += 8;
|
||||
|
||||
|
||||
if (!DpiSettings[i].Import(data))
|
||||
{
|
||||
Logger.WriteLine(GetDisplayName() + " Import: Failed to import DPISettings. Data: " + ByteArrayToString(data));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
PollingRate = (PollingRate)blob[offset++];
|
||||
|
||||
AngleSnapping = BitConverter.ToBoolean(blob, offset++);
|
||||
AngleAdjustmentDegrees = BitConverter.ToInt16(blob, offset);
|
||||
offset += 2;
|
||||
|
||||
|
||||
Acceleration = BitConverter.ToInt32(blob, offset);
|
||||
offset += 4;
|
||||
Deceleration = BitConverter.ToInt32(blob, offset);
|
||||
offset += 4;
|
||||
|
||||
|
||||
//Apply Settings to the mouse
|
||||
if (HasBattery())
|
||||
SetEnergySettings(LowBatteryWarning, PowerOffSetting);
|
||||
|
||||
SetPollingRate(PollingRate);
|
||||
|
||||
if (HasLiftOffSetting())
|
||||
SetLiftOffDistance(LiftOffDistance);
|
||||
|
||||
if (HasAngleSnapping())
|
||||
SetAngleSnapping(AngleSnapping);
|
||||
|
||||
if (HasAngleTuning())
|
||||
SetAngleAdjustment(AngleAdjustmentDegrees);
|
||||
|
||||
if (HasAcceleration())
|
||||
SetAcceleration(Acceleration);
|
||||
|
||||
if (HasDeceleration())
|
||||
SetDeceleration(Deceleration);
|
||||
|
||||
if (HasRGB())
|
||||
{
|
||||
for (int i = 0; i < SupportedLightingZones().Length; ++i)
|
||||
{
|
||||
LightingZone lz = SupportedLightingZones()[i];
|
||||
LightingSetting ls = LightingSettingForZone(lz);
|
||||
|
||||
SetLightingSetting(ls, lz);
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 0; i < DPIProfileCount(); ++i)
|
||||
{
|
||||
AsusMouseDPI dpi = DpiSettings[i];
|
||||
|
||||
SetDPIForProfile(dpi, i + 1);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public override bool Equals(object? obj)
|
||||
{
|
||||
if (obj is not AsusMouse item)
|
||||
|
||||
@@ -221,6 +221,63 @@
|
||||
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
|
||||
@@ -240,4 +297,166 @@
|
||||
return 3;
|
||||
}
|
||||
}
|
||||
|
||||
//P504
|
||||
public class GladiusIIOriginPink : GladiusIIOrigin
|
||||
{
|
||||
public GladiusIIOriginPink() : base(0x18CD, "mi_02")
|
||||
{
|
||||
|
||||
}
|
||||
public override string GetDisplayName()
|
||||
{
|
||||
return "Gladius II PNK LTD";
|
||||
}
|
||||
public override int ProfileCount()
|
||||
{
|
||||
return 3;
|
||||
}
|
||||
|
||||
public override LightingZone[] SupportedLightingZones()
|
||||
{
|
||||
return new LightingZone[] { LightingZone.Scrollwheel, LightingZone.Underglow };
|
||||
}
|
||||
|
||||
protected override byte[] GetUpdateLightingModePacket(LightingSetting lightingSetting, LightingZone zone)
|
||||
{
|
||||
/*
|
||||
* This mouse uses different speed values for rainbow mode compared to others.
|
||||
* 51 28 03 00 03 04 FF 00 00 00 00 [8C] 00 00 00 00
|
||||
* 51 28 03 00 03 04 FF 00 00 00 00 [64] 00 00 00 00
|
||||
* 51 28 03 00 03 04 FF 00 00 00 00 [3F] 00 00 00 00
|
||||
*/
|
||||
|
||||
byte speed = (byte)(SupportsAnimationSpeed(lightingSetting.LightingMode) ? lightingSetting.AnimationSpeed : 0x00);
|
||||
|
||||
if (lightingSetting.LightingMode == LightingMode.Rainbow)
|
||||
{
|
||||
speed = 0x64;
|
||||
|
||||
switch (lightingSetting.AnimationSpeed)
|
||||
{
|
||||
case AnimationSpeed.Slow:
|
||||
speed = 0x8C;
|
||||
break;
|
||||
case AnimationSpeed.Medium:
|
||||
speed = 0x64;
|
||||
break;
|
||||
case AnimationSpeed.Fast:
|
||||
speed = 0x3F;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
return new byte[] { reportId, 0x51, 0x28, (byte)zone, 0x00,
|
||||
IndexForLightingMode(lightingSetting.LightingMode),
|
||||
(byte)lightingSetting.Brightness,
|
||||
0x00, // this mouse has 2 colors per LED capability, but we do not suppor this yet, so we disable it
|
||||
lightingSetting.RGBColor.R, lightingSetting.RGBColor.G, lightingSetting.RGBColor.B,
|
||||
0x00, 0x00, 0x00, //this would be the second set of RGB Colors if we ever support this
|
||||
(byte)(SupportsAnimationDirection(lightingSetting.LightingMode) ? lightingSetting.AnimationDirection : 0x00),
|
||||
(byte)((lightingSetting.RandomColor && SupportsRandomColor(lightingSetting.LightingMode)) ? 0x01: 0x00),
|
||||
speed
|
||||
};
|
||||
}
|
||||
|
||||
protected LightingSetting? ParseLightingSetting(byte[] packet, LightingZone zone)
|
||||
{
|
||||
if (packet[1] != 0x12 || packet[2] != 0x03)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
//skip first block as it seems to be empty. Maybe only filled to certain configurations.
|
||||
int offset = 5 + 9 + (((int)zone) * 9);
|
||||
|
||||
LightingSetting setting = new LightingSetting();
|
||||
|
||||
setting.LightingMode = LightingModeForIndex(packet[offset + 0]);
|
||||
setting.Brightness = packet[offset + 1];
|
||||
//Offset 2 is a bool that says whether dual color RGB is in use. Unsupported for now by GHelper
|
||||
|
||||
setting.RGBColor = Color.FromArgb(packet[offset + 3], packet[offset + 4], packet[offset + 5]);
|
||||
|
||||
//Offset 7 - 9 are the second RGB colors, unuse as not supported yet
|
||||
|
||||
|
||||
return setting;
|
||||
}
|
||||
|
||||
public override void ReadLightingSetting()
|
||||
{
|
||||
if (!HasRGB())
|
||||
{
|
||||
return;
|
||||
}
|
||||
//Mouse sends all lighting zones in one response Direction, Random col, Speed
|
||||
//First block seems emtpy?
|
||||
//00 12 03 00 00 [00 00 00 00 00 00 00 00 00] [03 04 01 00 00 00 00 00 00] [03 04 01 00 00 00 00 00 00] [00 01 8c]
|
||||
//Length 9, offset 5
|
||||
//Direction
|
||||
byte[]? response = WriteForResponse(GetReadLightingModePacket(LightingZone.All));
|
||||
if (response is null) return;
|
||||
|
||||
LightingZone[] lz = SupportedLightingZones();
|
||||
for (int i = 0; i < lz.Length; ++i)
|
||||
{
|
||||
LightingSetting? ls = ParseLightingSetting(response, lz[i]);
|
||||
if (ls is null)
|
||||
{
|
||||
Logger.WriteLine(GetDisplayName() + ": Failed to read RGB Setting for Zone " + lz[i].ToString());
|
||||
continue;
|
||||
}
|
||||
ls.AnimationDirection = SupportsAnimationDirection(ls.LightingMode)
|
||||
? (AnimationDirection)response[32]
|
||||
: AnimationDirection.Clockwise;
|
||||
|
||||
ls.RandomColor = SupportsRandomColor(ls.LightingMode) && response[33] == 0x01;
|
||||
|
||||
//Rainbow uses different speed values for whatever reason
|
||||
if (response[12] == 0x03)
|
||||
{
|
||||
byte speed = response[34];
|
||||
|
||||
switch (speed)
|
||||
{
|
||||
case 0x3F:
|
||||
ls.AnimationSpeed = AnimationSpeed.Fast;
|
||||
break;
|
||||
|
||||
case 0x64:
|
||||
ls.AnimationSpeed = AnimationSpeed.Medium;
|
||||
break;
|
||||
|
||||
case 0x8C:
|
||||
ls.AnimationSpeed = AnimationSpeed.Slow;
|
||||
break;
|
||||
|
||||
default:
|
||||
ls.AnimationSpeed = AnimationSpeed.Medium;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
ls.AnimationSpeed = SupportsAnimationSpeed(ls.LightingMode)
|
||||
? (AnimationSpeed)response[34]
|
||||
: AnimationSpeed.Medium;
|
||||
|
||||
if (ls.AnimationSpeed != AnimationSpeed.Fast
|
||||
&& ls.AnimationSpeed != AnimationSpeed.Medium
|
||||
&& ls.AnimationSpeed != AnimationSpeed.Slow)
|
||||
{
|
||||
ls.AnimationSpeed = AnimationSpeed.Medium;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Logger.WriteLine(GetDisplayName() + ": Read RGB Setting for Zone " + lz[i].ToString() + ": " + ls.ToString());
|
||||
LightingSetting[i] = ls;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,11 +3,11 @@
|
||||
//P711
|
||||
public class GladiusIIIAimpoint : AsusMouse
|
||||
{
|
||||
public GladiusIIIAimpoint() : base(0x0B05, 0x1A70, "mi_00", true)
|
||||
public GladiusIIIAimpoint() : base(0x0B05, 0x1A72, "mi_00", true)
|
||||
{
|
||||
}
|
||||
|
||||
protected GladiusIIIAimpoint(ushort vendorId, bool wireless) : base(0x0B05, vendorId, "mi_00", wireless)
|
||||
protected GladiusIIIAimpoint(ushort productId, bool wireless) : base(0x0B05, productId, "mi_00", wireless)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -94,7 +94,7 @@
|
||||
|
||||
public class GladiusIIIAimpointWired : GladiusIIIAimpoint
|
||||
{
|
||||
public GladiusIIIAimpointWired() : base(0x1A72, false)
|
||||
public GladiusIIIAimpointWired() : base(0x1A70, false)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -103,4 +103,47 @@
|
||||
return "ROG Gladius III Aimpoint (Wired)";
|
||||
}
|
||||
}
|
||||
|
||||
public class GladiusIIIAimpointEva2 : GladiusIIIAimpoint
|
||||
{
|
||||
public GladiusIIIAimpointEva2() : base(0x1B0C, true)
|
||||
{
|
||||
}
|
||||
|
||||
public GladiusIIIAimpointEva2(ushort productId) : base(productId, false)
|
||||
{
|
||||
}
|
||||
|
||||
public override string GetDisplayName()
|
||||
{
|
||||
return "ROG Gladius III Eva 2 (Wireless)";
|
||||
}
|
||||
|
||||
public override LightingZone[] SupportedLightingZones()
|
||||
{
|
||||
return new LightingZone[] { LightingZone.Logo };
|
||||
}
|
||||
|
||||
public override bool IsLightingModeSupported(LightingMode lightingMode)
|
||||
{
|
||||
return lightingMode == LightingMode.Static
|
||||
|| lightingMode == LightingMode.Breathing
|
||||
|| lightingMode == LightingMode.ColorCycle
|
||||
|| lightingMode == LightingMode.React
|
||||
|| lightingMode == LightingMode.Comet
|
||||
|| lightingMode == LightingMode.BatteryState;
|
||||
}
|
||||
}
|
||||
|
||||
public class GladiusIIIAimpointEva2Wired : GladiusIIIAimpointEva2
|
||||
{
|
||||
public GladiusIIIAimpointEva2Wired() : base(0x1B0A)
|
||||
{
|
||||
}
|
||||
|
||||
public override string GetDisplayName()
|
||||
{
|
||||
return "ROG Gladius III Eva 2 (Wired)";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
namespace GHelper.Peripherals.Mouse.Models
|
||||
{
|
||||
//P706_Wireless
|
||||
public class GladiusIII : AsusMouse
|
||||
public class GladiusIIIWireless : AsusMouse
|
||||
{
|
||||
public GladiusIII() : base(0x0B05, 0x197F, "mi_00", true)
|
||||
public GladiusIIIWireless() : base(0x0B05, 0x197F, "mi_00", true)
|
||||
{
|
||||
}
|
||||
|
||||
protected GladiusIII(ushort vendorId, bool wireless) : base(0x0B05, vendorId, "mi_00", wireless)
|
||||
protected GladiusIIIWireless(ushort vendorId, bool wireless) : base(0x0B05, vendorId, "mi_00", wireless)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -77,7 +77,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
public class GladiusIIIWired : GladiusIII
|
||||
public class GladiusIIIWired : GladiusIIIWireless
|
||||
{
|
||||
public GladiusIIIWired() : base(0x197d, false)
|
||||
{
|
||||
@@ -88,4 +88,43 @@
|
||||
return "ROG Gladius III (Wired)";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//P514
|
||||
public class GladiusIII : GladiusIIIWireless
|
||||
{
|
||||
public GladiusIII() : base(0x197B, false)
|
||||
{
|
||||
}
|
||||
|
||||
public override string GetDisplayName()
|
||||
{
|
||||
return "ROG Gladius III";
|
||||
}
|
||||
|
||||
public override bool HasAutoPowerOff()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool HasLowBatteryWarning()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool HasBattery()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool IsLightingModeSupported(LightingMode lightingMode)
|
||||
{
|
||||
return lightingMode == LightingMode.Static
|
||||
|| lightingMode == LightingMode.Breathing
|
||||
|| lightingMode == LightingMode.ColorCycle
|
||||
|| lightingMode == LightingMode.Rainbow
|
||||
|| lightingMode == LightingMode.React
|
||||
|| lightingMode == LightingMode.Comet;
|
||||
}
|
||||
}
|
||||
}
|
||||
294
app/Peripherals/Mouse/Models/GladiusIIWireless.cs
Normal file
294
app/Peripherals/Mouse/Models/GladiusIIWireless.cs
Normal file
@@ -0,0 +1,294 @@
|
||||
namespace GHelper.Peripherals.Mouse.Models
|
||||
{
|
||||
public class GladiusIIWireless : AsusMouse
|
||||
{
|
||||
public GladiusIIWireless() : base(0x0B05, 0x18A0, "mi_02", true)
|
||||
{
|
||||
}
|
||||
|
||||
public override int DPIProfileCount()
|
||||
{
|
||||
return 2;
|
||||
}
|
||||
|
||||
public override string GetDisplayName()
|
||||
{
|
||||
return "Gladius II Wireless";
|
||||
}
|
||||
|
||||
|
||||
public override PollingRate[] SupportedPollingrates()
|
||||
{
|
||||
return new PollingRate[] {
|
||||
PollingRate.PR125Hz,
|
||||
PollingRate.PR250Hz,
|
||||
PollingRate.PR500Hz,
|
||||
PollingRate.PR1000Hz
|
||||
};
|
||||
}
|
||||
|
||||
public override int ProfileCount()
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
public override int MaxDPI()
|
||||
{
|
||||
return 16_000;
|
||||
}
|
||||
|
||||
public override bool HasRGB()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public override bool HasAutoPowerOff()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public override bool HasAngleSnapping()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public override bool HasAngleTuning()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public override bool HasDebounceSetting()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
public override bool HasLiftOffSetting()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool HasLowBatteryWarning()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public override int LowBatteryWarningStep()
|
||||
{
|
||||
return 25;
|
||||
}
|
||||
|
||||
public override bool HasBattery()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public override bool HasDPIColors()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool IsLightingModeSupported(LightingMode lightingMode)
|
||||
{
|
||||
return lightingMode == LightingMode.Static
|
||||
|| lightingMode == LightingMode.Breathing
|
||||
|| lightingMode == LightingMode.ColorCycle
|
||||
|| lightingMode == LightingMode.React
|
||||
|| lightingMode == LightingMode.BatteryState;
|
||||
}
|
||||
|
||||
public override LightingZone[] SupportedLightingZones()
|
||||
{
|
||||
return new LightingZone[] { LightingZone.Logo, LightingZone.Scrollwheel };
|
||||
}
|
||||
|
||||
public override int DPIIncrements()
|
||||
{
|
||||
return 100;
|
||||
}
|
||||
|
||||
public override bool CanChangeDPIProfile()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public override int MaxBrightness()
|
||||
{
|
||||
return 4;
|
||||
}
|
||||
|
||||
//Has 25% increments
|
||||
protected override int ParseBattery(byte[] packet)
|
||||
{
|
||||
if (packet[1] == 0x12 && packet[2] == 0x07)
|
||||
{
|
||||
return packet[5] * 25;
|
||||
}
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
protected override byte[] GetUpdateLightingModePacket(LightingSetting lightingSetting, LightingZone zone)
|
||||
{
|
||||
/*
|
||||
* This mouse uses different speed values for rainbow mode compared to others.
|
||||
* 51 28 03 00 03 04 FF 00 00 00 00 [8C] 00 00 00 00
|
||||
* 51 28 03 00 03 04 FF 00 00 00 00 [64] 00 00 00 00
|
||||
* 51 28 03 00 03 04 FF 00 00 00 00 [3F] 00 00 00 00
|
||||
*/
|
||||
|
||||
if (lightingSetting.LightingMode == LightingMode.Rainbow)
|
||||
{
|
||||
byte speed = 0x3F;
|
||||
|
||||
switch (lightingSetting.AnimationSpeed)
|
||||
{
|
||||
case AnimationSpeed.Slow:
|
||||
speed = 0x3F;
|
||||
break;
|
||||
case AnimationSpeed.Medium:
|
||||
speed = 0x64;
|
||||
break;
|
||||
case AnimationSpeed.Fast:
|
||||
speed = 0x8C;
|
||||
break;
|
||||
}
|
||||
|
||||
return new byte[] { reportId, 0x51, 0x28, (byte)zone, 0x00,
|
||||
IndexForLightingMode(lightingSetting.LightingMode),
|
||||
(byte)lightingSetting.Brightness,
|
||||
0xFF, 0x00, 0x00,
|
||||
(byte)(SupportsAnimationDirection(lightingSetting.LightingMode) ? lightingSetting.AnimationDirection : 0x00),
|
||||
(byte)((lightingSetting.RandomColor && SupportsRandomColor(lightingSetting.LightingMode)) ? 0x01: 0x00),
|
||||
(byte)(SupportsAnimationSpeed(lightingSetting.LightingMode) ? speed : 0x00)
|
||||
};
|
||||
}
|
||||
|
||||
return base.GetUpdateLightingModePacket(lightingSetting, zone);
|
||||
}
|
||||
|
||||
|
||||
protected override byte[] GetReadLightingModePacket(LightingZone zone)
|
||||
{
|
||||
return new byte[] { 0x00, 0x12, 0x03, 0x00 };
|
||||
}
|
||||
|
||||
protected LightingSetting? ParseLightingSetting(byte[] packet, LightingZone zone)
|
||||
{
|
||||
if (packet[1] != 0x12 || packet[2] != 0x03)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
int offset = 5 + (((int)zone) * 5);
|
||||
|
||||
LightingSetting setting = new LightingSetting();
|
||||
|
||||
setting.LightingMode = LightingModeForIndex(packet[offset + 0]);
|
||||
setting.Brightness = packet[offset + 1];
|
||||
|
||||
setting.RGBColor = Color.FromArgb(packet[offset + 2], packet[offset + 3], packet[offset + 4]);
|
||||
|
||||
|
||||
return setting;
|
||||
}
|
||||
|
||||
public override void ReadLightingSetting()
|
||||
{
|
||||
if (!HasRGB())
|
||||
{
|
||||
return;
|
||||
}
|
||||
//Mouse sends all lighting zones in one response Direction, Random col, Speed
|
||||
//00 12 03 00 00 [00 04 ff 00 80] [00 04 00 ff ff] [00 04 ff ff ff] 00 [00] [00] [00] 00 00
|
||||
//00 12 03 00 00 [03 04 00 00 00] [03 04 00 00 00] [03 04 00 00 00] 00 [00] [00] [07] 00 00
|
||||
byte[]? response = WriteForResponse(GetReadLightingModePacket(LightingZone.All));
|
||||
if (response is null) return;
|
||||
|
||||
LightingZone[] lz = SupportedLightingZones();
|
||||
for (int i = 0; i < lz.Length; ++i)
|
||||
{
|
||||
LightingSetting? ls = ParseLightingSetting(response, lz[i]);
|
||||
if (ls is null)
|
||||
{
|
||||
Logger.WriteLine(GetDisplayName() + ": Failed to read RGB Setting for Zone " + lz[i].ToString());
|
||||
continue;
|
||||
}
|
||||
ls.AnimationDirection = SupportsAnimationDirection(ls.LightingMode)
|
||||
? (AnimationDirection)response[21]
|
||||
: AnimationDirection.Clockwise;
|
||||
|
||||
ls.RandomColor = SupportsRandomColor(ls.LightingMode) && response[22] == 0x01;
|
||||
|
||||
ls.AnimationSpeed = SupportsAnimationSpeed(ls.LightingMode)
|
||||
? (AnimationSpeed)response[23]
|
||||
: AnimationSpeed.Medium;
|
||||
|
||||
if (ls.AnimationSpeed != AnimationSpeed.Fast
|
||||
&& ls.AnimationSpeed != AnimationSpeed.Medium
|
||||
&& ls.AnimationSpeed != AnimationSpeed.Slow)
|
||||
{
|
||||
ls.AnimationSpeed = AnimationSpeed.Medium;
|
||||
}
|
||||
|
||||
Logger.WriteLine(GetDisplayName() + ": Read RGB Setting for Zone " + lz[i].ToString() + ": " + ls.ToString());
|
||||
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) };
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
124
app/Peripherals/Mouse/Models/KerisIIAce.cs
Normal file
124
app/Peripherals/Mouse/Models/KerisIIAce.cs
Normal file
@@ -0,0 +1,124 @@
|
||||
namespace GHelper.Peripherals.Mouse.Models
|
||||
{
|
||||
|
||||
public class KerisIIAceWired : AsusMouse
|
||||
{
|
||||
public KerisIIAceWired() : base(0x0B05, 0x1B16, "mi_00", true)
|
||||
{
|
||||
}
|
||||
|
||||
protected KerisIIAceWired(ushort vendorId, bool wireless) : base(0x0B05, vendorId, "mi_00", wireless)
|
||||
{
|
||||
}
|
||||
|
||||
public override int DPIProfileCount()
|
||||
{
|
||||
return 4;
|
||||
}
|
||||
|
||||
public override string GetDisplayName()
|
||||
{
|
||||
return "ROG Keris II Ace";
|
||||
}
|
||||
|
||||
|
||||
public override PollingRate[] SupportedPollingrates()
|
||||
{
|
||||
return new PollingRate[] {
|
||||
PollingRate.PR125Hz,
|
||||
PollingRate.PR250Hz,
|
||||
PollingRate.PR500Hz,
|
||||
PollingRate.PR1000Hz
|
||||
};
|
||||
}
|
||||
|
||||
public override int ProfileCount()
|
||||
{
|
||||
return 5;
|
||||
}
|
||||
public override int MaxDPI()
|
||||
{
|
||||
return 42_000;
|
||||
}
|
||||
|
||||
public override bool HasLiftOffSetting()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public override bool HasRGB()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public override bool HasXYDPI()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
public override bool IsLightingModeSupported(LightingMode lightingMode)
|
||||
{
|
||||
return lightingMode == LightingMode.Static
|
||||
|| lightingMode == LightingMode.Breathing
|
||||
|| lightingMode == LightingMode.ColorCycle
|
||||
|| lightingMode == LightingMode.BatteryState
|
||||
|| lightingMode == LightingMode.React;
|
||||
}
|
||||
|
||||
public override bool HasAutoPowerOff()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public override bool HasAngleSnapping()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public override bool HasAngleTuning()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public override bool HasLowBatteryWarning()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public override bool HasDPIColors()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
protected override PollingRate ParsePollingRate(byte[] packet)
|
||||
{
|
||||
if (packet[1] == 0x12 && packet[2] == 0x04 && packet[3] == 0x00)
|
||||
{
|
||||
if ((int)packet[13] > 7)
|
||||
return (PollingRate)packet[13] - 96;
|
||||
return (PollingRate)packet[13];
|
||||
}
|
||||
|
||||
return PollingRate.PR125Hz;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
*
|
||||
Mouse uses Omni Reciever
|
||||
public class KerisIIAce : KerisIIAce
|
||||
{
|
||||
public KerisIIAce() : base(0xAAAA, false)
|
||||
{
|
||||
}
|
||||
|
||||
public override string GetDisplayName()
|
||||
{
|
||||
return "ROG Keris II Ace (Wired)";
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
}
|
||||
@@ -99,6 +99,18 @@
|
||||
{
|
||||
return true;
|
||||
}
|
||||
// 3.00.06 - 4.00.01 or newer firmware
|
||||
protected override PollingRate ParsePollingRate(byte[] packet)
|
||||
{
|
||||
if (packet[1] == 0x12 && packet[2] == 0x04 && packet[3] == 0x00)
|
||||
{
|
||||
if ((int)packet[13] > 7)
|
||||
return (PollingRate)packet[13] - 96;
|
||||
return (PollingRate)packet[13];
|
||||
}
|
||||
|
||||
return PollingRate.PR125Hz;
|
||||
}
|
||||
}
|
||||
|
||||
public class KerisWirelssAimpointWired : KerisWirelssAimpoint
|
||||
|
||||
218
app/Peripherals/Mouse/Models/Pugio.cs
Normal file
218
app/Peripherals/Mouse/Models/Pugio.cs
Normal file
@@ -0,0 +1,218 @@
|
||||
namespace GHelper.Peripherals.Mouse.Models
|
||||
{
|
||||
//P503
|
||||
public class Pugio : AsusMouse
|
||||
{
|
||||
public Pugio() : base(0x0B05, 0x1846, "mi_02", false)
|
||||
{
|
||||
}
|
||||
|
||||
public override int DPIProfileCount()
|
||||
{
|
||||
return 2;
|
||||
}
|
||||
|
||||
public override string GetDisplayName()
|
||||
{
|
||||
return "ROG Pugio";
|
||||
}
|
||||
|
||||
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 50;
|
||||
}
|
||||
|
||||
public override int MinDPI()
|
||||
{
|
||||
return 50;
|
||||
}
|
||||
|
||||
public override bool HasLiftOffSetting()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public override bool HasRGB()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public override bool HasAngleSnapping()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public override bool CanChangeDPIProfile()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public override bool HasBattery()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool HasAutoPowerOff()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
//00 12 04 00 00 1f 00 07 00 [03] 00 02 00 00 00
|
||||
protected override PollingRate ParsePollingRate(byte[] packet)
|
||||
{
|
||||
if (packet[1] == 0x12 && packet[2] == 0x04 && packet[3] == 0x00)
|
||||
{
|
||||
return (PollingRate)packet[9];
|
||||
}
|
||||
|
||||
return PollingRate.PR125Hz;
|
||||
}
|
||||
|
||||
public override int MaxBrightness()
|
||||
{
|
||||
return 4;
|
||||
}
|
||||
|
||||
public override LightingZone[] SupportedLightingZones()
|
||||
{
|
||||
return new LightingZone[] { LightingZone.Logo, LightingZone.Scrollwheel, LightingZone.Underglow };
|
||||
}
|
||||
|
||||
public override bool IsLightingModeSupported(LightingMode lightingMode)
|
||||
{
|
||||
return lightingMode == LightingMode.Static
|
||||
|| lightingMode == LightingMode.Breathing
|
||||
|| lightingMode == LightingMode.ColorCycle
|
||||
|| lightingMode == LightingMode.Rainbow
|
||||
|| lightingMode == LightingMode.React
|
||||
|| lightingMode == LightingMode.Comet;
|
||||
}
|
||||
|
||||
protected override byte[] GetUpdateLightingModePacket(LightingSetting lightingSetting, LightingZone zone)
|
||||
{
|
||||
// 00 51 28 03 00 00 04 00 ff 40 00 00 00 00 00 00 00 00 00 00
|
||||
|
||||
/*
|
||||
* This mouse uses different speed values for rainbow mode compared to others.
|
||||
* 00 51 28 03 00 03 04 FF 00 00 00 00 [8C] 00 00 00 00
|
||||
* 00 51 28 03 00 03 04 FF 00 00 00 00 [64] 00 00 00 00
|
||||
* 00 51 28 03 00 03 04 FF 00 00 00 00 [3F] 00 00 00 00
|
||||
*/
|
||||
|
||||
if (lightingSetting.LightingMode == LightingMode.Rainbow)
|
||||
{
|
||||
byte speed = 0x3F;
|
||||
|
||||
switch (lightingSetting.AnimationSpeed)
|
||||
{
|
||||
case AnimationSpeed.Slow:
|
||||
speed = 0x3F;
|
||||
break;
|
||||
case AnimationSpeed.Medium:
|
||||
speed = 0x64;
|
||||
break;
|
||||
case AnimationSpeed.Fast:
|
||||
speed = 0x8C;
|
||||
break;
|
||||
}
|
||||
|
||||
return new byte[] { reportId, 0x51, 0x28, (byte)zone, 0x00,
|
||||
IndexForLightingMode(lightingSetting.LightingMode),
|
||||
(byte)lightingSetting.Brightness,
|
||||
0xFF, 0x00, 0x00,
|
||||
(byte)(SupportsAnimationDirection(lightingSetting.LightingMode) ? lightingSetting.AnimationDirection : 0x00),
|
||||
(byte)((lightingSetting.RandomColor && SupportsRandomColor(lightingSetting.LightingMode)) ? 0x01: 0x00),
|
||||
(byte)(SupportsAnimationSpeed(lightingSetting.LightingMode) ? speed : 0x00)
|
||||
};
|
||||
}
|
||||
|
||||
return base.GetUpdateLightingModePacket(lightingSetting, zone);
|
||||
}
|
||||
|
||||
protected override byte[] GetReadLightingModePacket(LightingZone zone)
|
||||
{
|
||||
return new byte[] { 0x00, 0x12, 0x03, 0x00 };
|
||||
}
|
||||
|
||||
protected LightingSetting? ParseLightingSetting(byte[] packet, LightingZone zone)
|
||||
{
|
||||
if (packet[1] != 0x12 || packet[2] != 0x03)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
int offset = 5 + (((int)zone) * 5);
|
||||
|
||||
LightingSetting setting = new LightingSetting();
|
||||
|
||||
setting.LightingMode = LightingModeForIndex(packet[offset + 0]);
|
||||
setting.Brightness = packet[offset + 1];
|
||||
|
||||
setting.RGBColor = Color.FromArgb(packet[offset + 2], packet[offset + 3], packet[offset + 4]);
|
||||
|
||||
|
||||
return setting;
|
||||
}
|
||||
|
||||
public override void ReadLightingSetting()
|
||||
{
|
||||
if (!HasRGB())
|
||||
{
|
||||
return;
|
||||
}
|
||||
//Mouse sends all lighting zones in one response (0x19) Direction, Random col, Speed
|
||||
//00 12 03 00 00 [03 04 00 00 00] [03 04 00 00 00] [03 04 00 00 00] 01 [00] [00] [8c] 00
|
||||
//00 12 03 00 00 [00 04 00 00 00] [00 04 00 00 00] [00 04 00 00 00] 01 [00] [00] [00] 00
|
||||
byte[]? response = WriteForResponse(GetReadLightingModePacket(LightingZone.All));
|
||||
if (response is null) return;
|
||||
|
||||
LightingZone[] lz = SupportedLightingZones();
|
||||
for (int i = 0; i < lz.Length; ++i)
|
||||
{
|
||||
LightingSetting? ls = ParseLightingSetting(response, lz[i]);
|
||||
if (ls is null)
|
||||
{
|
||||
Logger.WriteLine(GetDisplayName() + ": Failed to read RGB Setting for Zone " + lz[i].ToString());
|
||||
continue;
|
||||
}
|
||||
ls.AnimationDirection = SupportsAnimationDirection(ls.LightingMode)
|
||||
? (AnimationDirection)response[21]
|
||||
: AnimationDirection.Clockwise;
|
||||
|
||||
ls.RandomColor = SupportsRandomColor(ls.LightingMode) && response[22] == 0x01;
|
||||
|
||||
ls.AnimationSpeed = SupportsAnimationSpeed(ls.LightingMode)
|
||||
? (AnimationSpeed)response[23]
|
||||
: AnimationSpeed.Medium;
|
||||
|
||||
if (ls.AnimationSpeed != AnimationSpeed.Fast
|
||||
&& ls.AnimationSpeed != AnimationSpeed.Medium
|
||||
&& ls.AnimationSpeed != AnimationSpeed.Slow)
|
||||
{
|
||||
ls.AnimationSpeed = AnimationSpeed.Medium;
|
||||
}
|
||||
|
||||
Logger.WriteLine(GetDisplayName() + ": Read RGB Setting for Zone " + lz[i].ToString() + ": " + ls.ToString());
|
||||
LightingSetting[i] = ls;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -159,6 +159,34 @@
|
||||
}
|
||||
}
|
||||
|
||||
//P509
|
||||
public class ROGKeris : ROGKerisWireless
|
||||
{
|
||||
public ROGKeris() : base(0x195C, false)
|
||||
{
|
||||
}
|
||||
|
||||
public override string GetDisplayName()
|
||||
{
|
||||
return "ROG Keris";
|
||||
}
|
||||
|
||||
public override bool HasBattery()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool HasLowBatteryWarning()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool HasAutoPowerOff()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public class ROGKerisWirelessWired : ROGKerisWireless
|
||||
{
|
||||
public ROGKerisWirelessWired() : base(0x195E, false)
|
||||
|
||||
@@ -37,7 +37,12 @@
|
||||
}
|
||||
public override int DPIIncrements()
|
||||
{
|
||||
return 100;
|
||||
return 50;
|
||||
}
|
||||
|
||||
public override int MinDPI()
|
||||
{
|
||||
return 50;
|
||||
}
|
||||
|
||||
public override bool HasDebounceSetting()
|
||||
|
||||
116
app/Peripherals/Mouse/Models/StrixEvolve.cs
Normal file
116
app/Peripherals/Mouse/Models/StrixEvolve.cs
Normal file
@@ -0,0 +1,116 @@
|
||||
namespace GHelper.Peripherals.Mouse.Models
|
||||
{
|
||||
public class StrixEvolve : AsusMouse
|
||||
{
|
||||
public StrixEvolve() : base(0x0B05, 0x185B, "mi_00", false)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
public override int DPIProfileCount()
|
||||
{
|
||||
return 2;
|
||||
}
|
||||
|
||||
public override string GetDisplayName()
|
||||
{
|
||||
return "Strix Evolve";
|
||||
}
|
||||
|
||||
|
||||
public override PollingRate[] SupportedPollingrates()
|
||||
{
|
||||
return new PollingRate[] {
|
||||
PollingRate.PR125Hz,
|
||||
PollingRate.PR250Hz,
|
||||
PollingRate.PR500Hz,
|
||||
PollingRate.PR1000Hz
|
||||
};
|
||||
}
|
||||
|
||||
public override int ProfileCount()
|
||||
{
|
||||
return 2;
|
||||
}
|
||||
public override int MaxDPI()
|
||||
{
|
||||
return 7_200;
|
||||
}
|
||||
|
||||
public override bool HasRGB()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public override bool HasAutoPowerOff()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool HasDebounceSetting()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public override bool HasLowBatteryWarning()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool HasBattery()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool HasDPIColors()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool IsLightingModeSupported(LightingMode lightingMode)
|
||||
{
|
||||
return lightingMode == LightingMode.Static
|
||||
|| lightingMode == LightingMode.Breathing
|
||||
|| lightingMode == LightingMode.ColorCycle
|
||||
|| lightingMode == LightingMode.React;
|
||||
}
|
||||
|
||||
public override LightingZone[] SupportedLightingZones()
|
||||
{
|
||||
return new LightingZone[] { LightingZone.Logo };
|
||||
}
|
||||
|
||||
public override int DPIIncrements()
|
||||
{
|
||||
return 100;
|
||||
}
|
||||
|
||||
|
||||
public override int MinDPI()
|
||||
{
|
||||
return 50;
|
||||
}
|
||||
|
||||
public override bool CanChangeDPIProfile()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public override int MaxBrightness()
|
||||
{
|
||||
return 4;
|
||||
}
|
||||
|
||||
public override bool HasLiftOffSetting()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public override bool HasAngleSnapping()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
247
app/Peripherals/Mouse/Models/StrixImpact.cs
Normal file
247
app/Peripherals/Mouse/Models/StrixImpact.cs
Normal file
@@ -0,0 +1,247 @@
|
||||
namespace GHelper.Peripherals.Mouse.Models
|
||||
{
|
||||
//P303
|
||||
public class StrixImpact : AsusMouse
|
||||
{
|
||||
public StrixImpact() : base(0x0B05, 0x1847, "mi_02", false)
|
||||
{
|
||||
}
|
||||
|
||||
public StrixImpact(ushort productId, string path) : base(0x0B05, productId, path, false)
|
||||
{
|
||||
}
|
||||
|
||||
public override int DPIProfileCount()
|
||||
{
|
||||
return 2;
|
||||
}
|
||||
|
||||
public override string GetDisplayName()
|
||||
{
|
||||
return "Strix Impact";
|
||||
}
|
||||
|
||||
|
||||
public override PollingRate[] SupportedPollingrates()
|
||||
{
|
||||
return new PollingRate[] {
|
||||
PollingRate.PR125Hz,
|
||||
PollingRate.PR250Hz,
|
||||
PollingRate.PR500Hz,
|
||||
PollingRate.PR1000Hz
|
||||
};
|
||||
}
|
||||
|
||||
public override int ProfileCount()
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
public override int MaxDPI()
|
||||
{
|
||||
return 5_000;
|
||||
}
|
||||
|
||||
public override bool HasRGB()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public override bool HasAutoPowerOff()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool HasDebounceSetting()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public override bool HasLowBatteryWarning()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool HasBattery()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool HasDPIColors()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool IsLightingModeSupported(LightingMode lightingMode)
|
||||
{
|
||||
return lightingMode == LightingMode.Static
|
||||
|| lightingMode == LightingMode.Breathing
|
||||
|| lightingMode == LightingMode.ColorCycle
|
||||
|| lightingMode == LightingMode.React;
|
||||
}
|
||||
|
||||
public override LightingZone[] SupportedLightingZones()
|
||||
{
|
||||
return new LightingZone[] { LightingZone.Logo };
|
||||
}
|
||||
|
||||
public override int DPIIncrements()
|
||||
{
|
||||
return 100;
|
||||
}
|
||||
|
||||
|
||||
public override int MinDPI()
|
||||
{
|
||||
return 200;
|
||||
}
|
||||
|
||||
public override bool CanChangeDPIProfile()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public override int MaxBrightness()
|
||||
{
|
||||
return 4;
|
||||
}
|
||||
|
||||
protected override byte[] GetUpdateLightingModePacket(LightingSetting lightingSetting, LightingZone zone)
|
||||
{
|
||||
/*
|
||||
* 51 28 00 00 [00] [04] [35 04 FF] 00 00 00 00 00 00 00
|
||||
*/
|
||||
|
||||
return new byte[] { reportId, 0x51, 0x28, 0x00, 0x00,
|
||||
IndexForLightingMode(lightingSetting.LightingMode),
|
||||
(byte)lightingSetting.Brightness,
|
||||
lightingSetting.RGBColor.R, lightingSetting.RGBColor.G, lightingSetting.RGBColor.B
|
||||
};
|
||||
}
|
||||
|
||||
protected override byte[] GetReadLightingModePacket(LightingZone zone)
|
||||
{
|
||||
return new byte[] { 0x00, 0x12, 0x03, 0x00 };
|
||||
}
|
||||
|
||||
protected LightingSetting? ParseLightingSetting(byte[] packet, LightingZone zone)
|
||||
{
|
||||
if (packet[1] != 0x12 || packet[2] != 0x03)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
int offset = 5 + (((int)zone) * 5);
|
||||
|
||||
LightingSetting setting = new LightingSetting();
|
||||
|
||||
setting.LightingMode = LightingModeForIndex(packet[offset + 0]);
|
||||
setting.Brightness = packet[offset + 1];
|
||||
|
||||
setting.RGBColor = Color.FromArgb(packet[offset + 2], packet[offset + 3], packet[offset + 4]);
|
||||
|
||||
|
||||
return setting;
|
||||
}
|
||||
|
||||
public override void ReadLightingSetting()
|
||||
{
|
||||
if (!HasRGB())
|
||||
{
|
||||
return;
|
||||
}
|
||||
//Mouse sends all lighting zones in one response Direction, Random col, Speed
|
||||
//00 12 03 00 00 [00 04 ff 00 80] [00 04 00 ff ff] [00 04 ff ff ff] 00 [00] [00] [00] 00 00
|
||||
//00 12 03 00 00 [03 04 00 00 00] [03 04 00 00 00] [03 04 00 00 00] 00 [00] [00] [07] 00 00
|
||||
byte[]? response = WriteForResponse(GetReadLightingModePacket(LightingZone.All));
|
||||
if (response is null) return;
|
||||
|
||||
LightingZone[] lz = SupportedLightingZones();
|
||||
for (int i = 0; i < lz.Length; ++i)
|
||||
{
|
||||
LightingSetting? ls = ParseLightingSetting(response, lz[i]);
|
||||
if (ls is null)
|
||||
{
|
||||
Logger.WriteLine(GetDisplayName() + ": Failed to read RGB Setting for Zone " + lz[i].ToString());
|
||||
continue;
|
||||
}
|
||||
ls.AnimationDirection = SupportsAnimationDirection(ls.LightingMode)
|
||||
? (AnimationDirection)response[21]
|
||||
: AnimationDirection.Clockwise;
|
||||
|
||||
ls.RandomColor = SupportsRandomColor(ls.LightingMode) && response[22] == 0x01;
|
||||
|
||||
ls.AnimationSpeed = SupportsAnimationSpeed(ls.LightingMode)
|
||||
? (AnimationSpeed)response[23]
|
||||
: AnimationSpeed.Medium;
|
||||
|
||||
if (ls.AnimationSpeed != AnimationSpeed.Fast
|
||||
&& ls.AnimationSpeed != AnimationSpeed.Medium
|
||||
&& ls.AnimationSpeed != AnimationSpeed.Slow)
|
||||
{
|
||||
ls.AnimationSpeed = AnimationSpeed.Medium;
|
||||
}
|
||||
|
||||
Logger.WriteLine(GetDisplayName() + ": Read RGB Setting for Zone " + lz[i].ToString() + ": " + ls.ToString());
|
||||
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) };
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -7,6 +7,10 @@
|
||||
{
|
||||
}
|
||||
|
||||
public StrixImpactII(ushort pid) : base(0x0B05, pid, "mi_00", false)
|
||||
{
|
||||
}
|
||||
|
||||
public override int DPIProfileCount()
|
||||
{
|
||||
return 4;
|
||||
@@ -174,4 +178,19 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class StrixImpactIIElectroPunk : StrixImpactII
|
||||
{
|
||||
|
||||
public StrixImpactIIElectroPunk() : base(0x1956)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
public override string GetDisplayName()
|
||||
{
|
||||
return "ROG Strix Impact II Electro Punk";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
77
app/Peripherals/Mouse/Models/StrixImpactIII.cs
Normal file
77
app/Peripherals/Mouse/Models/StrixImpactIII.cs
Normal file
@@ -0,0 +1,77 @@
|
||||
namespace GHelper.Peripherals.Mouse.Models
|
||||
{
|
||||
//P518
|
||||
public class StrixImpactIII : AsusMouse
|
||||
{
|
||||
public StrixImpactIII() : base(0x0B05, 0x1A88, "mi_00", false)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
public override int DPIProfileCount()
|
||||
{
|
||||
return 4;
|
||||
}
|
||||
|
||||
public override string GetDisplayName()
|
||||
{
|
||||
return "ROG Strix Impact III";
|
||||
}
|
||||
|
||||
|
||||
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 12_000;
|
||||
}
|
||||
|
||||
public override bool HasRGB()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public override LightingZone[] SupportedLightingZones()
|
||||
{
|
||||
return new LightingZone[] { LightingZone.Logo, LightingZone.Scrollwheel };
|
||||
}
|
||||
|
||||
public override bool IsLightingModeSupported(LightingMode lightingMode)
|
||||
{
|
||||
return lightingMode == LightingMode.Static
|
||||
|| lightingMode == LightingMode.Breathing
|
||||
|| lightingMode == LightingMode.ColorCycle
|
||||
|| lightingMode == LightingMode.React
|
||||
|| lightingMode == LightingMode.Off;
|
||||
}
|
||||
|
||||
|
||||
public override bool HasBattery()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool HasAngleSnapping()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public override bool HasLowBatteryWarning()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -124,5 +124,46 @@
|
||||
{
|
||||
return "TUF GAMING M3 (Gen II)";
|
||||
}
|
||||
|
||||
public override int MaxBrightness()
|
||||
{
|
||||
return 100;
|
||||
}
|
||||
|
||||
public override int MaxDPI()
|
||||
{
|
||||
return 8_000;
|
||||
}
|
||||
|
||||
public override int MinDPI()
|
||||
{
|
||||
return 100;
|
||||
}
|
||||
|
||||
public override int DPIIncrements()
|
||||
{
|
||||
return 50;
|
||||
}
|
||||
|
||||
public override bool HasDPIColors()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
protected override int ParseDPIProfile(byte[] packet)
|
||||
{
|
||||
return base.ParseDPIProfile(packet) + 1;
|
||||
}
|
||||
|
||||
protected override byte[] GetChangeDPIProfilePacket(int profile)
|
||||
{
|
||||
return new byte[] { reportId, 0x51, 0x31, 0x0A, 0x00, 0x04 };
|
||||
}
|
||||
|
||||
protected override byte[] GetChangeDPIProfilePacket2(int profile)
|
||||
{
|
||||
return new byte[] { reportId, 0x51, 0x31, 0x09, 0x00, (byte)(profile - 1) };
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
66
app/Peripherals/Mouse/Models/TUFM4Air.cs
Normal file
66
app/Peripherals/Mouse/Models/TUFM4Air.cs
Normal file
@@ -0,0 +1,66 @@
|
||||
namespace GHelper.Peripherals.Mouse.Models
|
||||
{
|
||||
//P307
|
||||
public class TUFM4Air : AsusMouse
|
||||
{
|
||||
public TUFM4Air() : base(0x0B05, 0x1A03, "mi_00", false)
|
||||
{
|
||||
}
|
||||
|
||||
public override int DPIProfileCount()
|
||||
{
|
||||
return 4;
|
||||
}
|
||||
|
||||
public override string GetDisplayName()
|
||||
{
|
||||
return "TUF GAMING M4 Air";
|
||||
}
|
||||
|
||||
|
||||
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 16_000;
|
||||
}
|
||||
|
||||
public override bool HasLiftOffSetting()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public override bool HasAngleSnapping()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public override bool HasAngleTuning()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool HasBattery()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public override int DPIIncrements()
|
||||
{
|
||||
return 100;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -7,6 +7,10 @@
|
||||
{
|
||||
}
|
||||
|
||||
public TUFM4Wirelss(ushort productId, bool wireless) : base(0x0B05, productId, "mi_00", wireless)
|
||||
{
|
||||
}
|
||||
|
||||
public override int DPIProfileCount()
|
||||
{
|
||||
return 4;
|
||||
@@ -82,4 +86,56 @@
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
//P310
|
||||
public class TUFM4WirelssCN : TUFM4Wirelss
|
||||
{
|
||||
public TUFM4WirelssCN() : base(0x1A8D, true)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
public override string GetDisplayName()
|
||||
{
|
||||
return "TX GAMING MOUSE (Wireless)";
|
||||
}
|
||||
}
|
||||
|
||||
//P519_Wireless
|
||||
public class TXGamingMini : TUFM4Wirelss
|
||||
{
|
||||
public TXGamingMini() : base(0x1AF5, true)
|
||||
{
|
||||
}
|
||||
|
||||
public TXGamingMini(ushort productId, bool wireless) : base(productId, wireless)
|
||||
{
|
||||
}
|
||||
|
||||
public override string GetDisplayName()
|
||||
{
|
||||
return "TX GAMING MOUSE Mini (Wireless)";
|
||||
}
|
||||
|
||||
public override bool HasXYDPI()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//P519_Wired
|
||||
public class TXGamingMiniWired : TXGamingMini
|
||||
{
|
||||
public TXGamingMiniWired() : base(0x1AF3, false)
|
||||
{
|
||||
}
|
||||
|
||||
public override string GetDisplayName()
|
||||
{
|
||||
return "TX GAMING MOUSE Mini (Wired)";
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -188,16 +188,24 @@ namespace GHelper.Peripherals
|
||||
DetectMouse(new GladiusIIIAimpoint());
|
||||
DetectMouse(new GladiusIIIAimpointWired());
|
||||
DetectMouse(new GladiusIIOrigin());
|
||||
DetectMouse(new GladiusIIOriginPink());
|
||||
DetectMouse(new GladiusII());
|
||||
DetectMouse(new GladiusIIWireless());
|
||||
DetectMouse(new ROGKerisWireless());
|
||||
DetectMouse(new ROGKerisWirelessWired());
|
||||
DetectMouse(new ROGKeris());
|
||||
DetectMouse(new ROGKerisWirelessEvaEdition());
|
||||
DetectMouse(new ROGKerisWirelessEvaEditionWired());
|
||||
DetectMouse(new TUFM4Air());
|
||||
DetectMouse(new TUFM4Wirelss());
|
||||
DetectMouse(new TUFM4WirelssCN());
|
||||
DetectMouse(new StrixImpactIIWireless());
|
||||
DetectMouse(new StrixImpactIIWirelessWired());
|
||||
DetectMouse(new GladiusIII());
|
||||
DetectMouse(new GladiusIIIWireless());
|
||||
DetectMouse(new GladiusIIIWired());
|
||||
DetectMouse(new GladiusIII());
|
||||
DetectMouse(new GladiusIIIAimpointEva2());
|
||||
DetectMouse(new GladiusIIIAimpointEva2Wired());
|
||||
DetectMouse(new HarpeAceAimLabEdition());
|
||||
DetectMouse(new HarpeAceAimLabEditionWired());
|
||||
DetectMouse(new HarpeAceAimLabEditionOmni());
|
||||
@@ -206,14 +214,21 @@ namespace GHelper.Peripherals
|
||||
DetectMouse(new TUFM5());
|
||||
DetectMouse(new KerisWirelssAimpoint());
|
||||
DetectMouse(new KerisWirelssAimpointWired());
|
||||
DetectMouse(new KerisIIAceWired());
|
||||
DetectMouse(new PugioII());
|
||||
DetectMouse(new PugioIIWired());
|
||||
DetectMouse(new StrixImpactII());
|
||||
DetectMouse(new StrixImpactIIElectroPunk());
|
||||
DetectMouse(new Chakram());
|
||||
DetectMouse(new ChakramWired());
|
||||
DetectMouse(new ChakramCore());
|
||||
DetectMouse(new SpathaX());
|
||||
DetectMouse(new StrixCarry());
|
||||
DetectMouse(new StrixImpactIII());
|
||||
DetectMouse(new StrixImpact());
|
||||
DetectMouse(new TXGamingMini());
|
||||
DetectMouse(new TXGamingMiniWired());
|
||||
DetectMouse(new Pugio());
|
||||
}
|
||||
|
||||
public static void DetectMouse(AsusMouse am)
|
||||
|
||||
@@ -32,12 +32,12 @@ namespace GHelper
|
||||
public static ModeControl modeControl = new ModeControl();
|
||||
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 ToastForm toast = new ToastForm();
|
||||
|
||||
public static IntPtr unRegPowerNotify;
|
||||
public static IntPtr unRegPowerNotify, unRegPowerNotifyLid;
|
||||
|
||||
private static long lastAuto;
|
||||
private static long lastTheme;
|
||||
@@ -110,8 +110,8 @@ namespace GHelper
|
||||
clamshellControl.ToggleLidAction();
|
||||
|
||||
// Subscribing for monitor power on events
|
||||
PowerSettingGuid settingGuid = new NativeMethods.PowerSettingGuid();
|
||||
unRegPowerNotify = NativeMethods.RegisterPowerSettingNotification(settingsForm.Handle, settingGuid.ConsoleDisplayState, NativeMethods.DEVICE_NOTIFY_WINDOW_HANDLE);
|
||||
unRegPowerNotify = NativeMethods.RegisterPowerSettingNotification(settingsForm.Handle, PowerSettingGuid.ConsoleDisplayState, NativeMethods.DEVICE_NOTIFY_WINDOW_HANDLE);
|
||||
unRegPowerNotifyLid = NativeMethods.RegisterPowerSettingNotification(settingsForm.Handle, PowerSettingGuid.LIDSWITCH_STATE_CHANGE, NativeMethods.DEVICE_NOTIFY_WINDOW_HANDLE);
|
||||
|
||||
|
||||
Task task = Task.Run((Action)PeripheralsProvider.DetectAllAsusMice);
|
||||
@@ -179,6 +179,8 @@ namespace GHelper
|
||||
{
|
||||
case UserPreferenceCategory.General:
|
||||
bool changed = settingsForm.InitTheme();
|
||||
settingsForm.VisualiseIcon();
|
||||
|
||||
if (changed)
|
||||
{
|
||||
Debug.WriteLine("Theme Changed");
|
||||
@@ -196,21 +198,28 @@ namespace GHelper
|
||||
|
||||
if (settingsForm.matrixForm is not null && settingsForm.matrixForm.Text != "")
|
||||
settingsForm.matrixForm.InitTheme();
|
||||
|
||||
if (settingsForm.handheldForm is not null && settingsForm.handheldForm.Text != "")
|
||||
settingsForm.handheldForm.InitTheme();
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
public static void SetAutoModes(bool powerChanged = false, bool init = false)
|
||||
public static bool SetAutoModes(bool powerChanged = false, bool init = false)
|
||||
{
|
||||
|
||||
if (Math.Abs(DateTimeOffset.Now.ToUnixTimeMilliseconds() - lastAuto) < 3000) return;
|
||||
if (Math.Abs(DateTimeOffset.Now.ToUnixTimeMilliseconds() - lastAuto) < 3000) return false;
|
||||
lastAuto = DateTimeOffset.Now.ToUnixTimeMilliseconds();
|
||||
|
||||
isPlugged = SystemInformation.PowerStatus.PowerLineStatus;
|
||||
Logger.WriteLine("AutoSetting for " + isPlugged.ToString());
|
||||
|
||||
BatteryControl.AutoBattery(init);
|
||||
if (init) screenControl.InitMiniled();
|
||||
|
||||
inputDispatcher.Init();
|
||||
|
||||
modeControl.AutoPerformance(powerChanged);
|
||||
@@ -223,12 +232,17 @@ namespace GHelper
|
||||
screenControl.AutoScreen();
|
||||
}
|
||||
|
||||
BatteryControl.AutoBattery(init);
|
||||
settingsForm.matrixControl.SetDevice(true);
|
||||
|
||||
settingsForm.AutoKeyboard();
|
||||
settingsForm.matrixControl.SetMatrix(true);
|
||||
if (AppConfig.IsAlly())
|
||||
{
|
||||
allyControl.Init();
|
||||
} else
|
||||
{
|
||||
settingsForm.AutoKeyboard();
|
||||
}
|
||||
|
||||
allyControl.Init();
|
||||
return true;
|
||||
}
|
||||
|
||||
private static void SystemEvents_PowerModeChanged(object sender, PowerModeChangedEventArgs e)
|
||||
@@ -240,6 +254,13 @@ namespace GHelper
|
||||
gpuControl.StandardModeFix();
|
||||
}
|
||||
|
||||
int delay = AppConfig.Get("charger_delay");
|
||||
if (delay > 0)
|
||||
{
|
||||
Logger.WriteLine($"Charger Delay: {delay}");
|
||||
Thread.Sleep(delay);
|
||||
}
|
||||
|
||||
if (SystemInformation.PowerStatus.PowerLineStatus == isPlugged) return;
|
||||
SetAutoModes(true);
|
||||
}
|
||||
@@ -250,7 +271,7 @@ namespace GHelper
|
||||
{
|
||||
// If helper window is not on top, this just focuses on the app again
|
||||
// Pressing the ghelper button again will hide the app
|
||||
if (checkForFocus && !settingsForm.HasAnyFocus(trayClick))
|
||||
if (checkForFocus && !settingsForm.HasAnyFocus(trayClick) && !AppConfig.Is("topmost"))
|
||||
{
|
||||
settingsForm.ShowAll();
|
||||
}
|
||||
@@ -269,7 +290,11 @@ namespace GHelper
|
||||
settingsForm.Activate();
|
||||
|
||||
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();
|
||||
}
|
||||
@@ -290,6 +315,7 @@ namespace GHelper
|
||||
PeripheralsProvider.UnregisterForDeviceEvents();
|
||||
clamshellControl.UnregisterDisplayEvents();
|
||||
NativeMethods.UnregisterPowerSettingNotification(unRegPowerNotify);
|
||||
NativeMethods.UnregisterPowerSettingNotification(unRegPowerNotifyLid);
|
||||
Application.Exit();
|
||||
}
|
||||
|
||||
|
||||
180
app/Properties/Resources.Designer.cs
generated
180
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>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
@@ -110,6 +120,26 @@ namespace GHelper.Properties {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Icon similar to (Icon).
|
||||
/// </summary>
|
||||
internal static System.Drawing.Icon dark_eco {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("dark_eco", resourceCulture);
|
||||
return ((System.Drawing.Icon)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Icon similar to (Icon).
|
||||
/// </summary>
|
||||
internal static System.Drawing.Icon dark_standard {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("dark_standard", resourceCulture);
|
||||
return ((System.Drawing.Icon)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
@@ -160,6 +190,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>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
@@ -190,6 +230,16 @@ namespace GHelper.Properties {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap icons8_brightness_32 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("icons8-brightness-32", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
@@ -220,6 +270,16 @@ namespace GHelper.Properties {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap icons8_color_32 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("icons8-color-32", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
@@ -230,6 +290,36 @@ namespace GHelper.Properties {
|
||||
}
|
||||
}
|
||||
|
||||
/// <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>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap icons8_dollar_32 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("icons8-dollar-32", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
@@ -300,6 +390,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>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
@@ -320,6 +420,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>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
@@ -440,6 +550,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>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
@@ -520,6 +640,16 @@ namespace GHelper.Properties {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap icons8_search_32 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("icons8-search-32", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
@@ -560,6 +690,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>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
@@ -620,6 +760,46 @@ 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>
|
||||
/// Looks up a localized resource of type System.Drawing.Icon similar to (Icon).
|
||||
/// </summary>
|
||||
internal static System.Drawing.Icon light_eco {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("light_eco", resourceCulture);
|
||||
return ((System.Drawing.Icon)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Icon similar to (Icon).
|
||||
/// </summary>
|
||||
internal static System.Drawing.Icon light_standard {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("light_standard", resourceCulture);
|
||||
return ((System.Drawing.Icon)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
|
||||
@@ -118,190 +118,244 @@
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<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">
|
||||
<value>..\Resources\brightness-up.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="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>
|
||||
</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="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-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 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>
|
||||
<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="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 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>
|
||||
</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="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 name="icons8-search-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\icons8-search-32.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">
|
||||
<value>..\Resources\icons8-edit-32.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="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 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_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>
|
||||
</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 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="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 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-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 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-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 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_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_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="icons8-gauge-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>
|
||||
</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="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 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-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="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-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="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>
|
||||
</data>
|
||||
<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>
|
||||
</data>
|
||||
<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>
|
||||
</data>
|
||||
<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>
|
||||
</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 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-controller-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\icons8-controller-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="icons8-controls-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\icons8-controls-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="icons8-next-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\icons8-next-32.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="light_standard" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\light-standard.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="brightness_up" 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>
|
||||
</data>
|
||||
<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>
|
||||
</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="light_eco" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\light-eco.ico;System.Drawing.Icon, 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">
|
||||
<value>..\Resources\icons8-laptop-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</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_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-color-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\icons8-color-32.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="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 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-brightness-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\icons8-brightness-32.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="dark_eco" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\dark-eco.ico;System.Drawing.Icon, 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">
|
||||
<value>..\Resources\icons8-ladende-batterie-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="dark_standard" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\dark-standard.ico;System.Drawing.Icon, 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="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>
|
||||
</data>
|
||||
<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>
|
||||
</data>
|
||||
<data name="icons8-gauge-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>
|
||||
</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_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="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-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-dollar-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\icons8-dollar-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
</root>
|
||||
400
app/Properties/Strings.Designer.cs
generated
400
app/Properties/Strings.Designer.cs
generated
@@ -141,6 +141,15 @@ namespace GHelper.Properties {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Ally Controller.
|
||||
/// </summary>
|
||||
internal static string AllyController {
|
||||
get {
|
||||
return ResourceManager.GetString("AllyController", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Animation Speed.
|
||||
/// </summary>
|
||||
@@ -447,6 +456,42 @@ namespace GHelper.Properties {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Low.
|
||||
/// </summary>
|
||||
internal static string BacklightLow {
|
||||
get {
|
||||
return ResourceManager.GetString("BacklightLow", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Max.
|
||||
/// </summary>
|
||||
internal static string BacklightMax {
|
||||
get {
|
||||
return ResourceManager.GetString("BacklightMax", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Mid.
|
||||
/// </summary>
|
||||
internal static string BacklightMid {
|
||||
get {
|
||||
return ResourceManager.GetString("BacklightMid", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Off.
|
||||
/// </summary>
|
||||
internal static string BacklightOff {
|
||||
get {
|
||||
return ResourceManager.GetString("BacklightOff", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Timeout plugged / on battery (0 - ON).
|
||||
/// </summary>
|
||||
@@ -519,6 +564,33 @@ namespace GHelper.Properties {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Binding.
|
||||
/// </summary>
|
||||
internal static string Binding {
|
||||
get {
|
||||
return ResourceManager.GetString("Binding", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Primary.
|
||||
/// </summary>
|
||||
internal static string BindingPrimary {
|
||||
get {
|
||||
return ResourceManager.GetString("BindingPrimary", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Secondary.
|
||||
/// </summary>
|
||||
internal static string BindingSecondary {
|
||||
get {
|
||||
return ResourceManager.GetString("BindingSecondary", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to BIOS and Driver Updates.
|
||||
/// </summary>
|
||||
@@ -573,6 +645,15 @@ namespace GHelper.Properties {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Black and white tray icon.
|
||||
/// </summary>
|
||||
internal static string BWTrayIcon {
|
||||
get {
|
||||
return ResourceManager.GetString("BWTrayIcon", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Calibrate.
|
||||
/// </summary>
|
||||
@@ -600,6 +681,24 @@ namespace GHelper.Properties {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Contrast.
|
||||
/// </summary>
|
||||
internal static string Contrast {
|
||||
get {
|
||||
return ResourceManager.GetString("Contrast", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Controller.
|
||||
/// </summary>
|
||||
internal static string Controller {
|
||||
get {
|
||||
return ResourceManager.GetString("Controller", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to CPU Boost.
|
||||
/// </summary>
|
||||
@@ -636,6 +735,24 @@ namespace GHelper.Properties {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Disable Controller.
|
||||
/// </summary>
|
||||
internal static string DisableController {
|
||||
get {
|
||||
return ResourceManager.GetString("DisableController", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Disable on lid close.
|
||||
/// </summary>
|
||||
internal static string DisableOnLidClose {
|
||||
get {
|
||||
return ResourceManager.GetString("DisableOnLidClose", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Disable screen overdrive.
|
||||
/// </summary>
|
||||
@@ -654,6 +771,15 @@ namespace GHelper.Properties {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Download Color Profiles.
|
||||
/// </summary>
|
||||
internal static string DownloadColorProfiles {
|
||||
get {
|
||||
return ResourceManager.GetString("DownloadColorProfiles", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Download.
|
||||
/// </summary>
|
||||
@@ -690,6 +816,15 @@ namespace GHelper.Properties {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Enable GPU on shutdown (prevents issue with Eco mode).
|
||||
/// </summary>
|
||||
internal static string EnableGPUOnShutdown {
|
||||
get {
|
||||
return ResourceManager.GetString("EnableGPUOnShutdown", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Disabling the dGPU by going into Eco mode while Display Mode in NVIDIA Control Panel is not set to Optimus might cause problems with brightness controls until after the next reboot.
|
||||
///
|
||||
@@ -719,6 +854,15 @@ namespace GHelper.Properties {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Export Profile.
|
||||
/// </summary>
|
||||
internal static string Export {
|
||||
get {
|
||||
return ResourceManager.GetString("Export", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Extra.
|
||||
/// </summary>
|
||||
@@ -818,6 +962,15 @@ namespace GHelper.Properties {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Flicker-free Dimming.
|
||||
/// </summary>
|
||||
internal static string FlickerFreeDimming {
|
||||
get {
|
||||
return ResourceManager.GetString("FlickerFreeDimming", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Process Fn+F hotkeys without Fn.
|
||||
/// </summary>
|
||||
@@ -827,6 +980,24 @@ namespace GHelper.Properties {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to FN-Lock Off.
|
||||
/// </summary>
|
||||
internal static string FnLockOff {
|
||||
get {
|
||||
return ResourceManager.GetString("FnLockOff", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to FN-Lock On.
|
||||
/// </summary>
|
||||
internal static string FnLockOn {
|
||||
get {
|
||||
return ResourceManager.GetString("FnLockOn", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Dynamic Boost.
|
||||
/// </summary>
|
||||
@@ -899,6 +1070,15 @@ namespace GHelper.Properties {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to GPU Power.
|
||||
/// </summary>
|
||||
internal static string GPUPower {
|
||||
get {
|
||||
return ResourceManager.GetString("GPUPower", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to GPU Settings.
|
||||
/// </summary>
|
||||
@@ -935,6 +1115,24 @@ namespace GHelper.Properties {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Image Rotation.
|
||||
/// </summary>
|
||||
internal static string ImageRotation {
|
||||
get {
|
||||
return ResourceManager.GetString("ImageRotation", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Import Profile.
|
||||
/// </summary>
|
||||
internal static string Import {
|
||||
get {
|
||||
return ResourceManager.GetString("Import", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Key Bindings.
|
||||
/// </summary>
|
||||
@@ -989,6 +1187,15 @@ namespace GHelper.Properties {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to LED Status Indicators.
|
||||
/// </summary>
|
||||
internal static string LEDStatusIndicators {
|
||||
get {
|
||||
return ResourceManager.GetString("LEDStatusIndicators", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Lid.
|
||||
/// </summary>
|
||||
@@ -1016,6 +1223,15 @@ namespace GHelper.Properties {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Lock Screen.
|
||||
/// </summary>
|
||||
internal static string LockScreen {
|
||||
get {
|
||||
return ResourceManager.GetString("LockScreen", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Logo.
|
||||
/// </summary>
|
||||
@@ -1034,6 +1250,24 @@ namespace GHelper.Properties {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Left Stick Deadzones.
|
||||
/// </summary>
|
||||
internal static string LSDeadzones {
|
||||
get {
|
||||
return ResourceManager.GetString("LSDeadzones", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Left Trigger Deadzones.
|
||||
/// </summary>
|
||||
internal static string LTDeadzones {
|
||||
get {
|
||||
return ResourceManager.GetString("LTDeadzones", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Audio Visualizer.
|
||||
/// </summary>
|
||||
@@ -1178,6 +1412,15 @@ namespace GHelper.Properties {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Import failed. Selected file is not a valid mouse profile or corrutpted..
|
||||
/// </summary>
|
||||
internal static string MouseImportFailed {
|
||||
get {
|
||||
return ResourceManager.GetString("MouseImportFailed", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Lift Off Distance.
|
||||
/// </summary>
|
||||
@@ -1215,7 +1458,7 @@ namespace GHelper.Properties {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Multizone.
|
||||
/// Looks up a localized string similar to Multi Zone.
|
||||
/// </summary>
|
||||
internal static string Multizone {
|
||||
get {
|
||||
@@ -1223,6 +1466,24 @@ 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>
|
||||
/// Looks up a localized string similar to Muted.
|
||||
/// </summary>
|
||||
internal static string Muted {
|
||||
get {
|
||||
return ResourceManager.GetString("Muted", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Mute Mic.
|
||||
/// </summary>
|
||||
@@ -1268,6 +1529,33 @@ namespace GHelper.Properties {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Off.
|
||||
/// </summary>
|
||||
internal static string Off {
|
||||
get {
|
||||
return ResourceManager.GetString("Off", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to On.
|
||||
/// </summary>
|
||||
internal static string On {
|
||||
get {
|
||||
return ResourceManager.GetString("On", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to One Zone.
|
||||
/// </summary>
|
||||
internal static string OneZone {
|
||||
get {
|
||||
return ResourceManager.GetString("OneZone", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Open G-Helper window.
|
||||
/// </summary>
|
||||
@@ -1412,6 +1700,15 @@ namespace GHelper.Properties {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Reset.
|
||||
/// </summary>
|
||||
internal static string Reset {
|
||||
get {
|
||||
return ResourceManager.GetString("Reset", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Something is using dGPU and preventing Eco mode. Let G-Helper try to restart dGPU in device manager? (Please proceed at your own risk).
|
||||
/// </summary>
|
||||
@@ -1430,6 +1727,24 @@ namespace GHelper.Properties {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Right Stick Deadzones.
|
||||
/// </summary>
|
||||
internal static string RSDeadzones {
|
||||
get {
|
||||
return ResourceManager.GetString("RSDeadzones", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Right Trigger Deadzones.
|
||||
/// </summary>
|
||||
internal static string RTDeadzones {
|
||||
get {
|
||||
return ResourceManager.GetString("RTDeadzones", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Run on Startup.
|
||||
/// </summary>
|
||||
@@ -1439,6 +1754,15 @@ namespace GHelper.Properties {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Scaling Quality.
|
||||
/// </summary>
|
||||
internal static string ScalingQuality {
|
||||
get {
|
||||
return ResourceManager.GetString("ScalingQuality", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Screenpad Brightness Down.
|
||||
/// </summary>
|
||||
@@ -1601,6 +1925,24 @@ namespace GHelper.Properties {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Toggle Touchscreen.
|
||||
/// </summary>
|
||||
internal static string ToggleTouchscreen {
|
||||
get {
|
||||
return ResourceManager.GetString("ToggleTouchscreen", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to .
|
||||
/// </summary>
|
||||
internal static string Touchscreen {
|
||||
get {
|
||||
return ResourceManager.GetString("Touchscreen", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Turbo.
|
||||
/// </summary>
|
||||
@@ -1620,7 +1962,7 @@ namespace GHelper.Properties {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Turn off on battery.
|
||||
/// Looks up a localized string similar to Disable on battery.
|
||||
/// </summary>
|
||||
internal static string TurnOffOnBattery {
|
||||
get {
|
||||
@@ -1655,6 +1997,15 @@ namespace GHelper.Properties {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Unmuted.
|
||||
/// </summary>
|
||||
internal static string Unmuted {
|
||||
get {
|
||||
return ResourceManager.GetString("Unmuted", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Updates.
|
||||
/// </summary>
|
||||
@@ -1673,6 +2024,42 @@ namespace GHelper.Properties {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Vibration Strength.
|
||||
/// </summary>
|
||||
internal static string VibrationStrength {
|
||||
get {
|
||||
return ResourceManager.GetString("VibrationStrength", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Visual Mode.
|
||||
/// </summary>
|
||||
internal static string VisualMode {
|
||||
get {
|
||||
return ResourceManager.GetString("VisualMode", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Visual Modes are not available when HDR is active.
|
||||
/// </summary>
|
||||
internal static string VisualModesHDR {
|
||||
get {
|
||||
return ResourceManager.GetString("VisualModesHDR", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Visual Modes are not available when laptop screen is off.
|
||||
/// </summary>
|
||||
internal static string VisualModesScreen {
|
||||
get {
|
||||
return ResourceManager.GetString("VisualModesScreen", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Volume Down.
|
||||
/// </summary>
|
||||
@@ -1708,5 +2095,14 @@ namespace GHelper.Properties {
|
||||
return ResourceManager.GetString("WindowTop", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Zoom.
|
||||
/// </summary>
|
||||
internal static string Zoom {
|
||||
get {
|
||||
return ResourceManager.GetString("Zoom", resourceCulture);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
803
app/Properties/Strings.da.resx
Normal file
803
app/Properties/Strings.da.resx
Normal file
@@ -0,0 +1,803 @@
|
||||
<?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 xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="root">
|
||||
<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>
|
||||
<data name="Acceleration" xml:space="preserve">
|
||||
<value>Acceleration</value>
|
||||
</data>
|
||||
<data name="ACPIError" xml:space="preserve">
|
||||
<value>Kan ikke oprette forbindelse til ASUS ACPI. Applikationen kan ikke fungere uden. Prøv at installere Asus System Control Interface</value>
|
||||
</data>
|
||||
<data name="AlertAPUMemoryRestart" xml:space="preserve">
|
||||
<value>Genstart din enhed for at anvende ændringerne</value>
|
||||
</data>
|
||||
<data name="AlertAPUMemoryRestartTitle" xml:space="preserve">
|
||||
<value>Genstart nu?</value>
|
||||
</data>
|
||||
<data name="AlertDGPU" xml:space="preserve">
|
||||
<value>Ser ud til at GPU er i kraftig brug, vil du deaktivere den?</value>
|
||||
</data>
|
||||
<data name="AlertDGPUTitle" xml:space="preserve">
|
||||
<value>Øko-tilstand</value>
|
||||
</data>
|
||||
<data name="AlertUltimateOff" xml:space="preserve">
|
||||
<value>Slukning af Ultimativ tilstand kræver genstart</value>
|
||||
</data>
|
||||
<data name="AlertUltimateOn" xml:space="preserve">
|
||||
<value>Ultimativ tilstand kræver genstart</value>
|
||||
</data>
|
||||
<data name="AlertUltimateTitle" xml:space="preserve">
|
||||
<value>Genstart nu?</value>
|
||||
</data>
|
||||
<data name="AllyController" xml:space="preserve">
|
||||
<value>Ally Controller</value>
|
||||
</data>
|
||||
<data name="AnimationSpeed" xml:space="preserve">
|
||||
<value>Animationshastighed</value>
|
||||
</data>
|
||||
<data name="AnimeMatrix" xml:space="preserve">
|
||||
<value>Anime Matrix</value>
|
||||
</data>
|
||||
<data name="AppAlreadyRunning" xml:space="preserve">
|
||||
<value>App'en kører allerede</value>
|
||||
</data>
|
||||
<data name="AppAlreadyRunningText" xml:space="preserve">
|
||||
<value>G-Helper kører allerede. Tjek systembakken for et ikon.</value>
|
||||
</data>
|
||||
<data name="Apply" xml:space="preserve">
|
||||
<value>Anvend</value>
|
||||
</data>
|
||||
<data name="ApplyFanCurve" xml:space="preserve">
|
||||
<value>Anvend blæserkurve</value>
|
||||
</data>
|
||||
<data name="ApplyPowerLimits" xml:space="preserve">
|
||||
<value>Anvend strømgrænser</value>
|
||||
</data>
|
||||
<data name="ApplyWindowsPowerPlan" xml:space="preserve">
|
||||
<value>Automatisk justering af Windows strømtilstande</value>
|
||||
</data>
|
||||
<data name="APUMemory" xml:space="preserve">
|
||||
<value>Hukommelse tildelt til GPU</value>
|
||||
</data>
|
||||
<data name="AsusServicesRunning" xml:space="preserve">
|
||||
<value>Kørende ASUS-tjenester</value>
|
||||
</data>
|
||||
<data name="AuraBatteryState" xml:space="preserve">
|
||||
<value>Batteritilstand</value>
|
||||
</data>
|
||||
<data name="AuraBreathe" xml:space="preserve">
|
||||
<value>Vejrtrækning</value>
|
||||
</data>
|
||||
<data name="AuraClockwise" xml:space="preserve">
|
||||
<value>Med uret</value>
|
||||
</data>
|
||||
<data name="AuraColorCycle" xml:space="preserve">
|
||||
<value>Farvecyklus</value>
|
||||
</data>
|
||||
<data name="AuraComet" xml:space="preserve">
|
||||
<value>Komet</value>
|
||||
</data>
|
||||
<data name="AuraCounterClockwise" xml:space="preserve">
|
||||
<value>Mod uret</value>
|
||||
</data>
|
||||
<data name="AuraFast" xml:space="preserve">
|
||||
<value>Hurtig</value>
|
||||
</data>
|
||||
<data name="AuraLightingMode" xml:space="preserve">
|
||||
<value>Lystilstand</value>
|
||||
</data>
|
||||
<data name="AuraNormal" xml:space="preserve">
|
||||
<value>Normal</value>
|
||||
</data>
|
||||
<data name="AuraRainbow" xml:space="preserve">
|
||||
<value>Regnbue</value>
|
||||
</data>
|
||||
<data name="AuraRandomColor" xml:space="preserve">
|
||||
<value>Tilfældig</value>
|
||||
</data>
|
||||
<data name="AuraReact" xml:space="preserve">
|
||||
<value>Reager</value>
|
||||
</data>
|
||||
<data name="AuraSlow" xml:space="preserve">
|
||||
<value>Langsom</value>
|
||||
</data>
|
||||
<data name="AuraStatic" xml:space="preserve">
|
||||
<value>Statisk</value>
|
||||
</data>
|
||||
<data name="AuraStrobe" xml:space="preserve">
|
||||
<value>Strobelys</value>
|
||||
</data>
|
||||
<data name="AuraZoneAll" xml:space="preserve">
|
||||
<value>Alle</value>
|
||||
</data>
|
||||
<data name="AuraZoneDock" xml:space="preserve">
|
||||
<value>Dock</value>
|
||||
</data>
|
||||
<data name="AuraZoneLogo" xml:space="preserve">
|
||||
<value>Logo</value>
|
||||
</data>
|
||||
<data name="AuraZoneScroll" xml:space="preserve">
|
||||
<value>Scroll-hjul</value>
|
||||
</data>
|
||||
<data name="AuraZoneUnderglow" xml:space="preserve">
|
||||
<value>Underglød</value>
|
||||
</data>
|
||||
<data name="AutoApply" xml:space="preserve">
|
||||
<value>Anvend automatisk</value>
|
||||
</data>
|
||||
<data name="AutoMode" xml:space="preserve">
|
||||
<value>Automatisk</value>
|
||||
</data>
|
||||
<data name="AutoRefreshTooltip" xml:space="preserve">
|
||||
<value>Sætter 60 Hz for at spare på batteri, og tilbage når tilsluttet</value>
|
||||
</data>
|
||||
<data name="Awake" xml:space="preserve">
|
||||
<value>Vågen</value>
|
||||
</data>
|
||||
<data name="BacklightLow" xml:space="preserve">
|
||||
<value>Lav</value>
|
||||
</data>
|
||||
<data name="BacklightMax" xml:space="preserve">
|
||||
<value>Maksimal</value>
|
||||
</data>
|
||||
<data name="BacklightMid" xml:space="preserve">
|
||||
<value>Mellem</value>
|
||||
</data>
|
||||
<data name="BacklightOff" xml:space="preserve">
|
||||
<value>Slukket</value>
|
||||
</data>
|
||||
<data name="BacklightTimeout" xml:space="preserve">
|
||||
<value>Timeout tilsluttet / på batteri (0 - TIL)</value>
|
||||
</data>
|
||||
<data name="BacklightTimeoutBattery" xml:space="preserve">
|
||||
<value>Baggrundslys timeout på batteri</value>
|
||||
</data>
|
||||
<data name="BacklightTimeoutPlugged" xml:space="preserve">
|
||||
<value>Timeout for baggrundslys når tilsluttet</value>
|
||||
</data>
|
||||
<data name="Balanced" xml:space="preserve">
|
||||
<value>Balanceret</value>
|
||||
</data>
|
||||
<data name="BatteryCharge" xml:space="preserve">
|
||||
<value>Opladning</value>
|
||||
</data>
|
||||
<data name="BatteryChargeLimit" xml:space="preserve">
|
||||
<value>Batteriopladningsgrænse</value>
|
||||
</data>
|
||||
<data name="BatteryHealth" xml:space="preserve">
|
||||
<value>Batteritilstand</value>
|
||||
</data>
|
||||
<data name="BatteryLimitFull" xml:space="preserve">
|
||||
<value>Engangsopladning til 100%</value>
|
||||
</data>
|
||||
<data name="Binding" xml:space="preserve">
|
||||
<value>Binding</value>
|
||||
</data>
|
||||
<data name="BindingPrimary" xml:space="preserve">
|
||||
<value>Primær</value>
|
||||
</data>
|
||||
<data name="BindingSecondary" xml:space="preserve">
|
||||
<value>Sekundær</value>
|
||||
</data>
|
||||
<data name="BiosAndDriverUpdates" xml:space="preserve">
|
||||
<value>BIOS og driveropdateringer</value>
|
||||
</data>
|
||||
<data name="Boot" xml:space="preserve">
|
||||
<value>Boot</value>
|
||||
</data>
|
||||
<data name="BootSound" xml:space="preserve">
|
||||
<value>Opstarts-lyd</value>
|
||||
</data>
|
||||
<data name="Brightness" xml:space="preserve">
|
||||
<value>Lysstyrke</value>
|
||||
</data>
|
||||
<data name="BrightnessDown" xml:space="preserve">
|
||||
<value>Lysstyrke ned</value>
|
||||
</data>
|
||||
<data name="BrightnessUp" xml:space="preserve">
|
||||
<value>Lysstyrke op</value>
|
||||
</data>
|
||||
<data name="BWTrayIcon" xml:space="preserve">
|
||||
<value>Sort/hvid bakkeikon</value>
|
||||
</data>
|
||||
<data name="Calibrate" xml:space="preserve">
|
||||
<value>Kalibrer</value>
|
||||
</data>
|
||||
<data name="Charging" xml:space="preserve">
|
||||
<value>Oplader</value>
|
||||
</data>
|
||||
<data name="Color" xml:space="preserve">
|
||||
<value>Farve</value>
|
||||
</data>
|
||||
<data name="Contrast" xml:space="preserve">
|
||||
<value>Kontrast</value>
|
||||
</data>
|
||||
<data name="Controller" xml:space="preserve">
|
||||
<value>Controller</value>
|
||||
</data>
|
||||
<data name="CPUBoost" xml:space="preserve">
|
||||
<value>CPU Boost</value>
|
||||
</data>
|
||||
<data name="Custom" xml:space="preserve">
|
||||
<value>Brugerdefineret</value>
|
||||
</data>
|
||||
<data name="Deceleration" xml:space="preserve">
|
||||
<value>Deceleration</value>
|
||||
</data>
|
||||
<data name="Default" xml:space="preserve">
|
||||
<value>Standard</value>
|
||||
</data>
|
||||
<data name="DisableController" xml:space="preserve">
|
||||
<value>Deaktiver Controller</value>
|
||||
</data>
|
||||
<data name="DisableOnLidClose" xml:space="preserve">
|
||||
<value>Deaktiver ved lukning af låg</value>
|
||||
</data>
|
||||
<data name="DisableOverdrive" xml:space="preserve">
|
||||
<value>Deaktiver Overdrive på skærmen</value>
|
||||
</data>
|
||||
<data name="Discharging" xml:space="preserve">
|
||||
<value>Aflader</value>
|
||||
</data>
|
||||
<data name="DownloadColorProfiles" xml:space="preserve">
|
||||
<value>Hent farveprofiler</value>
|
||||
</data>
|
||||
<data name="DownloadUpdate" xml:space="preserve">
|
||||
<value>Hent</value>
|
||||
</data>
|
||||
<data name="DriverAndSoftware" xml:space="preserve">
|
||||
<value>Drivere og software</value>
|
||||
</data>
|
||||
<data name="EcoGPUTooltip" xml:space="preserve">
|
||||
<value>Deaktiverer dGPU for at spare på batteriet</value>
|
||||
</data>
|
||||
<data name="EcoMode" xml:space="preserve">
|
||||
<value>Øko</value>
|
||||
</data>
|
||||
<data name="EnableGPUOnShutdown" xml:space="preserve">
|
||||
<value>Aktiver GPU ved nedlukning (forhindrer problemer med Øko-tilstand)</value>
|
||||
</data>
|
||||
<data name="EnableOptimusText" xml:space="preserve">
|
||||
<value>Deaktivering af dGPU ved at gå i Øko-tilstand, mens visningstilstand i NVIDIA Kontrolpanel ikke er indstillet til Optimus kan forårsage problemer med lysstyrkekontrol indtil efter næste genstart.
|
||||
|
||||
Vil du stadig fortsætte?</value>
|
||||
</data>
|
||||
<data name="EnableOptimusTitle" xml:space="preserve">
|
||||
<value>NVIDIA Visningstilstand er ikke indstillet til Optimus</value>
|
||||
</data>
|
||||
<data name="EnergySettings" xml:space="preserve">
|
||||
<value>Energiindstillinger</value>
|
||||
</data>
|
||||
<data name="Export" xml:space="preserve">
|
||||
<value>Eksporter profil</value>
|
||||
</data>
|
||||
<data name="Extra" xml:space="preserve">
|
||||
<value>Ekstra</value>
|
||||
</data>
|
||||
<data name="ExtraSettings" xml:space="preserve">
|
||||
<value>Ekstra indstillinger</value>
|
||||
</data>
|
||||
<data name="FactoryDefaults" xml:space="preserve">
|
||||
<value>Gendan standarder</value>
|
||||
</data>
|
||||
<data name="FanCurves" xml:space="preserve">
|
||||
<value>Blæserkurver</value>
|
||||
</data>
|
||||
<data name="FanProfileCPU" xml:space="preserve">
|
||||
<value>CPU blæserkurveprofil</value>
|
||||
</data>
|
||||
<data name="FanProfileGPU" xml:space="preserve">
|
||||
<value>GPU blæserkurveprofil</value>
|
||||
</data>
|
||||
<data name="FanProfileMid" xml:space="preserve">
|
||||
<value>Midt blæserprofil</value>
|
||||
</data>
|
||||
<data name="FanProfiles" xml:space="preserve">
|
||||
<value>Blæserprofiler</value>
|
||||
</data>
|
||||
<data name="FansAndPower" xml:space="preserve">
|
||||
<value>Blæsere og strøm</value>
|
||||
</data>
|
||||
<data name="FanSpeed" xml:space="preserve">
|
||||
<value>Blæser</value>
|
||||
</data>
|
||||
<data name="FansPower" xml:space="preserve">
|
||||
<value>Blæser + Strøm</value>
|
||||
</data>
|
||||
<data name="FlickerFreeDimming" xml:space="preserve">
|
||||
<value>Flimmerfri dæmpning</value>
|
||||
</data>
|
||||
<data name="FnLock" xml:space="preserve">
|
||||
<value>Aktiver Fn + F genvejstaster uden Fn</value>
|
||||
</data>
|
||||
<data name="FnLockOff" xml:space="preserve">
|
||||
<value>Fn-lås fra</value>
|
||||
</data>
|
||||
<data name="FnLockOn" xml:space="preserve">
|
||||
<value>Fn-lås til</value>
|
||||
</data>
|
||||
<data name="GPUBoost" xml:space="preserve">
|
||||
<value>Dynamisk boost</value>
|
||||
</data>
|
||||
<data name="GPUChanging" xml:space="preserve">
|
||||
<value>Skifter</value>
|
||||
</data>
|
||||
<data name="GPUCoreClockOffset" xml:space="preserve">
|
||||
<value>Core Clock offset</value>
|
||||
</data>
|
||||
<data name="GPUMemoryClockOffset" xml:space="preserve">
|
||||
<value>Memory Clock offset</value>
|
||||
</data>
|
||||
<data name="GPUMode" xml:space="preserve">
|
||||
<value>GPU-tilstand</value>
|
||||
</data>
|
||||
<data name="GPUModeEco" xml:space="preserve">
|
||||
<value>Kun iGPU</value>
|
||||
</data>
|
||||
<data name="GPUModeStandard" xml:space="preserve">
|
||||
<value>iGPU + dGPU</value>
|
||||
</data>
|
||||
<data name="GPUModeUltimate" xml:space="preserve">
|
||||
<value>dGPU eksklusivt</value>
|
||||
</data>
|
||||
<data name="GPUPower" xml:space="preserve">
|
||||
<value>GPU-strøm</value>
|
||||
</data>
|
||||
<data name="GPUSettings" xml:space="preserve">
|
||||
<value>GPU-indstillinger</value>
|
||||
</data>
|
||||
<data name="GPUTempTarget" xml:space="preserve">
|
||||
<value>Temperaturmål</value>
|
||||
</data>
|
||||
<data name="HibernateAfter" xml:space="preserve">
|
||||
<value>Minutter til dvale i standby på batteriet (0 - OFF)</value>
|
||||
</data>
|
||||
<data name="High" xml:space="preserve">
|
||||
<value>Høj</value>
|
||||
</data>
|
||||
<data name="ImageRotation" xml:space="preserve">
|
||||
<value>Billedrotation</value>
|
||||
</data>
|
||||
<data name="Import" xml:space="preserve">
|
||||
<value>Importer profil</value>
|
||||
</data>
|
||||
<data name="KeyBindings" xml:space="preserve">
|
||||
<value>Tastebindinger</value>
|
||||
</data>
|
||||
<data name="Keyboard" xml:space="preserve">
|
||||
<value>Tastatur</value>
|
||||
</data>
|
||||
<data name="KillGpuApps" xml:space="preserve">
|
||||
<value>Stop alle apps der bruger GPU når du skifter til Øko</value>
|
||||
</data>
|
||||
<data name="LaptopBacklight" xml:space="preserve">
|
||||
<value>Laptop baggrundsbelysning</value>
|
||||
</data>
|
||||
<data name="LaptopKeyboard" xml:space="preserve">
|
||||
<value>Laptop-tastatur</value>
|
||||
</data>
|
||||
<data name="LaptopScreen" xml:space="preserve">
|
||||
<value>Laptop-skærm</value>
|
||||
</data>
|
||||
<data name="LEDStatusIndicators" xml:space="preserve">
|
||||
<value>LED statusindikatorer</value>
|
||||
</data>
|
||||
<data name="Lid" xml:space="preserve">
|
||||
<value>Låg</value>
|
||||
</data>
|
||||
<data name="Lightbar" xml:space="preserve">
|
||||
<value>Lightbar</value>
|
||||
</data>
|
||||
<data name="Lighting" xml:space="preserve">
|
||||
<value>Belysning</value>
|
||||
</data>
|
||||
<data name="LockScreen" xml:space="preserve">
|
||||
<value>Låseskærm</value>
|
||||
</data>
|
||||
<data name="Logo" xml:space="preserve">
|
||||
<value>Logo</value>
|
||||
</data>
|
||||
<data name="Low" xml:space="preserve">
|
||||
<value>Lav</value>
|
||||
</data>
|
||||
<data name="LSDeadzones" xml:space="preserve">
|
||||
<value>Venstre stick dødzoner</value>
|
||||
</data>
|
||||
<data name="LTDeadzones" xml:space="preserve">
|
||||
<value>Venstre udløser dødzoner</value>
|
||||
</data>
|
||||
<data name="MatrixAudio" xml:space="preserve">
|
||||
<value>Lydvisualisering</value>
|
||||
</data>
|
||||
<data name="MatrixBanner" xml:space="preserve">
|
||||
<value>Binær banner</value>
|
||||
</data>
|
||||
<data name="MatrixBright" xml:space="preserve">
|
||||
<value>Kraftigt</value>
|
||||
</data>
|
||||
<data name="MatrixClock" xml:space="preserve">
|
||||
<value>Ur</value>
|
||||
</data>
|
||||
<data name="MatrixDim" xml:space="preserve">
|
||||
<value>Dæmpet</value>
|
||||
</data>
|
||||
<data name="MatrixLogo" xml:space="preserve">
|
||||
<value>ROG logo</value>
|
||||
</data>
|
||||
<data name="MatrixMedium" xml:space="preserve">
|
||||
<value>Middel</value>
|
||||
</data>
|
||||
<data name="MatrixOff" xml:space="preserve">
|
||||
<value>Slukket</value>
|
||||
</data>
|
||||
<data name="MatrixPicture" xml:space="preserve">
|
||||
<value>Billede</value>
|
||||
</data>
|
||||
<data name="MaxRefreshTooltip" xml:space="preserve">
|
||||
<value>Maks. opdateringshastighed for lavere latenstid</value>
|
||||
</data>
|
||||
<data name="MinRefreshTooltip" xml:space="preserve">
|
||||
<value>60Hz opdateringshastighed for at spare på batteriet</value>
|
||||
</data>
|
||||
<data name="Minute" xml:space="preserve">
|
||||
<value>minut</value>
|
||||
</data>
|
||||
<data name="Minutes" xml:space="preserve">
|
||||
<value>minutter</value>
|
||||
</data>
|
||||
<data name="MouseAngleSnapping" xml:space="preserve">
|
||||
<value>Vinkel-snapping</value>
|
||||
</data>
|
||||
<data name="MouseAutoPowerOff" xml:space="preserve">
|
||||
<value>Automatisk slukning efter</value>
|
||||
</data>
|
||||
<data name="MouseButtonResponse" xml:space="preserve">
|
||||
<value>Knaprespons</value>
|
||||
</data>
|
||||
<data name="MouseImportFailed" xml:space="preserve">
|
||||
<value>Import mislykkedes. Den valgte fil er ikke en gyldig museprofil eller den er korrupteret.</value>
|
||||
</data>
|
||||
<data name="MouseLiftOffDistance" xml:space="preserve">
|
||||
<value>Løfteafstand</value>
|
||||
</data>
|
||||
<data name="MouseLowBatteryWarning" xml:space="preserve">
|
||||
<value>Lav batteriadvarsel ved</value>
|
||||
</data>
|
||||
<data name="MousePerformance" xml:space="preserve">
|
||||
<value>Ydelse</value>
|
||||
</data>
|
||||
<data name="MouseSynchronize" xml:space="preserve">
|
||||
<value>Synkroniser med mus</value>
|
||||
</data>
|
||||
<data name="Multizone" xml:space="preserve">
|
||||
<value>Multizone</value>
|
||||
</data>
|
||||
<data name="MultizoneStrong" xml:space="preserve">
|
||||
<value>Multizone stærk</value>
|
||||
</data>
|
||||
<data name="Muted" xml:space="preserve">
|
||||
<value>Lydløs</value>
|
||||
</data>
|
||||
<data name="MuteMic" xml:space="preserve">
|
||||
<value>Lydløs mikrofon</value>
|
||||
</data>
|
||||
<data name="Never" xml:space="preserve">
|
||||
<value>Aldrig</value>
|
||||
</data>
|
||||
<data name="NewUpdates" xml:space="preserve">
|
||||
<value>Nye opdateringer</value>
|
||||
</data>
|
||||
<data name="NoNewUpdates" xml:space="preserve">
|
||||
<value>Ingen nye opdateringer</value>
|
||||
</data>
|
||||
<data name="NotConnected" xml:space="preserve">
|
||||
<value>Ikke tilsluttet</value>
|
||||
</data>
|
||||
<data name="Off" xml:space="preserve">
|
||||
<value>Fra</value>
|
||||
</data>
|
||||
<data name="On" xml:space="preserve">
|
||||
<value>Til</value>
|
||||
</data>
|
||||
<data name="OneZone" xml:space="preserve">
|
||||
<value>En zone</value>
|
||||
</data>
|
||||
<data name="OpenGHelper" xml:space="preserve">
|
||||
<value>Åbn G-Helper vindue</value>
|
||||
</data>
|
||||
<data name="Optimized" xml:space="preserve">
|
||||
<value>Optimeret</value>
|
||||
</data>
|
||||
<data name="OptimizedGPUTooltip" xml:space="preserve">
|
||||
<value>Skift til Øko på batteri og til Standard, når tilsluttet strøm</value>
|
||||
</data>
|
||||
<data name="OptimizedUSBC" xml:space="preserve">
|
||||
<value>Hold GPU deaktiveret på USB-C oplader i optimeret tilstand</value>
|
||||
</data>
|
||||
<data name="Other" xml:space="preserve">
|
||||
<value>Andet</value>
|
||||
</data>
|
||||
<data name="Overdrive" xml:space="preserve">
|
||||
<value>Overdrive</value>
|
||||
</data>
|
||||
<data name="PerformanceMode" xml:space="preserve">
|
||||
<value>Tilstand</value>
|
||||
</data>
|
||||
<data name="Peripherals" xml:space="preserve">
|
||||
<value>Tilbehør</value>
|
||||
</data>
|
||||
<data name="PictureGif" xml:space="preserve">
|
||||
<value>Billede / Gif</value>
|
||||
</data>
|
||||
<data name="PlayPause" xml:space="preserve">
|
||||
<value>Afspil / Pause</value>
|
||||
</data>
|
||||
<data name="PollingRate" xml:space="preserve">
|
||||
<value>Polling Rate</value>
|
||||
</data>
|
||||
<data name="PowerLimits" xml:space="preserve">
|
||||
<value>Strømgrænser</value>
|
||||
</data>
|
||||
<data name="PPTExperimental" xml:space="preserve">
|
||||
<value>Strømgrænser er en eksperimentel funktion. Brug omhyggeligt og på egen risiko!</value>
|
||||
</data>
|
||||
<data name="PrintScreen" xml:space="preserve">
|
||||
<value>PrintScreen</value>
|
||||
</data>
|
||||
<data name="Profile" xml:space="preserve">
|
||||
<value>Profil</value>
|
||||
</data>
|
||||
<data name="Quit" xml:space="preserve">
|
||||
<value>Afslut</value>
|
||||
</data>
|
||||
<data name="Reset" xml:space="preserve">
|
||||
<value>Nulstil</value>
|
||||
</data>
|
||||
<data name="RestartGPU" xml:space="preserve">
|
||||
<value>Noget bruger dGPU og forhindrer Øko-tilstand. Lad G-Helper forsøge at genstarte dGPU i enhedshåndtering? (fortsæt på egen risiko)</value>
|
||||
</data>
|
||||
<data name="RPM" xml:space="preserve">
|
||||
<value>RPM</value>
|
||||
</data>
|
||||
<data name="RSDeadzones" xml:space="preserve">
|
||||
<value>Højre stick dødzoner</value>
|
||||
</data>
|
||||
<data name="RTDeadzones" xml:space="preserve">
|
||||
<value>Højre udløser dødzoner</value>
|
||||
</data>
|
||||
<data name="RunOnStartup" xml:space="preserve">
|
||||
<value>Kør ved opstart</value>
|
||||
</data>
|
||||
<data name="ScalingQuality" xml:space="preserve">
|
||||
<value>Skaleringskvalitet</value>
|
||||
</data>
|
||||
<data name="ScreenPadDown" xml:space="preserve">
|
||||
<value>Screenpad lysstyrke ned</value>
|
||||
</data>
|
||||
<data name="ScreenPadUp" xml:space="preserve">
|
||||
<value>Skærmtastatur lysstyrke op</value>
|
||||
</data>
|
||||
<data name="Shutdown" xml:space="preserve">
|
||||
<value>Luk ned</value>
|
||||
</data>
|
||||
<data name="Silent" xml:space="preserve">
|
||||
<value>Lydløs</value>
|
||||
</data>
|
||||
<data name="Sleep" xml:space="preserve">
|
||||
<value>Standby</value>
|
||||
</data>
|
||||
<data name="StandardGPUTooltip" xml:space="preserve">
|
||||
<value>Aktiverer dGPU til standardbrug</value>
|
||||
</data>
|
||||
<data name="StandardMode" xml:space="preserve">
|
||||
<value>Standard</value>
|
||||
</data>
|
||||
<data name="Start" xml:space="preserve">
|
||||
<value>Start</value>
|
||||
</data>
|
||||
<data name="StartingServices" xml:space="preserve">
|
||||
<value>Starter tjenester</value>
|
||||
</data>
|
||||
<data name="StartupError" xml:space="preserve">
|
||||
<value>Startfejl</value>
|
||||
</data>
|
||||
<data name="Stop" xml:space="preserve">
|
||||
<value>Stop</value>
|
||||
</data>
|
||||
<data name="StopGPUApps" xml:space="preserve">
|
||||
<value>Stop GPU-programmer</value>
|
||||
</data>
|
||||
<data name="StoppingServices" xml:space="preserve">
|
||||
<value>Stopper tjenester</value>
|
||||
</data>
|
||||
<data name="ToggleAura" xml:space="preserve">
|
||||
<value>Slå Aura til/fra</value>
|
||||
</data>
|
||||
<data name="ToggleClamshellMode" xml:space="preserve">
|
||||
<value>Slå automatisk Clamshell-tilstand til/fra</value>
|
||||
</data>
|
||||
<data name="ToggleFnLock" xml:space="preserve">
|
||||
<value>Slå Fn-lås til/fra</value>
|
||||
</data>
|
||||
<data name="ToggleMiniled" xml:space="preserve">
|
||||
<value>Slå MiniLED til/fra (hvis understøttet)</value>
|
||||
</data>
|
||||
<data name="ToggleScreen" xml:space="preserve">
|
||||
<value>Slå skærmen til/fra</value>
|
||||
</data>
|
||||
<data name="ToggleTouchscreen" xml:space="preserve">
|
||||
<value>Toggle Touchscreen</value>
|
||||
</data>
|
||||
<data name="Touchscreen" xml:space="preserve">
|
||||
<value/>
|
||||
</data>
|
||||
<data name="Turbo" xml:space="preserve">
|
||||
<value>Turbo</value>
|
||||
</data>
|
||||
<data name="TurnedOff" xml:space="preserve">
|
||||
<value>Slukket</value>
|
||||
</data>
|
||||
<data name="TurnOffOnBattery" xml:space="preserve">
|
||||
<value>Deaktiver på batteri</value>
|
||||
</data>
|
||||
<data name="UltimateGPUTooltip" xml:space="preserve">
|
||||
<value>Kobler laptop-skærmen direkte til dGPU, hvilket maksimerer FPS</value>
|
||||
</data>
|
||||
<data name="UltimateMode" xml:space="preserve">
|
||||
<value>Ultimativ</value>
|
||||
</data>
|
||||
<data name="UndervoltingRisky" xml:space="preserve">
|
||||
<value>Undervolting er en eksperimentel og risikabel funktion. Hvis de anvendte værdier er for lave for din hardware, kan det blive ustabilt, lukke ned eller forårsage datakorruption. Hvis du ønsker at prøve - start fra små værdier først, klik på Anvend og test hvad der virker for dig.</value>
|
||||
</data>
|
||||
<data name="Unmuted" xml:space="preserve">
|
||||
<value>Ikke lydløs</value>
|
||||
</data>
|
||||
<data name="Updates" xml:space="preserve">
|
||||
<value>Opdateringer</value>
|
||||
</data>
|
||||
<data name="VersionLabel" xml:space="preserve">
|
||||
<value>Version</value>
|
||||
</data>
|
||||
<data name="VibrationStrength" xml:space="preserve">
|
||||
<value>Vibrationsstyrke</value>
|
||||
</data>
|
||||
<data name="VisualMode" xml:space="preserve">
|
||||
<value>Visuel tilstand</value>
|
||||
</data>
|
||||
<data name="VisualModesHDR" xml:space="preserve">
|
||||
<value>Visuelle tilstande er ikke tilgængelige, når HDR er aktiv</value>
|
||||
</data>
|
||||
<data name="VisualModesScreen" xml:space="preserve">
|
||||
<value>Visuelle tilstande er ikke tilgængelige, når laptopskærmen er slukket</value>
|
||||
</data>
|
||||
<data name="VolumeDown" xml:space="preserve">
|
||||
<value>Lydstyrke ned</value>
|
||||
</data>
|
||||
<data name="VolumeMute" xml:space="preserve">
|
||||
<value>Lydløs</value>
|
||||
</data>
|
||||
<data name="VolumeUp" xml:space="preserve">
|
||||
<value>Lydstyrke op</value>
|
||||
</data>
|
||||
<data name="WindowTop" xml:space="preserve">
|
||||
<value>Hold altid appvinduet øverst</value>
|
||||
</data>
|
||||
<data name="Zoom" xml:space="preserve">
|
||||
<value>Zoom</value>
|
||||
</data>
|
||||
</root>
|
||||
@@ -124,10 +124,10 @@
|
||||
<value>Verbindung zu ASUS ACPI fehlgeschlagen. G-Helper kann nicht ausgeführt werden. Bitte installiere ASUS System Control Interface.</value>
|
||||
</data>
|
||||
<data name="AlertAPUMemoryRestart" xml:space="preserve">
|
||||
<value>Restart your device to apply changes</value>
|
||||
<value>Gerät neu starten, um Änderungen anzuwenden?</value>
|
||||
</data>
|
||||
<data name="AlertAPUMemoryRestartTitle" xml:space="preserve">
|
||||
<value>Restart now?</value>
|
||||
<value>Jetzt neu starten?</value>
|
||||
</data>
|
||||
<data name="AlertDGPU" xml:space="preserve">
|
||||
<value>Die GPU wird gerade verwendet. Trotzdem deaktivieren?</value>
|
||||
@@ -144,6 +144,9 @@
|
||||
<data name="AlertUltimateTitle" xml:space="preserve">
|
||||
<value>Jetzt neu starten?</value>
|
||||
</data>
|
||||
<data name="AllyController" xml:space="preserve">
|
||||
<value>Ally Controller</value>
|
||||
</data>
|
||||
<data name="AnimationSpeed" xml:space="preserve">
|
||||
<value>Animationsgeschwindigkeit</value>
|
||||
</data>
|
||||
@@ -169,7 +172,7 @@
|
||||
<value>Windows Leistungsmodus automatisch anpassen</value>
|
||||
</data>
|
||||
<data name="APUMemory" xml:space="preserve">
|
||||
<value>Memory Assigned to GPU</value>
|
||||
<value>GPU zugewiesener Speicher</value>
|
||||
</data>
|
||||
<data name="AsusServicesRunning" xml:space="preserve">
|
||||
<value>ASUS Dienste laufen</value>
|
||||
@@ -246,8 +249,20 @@
|
||||
<data name="Awake" xml:space="preserve">
|
||||
<value>Im Betrieb</value>
|
||||
</data>
|
||||
<data name="BacklightLow" xml:space="preserve">
|
||||
<value>Niedrig</value>
|
||||
</data>
|
||||
<data name="BacklightMax" xml:space="preserve">
|
||||
<value>Max</value>
|
||||
</data>
|
||||
<data name="BacklightMid" xml:space="preserve">
|
||||
<value>Mittel</value>
|
||||
</data>
|
||||
<data name="BacklightOff" xml:space="preserve">
|
||||
<value>Aus</value>
|
||||
</data>
|
||||
<data name="BacklightTimeout" xml:space="preserve">
|
||||
<value>Timeout angeschlossen / bei Akku (0 - AN)</value>
|
||||
<value>Timeout angeschlossen / bei Akku (0 = An)</value>
|
||||
</data>
|
||||
<data name="BacklightTimeoutBattery" xml:space="preserve">
|
||||
<value>Backlight Timeout when on battery</value>
|
||||
@@ -270,6 +285,15 @@
|
||||
<data name="BatteryLimitFull" xml:space="preserve">
|
||||
<value>Einmalig auf 100% aufladen</value>
|
||||
</data>
|
||||
<data name="Binding" xml:space="preserve">
|
||||
<value>Binding</value>
|
||||
</data>
|
||||
<data name="BindingPrimary" xml:space="preserve">
|
||||
<value>Primär</value>
|
||||
</data>
|
||||
<data name="BindingSecondary" xml:space="preserve">
|
||||
<value>Sekundär</value>
|
||||
</data>
|
||||
<data name="BiosAndDriverUpdates" xml:space="preserve">
|
||||
<value>BIOS und Treiber Updates</value>
|
||||
</data>
|
||||
@@ -277,7 +301,7 @@
|
||||
<value>Hochfahren</value>
|
||||
</data>
|
||||
<data name="BootSound" xml:space="preserve">
|
||||
<value>Boot Sound</value>
|
||||
<value>Boot-Sound</value>
|
||||
</data>
|
||||
<data name="Brightness" xml:space="preserve">
|
||||
<value>Helligkeit</value>
|
||||
@@ -288,6 +312,9 @@
|
||||
<data name="BrightnessUp" xml:space="preserve">
|
||||
<value>Helligkeit erhöhen</value>
|
||||
</data>
|
||||
<data name="BWTrayIcon" xml:space="preserve">
|
||||
<value>Taskleistensymbol in Schwarzweiß</value>
|
||||
</data>
|
||||
<data name="Calibrate" xml:space="preserve">
|
||||
<value>Kalibrieren</value>
|
||||
</data>
|
||||
@@ -297,6 +324,12 @@
|
||||
<data name="Color" xml:space="preserve">
|
||||
<value>Farbe</value>
|
||||
</data>
|
||||
<data name="Contrast" xml:space="preserve">
|
||||
<value>Kontrast</value>
|
||||
</data>
|
||||
<data name="Controller" xml:space="preserve">
|
||||
<value>Controller</value>
|
||||
</data>
|
||||
<data name="CPUBoost" xml:space="preserve">
|
||||
<value>CPU-Boost</value>
|
||||
</data>
|
||||
@@ -309,12 +342,21 @@
|
||||
<data name="Default" xml:space="preserve">
|
||||
<value>Standard</value>
|
||||
</data>
|
||||
<data name="DisableController" xml:space="preserve">
|
||||
<value>Controller deaktivieren</value>
|
||||
</data>
|
||||
<data name="DisableOnLidClose" xml:space="preserve">
|
||||
<value>Beim Schließen des Deckels deaktivieren</value>
|
||||
</data>
|
||||
<data name="DisableOverdrive" xml:space="preserve">
|
||||
<value>Bildschirm: Overdrive abschalten</value>
|
||||
</data>
|
||||
<data name="Discharging" xml:space="preserve">
|
||||
<value>Entlädt</value>
|
||||
</data>
|
||||
<data name="DownloadColorProfiles" xml:space="preserve">
|
||||
<value>Farbprofile herunterladen</value>
|
||||
</data>
|
||||
<data name="DownloadUpdate" xml:space="preserve">
|
||||
<value>Download</value>
|
||||
</data>
|
||||
@@ -327,6 +369,9 @@
|
||||
<data name="EcoMode" xml:space="preserve">
|
||||
<value>Eco</value>
|
||||
</data>
|
||||
<data name="EnableGPUOnShutdown" xml:space="preserve">
|
||||
<value>Aktiviere GPU beim Herunterfahren (verhindert Problem im Eco-Modus)</value>
|
||||
</data>
|
||||
<data name="EnableOptimusText" xml:space="preserve">
|
||||
<value>Die dGPU zu deaktivieren, indem Sie in den Eco-Modus wechseln während der Anzeigemodus nicht auf Optimus eingestellt ist, kann zu Problemen mit der Helligkeitseinstellung führen.
|
||||
|
||||
@@ -338,6 +383,9 @@ Trotzdem fortfahren?</value>
|
||||
<data name="EnergySettings" xml:space="preserve">
|
||||
<value>Energieeinstellungen</value>
|
||||
</data>
|
||||
<data name="Export" xml:space="preserve">
|
||||
<value>Profil exportieren</value>
|
||||
</data>
|
||||
<data name="Extra" xml:space="preserve">
|
||||
<value>Extra</value>
|
||||
</data>
|
||||
@@ -371,8 +419,17 @@ Trotzdem fortfahren?</value>
|
||||
<data name="FansPower" xml:space="preserve">
|
||||
<value>Lüfter + Leistung</value>
|
||||
</data>
|
||||
<data name="FlickerFreeDimming" xml:space="preserve">
|
||||
<value>Flackerfreies Dimmen</value>
|
||||
</data>
|
||||
<data name="FnLock" xml:space="preserve">
|
||||
<value>FN+F Funktionen ohne FN Taste nutzen</value>
|
||||
<value>Fn+F Funktionen ohne Fn Taste nutzen</value>
|
||||
</data>
|
||||
<data name="FnLockOff" xml:space="preserve">
|
||||
<value>Fn-Sperre aus</value>
|
||||
</data>
|
||||
<data name="FnLockOn" xml:space="preserve">
|
||||
<value>Fn-Sperre an</value>
|
||||
</data>
|
||||
<data name="GPUBoost" xml:space="preserve">
|
||||
<value>Dynamic Boost</value>
|
||||
@@ -398,6 +455,9 @@ Trotzdem fortfahren?</value>
|
||||
<data name="GPUModeUltimate" xml:space="preserve">
|
||||
<value>Nur dGPU</value>
|
||||
</data>
|
||||
<data name="GPUPower" xml:space="preserve">
|
||||
<value>GPU-Leistung</value>
|
||||
</data>
|
||||
<data name="GPUSettings" xml:space="preserve">
|
||||
<value>GPU Einstellungen</value>
|
||||
</data>
|
||||
@@ -410,6 +470,12 @@ Trotzdem fortfahren?</value>
|
||||
<data name="High" xml:space="preserve">
|
||||
<value>Hoch</value>
|
||||
</data>
|
||||
<data name="ImageRotation" xml:space="preserve">
|
||||
<value>Bilddrehung</value>
|
||||
</data>
|
||||
<data name="Import" xml:space="preserve">
|
||||
<value>Profil importieren</value>
|
||||
</data>
|
||||
<data name="KeyBindings" xml:space="preserve">
|
||||
<value>Tastenbelegung</value>
|
||||
</data>
|
||||
@@ -428,6 +494,9 @@ Trotzdem fortfahren?</value>
|
||||
<data name="LaptopScreen" xml:space="preserve">
|
||||
<value>Laptopbildschirm</value>
|
||||
</data>
|
||||
<data name="LEDStatusIndicators" xml:space="preserve">
|
||||
<value>LED-Statusanzeige</value>
|
||||
</data>
|
||||
<data name="Lid" xml:space="preserve">
|
||||
<value>Deckel</value>
|
||||
</data>
|
||||
@@ -437,12 +506,21 @@ Trotzdem fortfahren?</value>
|
||||
<data name="Lighting" xml:space="preserve">
|
||||
<value>Beleuchtung</value>
|
||||
</data>
|
||||
<data name="LockScreen" xml:space="preserve">
|
||||
<value>Bildschirm sperren</value>
|
||||
</data>
|
||||
<data name="Logo" xml:space="preserve">
|
||||
<value>Logo</value>
|
||||
</data>
|
||||
<data name="Low" xml:space="preserve">
|
||||
<value>Niedrig</value>
|
||||
</data>
|
||||
<data name="LSDeadzones" xml:space="preserve">
|
||||
<value>Left Stick Deadzones</value>
|
||||
</data>
|
||||
<data name="LTDeadzones" xml:space="preserve">
|
||||
<value>Left Trigger Deadzones</value>
|
||||
</data>
|
||||
<data name="MatrixAudio" xml:space="preserve">
|
||||
<value>Audio Visualisierung</value>
|
||||
</data>
|
||||
@@ -491,6 +569,9 @@ Trotzdem fortfahren?</value>
|
||||
<data name="MouseButtonResponse" xml:space="preserve">
|
||||
<value>Tastenreaktionsgeschwindigkeit</value>
|
||||
</data>
|
||||
<data name="MouseImportFailed" xml:space="preserve">
|
||||
<value>Import fehlgeschlagen. Die ausgewählte Datei ist kein gültiges Mausprofil oder beschädigt.</value>
|
||||
</data>
|
||||
<data name="MouseLiftOffDistance" xml:space="preserve">
|
||||
<value>Lift Off Distance</value>
|
||||
</data>
|
||||
@@ -504,7 +585,13 @@ Trotzdem fortfahren?</value>
|
||||
<value>Maus synchronisieren</value>
|
||||
</data>
|
||||
<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 name="Muted" xml:space="preserve">
|
||||
<value>Stumm</value>
|
||||
</data>
|
||||
<data name="MuteMic" xml:space="preserve">
|
||||
<value>Mikrofon stummschalten</value>
|
||||
@@ -521,6 +608,15 @@ Trotzdem fortfahren?</value>
|
||||
<data name="NotConnected" xml:space="preserve">
|
||||
<value>Nicht verbunden</value>
|
||||
</data>
|
||||
<data name="Off" xml:space="preserve">
|
||||
<value>Aus</value>
|
||||
</data>
|
||||
<data name="On" xml:space="preserve">
|
||||
<value>An</value>
|
||||
</data>
|
||||
<data name="OneZone" xml:space="preserve">
|
||||
<value>One Zone</value>
|
||||
</data>
|
||||
<data name="OpenGHelper" xml:space="preserve">
|
||||
<value>G-Helper Fenster öffnen</value>
|
||||
</data>
|
||||
@@ -569,15 +665,27 @@ Trotzdem fortfahren?</value>
|
||||
<data name="Quit" xml:space="preserve">
|
||||
<value>Schließen</value>
|
||||
</data>
|
||||
<data name="Reset" xml:space="preserve">
|
||||
<value>Zurücksetzen</value>
|
||||
</data>
|
||||
<data name="RestartGPU" xml:space="preserve">
|
||||
<value>Ein Prozess verhindert den Wechsel in den Eco-Modus. dGPU neu starten? Fortfahren auf eigene Gefahr.</value>
|
||||
</data>
|
||||
<data name="RPM" xml:space="preserve">
|
||||
<value>U/Min</value>
|
||||
</data>
|
||||
<data name="RSDeadzones" xml:space="preserve">
|
||||
<value>Right Stick Deadzones</value>
|
||||
</data>
|
||||
<data name="RTDeadzones" xml:space="preserve">
|
||||
<value>Right Trigger Deadzones</value>
|
||||
</data>
|
||||
<data name="RunOnStartup" xml:space="preserve">
|
||||
<value>Beim Start ausführen</value>
|
||||
</data>
|
||||
<data name="ScalingQuality" xml:space="preserve">
|
||||
<value>Skalierungsqualität</value>
|
||||
</data>
|
||||
<data name="ScreenPadDown" xml:space="preserve">
|
||||
<value>Screenpad Helligkeit verringern</value>
|
||||
</data>
|
||||
@@ -632,6 +740,12 @@ Trotzdem fortfahren?</value>
|
||||
<data name="ToggleScreen" xml:space="preserve">
|
||||
<value>Bildschirm umschalten</value>
|
||||
</data>
|
||||
<data name="ToggleTouchscreen" xml:space="preserve">
|
||||
<value>Touchscreen umschalten</value>
|
||||
</data>
|
||||
<data name="Touchscreen" xml:space="preserve">
|
||||
<value/>
|
||||
</data>
|
||||
<data name="Turbo" xml:space="preserve">
|
||||
<value>Turbo</value>
|
||||
</data>
|
||||
@@ -650,12 +764,27 @@ Trotzdem fortfahren?</value>
|
||||
<data name="UndervoltingRisky" xml:space="preserve">
|
||||
<value>Die Spannungsabsenkung (Undervolting) ist experimentell und birgt Risiken. Wenn die Spannung zu weit abgesenkt wird, wird der Computer instabil und kann abstürzen, was zu Datenverlust führen kann. Es empfiehlt sich mit kleinen Werten anzufangen und ausgiebig zu testen, um den idealen Wert zu finden.</value>
|
||||
</data>
|
||||
<data name="Unmuted" xml:space="preserve">
|
||||
<value>Laut</value>
|
||||
</data>
|
||||
<data name="Updates" xml:space="preserve">
|
||||
<value>Aktualisierungen</value>
|
||||
</data>
|
||||
<data name="VersionLabel" xml:space="preserve">
|
||||
<value>Version</value>
|
||||
</data>
|
||||
<data name="VibrationStrength" xml:space="preserve">
|
||||
<value>Vibrationsstärke</value>
|
||||
</data>
|
||||
<data name="VisualMode" xml:space="preserve">
|
||||
<value>Darstellungsmodus</value>
|
||||
</data>
|
||||
<data name="VisualModesHDR" xml:space="preserve">
|
||||
<value>Darstellungsmodi sind nicht verfügbar, wenn HDR aktiv ist.</value>
|
||||
</data>
|
||||
<data name="VisualModesScreen" xml:space="preserve">
|
||||
<value>Darstellungsmodi sind nicht verfügbar, wenn Laptop-Bildschirm aus ist.</value>
|
||||
</data>
|
||||
<data name="VolumeDown" xml:space="preserve">
|
||||
<value>Lautstärke verringern</value>
|
||||
</data>
|
||||
@@ -668,4 +797,7 @@ Trotzdem fortfahren?</value>
|
||||
<data name="WindowTop" xml:space="preserve">
|
||||
<value>Fenster immer über allen anderen</value>
|
||||
</data>
|
||||
</root>
|
||||
<data name="Zoom" xml:space="preserve">
|
||||
<value>Zoom</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -144,6 +144,9 @@
|
||||
<data name="AlertUltimateTitle" xml:space="preserve">
|
||||
<value>¿Reiniciar ahora?</value>
|
||||
</data>
|
||||
<data name="AllyController" xml:space="preserve">
|
||||
<value>Mando Ally</value>
|
||||
</data>
|
||||
<data name="AnimationSpeed" xml:space="preserve">
|
||||
<value>Velocidad</value>
|
||||
</data>
|
||||
@@ -246,6 +249,18 @@
|
||||
<data name="Awake" xml:space="preserve">
|
||||
<value>Encendida</value>
|
||||
</data>
|
||||
<data name="BacklightLow" xml:space="preserve">
|
||||
<value>Bajo</value>
|
||||
</data>
|
||||
<data name="BacklightMax" xml:space="preserve">
|
||||
<value>Máximo</value>
|
||||
</data>
|
||||
<data name="BacklightMid" xml:space="preserve">
|
||||
<value>Medio</value>
|
||||
</data>
|
||||
<data name="BacklightOff" xml:space="preserve">
|
||||
<value>Apagado</value>
|
||||
</data>
|
||||
<data name="BacklightTimeout" xml:space="preserve">
|
||||
<value>Tiempo de espera conectado / con batería (0 - ON)</value>
|
||||
</data>
|
||||
@@ -270,6 +285,15 @@
|
||||
<data name="BatteryLimitFull" xml:space="preserve">
|
||||
<value>Cargar una vez al 100%</value>
|
||||
</data>
|
||||
<data name="Binding" xml:space="preserve">
|
||||
<value>Emparejado</value>
|
||||
</data>
|
||||
<data name="BindingPrimary" xml:space="preserve">
|
||||
<value>Primario</value>
|
||||
</data>
|
||||
<data name="BindingSecondary" xml:space="preserve">
|
||||
<value>Secundario</value>
|
||||
</data>
|
||||
<data name="BiosAndDriverUpdates" xml:space="preserve">
|
||||
<value>Actualizaciones de BIOS y Drivers</value>
|
||||
</data>
|
||||
@@ -288,6 +312,9 @@
|
||||
<data name="BrightnessUp" xml:space="preserve">
|
||||
<value>Subir brillo</value>
|
||||
</data>
|
||||
<data name="BWTrayIcon" xml:space="preserve">
|
||||
<value>Icono de bandeja blanco y negro</value>
|
||||
</data>
|
||||
<data name="Calibrate" xml:space="preserve">
|
||||
<value>Calibrar</value>
|
||||
</data>
|
||||
@@ -297,6 +324,12 @@
|
||||
<data name="Color" xml:space="preserve">
|
||||
<value>Color</value>
|
||||
</data>
|
||||
<data name="Contrast" xml:space="preserve">
|
||||
<value>Contraste</value>
|
||||
</data>
|
||||
<data name="Controller" xml:space="preserve">
|
||||
<value>Mando</value>
|
||||
</data>
|
||||
<data name="CPUBoost" xml:space="preserve">
|
||||
<value>CPU Boost</value>
|
||||
</data>
|
||||
@@ -309,12 +342,21 @@
|
||||
<data name="Default" xml:space="preserve">
|
||||
<value>Por defecto</value>
|
||||
</data>
|
||||
<data name="DisableController" xml:space="preserve">
|
||||
<value>Deshabilitar mando</value>
|
||||
</data>
|
||||
<data name="DisableOnLidClose" xml:space="preserve">
|
||||
<value>Desactivar al cerrar la tapa</value>
|
||||
</data>
|
||||
<data name="DisableOverdrive" xml:space="preserve">
|
||||
<value>Desactivar Overdrive</value>
|
||||
</data>
|
||||
<data name="Discharging" xml:space="preserve">
|
||||
<value>Descargando</value>
|
||||
</data>
|
||||
<data name="DownloadColorProfiles" xml:space="preserve">
|
||||
<value>Descargar perfiles de color</value>
|
||||
</data>
|
||||
<data name="DownloadUpdate" xml:space="preserve">
|
||||
<value>Descargar</value>
|
||||
</data>
|
||||
@@ -327,6 +369,9 @@
|
||||
<data name="EcoMode" xml:space="preserve">
|
||||
<value>Eco</value>
|
||||
</data>
|
||||
<data name="EnableGPUOnShutdown" xml:space="preserve">
|
||||
<value>Habilitar GPU al apagar (evita problemas con el modo Eco)</value>
|
||||
</data>
|
||||
<data name="EnableOptimusText" xml:space="preserve">
|
||||
<value>Deshabilitar la dGPU cambiando a modo Eco mientras el Modo de Pantalla en el Panel de Control de NVIDIA no está configurado en Optimus puede causar problemas con el control del brillo hasta después del próximo reinicio.
|
||||
|
||||
@@ -338,6 +383,9 @@
|
||||
<data name="EnergySettings" xml:space="preserve">
|
||||
<value>Ajustes de energía</value>
|
||||
</data>
|
||||
<data name="Export" xml:space="preserve">
|
||||
<value>Exportar perfil</value>
|
||||
</data>
|
||||
<data name="Extra" xml:space="preserve">
|
||||
<value>Adicional</value>
|
||||
</data>
|
||||
@@ -371,9 +419,18 @@
|
||||
<data name="FansPower" xml:space="preserve">
|
||||
<value>Ventiladores + Energía</value>
|
||||
</data>
|
||||
<data name="FlickerFreeDimming" xml:space="preserve">
|
||||
<value>Atenuación sin parpadeo</value>
|
||||
</data>
|
||||
<data name="FnLock" xml:space="preserve">
|
||||
<value>Usar teclas de acceso rápido (Fn+F) sin pulsar Fn</value>
|
||||
</data>
|
||||
<data name="FnLockOff" xml:space="preserve">
|
||||
<value>Tecla Fn normal</value>
|
||||
</data>
|
||||
<data name="FnLockOn" xml:space="preserve">
|
||||
<value>Tecla Fn bloqueada</value>
|
||||
</data>
|
||||
<data name="GPUBoost" xml:space="preserve">
|
||||
<value>Dynamic Boost</value>
|
||||
</data>
|
||||
@@ -398,6 +455,9 @@
|
||||
<data name="GPUModeUltimate" xml:space="preserve">
|
||||
<value>Exclusivo dGPU</value>
|
||||
</data>
|
||||
<data name="GPUPower" xml:space="preserve">
|
||||
<value>Energía de GPU</value>
|
||||
</data>
|
||||
<data name="GPUSettings" xml:space="preserve">
|
||||
<value>Ajustes de GPU</value>
|
||||
</data>
|
||||
@@ -410,8 +470,14 @@
|
||||
<data name="High" xml:space="preserve">
|
||||
<value>Alto</value>
|
||||
</data>
|
||||
<data name="ImageRotation" xml:space="preserve">
|
||||
<value>Rotación de imagen</value>
|
||||
</data>
|
||||
<data name="Import" xml:space="preserve">
|
||||
<value>Importar perfil</value>
|
||||
</data>
|
||||
<data name="KeyBindings" xml:space="preserve">
|
||||
<value>Atajos de teclado</value>
|
||||
<value>Teclas de acceso rápido</value>
|
||||
</data>
|
||||
<data name="Keyboard" xml:space="preserve">
|
||||
<value>Teclado</value>
|
||||
@@ -428,6 +494,9 @@
|
||||
<data name="LaptopScreen" xml:space="preserve">
|
||||
<value>Pantalla del portátil</value>
|
||||
</data>
|
||||
<data name="LEDStatusIndicators" xml:space="preserve">
|
||||
<value>Indicadores de estado LED</value>
|
||||
</data>
|
||||
<data name="Lid" xml:space="preserve">
|
||||
<value>Tapa</value>
|
||||
</data>
|
||||
@@ -437,12 +506,21 @@
|
||||
<data name="Lighting" xml:space="preserve">
|
||||
<value>Iluminación</value>
|
||||
</data>
|
||||
<data name="LockScreen" xml:space="preserve">
|
||||
<value>Pantalla de bloqueo</value>
|
||||
</data>
|
||||
<data name="Logo" xml:space="preserve">
|
||||
<value>Logo</value>
|
||||
</data>
|
||||
<data name="Low" xml:space="preserve">
|
||||
<value>Bajo</value>
|
||||
</data>
|
||||
<data name="LSDeadzones" xml:space="preserve">
|
||||
<value>Punto muerto stick izquierdo</value>
|
||||
</data>
|
||||
<data name="LTDeadzones" xml:space="preserve">
|
||||
<value>Punto muerto gatillo izquierdo</value>
|
||||
</data>
|
||||
<data name="MatrixAudio" xml:space="preserve">
|
||||
<value>Visualizador de audio</value>
|
||||
</data>
|
||||
@@ -491,6 +569,9 @@
|
||||
<data name="MouseButtonResponse" xml:space="preserve">
|
||||
<value>Respuesta del botón</value>
|
||||
</data>
|
||||
<data name="MouseImportFailed" xml:space="preserve">
|
||||
<value>Importación fallida. El archivo seleccionado no es un perfil válido o está corrupto.</value>
|
||||
</data>
|
||||
<data name="MouseLiftOffDistance" xml:space="preserve">
|
||||
<value>Distancia de despegue (LOD)</value>
|
||||
</data>
|
||||
@@ -506,6 +587,12 @@
|
||||
<data name="Multizone" xml:space="preserve">
|
||||
<value>Multizona</value>
|
||||
</data>
|
||||
<data name="MultizoneStrong" xml:space="preserve">
|
||||
<value>Multizona fuerte</value>
|
||||
</data>
|
||||
<data name="Muted" xml:space="preserve">
|
||||
<value>Silenciado</value>
|
||||
</data>
|
||||
<data name="MuteMic" xml:space="preserve">
|
||||
<value>Silenciar micrófono</value>
|
||||
</data>
|
||||
@@ -521,6 +608,15 @@
|
||||
<data name="NotConnected" xml:space="preserve">
|
||||
<value>No conectado</value>
|
||||
</data>
|
||||
<data name="Off" xml:space="preserve">
|
||||
<value>Apagado</value>
|
||||
</data>
|
||||
<data name="On" xml:space="preserve">
|
||||
<value>Encendido</value>
|
||||
</data>
|
||||
<data name="OneZone" xml:space="preserve">
|
||||
<value>Una zona</value>
|
||||
</data>
|
||||
<data name="OpenGHelper" xml:space="preserve">
|
||||
<value>Abrir ventana G-Helper</value>
|
||||
</data>
|
||||
@@ -528,7 +624,7 @@
|
||||
<value>Optimizado</value>
|
||||
</data>
|
||||
<data name="OptimizedGPUTooltip" xml:space="preserve">
|
||||
<value>Cambia a Eco con batería y a Estándar cuando está enchufado</value>
|
||||
<value>Cambiar a Eco con batería y a Estándar cuando está enchufado</value>
|
||||
</data>
|
||||
<data name="OptimizedUSBC" xml:space="preserve">
|
||||
<value>Deshabilitar dGPU con cargador USB-C en modo Optimizado</value>
|
||||
@@ -569,15 +665,27 @@
|
||||
<data name="Quit" xml:space="preserve">
|
||||
<value>Quitar</value>
|
||||
</data>
|
||||
<data name="Reset" xml:space="preserve">
|
||||
<value>Reiniciar</value>
|
||||
</data>
|
||||
<data name="RestartGPU" xml:space="preserve">
|
||||
<value>Algo está usando la dGPU e impide el modo Eco. ¿Reiniciar dGPU en el administrador de dispositivos? (Proceda bajo su propio riesgo)</value>
|
||||
</data>
|
||||
<data name="RPM" xml:space="preserve">
|
||||
<value>RPM</value>
|
||||
</data>
|
||||
<data name="RSDeadzones" xml:space="preserve">
|
||||
<value>Punto muerto stick derecho</value>
|
||||
</data>
|
||||
<data name="RTDeadzones" xml:space="preserve">
|
||||
<value>Punto muerto gatillo derecho</value>
|
||||
</data>
|
||||
<data name="RunOnStartup" xml:space="preserve">
|
||||
<value>Ejecutar al inicio</value>
|
||||
</data>
|
||||
<data name="ScalingQuality" xml:space="preserve">
|
||||
<value>Calidad del escalado</value>
|
||||
</data>
|
||||
<data name="ScreenPadDown" xml:space="preserve">
|
||||
<value>Bajar brillo ScreenPad</value>
|
||||
</data>
|
||||
@@ -624,7 +732,7 @@
|
||||
<value>Cambiar automáticamente a modo Clamshell</value>
|
||||
</data>
|
||||
<data name="ToggleFnLock" xml:space="preserve">
|
||||
<value>Alternar Fn-Lock</value>
|
||||
<value>Alternar bloqueo Fn</value>
|
||||
</data>
|
||||
<data name="ToggleMiniled" xml:space="preserve">
|
||||
<value>Alternar Miniled (si compatible)</value>
|
||||
@@ -632,6 +740,12 @@
|
||||
<data name="ToggleScreen" xml:space="preserve">
|
||||
<value>Alternar pantalla</value>
|
||||
</data>
|
||||
<data name="ToggleTouchscreen" xml:space="preserve">
|
||||
<value>Alternar pantalla táctil</value>
|
||||
</data>
|
||||
<data name="Touchscreen" xml:space="preserve">
|
||||
<value/>
|
||||
</data>
|
||||
<data name="Turbo" xml:space="preserve">
|
||||
<value>Turbo</value>
|
||||
</data>
|
||||
@@ -650,12 +764,27 @@
|
||||
<data name="UndervoltingRisky" xml:space="preserve">
|
||||
<value>Undervolting es una característica experimental. Aplicar valores demasiado bajos puede causar inestabilidad en el hardware o corrupción de datos. Si desea probar, empiece con valores pequeños, haga click en Aplicar y pruebe.</value>
|
||||
</data>
|
||||
<data name="Unmuted" xml:space="preserve">
|
||||
<value>No silenciado</value>
|
||||
</data>
|
||||
<data name="Updates" xml:space="preserve">
|
||||
<value>Actualización</value>
|
||||
</data>
|
||||
<data name="VersionLabel" xml:space="preserve">
|
||||
<value>Versión</value>
|
||||
</data>
|
||||
<data name="VibrationStrength" xml:space="preserve">
|
||||
<value>Intensidad de vibración</value>
|
||||
</data>
|
||||
<data name="VisualMode" xml:space="preserve">
|
||||
<value>Modo visual</value>
|
||||
</data>
|
||||
<data name="VisualModesHDR" xml:space="preserve">
|
||||
<value>Los modos visuales no están disponibles cuando el HDR está activo</value>
|
||||
</data>
|
||||
<data name="VisualModesScreen" xml:space="preserve">
|
||||
<value>Los modos visuales no están disponibles cuando la pantalla portátil está apagada</value>
|
||||
</data>
|
||||
<data name="VolumeDown" xml:space="preserve">
|
||||
<value>Bajar volumen</value>
|
||||
</data>
|
||||
@@ -668,4 +797,7 @@
|
||||
<data name="WindowTop" xml:space="preserve">
|
||||
<value>Mantener aplicación siempre visible</value>
|
||||
</data>
|
||||
</root>
|
||||
<data name="Zoom" xml:space="preserve">
|
||||
<value>Zoom</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -144,6 +144,9 @@
|
||||
<data name="AlertUltimateTitle" xml:space="preserve">
|
||||
<value>Redémarrer maintenant ?</value>
|
||||
</data>
|
||||
<data name="AllyController" xml:space="preserve">
|
||||
<value>Contrôleur Ally </value>
|
||||
</data>
|
||||
<data name="AnimationSpeed" xml:space="preserve">
|
||||
<value>Vitesse de l'animation</value>
|
||||
</data>
|
||||
@@ -196,7 +199,7 @@
|
||||
<value>Rapide</value>
|
||||
</data>
|
||||
<data name="AuraLightingMode" xml:space="preserve">
|
||||
<value>Mode d’Éclairage</value>
|
||||
<value>Effets d'éclairage</value>
|
||||
</data>
|
||||
<data name="AuraNormal" xml:space="preserve">
|
||||
<value>Normal</value>
|
||||
@@ -232,7 +235,7 @@
|
||||
<value>Molette</value>
|
||||
</data>
|
||||
<data name="AuraZoneUnderglow" xml:space="preserve">
|
||||
<value>Underglow</value>
|
||||
<value>Led ROG</value>
|
||||
</data>
|
||||
<data name="AutoApply" xml:space="preserve">
|
||||
<value>Appliquer automatiquement</value>
|
||||
@@ -246,14 +249,26 @@
|
||||
<data name="Awake" xml:space="preserve">
|
||||
<value>Allumé</value>
|
||||
</data>
|
||||
<data name="BacklightLow" xml:space="preserve">
|
||||
<value>Faible</value>
|
||||
</data>
|
||||
<data name="BacklightMax" xml:space="preserve">
|
||||
<value>Maximum</value>
|
||||
</data>
|
||||
<data name="BacklightMid" xml:space="preserve">
|
||||
<value>Moyen</value>
|
||||
</data>
|
||||
<data name="BacklightOff" xml:space="preserve">
|
||||
<value>Désactivé</value>
|
||||
</data>
|
||||
<data name="BacklightTimeout" xml:space="preserve">
|
||||
<value>Délai branché / sur batterie (0 - ON)</value>
|
||||
</data>
|
||||
<data name="BacklightTimeoutBattery" xml:space="preserve">
|
||||
<value>Backlight Timeout when on battery</value>
|
||||
<value>Délai de rétro-éclairage sur batterie</value>
|
||||
</data>
|
||||
<data name="BacklightTimeoutPlugged" xml:space="preserve">
|
||||
<value>Backlight Timeout when plugged</value>
|
||||
<value>Délai de rétro-éclairage sur secteur</value>
|
||||
</data>
|
||||
<data name="Balanced" xml:space="preserve">
|
||||
<value>Équilibré</value>
|
||||
@@ -270,6 +285,15 @@
|
||||
<data name="BatteryLimitFull" xml:space="preserve">
|
||||
<value>Charge unique à 100%</value>
|
||||
</data>
|
||||
<data name="Binding" xml:space="preserve">
|
||||
<value>Liaison</value>
|
||||
</data>
|
||||
<data name="BindingPrimary" xml:space="preserve">
|
||||
<value>Primaire</value>
|
||||
</data>
|
||||
<data name="BindingSecondary" xml:space="preserve">
|
||||
<value>Secondaire</value>
|
||||
</data>
|
||||
<data name="BiosAndDriverUpdates" xml:space="preserve">
|
||||
<value>Mise à jour BIOS et pilotes</value>
|
||||
</data>
|
||||
@@ -288,6 +312,9 @@
|
||||
<data name="BrightnessUp" xml:space="preserve">
|
||||
<value>Augmenter la luminosité</value>
|
||||
</data>
|
||||
<data name="BWTrayIcon" xml:space="preserve">
|
||||
<value>Icône de la zone de notification en noir et blanc</value>
|
||||
</data>
|
||||
<data name="Calibrate" xml:space="preserve">
|
||||
<value>Calibrer</value>
|
||||
</data>
|
||||
@@ -297,6 +324,12 @@
|
||||
<data name="Color" xml:space="preserve">
|
||||
<value>Couleur</value>
|
||||
</data>
|
||||
<data name="Contrast" xml:space="preserve">
|
||||
<value>Contraste</value>
|
||||
</data>
|
||||
<data name="Controller" xml:space="preserve">
|
||||
<value>Contrôleur</value>
|
||||
</data>
|
||||
<data name="CPUBoost" xml:space="preserve">
|
||||
<value>CPU Boost</value>
|
||||
</data>
|
||||
@@ -309,12 +342,21 @@
|
||||
<data name="Default" xml:space="preserve">
|
||||
<value>Par défaut</value>
|
||||
</data>
|
||||
<data name="DisableController" xml:space="preserve">
|
||||
<value>Désactiver le contrôleur</value>
|
||||
</data>
|
||||
<data name="DisableOnLidClose" xml:space="preserve">
|
||||
<value>Désactiver à la fermeture du capot</value>
|
||||
</data>
|
||||
<data name="DisableOverdrive" xml:space="preserve">
|
||||
<value>Désactiver l'overdrive de l'écran</value>
|
||||
</data>
|
||||
<data name="Discharging" xml:space="preserve">
|
||||
<value>Taux décharge </value>
|
||||
</data>
|
||||
<data name="DownloadColorProfiles" xml:space="preserve">
|
||||
<value>Télécharger les profils de couleurs</value>
|
||||
</data>
|
||||
<data name="DownloadUpdate" xml:space="preserve">
|
||||
<value>Télécharger</value>
|
||||
</data>
|
||||
@@ -327,6 +369,9 @@
|
||||
<data name="EcoMode" xml:space="preserve">
|
||||
<value>Éco</value>
|
||||
</data>
|
||||
<data name="EnableGPUOnShutdown" xml:space="preserve">
|
||||
<value>Activer le GPU lors de l'arrêt (empêche les problèmes avec le mode Éco)</value>
|
||||
</data>
|
||||
<data name="EnableOptimusText" xml:space="preserve">
|
||||
<value>Désactiver le dGPU en passant au mode Eco pendant que le mode d'affichage dans le panneau de configuration NVIDIA n'est pas réglé sur Optimus peut causer des problèmes avec les commandes de luminosité jusqu'au prochain redémarrage.
|
||||
|
||||
@@ -338,6 +383,9 @@ Voulez-vous continuer ?</value>
|
||||
<data name="EnergySettings" xml:space="preserve">
|
||||
<value>Paramètres d'énergie</value>
|
||||
</data>
|
||||
<data name="Export" xml:space="preserve">
|
||||
<value>Exporter profil</value>
|
||||
</data>
|
||||
<data name="Extra" xml:space="preserve">
|
||||
<value>+ d'options</value>
|
||||
</data>
|
||||
@@ -371,9 +419,18 @@ Voulez-vous continuer ?</value>
|
||||
<data name="FansPower" xml:space="preserve">
|
||||
<value>Ventilateurs + Puissance</value>
|
||||
</data>
|
||||
<data name="FlickerFreeDimming" xml:space="preserve">
|
||||
<value>Gradation OLED sans scintillement</value>
|
||||
</data>
|
||||
<data name="FnLock" xml:space="preserve">
|
||||
<value>Traiter les raccourcis clavier Fn+F sans Fn</value>
|
||||
</data>
|
||||
<data name="FnLockOff" xml:space="preserve">
|
||||
<value>Verrouillage FN désactivé</value>
|
||||
</data>
|
||||
<data name="FnLockOn" xml:space="preserve">
|
||||
<value>Verrouillage FN activé</value>
|
||||
</data>
|
||||
<data name="GPUBoost" xml:space="preserve">
|
||||
<value>Dynamic Boost</value>
|
||||
</data>
|
||||
@@ -398,6 +455,9 @@ Voulez-vous continuer ?</value>
|
||||
<data name="GPUModeUltimate" xml:space="preserve">
|
||||
<value>dGPU exclusif</value>
|
||||
</data>
|
||||
<data name="GPUPower" xml:space="preserve">
|
||||
<value>Puissance du GPU</value>
|
||||
</data>
|
||||
<data name="GPUSettings" xml:space="preserve">
|
||||
<value>Paramètres du GPU</value>
|
||||
</data>
|
||||
@@ -410,6 +470,12 @@ Voulez-vous continuer ?</value>
|
||||
<data name="High" xml:space="preserve">
|
||||
<value>Élevé</value>
|
||||
</data>
|
||||
<data name="ImageRotation" xml:space="preserve">
|
||||
<value>Rotation de l'image</value>
|
||||
</data>
|
||||
<data name="Import" xml:space="preserve">
|
||||
<value>Importer profil</value>
|
||||
</data>
|
||||
<data name="KeyBindings" xml:space="preserve">
|
||||
<value>Raccourcis clavier</value>
|
||||
</data>
|
||||
@@ -423,10 +489,13 @@ Voulez-vous continuer ?</value>
|
||||
<value>Rétroéclairage du clavier</value>
|
||||
</data>
|
||||
<data name="LaptopKeyboard" xml:space="preserve">
|
||||
<value>Clavier de l'ordinateur</value>
|
||||
<value>Clavier</value>
|
||||
</data>
|
||||
<data name="LaptopScreen" xml:space="preserve">
|
||||
<value>Écran de l'ordinateur </value>
|
||||
<value>Écran</value>
|
||||
</data>
|
||||
<data name="LEDStatusIndicators" xml:space="preserve">
|
||||
<value>LED Status Indicators</value>
|
||||
</data>
|
||||
<data name="Lid" xml:space="preserve">
|
||||
<value>Capot</value>
|
||||
@@ -437,12 +506,21 @@ Voulez-vous continuer ?</value>
|
||||
<data name="Lighting" xml:space="preserve">
|
||||
<value>Éclairage</value>
|
||||
</data>
|
||||
<data name="LockScreen" xml:space="preserve">
|
||||
<value>Lock Screen</value>
|
||||
</data>
|
||||
<data name="Logo" xml:space="preserve">
|
||||
<value>Logo</value>
|
||||
</data>
|
||||
<data name="Low" xml:space="preserve">
|
||||
<value>Faible</value>
|
||||
</data>
|
||||
<data name="LSDeadzones" xml:space="preserve">
|
||||
<value>Stick gauche des zones mortes</value>
|
||||
</data>
|
||||
<data name="LTDeadzones" xml:space="preserve">
|
||||
<value>Gâchette gauche des zones mortes</value>
|
||||
</data>
|
||||
<data name="MatrixAudio" xml:space="preserve">
|
||||
<value>Visualiseur Audio</value>
|
||||
</data>
|
||||
@@ -483,16 +561,19 @@ Voulez-vous continuer ?</value>
|
||||
<value>Minutes</value>
|
||||
</data>
|
||||
<data name="MouseAngleSnapping" xml:space="preserve">
|
||||
<value>Angle Snapping</value>
|
||||
<value>Correction d'angle</value>
|
||||
</data>
|
||||
<data name="MouseAutoPowerOff" xml:space="preserve">
|
||||
<value>Arrêt automatique après</value>
|
||||
</data>
|
||||
<data name="MouseButtonResponse" xml:space="preserve">
|
||||
<value>Button Response</value>
|
||||
<value>Réponse du bouton</value>
|
||||
</data>
|
||||
<data name="MouseImportFailed" xml:space="preserve">
|
||||
<value>Échec de l'importation. Le fichier sélectionné n'est pas un profil de souris valide ou corrompu.</value>
|
||||
</data>
|
||||
<data name="MouseLiftOffDistance" xml:space="preserve">
|
||||
<value>Lift Off Distance</value>
|
||||
<value>Hauteur de détection</value>
|
||||
</data>
|
||||
<data name="MouseLowBatteryWarning" xml:space="preserve">
|
||||
<value>Avertissement de batterie faible à</value>
|
||||
@@ -504,7 +585,13 @@ Voulez-vous continuer ?</value>
|
||||
<value>Synchroniser avec le pointeur</value>
|
||||
</data>
|
||||
<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 name="Muted" xml:space="preserve">
|
||||
<value>Son désactivé</value>
|
||||
</data>
|
||||
<data name="MuteMic" xml:space="preserve">
|
||||
<value>Désactiver le micro</value>
|
||||
@@ -521,6 +608,15 @@ Voulez-vous continuer ?</value>
|
||||
<data name="NotConnected" xml:space="preserve">
|
||||
<value>Non connecté</value>
|
||||
</data>
|
||||
<data name="Off" xml:space="preserve">
|
||||
<value>Désactivé</value>
|
||||
</data>
|
||||
<data name="On" xml:space="preserve">
|
||||
<value>Activé</value>
|
||||
</data>
|
||||
<data name="OneZone" xml:space="preserve">
|
||||
<value>Une zone</value>
|
||||
</data>
|
||||
<data name="OpenGHelper" xml:space="preserve">
|
||||
<value>Ouvrir G-Helper</value>
|
||||
</data>
|
||||
@@ -540,7 +636,7 @@ Voulez-vous continuer ?</value>
|
||||
<value>Overdrive</value>
|
||||
</data>
|
||||
<data name="PerformanceMode" xml:space="preserve">
|
||||
<value>Mode Performance</value>
|
||||
<value>Mode</value>
|
||||
</data>
|
||||
<data name="Peripherals" xml:space="preserve">
|
||||
<value>Périphériques</value>
|
||||
@@ -552,7 +648,7 @@ Voulez-vous continuer ?</value>
|
||||
<value>Lecture / Pause</value>
|
||||
</data>
|
||||
<data name="PollingRate" xml:space="preserve">
|
||||
<value>Polling Rate</value>
|
||||
<value>Fréquence d'interrogation</value>
|
||||
</data>
|
||||
<data name="PowerLimits" xml:space="preserve">
|
||||
<value>Limites de puissance</value>
|
||||
@@ -569,15 +665,27 @@ Voulez-vous continuer ?</value>
|
||||
<data name="Quit" xml:space="preserve">
|
||||
<value>Quitter</value>
|
||||
</data>
|
||||
<data name="Reset" xml:space="preserve">
|
||||
<value>Réinitialiser</value>
|
||||
</data>
|
||||
<data name="RestartGPU" xml:space="preserve">
|
||||
<value>Un programme utilise le dGPU et empêche le passage en mode Éco. Laissez G-Helper tenter un redémarrage du dGPU dans le gestionnaire de tâches ? (Procéder à vos propres risques)</value>
|
||||
</data>
|
||||
<data name="RPM" xml:space="preserve">
|
||||
<value> RPM</value>
|
||||
</data>
|
||||
<data name="RSDeadzones" xml:space="preserve">
|
||||
<value>Stick droit des zones mortes</value>
|
||||
</data>
|
||||
<data name="RTDeadzones" xml:space="preserve">
|
||||
<value>Gâchette droite des zones mortes</value>
|
||||
</data>
|
||||
<data name="RunOnStartup" xml:space="preserve">
|
||||
<value>Exécuter au démarrage</value>
|
||||
</data>
|
||||
<data name="ScalingQuality" xml:space="preserve">
|
||||
<value>Qualité de Mise à l'échelle (Scaling)</value>
|
||||
</data>
|
||||
<data name="ScreenPadDown" xml:space="preserve">
|
||||
<value>Baisser la luminosité du Screenpad</value>
|
||||
</data>
|
||||
@@ -632,6 +740,12 @@ Voulez-vous continuer ?</value>
|
||||
<data name="ToggleScreen" xml:space="preserve">
|
||||
<value>Allumer l'écran</value>
|
||||
</data>
|
||||
<data name="ToggleTouchscreen" xml:space="preserve">
|
||||
<value>Toggle Touchscreen</value>
|
||||
</data>
|
||||
<data name="Touchscreen" xml:space="preserve">
|
||||
<value/>
|
||||
</data>
|
||||
<data name="Turbo" xml:space="preserve">
|
||||
<value>Turbo</value>
|
||||
</data>
|
||||
@@ -650,12 +764,27 @@ Voulez-vous continuer ?</value>
|
||||
<data name="UndervoltingRisky" xml:space="preserve">
|
||||
<value>L'undervolting est une fonctionnalité expérimentale et risquée. Si les valeurs appliquées sont trop faibles, elles peuvent causer de l'instabilité, éteindre l'ordinateur ou causer une corruption de données. Si vous voulez essayer - commencer avec des petites valeurs, cliquez sur Appliquer et testez ce qui fonctionne pour vous.</value>
|
||||
</data>
|
||||
<data name="Unmuted" xml:space="preserve">
|
||||
<value>Son activé</value>
|
||||
</data>
|
||||
<data name="Updates" xml:space="preserve">
|
||||
<value>Mises à jour</value>
|
||||
</data>
|
||||
<data name="VersionLabel" xml:space="preserve">
|
||||
<value>Version </value>
|
||||
</data>
|
||||
<data name="VibrationStrength" xml:space="preserve">
|
||||
<value>Intensité de la vibration</value>
|
||||
</data>
|
||||
<data name="VisualMode" xml:space="preserve">
|
||||
<value>Mode d'affichage</value>
|
||||
</data>
|
||||
<data name="VisualModesHDR" xml:space="preserve">
|
||||
<value>Les modes visuels ne sont pas disponibles lorsque le HDR est actif</value>
|
||||
</data>
|
||||
<data name="VisualModesScreen" xml:space="preserve">
|
||||
<value>Les modes visuels ne sont pas disponibles lorsque l'écran de l'ordinateur portable est éteint</value>
|
||||
</data>
|
||||
<data name="VolumeDown" xml:space="preserve">
|
||||
<value>Vol-</value>
|
||||
</data>
|
||||
@@ -668,4 +797,7 @@ Voulez-vous continuer ?</value>
|
||||
<data name="WindowTop" xml:space="preserve">
|
||||
<value>Maintenir la fenêtre au premier plan</value>
|
||||
</data>
|
||||
</root>
|
||||
<data name="Zoom" xml:space="preserve">
|
||||
<value>Zoom</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -127,7 +127,7 @@
|
||||
<value>Restart your device to apply changes</value>
|
||||
</data>
|
||||
<data name="AlertAPUMemoryRestartTitle" xml:space="preserve">
|
||||
<value>Restart now?</value>
|
||||
<value>Újraindítás most?</value>
|
||||
</data>
|
||||
<data name="AlertDGPU" xml:space="preserve">
|
||||
<value>Úgy tűnik használatban van a GPU. Biztosan letiltod?</value>
|
||||
@@ -144,6 +144,9 @@
|
||||
<data name="AlertUltimateTitle" xml:space="preserve">
|
||||
<value>Újraindítja most?</value>
|
||||
</data>
|
||||
<data name="AllyController" xml:space="preserve">
|
||||
<value>Ally Controller</value>
|
||||
</data>
|
||||
<data name="AnimationSpeed" xml:space="preserve">
|
||||
<value>Animáció sebessége</value>
|
||||
</data>
|
||||
@@ -232,7 +235,7 @@
|
||||
<value>Görgetés</value>
|
||||
</data>
|
||||
<data name="AuraZoneUnderglow" xml:space="preserve">
|
||||
<value>Underglow</value>
|
||||
<value>Alsó világítás</value>
|
||||
</data>
|
||||
<data name="AutoApply" xml:space="preserve">
|
||||
<value>Automatikus alkalmazás</value>
|
||||
@@ -246,6 +249,18 @@
|
||||
<data name="Awake" xml:space="preserve">
|
||||
<value>Ébren</value>
|
||||
</data>
|
||||
<data name="BacklightLow" xml:space="preserve">
|
||||
<value>Low</value>
|
||||
</data>
|
||||
<data name="BacklightMax" xml:space="preserve">
|
||||
<value>Max</value>
|
||||
</data>
|
||||
<data name="BacklightMid" xml:space="preserve">
|
||||
<value>Mid</value>
|
||||
</data>
|
||||
<data name="BacklightOff" xml:space="preserve">
|
||||
<value>Off</value>
|
||||
</data>
|
||||
<data name="BacklightTimeout" xml:space="preserve">
|
||||
<value>Késleltetés töltés / akku módban (0 - BE)</value>
|
||||
</data>
|
||||
@@ -268,7 +283,16 @@
|
||||
<value>Akku állapot</value>
|
||||
</data>
|
||||
<data name="BatteryLimitFull" xml:space="preserve">
|
||||
<value>One time charge to 100%</value>
|
||||
<value>Egyszeri 100%-os feltöltés</value>
|
||||
</data>
|
||||
<data name="Binding" xml:space="preserve">
|
||||
<value>Binding</value>
|
||||
</data>
|
||||
<data name="BindingPrimary" xml:space="preserve">
|
||||
<value>Primary</value>
|
||||
</data>
|
||||
<data name="BindingSecondary" xml:space="preserve">
|
||||
<value>Secondary</value>
|
||||
</data>
|
||||
<data name="BiosAndDriverUpdates" xml:space="preserve">
|
||||
<value>BIOS és illesztőprogram frissítések</value>
|
||||
@@ -288,6 +312,9 @@
|
||||
<data name="BrightnessUp" xml:space="preserve">
|
||||
<value>Fényerő növelése</value>
|
||||
</data>
|
||||
<data name="BWTrayIcon" xml:space="preserve">
|
||||
<value>Fekete-fehér tálca ikon</value>
|
||||
</data>
|
||||
<data name="Calibrate" xml:space="preserve">
|
||||
<value>Kalibrálás</value>
|
||||
</data>
|
||||
@@ -297,6 +324,12 @@
|
||||
<data name="Color" xml:space="preserve">
|
||||
<value>Szín</value>
|
||||
</data>
|
||||
<data name="Contrast" xml:space="preserve">
|
||||
<value>Kontraszt</value>
|
||||
</data>
|
||||
<data name="Controller" xml:space="preserve">
|
||||
<value>Kontroller</value>
|
||||
</data>
|
||||
<data name="CPUBoost" xml:space="preserve">
|
||||
<value>CPU gyorsítás</value>
|
||||
</data>
|
||||
@@ -309,12 +342,21 @@
|
||||
<data name="Default" xml:space="preserve">
|
||||
<value>Alapért.</value>
|
||||
</data>
|
||||
<data name="DisableController" xml:space="preserve">
|
||||
<value>Kontoller letiltása</value>
|
||||
</data>
|
||||
<data name="DisableOnLidClose" xml:space="preserve">
|
||||
<value>Letiltása képernyő lehajtásakor</value>
|
||||
</data>
|
||||
<data name="DisableOverdrive" xml:space="preserve">
|
||||
<value>Képernyőtúlhajtás letiltása</value>
|
||||
</data>
|
||||
<data name="Discharging" xml:space="preserve">
|
||||
<value>Merülés</value>
|
||||
</data>
|
||||
<data name="DownloadColorProfiles" xml:space="preserve">
|
||||
<value>Színprofilok letöltése</value>
|
||||
</data>
|
||||
<data name="DownloadUpdate" xml:space="preserve">
|
||||
<value>Letöltés</value>
|
||||
</data>
|
||||
@@ -327,6 +369,9 @@
|
||||
<data name="EcoMode" xml:space="preserve">
|
||||
<value>Eco</value>
|
||||
</data>
|
||||
<data name="EnableGPUOnShutdown" xml:space="preserve">
|
||||
<value>Enable GPU on shutdown (prevents issue with Eco mode)</value>
|
||||
</data>
|
||||
<data name="EnableOptimusText" xml:space="preserve">
|
||||
<value>Disabling the dGPU by going into Eco mode while Display Mode in NVIDIA Control Panel is not set to Optimus might cause problems with brightness controls until after the next reboot.
|
||||
|
||||
@@ -338,6 +383,9 @@ Do you still want to continue?</value>
|
||||
<data name="EnergySettings" xml:space="preserve">
|
||||
<value>Energia beállítások</value>
|
||||
</data>
|
||||
<data name="Export" xml:space="preserve">
|
||||
<value>Profil exportálása</value>
|
||||
</data>
|
||||
<data name="Extra" xml:space="preserve">
|
||||
<value>Extra</value>
|
||||
</data>
|
||||
@@ -371,9 +419,18 @@ Do you still want to continue?</value>
|
||||
<data name="FansPower" xml:space="preserve">
|
||||
<value>Venti + energia</value>
|
||||
</data>
|
||||
<data name="FlickerFreeDimming" xml:space="preserve">
|
||||
<value>Villogásmentes halványítás</value>
|
||||
</data>
|
||||
<data name="FnLock" xml:space="preserve">
|
||||
<value>Fn + F gyorsgombok feldolgozása Fn nélkül</value>
|
||||
</data>
|
||||
<data name="FnLockOff" xml:space="preserve">
|
||||
<value>Fn-Lock Ki</value>
|
||||
</data>
|
||||
<data name="FnLockOn" xml:space="preserve">
|
||||
<value>Fn-Lock Be</value>
|
||||
</data>
|
||||
<data name="GPUBoost" xml:space="preserve">
|
||||
<value>Dinamikus gyorsítás</value>
|
||||
</data>
|
||||
@@ -398,6 +455,9 @@ Do you still want to continue?</value>
|
||||
<data name="GPUModeUltimate" xml:space="preserve">
|
||||
<value>kizárólag dGPU</value>
|
||||
</data>
|
||||
<data name="GPUPower" xml:space="preserve">
|
||||
<value>GPU Power</value>
|
||||
</data>
|
||||
<data name="GPUSettings" xml:space="preserve">
|
||||
<value>GPU beállítások</value>
|
||||
</data>
|
||||
@@ -410,6 +470,12 @@ Do you still want to continue?</value>
|
||||
<data name="High" xml:space="preserve">
|
||||
<value>Magas</value>
|
||||
</data>
|
||||
<data name="ImageRotation" xml:space="preserve">
|
||||
<value>Image Rotation</value>
|
||||
</data>
|
||||
<data name="Import" xml:space="preserve">
|
||||
<value>Profil importálása</value>
|
||||
</data>
|
||||
<data name="KeyBindings" xml:space="preserve">
|
||||
<value>Gyorsbillentyűk</value>
|
||||
</data>
|
||||
@@ -428,6 +494,9 @@ Do you still want to continue?</value>
|
||||
<data name="LaptopScreen" xml:space="preserve">
|
||||
<value>Laptop kijelző</value>
|
||||
</data>
|
||||
<data name="LEDStatusIndicators" xml:space="preserve">
|
||||
<value>LED Állapotjelzők</value>
|
||||
</data>
|
||||
<data name="Lid" xml:space="preserve">
|
||||
<value>Fedél</value>
|
||||
</data>
|
||||
@@ -437,12 +506,21 @@ Do you still want to continue?</value>
|
||||
<data name="Lighting" xml:space="preserve">
|
||||
<value>Világítás</value>
|
||||
</data>
|
||||
<data name="LockScreen" xml:space="preserve">
|
||||
<value>Képernyő zarolása</value>
|
||||
</data>
|
||||
<data name="Logo" xml:space="preserve">
|
||||
<value>Logó</value>
|
||||
</data>
|
||||
<data name="Low" xml:space="preserve">
|
||||
<value>Alacsony</value>
|
||||
</data>
|
||||
<data name="LSDeadzones" xml:space="preserve">
|
||||
<value>Left Stick Deadzones</value>
|
||||
</data>
|
||||
<data name="LTDeadzones" xml:space="preserve">
|
||||
<value>Left Trigger Deadzones</value>
|
||||
</data>
|
||||
<data name="MatrixAudio" xml:space="preserve">
|
||||
<value>Hang vizualizáció</value>
|
||||
</data>
|
||||
@@ -491,6 +569,9 @@ Do you still want to continue?</value>
|
||||
<data name="MouseButtonResponse" xml:space="preserve">
|
||||
<value>Gomb funkciója</value>
|
||||
</data>
|
||||
<data name="MouseImportFailed" xml:space="preserve">
|
||||
<value>Import failed. Selected file is not a valid mouse profile or corrutpted.</value>
|
||||
</data>
|
||||
<data name="MouseLiftOffDistance" xml:space="preserve">
|
||||
<value>Lift Off Distance</value>
|
||||
</data>
|
||||
@@ -504,7 +585,13 @@ Do you still want to continue?</value>
|
||||
<value>Szinkronizálás egérrel</value>
|
||||
</data>
|
||||
<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 name="Muted" xml:space="preserve">
|
||||
<value>Mikrofon Ki</value>
|
||||
</data>
|
||||
<data name="MuteMic" xml:space="preserve">
|
||||
<value>Mikrofon némítása</value>
|
||||
@@ -521,6 +608,15 @@ Do you still want to continue?</value>
|
||||
<data name="NotConnected" xml:space="preserve">
|
||||
<value>Nincs csatlakoztatva</value>
|
||||
</data>
|
||||
<data name="Off" xml:space="preserve">
|
||||
<value>Ki</value>
|
||||
</data>
|
||||
<data name="On" xml:space="preserve">
|
||||
<value>Be</value>
|
||||
</data>
|
||||
<data name="OneZone" xml:space="preserve">
|
||||
<value>One Zone</value>
|
||||
</data>
|
||||
<data name="OpenGHelper" xml:space="preserve">
|
||||
<value>G-Helper ablak megnyitása</value>
|
||||
</data>
|
||||
@@ -569,20 +665,32 @@ Do you still want to continue?</value>
|
||||
<data name="Quit" xml:space="preserve">
|
||||
<value>Bezárás</value>
|
||||
</data>
|
||||
<data name="Reset" xml:space="preserve">
|
||||
<value>Reset</value>
|
||||
</data>
|
||||
<data name="RestartGPU" xml:space="preserve">
|
||||
<value>Valami használja még a dGPU-t, ezzel megakadályozva az Eco móda lépést. Próbálja meg a G-Helper újraindítani a dGPU-t az eszközkezelőben? (Kérjük, saját felelősségére folytassa)</value>
|
||||
</data>
|
||||
<data name="RPM" xml:space="preserve">
|
||||
<value>Fordulatszám</value>
|
||||
</data>
|
||||
<data name="RSDeadzones" xml:space="preserve">
|
||||
<value>Right Stick Deadzones</value>
|
||||
</data>
|
||||
<data name="RTDeadzones" xml:space="preserve">
|
||||
<value>Right Trigger Deadzones</value>
|
||||
</data>
|
||||
<data name="RunOnStartup" xml:space="preserve">
|
||||
<value>Indítás a rendszerrel</value>
|
||||
</data>
|
||||
<data name="ScalingQuality" xml:space="preserve">
|
||||
<value>Scaling Quality</value>
|
||||
</data>
|
||||
<data name="ScreenPadDown" xml:space="preserve">
|
||||
<value>Screenpad Brightness Down</value>
|
||||
<value>Screenpad fényerő csökkentése</value>
|
||||
</data>
|
||||
<data name="ScreenPadUp" xml:space="preserve">
|
||||
<value>Screenpad Brightness Up</value>
|
||||
<value>Screenpad fényerő növelése</value>
|
||||
</data>
|
||||
<data name="Shutdown" xml:space="preserve">
|
||||
<value>Leállítás</value>
|
||||
@@ -632,6 +740,12 @@ Do you still want to continue?</value>
|
||||
<data name="ToggleScreen" xml:space="preserve">
|
||||
<value>Képernyő ki-/bekapcsolása</value>
|
||||
</data>
|
||||
<data name="ToggleTouchscreen" xml:space="preserve">
|
||||
<value>Érintőképernyő ki-/bekapcsolása</value>
|
||||
</data>
|
||||
<data name="Touchscreen" xml:space="preserve">
|
||||
<value/>
|
||||
</data>
|
||||
<data name="Turbo" xml:space="preserve">
|
||||
<value>Turbó</value>
|
||||
</data>
|
||||
@@ -650,12 +764,27 @@ Do you still want to continue?</value>
|
||||
<data name="UndervoltingRisky" xml:space="preserve">
|
||||
<value>Undervolting is an experimental and risky feature. If applied values are too low for your hardware, it can become unstable, shut down or cause data corruption. If you want to try - start from small values first, click Apply and test what works for you.</value>
|
||||
</data>
|
||||
<data name="Unmuted" xml:space="preserve">
|
||||
<value>Mikrofon Be</value>
|
||||
</data>
|
||||
<data name="Updates" xml:space="preserve">
|
||||
<value>Frissítések</value>
|
||||
</data>
|
||||
<data name="VersionLabel" xml:space="preserve">
|
||||
<value>Verzió</value>
|
||||
</data>
|
||||
<data name="VibrationStrength" xml:space="preserve">
|
||||
<value>Vibration Strength</value>
|
||||
</data>
|
||||
<data name="VisualMode" xml:space="preserve">
|
||||
<value>Képernyőszín Mód</value>
|
||||
</data>
|
||||
<data name="VisualModesHDR" xml:space="preserve">
|
||||
<value>Visual Modes are not available when HDR is active</value>
|
||||
</data>
|
||||
<data name="VisualModesScreen" xml:space="preserve">
|
||||
<value>Visual Modes are not available when laptop screen is off</value>
|
||||
</data>
|
||||
<data name="VolumeDown" xml:space="preserve">
|
||||
<value>Lehalkítás</value>
|
||||
</data>
|
||||
@@ -668,4 +797,7 @@ Do you still want to continue?</value>
|
||||
<data name="WindowTop" xml:space="preserve">
|
||||
<value>Alkalmazás maradjon mindig felül</value>
|
||||
</data>
|
||||
</root>
|
||||
<data name="Zoom" xml:space="preserve">
|
||||
<value>Zoom</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -124,10 +124,10 @@
|
||||
<value>Tidak dapat terhubung ke ASUS ACPI. tanpanya aplikasi tidak dapat berfungsi. Cobalah untuk menginstal Asus System Control Interface</value>
|
||||
</data>
|
||||
<data name="AlertAPUMemoryRestart" xml:space="preserve">
|
||||
<value>Restart your device to apply changes</value>
|
||||
<value>Muat ulang perangkat anda untuk menerapkan perubahan</value>
|
||||
</data>
|
||||
<data name="AlertAPUMemoryRestartTitle" xml:space="preserve">
|
||||
<value>Restart now?</value>
|
||||
<value>Mulai ulang sekarang?</value>
|
||||
</data>
|
||||
<data name="AlertDGPU" xml:space="preserve">
|
||||
<value>Tampaknya GPU sedang digunakan intensif, nonaktifkan?</value>
|
||||
@@ -144,6 +144,9 @@
|
||||
<data name="AlertUltimateTitle" xml:space="preserve">
|
||||
<value>Mulai ulang sekarang?</value>
|
||||
</data>
|
||||
<data name="AllyController" xml:space="preserve">
|
||||
<value>Ally Controller</value>
|
||||
</data>
|
||||
<data name="AnimationSpeed" xml:space="preserve">
|
||||
<value>Kecepatan Animasi</value>
|
||||
</data>
|
||||
@@ -246,6 +249,18 @@
|
||||
<data name="Awake" xml:space="preserve">
|
||||
<value>Bangun</value>
|
||||
</data>
|
||||
<data name="BacklightLow" xml:space="preserve">
|
||||
<value>Lemah</value>
|
||||
</data>
|
||||
<data name="BacklightMax" xml:space="preserve">
|
||||
<value>Kuat</value>
|
||||
</data>
|
||||
<data name="BacklightMid" xml:space="preserve">
|
||||
<value>Sedang</value>
|
||||
</data>
|
||||
<data name="BacklightOff" xml:space="preserve">
|
||||
<value>Mati</value>
|
||||
</data>
|
||||
<data name="BacklightTimeout" xml:space="preserve">
|
||||
<value>Waktu tunggu dicolokan / menggunakan baterai (0 - Hidup)</value>
|
||||
</data>
|
||||
@@ -270,6 +285,15 @@
|
||||
<data name="BatteryLimitFull" xml:space="preserve">
|
||||
<value>Isi daya sekali hingga mencapai 100%</value>
|
||||
</data>
|
||||
<data name="Binding" xml:space="preserve">
|
||||
<value>Binding</value>
|
||||
</data>
|
||||
<data name="BindingPrimary" xml:space="preserve">
|
||||
<value>Utama</value>
|
||||
</data>
|
||||
<data name="BindingSecondary" xml:space="preserve">
|
||||
<value>Sekunder</value>
|
||||
</data>
|
||||
<data name="BiosAndDriverUpdates" xml:space="preserve">
|
||||
<value>Pembaruan BIOS dan Driver</value>
|
||||
</data>
|
||||
@@ -288,6 +312,9 @@
|
||||
<data name="BrightnessUp" xml:space="preserve">
|
||||
<value>Tingkatkan Kecerahan</value>
|
||||
</data>
|
||||
<data name="BWTrayIcon" xml:space="preserve">
|
||||
<value>Black and white tray icon</value>
|
||||
</data>
|
||||
<data name="Calibrate" xml:space="preserve">
|
||||
<value>Kalibrasi</value>
|
||||
</data>
|
||||
@@ -297,6 +324,12 @@
|
||||
<data name="Color" xml:space="preserve">
|
||||
<value>Warna</value>
|
||||
</data>
|
||||
<data name="Contrast" xml:space="preserve">
|
||||
<value>Kontras</value>
|
||||
</data>
|
||||
<data name="Controller" xml:space="preserve">
|
||||
<value>Controller</value>
|
||||
</data>
|
||||
<data name="CPUBoost" xml:space="preserve">
|
||||
<value>CPU Boost</value>
|
||||
</data>
|
||||
@@ -309,11 +342,20 @@
|
||||
<data name="Default" xml:space="preserve">
|
||||
<value>Standar</value>
|
||||
</data>
|
||||
<data name="DisableController" xml:space="preserve">
|
||||
<value>Disable Controller</value>
|
||||
</data>
|
||||
<data name="DisableOnLidClose" xml:space="preserve">
|
||||
<value>Disable on lid close</value>
|
||||
</data>
|
||||
<data name="DisableOverdrive" xml:space="preserve">
|
||||
<value>Nonaktifkan screen overdrive</value>
|
||||
</data>
|
||||
<data name="Discharging" xml:space="preserve">
|
||||
<value>Discharging</value>
|
||||
<value>Tidak mengisi</value>
|
||||
</data>
|
||||
<data name="DownloadColorProfiles" xml:space="preserve">
|
||||
<value>Download Color Profiles</value>
|
||||
</data>
|
||||
<data name="DownloadUpdate" xml:space="preserve">
|
||||
<value>Unduh</value>
|
||||
@@ -327,6 +369,9 @@
|
||||
<data name="EcoMode" xml:space="preserve">
|
||||
<value>Eco</value>
|
||||
</data>
|
||||
<data name="EnableGPUOnShutdown" xml:space="preserve">
|
||||
<value>Enable GPU on shutdown (prevents issue with Eco mode)</value>
|
||||
</data>
|
||||
<data name="EnableOptimusText" xml:space="preserve">
|
||||
<value>Menonaktikan dGPU dengan masuk ke mode Eco saat Mode Tampilan di Panel Kontrol NVIDIA tidak diatur ke Optimus mungkin dapat menyebabkan masalah dengan kontrol kecerahan hingga mulai ulang berikutnya.
|
||||
|
||||
@@ -338,6 +383,9 @@ Apakah Anda masih ingin melanjutkan?</value>
|
||||
<data name="EnergySettings" xml:space="preserve">
|
||||
<value>Pengaturan Energi</value>
|
||||
</data>
|
||||
<data name="Export" xml:space="preserve">
|
||||
<value>Ekspor Profil</value>
|
||||
</data>
|
||||
<data name="Extra" xml:space="preserve">
|
||||
<value>Ekstra</value>
|
||||
</data>
|
||||
@@ -371,9 +419,18 @@ Apakah Anda masih ingin melanjutkan?</value>
|
||||
<data name="FansPower" xml:space="preserve">
|
||||
<value>Kipas + Daya</value>
|
||||
</data>
|
||||
<data name="FlickerFreeDimming" xml:space="preserve">
|
||||
<value>Flicker-free Dimming</value>
|
||||
</data>
|
||||
<data name="FnLock" xml:space="preserve">
|
||||
<value>Proses tombol pintas Fn+F tanpa Fn</value>
|
||||
</data>
|
||||
<data name="FnLockOff" xml:space="preserve">
|
||||
<value>FN-Lock Off</value>
|
||||
</data>
|
||||
<data name="FnLockOn" xml:space="preserve">
|
||||
<value>FN-Lock On</value>
|
||||
</data>
|
||||
<data name="GPUBoost" xml:space="preserve">
|
||||
<value>Dynamic Boost</value>
|
||||
</data>
|
||||
@@ -398,6 +455,9 @@ Apakah Anda masih ingin melanjutkan?</value>
|
||||
<data name="GPUModeUltimate" xml:space="preserve">
|
||||
<value>dGPU eksklusif</value>
|
||||
</data>
|
||||
<data name="GPUPower" xml:space="preserve">
|
||||
<value>GPU Power</value>
|
||||
</data>
|
||||
<data name="GPUSettings" xml:space="preserve">
|
||||
<value>Pengaturan GPU</value>
|
||||
</data>
|
||||
@@ -410,6 +470,12 @@ Apakah Anda masih ingin melanjutkan?</value>
|
||||
<data name="High" xml:space="preserve">
|
||||
<value>Tinggi</value>
|
||||
</data>
|
||||
<data name="ImageRotation" xml:space="preserve">
|
||||
<value>Rotasi Gambar</value>
|
||||
</data>
|
||||
<data name="Import" xml:space="preserve">
|
||||
<value>Impor Profil</value>
|
||||
</data>
|
||||
<data name="KeyBindings" xml:space="preserve">
|
||||
<value>Pintasan Keyboard</value>
|
||||
</data>
|
||||
@@ -428,6 +494,9 @@ Apakah Anda masih ingin melanjutkan?</value>
|
||||
<data name="LaptopScreen" xml:space="preserve">
|
||||
<value>Layar Laptop</value>
|
||||
</data>
|
||||
<data name="LEDStatusIndicators" xml:space="preserve">
|
||||
<value>LED Status Indicators</value>
|
||||
</data>
|
||||
<data name="Lid" xml:space="preserve">
|
||||
<value>Lid</value>
|
||||
</data>
|
||||
@@ -437,12 +506,21 @@ Apakah Anda masih ingin melanjutkan?</value>
|
||||
<data name="Lighting" xml:space="preserve">
|
||||
<value>Lighting</value>
|
||||
</data>
|
||||
<data name="LockScreen" xml:space="preserve">
|
||||
<value>Layar Kunci</value>
|
||||
</data>
|
||||
<data name="Logo" xml:space="preserve">
|
||||
<value>Logo</value>
|
||||
</data>
|
||||
<data name="Low" xml:space="preserve">
|
||||
<value>Rendah</value>
|
||||
</data>
|
||||
<data name="LSDeadzones" xml:space="preserve">
|
||||
<value>Left Stick Deadzones</value>
|
||||
</data>
|
||||
<data name="LTDeadzones" xml:space="preserve">
|
||||
<value>Left Trigger Deadzones</value>
|
||||
</data>
|
||||
<data name="MatrixAudio" xml:space="preserve">
|
||||
<value>Visualisasi Audio</value>
|
||||
</data>
|
||||
@@ -491,6 +569,9 @@ Apakah Anda masih ingin melanjutkan?</value>
|
||||
<data name="MouseButtonResponse" xml:space="preserve">
|
||||
<value>Respon Tombol</value>
|
||||
</data>
|
||||
<data name="MouseImportFailed" xml:space="preserve">
|
||||
<value>Import failed. Selected file is not a valid mouse profile or corrutpted.</value>
|
||||
</data>
|
||||
<data name="MouseLiftOffDistance" xml:space="preserve">
|
||||
<value>Jarak Angkat</value>
|
||||
</data>
|
||||
@@ -504,7 +585,13 @@ Apakah Anda masih ingin melanjutkan?</value>
|
||||
<value>Sinkronkan dengan mouse</value>
|
||||
</data>
|
||||
<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 name="Muted" xml:space="preserve">
|
||||
<value>Di Bisukan</value>
|
||||
</data>
|
||||
<data name="MuteMic" xml:space="preserve">
|
||||
<value>Bisukan Mic</value>
|
||||
@@ -521,6 +608,15 @@ Apakah Anda masih ingin melanjutkan?</value>
|
||||
<data name="NotConnected" xml:space="preserve">
|
||||
<value>Tidak Tersambung</value>
|
||||
</data>
|
||||
<data name="Off" xml:space="preserve">
|
||||
<value>Mati</value>
|
||||
</data>
|
||||
<data name="On" xml:space="preserve">
|
||||
<value>Hidup</value>
|
||||
</data>
|
||||
<data name="OneZone" xml:space="preserve">
|
||||
<value>One Zone</value>
|
||||
</data>
|
||||
<data name="OpenGHelper" xml:space="preserve">
|
||||
<value>Buka Jendela G-Helper</value>
|
||||
</data>
|
||||
@@ -569,15 +665,27 @@ Apakah Anda masih ingin melanjutkan?</value>
|
||||
<data name="Quit" xml:space="preserve">
|
||||
<value>Keluar</value>
|
||||
</data>
|
||||
<data name="Reset" xml:space="preserve">
|
||||
<value>Reset</value>
|
||||
</data>
|
||||
<data name="RestartGPU" xml:space="preserve">
|
||||
<value>Ada yang menggunakan dGPU dan mencegah mode Eco. Biarkan G-Helper mencoba memulai ulang dGPU di pengelola perangkat? (Silakan lanjutkan dengan risiko Anda sendiri)</value>
|
||||
</data>
|
||||
<data name="RPM" xml:space="preserve">
|
||||
<value>RPM</value>
|
||||
</data>
|
||||
<data name="RSDeadzones" xml:space="preserve">
|
||||
<value>Right Stick Deadzones</value>
|
||||
</data>
|
||||
<data name="RTDeadzones" xml:space="preserve">
|
||||
<value>Right Trigger Deadzones</value>
|
||||
</data>
|
||||
<data name="RunOnStartup" xml:space="preserve">
|
||||
<value>Jalankan di Startup</value>
|
||||
</data>
|
||||
<data name="ScalingQuality" xml:space="preserve">
|
||||
<value>Scaling Quality</value>
|
||||
</data>
|
||||
<data name="ScreenPadDown" xml:space="preserve">
|
||||
<value>Kurangi Kecerahan Screenpad</value>
|
||||
</data>
|
||||
@@ -632,6 +740,12 @@ Apakah Anda masih ingin melanjutkan?</value>
|
||||
<data name="ToggleScreen" xml:space="preserve">
|
||||
<value>Hidupkan/Matikan Layar</value>
|
||||
</data>
|
||||
<data name="ToggleTouchscreen" xml:space="preserve">
|
||||
<value>Toggle Touchscreen</value>
|
||||
</data>
|
||||
<data name="Touchscreen" xml:space="preserve">
|
||||
<value/>
|
||||
</data>
|
||||
<data name="Turbo" xml:space="preserve">
|
||||
<value>Turbo</value>
|
||||
</data>
|
||||
@@ -650,12 +764,27 @@ Apakah Anda masih ingin melanjutkan?</value>
|
||||
<data name="UndervoltingRisky" xml:space="preserve">
|
||||
<value>Undervolting adalah fitur eksperimental dan berisiko. Jika nilai yang diterapkan terlalu rendah untuk perangkat keras Anda, ini dapat menjadi tidak stabil, mati mendadak, atau menyebabkan kerusakan data. Jika Anda ingin mencobanya, mulailah dengan nilai kecil terlebih dahulu, klik Terapkan, dan uji apa yang cocok untuk Anda.</value>
|
||||
</data>
|
||||
<data name="Unmuted" xml:space="preserve">
|
||||
<value>Bunyikan</value>
|
||||
</data>
|
||||
<data name="Updates" xml:space="preserve">
|
||||
<value>Pembaruan</value>
|
||||
</data>
|
||||
<data name="VersionLabel" xml:space="preserve">
|
||||
<value>Versi</value>
|
||||
</data>
|
||||
<data name="VibrationStrength" xml:space="preserve">
|
||||
<value>Kekuatan Getaran</value>
|
||||
</data>
|
||||
<data name="VisualMode" xml:space="preserve">
|
||||
<value>Mode Visual</value>
|
||||
</data>
|
||||
<data name="VisualModesHDR" xml:space="preserve">
|
||||
<value>Mode Visual tidak tersedia saat HDR aktif</value>
|
||||
</data>
|
||||
<data name="VisualModesScreen" xml:space="preserve">
|
||||
<value>Mode Visual tidak tersedia saat layar laptop mati</value>
|
||||
</data>
|
||||
<data name="VolumeDown" xml:space="preserve">
|
||||
<value>Volume Turun</value>
|
||||
</data>
|
||||
@@ -668,4 +797,7 @@ Apakah Anda masih ingin melanjutkan?</value>
|
||||
<data name="WindowTop" xml:space="preserve">
|
||||
<value>Jaga agar jendela aplikasi selalu di atas</value>
|
||||
</data>
|
||||
</root>
|
||||
<data name="Zoom" xml:space="preserve">
|
||||
<value>Perbesar</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -144,6 +144,9 @@
|
||||
<data name="AlertUltimateTitle" xml:space="preserve">
|
||||
<value>Riavviare ora?</value>
|
||||
</data>
|
||||
<data name="AllyController" xml:space="preserve">
|
||||
<value>Ally Controller</value>
|
||||
</data>
|
||||
<data name="AnimationSpeed" xml:space="preserve">
|
||||
<value>Velocità animazione</value>
|
||||
</data>
|
||||
@@ -246,6 +249,18 @@
|
||||
<data name="Awake" xml:space="preserve">
|
||||
<value>In uso</value>
|
||||
</data>
|
||||
<data name="BacklightLow" xml:space="preserve">
|
||||
<value>Low</value>
|
||||
</data>
|
||||
<data name="BacklightMax" xml:space="preserve">
|
||||
<value>Max</value>
|
||||
</data>
|
||||
<data name="BacklightMid" xml:space="preserve">
|
||||
<value>Mid</value>
|
||||
</data>
|
||||
<data name="BacklightOff" xml:space="preserve">
|
||||
<value>Off</value>
|
||||
</data>
|
||||
<data name="BacklightTimeout" xml:space="preserve">
|
||||
<value>Timeout in carica / a batteria (0 - ACCESO)</value>
|
||||
</data>
|
||||
@@ -270,6 +285,15 @@
|
||||
<data name="BatteryLimitFull" xml:space="preserve">
|
||||
<value>One time charge to 100%</value>
|
||||
</data>
|
||||
<data name="Binding" xml:space="preserve">
|
||||
<value>Binding</value>
|
||||
</data>
|
||||
<data name="BindingPrimary" xml:space="preserve">
|
||||
<value>Primary</value>
|
||||
</data>
|
||||
<data name="BindingSecondary" xml:space="preserve">
|
||||
<value>Secondary</value>
|
||||
</data>
|
||||
<data name="BiosAndDriverUpdates" xml:space="preserve">
|
||||
<value>Aggiornamenti Driver e BIOS</value>
|
||||
</data>
|
||||
@@ -288,6 +312,9 @@
|
||||
<data name="BrightnessUp" xml:space="preserve">
|
||||
<value>Aumenta Luminosità</value>
|
||||
</data>
|
||||
<data name="BWTrayIcon" xml:space="preserve">
|
||||
<value>Black and white tray icon</value>
|
||||
</data>
|
||||
<data name="Calibrate" xml:space="preserve">
|
||||
<value>Calibrate</value>
|
||||
</data>
|
||||
@@ -297,6 +324,12 @@
|
||||
<data name="Color" xml:space="preserve">
|
||||
<value>Colore</value>
|
||||
</data>
|
||||
<data name="Contrast" xml:space="preserve">
|
||||
<value>Contrast</value>
|
||||
</data>
|
||||
<data name="Controller" xml:space="preserve">
|
||||
<value>Controller</value>
|
||||
</data>
|
||||
<data name="CPUBoost" xml:space="preserve">
|
||||
<value>Boost CPU</value>
|
||||
</data>
|
||||
@@ -309,12 +342,21 @@
|
||||
<data name="Default" xml:space="preserve">
|
||||
<value>Default</value>
|
||||
</data>
|
||||
<data name="DisableController" xml:space="preserve">
|
||||
<value>Disable Controller</value>
|
||||
</data>
|
||||
<data name="DisableOnLidClose" xml:space="preserve">
|
||||
<value>Disable on lid close</value>
|
||||
</data>
|
||||
<data name="DisableOverdrive" xml:space="preserve">
|
||||
<value>Disabilita Overdrive Schermo</value>
|
||||
</data>
|
||||
<data name="Discharging" xml:space="preserve">
|
||||
<value>Scaricamento</value>
|
||||
</data>
|
||||
<data name="DownloadColorProfiles" xml:space="preserve">
|
||||
<value>Download Color Profiles</value>
|
||||
</data>
|
||||
<data name="DownloadUpdate" xml:space="preserve">
|
||||
<value>Scarica</value>
|
||||
</data>
|
||||
@@ -327,6 +369,9 @@
|
||||
<data name="EcoMode" xml:space="preserve">
|
||||
<value>Eco</value>
|
||||
</data>
|
||||
<data name="EnableGPUOnShutdown" xml:space="preserve">
|
||||
<value>Enable GPU on shutdown (prevents issue with Eco mode)</value>
|
||||
</data>
|
||||
<data name="EnableOptimusText" xml:space="preserve">
|
||||
<value>Disabilitare la dGPU impostando la modalità Eco quando non è attiva la modalità schermo Optimus nel Pannello di Controllo NVIDIA può causare problemi al controllo della luminosità fino al prossimo riavvio.
|
||||
|
||||
@@ -338,6 +383,9 @@ Sei sicuro di voler continuare?</value>
|
||||
<data name="EnergySettings" xml:space="preserve">
|
||||
<value>Risparmio Energia</value>
|
||||
</data>
|
||||
<data name="Export" xml:space="preserve">
|
||||
<value>Export Profile</value>
|
||||
</data>
|
||||
<data name="Extra" xml:space="preserve">
|
||||
<value>Extra</value>
|
||||
</data>
|
||||
@@ -371,9 +419,18 @@ Sei sicuro di voler continuare?</value>
|
||||
<data name="FansPower" xml:space="preserve">
|
||||
<value>Ventole + Alimentazione</value>
|
||||
</data>
|
||||
<data name="FlickerFreeDimming" xml:space="preserve">
|
||||
<value>Flicker-free Dimming</value>
|
||||
</data>
|
||||
<data name="FnLock" xml:space="preserve">
|
||||
<value>Elabora i tasti Fn+F direttamente senza Fn</value>
|
||||
</data>
|
||||
<data name="FnLockOff" xml:space="preserve">
|
||||
<value>FN-Lock Off</value>
|
||||
</data>
|
||||
<data name="FnLockOn" xml:space="preserve">
|
||||
<value>FN-Lock On</value>
|
||||
</data>
|
||||
<data name="GPUBoost" xml:space="preserve">
|
||||
<value>Boost Dinamico</value>
|
||||
</data>
|
||||
@@ -398,6 +455,9 @@ Sei sicuro di voler continuare?</value>
|
||||
<data name="GPUModeUltimate" xml:space="preserve">
|
||||
<value>Solo dGPU</value>
|
||||
</data>
|
||||
<data name="GPUPower" xml:space="preserve">
|
||||
<value>GPU Power</value>
|
||||
</data>
|
||||
<data name="GPUSettings" xml:space="preserve">
|
||||
<value>Impostazioni GPU</value>
|
||||
</data>
|
||||
@@ -410,6 +470,12 @@ Sei sicuro di voler continuare?</value>
|
||||
<data name="High" xml:space="preserve">
|
||||
<value>Elevato</value>
|
||||
</data>
|
||||
<data name="ImageRotation" xml:space="preserve">
|
||||
<value>Image Rotation</value>
|
||||
</data>
|
||||
<data name="Import" xml:space="preserve">
|
||||
<value>Import Profile</value>
|
||||
</data>
|
||||
<data name="KeyBindings" xml:space="preserve">
|
||||
<value>Associazione Tasti</value>
|
||||
</data>
|
||||
@@ -428,6 +494,9 @@ Sei sicuro di voler continuare?</value>
|
||||
<data name="LaptopScreen" xml:space="preserve">
|
||||
<value>Schermo Laptop</value>
|
||||
</data>
|
||||
<data name="LEDStatusIndicators" xml:space="preserve">
|
||||
<value>LED Status Indicators</value>
|
||||
</data>
|
||||
<data name="Lid" xml:space="preserve">
|
||||
<value>Lid</value>
|
||||
</data>
|
||||
@@ -437,12 +506,21 @@ Sei sicuro di voler continuare?</value>
|
||||
<data name="Lighting" xml:space="preserve">
|
||||
<value>Illuminazione</value>
|
||||
</data>
|
||||
<data name="LockScreen" xml:space="preserve">
|
||||
<value>Lock Screen</value>
|
||||
</data>
|
||||
<data name="Logo" xml:space="preserve">
|
||||
<value>Logo</value>
|
||||
</data>
|
||||
<data name="Low" xml:space="preserve">
|
||||
<value>Basso</value>
|
||||
</data>
|
||||
<data name="LSDeadzones" xml:space="preserve">
|
||||
<value>Left Stick Deadzones</value>
|
||||
</data>
|
||||
<data name="LTDeadzones" xml:space="preserve">
|
||||
<value>Left Trigger Deadzones</value>
|
||||
</data>
|
||||
<data name="MatrixAudio" xml:space="preserve">
|
||||
<value>Visualizzatore Audio</value>
|
||||
</data>
|
||||
@@ -491,6 +569,9 @@ Sei sicuro di voler continuare?</value>
|
||||
<data name="MouseButtonResponse" xml:space="preserve">
|
||||
<value>Risposta Tasto Mouse</value>
|
||||
</data>
|
||||
<data name="MouseImportFailed" xml:space="preserve">
|
||||
<value>Import failed. Selected file is not a valid mouse profile or corrutpted.</value>
|
||||
</data>
|
||||
<data name="MouseLiftOffDistance" xml:space="preserve">
|
||||
<value>Lift Off Distance</value>
|
||||
</data>
|
||||
@@ -504,7 +585,13 @@ Sei sicuro di voler continuare?</value>
|
||||
<value>Sincronizza con Mouse</value>
|
||||
</data>
|
||||
<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 name="Muted" xml:space="preserve">
|
||||
<value>Muted</value>
|
||||
</data>
|
||||
<data name="MuteMic" xml:space="preserve">
|
||||
<value>Silenzia microfono</value>
|
||||
@@ -521,6 +608,15 @@ Sei sicuro di voler continuare?</value>
|
||||
<data name="NotConnected" xml:space="preserve">
|
||||
<value>Non Connesso</value>
|
||||
</data>
|
||||
<data name="Off" xml:space="preserve">
|
||||
<value>Off</value>
|
||||
</data>
|
||||
<data name="On" xml:space="preserve">
|
||||
<value>On</value>
|
||||
</data>
|
||||
<data name="OneZone" xml:space="preserve">
|
||||
<value>One Zone</value>
|
||||
</data>
|
||||
<data name="OpenGHelper" xml:space="preserve">
|
||||
<value>Apri G-Helper</value>
|
||||
</data>
|
||||
@@ -569,15 +665,27 @@ Sei sicuro di voler continuare?</value>
|
||||
<data name="Quit" xml:space="preserve">
|
||||
<value>Esci</value>
|
||||
</data>
|
||||
<data name="Reset" xml:space="preserve">
|
||||
<value>Reset</value>
|
||||
</data>
|
||||
<data name="RestartGPU" xml:space="preserve">
|
||||
<value>Qualcosa sta utilizzando la dGPU e impedisce il passaggio alla modalità Eco. Vuoi che G-Helper provi a riavviare la dGPU in gestione dispositivi? (Procedi a tuo rischio)</value>
|
||||
</data>
|
||||
<data name="RPM" xml:space="preserve">
|
||||
<value>RPM</value>
|
||||
</data>
|
||||
<data name="RSDeadzones" xml:space="preserve">
|
||||
<value>Right Stick Deadzones</value>
|
||||
</data>
|
||||
<data name="RTDeadzones" xml:space="preserve">
|
||||
<value>Right Trigger Deadzones</value>
|
||||
</data>
|
||||
<data name="RunOnStartup" xml:space="preserve">
|
||||
<value>Esegui all'Avvio</value>
|
||||
</data>
|
||||
<data name="ScalingQuality" xml:space="preserve">
|
||||
<value>Scaling Quality</value>
|
||||
</data>
|
||||
<data name="ScreenPadDown" xml:space="preserve">
|
||||
<value>Riduci luminosità Screenpad</value>
|
||||
</data>
|
||||
@@ -632,6 +740,12 @@ Sei sicuro di voler continuare?</value>
|
||||
<data name="ToggleScreen" xml:space="preserve">
|
||||
<value>Alterna Schermo</value>
|
||||
</data>
|
||||
<data name="ToggleTouchscreen" xml:space="preserve">
|
||||
<value>Toggle Touchscreen</value>
|
||||
</data>
|
||||
<data name="Touchscreen" xml:space="preserve">
|
||||
<value/>
|
||||
</data>
|
||||
<data name="Turbo" xml:space="preserve">
|
||||
<value>Turbo</value>
|
||||
</data>
|
||||
@@ -650,12 +764,27 @@ Sei sicuro di voler continuare?</value>
|
||||
<data name="UndervoltingRisky" xml:space="preserve">
|
||||
<value>L'undervolting è una funzione sperimentale e rischiosa. Se i valori applicati sono troppo bassi per il tuo dispositivo, esso potrebbe diventare instabile, spegnersi o perdere dati. Se vuoi provare - inizia dapprima con valori contenuti, clicca Applica e verifica se funziona tutto correttamente.</value>
|
||||
</data>
|
||||
<data name="Unmuted" xml:space="preserve">
|
||||
<value>Unmuted</value>
|
||||
</data>
|
||||
<data name="Updates" xml:space="preserve">
|
||||
<value>Aggiornamenti</value>
|
||||
</data>
|
||||
<data name="VersionLabel" xml:space="preserve">
|
||||
<value>Versione</value>
|
||||
</data>
|
||||
<data name="VibrationStrength" xml:space="preserve">
|
||||
<value>Vibration Strength</value>
|
||||
</data>
|
||||
<data name="VisualMode" xml:space="preserve">
|
||||
<value>Visual Mode</value>
|
||||
</data>
|
||||
<data name="VisualModesHDR" xml:space="preserve">
|
||||
<value>Visual Modes are not available when HDR is active</value>
|
||||
</data>
|
||||
<data name="VisualModesScreen" xml:space="preserve">
|
||||
<value>Visual Modes are not available when laptop screen is off</value>
|
||||
</data>
|
||||
<data name="VolumeDown" xml:space="preserve">
|
||||
<value>Diminuisci Volume</value>
|
||||
</data>
|
||||
@@ -668,4 +797,7 @@ Sei sicuro di voler continuare?</value>
|
||||
<data name="WindowTop" xml:space="preserve">
|
||||
<value>Mantieni applicazione sempre in primo piano</value>
|
||||
</data>
|
||||
</root>
|
||||
<data name="Zoom" xml:space="preserve">
|
||||
<value>Zoom</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
803
app/Properties/Strings.ja.resx
Normal file
803
app/Properties/Strings.ja.resx
Normal file
@@ -0,0 +1,803 @@
|
||||
<?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 xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="root">
|
||||
<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>
|
||||
<data name="Acceleration" xml:space="preserve">
|
||||
<value>Acceleration</value>
|
||||
</data>
|
||||
<data name="ACPIError" xml:space="preserve">
|
||||
<value>Can't connect to ASUS ACPI. Application can't function without it. Try to install Asus System Control Interface</value>
|
||||
</data>
|
||||
<data name="AlertAPUMemoryRestart" xml:space="preserve">
|
||||
<value>Restart your device to apply changes</value>
|
||||
</data>
|
||||
<data name="AlertAPUMemoryRestartTitle" xml:space="preserve">
|
||||
<value>Restart now?</value>
|
||||
</data>
|
||||
<data name="AlertDGPU" xml:space="preserve">
|
||||
<value>Looks like GPU is in heavy use, disable it?</value>
|
||||
</data>
|
||||
<data name="AlertDGPUTitle" xml:space="preserve">
|
||||
<value>Eco Mode</value>
|
||||
</data>
|
||||
<data name="AlertUltimateOff" xml:space="preserve">
|
||||
<value>Switching off Ultimate Mode requires restart</value>
|
||||
</data>
|
||||
<data name="AlertUltimateOn" xml:space="preserve">
|
||||
<value>Ultimate Mode requires restart</value>
|
||||
</data>
|
||||
<data name="AlertUltimateTitle" xml:space="preserve">
|
||||
<value>Reboot now?</value>
|
||||
</data>
|
||||
<data name="AllyController" xml:space="preserve">
|
||||
<value>Ally Controller</value>
|
||||
</data>
|
||||
<data name="AnimationSpeed" xml:space="preserve">
|
||||
<value>Animation Speed</value>
|
||||
</data>
|
||||
<data name="AnimeMatrix" xml:space="preserve">
|
||||
<value>Anime Matrix</value>
|
||||
</data>
|
||||
<data name="AppAlreadyRunning" xml:space="preserve">
|
||||
<value>App already running</value>
|
||||
</data>
|
||||
<data name="AppAlreadyRunningText" xml:space="preserve">
|
||||
<value>G-Helper is already running. Check system tray for an icon.</value>
|
||||
</data>
|
||||
<data name="Apply" xml:space="preserve">
|
||||
<value>Apply</value>
|
||||
</data>
|
||||
<data name="ApplyFanCurve" xml:space="preserve">
|
||||
<value>Apply Custom Fan Curve</value>
|
||||
</data>
|
||||
<data name="ApplyPowerLimits" xml:space="preserve">
|
||||
<value>Apply Power Limits</value>
|
||||
</data>
|
||||
<data name="ApplyWindowsPowerPlan" xml:space="preserve">
|
||||
<value>Auto adjust Windows Power Modes</value>
|
||||
</data>
|
||||
<data name="APUMemory" xml:space="preserve">
|
||||
<value>Memory Assigned to GPU</value>
|
||||
</data>
|
||||
<data name="AsusServicesRunning" xml:space="preserve">
|
||||
<value>Asus Services Running</value>
|
||||
</data>
|
||||
<data name="AuraBatteryState" xml:space="preserve">
|
||||
<value>Battery State</value>
|
||||
</data>
|
||||
<data name="AuraBreathe" xml:space="preserve">
|
||||
<value>Breathe</value>
|
||||
</data>
|
||||
<data name="AuraClockwise" xml:space="preserve">
|
||||
<value>Clockwise</value>
|
||||
</data>
|
||||
<data name="AuraColorCycle" xml:space="preserve">
|
||||
<value>Color Cycle</value>
|
||||
</data>
|
||||
<data name="AuraComet" xml:space="preserve">
|
||||
<value>Comet</value>
|
||||
</data>
|
||||
<data name="AuraCounterClockwise" xml:space="preserve">
|
||||
<value>Counterclockwise</value>
|
||||
</data>
|
||||
<data name="AuraFast" xml:space="preserve">
|
||||
<value>Fast</value>
|
||||
</data>
|
||||
<data name="AuraLightingMode" xml:space="preserve">
|
||||
<value>Lighting Mode</value>
|
||||
</data>
|
||||
<data name="AuraNormal" xml:space="preserve">
|
||||
<value>Normal</value>
|
||||
</data>
|
||||
<data name="AuraRainbow" xml:space="preserve">
|
||||
<value>Rainbow</value>
|
||||
</data>
|
||||
<data name="AuraRandomColor" xml:space="preserve">
|
||||
<value>Random</value>
|
||||
</data>
|
||||
<data name="AuraReact" xml:space="preserve">
|
||||
<value>React</value>
|
||||
</data>
|
||||
<data name="AuraSlow" xml:space="preserve">
|
||||
<value>Slow</value>
|
||||
</data>
|
||||
<data name="AuraStatic" xml:space="preserve">
|
||||
<value>Static</value>
|
||||
</data>
|
||||
<data name="AuraStrobe" xml:space="preserve">
|
||||
<value>Strobe</value>
|
||||
</data>
|
||||
<data name="AuraZoneAll" xml:space="preserve">
|
||||
<value>All</value>
|
||||
</data>
|
||||
<data name="AuraZoneDock" xml:space="preserve">
|
||||
<value>Dock</value>
|
||||
</data>
|
||||
<data name="AuraZoneLogo" xml:space="preserve">
|
||||
<value>Logo</value>
|
||||
</data>
|
||||
<data name="AuraZoneScroll" xml:space="preserve">
|
||||
<value>Scrollwheel</value>
|
||||
</data>
|
||||
<data name="AuraZoneUnderglow" xml:space="preserve">
|
||||
<value>Underglow</value>
|
||||
</data>
|
||||
<data name="AutoApply" xml:space="preserve">
|
||||
<value>Auto Apply</value>
|
||||
</data>
|
||||
<data name="AutoMode" xml:space="preserve">
|
||||
<value>Auto</value>
|
||||
</data>
|
||||
<data name="AutoRefreshTooltip" xml:space="preserve">
|
||||
<value>Sets 60Hz to save battery, and back when plugged</value>
|
||||
</data>
|
||||
<data name="Awake" xml:space="preserve">
|
||||
<value>Awake</value>
|
||||
</data>
|
||||
<data name="BacklightLow" xml:space="preserve">
|
||||
<value>Low</value>
|
||||
</data>
|
||||
<data name="BacklightMax" xml:space="preserve">
|
||||
<value>Max</value>
|
||||
</data>
|
||||
<data name="BacklightMid" xml:space="preserve">
|
||||
<value>Mid</value>
|
||||
</data>
|
||||
<data name="BacklightOff" xml:space="preserve">
|
||||
<value>Off</value>
|
||||
</data>
|
||||
<data name="BacklightTimeout" xml:space="preserve">
|
||||
<value>Timeout plugged / on battery (0 - ON)</value>
|
||||
</data>
|
||||
<data name="BacklightTimeoutBattery" xml:space="preserve">
|
||||
<value>Backlight Timeout when on battery</value>
|
||||
</data>
|
||||
<data name="BacklightTimeoutPlugged" xml:space="preserve">
|
||||
<value>Backlight Timeout when plugged</value>
|
||||
</data>
|
||||
<data name="Balanced" xml:space="preserve">
|
||||
<value>Balanced</value>
|
||||
</data>
|
||||
<data name="BatteryCharge" xml:space="preserve">
|
||||
<value>Charge</value>
|
||||
</data>
|
||||
<data name="BatteryChargeLimit" xml:space="preserve">
|
||||
<value>Battery Charge Limit</value>
|
||||
</data>
|
||||
<data name="BatteryHealth" xml:space="preserve">
|
||||
<value>Battery Health</value>
|
||||
</data>
|
||||
<data name="BatteryLimitFull" xml:space="preserve">
|
||||
<value>One time charge to 100%</value>
|
||||
</data>
|
||||
<data name="Binding" xml:space="preserve">
|
||||
<value>Binding</value>
|
||||
</data>
|
||||
<data name="BindingPrimary" xml:space="preserve">
|
||||
<value>Primary</value>
|
||||
</data>
|
||||
<data name="BindingSecondary" xml:space="preserve">
|
||||
<value>Secondary</value>
|
||||
</data>
|
||||
<data name="BiosAndDriverUpdates" xml:space="preserve">
|
||||
<value>BIOS and Driver Updates</value>
|
||||
</data>
|
||||
<data name="Boot" xml:space="preserve">
|
||||
<value>Boot</value>
|
||||
</data>
|
||||
<data name="BootSound" xml:space="preserve">
|
||||
<value>Boot Sound</value>
|
||||
</data>
|
||||
<data name="Brightness" xml:space="preserve">
|
||||
<value>Brightness</value>
|
||||
</data>
|
||||
<data name="BrightnessDown" xml:space="preserve">
|
||||
<value>Brightness Down</value>
|
||||
</data>
|
||||
<data name="BrightnessUp" xml:space="preserve">
|
||||
<value>Brightness Up</value>
|
||||
</data>
|
||||
<data name="BWTrayIcon" xml:space="preserve">
|
||||
<value>Black and white tray icon</value>
|
||||
</data>
|
||||
<data name="Calibrate" xml:space="preserve">
|
||||
<value>Calibrate</value>
|
||||
</data>
|
||||
<data name="Charging" xml:space="preserve">
|
||||
<value>Charging</value>
|
||||
</data>
|
||||
<data name="Color" xml:space="preserve">
|
||||
<value>Color</value>
|
||||
</data>
|
||||
<data name="Contrast" xml:space="preserve">
|
||||
<value>Contrast</value>
|
||||
</data>
|
||||
<data name="Controller" xml:space="preserve">
|
||||
<value>Controller</value>
|
||||
</data>
|
||||
<data name="CPUBoost" xml:space="preserve">
|
||||
<value>CPU Boost</value>
|
||||
</data>
|
||||
<data name="Custom" xml:space="preserve">
|
||||
<value>Custom</value>
|
||||
</data>
|
||||
<data name="Deceleration" xml:space="preserve">
|
||||
<value>Deceleration</value>
|
||||
</data>
|
||||
<data name="Default" xml:space="preserve">
|
||||
<value>Default</value>
|
||||
</data>
|
||||
<data name="DisableController" xml:space="preserve">
|
||||
<value>Disable Controller</value>
|
||||
</data>
|
||||
<data name="DisableOnLidClose" xml:space="preserve">
|
||||
<value>Disable on lid close</value>
|
||||
</data>
|
||||
<data name="DisableOverdrive" xml:space="preserve">
|
||||
<value>Disable screen overdrive</value>
|
||||
</data>
|
||||
<data name="Discharging" xml:space="preserve">
|
||||
<value>Discharging</value>
|
||||
</data>
|
||||
<data name="DownloadColorProfiles" xml:space="preserve">
|
||||
<value>Download Color Profiles</value>
|
||||
</data>
|
||||
<data name="DownloadUpdate" xml:space="preserve">
|
||||
<value>Download</value>
|
||||
</data>
|
||||
<data name="DriverAndSoftware" xml:space="preserve">
|
||||
<value>Drivers and Software</value>
|
||||
</data>
|
||||
<data name="EcoGPUTooltip" xml:space="preserve">
|
||||
<value>Disables dGPU to save battery</value>
|
||||
</data>
|
||||
<data name="EcoMode" xml:space="preserve">
|
||||
<value>Eco</value>
|
||||
</data>
|
||||
<data name="EnableGPUOnShutdown" xml:space="preserve">
|
||||
<value>Enable GPU on shutdown (prevents issue with Eco mode)</value>
|
||||
</data>
|
||||
<data name="EnableOptimusText" xml:space="preserve">
|
||||
<value>Disabling the dGPU by going into Eco mode while Display Mode in NVIDIA Control Panel is not set to Optimus might cause problems with brightness controls until after the next reboot.
|
||||
|
||||
Do you still want to continue?</value>
|
||||
</data>
|
||||
<data name="EnableOptimusTitle" xml:space="preserve">
|
||||
<value>NVIDIA Display Mode is not set to Optimus</value>
|
||||
</data>
|
||||
<data name="EnergySettings" xml:space="preserve">
|
||||
<value>Energy Settings</value>
|
||||
</data>
|
||||
<data name="Export" xml:space="preserve">
|
||||
<value>Export Profile</value>
|
||||
</data>
|
||||
<data name="Extra" xml:space="preserve">
|
||||
<value>Extra</value>
|
||||
</data>
|
||||
<data name="ExtraSettings" xml:space="preserve">
|
||||
<value>Extra Settings</value>
|
||||
</data>
|
||||
<data name="FactoryDefaults" xml:space="preserve">
|
||||
<value>Factory Defaults</value>
|
||||
</data>
|
||||
<data name="FanCurves" xml:space="preserve">
|
||||
<value>Fan Curves</value>
|
||||
</data>
|
||||
<data name="FanProfileCPU" xml:space="preserve">
|
||||
<value>CPU Fan Profile</value>
|
||||
</data>
|
||||
<data name="FanProfileGPU" xml:space="preserve">
|
||||
<value>GPU Fan Profile</value>
|
||||
</data>
|
||||
<data name="FanProfileMid" xml:space="preserve">
|
||||
<value>Mid Fan Profile</value>
|
||||
</data>
|
||||
<data name="FanProfiles" xml:space="preserve">
|
||||
<value>Fan Profiles</value>
|
||||
</data>
|
||||
<data name="FansAndPower" xml:space="preserve">
|
||||
<value>Fans and Power</value>
|
||||
</data>
|
||||
<data name="FanSpeed" xml:space="preserve">
|
||||
<value>Fan</value>
|
||||
</data>
|
||||
<data name="FansPower" xml:space="preserve">
|
||||
<value>Fans + Power</value>
|
||||
</data>
|
||||
<data name="FlickerFreeDimming" xml:space="preserve">
|
||||
<value>Flicker-free Dimming</value>
|
||||
</data>
|
||||
<data name="FnLock" xml:space="preserve">
|
||||
<value>Process Fn+F hotkeys without Fn</value>
|
||||
</data>
|
||||
<data name="FnLockOff" xml:space="preserve">
|
||||
<value>FN-Lock Off</value>
|
||||
</data>
|
||||
<data name="FnLockOn" xml:space="preserve">
|
||||
<value>FN-Lock On</value>
|
||||
</data>
|
||||
<data name="GPUBoost" xml:space="preserve">
|
||||
<value>Dynamic Boost</value>
|
||||
</data>
|
||||
<data name="GPUChanging" xml:space="preserve">
|
||||
<value>Changing</value>
|
||||
</data>
|
||||
<data name="GPUCoreClockOffset" xml:space="preserve">
|
||||
<value>Core Clock Offset</value>
|
||||
</data>
|
||||
<data name="GPUMemoryClockOffset" xml:space="preserve">
|
||||
<value>Memory Clock Offset</value>
|
||||
</data>
|
||||
<data name="GPUMode" xml:space="preserve">
|
||||
<value>GPU Mode</value>
|
||||
</data>
|
||||
<data name="GPUModeEco" xml:space="preserve">
|
||||
<value>iGPU only</value>
|
||||
</data>
|
||||
<data name="GPUModeStandard" xml:space="preserve">
|
||||
<value>iGPU + dGPU</value>
|
||||
</data>
|
||||
<data name="GPUModeUltimate" xml:space="preserve">
|
||||
<value>dGPU exclusive</value>
|
||||
</data>
|
||||
<data name="GPUPower" xml:space="preserve">
|
||||
<value>GPU Power</value>
|
||||
</data>
|
||||
<data name="GPUSettings" xml:space="preserve">
|
||||
<value>GPU Settings</value>
|
||||
</data>
|
||||
<data name="GPUTempTarget" xml:space="preserve">
|
||||
<value>Temperature Target</value>
|
||||
</data>
|
||||
<data name="HibernateAfter" xml:space="preserve">
|
||||
<value>Minutes till Hibernation in sleep on battery (0 - OFF)</value>
|
||||
</data>
|
||||
<data name="High" xml:space="preserve">
|
||||
<value>High</value>
|
||||
</data>
|
||||
<data name="ImageRotation" xml:space="preserve">
|
||||
<value>Image Rotation</value>
|
||||
</data>
|
||||
<data name="Import" xml:space="preserve">
|
||||
<value>Import Profile</value>
|
||||
</data>
|
||||
<data name="KeyBindings" xml:space="preserve">
|
||||
<value>Key Bindings</value>
|
||||
</data>
|
||||
<data name="Keyboard" xml:space="preserve">
|
||||
<value>Keyboard</value>
|
||||
</data>
|
||||
<data name="KillGpuApps" xml:space="preserve">
|
||||
<value>Stop all apps using GPU when switching to Eco</value>
|
||||
</data>
|
||||
<data name="LaptopBacklight" xml:space="preserve">
|
||||
<value>Laptop Backlight</value>
|
||||
</data>
|
||||
<data name="LaptopKeyboard" xml:space="preserve">
|
||||
<value>Laptop Keyboard</value>
|
||||
</data>
|
||||
<data name="LaptopScreen" xml:space="preserve">
|
||||
<value>Laptop Screen</value>
|
||||
</data>
|
||||
<data name="LEDStatusIndicators" xml:space="preserve">
|
||||
<value>LED Status Indicators</value>
|
||||
</data>
|
||||
<data name="Lid" xml:space="preserve">
|
||||
<value>Lid</value>
|
||||
</data>
|
||||
<data name="Lightbar" xml:space="preserve">
|
||||
<value>Lightbar</value>
|
||||
</data>
|
||||
<data name="Lighting" xml:space="preserve">
|
||||
<value>Lighting</value>
|
||||
</data>
|
||||
<data name="LockScreen" xml:space="preserve">
|
||||
<value>Lock Screen</value>
|
||||
</data>
|
||||
<data name="Logo" xml:space="preserve">
|
||||
<value>Logo</value>
|
||||
</data>
|
||||
<data name="Low" xml:space="preserve">
|
||||
<value>Low</value>
|
||||
</data>
|
||||
<data name="LSDeadzones" xml:space="preserve">
|
||||
<value>Left Stick Deadzones</value>
|
||||
</data>
|
||||
<data name="LTDeadzones" xml:space="preserve">
|
||||
<value>Left Trigger Deadzones</value>
|
||||
</data>
|
||||
<data name="MatrixAudio" xml:space="preserve">
|
||||
<value>Audio Visualizer</value>
|
||||
</data>
|
||||
<data name="MatrixBanner" xml:space="preserve">
|
||||
<value>Binary Banner</value>
|
||||
</data>
|
||||
<data name="MatrixBright" xml:space="preserve">
|
||||
<value>Bright</value>
|
||||
</data>
|
||||
<data name="MatrixClock" xml:space="preserve">
|
||||
<value>Clock</value>
|
||||
</data>
|
||||
<data name="MatrixDim" xml:space="preserve">
|
||||
<value>Dim</value>
|
||||
</data>
|
||||
<data name="MatrixLogo" xml:space="preserve">
|
||||
<value>Rog Logo</value>
|
||||
</data>
|
||||
<data name="MatrixMedium" xml:space="preserve">
|
||||
<value>Medium</value>
|
||||
</data>
|
||||
<data name="MatrixOff" xml:space="preserve">
|
||||
<value>Off</value>
|
||||
</data>
|
||||
<data name="MatrixPicture" xml:space="preserve">
|
||||
<value>Picture</value>
|
||||
</data>
|
||||
<data name="MaxRefreshTooltip" xml:space="preserve">
|
||||
<value>Max refresh rate for lower latency</value>
|
||||
</data>
|
||||
<data name="MinRefreshTooltip" xml:space="preserve">
|
||||
<value>60Hz refresh rate to save battery</value>
|
||||
</data>
|
||||
<data name="Minute" xml:space="preserve">
|
||||
<value>Minute</value>
|
||||
</data>
|
||||
<data name="Minutes" xml:space="preserve">
|
||||
<value>Minutes</value>
|
||||
</data>
|
||||
<data name="MouseAngleSnapping" xml:space="preserve">
|
||||
<value>Angle Snapping</value>
|
||||
</data>
|
||||
<data name="MouseAutoPowerOff" xml:space="preserve">
|
||||
<value>Auto Power Off After</value>
|
||||
</data>
|
||||
<data name="MouseButtonResponse" xml:space="preserve">
|
||||
<value>Button Response</value>
|
||||
</data>
|
||||
<data name="MouseImportFailed" xml:space="preserve">
|
||||
<value>Import failed. Selected file is not a valid mouse profile or corrutpted.</value>
|
||||
</data>
|
||||
<data name="MouseLiftOffDistance" xml:space="preserve">
|
||||
<value>Lift Off Distance</value>
|
||||
</data>
|
||||
<data name="MouseLowBatteryWarning" xml:space="preserve">
|
||||
<value>Low Battery Warning at</value>
|
||||
</data>
|
||||
<data name="MousePerformance" xml:space="preserve">
|
||||
<value>Performance</value>
|
||||
</data>
|
||||
<data name="MouseSynchronize" xml:space="preserve">
|
||||
<value>Synchronize with mouse</value>
|
||||
</data>
|
||||
<data name="Multizone" xml:space="preserve">
|
||||
<value>Multi Zone</value>
|
||||
</data>
|
||||
<data name="MultizoneStrong" xml:space="preserve">
|
||||
<value>Multi Zone Strong</value>
|
||||
</data>
|
||||
<data name="Muted" xml:space="preserve">
|
||||
<value>Muted</value>
|
||||
</data>
|
||||
<data name="MuteMic" xml:space="preserve">
|
||||
<value>Mute Mic</value>
|
||||
</data>
|
||||
<data name="Never" xml:space="preserve">
|
||||
<value>Never</value>
|
||||
</data>
|
||||
<data name="NewUpdates" xml:space="preserve">
|
||||
<value>New updates</value>
|
||||
</data>
|
||||
<data name="NoNewUpdates" xml:space="preserve">
|
||||
<value>No new updates</value>
|
||||
</data>
|
||||
<data name="NotConnected" xml:space="preserve">
|
||||
<value>Not Connected</value>
|
||||
</data>
|
||||
<data name="Off" xml:space="preserve">
|
||||
<value>Off</value>
|
||||
</data>
|
||||
<data name="On" xml:space="preserve">
|
||||
<value>On</value>
|
||||
</data>
|
||||
<data name="OneZone" xml:space="preserve">
|
||||
<value>One Zone</value>
|
||||
</data>
|
||||
<data name="OpenGHelper" xml:space="preserve">
|
||||
<value>Open G-Helper window</value>
|
||||
</data>
|
||||
<data name="Optimized" xml:space="preserve">
|
||||
<value>Optimized</value>
|
||||
</data>
|
||||
<data name="OptimizedGPUTooltip" xml:space="preserve">
|
||||
<value>Switch to Eco on battery and to Standard when plugged in</value>
|
||||
</data>
|
||||
<data name="OptimizedUSBC" xml:space="preserve">
|
||||
<value>Keep GPU disabled on USB-C charger in Optimized mode</value>
|
||||
</data>
|
||||
<data name="Other" xml:space="preserve">
|
||||
<value>Other</value>
|
||||
</data>
|
||||
<data name="Overdrive" xml:space="preserve">
|
||||
<value>Overdrive</value>
|
||||
</data>
|
||||
<data name="PerformanceMode" xml:space="preserve">
|
||||
<value>Mode</value>
|
||||
</data>
|
||||
<data name="Peripherals" xml:space="preserve">
|
||||
<value>Peripherals</value>
|
||||
</data>
|
||||
<data name="PictureGif" xml:space="preserve">
|
||||
<value>Picture / Gif</value>
|
||||
</data>
|
||||
<data name="PlayPause" xml:space="preserve">
|
||||
<value>Play / Pause</value>
|
||||
</data>
|
||||
<data name="PollingRate" xml:space="preserve">
|
||||
<value>Polling Rate</value>
|
||||
</data>
|
||||
<data name="PowerLimits" xml:space="preserve">
|
||||
<value>Power Limits</value>
|
||||
</data>
|
||||
<data name="PPTExperimental" xml:space="preserve">
|
||||
<value>Power Limits is an experimental feature. Use carefully and at your own risk!</value>
|
||||
</data>
|
||||
<data name="PrintScreen" xml:space="preserve">
|
||||
<value>PrintScreen</value>
|
||||
</data>
|
||||
<data name="Profile" xml:space="preserve">
|
||||
<value>Profile</value>
|
||||
</data>
|
||||
<data name="Quit" xml:space="preserve">
|
||||
<value>Quit</value>
|
||||
</data>
|
||||
<data name="Reset" xml:space="preserve">
|
||||
<value>Reset</value>
|
||||
</data>
|
||||
<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>
|
||||
</data>
|
||||
<data name="RPM" xml:space="preserve">
|
||||
<value>RPM</value>
|
||||
</data>
|
||||
<data name="RSDeadzones" xml:space="preserve">
|
||||
<value>Right Stick Deadzones</value>
|
||||
</data>
|
||||
<data name="RTDeadzones" xml:space="preserve">
|
||||
<value>Right Trigger Deadzones</value>
|
||||
</data>
|
||||
<data name="RunOnStartup" xml:space="preserve">
|
||||
<value>Run on Startup</value>
|
||||
</data>
|
||||
<data name="ScalingQuality" xml:space="preserve">
|
||||
<value>Scaling Quality</value>
|
||||
</data>
|
||||
<data name="ScreenPadDown" xml:space="preserve">
|
||||
<value>Screenpad Brightness Down</value>
|
||||
</data>
|
||||
<data name="ScreenPadUp" xml:space="preserve">
|
||||
<value>Screenpad Brightness Up</value>
|
||||
</data>
|
||||
<data name="Shutdown" xml:space="preserve">
|
||||
<value>Shutdown</value>
|
||||
</data>
|
||||
<data name="Silent" xml:space="preserve">
|
||||
<value>Silent</value>
|
||||
</data>
|
||||
<data name="Sleep" xml:space="preserve">
|
||||
<value>Sleep</value>
|
||||
</data>
|
||||
<data name="StandardGPUTooltip" xml:space="preserve">
|
||||
<value>Enables dGPU for standard use</value>
|
||||
</data>
|
||||
<data name="StandardMode" xml:space="preserve">
|
||||
<value>Standard</value>
|
||||
</data>
|
||||
<data name="Start" xml:space="preserve">
|
||||
<value>Start</value>
|
||||
</data>
|
||||
<data name="StartingServices" xml:space="preserve">
|
||||
<value>Starting Services</value>
|
||||
</data>
|
||||
<data name="StartupError" xml:space="preserve">
|
||||
<value>Startup Error</value>
|
||||
</data>
|
||||
<data name="Stop" xml:space="preserve">
|
||||
<value>Stop</value>
|
||||
</data>
|
||||
<data name="StopGPUApps" xml:space="preserve">
|
||||
<value>Stop GPU Applications</value>
|
||||
</data>
|
||||
<data name="StoppingServices" xml:space="preserve">
|
||||
<value>Stopping Services</value>
|
||||
</data>
|
||||
<data name="ToggleAura" xml:space="preserve">
|
||||
<value>Toggle Aura</value>
|
||||
</data>
|
||||
<data name="ToggleClamshellMode" xml:space="preserve">
|
||||
<value>Auto Toggle Clamshell Mode</value>
|
||||
</data>
|
||||
<data name="ToggleFnLock" xml:space="preserve">
|
||||
<value>Toggle Fn-Lock</value>
|
||||
</data>
|
||||
<data name="ToggleMiniled" xml:space="preserve">
|
||||
<value>Toggle Miniled (if supported)</value>
|
||||
</data>
|
||||
<data name="ToggleScreen" xml:space="preserve">
|
||||
<value>Toggle Screen</value>
|
||||
</data>
|
||||
<data name="ToggleTouchscreen" xml:space="preserve">
|
||||
<value>Toggle Touchscreen</value>
|
||||
</data>
|
||||
<data name="Touchscreen" xml:space="preserve">
|
||||
<value/>
|
||||
</data>
|
||||
<data name="Turbo" xml:space="preserve">
|
||||
<value>Turbo</value>
|
||||
</data>
|
||||
<data name="TurnedOff" xml:space="preserve">
|
||||
<value>Turned off</value>
|
||||
</data>
|
||||
<data name="TurnOffOnBattery" xml:space="preserve">
|
||||
<value>Disable on battery</value>
|
||||
</data>
|
||||
<data name="UltimateGPUTooltip" xml:space="preserve">
|
||||
<value>Routes laptop screen to dGPU, maximizing FPS</value>
|
||||
</data>
|
||||
<data name="UltimateMode" xml:space="preserve">
|
||||
<value>Ultimate</value>
|
||||
</data>
|
||||
<data name="UndervoltingRisky" xml:space="preserve">
|
||||
<value>Undervolting is an experimental and risky feature. If applied values are too low for your hardware, it can become unstable, shut down or cause data corruption. If you want to try - start from small values first, click Apply and test what works for you.</value>
|
||||
</data>
|
||||
<data name="Unmuted" xml:space="preserve">
|
||||
<value>Unmuted</value>
|
||||
</data>
|
||||
<data name="Updates" xml:space="preserve">
|
||||
<value>Updates</value>
|
||||
</data>
|
||||
<data name="VersionLabel" xml:space="preserve">
|
||||
<value>Version</value>
|
||||
</data>
|
||||
<data name="VibrationStrength" xml:space="preserve">
|
||||
<value>Vibration Strength</value>
|
||||
</data>
|
||||
<data name="VisualMode" xml:space="preserve">
|
||||
<value>Visual Mode</value>
|
||||
</data>
|
||||
<data name="VisualModesHDR" xml:space="preserve">
|
||||
<value>Visual Modes are not available when HDR is active</value>
|
||||
</data>
|
||||
<data name="VisualModesScreen" xml:space="preserve">
|
||||
<value>Visual Modes are not available when laptop screen is off</value>
|
||||
</data>
|
||||
<data name="VolumeDown" xml:space="preserve">
|
||||
<value>Volume Down</value>
|
||||
</data>
|
||||
<data name="VolumeMute" xml:space="preserve">
|
||||
<value>Volume Mute</value>
|
||||
</data>
|
||||
<data name="VolumeUp" xml:space="preserve">
|
||||
<value>Volume Up</value>
|
||||
</data>
|
||||
<data name="WindowTop" xml:space="preserve">
|
||||
<value>Keep app window always on top</value>
|
||||
</data>
|
||||
<data name="Zoom" xml:space="preserve">
|
||||
<value>Zoom</value>
|
||||
</data>
|
||||
</root>
|
||||
@@ -118,16 +118,16 @@
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="Acceleration" xml:space="preserve">
|
||||
<value>Acceleration</value>
|
||||
<value>가속</value>
|
||||
</data>
|
||||
<data name="ACPIError" xml:space="preserve">
|
||||
<value>ASUS ACPI에 연결할 수 없어 응용 프로그램이 작동하지 않습니다. Asus System Control Interface를 먼저 설치하십시오.</value>
|
||||
</data>
|
||||
<data name="AlertAPUMemoryRestart" xml:space="preserve">
|
||||
<value>Restart your device to apply changes</value>
|
||||
<value>변경사항을 적용하려면 기기를 다시 시작하십시오.</value>
|
||||
</data>
|
||||
<data name="AlertAPUMemoryRestartTitle" xml:space="preserve">
|
||||
<value>Restart now?</value>
|
||||
<value>지금 다시 시작하시겠습니까?</value>
|
||||
</data>
|
||||
<data name="AlertDGPU" xml:space="preserve">
|
||||
<value>GPU 사용량이 높습니다. 비활성화 하시겠습니까?</value>
|
||||
@@ -142,7 +142,10 @@
|
||||
<value>Ultimate 모드를 켜기 위해서는 다시 시작해야 합니다.</value>
|
||||
</data>
|
||||
<data name="AlertUltimateTitle" xml:space="preserve">
|
||||
<value>다시 시작하시겠습니까?</value>
|
||||
<value>지금 다시 시작하시겠습니까?</value>
|
||||
</data>
|
||||
<data name="AllyController" xml:space="preserve">
|
||||
<value>Ally 컨트롤러</value>
|
||||
</data>
|
||||
<data name="AnimationSpeed" xml:space="preserve">
|
||||
<value>애니메이션 속도</value>
|
||||
@@ -244,16 +247,28 @@
|
||||
<value>배터리 사용 중에만 60Hz 설정</value>
|
||||
</data>
|
||||
<data name="Awake" xml:space="preserve">
|
||||
<value>절전 모드 해제</value>
|
||||
<value>활성</value>
|
||||
</data>
|
||||
<data name="BacklightLow" xml:space="preserve">
|
||||
<value>낮음</value>
|
||||
</data>
|
||||
<data name="BacklightMax" xml:space="preserve">
|
||||
<value>최대</value>
|
||||
</data>
|
||||
<data name="BacklightMid" xml:space="preserve">
|
||||
<value>중간</value>
|
||||
</data>
|
||||
<data name="BacklightOff" xml:space="preserve">
|
||||
<value>꺼짐</value>
|
||||
</data>
|
||||
<data name="BacklightTimeout" xml:space="preserve">
|
||||
<value>전원 / 배터리 사용 중 자동 꺼짐 시간 (0 - 항상 켜짐)</value>
|
||||
</data>
|
||||
<data name="BacklightTimeoutBattery" xml:space="preserve">
|
||||
<value>Backlight Timeout when on battery</value>
|
||||
<value>배터리 사용 중 백라이트 자동 꺼짐</value>
|
||||
</data>
|
||||
<data name="BacklightTimeoutPlugged" xml:space="preserve">
|
||||
<value>Backlight Timeout when plugged</value>
|
||||
<value>전원 사용 중 백라이트 자동 꺼짐</value>
|
||||
</data>
|
||||
<data name="Balanced" xml:space="preserve">
|
||||
<value>균형</value>
|
||||
@@ -268,7 +283,16 @@
|
||||
<value>배터리 수명</value>
|
||||
</data>
|
||||
<data name="BatteryLimitFull" xml:space="preserve">
|
||||
<value>One time charge to 100%</value>
|
||||
<value>이번만 100%까지 충전</value>
|
||||
</data>
|
||||
<data name="Binding" xml:space="preserve">
|
||||
<value>Binding</value>
|
||||
</data>
|
||||
<data name="BindingPrimary" xml:space="preserve">
|
||||
<value>Primary</value>
|
||||
</data>
|
||||
<data name="BindingSecondary" xml:space="preserve">
|
||||
<value>Secondary</value>
|
||||
</data>
|
||||
<data name="BiosAndDriverUpdates" xml:space="preserve">
|
||||
<value>바이오스/드라이버 업데이트</value>
|
||||
@@ -277,7 +301,7 @@
|
||||
<value>부팅</value>
|
||||
</data>
|
||||
<data name="BootSound" xml:space="preserve">
|
||||
<value>Boot Sound</value>
|
||||
<value>부팅 사운드</value>
|
||||
</data>
|
||||
<data name="Brightness" xml:space="preserve">
|
||||
<value>밝기</value>
|
||||
@@ -288,8 +312,11 @@
|
||||
<data name="BrightnessUp" xml:space="preserve">
|
||||
<value>밝기 증가</value>
|
||||
</data>
|
||||
<data name="BWTrayIcon" xml:space="preserve">
|
||||
<value>흑백 트레이 아이콘</value>
|
||||
</data>
|
||||
<data name="Calibrate" xml:space="preserve">
|
||||
<value>Calibrate</value>
|
||||
<value>보정</value>
|
||||
</data>
|
||||
<data name="Charging" xml:space="preserve">
|
||||
<value>충전 중</value>
|
||||
@@ -297,6 +324,12 @@
|
||||
<data name="Color" xml:space="preserve">
|
||||
<value>색상</value>
|
||||
</data>
|
||||
<data name="Contrast" xml:space="preserve">
|
||||
<value>대비</value>
|
||||
</data>
|
||||
<data name="Controller" xml:space="preserve">
|
||||
<value>컨트롤러</value>
|
||||
</data>
|
||||
<data name="CPUBoost" xml:space="preserve">
|
||||
<value>CPU 부스트</value>
|
||||
</data>
|
||||
@@ -304,17 +337,26 @@
|
||||
<value>사용자 설정</value>
|
||||
</data>
|
||||
<data name="Deceleration" xml:space="preserve">
|
||||
<value>Deceleration</value>
|
||||
<value>감속</value>
|
||||
</data>
|
||||
<data name="Default" xml:space="preserve">
|
||||
<value>기본</value>
|
||||
</data>
|
||||
<data name="DisableController" xml:space="preserve">
|
||||
<value>컨트롤러 비활성화</value>
|
||||
</data>
|
||||
<data name="DisableOnLidClose" xml:space="preserve">
|
||||
<value>덮개를 닫을 시 비활성화</value>
|
||||
</data>
|
||||
<data name="DisableOverdrive" xml:space="preserve">
|
||||
<value>화면 OD 끄기</value>
|
||||
</data>
|
||||
<data name="Discharging" xml:space="preserve">
|
||||
<value>방전 중</value>
|
||||
</data>
|
||||
<data name="DownloadColorProfiles" xml:space="preserve">
|
||||
<value>색 프로필 다운로드</value>
|
||||
</data>
|
||||
<data name="DownloadUpdate" xml:space="preserve">
|
||||
<value>다운로드</value>
|
||||
</data>
|
||||
@@ -327,6 +369,9 @@
|
||||
<data name="EcoMode" xml:space="preserve">
|
||||
<value>Eco</value>
|
||||
</data>
|
||||
<data name="EnableGPUOnShutdown" xml:space="preserve">
|
||||
<value>Enable GPU on shutdown (prevents issue with Eco mode)</value>
|
||||
</data>
|
||||
<data name="EnableOptimusText" xml:space="preserve">
|
||||
<value>NVIDIA 디스플레이 모드가 Optimus로 설정되어 있지 않을 때 Eco 모드로 전환하여 dGPU를 비활성화하면 다시 시작하기 전까지 밝기 조절 문제가 생길 수 있습니다.
|
||||
|
||||
@@ -338,6 +383,9 @@
|
||||
<data name="EnergySettings" xml:space="preserve">
|
||||
<value>Energy Settings</value>
|
||||
</data>
|
||||
<data name="Export" xml:space="preserve">
|
||||
<value>프로필 내보내기</value>
|
||||
</data>
|
||||
<data name="Extra" xml:space="preserve">
|
||||
<value>추가 설정</value>
|
||||
</data>
|
||||
@@ -371,14 +419,23 @@
|
||||
<data name="FansPower" xml:space="preserve">
|
||||
<value>팬 + 전력</value>
|
||||
</data>
|
||||
<data name="FlickerFreeDimming" xml:space="preserve">
|
||||
<value>Flicker-free Dimming</value>
|
||||
</data>
|
||||
<data name="FnLock" xml:space="preserve">
|
||||
<value>Fn 키를 누르지 않고 Fn+F 핫키 작동</value>
|
||||
</data>
|
||||
<data name="FnLockOff" xml:space="preserve">
|
||||
<value>FN-Lock 꺼짐</value>
|
||||
</data>
|
||||
<data name="FnLockOn" xml:space="preserve">
|
||||
<value>FN-Lock 켜짐</value>
|
||||
</data>
|
||||
<data name="GPUBoost" xml:space="preserve">
|
||||
<value>다이나믹 부스트</value>
|
||||
</data>
|
||||
<data name="GPUChanging" xml:space="preserve">
|
||||
<value>충전 중</value>
|
||||
<value>바꾸는 중</value>
|
||||
</data>
|
||||
<data name="GPUCoreClockOffset" xml:space="preserve">
|
||||
<value>코어 클럭 오프셋</value>
|
||||
@@ -398,6 +455,9 @@
|
||||
<data name="GPUModeUltimate" xml:space="preserve">
|
||||
<value>dGPU만 사용</value>
|
||||
</data>
|
||||
<data name="GPUPower" xml:space="preserve">
|
||||
<value>GPU Power</value>
|
||||
</data>
|
||||
<data name="GPUSettings" xml:space="preserve">
|
||||
<value>GPU 설정</value>
|
||||
</data>
|
||||
@@ -410,6 +470,12 @@
|
||||
<data name="High" xml:space="preserve">
|
||||
<value>높게</value>
|
||||
</data>
|
||||
<data name="ImageRotation" xml:space="preserve">
|
||||
<value>이미지 방향</value>
|
||||
</data>
|
||||
<data name="Import" xml:space="preserve">
|
||||
<value>프로필 가져오기</value>
|
||||
</data>
|
||||
<data name="KeyBindings" xml:space="preserve">
|
||||
<value>키 설정</value>
|
||||
</data>
|
||||
@@ -428,6 +494,9 @@
|
||||
<data name="LaptopScreen" xml:space="preserve">
|
||||
<value>화면</value>
|
||||
</data>
|
||||
<data name="LEDStatusIndicators" xml:space="preserve">
|
||||
<value>LED 상태 표시등</value>
|
||||
</data>
|
||||
<data name="Lid" xml:space="preserve">
|
||||
<value>덮개</value>
|
||||
</data>
|
||||
@@ -437,12 +506,21 @@
|
||||
<data name="Lighting" xml:space="preserve">
|
||||
<value>조명</value>
|
||||
</data>
|
||||
<data name="LockScreen" xml:space="preserve">
|
||||
<value>잠금화면</value>
|
||||
</data>
|
||||
<data name="Logo" xml:space="preserve">
|
||||
<value>로고</value>
|
||||
</data>
|
||||
<data name="Low" xml:space="preserve">
|
||||
<value>낮게</value>
|
||||
</data>
|
||||
<data name="LSDeadzones" xml:space="preserve">
|
||||
<value>왼쪽 스틱 데드존</value>
|
||||
</data>
|
||||
<data name="LTDeadzones" xml:space="preserve">
|
||||
<value>왼쪽 트리거 데드존</value>
|
||||
</data>
|
||||
<data name="MatrixAudio" xml:space="preserve">
|
||||
<value>오디오 비주얼라이저</value>
|
||||
</data>
|
||||
@@ -491,6 +569,9 @@
|
||||
<data name="MouseButtonResponse" xml:space="preserve">
|
||||
<value>버튼 응답</value>
|
||||
</data>
|
||||
<data name="MouseImportFailed" xml:space="preserve">
|
||||
<value>Import failed. Selected file is not a valid mouse profile or corrutpted.</value>
|
||||
</data>
|
||||
<data name="MouseLiftOffDistance" xml:space="preserve">
|
||||
<value>들어올림 거리</value>
|
||||
</data>
|
||||
@@ -504,7 +585,13 @@
|
||||
<value>마우스와 동기화</value>
|
||||
</data>
|
||||
<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 name="Muted" xml:space="preserve">
|
||||
<value>음소거</value>
|
||||
</data>
|
||||
<data name="MuteMic" xml:space="preserve">
|
||||
<value>마이크 음소거</value>
|
||||
@@ -521,6 +608,15 @@
|
||||
<data name="NotConnected" xml:space="preserve">
|
||||
<value>연결되지 않음</value>
|
||||
</data>
|
||||
<data name="Off" xml:space="preserve">
|
||||
<value>꺼짐</value>
|
||||
</data>
|
||||
<data name="On" xml:space="preserve">
|
||||
<value>켜짐</value>
|
||||
</data>
|
||||
<data name="OneZone" xml:space="preserve">
|
||||
<value>One Zone</value>
|
||||
</data>
|
||||
<data name="OpenGHelper" xml:space="preserve">
|
||||
<value>G-Helper 열기</value>
|
||||
</data>
|
||||
@@ -569,15 +665,27 @@
|
||||
<data name="Quit" xml:space="preserve">
|
||||
<value>종료</value>
|
||||
</data>
|
||||
<data name="Reset" xml:space="preserve">
|
||||
<value>초기화</value>
|
||||
</data>
|
||||
<data name="RestartGPU" xml:space="preserve">
|
||||
<value>dGPU가 사용중이기 때문에 Eco 모드로 전환할 수 없습니다. 장치 관리자에서 dGPU를 재시작하시겠습니까?</value>
|
||||
</data>
|
||||
<data name="RPM" xml:space="preserve">
|
||||
<value>RPM</value>
|
||||
</data>
|
||||
<data name="RSDeadzones" xml:space="preserve">
|
||||
<value>오른쪽 스틱 데드존</value>
|
||||
</data>
|
||||
<data name="RTDeadzones" xml:space="preserve">
|
||||
<value>오른쪽 트리거 데드존</value>
|
||||
</data>
|
||||
<data name="RunOnStartup" xml:space="preserve">
|
||||
<value>시스템 시작 시 실행</value>
|
||||
</data>
|
||||
<data name="ScalingQuality" xml:space="preserve">
|
||||
<value>Scaling Quality</value>
|
||||
</data>
|
||||
<data name="ScreenPadDown" xml:space="preserve">
|
||||
<value>Screenpad 밝기 감소</value>
|
||||
</data>
|
||||
@@ -585,13 +693,13 @@
|
||||
<value>Screenpad 밝기 증가</value>
|
||||
</data>
|
||||
<data name="Shutdown" xml:space="preserve">
|
||||
<value>시스템 종료</value>
|
||||
<value>종료</value>
|
||||
</data>
|
||||
<data name="Silent" xml:space="preserve">
|
||||
<value>조용</value>
|
||||
</data>
|
||||
<data name="Sleep" xml:space="preserve">
|
||||
<value>절전 모드</value>
|
||||
<value>절전</value>
|
||||
</data>
|
||||
<data name="StandardGPUTooltip" xml:space="preserve">
|
||||
<value>Standard 모드에서 dGPU 켜기</value>
|
||||
@@ -632,6 +740,12 @@
|
||||
<data name="ToggleScreen" xml:space="preserve">
|
||||
<value>화면 전환 키</value>
|
||||
</data>
|
||||
<data name="ToggleTouchscreen" xml:space="preserve">
|
||||
<value>Toggle Touchscreen</value>
|
||||
</data>
|
||||
<data name="Touchscreen" xml:space="preserve">
|
||||
<value/>
|
||||
</data>
|
||||
<data name="Turbo" xml:space="preserve">
|
||||
<value>터보</value>
|
||||
</data>
|
||||
@@ -650,12 +764,27 @@
|
||||
<data name="UndervoltingRisky" xml:space="preserve">
|
||||
<value>언더볼팅은 실험적이며 위험한 기능입니다. 적용 값이 너무 낮은 경우 시스템이 불안정해지고, 강제 종료되거나 데이터 손상을 유발할 수 있습니다. 낮은 값부터 적용하여 잘 작동하는지 확인해 보십시오.</value>
|
||||
</data>
|
||||
<data name="Unmuted" xml:space="preserve">
|
||||
<value>음소거 해제</value>
|
||||
</data>
|
||||
<data name="Updates" xml:space="preserve">
|
||||
<value>업데이트</value>
|
||||
</data>
|
||||
<data name="VersionLabel" xml:space="preserve">
|
||||
<value>버전</value>
|
||||
</data>
|
||||
<data name="VibrationStrength" xml:space="preserve">
|
||||
<value>진동 세기</value>
|
||||
</data>
|
||||
<data name="VisualMode" xml:space="preserve">
|
||||
<value>비주얼 모드</value>
|
||||
</data>
|
||||
<data name="VisualModesHDR" xml:space="preserve">
|
||||
<value>HDR이 켜져 있을 때에는 비주얼 모드를 사용할 수 없습니다.</value>
|
||||
</data>
|
||||
<data name="VisualModesScreen" xml:space="preserve">
|
||||
<value>노트북의 화면이 꺼져 있을 때에는 비주얼 모드를 사용할 수 없습니다.</value>
|
||||
</data>
|
||||
<data name="VolumeDown" xml:space="preserve">
|
||||
<value>볼륨 작게</value>
|
||||
</data>
|
||||
@@ -668,4 +797,7 @@
|
||||
<data name="WindowTop" xml:space="preserve">
|
||||
<value>창을 항상 맨 위로 유지</value>
|
||||
</data>
|
||||
</root>
|
||||
<data name="Zoom" xml:space="preserve">
|
||||
<value>확대/축소</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -127,7 +127,7 @@
|
||||
<value>Restart your device to apply changes</value>
|
||||
</data>
|
||||
<data name="AlertAPUMemoryRestartTitle" xml:space="preserve">
|
||||
<value>Restart now?</value>
|
||||
<value>Paleisti iš naujo?</value>
|
||||
</data>
|
||||
<data name="AlertDGPU" xml:space="preserve">
|
||||
<value>Panašu, kad jūsų GPU yra intensyviai naudojamas. Išjungti jį?</value>
|
||||
@@ -144,6 +144,9 @@
|
||||
<data name="AlertUltimateTitle" xml:space="preserve">
|
||||
<value>Paleisti iš naujo dabar?</value>
|
||||
</data>
|
||||
<data name="AllyController" xml:space="preserve">
|
||||
<value>Ally Controller</value>
|
||||
</data>
|
||||
<data name="AnimationSpeed" xml:space="preserve">
|
||||
<value>Animacijos greitis</value>
|
||||
</data>
|
||||
@@ -246,6 +249,18 @@
|
||||
<data name="Awake" xml:space="preserve">
|
||||
<value>Pabudęs</value>
|
||||
</data>
|
||||
<data name="BacklightLow" xml:space="preserve">
|
||||
<value>Low</value>
|
||||
</data>
|
||||
<data name="BacklightMax" xml:space="preserve">
|
||||
<value>Max</value>
|
||||
</data>
|
||||
<data name="BacklightMid" xml:space="preserve">
|
||||
<value>Mid</value>
|
||||
</data>
|
||||
<data name="BacklightOff" xml:space="preserve">
|
||||
<value>Off</value>
|
||||
</data>
|
||||
<data name="BacklightTimeout" xml:space="preserve">
|
||||
<value>Laiko riba su lizdu / akumuliatoriumi (0 – ĮJUNGTA)</value>
|
||||
</data>
|
||||
@@ -270,6 +285,15 @@
|
||||
<data name="BatteryLimitFull" xml:space="preserve">
|
||||
<value>Vienkartinė įkrova iki 100%</value>
|
||||
</data>
|
||||
<data name="Binding" xml:space="preserve">
|
||||
<value>Binding</value>
|
||||
</data>
|
||||
<data name="BindingPrimary" xml:space="preserve">
|
||||
<value>Pirminis</value>
|
||||
</data>
|
||||
<data name="BindingSecondary" xml:space="preserve">
|
||||
<value>Antrinis</value>
|
||||
</data>
|
||||
<data name="BiosAndDriverUpdates" xml:space="preserve">
|
||||
<value>BIOS ir tvarkyklių naujinimai</value>
|
||||
</data>
|
||||
@@ -288,6 +312,9 @@
|
||||
<data name="BrightnessUp" xml:space="preserve">
|
||||
<value>Ryškumo didinimas</value>
|
||||
</data>
|
||||
<data name="BWTrayIcon" xml:space="preserve">
|
||||
<value>Black and white tray icon</value>
|
||||
</data>
|
||||
<data name="Calibrate" xml:space="preserve">
|
||||
<value>Kalibruoti</value>
|
||||
</data>
|
||||
@@ -297,6 +324,12 @@
|
||||
<data name="Color" xml:space="preserve">
|
||||
<value>Spalva</value>
|
||||
</data>
|
||||
<data name="Contrast" xml:space="preserve">
|
||||
<value>Contrast</value>
|
||||
</data>
|
||||
<data name="Controller" xml:space="preserve">
|
||||
<value>Controller</value>
|
||||
</data>
|
||||
<data name="CPUBoost" xml:space="preserve">
|
||||
<value>CPU spartinimas</value>
|
||||
</data>
|
||||
@@ -309,12 +342,21 @@
|
||||
<data name="Default" xml:space="preserve">
|
||||
<value>Numatytas</value>
|
||||
</data>
|
||||
<data name="DisableController" xml:space="preserve">
|
||||
<value>Disable Controller</value>
|
||||
</data>
|
||||
<data name="DisableOnLidClose" xml:space="preserve">
|
||||
<value>Disable on lid close</value>
|
||||
</data>
|
||||
<data name="DisableOverdrive" xml:space="preserve">
|
||||
<value>Išjungti ekrano pikselių spartinimą</value>
|
||||
</data>
|
||||
<data name="Discharging" xml:space="preserve">
|
||||
<value>Iškrovimas</value>
|
||||
</data>
|
||||
<data name="DownloadColorProfiles" xml:space="preserve">
|
||||
<value>Download Color Profiles</value>
|
||||
</data>
|
||||
<data name="DownloadUpdate" xml:space="preserve">
|
||||
<value>Atsisiųsti</value>
|
||||
</data>
|
||||
@@ -327,6 +369,9 @@
|
||||
<data name="EcoMode" xml:space="preserve">
|
||||
<value>Ekonomiškas</value>
|
||||
</data>
|
||||
<data name="EnableGPUOnShutdown" xml:space="preserve">
|
||||
<value>Enable GPU on shutdown (prevents issue with Eco mode)</value>
|
||||
</data>
|
||||
<data name="EnableOptimusText" xml:space="preserve">
|
||||
<value>Jei ekrano režimas NVIDIA valdymo skyde yra nenustatytas į Optimus, kai dGPU yra išjungtas perjungus į ekonominį režimą, gali kilti problemų su ryškumo valdymu iki kito paleidimo iš naujo.
|
||||
|
||||
@@ -338,6 +383,9 @@ Vis tiek norite tęsti?</value>
|
||||
<data name="EnergySettings" xml:space="preserve">
|
||||
<value>Energijos nustatymai</value>
|
||||
</data>
|
||||
<data name="Export" xml:space="preserve">
|
||||
<value>Export Profile</value>
|
||||
</data>
|
||||
<data name="Extra" xml:space="preserve">
|
||||
<value>Išplėstiniai</value>
|
||||
</data>
|
||||
@@ -371,9 +419,18 @@ Vis tiek norite tęsti?</value>
|
||||
<data name="FansPower" xml:space="preserve">
|
||||
<value>Aušintuvai + galia</value>
|
||||
</data>
|
||||
<data name="FlickerFreeDimming" xml:space="preserve">
|
||||
<value>Flicker-free Dimming</value>
|
||||
</data>
|
||||
<data name="FnLock" xml:space="preserve">
|
||||
<value>Apdoroti Fn+F sparčiuosius klavišus be Fn</value>
|
||||
</data>
|
||||
<data name="FnLockOff" xml:space="preserve">
|
||||
<value>FN-Lock Off</value>
|
||||
</data>
|
||||
<data name="FnLockOn" xml:space="preserve">
|
||||
<value>FN-Lock On</value>
|
||||
</data>
|
||||
<data name="GPUBoost" xml:space="preserve">
|
||||
<value>Dinaminis spartinimas</value>
|
||||
</data>
|
||||
@@ -398,6 +455,9 @@ Vis tiek norite tęsti?</value>
|
||||
<data name="GPUModeUltimate" xml:space="preserve">
|
||||
<value>Tik dGPU</value>
|
||||
</data>
|
||||
<data name="GPUPower" xml:space="preserve">
|
||||
<value>GPU Power</value>
|
||||
</data>
|
||||
<data name="GPUSettings" xml:space="preserve">
|
||||
<value>GPU nustatymai</value>
|
||||
</data>
|
||||
@@ -410,6 +470,12 @@ Vis tiek norite tęsti?</value>
|
||||
<data name="High" xml:space="preserve">
|
||||
<value>Aukštas</value>
|
||||
</data>
|
||||
<data name="ImageRotation" xml:space="preserve">
|
||||
<value>Image Rotation</value>
|
||||
</data>
|
||||
<data name="Import" xml:space="preserve">
|
||||
<value>Import Profile</value>
|
||||
</data>
|
||||
<data name="KeyBindings" xml:space="preserve">
|
||||
<value>Klavišų priskyrimas</value>
|
||||
</data>
|
||||
@@ -428,6 +494,9 @@ Vis tiek norite tęsti?</value>
|
||||
<data name="LaptopScreen" xml:space="preserve">
|
||||
<value>Ekranas</value>
|
||||
</data>
|
||||
<data name="LEDStatusIndicators" xml:space="preserve">
|
||||
<value>LED Status Indicators</value>
|
||||
</data>
|
||||
<data name="Lid" xml:space="preserve">
|
||||
<value>Dangtis</value>
|
||||
</data>
|
||||
@@ -437,12 +506,21 @@ Vis tiek norite tęsti?</value>
|
||||
<data name="Lighting" xml:space="preserve">
|
||||
<value>Apšvietimas</value>
|
||||
</data>
|
||||
<data name="LockScreen" xml:space="preserve">
|
||||
<value>Lock Screen</value>
|
||||
</data>
|
||||
<data name="Logo" xml:space="preserve">
|
||||
<value>Logotipas</value>
|
||||
</data>
|
||||
<data name="Low" xml:space="preserve">
|
||||
<value>Žemas</value>
|
||||
</data>
|
||||
<data name="LSDeadzones" xml:space="preserve">
|
||||
<value>Left Stick Deadzones</value>
|
||||
</data>
|
||||
<data name="LTDeadzones" xml:space="preserve">
|
||||
<value>Left Trigger Deadzones</value>
|
||||
</data>
|
||||
<data name="MatrixAudio" xml:space="preserve">
|
||||
<value>Garso vizualizatorius</value>
|
||||
</data>
|
||||
@@ -491,6 +569,9 @@ Vis tiek norite tęsti?</value>
|
||||
<data name="MouseButtonResponse" xml:space="preserve">
|
||||
<value>Klavišo atsakas</value>
|
||||
</data>
|
||||
<data name="MouseImportFailed" xml:space="preserve">
|
||||
<value>Import failed. Selected file is not a valid mouse profile or corrutpted.</value>
|
||||
</data>
|
||||
<data name="MouseLiftOffDistance" xml:space="preserve">
|
||||
<value>Pakilimo atstumas</value>
|
||||
</data>
|
||||
@@ -504,7 +585,13 @@ Vis tiek norite tęsti?</value>
|
||||
<value>Sinchronizuoti su pele</value>
|
||||
</data>
|
||||
<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 name="Muted" xml:space="preserve">
|
||||
<value>Muted</value>
|
||||
</data>
|
||||
<data name="MuteMic" xml:space="preserve">
|
||||
<value>Mikrofono nutildymas</value>
|
||||
@@ -521,6 +608,15 @@ Vis tiek norite tęsti?</value>
|
||||
<data name="NotConnected" xml:space="preserve">
|
||||
<value>Neprijungta</value>
|
||||
</data>
|
||||
<data name="Off" xml:space="preserve">
|
||||
<value>Off</value>
|
||||
</data>
|
||||
<data name="On" xml:space="preserve">
|
||||
<value>On</value>
|
||||
</data>
|
||||
<data name="OneZone" xml:space="preserve">
|
||||
<value>One Zone</value>
|
||||
</data>
|
||||
<data name="OpenGHelper" xml:space="preserve">
|
||||
<value>Atidaryti G-Helper langą</value>
|
||||
</data>
|
||||
@@ -569,15 +665,27 @@ Vis tiek norite tęsti?</value>
|
||||
<data name="Quit" xml:space="preserve">
|
||||
<value>Išeiti</value>
|
||||
</data>
|
||||
<data name="Reset" xml:space="preserve">
|
||||
<value>Reset</value>
|
||||
</data>
|
||||
<data name="RestartGPU" xml:space="preserve">
|
||||
<value>Kažkas naudoja dGPU ir neleidžia įjungti ekonomiško režimo. Norite leisti G-Helper bandyti iš naujo paleisti dGPU įrenginių tvarkytuvėje? (Tęskite savo rizika)</value>
|
||||
</data>
|
||||
<data name="RPM" xml:space="preserve">
|
||||
<value>RPM</value>
|
||||
</data>
|
||||
<data name="RSDeadzones" xml:space="preserve">
|
||||
<value>Right Stick Deadzones</value>
|
||||
</data>
|
||||
<data name="RTDeadzones" xml:space="preserve">
|
||||
<value>Right Trigger Deadzones</value>
|
||||
</data>
|
||||
<data name="RunOnStartup" xml:space="preserve">
|
||||
<value>Paleisti įjungus sistemą</value>
|
||||
</data>
|
||||
<data name="ScalingQuality" xml:space="preserve">
|
||||
<value>Scaling Quality</value>
|
||||
</data>
|
||||
<data name="ScreenPadDown" xml:space="preserve">
|
||||
<value>Ekrano skydelio ryškumo mažinimas</value>
|
||||
</data>
|
||||
@@ -632,6 +740,12 @@ Vis tiek norite tęsti?</value>
|
||||
<data name="ToggleScreen" xml:space="preserve">
|
||||
<value>Perjungti ekraną</value>
|
||||
</data>
|
||||
<data name="ToggleTouchscreen" xml:space="preserve">
|
||||
<value>Toggle Touchscreen</value>
|
||||
</data>
|
||||
<data name="Touchscreen" xml:space="preserve">
|
||||
<value/>
|
||||
</data>
|
||||
<data name="Turbo" xml:space="preserve">
|
||||
<value>Turbo</value>
|
||||
</data>
|
||||
@@ -650,12 +764,27 @@ Vis tiek norite tęsti?</value>
|
||||
<data name="UndervoltingRisky" xml:space="preserve">
|
||||
<value>Įtampos mažinimas yra eksperimentinė ir pavojinga funkcija. Jei pritaikytos reikšmės yra per mažos jūsų aparatinei įrangai, ji gali tapti nestabili, išsijungti arba pažeisti duomenų vientisumą. Jei norite pabandyti, iš pirmo pradėkite nuo mažų reikšmių, spustelėkite „Taikyti“ ir išbandykite, kas jums tinka.</value>
|
||||
</data>
|
||||
<data name="Unmuted" xml:space="preserve">
|
||||
<value>Unmuted</value>
|
||||
</data>
|
||||
<data name="Updates" xml:space="preserve">
|
||||
<value>Naujinimai</value>
|
||||
</data>
|
||||
<data name="VersionLabel" xml:space="preserve">
|
||||
<value>Versija</value>
|
||||
</data>
|
||||
<data name="VibrationStrength" xml:space="preserve">
|
||||
<value>Vibracijos stiprumas</value>
|
||||
</data>
|
||||
<data name="VisualMode" xml:space="preserve">
|
||||
<value>Vizualinis režimas</value>
|
||||
</data>
|
||||
<data name="VisualModesHDR" xml:space="preserve">
|
||||
<value>Visual Modes are not available when HDR is active</value>
|
||||
</data>
|
||||
<data name="VisualModesScreen" xml:space="preserve">
|
||||
<value>Visual Modes are not available when laptop screen is off</value>
|
||||
</data>
|
||||
<data name="VolumeDown" xml:space="preserve">
|
||||
<value>Garsumo mažinimas</value>
|
||||
</data>
|
||||
@@ -668,4 +797,7 @@ Vis tiek norite tęsti?</value>
|
||||
<data name="WindowTop" xml:space="preserve">
|
||||
<value>Visada rodyti programėlės langą viršuje</value>
|
||||
</data>
|
||||
</root>
|
||||
<data name="Zoom" xml:space="preserve">
|
||||
<value>Zoom</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -144,6 +144,9 @@
|
||||
<data name="AlertUltimateTitle" xml:space="preserve">
|
||||
<value>Uruchomić ponownie teraz?</value>
|
||||
</data>
|
||||
<data name="AllyController" xml:space="preserve">
|
||||
<value>Kontroler Ally</value>
|
||||
</data>
|
||||
<data name="AnimationSpeed" xml:space="preserve">
|
||||
<value>Prędkość animacji</value>
|
||||
</data>
|
||||
@@ -246,6 +249,18 @@
|
||||
<data name="Awake" xml:space="preserve">
|
||||
<value>Włączone</value>
|
||||
</data>
|
||||
<data name="BacklightLow" xml:space="preserve">
|
||||
<value>Niskie</value>
|
||||
</data>
|
||||
<data name="BacklightMax" xml:space="preserve">
|
||||
<value>Wysokie</value>
|
||||
</data>
|
||||
<data name="BacklightMid" xml:space="preserve">
|
||||
<value>Średnie</value>
|
||||
</data>
|
||||
<data name="BacklightOff" xml:space="preserve">
|
||||
<value>Wyłączone</value>
|
||||
</data>
|
||||
<data name="BacklightTimeout" xml:space="preserve">
|
||||
<value>Limit czasu podłączonego / na baterii (0 - Włączony)</value>
|
||||
</data>
|
||||
@@ -270,6 +285,15 @@
|
||||
<data name="BatteryLimitFull" xml:space="preserve">
|
||||
<value>Jednorazowo naładuj do 100%</value>
|
||||
</data>
|
||||
<data name="Binding" xml:space="preserve">
|
||||
<value>Przypisanie klawiszy</value>
|
||||
</data>
|
||||
<data name="BindingPrimary" xml:space="preserve">
|
||||
<value>Podstawowe</value>
|
||||
</data>
|
||||
<data name="BindingSecondary" xml:space="preserve">
|
||||
<value>Drugorzędne</value>
|
||||
</data>
|
||||
<data name="BiosAndDriverUpdates" xml:space="preserve">
|
||||
<value>Aktualizacje BIOS i sterowników</value>
|
||||
</data>
|
||||
@@ -288,6 +312,9 @@
|
||||
<data name="BrightnessUp" xml:space="preserve">
|
||||
<value>Zwiększ jasność</value>
|
||||
</data>
|
||||
<data name="BWTrayIcon" xml:space="preserve">
|
||||
<value>Czarnobiała ikona obszaru powiadomień</value>
|
||||
</data>
|
||||
<data name="Calibrate" xml:space="preserve">
|
||||
<value>Kalibruj</value>
|
||||
</data>
|
||||
@@ -297,6 +324,12 @@
|
||||
<data name="Color" xml:space="preserve">
|
||||
<value>Kolor</value>
|
||||
</data>
|
||||
<data name="Contrast" xml:space="preserve">
|
||||
<value>Kontrast</value>
|
||||
</data>
|
||||
<data name="Controller" xml:space="preserve">
|
||||
<value>Kontroler</value>
|
||||
</data>
|
||||
<data name="CPUBoost" xml:space="preserve">
|
||||
<value>Zwiększenie taktowania CPU</value>
|
||||
</data>
|
||||
@@ -309,12 +342,21 @@
|
||||
<data name="Default" xml:space="preserve">
|
||||
<value>Domyślny</value>
|
||||
</data>
|
||||
<data name="DisableController" xml:space="preserve">
|
||||
<value>Wyłącz kontroler</value>
|
||||
</data>
|
||||
<data name="DisableOnLidClose" xml:space="preserve">
|
||||
<value>Wyłącz po zamknięciu pokrywy</value>
|
||||
</data>
|
||||
<data name="DisableOverdrive" xml:space="preserve">
|
||||
<value>Wyłącz funkcję Overdrive monitora</value>
|
||||
</data>
|
||||
<data name="Discharging" xml:space="preserve">
|
||||
<value>Zużycie mocy</value>
|
||||
</data>
|
||||
<data name="DownloadColorProfiles" xml:space="preserve">
|
||||
<value>Pobieranie profili kolorów</value>
|
||||
</data>
|
||||
<data name="DownloadUpdate" xml:space="preserve">
|
||||
<value>Pobierz</value>
|
||||
</data>
|
||||
@@ -327,6 +369,9 @@
|
||||
<data name="EcoMode" xml:space="preserve">
|
||||
<value>Eco</value>
|
||||
</data>
|
||||
<data name="EnableGPUOnShutdown" xml:space="preserve">
|
||||
<value>Aktywuj GPU przy wyłączaniu (zapobiega problemom z trybem Eco)</value>
|
||||
</data>
|
||||
<data name="EnableOptimusText" xml:space="preserve">
|
||||
<value>Wyłączenie dGPU przez przejście do trybu Eco, podczas gdy tryb wyświetlania w Panelu sterowania NVIDIA nie jest ustawiony na Optimus, może powodować problemy z regulacją jasności do czasu następnego restartu systemu.
|
||||
|
||||
@@ -338,6 +383,9 @@ Nadal chcesz kontynuować?</value>
|
||||
<data name="EnergySettings" xml:space="preserve">
|
||||
<value>Ustawienia zasilania</value>
|
||||
</data>
|
||||
<data name="Export" xml:space="preserve">
|
||||
<value>Eksportuj profil</value>
|
||||
</data>
|
||||
<data name="Extra" xml:space="preserve">
|
||||
<value>Ustawienia</value>
|
||||
</data>
|
||||
@@ -371,9 +419,18 @@ Nadal chcesz kontynuować?</value>
|
||||
<data name="FansPower" xml:space="preserve">
|
||||
<value>Dostosuj</value>
|
||||
</data>
|
||||
<data name="FlickerFreeDimming" xml:space="preserve">
|
||||
<value>Przyciemnianie bez migotania</value>
|
||||
</data>
|
||||
<data name="FnLock" xml:space="preserve">
|
||||
<value>Używaj klawiszy funkcyjnych bez przycisku Fn</value>
|
||||
</data>
|
||||
<data name="FnLockOff" xml:space="preserve">
|
||||
<value>Fn-Lock wył.</value>
|
||||
</data>
|
||||
<data name="FnLockOn" xml:space="preserve">
|
||||
<value>Fn-Lock wł.</value>
|
||||
</data>
|
||||
<data name="GPUBoost" xml:space="preserve">
|
||||
<value>Dynamic Boost</value>
|
||||
</data>
|
||||
@@ -398,6 +455,9 @@ Nadal chcesz kontynuować?</value>
|
||||
<data name="GPUModeUltimate" xml:space="preserve">
|
||||
<value>tylko dGPU</value>
|
||||
</data>
|
||||
<data name="GPUPower" xml:space="preserve">
|
||||
<value>Moc GPU</value>
|
||||
</data>
|
||||
<data name="GPUSettings" xml:space="preserve">
|
||||
<value>Ustawienia GPU</value>
|
||||
</data>
|
||||
@@ -410,6 +470,12 @@ Nadal chcesz kontynuować?</value>
|
||||
<data name="High" xml:space="preserve">
|
||||
<value>Wysoka</value>
|
||||
</data>
|
||||
<data name="ImageRotation" xml:space="preserve">
|
||||
<value>Obracanie obrazu</value>
|
||||
</data>
|
||||
<data name="Import" xml:space="preserve">
|
||||
<value>Importuj profil</value>
|
||||
</data>
|
||||
<data name="KeyBindings" xml:space="preserve">
|
||||
<value>Ustawienia klawiszy skrótów</value>
|
||||
</data>
|
||||
@@ -428,6 +494,9 @@ Nadal chcesz kontynuować?</value>
|
||||
<data name="LaptopScreen" xml:space="preserve">
|
||||
<value>Ekran laptopa</value>
|
||||
</data>
|
||||
<data name="LEDStatusIndicators" xml:space="preserve">
|
||||
<value>Wskaźniki stanu</value>
|
||||
</data>
|
||||
<data name="Lid" xml:space="preserve">
|
||||
<value>Pokrywa</value>
|
||||
</data>
|
||||
@@ -437,12 +506,21 @@ Nadal chcesz kontynuować?</value>
|
||||
<data name="Lighting" xml:space="preserve">
|
||||
<value>Oświetlenie</value>
|
||||
</data>
|
||||
<data name="LockScreen" xml:space="preserve">
|
||||
<value>Ekran blokady</value>
|
||||
</data>
|
||||
<data name="Logo" xml:space="preserve">
|
||||
<value>Logo</value>
|
||||
</data>
|
||||
<data name="Low" xml:space="preserve">
|
||||
<value>Niska</value>
|
||||
</data>
|
||||
<data name="LSDeadzones" xml:space="preserve">
|
||||
<value>Martwe strefy lewego joysticka</value>
|
||||
</data>
|
||||
<data name="LTDeadzones" xml:space="preserve">
|
||||
<value>Martwe strefy lewego triggera</value>
|
||||
</data>
|
||||
<data name="MatrixAudio" xml:space="preserve">
|
||||
<value>Wizualizer muzyki</value>
|
||||
</data>
|
||||
@@ -491,6 +569,9 @@ Nadal chcesz kontynuować?</value>
|
||||
<data name="MouseButtonResponse" xml:space="preserve">
|
||||
<value>Reakcja przycisków</value>
|
||||
</data>
|
||||
<data name="MouseImportFailed" xml:space="preserve">
|
||||
<value>Błąd importu. Wybrany plik jest uszkodzony lub nie jest poprawnym profilem myszy.</value>
|
||||
</data>
|
||||
<data name="MouseLiftOffDistance" xml:space="preserve">
|
||||
<value>Wysokość reakcji sensora</value>
|
||||
</data>
|
||||
@@ -504,7 +585,13 @@ Nadal chcesz kontynuować?</value>
|
||||
<value>Synchronizuj z myszką</value>
|
||||
</data>
|
||||
<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 name="Muted" xml:space="preserve">
|
||||
<value>Wyciszony</value>
|
||||
</data>
|
||||
<data name="MuteMic" xml:space="preserve">
|
||||
<value>Wyciszenie mikrofonu</value>
|
||||
@@ -521,6 +608,15 @@ Nadal chcesz kontynuować?</value>
|
||||
<data name="NotConnected" xml:space="preserve">
|
||||
<value>Nie połączono</value>
|
||||
</data>
|
||||
<data name="Off" xml:space="preserve">
|
||||
<value>Wyłączony</value>
|
||||
</data>
|
||||
<data name="On" xml:space="preserve">
|
||||
<value>Włączony</value>
|
||||
</data>
|
||||
<data name="OneZone" xml:space="preserve">
|
||||
<value>Jedna strefa</value>
|
||||
</data>
|
||||
<data name="OpenGHelper" xml:space="preserve">
|
||||
<value>Otwórz okno G-Helper</value>
|
||||
</data>
|
||||
@@ -569,15 +665,27 @@ Nadal chcesz kontynuować?</value>
|
||||
<data name="Quit" xml:space="preserve">
|
||||
<value>Zamknij</value>
|
||||
</data>
|
||||
<data name="Reset" xml:space="preserve">
|
||||
<value>Reset</value>
|
||||
</data>
|
||||
<data name="RestartGPU" xml:space="preserve">
|
||||
<value>Coś korzysta z dGPU, uniemożliwiając włączenie trybu Eco. Czy G-Helper ma zresetować dGPU w Menadżerze Urządzeń? (Korzystasz na własne ryzyko)</value>
|
||||
</data>
|
||||
<data name="RPM" xml:space="preserve">
|
||||
<value>RPM</value>
|
||||
</data>
|
||||
<data name="RSDeadzones" xml:space="preserve">
|
||||
<value>Martwe strefy prawego joysticka</value>
|
||||
</data>
|
||||
<data name="RTDeadzones" xml:space="preserve">
|
||||
<value>Martwe strefy prawego triggera</value>
|
||||
</data>
|
||||
<data name="RunOnStartup" xml:space="preserve">
|
||||
<value>Uruchom przy starcie</value>
|
||||
</data>
|
||||
<data name="ScalingQuality" xml:space="preserve">
|
||||
<value>Jakość skalowania</value>
|
||||
</data>
|
||||
<data name="ScreenPadDown" xml:space="preserve">
|
||||
<value>Zmniejsz jasność ScreenPad</value>
|
||||
</data>
|
||||
@@ -632,6 +740,12 @@ Nadal chcesz kontynuować?</value>
|
||||
<data name="ToggleScreen" xml:space="preserve">
|
||||
<value>Przełącz ekran</value>
|
||||
</data>
|
||||
<data name="ToggleTouchscreen" xml:space="preserve">
|
||||
<value>Włącz/wyłącz ekran dotykowy</value>
|
||||
</data>
|
||||
<data name="Touchscreen" xml:space="preserve">
|
||||
<value/>
|
||||
</data>
|
||||
<data name="Turbo" xml:space="preserve">
|
||||
<value>Turbo</value>
|
||||
</data>
|
||||
@@ -650,12 +764,27 @@ Nadal chcesz kontynuować?</value>
|
||||
<data name="UndervoltingRisky" xml:space="preserve">
|
||||
<value>Undervolting jest funkcją eksperymentalną i ryzykowną. Jeżeli zastosowane wartości są za niskie dla Twojego urządzenia, może ono działać niestabilnie, wyłączyć się lub uszkodzić dane. Chcąc wypróbować tę funkcję, zacznij od niewielkich wartości, zastosuj je i sprawdź efekt.</value>
|
||||
</data>
|
||||
<data name="Unmuted" xml:space="preserve">
|
||||
<value>Włączony</value>
|
||||
</data>
|
||||
<data name="Updates" xml:space="preserve">
|
||||
<value>Aktualizacje</value>
|
||||
</data>
|
||||
<data name="VersionLabel" xml:space="preserve">
|
||||
<value>Wersja</value>
|
||||
</data>
|
||||
<data name="VibrationStrength" xml:space="preserve">
|
||||
<value>Siła wibracji</value>
|
||||
</data>
|
||||
<data name="VisualMode" xml:space="preserve">
|
||||
<value>Tryb wyświetlania</value>
|
||||
</data>
|
||||
<data name="VisualModesHDR" xml:space="preserve">
|
||||
<value>Tryby wyświetlania nie są dostępne, kiedy HDR jest włączone</value>
|
||||
</data>
|
||||
<data name="VisualModesScreen" xml:space="preserve">
|
||||
<value>Tryby wyświetlania nie są dostępne, kiedy ekran laptopa jest wyłączony</value>
|
||||
</data>
|
||||
<data name="VolumeDown" xml:space="preserve">
|
||||
<value>Zmniejsz głośność</value>
|
||||
</data>
|
||||
@@ -668,4 +797,7 @@ Nadal chcesz kontynuować?</value>
|
||||
<data name="WindowTop" xml:space="preserve">
|
||||
<value>Zachowaj okno aplikacji zawsze na wierzchu</value>
|
||||
</data>
|
||||
</root>
|
||||
<data name="Zoom" xml:space="preserve">
|
||||
<value>Przybliżenie</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -144,6 +144,9 @@
|
||||
<data name="AlertUltimateTitle" xml:space="preserve">
|
||||
<value>Reiniciar agora ?</value>
|
||||
</data>
|
||||
<data name="AllyController" xml:space="preserve">
|
||||
<value>Ally Controller</value>
|
||||
</data>
|
||||
<data name="AnimationSpeed" xml:space="preserve">
|
||||
<value>Velocidade da Animação</value>
|
||||
</data>
|
||||
@@ -246,6 +249,18 @@
|
||||
<data name="Awake" xml:space="preserve">
|
||||
<value>Acordado</value>
|
||||
</data>
|
||||
<data name="BacklightLow" xml:space="preserve">
|
||||
<value>Low</value>
|
||||
</data>
|
||||
<data name="BacklightMax" xml:space="preserve">
|
||||
<value>Max</value>
|
||||
</data>
|
||||
<data name="BacklightMid" xml:space="preserve">
|
||||
<value>Mid</value>
|
||||
</data>
|
||||
<data name="BacklightOff" xml:space="preserve">
|
||||
<value>Off</value>
|
||||
</data>
|
||||
<data name="BacklightTimeout" xml:space="preserve">
|
||||
<value>Tempo limite plugado / na bateria (0 - ligado)</value>
|
||||
</data>
|
||||
@@ -270,6 +285,15 @@
|
||||
<data name="BatteryLimitFull" xml:space="preserve">
|
||||
<value>One time charge to 100%</value>
|
||||
</data>
|
||||
<data name="Binding" xml:space="preserve">
|
||||
<value>Binding</value>
|
||||
</data>
|
||||
<data name="BindingPrimary" xml:space="preserve">
|
||||
<value>Primary</value>
|
||||
</data>
|
||||
<data name="BindingSecondary" xml:space="preserve">
|
||||
<value>Secondary</value>
|
||||
</data>
|
||||
<data name="BiosAndDriverUpdates" xml:space="preserve">
|
||||
<value>BIOS and Driver Updates</value>
|
||||
</data>
|
||||
@@ -288,6 +312,9 @@
|
||||
<data name="BrightnessUp" xml:space="preserve">
|
||||
<value>Brightness Up</value>
|
||||
</data>
|
||||
<data name="BWTrayIcon" xml:space="preserve">
|
||||
<value>Black and white tray icon</value>
|
||||
</data>
|
||||
<data name="Calibrate" xml:space="preserve">
|
||||
<value>Calibrate</value>
|
||||
</data>
|
||||
@@ -297,6 +324,12 @@
|
||||
<data name="Color" xml:space="preserve">
|
||||
<value>Cor</value>
|
||||
</data>
|
||||
<data name="Contrast" xml:space="preserve">
|
||||
<value>Contrast</value>
|
||||
</data>
|
||||
<data name="Controller" xml:space="preserve">
|
||||
<value>Controller</value>
|
||||
</data>
|
||||
<data name="CPUBoost" xml:space="preserve">
|
||||
<value>CPU Boost</value>
|
||||
</data>
|
||||
@@ -309,12 +342,21 @@
|
||||
<data name="Default" xml:space="preserve">
|
||||
<value>Padrão</value>
|
||||
</data>
|
||||
<data name="DisableController" xml:space="preserve">
|
||||
<value>Disable Controller</value>
|
||||
</data>
|
||||
<data name="DisableOnLidClose" xml:space="preserve">
|
||||
<value>Disable on lid close</value>
|
||||
</data>
|
||||
<data name="DisableOverdrive" xml:space="preserve">
|
||||
<value>Desativar o overdrive da tela</value>
|
||||
</data>
|
||||
<data name="Discharging" xml:space="preserve">
|
||||
<value>Descarregando</value>
|
||||
</data>
|
||||
<data name="DownloadColorProfiles" xml:space="preserve">
|
||||
<value>Download Color Profiles</value>
|
||||
</data>
|
||||
<data name="DownloadUpdate" xml:space="preserve">
|
||||
<value>Baixar</value>
|
||||
</data>
|
||||
@@ -327,6 +369,9 @@
|
||||
<data name="EcoMode" xml:space="preserve">
|
||||
<value>Econômico</value>
|
||||
</data>
|
||||
<data name="EnableGPUOnShutdown" xml:space="preserve">
|
||||
<value>Enable GPU on shutdown (prevents issue with Eco mode)</value>
|
||||
</data>
|
||||
<data name="EnableOptimusText" xml:space="preserve">
|
||||
<value>Disabling the dGPU by going into Eco mode while Display Mode in NVIDIA Control Panel is not set to Optimus might cause problems with brightness controls until after the next reboot.
|
||||
|
||||
@@ -338,6 +383,9 @@ Do you still want to continue?</value>
|
||||
<data name="EnergySettings" xml:space="preserve">
|
||||
<value>Energy Settings</value>
|
||||
</data>
|
||||
<data name="Export" xml:space="preserve">
|
||||
<value>Export Profile</value>
|
||||
</data>
|
||||
<data name="Extra" xml:space="preserve">
|
||||
<value>Adicional</value>
|
||||
</data>
|
||||
@@ -371,9 +419,18 @@ Do you still want to continue?</value>
|
||||
<data name="FansPower" xml:space="preserve">
|
||||
<value>Ventiladores + Energía</value>
|
||||
</data>
|
||||
<data name="FlickerFreeDimming" xml:space="preserve">
|
||||
<value>Flicker-free Dimming</value>
|
||||
</data>
|
||||
<data name="FnLock" xml:space="preserve">
|
||||
<value>Processar teclas de atalho Fn+F sem pressionar Fn</value>
|
||||
</data>
|
||||
<data name="FnLockOff" xml:space="preserve">
|
||||
<value>FN-Lock Off</value>
|
||||
</data>
|
||||
<data name="FnLockOn" xml:space="preserve">
|
||||
<value>FN-Lock On</value>
|
||||
</data>
|
||||
<data name="GPUBoost" xml:space="preserve">
|
||||
<value>Boost dinâmico</value>
|
||||
</data>
|
||||
@@ -398,6 +455,9 @@ Do you still want to continue?</value>
|
||||
<data name="GPUModeUltimate" xml:space="preserve">
|
||||
<value>Exclusivamente dGPU</value>
|
||||
</data>
|
||||
<data name="GPUPower" xml:space="preserve">
|
||||
<value>GPU Power</value>
|
||||
</data>
|
||||
<data name="GPUSettings" xml:space="preserve">
|
||||
<value>Parâmetros de GPU</value>
|
||||
</data>
|
||||
@@ -410,6 +470,12 @@ Do you still want to continue?</value>
|
||||
<data name="High" xml:space="preserve">
|
||||
<value>High</value>
|
||||
</data>
|
||||
<data name="ImageRotation" xml:space="preserve">
|
||||
<value>Image Rotation</value>
|
||||
</data>
|
||||
<data name="Import" xml:space="preserve">
|
||||
<value>Import Profile</value>
|
||||
</data>
|
||||
<data name="KeyBindings" xml:space="preserve">
|
||||
<value>Combinações de teclas</value>
|
||||
</data>
|
||||
@@ -428,6 +494,9 @@ Do you still want to continue?</value>
|
||||
<data name="LaptopScreen" xml:space="preserve">
|
||||
<value>Tela</value>
|
||||
</data>
|
||||
<data name="LEDStatusIndicators" xml:space="preserve">
|
||||
<value>LED Status Indicators</value>
|
||||
</data>
|
||||
<data name="Lid" xml:space="preserve">
|
||||
<value>Tampa</value>
|
||||
</data>
|
||||
@@ -437,12 +506,21 @@ Do you still want to continue?</value>
|
||||
<data name="Lighting" xml:space="preserve">
|
||||
<value>Lighting</value>
|
||||
</data>
|
||||
<data name="LockScreen" xml:space="preserve">
|
||||
<value>Lock Screen</value>
|
||||
</data>
|
||||
<data name="Logo" xml:space="preserve">
|
||||
<value>Logo</value>
|
||||
</data>
|
||||
<data name="Low" xml:space="preserve">
|
||||
<value>Low</value>
|
||||
</data>
|
||||
<data name="LSDeadzones" xml:space="preserve">
|
||||
<value>Left Stick Deadzones</value>
|
||||
</data>
|
||||
<data name="LTDeadzones" xml:space="preserve">
|
||||
<value>Left Trigger Deadzones</value>
|
||||
</data>
|
||||
<data name="MatrixAudio" xml:space="preserve">
|
||||
<value>Audio Visualizer</value>
|
||||
</data>
|
||||
@@ -491,6 +569,9 @@ Do you still want to continue?</value>
|
||||
<data name="MouseButtonResponse" xml:space="preserve">
|
||||
<value>Button Response</value>
|
||||
</data>
|
||||
<data name="MouseImportFailed" xml:space="preserve">
|
||||
<value>Import failed. Selected file is not a valid mouse profile or corrutpted.</value>
|
||||
</data>
|
||||
<data name="MouseLiftOffDistance" xml:space="preserve">
|
||||
<value>Lift Off Distance</value>
|
||||
</data>
|
||||
@@ -504,7 +585,13 @@ Do you still want to continue?</value>
|
||||
<value>Synchronize with mouse</value>
|
||||
</data>
|
||||
<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 name="Muted" xml:space="preserve">
|
||||
<value>Muted</value>
|
||||
</data>
|
||||
<data name="MuteMic" xml:space="preserve">
|
||||
<value>Desligar microfone</value>
|
||||
@@ -521,6 +608,15 @@ Do you still want to continue?</value>
|
||||
<data name="NotConnected" xml:space="preserve">
|
||||
<value>Not Connected</value>
|
||||
</data>
|
||||
<data name="Off" xml:space="preserve">
|
||||
<value>Off</value>
|
||||
</data>
|
||||
<data name="On" xml:space="preserve">
|
||||
<value>On</value>
|
||||
</data>
|
||||
<data name="OneZone" xml:space="preserve">
|
||||
<value>One Zone</value>
|
||||
</data>
|
||||
<data name="OpenGHelper" xml:space="preserve">
|
||||
<value>Abrir G-Helper</value>
|
||||
</data>
|
||||
@@ -569,15 +665,27 @@ Do you still want to continue?</value>
|
||||
<data name="Quit" xml:space="preserve">
|
||||
<value>Sair</value>
|
||||
</data>
|
||||
<data name="Reset" xml:space="preserve">
|
||||
<value>Reset</value>
|
||||
</data>
|
||||
<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>
|
||||
</data>
|
||||
<data name="RPM" xml:space="preserve">
|
||||
<value>RPM</value>
|
||||
</data>
|
||||
<data name="RSDeadzones" xml:space="preserve">
|
||||
<value>Right Stick Deadzones</value>
|
||||
</data>
|
||||
<data name="RTDeadzones" xml:space="preserve">
|
||||
<value>Right Trigger Deadzones</value>
|
||||
</data>
|
||||
<data name="RunOnStartup" xml:space="preserve">
|
||||
<value>Executar ao iniciar</value>
|
||||
</data>
|
||||
<data name="ScalingQuality" xml:space="preserve">
|
||||
<value>Scaling Quality</value>
|
||||
</data>
|
||||
<data name="ScreenPadDown" xml:space="preserve">
|
||||
<value>Screenpad Brightness Down</value>
|
||||
</data>
|
||||
@@ -632,6 +740,12 @@ Do you still want to continue?</value>
|
||||
<data name="ToggleScreen" xml:space="preserve">
|
||||
<value>Alternar Tela</value>
|
||||
</data>
|
||||
<data name="ToggleTouchscreen" xml:space="preserve">
|
||||
<value>Toggle Touchscreen</value>
|
||||
</data>
|
||||
<data name="Touchscreen" xml:space="preserve">
|
||||
<value/>
|
||||
</data>
|
||||
<data name="Turbo" xml:space="preserve">
|
||||
<value>Turbo</value>
|
||||
</data>
|
||||
@@ -650,12 +764,27 @@ Do you still want to continue?</value>
|
||||
<data name="UndervoltingRisky" xml:space="preserve">
|
||||
<value>Undervolting is an experimental and risky feature. If applied values are too low for your hardware, it can become unstable, shut down or cause data corruption. If you want to try - start from small values first, click Apply and test what works for you.</value>
|
||||
</data>
|
||||
<data name="Unmuted" xml:space="preserve">
|
||||
<value>Unmuted</value>
|
||||
</data>
|
||||
<data name="Updates" xml:space="preserve">
|
||||
<value>Atualizações</value>
|
||||
</data>
|
||||
<data name="VersionLabel" xml:space="preserve">
|
||||
<value>Versão</value>
|
||||
</data>
|
||||
<data name="VibrationStrength" xml:space="preserve">
|
||||
<value>Vibration Strength</value>
|
||||
</data>
|
||||
<data name="VisualMode" xml:space="preserve">
|
||||
<value>Visual Mode</value>
|
||||
</data>
|
||||
<data name="VisualModesHDR" xml:space="preserve">
|
||||
<value>Visual Modes are not available when HDR is active</value>
|
||||
</data>
|
||||
<data name="VisualModesScreen" xml:space="preserve">
|
||||
<value>Visual Modes are not available when laptop screen is off</value>
|
||||
</data>
|
||||
<data name="VolumeDown" xml:space="preserve">
|
||||
<value>Abaixar o volume</value>
|
||||
</data>
|
||||
@@ -668,4 +797,7 @@ Do you still want to continue?</value>
|
||||
<data name="WindowTop" xml:space="preserve">
|
||||
<value>Manter a janela do aplicativo sempre no topo</value>
|
||||
</data>
|
||||
</root>
|
||||
<data name="Zoom" xml:space="preserve">
|
||||
<value>Zoom</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -144,6 +144,9 @@
|
||||
<data name="AlertUltimateTitle" xml:space="preserve">
|
||||
<value>Reiniciar agora?</value>
|
||||
</data>
|
||||
<data name="AllyController" xml:space="preserve">
|
||||
<value>Ally Controller</value>
|
||||
</data>
|
||||
<data name="AnimationSpeed" xml:space="preserve">
|
||||
<value>Velocidade da Animação</value>
|
||||
</data>
|
||||
@@ -246,6 +249,18 @@
|
||||
<data name="Awake" xml:space="preserve">
|
||||
<value>Acordado</value>
|
||||
</data>
|
||||
<data name="BacklightLow" xml:space="preserve">
|
||||
<value>Low</value>
|
||||
</data>
|
||||
<data name="BacklightMax" xml:space="preserve">
|
||||
<value>Max</value>
|
||||
</data>
|
||||
<data name="BacklightMid" xml:space="preserve">
|
||||
<value>Mid</value>
|
||||
</data>
|
||||
<data name="BacklightOff" xml:space="preserve">
|
||||
<value>Off</value>
|
||||
</data>
|
||||
<data name="BacklightTimeout" xml:space="preserve">
|
||||
<value>Tempo limite ligado à corrente / na bateria (0 - ON)</value>
|
||||
</data>
|
||||
@@ -270,6 +285,15 @@
|
||||
<data name="BatteryLimitFull" xml:space="preserve">
|
||||
<value>Carregamento único até 100%</value>
|
||||
</data>
|
||||
<data name="Binding" xml:space="preserve">
|
||||
<value>Binding</value>
|
||||
</data>
|
||||
<data name="BindingPrimary" xml:space="preserve">
|
||||
<value>Primary</value>
|
||||
</data>
|
||||
<data name="BindingSecondary" xml:space="preserve">
|
||||
<value>Secondary</value>
|
||||
</data>
|
||||
<data name="BiosAndDriverUpdates" xml:space="preserve">
|
||||
<value>Atualizações de Drivers e da BIOS</value>
|
||||
</data>
|
||||
@@ -288,6 +312,9 @@
|
||||
<data name="BrightnessUp" xml:space="preserve">
|
||||
<value>Aumentar o brilho</value>
|
||||
</data>
|
||||
<data name="BWTrayIcon" xml:space="preserve">
|
||||
<value>Black and white tray icon</value>
|
||||
</data>
|
||||
<data name="Calibrate" xml:space="preserve">
|
||||
<value>Calibrar</value>
|
||||
</data>
|
||||
@@ -297,6 +324,12 @@
|
||||
<data name="Color" xml:space="preserve">
|
||||
<value>Cor</value>
|
||||
</data>
|
||||
<data name="Contrast" xml:space="preserve">
|
||||
<value>Contrast</value>
|
||||
</data>
|
||||
<data name="Controller" xml:space="preserve">
|
||||
<value>Controller</value>
|
||||
</data>
|
||||
<data name="CPUBoost" xml:space="preserve">
|
||||
<value>Turbo do CPU</value>
|
||||
</data>
|
||||
@@ -309,12 +342,21 @@
|
||||
<data name="Default" xml:space="preserve">
|
||||
<value>Padrão</value>
|
||||
</data>
|
||||
<data name="DisableController" xml:space="preserve">
|
||||
<value>Disable Controller</value>
|
||||
</data>
|
||||
<data name="DisableOnLidClose" xml:space="preserve">
|
||||
<value>Disable on lid close</value>
|
||||
</data>
|
||||
<data name="DisableOverdrive" xml:space="preserve">
|
||||
<value>Desativar o overdrive do ecrã</value>
|
||||
</data>
|
||||
<data name="Discharging" xml:space="preserve">
|
||||
<value>Descarregando</value>
|
||||
</data>
|
||||
<data name="DownloadColorProfiles" xml:space="preserve">
|
||||
<value>Download Color Profiles</value>
|
||||
</data>
|
||||
<data name="DownloadUpdate" xml:space="preserve">
|
||||
<value>Transferir</value>
|
||||
</data>
|
||||
@@ -327,6 +369,9 @@
|
||||
<data name="EcoMode" xml:space="preserve">
|
||||
<value>Económico</value>
|
||||
</data>
|
||||
<data name="EnableGPUOnShutdown" xml:space="preserve">
|
||||
<value>Enable GPU on shutdown (prevents issue with Eco mode)</value>
|
||||
</data>
|
||||
<data name="EnableOptimusText" xml:space="preserve">
|
||||
<value>Desativar a dGPU por ativar o modo Eco enquanto o Modo de Ecrã no Painel de Controlo da NVIDIA não está definido para Optimus pode causar problemas com os controlos do brilho do painel até ao próximo reinício.
|
||||
|
||||
@@ -338,6 +383,9 @@ Quer prosseguir?</value>
|
||||
<data name="EnergySettings" xml:space="preserve">
|
||||
<value>Configurações de Energia</value>
|
||||
</data>
|
||||
<data name="Export" xml:space="preserve">
|
||||
<value>Export Profile</value>
|
||||
</data>
|
||||
<data name="Extra" xml:space="preserve">
|
||||
<value>Adicional</value>
|
||||
</data>
|
||||
@@ -371,9 +419,18 @@ Quer prosseguir?</value>
|
||||
<data name="FansPower" xml:space="preserve">
|
||||
<value>Ventoinhas + Potência</value>
|
||||
</data>
|
||||
<data name="FlickerFreeDimming" xml:space="preserve">
|
||||
<value>Flicker-free Dimming</value>
|
||||
</data>
|
||||
<data name="FnLock" xml:space="preserve">
|
||||
<value>Processar teclas de atalho Fn+F sem pressionar Fn</value>
|
||||
</data>
|
||||
<data name="FnLockOff" xml:space="preserve">
|
||||
<value>FN-Lock Off</value>
|
||||
</data>
|
||||
<data name="FnLockOn" xml:space="preserve">
|
||||
<value>FN-Lock On</value>
|
||||
</data>
|
||||
<data name="GPUBoost" xml:space="preserve">
|
||||
<value>Boost dinâmico</value>
|
||||
</data>
|
||||
@@ -398,6 +455,9 @@ Quer prosseguir?</value>
|
||||
<data name="GPUModeUltimate" xml:space="preserve">
|
||||
<value>Exclusivamente dGPU</value>
|
||||
</data>
|
||||
<data name="GPUPower" xml:space="preserve">
|
||||
<value>GPU Power</value>
|
||||
</data>
|
||||
<data name="GPUSettings" xml:space="preserve">
|
||||
<value>Parâmetros de GPU</value>
|
||||
</data>
|
||||
@@ -410,6 +470,12 @@ Quer prosseguir?</value>
|
||||
<data name="High" xml:space="preserve">
|
||||
<value>Alto</value>
|
||||
</data>
|
||||
<data name="ImageRotation" xml:space="preserve">
|
||||
<value>Image Rotation</value>
|
||||
</data>
|
||||
<data name="Import" xml:space="preserve">
|
||||
<value>Import Profile</value>
|
||||
</data>
|
||||
<data name="KeyBindings" xml:space="preserve">
|
||||
<value>Combinações de teclas</value>
|
||||
</data>
|
||||
@@ -428,6 +494,9 @@ Quer prosseguir?</value>
|
||||
<data name="LaptopScreen" xml:space="preserve">
|
||||
<value>Ecrã</value>
|
||||
</data>
|
||||
<data name="LEDStatusIndicators" xml:space="preserve">
|
||||
<value>LED Status Indicators</value>
|
||||
</data>
|
||||
<data name="Lid" xml:space="preserve">
|
||||
<value>Tampa</value>
|
||||
</data>
|
||||
@@ -437,12 +506,21 @@ Quer prosseguir?</value>
|
||||
<data name="Lighting" xml:space="preserve">
|
||||
<value>Iluminação</value>
|
||||
</data>
|
||||
<data name="LockScreen" xml:space="preserve">
|
||||
<value>Lock Screen</value>
|
||||
</data>
|
||||
<data name="Logo" xml:space="preserve">
|
||||
<value>Logo</value>
|
||||
</data>
|
||||
<data name="Low" xml:space="preserve">
|
||||
<value>Baixo</value>
|
||||
</data>
|
||||
<data name="LSDeadzones" xml:space="preserve">
|
||||
<value>Left Stick Deadzones</value>
|
||||
</data>
|
||||
<data name="LTDeadzones" xml:space="preserve">
|
||||
<value>Left Trigger Deadzones</value>
|
||||
</data>
|
||||
<data name="MatrixAudio" xml:space="preserve">
|
||||
<value>Visualizador de áudio</value>
|
||||
</data>
|
||||
@@ -491,6 +569,9 @@ Quer prosseguir?</value>
|
||||
<data name="MouseButtonResponse" xml:space="preserve">
|
||||
<value>Button Response</value>
|
||||
</data>
|
||||
<data name="MouseImportFailed" xml:space="preserve">
|
||||
<value>Import failed. Selected file is not a valid mouse profile or corrutpted.</value>
|
||||
</data>
|
||||
<data name="MouseLiftOffDistance" xml:space="preserve">
|
||||
<value>Distância de Lift Off</value>
|
||||
</data>
|
||||
@@ -504,7 +585,13 @@ Quer prosseguir?</value>
|
||||
<value>Sincronizar com o rato</value>
|
||||
</data>
|
||||
<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 name="Muted" xml:space="preserve">
|
||||
<value>Muted</value>
|
||||
</data>
|
||||
<data name="MuteMic" xml:space="preserve">
|
||||
<value>Desligar microfone</value>
|
||||
@@ -521,6 +608,15 @@ Quer prosseguir?</value>
|
||||
<data name="NotConnected" xml:space="preserve">
|
||||
<value>Não conectado</value>
|
||||
</data>
|
||||
<data name="Off" xml:space="preserve">
|
||||
<value>Off</value>
|
||||
</data>
|
||||
<data name="On" xml:space="preserve">
|
||||
<value>On</value>
|
||||
</data>
|
||||
<data name="OneZone" xml:space="preserve">
|
||||
<value>One Zone</value>
|
||||
</data>
|
||||
<data name="OpenGHelper" xml:space="preserve">
|
||||
<value>Abrir G-Helper</value>
|
||||
</data>
|
||||
@@ -569,15 +665,27 @@ Quer prosseguir?</value>
|
||||
<data name="Quit" xml:space="preserve">
|
||||
<value>Sair</value>
|
||||
</data>
|
||||
<data name="Reset" xml:space="preserve">
|
||||
<value>Reset</value>
|
||||
</data>
|
||||
<data name="RestartGPU" xml:space="preserve">
|
||||
<value>Algum processo está a utilizar a dGPU, impedindo o modo Eco. Deixar o G-Helper tentar reiniciar a dGPU no gestor de dispositivos? (Proceda por sua conta e risco)</value>
|
||||
</data>
|
||||
<data name="RPM" xml:space="preserve">
|
||||
<value>RPM</value>
|
||||
</data>
|
||||
<data name="RSDeadzones" xml:space="preserve">
|
||||
<value>Right Stick Deadzones</value>
|
||||
</data>
|
||||
<data name="RTDeadzones" xml:space="preserve">
|
||||
<value>Right Trigger Deadzones</value>
|
||||
</data>
|
||||
<data name="RunOnStartup" xml:space="preserve">
|
||||
<value>Executar ao iniciar</value>
|
||||
</data>
|
||||
<data name="ScalingQuality" xml:space="preserve">
|
||||
<value>Scaling Quality</value>
|
||||
</data>
|
||||
<data name="ScreenPadDown" xml:space="preserve">
|
||||
<value>Diminuir o brilho do ScreenPad</value>
|
||||
</data>
|
||||
@@ -632,6 +740,12 @@ Quer prosseguir?</value>
|
||||
<data name="ToggleScreen" xml:space="preserve">
|
||||
<value>Alternar Ecrã</value>
|
||||
</data>
|
||||
<data name="ToggleTouchscreen" xml:space="preserve">
|
||||
<value>Toggle Touchscreen</value>
|
||||
</data>
|
||||
<data name="Touchscreen" xml:space="preserve">
|
||||
<value/>
|
||||
</data>
|
||||
<data name="Turbo" xml:space="preserve">
|
||||
<value>Turbo</value>
|
||||
</data>
|
||||
@@ -650,12 +764,27 @@ Quer prosseguir?</value>
|
||||
<data name="UndervoltingRisky" xml:space="preserve">
|
||||
<value>Undervolting é uma funcionalidade experimental e arriscada. Se os valores aplicados foram baixos para o hardware, podem existir instabilidades, desligar e causar corrupção de dados. Caso queira, comece por valores pequenos no início, clique em Aplicar e teste o que funciona para o hardware.</value>
|
||||
</data>
|
||||
<data name="Unmuted" xml:space="preserve">
|
||||
<value>Unmuted</value>
|
||||
</data>
|
||||
<data name="Updates" xml:space="preserve">
|
||||
<value>Atualizações</value>
|
||||
</data>
|
||||
<data name="VersionLabel" xml:space="preserve">
|
||||
<value>Versão</value>
|
||||
</data>
|
||||
<data name="VibrationStrength" xml:space="preserve">
|
||||
<value>Vibration Strength</value>
|
||||
</data>
|
||||
<data name="VisualMode" xml:space="preserve">
|
||||
<value>Visual Mode</value>
|
||||
</data>
|
||||
<data name="VisualModesHDR" xml:space="preserve">
|
||||
<value>Visual Modes are not available when HDR is active</value>
|
||||
</data>
|
||||
<data name="VisualModesScreen" xml:space="preserve">
|
||||
<value>Visual Modes are not available when laptop screen is off</value>
|
||||
</data>
|
||||
<data name="VolumeDown" xml:space="preserve">
|
||||
<value>Diminuir o volume</value>
|
||||
</data>
|
||||
@@ -668,4 +797,7 @@ Quer prosseguir?</value>
|
||||
<data name="WindowTop" xml:space="preserve">
|
||||
<value>Manter a janela do aplicativo sempre no topo</value>
|
||||
</data>
|
||||
</root>
|
||||
<data name="Zoom" xml:space="preserve">
|
||||
<value>Zoom</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -144,6 +144,9 @@
|
||||
<data name="AlertUltimateTitle" xml:space="preserve">
|
||||
<value>Reboot now?</value>
|
||||
</data>
|
||||
<data name="AllyController" xml:space="preserve">
|
||||
<value>Ally Controller</value>
|
||||
</data>
|
||||
<data name="AnimationSpeed" xml:space="preserve">
|
||||
<value>Animation Speed</value>
|
||||
</data>
|
||||
@@ -246,6 +249,18 @@
|
||||
<data name="Awake" xml:space="preserve">
|
||||
<value>Awake</value>
|
||||
</data>
|
||||
<data name="BacklightLow" xml:space="preserve">
|
||||
<value>Low</value>
|
||||
</data>
|
||||
<data name="BacklightMax" xml:space="preserve">
|
||||
<value>Max</value>
|
||||
</data>
|
||||
<data name="BacklightMid" xml:space="preserve">
|
||||
<value>Mid</value>
|
||||
</data>
|
||||
<data name="BacklightOff" xml:space="preserve">
|
||||
<value>Off</value>
|
||||
</data>
|
||||
<data name="BacklightTimeout" xml:space="preserve">
|
||||
<value>Timeout plugged / on battery (0 - ON)</value>
|
||||
</data>
|
||||
@@ -270,6 +285,15 @@
|
||||
<data name="BatteryLimitFull" xml:space="preserve">
|
||||
<value>One time charge to 100%</value>
|
||||
</data>
|
||||
<data name="Binding" xml:space="preserve">
|
||||
<value>Binding</value>
|
||||
</data>
|
||||
<data name="BindingPrimary" xml:space="preserve">
|
||||
<value>Primary</value>
|
||||
</data>
|
||||
<data name="BindingSecondary" xml:space="preserve">
|
||||
<value>Secondary</value>
|
||||
</data>
|
||||
<data name="BiosAndDriverUpdates" xml:space="preserve">
|
||||
<value>BIOS and Driver Updates</value>
|
||||
</data>
|
||||
@@ -288,6 +312,9 @@
|
||||
<data name="BrightnessUp" xml:space="preserve">
|
||||
<value>Brightness Up</value>
|
||||
</data>
|
||||
<data name="BWTrayIcon" xml:space="preserve">
|
||||
<value>Black and white tray icon</value>
|
||||
</data>
|
||||
<data name="Calibrate" xml:space="preserve">
|
||||
<value>Calibrate</value>
|
||||
</data>
|
||||
@@ -297,6 +324,12 @@
|
||||
<data name="Color" xml:space="preserve">
|
||||
<value>Color</value>
|
||||
</data>
|
||||
<data name="Contrast" xml:space="preserve">
|
||||
<value>Contrast</value>
|
||||
</data>
|
||||
<data name="Controller" xml:space="preserve">
|
||||
<value>Controller</value>
|
||||
</data>
|
||||
<data name="CPUBoost" xml:space="preserve">
|
||||
<value>CPU Boost</value>
|
||||
</data>
|
||||
@@ -309,12 +342,21 @@
|
||||
<data name="Default" xml:space="preserve">
|
||||
<value>Default</value>
|
||||
</data>
|
||||
<data name="DisableController" xml:space="preserve">
|
||||
<value>Disable Controller</value>
|
||||
</data>
|
||||
<data name="DisableOnLidClose" xml:space="preserve">
|
||||
<value>Disable on lid close</value>
|
||||
</data>
|
||||
<data name="DisableOverdrive" xml:space="preserve">
|
||||
<value>Disable screen overdrive</value>
|
||||
</data>
|
||||
<data name="Discharging" xml:space="preserve">
|
||||
<value>Discharging</value>
|
||||
</data>
|
||||
<data name="DownloadColorProfiles" xml:space="preserve">
|
||||
<value>Download Color Profiles</value>
|
||||
</data>
|
||||
<data name="DownloadUpdate" xml:space="preserve">
|
||||
<value>Download</value>
|
||||
</data>
|
||||
@@ -327,6 +369,9 @@
|
||||
<data name="EcoMode" xml:space="preserve">
|
||||
<value>Eco</value>
|
||||
</data>
|
||||
<data name="EnableGPUOnShutdown" xml:space="preserve">
|
||||
<value>Enable GPU on shutdown (prevents issue with Eco mode)</value>
|
||||
</data>
|
||||
<data name="EnableOptimusText" xml:space="preserve">
|
||||
<value>Disabling the dGPU by going into Eco mode while Display Mode in NVIDIA Control Panel is not set to Optimus might cause problems with brightness controls until after the next reboot.
|
||||
|
||||
@@ -338,6 +383,9 @@ Do you still want to continue?</value>
|
||||
<data name="EnergySettings" xml:space="preserve">
|
||||
<value>Energy Settings</value>
|
||||
</data>
|
||||
<data name="Export" xml:space="preserve">
|
||||
<value>Export Profile</value>
|
||||
</data>
|
||||
<data name="Extra" xml:space="preserve">
|
||||
<value>Extra</value>
|
||||
</data>
|
||||
@@ -371,9 +419,18 @@ Do you still want to continue?</value>
|
||||
<data name="FansPower" xml:space="preserve">
|
||||
<value>Fans + Power</value>
|
||||
</data>
|
||||
<data name="FlickerFreeDimming" xml:space="preserve">
|
||||
<value>Flicker-free Dimming</value>
|
||||
</data>
|
||||
<data name="FnLock" xml:space="preserve">
|
||||
<value>Process Fn+F hotkeys without Fn</value>
|
||||
</data>
|
||||
<data name="FnLockOff" xml:space="preserve">
|
||||
<value>FN-Lock Off</value>
|
||||
</data>
|
||||
<data name="FnLockOn" xml:space="preserve">
|
||||
<value>FN-Lock On</value>
|
||||
</data>
|
||||
<data name="GPUBoost" xml:space="preserve">
|
||||
<value>Dynamic Boost</value>
|
||||
</data>
|
||||
@@ -398,6 +455,9 @@ Do you still want to continue?</value>
|
||||
<data name="GPUModeUltimate" xml:space="preserve">
|
||||
<value>dGPU exclusive</value>
|
||||
</data>
|
||||
<data name="GPUPower" xml:space="preserve">
|
||||
<value>GPU Power</value>
|
||||
</data>
|
||||
<data name="GPUSettings" xml:space="preserve">
|
||||
<value>GPU Settings</value>
|
||||
</data>
|
||||
@@ -410,6 +470,12 @@ Do you still want to continue?</value>
|
||||
<data name="High" xml:space="preserve">
|
||||
<value>High</value>
|
||||
</data>
|
||||
<data name="ImageRotation" xml:space="preserve">
|
||||
<value>Image Rotation</value>
|
||||
</data>
|
||||
<data name="Import" xml:space="preserve">
|
||||
<value>Import Profile</value>
|
||||
</data>
|
||||
<data name="KeyBindings" xml:space="preserve">
|
||||
<value>Key Bindings</value>
|
||||
</data>
|
||||
@@ -428,6 +494,9 @@ Do you still want to continue?</value>
|
||||
<data name="LaptopScreen" xml:space="preserve">
|
||||
<value>Laptop Screen</value>
|
||||
</data>
|
||||
<data name="LEDStatusIndicators" xml:space="preserve">
|
||||
<value>LED Status Indicators</value>
|
||||
</data>
|
||||
<data name="Lid" xml:space="preserve">
|
||||
<value>Lid</value>
|
||||
</data>
|
||||
@@ -437,12 +506,21 @@ Do you still want to continue?</value>
|
||||
<data name="Lighting" xml:space="preserve">
|
||||
<value>Lighting</value>
|
||||
</data>
|
||||
<data name="LockScreen" xml:space="preserve">
|
||||
<value>Lock Screen</value>
|
||||
</data>
|
||||
<data name="Logo" xml:space="preserve">
|
||||
<value>Logo</value>
|
||||
</data>
|
||||
<data name="Low" xml:space="preserve">
|
||||
<value>Low</value>
|
||||
</data>
|
||||
<data name="LSDeadzones" xml:space="preserve">
|
||||
<value>Left Stick Deadzones</value>
|
||||
</data>
|
||||
<data name="LTDeadzones" xml:space="preserve">
|
||||
<value>Left Trigger Deadzones</value>
|
||||
</data>
|
||||
<data name="MatrixAudio" xml:space="preserve">
|
||||
<value>Audio Visualizer</value>
|
||||
</data>
|
||||
@@ -491,6 +569,9 @@ Do you still want to continue?</value>
|
||||
<data name="MouseButtonResponse" xml:space="preserve">
|
||||
<value>Button Response</value>
|
||||
</data>
|
||||
<data name="MouseImportFailed" xml:space="preserve">
|
||||
<value>Import failed. Selected file is not a valid mouse profile or corrutpted.</value>
|
||||
</data>
|
||||
<data name="MouseLiftOffDistance" xml:space="preserve">
|
||||
<value>Lift Off Distance</value>
|
||||
</data>
|
||||
@@ -504,7 +585,13 @@ Do you still want to continue?</value>
|
||||
<value>Synchronize with mouse</value>
|
||||
</data>
|
||||
<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 name="Muted" xml:space="preserve">
|
||||
<value>Muted</value>
|
||||
</data>
|
||||
<data name="MuteMic" xml:space="preserve">
|
||||
<value>Mute Mic</value>
|
||||
@@ -521,6 +608,15 @@ Do you still want to continue?</value>
|
||||
<data name="NotConnected" xml:space="preserve">
|
||||
<value>Not Connected</value>
|
||||
</data>
|
||||
<data name="Off" xml:space="preserve">
|
||||
<value>Off</value>
|
||||
</data>
|
||||
<data name="On" xml:space="preserve">
|
||||
<value>On</value>
|
||||
</data>
|
||||
<data name="OneZone" xml:space="preserve">
|
||||
<value>One Zone</value>
|
||||
</data>
|
||||
<data name="OpenGHelper" xml:space="preserve">
|
||||
<value>Open G-Helper window</value>
|
||||
</data>
|
||||
@@ -528,7 +624,7 @@ Do you still want to continue?</value>
|
||||
<value>Optimized</value>
|
||||
</data>
|
||||
<data name="OptimizedGPUTooltip" xml:space="preserve">
|
||||
<value>Switch to Eco on battery and to Standard when plugged</value>
|
||||
<value>Switch to Eco on battery and to Standard when plugged in</value>
|
||||
</data>
|
||||
<data name="OptimizedUSBC" xml:space="preserve">
|
||||
<value>Keep GPU disabled on USB-C charger in Optimized mode</value>
|
||||
@@ -569,15 +665,27 @@ Do you still want to continue?</value>
|
||||
<data name="Quit" xml:space="preserve">
|
||||
<value>Quit</value>
|
||||
</data>
|
||||
<data name="Reset" xml:space="preserve">
|
||||
<value>Reset</value>
|
||||
</data>
|
||||
<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>
|
||||
</data>
|
||||
<data name="RPM" xml:space="preserve">
|
||||
<value>RPM</value>
|
||||
</data>
|
||||
<data name="RSDeadzones" xml:space="preserve">
|
||||
<value>Right Stick Deadzones</value>
|
||||
</data>
|
||||
<data name="RTDeadzones" xml:space="preserve">
|
||||
<value>Right Trigger Deadzones</value>
|
||||
</data>
|
||||
<data name="RunOnStartup" xml:space="preserve">
|
||||
<value>Run on Startup</value>
|
||||
</data>
|
||||
<data name="ScalingQuality" xml:space="preserve">
|
||||
<value>Scaling Quality</value>
|
||||
</data>
|
||||
<data name="ScreenPadDown" xml:space="preserve">
|
||||
<value>Screenpad Brightness Down</value>
|
||||
</data>
|
||||
@@ -632,6 +740,12 @@ Do you still want to continue?</value>
|
||||
<data name="ToggleScreen" xml:space="preserve">
|
||||
<value>Toggle Screen</value>
|
||||
</data>
|
||||
<data name="ToggleTouchscreen" xml:space="preserve">
|
||||
<value>Toggle Touchscreen</value>
|
||||
</data>
|
||||
<data name="Touchscreen" xml:space="preserve">
|
||||
<value />
|
||||
</data>
|
||||
<data name="Turbo" xml:space="preserve">
|
||||
<value>Turbo</value>
|
||||
</data>
|
||||
@@ -639,7 +753,7 @@ Do you still want to continue?</value>
|
||||
<value>Turned off</value>
|
||||
</data>
|
||||
<data name="TurnOffOnBattery" xml:space="preserve">
|
||||
<value>Turn off on battery</value>
|
||||
<value>Disable on battery</value>
|
||||
</data>
|
||||
<data name="UltimateGPUTooltip" xml:space="preserve">
|
||||
<value>Routes laptop screen to dGPU, maximizing FPS</value>
|
||||
@@ -650,12 +764,27 @@ Do you still want to continue?</value>
|
||||
<data name="UndervoltingRisky" xml:space="preserve">
|
||||
<value>Undervolting is an experimental and risky feature. If applied values are too low for your hardware, it can become unstable, shut down or cause data corruption. If you want to try - start from small values first, click Apply and test what works for you.</value>
|
||||
</data>
|
||||
<data name="Unmuted" xml:space="preserve">
|
||||
<value>Unmuted</value>
|
||||
</data>
|
||||
<data name="Updates" xml:space="preserve">
|
||||
<value>Updates</value>
|
||||
</data>
|
||||
<data name="VersionLabel" xml:space="preserve">
|
||||
<value>Version</value>
|
||||
</data>
|
||||
<data name="VibrationStrength" xml:space="preserve">
|
||||
<value>Vibration Strength</value>
|
||||
</data>
|
||||
<data name="VisualMode" xml:space="preserve">
|
||||
<value>Visual Mode</value>
|
||||
</data>
|
||||
<data name="VisualModesHDR" xml:space="preserve">
|
||||
<value>Visual Modes are not available when HDR is active</value>
|
||||
</data>
|
||||
<data name="VisualModesScreen" xml:space="preserve">
|
||||
<value>Visual Modes are not available when laptop screen is off</value>
|
||||
</data>
|
||||
<data name="VolumeDown" xml:space="preserve">
|
||||
<value>Volume Down</value>
|
||||
</data>
|
||||
@@ -668,4 +797,7 @@ Do you still want to continue?</value>
|
||||
<data name="WindowTop" xml:space="preserve">
|
||||
<value>Keep app window always on top</value>
|
||||
</data>
|
||||
</root>
|
||||
<data name="Zoom" xml:space="preserve">
|
||||
<value>Zoom</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -118,16 +118,16 @@
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="Acceleration" xml:space="preserve">
|
||||
<value>Acceleration</value>
|
||||
<value>Accelerare</value>
|
||||
</data>
|
||||
<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>
|
||||
</data>
|
||||
<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 name="AlertAPUMemoryRestartTitle" xml:space="preserve">
|
||||
<value>Restart now?</value>
|
||||
<value>Reporniți acum?</value>
|
||||
</data>
|
||||
<data name="AlertDGPU" xml:space="preserve">
|
||||
<value>Se pare că GPU-ul este folosit intens, dezactivați?</value>
|
||||
@@ -144,6 +144,9 @@
|
||||
<data name="AlertUltimateTitle" xml:space="preserve">
|
||||
<value>Reporniți acum?</value>
|
||||
</data>
|
||||
<data name="AllyController" xml:space="preserve">
|
||||
<value>Ally Controller</value>
|
||||
</data>
|
||||
<data name="AnimationSpeed" xml:space="preserve">
|
||||
<value>Viteza animației</value>
|
||||
</data>
|
||||
@@ -169,34 +172,34 @@
|
||||
<value>Reglare automată a modului de alimentare Windows</value>
|
||||
</data>
|
||||
<data name="APUMemory" xml:space="preserve">
|
||||
<value>Memory Assigned to GPU</value>
|
||||
<value>Memorie alocată GPU-ului</value>
|
||||
</data>
|
||||
<data name="AsusServicesRunning" xml:space="preserve">
|
||||
<value>Servicii Asus în derulare</value>
|
||||
</data>
|
||||
<data name="AuraBatteryState" xml:space="preserve">
|
||||
<value>Battery State</value>
|
||||
<value>Starea bateriei</value>
|
||||
</data>
|
||||
<data name="AuraBreathe" xml:space="preserve">
|
||||
<value>Respirație</value>
|
||||
</data>
|
||||
<data name="AuraClockwise" xml:space="preserve">
|
||||
<value>Clockwise</value>
|
||||
<value>În sensul acelor de ceas</value>
|
||||
</data>
|
||||
<data name="AuraColorCycle" xml:space="preserve">
|
||||
<value>Ciclu de culori</value>
|
||||
</data>
|
||||
<data name="AuraComet" xml:space="preserve">
|
||||
<value>Comet</value>
|
||||
<value>Cometă</value>
|
||||
</data>
|
||||
<data name="AuraCounterClockwise" xml:space="preserve">
|
||||
<value>Counterclockwise</value>
|
||||
<value>În sens invers acelor de ceas</value>
|
||||
</data>
|
||||
<data name="AuraFast" xml:space="preserve">
|
||||
<value>Rapid</value>
|
||||
</data>
|
||||
<data name="AuraLightingMode" xml:space="preserve">
|
||||
<value>Lighting Mode</value>
|
||||
<value>Mod iluminare</value>
|
||||
</data>
|
||||
<data name="AuraNormal" xml:space="preserve">
|
||||
<value>Normal</value>
|
||||
@@ -205,10 +208,10 @@
|
||||
<value>Curcubeu</value>
|
||||
</data>
|
||||
<data name="AuraRandomColor" xml:space="preserve">
|
||||
<value>Random</value>
|
||||
<value>Aleatoriu</value>
|
||||
</data>
|
||||
<data name="AuraReact" xml:space="preserve">
|
||||
<value>React</value>
|
||||
<value>Reacție</value>
|
||||
</data>
|
||||
<data name="AuraSlow" xml:space="preserve">
|
||||
<value>Încet</value>
|
||||
@@ -220,7 +223,7 @@
|
||||
<value>Stroboscop</value>
|
||||
</data>
|
||||
<data name="AuraZoneAll" xml:space="preserve">
|
||||
<value>All</value>
|
||||
<value>Toate</value>
|
||||
</data>
|
||||
<data name="AuraZoneDock" xml:space="preserve">
|
||||
<value>Dock</value>
|
||||
@@ -229,10 +232,10 @@
|
||||
<value>Logo</value>
|
||||
</data>
|
||||
<data name="AuraZoneScroll" xml:space="preserve">
|
||||
<value>Scrollwheel</value>
|
||||
<value>Rotiță scroll</value>
|
||||
</data>
|
||||
<data name="AuraZoneUnderglow" xml:space="preserve">
|
||||
<value>Underglow</value>
|
||||
<value>Iluminare de jos</value>
|
||||
</data>
|
||||
<data name="AutoApply" xml:space="preserve">
|
||||
<value>Aplicare automată</value>
|
||||
@@ -246,20 +249,32 @@
|
||||
<data name="Awake" xml:space="preserve">
|
||||
<value>Treaz</value>
|
||||
</data>
|
||||
<data name="BacklightLow" xml:space="preserve">
|
||||
<value>Low</value>
|
||||
</data>
|
||||
<data name="BacklightMax" xml:space="preserve">
|
||||
<value>Max</value>
|
||||
</data>
|
||||
<data name="BacklightMid" xml:space="preserve">
|
||||
<value>Mid</value>
|
||||
</data>
|
||||
<data name="BacklightOff" xml:space="preserve">
|
||||
<value>Off</value>
|
||||
</data>
|
||||
<data name="BacklightTimeout" xml:space="preserve">
|
||||
<value>Timeout conectat / folosind bateria (0 - ON)</value>
|
||||
</data>
|
||||
<data name="BacklightTimeoutBattery" xml:space="preserve">
|
||||
<value>Backlight Timeout when on battery</value>
|
||||
<value>Timp oprire iluminare pe baterie</value>
|
||||
</data>
|
||||
<data name="BacklightTimeoutPlugged" xml:space="preserve">
|
||||
<value>Backlight Timeout when plugged</value>
|
||||
<value>Timp oprire iluminare când e conectat</value>
|
||||
</data>
|
||||
<data name="Balanced" xml:space="preserve">
|
||||
<value>Echilibrat</value>
|
||||
</data>
|
||||
<data name="BatteryCharge" xml:space="preserve">
|
||||
<value>Charge</value>
|
||||
<value>Încărcare</value>
|
||||
</data>
|
||||
<data name="BatteryChargeLimit" xml:space="preserve">
|
||||
<value>Limita de încărcare a bateriei</value>
|
||||
@@ -268,7 +283,16 @@
|
||||
<value>Sănătatea bateriei</value>
|
||||
</data>
|
||||
<data name="BatteryLimitFull" xml:space="preserve">
|
||||
<value>One time charge to 100%</value>
|
||||
<value>Încarcă o dată la 100%</value>
|
||||
</data>
|
||||
<data name="Binding" xml:space="preserve">
|
||||
<value>Binding</value>
|
||||
</data>
|
||||
<data name="BindingPrimary" xml:space="preserve">
|
||||
<value>Primary</value>
|
||||
</data>
|
||||
<data name="BindingSecondary" xml:space="preserve">
|
||||
<value>Secondary</value>
|
||||
</data>
|
||||
<data name="BiosAndDriverUpdates" xml:space="preserve">
|
||||
<value>Actualizări BIOS și Driver</value>
|
||||
@@ -277,7 +301,7 @@
|
||||
<value>Pornire</value>
|
||||
</data>
|
||||
<data name="BootSound" xml:space="preserve">
|
||||
<value>Boot Sound</value>
|
||||
<value>Sunet la pornire</value>
|
||||
</data>
|
||||
<data name="Brightness" xml:space="preserve">
|
||||
<value>Luminozitate</value>
|
||||
@@ -288,8 +312,11 @@
|
||||
<data name="BrightnessUp" xml:space="preserve">
|
||||
<value>Mărirea luminozității</value>
|
||||
</data>
|
||||
<data name="BWTrayIcon" xml:space="preserve">
|
||||
<value>Black and white tray icon</value>
|
||||
</data>
|
||||
<data name="Calibrate" xml:space="preserve">
|
||||
<value>Calibrate</value>
|
||||
<value>Calibrează</value>
|
||||
</data>
|
||||
<data name="Charging" xml:space="preserve">
|
||||
<value>Se încarcă</value>
|
||||
@@ -297,6 +324,12 @@
|
||||
<data name="Color" xml:space="preserve">
|
||||
<value>Culoare</value>
|
||||
</data>
|
||||
<data name="Contrast" xml:space="preserve">
|
||||
<value>Contrast</value>
|
||||
</data>
|
||||
<data name="Controller" xml:space="preserve">
|
||||
<value>Controller</value>
|
||||
</data>
|
||||
<data name="CPUBoost" xml:space="preserve">
|
||||
<value>Accelerare CPU</value>
|
||||
</data>
|
||||
@@ -304,19 +337,28 @@
|
||||
<value>Personalizat</value>
|
||||
</data>
|
||||
<data name="Deceleration" xml:space="preserve">
|
||||
<value>Deceleration</value>
|
||||
<value>Decelerare</value>
|
||||
</data>
|
||||
<data name="Default" xml:space="preserve">
|
||||
<value>Implicit</value>
|
||||
</data>
|
||||
<data name="DisableController" xml:space="preserve">
|
||||
<value>Disable Controller</value>
|
||||
</data>
|
||||
<data name="DisableOnLidClose" xml:space="preserve">
|
||||
<value>Disable on lid close</value>
|
||||
</data>
|
||||
<data name="DisableOverdrive" xml:space="preserve">
|
||||
<value>Dezactivează screen overdrive</value>
|
||||
</data>
|
||||
<data name="Discharging" xml:space="preserve">
|
||||
<value>Se descarcă</value>
|
||||
</data>
|
||||
<data name="DownloadColorProfiles" xml:space="preserve">
|
||||
<value>Download Color Profiles</value>
|
||||
</data>
|
||||
<data name="DownloadUpdate" xml:space="preserve">
|
||||
<value>Download</value>
|
||||
<value>Descarcă</value>
|
||||
</data>
|
||||
<data name="DriverAndSoftware" xml:space="preserve">
|
||||
<value>Drivers și Aplicații</value>
|
||||
@@ -327,6 +369,9 @@
|
||||
<data name="EcoMode" xml:space="preserve">
|
||||
<value>Eco</value>
|
||||
</data>
|
||||
<data name="EnableGPUOnShutdown" xml:space="preserve">
|
||||
<value>Enable GPU on shutdown (prevents issue with Eco mode)</value>
|
||||
</data>
|
||||
<data name="EnableOptimusText" xml:space="preserve">
|
||||
<value>Dezactivarea dGPU pentru a utiliza modul Eco, în timp ce Display Mode în NVIDIA Control Panel nu este setat la modul Optimus, poate cauza probleme cu controalele de luminozitate până la următoarea repornire.
|
||||
|
||||
@@ -336,7 +381,10 @@
|
||||
<value>NVIDIA Display Mode nu este setat la modul Optimus</value>
|
||||
</data>
|
||||
<data name="EnergySettings" xml:space="preserve">
|
||||
<value>Energy Settings</value>
|
||||
<value>Setări energie</value>
|
||||
</data>
|
||||
<data name="Export" xml:space="preserve">
|
||||
<value>Export Profile</value>
|
||||
</data>
|
||||
<data name="Extra" xml:space="preserve">
|
||||
<value>Extra</value>
|
||||
@@ -371,9 +419,18 @@
|
||||
<data name="FansPower" xml:space="preserve">
|
||||
<value>Fans + Power</value>
|
||||
</data>
|
||||
<data name="FlickerFreeDimming" xml:space="preserve">
|
||||
<value>Flicker-free Dimming</value>
|
||||
</data>
|
||||
<data name="FnLock" xml:space="preserve">
|
||||
<value>Procesează tastele Fn+F fără Fn</value>
|
||||
</data>
|
||||
<data name="FnLockOff" xml:space="preserve">
|
||||
<value>FN-Lock Off</value>
|
||||
</data>
|
||||
<data name="FnLockOn" xml:space="preserve">
|
||||
<value>FN-Lock On</value>
|
||||
</data>
|
||||
<data name="GPUBoost" xml:space="preserve">
|
||||
<value>Dynamic Boost</value>
|
||||
</data>
|
||||
@@ -398,6 +455,9 @@
|
||||
<data name="GPUModeUltimate" xml:space="preserve">
|
||||
<value>exclusiv dGPU</value>
|
||||
</data>
|
||||
<data name="GPUPower" xml:space="preserve">
|
||||
<value>GPU Power</value>
|
||||
</data>
|
||||
<data name="GPUSettings" xml:space="preserve">
|
||||
<value>Setări GPU</value>
|
||||
</data>
|
||||
@@ -405,10 +465,16 @@
|
||||
<value>Temperatura țintă</value>
|
||||
</data>
|
||||
<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 name="High" xml:space="preserve">
|
||||
<value>High</value>
|
||||
<value>Ridicat</value>
|
||||
</data>
|
||||
<data name="ImageRotation" xml:space="preserve">
|
||||
<value>Image Rotation</value>
|
||||
</data>
|
||||
<data name="Import" xml:space="preserve">
|
||||
<value>Import Profile</value>
|
||||
</data>
|
||||
<data name="KeyBindings" xml:space="preserve">
|
||||
<value>Asocieri taste</value>
|
||||
@@ -428,20 +494,32 @@
|
||||
<data name="LaptopScreen" xml:space="preserve">
|
||||
<value>Ecran Laptop</value>
|
||||
</data>
|
||||
<data name="LEDStatusIndicators" xml:space="preserve">
|
||||
<value>LED Status Indicators</value>
|
||||
</data>
|
||||
<data name="Lid" xml:space="preserve">
|
||||
<value>Lid</value>
|
||||
<value>Capac</value>
|
||||
</data>
|
||||
<data name="Lightbar" xml:space="preserve">
|
||||
<value>Lightbar</value>
|
||||
</data>
|
||||
<data name="Lighting" xml:space="preserve">
|
||||
<value>Lighting</value>
|
||||
<value>Iluminare</value>
|
||||
</data>
|
||||
<data name="LockScreen" xml:space="preserve">
|
||||
<value>Lock Screen</value>
|
||||
</data>
|
||||
<data name="Logo" xml:space="preserve">
|
||||
<value>Logo-ul</value>
|
||||
</data>
|
||||
<data name="Low" xml:space="preserve">
|
||||
<value>Low</value>
|
||||
<value>Scăzut</value>
|
||||
</data>
|
||||
<data name="LSDeadzones" xml:space="preserve">
|
||||
<value>Left Stick Deadzones</value>
|
||||
</data>
|
||||
<data name="LTDeadzones" xml:space="preserve">
|
||||
<value>Left Trigger Deadzones</value>
|
||||
</data>
|
||||
<data name="MatrixAudio" xml:space="preserve">
|
||||
<value>Vizualizator audio</value>
|
||||
@@ -471,46 +549,55 @@
|
||||
<value>Imagine</value>
|
||||
</data>
|
||||
<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 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 name="Minute" xml:space="preserve">
|
||||
<value>Minute</value>
|
||||
<value>Minut</value>
|
||||
</data>
|
||||
<data name="Minutes" xml:space="preserve">
|
||||
<value>Minutes</value>
|
||||
<value>Minute</value>
|
||||
</data>
|
||||
<data name="MouseAngleSnapping" xml:space="preserve">
|
||||
<value>Angle Snapping</value>
|
||||
<value>Fixare mișcare la unghi</value>
|
||||
</data>
|
||||
<data name="MouseAutoPowerOff" xml:space="preserve">
|
||||
<value>Auto Power Off After</value>
|
||||
<value>Oprire automată după</value>
|
||||
</data>
|
||||
<data name="MouseButtonResponse" xml:space="preserve">
|
||||
<value>Button Response</value>
|
||||
<value>Răspuns buton</value>
|
||||
</data>
|
||||
<data name="MouseImportFailed" xml:space="preserve">
|
||||
<value>Import failed. Selected file is not a valid mouse profile or corrutpted.</value>
|
||||
</data>
|
||||
<data name="MouseLiftOffDistance" xml:space="preserve">
|
||||
<value>Lift Off Distance</value>
|
||||
<value>Distanța de oprire</value>
|
||||
</data>
|
||||
<data name="MouseLowBatteryWarning" xml:space="preserve">
|
||||
<value>Low Battery Warning at</value>
|
||||
<value>Avertizare baterie scăzută la</value>
|
||||
</data>
|
||||
<data name="MousePerformance" xml:space="preserve">
|
||||
<value>Performance</value>
|
||||
<value>Performanță</value>
|
||||
</data>
|
||||
<data name="MouseSynchronize" xml:space="preserve">
|
||||
<value>Synchronize with mouse</value>
|
||||
<value>Sincronizare cu mouse-ul</value>
|
||||
</data>
|
||||
<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 name="Muted" xml:space="preserve">
|
||||
<value>Muted</value>
|
||||
</data>
|
||||
<data name="MuteMic" xml:space="preserve">
|
||||
<value>Oprire microfon</value>
|
||||
</data>
|
||||
<data name="Never" xml:space="preserve">
|
||||
<value>Never</value>
|
||||
<value>Niciodată</value>
|
||||
</data>
|
||||
<data name="NewUpdates" xml:space="preserve">
|
||||
<value>Actualizări noi</value>
|
||||
@@ -519,7 +606,16 @@
|
||||
<value>Nu există actualizări noi</value>
|
||||
</data>
|
||||
<data name="NotConnected" xml:space="preserve">
|
||||
<value>Not Connected</value>
|
||||
<value>Neconectat</value>
|
||||
</data>
|
||||
<data name="Off" xml:space="preserve">
|
||||
<value>Off</value>
|
||||
</data>
|
||||
<data name="On" xml:space="preserve">
|
||||
<value>On</value>
|
||||
</data>
|
||||
<data name="OneZone" xml:space="preserve">
|
||||
<value>One Zone</value>
|
||||
</data>
|
||||
<data name="OpenGHelper" xml:space="preserve">
|
||||
<value>Deschide fereastra G-Helper</value>
|
||||
@@ -543,7 +639,7 @@
|
||||
<value>Mod</value>
|
||||
</data>
|
||||
<data name="Peripherals" xml:space="preserve">
|
||||
<value>Peripherals</value>
|
||||
<value>Periferice</value>
|
||||
</data>
|
||||
<data name="PictureGif" xml:space="preserve">
|
||||
<value>Poză / Gif</value>
|
||||
@@ -552,7 +648,7 @@
|
||||
<value>Redare / Pauză</value>
|
||||
</data>
|
||||
<data name="PollingRate" xml:space="preserve">
|
||||
<value>Polling Rate</value>
|
||||
<value>Rată sondaj</value>
|
||||
</data>
|
||||
<data name="PowerLimits" xml:space="preserve">
|
||||
<value>Limite de putere</value>
|
||||
@@ -564,20 +660,32 @@
|
||||
<value>PrintScreen</value>
|
||||
</data>
|
||||
<data name="Profile" xml:space="preserve">
|
||||
<value>Profile</value>
|
||||
<value>Profil</value>
|
||||
</data>
|
||||
<data name="Quit" xml:space="preserve">
|
||||
<value>Închide</value>
|
||||
</data>
|
||||
<data name="Reset" xml:space="preserve">
|
||||
<value>Reset</value>
|
||||
</data>
|
||||
<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 name="RPM" xml:space="preserve">
|
||||
<value>RPM</value>
|
||||
</data>
|
||||
<data name="RSDeadzones" xml:space="preserve">
|
||||
<value>Right Stick Deadzones</value>
|
||||
</data>
|
||||
<data name="RTDeadzones" xml:space="preserve">
|
||||
<value>Right Trigger Deadzones</value>
|
||||
</data>
|
||||
<data name="RunOnStartup" xml:space="preserve">
|
||||
<value>Rulează la pornirea sistemului</value>
|
||||
</data>
|
||||
<data name="ScalingQuality" xml:space="preserve">
|
||||
<value>Scaling Quality</value>
|
||||
</data>
|
||||
<data name="ScreenPadDown" xml:space="preserve">
|
||||
<value>Scade luminozitate Screenpad</value>
|
||||
</data>
|
||||
@@ -632,6 +740,12 @@
|
||||
<data name="ToggleScreen" xml:space="preserve">
|
||||
<value>Toggle Ecran</value>
|
||||
</data>
|
||||
<data name="ToggleTouchscreen" xml:space="preserve">
|
||||
<value>Toggle Touchscreen</value>
|
||||
</data>
|
||||
<data name="Touchscreen" xml:space="preserve">
|
||||
<value/>
|
||||
</data>
|
||||
<data name="Turbo" xml:space="preserve">
|
||||
<value>Turbo</value>
|
||||
</data>
|
||||
@@ -650,12 +764,27 @@
|
||||
<data name="UndervoltingRisky" xml:space="preserve">
|
||||
<value>Undervolting este o funcțiune experimentală și riscantă. Dacă valorile aplicate sunt prea mici pentru hardware-ul dumneavoastră, acesta poate deveni instabil, a se opri sau să corupă datele. Dacă vrei să încerci - mai întâi începe de la valori mici, apasă Aplică și testează ce funcționează pentru tine.</value>
|
||||
</data>
|
||||
<data name="Unmuted" xml:space="preserve">
|
||||
<value>Unmuted</value>
|
||||
</data>
|
||||
<data name="Updates" xml:space="preserve">
|
||||
<value>Actualizări</value>
|
||||
</data>
|
||||
<data name="VersionLabel" xml:space="preserve">
|
||||
<value>Versiune</value>
|
||||
</data>
|
||||
<data name="VibrationStrength" xml:space="preserve">
|
||||
<value>Vibration Strength</value>
|
||||
</data>
|
||||
<data name="VisualMode" xml:space="preserve">
|
||||
<value>Visual Mode</value>
|
||||
</data>
|
||||
<data name="VisualModesHDR" xml:space="preserve">
|
||||
<value>Visual Modes are not available when HDR is active</value>
|
||||
</data>
|
||||
<data name="VisualModesScreen" xml:space="preserve">
|
||||
<value>Visual Modes are not available when laptop screen is off</value>
|
||||
</data>
|
||||
<data name="VolumeDown" xml:space="preserve">
|
||||
<value>Buton scădere volum</value>
|
||||
</data>
|
||||
@@ -668,4 +797,7 @@
|
||||
<data name="WindowTop" xml:space="preserve">
|
||||
<value>Păstrează aplicația mereu deasupra</value>
|
||||
</data>
|
||||
</root>
|
||||
<data name="Zoom" xml:space="preserve">
|
||||
<value>Zoom</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -121,7 +121,7 @@
|
||||
<value>Hızlandırma</value>
|
||||
</data>
|
||||
<data name="ACPIError" xml:space="preserve">
|
||||
<value>ASUS ACPI'ye bağlanılamıyor. Uygulama o olmadan çalışamaz. Asus Sistem Kontrol Arayüzü'nü yüklemeyi deneyin.</value>
|
||||
<value>ASUS ACPI bağlanılamıyor. Uygulama onsuz çalışamaz. Asus Sistem Kontrol Arayüzünü kurmayı deneyin</value>
|
||||
</data>
|
||||
<data name="AlertAPUMemoryRestart" xml:space="preserve">
|
||||
<value>Değişiklikleri uygulamak için cihazınızı yeniden başlatın</value>
|
||||
@@ -130,7 +130,7 @@
|
||||
<value>Şimdi yeniden başlatılsın mı?</value>
|
||||
</data>
|
||||
<data name="AlertDGPU" xml:space="preserve">
|
||||
<value>Görünüşe göre GPU yoğun bir şekilde kullanılıyor, devre dışı bırakılsın mı?</value>
|
||||
<value>GPU yoğun kullanımda gibi, devre dışı bırakılsın mı?</value>
|
||||
</data>
|
||||
<data name="AlertDGPUTitle" xml:space="preserve">
|
||||
<value>Eko Modu</value>
|
||||
@@ -139,11 +139,14 @@
|
||||
<value>Ultimate Modu kapatmak yeniden başlatmayı gerektirir</value>
|
||||
</data>
|
||||
<data name="AlertUltimateOn" xml:space="preserve">
|
||||
<value>Ultimate Modu etkinleştirmek yeniden başlatmayı gerektirir</value>
|
||||
<value>Ultimate Mod için yeniden başlatılmalı</value>
|
||||
</data>
|
||||
<data name="AlertUltimateTitle" xml:space="preserve">
|
||||
<value>Şimdi yeniden başlatılsın mı?</value>
|
||||
</data>
|
||||
<data name="AllyController" xml:space="preserve">
|
||||
<value>Ally Kontrolcüsü</value>
|
||||
</data>
|
||||
<data name="AnimationSpeed" xml:space="preserve">
|
||||
<value>Animasyon Hızı</value>
|
||||
</data>
|
||||
@@ -166,10 +169,10 @@
|
||||
<value>Güç Sınırlarını Uygula</value>
|
||||
</data>
|
||||
<data name="ApplyWindowsPowerPlan" xml:space="preserve">
|
||||
<value>Windows Güç Modunu otomatik ayarla</value>
|
||||
<value>Windows Güç Modlarını otomatik ayarla</value>
|
||||
</data>
|
||||
<data name="APUMemory" xml:space="preserve">
|
||||
<value>GPU'ya Atanan Bellek</value>
|
||||
<value>GPU için Atanan Bellek</value>
|
||||
</data>
|
||||
<data name="AsusServicesRunning" xml:space="preserve">
|
||||
<value>Çalışan Asus Hizmetleri</value>
|
||||
@@ -241,19 +244,31 @@
|
||||
<value>Otomatik</value>
|
||||
</data>
|
||||
<data name="AutoRefreshTooltip" xml:space="preserve">
|
||||
<value>Pil tasarrufu için 60Hz kullanılır ve şarja takıldığında eski haline getirir</value>
|
||||
<value>Pil tasarrufu için 60Hz kullanılır, şarja takıldığında eski haline gelir</value>
|
||||
</data>
|
||||
<data name="Awake" xml:space="preserve">
|
||||
<value>Uyanırken</value>
|
||||
<value>Uyanış</value>
|
||||
</data>
|
||||
<data name="BacklightLow" xml:space="preserve">
|
||||
<value>Düşük</value>
|
||||
</data>
|
||||
<data name="BacklightMax" xml:space="preserve">
|
||||
<value>Yüksek</value>
|
||||
</data>
|
||||
<data name="BacklightMid" xml:space="preserve">
|
||||
<value>Orta</value>
|
||||
</data>
|
||||
<data name="BacklightOff" xml:space="preserve">
|
||||
<value>Kapalı</value>
|
||||
</data>
|
||||
<data name="BacklightTimeout" xml:space="preserve">
|
||||
<value>Pildeyken klavye ışığının kapanma süresi</value>
|
||||
<value>Pilde klavye ışığı kapanma süresi</value>
|
||||
</data>
|
||||
<data name="BacklightTimeoutBattery" xml:space="preserve">
|
||||
<value>Backlight Timeout when on battery</value>
|
||||
<value>Pildeyken Arka Işık Zaman Aşımı</value>
|
||||
</data>
|
||||
<data name="BacklightTimeoutPlugged" xml:space="preserve">
|
||||
<value>Backlight Timeout when plugged</value>
|
||||
<value>Fişe takılıyken Arka Işık Zaman Aşımı</value>
|
||||
</data>
|
||||
<data name="Balanced" xml:space="preserve">
|
||||
<value>Dengeli</value>
|
||||
@@ -268,19 +283,28 @@
|
||||
<value>Pil Sağlığı</value>
|
||||
</data>
|
||||
<data name="BatteryLimitFull" xml:space="preserve">
|
||||
<value>Bir seferlik %100 şarj etme</value>
|
||||
<value>Tek seferlik %100'e kadar şarj</value>
|
||||
</data>
|
||||
<data name="Binding" xml:space="preserve">
|
||||
<value>Tuş Atamaları</value>
|
||||
</data>
|
||||
<data name="BindingPrimary" xml:space="preserve">
|
||||
<value>Birincil</value>
|
||||
</data>
|
||||
<data name="BindingSecondary" xml:space="preserve">
|
||||
<value>İkincil</value>
|
||||
</data>
|
||||
<data name="BiosAndDriverUpdates" xml:space="preserve">
|
||||
<value>BIOS ve Sürücü Güncellemeleri</value>
|
||||
</data>
|
||||
<data name="Boot" xml:space="preserve">
|
||||
<value>Boot</value>
|
||||
<value>Açılış</value>
|
||||
</data>
|
||||
<data name="BootSound" xml:space="preserve">
|
||||
<value>Boot Sesi</value>
|
||||
<value>Açılış sesi</value>
|
||||
</data>
|
||||
<data name="Brightness" xml:space="preserve">
|
||||
<value>Parlaklığı</value>
|
||||
<value>Parlaklık</value>
|
||||
</data>
|
||||
<data name="BrightnessDown" xml:space="preserve">
|
||||
<value>Parlaklığı Azalt</value>
|
||||
@@ -288,8 +312,11 @@
|
||||
<data name="BrightnessUp" xml:space="preserve">
|
||||
<value>Parlaklığı Artır</value>
|
||||
</data>
|
||||
<data name="BWTrayIcon" xml:space="preserve">
|
||||
<value>Siyah ve beyaz tepsi simgesi</value>
|
||||
</data>
|
||||
<data name="Calibrate" xml:space="preserve">
|
||||
<value>Kalibre Et</value>
|
||||
<value>Kalibrasyon</value>
|
||||
</data>
|
||||
<data name="Charging" xml:space="preserve">
|
||||
<value>Şarj oluyor</value>
|
||||
@@ -297,8 +324,14 @@
|
||||
<data name="Color" xml:space="preserve">
|
||||
<value>Renk</value>
|
||||
</data>
|
||||
<data name="Contrast" xml:space="preserve">
|
||||
<value>Kontrast</value>
|
||||
</data>
|
||||
<data name="Controller" xml:space="preserve">
|
||||
<value>Kontrolcü</value>
|
||||
</data>
|
||||
<data name="CPUBoost" xml:space="preserve">
|
||||
<value>CPU Desteği</value>
|
||||
<value>CPU Artışı</value>
|
||||
</data>
|
||||
<data name="Custom" xml:space="preserve">
|
||||
<value>Özel</value>
|
||||
@@ -309,11 +342,20 @@
|
||||
<data name="Default" xml:space="preserve">
|
||||
<value>Varsayılan</value>
|
||||
</data>
|
||||
<data name="DisableController" xml:space="preserve">
|
||||
<value>Kontrolcüyü Devre Dışı Bırak</value>
|
||||
</data>
|
||||
<data name="DisableOnLidClose" xml:space="preserve">
|
||||
<value>Kapak kapandığında devre dışı bırak</value>
|
||||
</data>
|
||||
<data name="DisableOverdrive" xml:space="preserve">
|
||||
<value>Ekran overdrive özelliğini devre dışı bırak</value>
|
||||
</data>
|
||||
<data name="Discharging" xml:space="preserve">
|
||||
<value>Şarj azalıyor</value>
|
||||
<value>Şarj Azalıyor</value>
|
||||
</data>
|
||||
<data name="DownloadColorProfiles" xml:space="preserve">
|
||||
<value>Renk Profillerini İndir</value>
|
||||
</data>
|
||||
<data name="DownloadUpdate" xml:space="preserve">
|
||||
<value>İndir</value>
|
||||
@@ -322,11 +364,14 @@
|
||||
<value>Sürücüler ve Yazılımlar</value>
|
||||
</data>
|
||||
<data name="EcoGPUTooltip" xml:space="preserve">
|
||||
<value>Pil tasarrufu için harici GPU'yu devre dışı bırakır</value>
|
||||
<value>Pil tasarrufu için dGPU devre dışı bırakılır</value>
|
||||
</data>
|
||||
<data name="EcoMode" xml:space="preserve">
|
||||
<value>Eko</value>
|
||||
</data>
|
||||
<data name="EnableGPUOnShutdown" xml:space="preserve">
|
||||
<value>Kapatma sırasında GPU'yu etkinleştir (Eco modundaki sorunları önler)</value>
|
||||
</data>
|
||||
<data name="EnableOptimusText" xml:space="preserve">
|
||||
<value>NVIDIA Denetim Masası'ndaki Görüntü Modu Optimus olarak ayarlı değilken Eko moduna geçilerek harici GPU'nun devre dışı bırakılması, bir sonraki yeniden başlatmaya kadar parlaklık ayarlarında sorunlara neden olabilir.
|
||||
|
||||
@@ -338,11 +383,14 @@ Yine de devam etmek istiyor musunuz?</value>
|
||||
<data name="EnergySettings" xml:space="preserve">
|
||||
<value>Enerji Ayarları</value>
|
||||
</data>
|
||||
<data name="Export" xml:space="preserve">
|
||||
<value>Profili Dışa Aktar</value>
|
||||
</data>
|
||||
<data name="Extra" xml:space="preserve">
|
||||
<value>Ekstra</value>
|
||||
<value>Ek Özellikler</value>
|
||||
</data>
|
||||
<data name="ExtraSettings" xml:space="preserve">
|
||||
<value>Ekstra Ayarlar</value>
|
||||
<value>Ek Ayarlar</value>
|
||||
</data>
|
||||
<data name="FactoryDefaults" xml:space="preserve">
|
||||
<value>Fabrika Ayarları</value>
|
||||
@@ -371,8 +419,17 @@ Yine de devam etmek istiyor musunuz?</value>
|
||||
<data name="FansPower" xml:space="preserve">
|
||||
<value>Fanlar + Güç</value>
|
||||
</data>
|
||||
<data name="FlickerFreeDimming" xml:space="preserve">
|
||||
<value>Titreşimsiz Karartma</value>
|
||||
</data>
|
||||
<data name="FnLock" xml:space="preserve">
|
||||
<value>Fn+F kısayol tuşlarını FN tuşuna basmadan çalıştır</value>
|
||||
<value>Fn+F kısayolunu Fn tuşuna basmadan çalıştır</value>
|
||||
</data>
|
||||
<data name="FnLockOff" xml:space="preserve">
|
||||
<value>FN-Lock Kapalı</value>
|
||||
</data>
|
||||
<data name="FnLockOn" xml:space="preserve">
|
||||
<value>FN-Lock Açık</value>
|
||||
</data>
|
||||
<data name="GPUBoost" xml:space="preserve">
|
||||
<value>Dynamic Boost</value>
|
||||
@@ -390,13 +447,16 @@ Yine de devam etmek istiyor musunuz?</value>
|
||||
<value>GPU Modu</value>
|
||||
</data>
|
||||
<data name="GPUModeEco" xml:space="preserve">
|
||||
<value>sadece dahili GPU</value>
|
||||
<value>Sadece iGPU</value>
|
||||
</data>
|
||||
<data name="GPUModeStandard" xml:space="preserve">
|
||||
<value>dahili + harici GPU</value>
|
||||
<value>iGPU + dGPU</value>
|
||||
</data>
|
||||
<data name="GPUModeUltimate" xml:space="preserve">
|
||||
<value>sadece harici GPU</value>
|
||||
<value>Ayrıcalıklı dGPU</value>
|
||||
</data>
|
||||
<data name="GPUPower" xml:space="preserve">
|
||||
<value>GPU Gücü</value>
|
||||
</data>
|
||||
<data name="GPUSettings" xml:space="preserve">
|
||||
<value>GPU Ayarları</value>
|
||||
@@ -410,6 +470,12 @@ Yine de devam etmek istiyor musunuz?</value>
|
||||
<data name="High" xml:space="preserve">
|
||||
<value>Yüksek</value>
|
||||
</data>
|
||||
<data name="ImageRotation" xml:space="preserve">
|
||||
<value>Görüntü Döndürme</value>
|
||||
</data>
|
||||
<data name="Import" xml:space="preserve">
|
||||
<value>Profili İçe Aktar</value>
|
||||
</data>
|
||||
<data name="KeyBindings" xml:space="preserve">
|
||||
<value>Tuş Atamaları</value>
|
||||
</data>
|
||||
@@ -417,7 +483,7 @@ Yine de devam etmek istiyor musunuz?</value>
|
||||
<value>Klavye</value>
|
||||
</data>
|
||||
<data name="KillGpuApps" xml:space="preserve">
|
||||
<value>Eco'ya geçerken harici GPU'yu kullanan tüm uygulamaları durdur</value>
|
||||
<value>Eco moda geçerken GPU kullanan tüm uygulamaları durdur</value>
|
||||
</data>
|
||||
<data name="LaptopBacklight" xml:space="preserve">
|
||||
<value>Laptop Aydınlatması</value>
|
||||
@@ -428,6 +494,9 @@ Yine de devam etmek istiyor musunuz?</value>
|
||||
<data name="LaptopScreen" xml:space="preserve">
|
||||
<value>Laptop Ekranı</value>
|
||||
</data>
|
||||
<data name="LEDStatusIndicators" xml:space="preserve">
|
||||
<value>LED Durum Göstergeleri</value>
|
||||
</data>
|
||||
<data name="Lid" xml:space="preserve">
|
||||
<value>Kapak</value>
|
||||
</data>
|
||||
@@ -437,17 +506,26 @@ Yine de devam etmek istiyor musunuz?</value>
|
||||
<data name="Lighting" xml:space="preserve">
|
||||
<value>Işıklandırma</value>
|
||||
</data>
|
||||
<data name="LockScreen" xml:space="preserve">
|
||||
<value>Kilit Ekranı</value>
|
||||
</data>
|
||||
<data name="Logo" xml:space="preserve">
|
||||
<value>Logo</value>
|
||||
</data>
|
||||
<data name="Low" xml:space="preserve">
|
||||
<value>Düşük</value>
|
||||
</data>
|
||||
<data name="LSDeadzones" xml:space="preserve">
|
||||
<value>Sol Çubuk Ölü Bölgeleri</value>
|
||||
</data>
|
||||
<data name="LTDeadzones" xml:space="preserve">
|
||||
<value>Sol Tetik Ölü Bölgeleri</value>
|
||||
</data>
|
||||
<data name="MatrixAudio" xml:space="preserve">
|
||||
<value>Ses Görselleştirici</value>
|
||||
</data>
|
||||
<data name="MatrixBanner" xml:space="preserve">
|
||||
<value>Binary Banner</value>
|
||||
<value>İkili Afiş</value>
|
||||
</data>
|
||||
<data name="MatrixBright" xml:space="preserve">
|
||||
<value>Parlak</value>
|
||||
@@ -471,7 +549,7 @@ Yine de devam etmek istiyor musunuz?</value>
|
||||
<value>Resim</value>
|
||||
</data>
|
||||
<data name="MaxRefreshTooltip" xml:space="preserve">
|
||||
<value>Daha düşük gecikme için maksimum yenileme hızı</value>
|
||||
<value>En düşük gecikme için en yüksek yenileme hızı</value>
|
||||
</data>
|
||||
<data name="MinRefreshTooltip" xml:space="preserve">
|
||||
<value>Pil tasarrufu için 60Hz yenileme hızı</value>
|
||||
@@ -483,7 +561,7 @@ Yine de devam etmek istiyor musunuz?</value>
|
||||
<value>Dakika</value>
|
||||
</data>
|
||||
<data name="MouseAngleSnapping" xml:space="preserve">
|
||||
<value>Angle Snapping</value>
|
||||
<value>Açılı Yakalama</value>
|
||||
</data>
|
||||
<data name="MouseAutoPowerOff" xml:space="preserve">
|
||||
<value>Sonrasında Otomatik Kapat</value>
|
||||
@@ -491,6 +569,9 @@ Yine de devam etmek istiyor musunuz?</value>
|
||||
<data name="MouseButtonResponse" xml:space="preserve">
|
||||
<value>Tuş Tepkisi</value>
|
||||
</data>
|
||||
<data name="MouseImportFailed" xml:space="preserve">
|
||||
<value>İçe aktarma başarısız oldu. Seçilen dosya geçerli bir fare profili değil veya bozuk.</value>
|
||||
</data>
|
||||
<data name="MouseLiftOffDistance" xml:space="preserve">
|
||||
<value>Havalanma Mesafesi</value>
|
||||
</data>
|
||||
@@ -501,11 +582,17 @@ Yine de devam etmek istiyor musunuz?</value>
|
||||
<value>Performans</value>
|
||||
</data>
|
||||
<data name="MouseSynchronize" xml:space="preserve">
|
||||
<value>Fare ile senkronize edin</value>
|
||||
<value>Fare ile eşitle</value>
|
||||
</data>
|
||||
<data name="Multizone" xml:space="preserve">
|
||||
<value>Çoklu Bölge</value>
|
||||
</data>
|
||||
<data name="MultizoneStrong" xml:space="preserve">
|
||||
<value>Çoklu Bölge Güçlü</value>
|
||||
</data>
|
||||
<data name="Muted" xml:space="preserve">
|
||||
<value>Susturuldu</value>
|
||||
</data>
|
||||
<data name="MuteMic" xml:space="preserve">
|
||||
<value>Mikrofonu Sustur</value>
|
||||
</data>
|
||||
@@ -516,22 +603,31 @@ Yine de devam etmek istiyor musunuz?</value>
|
||||
<value>Yeni güncellemeler</value>
|
||||
</data>
|
||||
<data name="NoNewUpdates" xml:space="preserve">
|
||||
<value>Güncelleme yok</value>
|
||||
<value>Yeni güncelleme yok</value>
|
||||
</data>
|
||||
<data name="NotConnected" xml:space="preserve">
|
||||
<value>Bağlantı Yok</value>
|
||||
<value>Bağlı Değil</value>
|
||||
</data>
|
||||
<data name="Off" xml:space="preserve">
|
||||
<value>Kapalı</value>
|
||||
</data>
|
||||
<data name="On" xml:space="preserve">
|
||||
<value>Açık</value>
|
||||
</data>
|
||||
<data name="OneZone" xml:space="preserve">
|
||||
<value>Tek Bölge</value>
|
||||
</data>
|
||||
<data name="OpenGHelper" xml:space="preserve">
|
||||
<value>G-Helper penceresini aç</value>
|
||||
</data>
|
||||
<data name="Optimized" xml:space="preserve">
|
||||
<value>Optimize edilmiş</value>
|
||||
<value>İyileştirilmiş</value>
|
||||
</data>
|
||||
<data name="OptimizedGPUTooltip" xml:space="preserve">
|
||||
<value>Pille çalışırken Eko moda ve şarjdayken Standart moda geçiş yapın</value>
|
||||
<value>Pil ile çalışırken Eco moda, Elektrik ile Standart moda geçilir</value>
|
||||
</data>
|
||||
<data name="OptimizedUSBC" xml:space="preserve">
|
||||
<value>Optimize edilmiş modda USB-c şarj cihazında GPU'yu devre dışı bırak</value>
|
||||
<value>İyileştirilmiş modda USB-C şarj cihazı bağlıyken, GPU devre dışı kalsın</value>
|
||||
</data>
|
||||
<data name="Other" xml:space="preserve">
|
||||
<value>Diğer</value>
|
||||
@@ -561,13 +657,16 @@ Yine de devam etmek istiyor musunuz?</value>
|
||||
<value>Güç Sınırları deneysel bir özelliktir. Riski göze alarak dikkatli kullanın!</value>
|
||||
</data>
|
||||
<data name="PrintScreen" xml:space="preserve">
|
||||
<value>Ekran Görüntüsü Al</value>
|
||||
<value>PrintScreen</value>
|
||||
</data>
|
||||
<data name="Profile" xml:space="preserve">
|
||||
<value>Profil</value>
|
||||
</data>
|
||||
<data name="Quit" xml:space="preserve">
|
||||
<value>Çıkış Yap</value>
|
||||
<value>Çıkış</value>
|
||||
</data>
|
||||
<data name="Reset" xml:space="preserve">
|
||||
<value>Sıfırla</value>
|
||||
</data>
|
||||
<data name="RestartGPU" xml:space="preserve">
|
||||
<value>Bir şey harici GPU'yu kullanıyor ve Eco modunu engelliyor. G-Helper aygıt yöneticisinde harici GPU'yu yeniden başlatmayı denesin mi? (Kendi sorumluluğunuzdadır)</value>
|
||||
@@ -575,9 +674,18 @@ Yine de devam etmek istiyor musunuz?</value>
|
||||
<data name="RPM" xml:space="preserve">
|
||||
<value>RPM</value>
|
||||
</data>
|
||||
<data name="RSDeadzones" xml:space="preserve">
|
||||
<value>Sağ Çubuk Ölü Bölgeleri</value>
|
||||
</data>
|
||||
<data name="RTDeadzones" xml:space="preserve">
|
||||
<value>Sağ Tetik Ölü Bölgeleri</value>
|
||||
</data>
|
||||
<data name="RunOnStartup" xml:space="preserve">
|
||||
<value>Başlangıçta Çalıştır</value>
|
||||
</data>
|
||||
<data name="ScalingQuality" xml:space="preserve">
|
||||
<value>Ölçeklendirme Kalitesi</value>
|
||||
</data>
|
||||
<data name="ScreenPadDown" xml:space="preserve">
|
||||
<value>Screenpad Parlaklığını Azalt</value>
|
||||
</data>
|
||||
@@ -585,7 +693,7 @@ Yine de devam etmek istiyor musunuz?</value>
|
||||
<value>Screenpad Parlaklığını Artır</value>
|
||||
</data>
|
||||
<data name="Shutdown" xml:space="preserve">
|
||||
<value>Kapatma</value>
|
||||
<value>Kapanış</value>
|
||||
</data>
|
||||
<data name="Silent" xml:space="preserve">
|
||||
<value>Sessiz</value>
|
||||
@@ -594,7 +702,7 @@ Yine de devam etmek istiyor musunuz?</value>
|
||||
<value>Uyku</value>
|
||||
</data>
|
||||
<data name="StandardGPUTooltip" xml:space="preserve">
|
||||
<value>Standart kullanım için harici GPU'yu etkinleştirir</value>
|
||||
<value>Standart kullanım için dGPU etkinleştirilir</value>
|
||||
</data>
|
||||
<data name="StandardMode" xml:space="preserve">
|
||||
<value>Standart</value>
|
||||
@@ -618,20 +726,26 @@ Yine de devam etmek istiyor musunuz?</value>
|
||||
<value>Hizmetler Durduruluyor</value>
|
||||
</data>
|
||||
<data name="ToggleAura" xml:space="preserve">
|
||||
<value>Aura'yı Kullan</value>
|
||||
<value>Aura Değiştir</value>
|
||||
</data>
|
||||
<data name="ToggleClamshellMode" xml:space="preserve">
|
||||
<value>Otomatik Clamshell Modunu Aç</value>
|
||||
</data>
|
||||
<data name="ToggleFnLock" xml:space="preserve">
|
||||
<value>Fn-Lock'u Aç</value>
|
||||
<value>Fn-Lock Değiştir</value>
|
||||
</data>
|
||||
<data name="ToggleMiniled" xml:space="preserve">
|
||||
<value>Miniled'i Aç (destekliyorsa)</value>
|
||||
<value>Miniled Değiştir (destekleniyorsa)</value>
|
||||
</data>
|
||||
<data name="ToggleScreen" xml:space="preserve">
|
||||
<value>Ekranı Değiştir</value>
|
||||
</data>
|
||||
<data name="ToggleTouchscreen" xml:space="preserve">
|
||||
<value>Dokunmatik Ekranı Değiştir</value>
|
||||
</data>
|
||||
<data name="Touchscreen" xml:space="preserve">
|
||||
<value/>
|
||||
</data>
|
||||
<data name="Turbo" xml:space="preserve">
|
||||
<value>Turbo</value>
|
||||
</data>
|
||||
@@ -642,13 +756,16 @@ Yine de devam etmek istiyor musunuz?</value>
|
||||
<value>Pille çalışırken kapat</value>
|
||||
</data>
|
||||
<data name="UltimateGPUTooltip" xml:space="preserve">
|
||||
<value>Dizüstü ekranını harici GPU'ya yönlendirerek FPS'yi maksimize eder</value>
|
||||
<value>Dizüstü ekranı doğrudan dGPU üstünden çalışır FPS artar</value>
|
||||
</data>
|
||||
<data name="UltimateMode" xml:space="preserve">
|
||||
<value>Ultimate</value>
|
||||
</data>
|
||||
<data name="UndervoltingRisky" xml:space="preserve">
|
||||
<value>Undervolting deneysel ve riskli bir özelliktir. Uygulanan değerler cihazınız için çok düşükse, cihazınız stabil çalışmayabilir, kapanabilir veya veri kaybına uğrayabilir. Yine de denemek istiyorsanız, önce küçük değerlerden başlayıp Uygula'ya tıklayın ve sizin için uygun olanı test edin.</value>
|
||||
<value>Düşük voltaj deneysel ve riskli bir özelliktir. Uygulanan değerler cihaz için çok düşükse, cihazı stabil çalışmayabilir, kapanabilir veya veri kaybına uğrayabilir. Yine de denemek istiyorsanız, önce küçük değerlerden başlayın ve sizin için uygun olanı test edin.</value>
|
||||
</data>
|
||||
<data name="Unmuted" xml:space="preserve">
|
||||
<value>Ses açık</value>
|
||||
</data>
|
||||
<data name="Updates" xml:space="preserve">
|
||||
<value>Güncellemeler</value>
|
||||
@@ -656,6 +773,18 @@ Yine de devam etmek istiyor musunuz?</value>
|
||||
<data name="VersionLabel" xml:space="preserve">
|
||||
<value>Sürüm</value>
|
||||
</data>
|
||||
<data name="VibrationStrength" xml:space="preserve">
|
||||
<value>Titreşim Yoğunluğu</value>
|
||||
</data>
|
||||
<data name="VisualMode" xml:space="preserve">
|
||||
<value>Görsel Mod</value>
|
||||
</data>
|
||||
<data name="VisualModesHDR" xml:space="preserve">
|
||||
<value>HDR etkin olduğunda Görsel Modlar kullanılamaz</value>
|
||||
</data>
|
||||
<data name="VisualModesScreen" xml:space="preserve">
|
||||
<value>Bilgisayar ekranı kapalı olduğunda Görsel Modlar kullanılamaz</value>
|
||||
</data>
|
||||
<data name="VolumeDown" xml:space="preserve">
|
||||
<value>Sesi Azalt</value>
|
||||
</data>
|
||||
@@ -668,4 +797,7 @@ Yine de devam etmek istiyor musunuz?</value>
|
||||
<data name="WindowTop" xml:space="preserve">
|
||||
<value>Uygulama penceresini her zaman en üstte tut</value>
|
||||
</data>
|
||||
</root>
|
||||
<data name="Zoom" xml:space="preserve">
|
||||
<value>Yakınlaştır</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -144,6 +144,9 @@
|
||||
<data name="AlertUltimateTitle" xml:space="preserve">
|
||||
<value>Перезавантажити зараз?</value>
|
||||
</data>
|
||||
<data name="AllyController" xml:space="preserve">
|
||||
<value>Ally Контролер</value>
|
||||
</data>
|
||||
<data name="AnimationSpeed" xml:space="preserve">
|
||||
<value>Швидкість Анімації</value>
|
||||
</data>
|
||||
@@ -169,7 +172,7 @@
|
||||
<value>Автоматично застосовувати Windows Power Modes</value>
|
||||
</data>
|
||||
<data name="APUMemory" xml:space="preserve">
|
||||
<value>Memory Assigned to GPU</value>
|
||||
<value>Пам'ять призначена на GPU</value>
|
||||
</data>
|
||||
<data name="AsusServicesRunning" xml:space="preserve">
|
||||
<value>Кількість запущених сервісів Asus</value>
|
||||
@@ -246,14 +249,26 @@
|
||||
<data name="Awake" xml:space="preserve">
|
||||
<value>Робота</value>
|
||||
</data>
|
||||
<data name="BacklightLow" xml:space="preserve">
|
||||
<value>Низька</value>
|
||||
</data>
|
||||
<data name="BacklightMax" xml:space="preserve">
|
||||
<value>Максимальна</value>
|
||||
</data>
|
||||
<data name="BacklightMid" xml:space="preserve">
|
||||
<value>Середня</value>
|
||||
</data>
|
||||
<data name="BacklightOff" xml:space="preserve">
|
||||
<value>Вимкнена</value>
|
||||
</data>
|
||||
<data name="BacklightTimeout" xml:space="preserve">
|
||||
<value>Тайм-аут на зарядці / на батареї (0 - УВІМК)</value>
|
||||
</data>
|
||||
<data name="BacklightTimeoutBattery" xml:space="preserve">
|
||||
<value>Backlight Timeout when on battery</value>
|
||||
<value>Тайм-аут підсвітки на батареї</value>
|
||||
</data>
|
||||
<data name="BacklightTimeoutPlugged" xml:space="preserve">
|
||||
<value>Backlight Timeout when plugged</value>
|
||||
<value>Тайм-аут підсвітки на зарядці</value>
|
||||
</data>
|
||||
<data name="Balanced" xml:space="preserve">
|
||||
<value>Баланс</value>
|
||||
@@ -270,6 +285,15 @@
|
||||
<data name="BatteryLimitFull" xml:space="preserve">
|
||||
<value>Одноразовий заряд до 100%</value>
|
||||
</data>
|
||||
<data name="Binding" xml:space="preserve">
|
||||
<value>Прив'язка</value>
|
||||
</data>
|
||||
<data name="BindingPrimary" xml:space="preserve">
|
||||
<value>Первинна</value>
|
||||
</data>
|
||||
<data name="BindingSecondary" xml:space="preserve">
|
||||
<value>Додаткова</value>
|
||||
</data>
|
||||
<data name="BiosAndDriverUpdates" xml:space="preserve">
|
||||
<value>Оновлення BIOS та драйверів</value>
|
||||
</data>
|
||||
@@ -288,6 +312,9 @@
|
||||
<data name="BrightnessUp" xml:space="preserve">
|
||||
<value>Підвищити яскравість</value>
|
||||
</data>
|
||||
<data name="BWTrayIcon" xml:space="preserve">
|
||||
<value>Чорно-біла іконка трею</value>
|
||||
</data>
|
||||
<data name="Calibrate" xml:space="preserve">
|
||||
<value>Калібрування</value>
|
||||
</data>
|
||||
@@ -297,6 +324,12 @@
|
||||
<data name="Color" xml:space="preserve">
|
||||
<value>Колір</value>
|
||||
</data>
|
||||
<data name="Contrast" xml:space="preserve">
|
||||
<value>Контраст</value>
|
||||
</data>
|
||||
<data name="Controller" xml:space="preserve">
|
||||
<value>Контролер</value>
|
||||
</data>
|
||||
<data name="CPUBoost" xml:space="preserve">
|
||||
<value>CPU Boost</value>
|
||||
</data>
|
||||
@@ -309,12 +342,21 @@
|
||||
<data name="Default" xml:space="preserve">
|
||||
<value>За замовчуванням</value>
|
||||
</data>
|
||||
<data name="DisableController" xml:space="preserve">
|
||||
<value>Вимкнути контролер</value>
|
||||
</data>
|
||||
<data name="DisableOnLidClose" xml:space="preserve">
|
||||
<value>Вимкнути при закритті</value>
|
||||
</data>
|
||||
<data name="DisableOverdrive" xml:space="preserve">
|
||||
<value>Вимкнути овердрайв дисплею</value>
|
||||
</data>
|
||||
<data name="Discharging" xml:space="preserve">
|
||||
<value>Розрядка</value>
|
||||
</data>
|
||||
<data name="DownloadColorProfiles" xml:space="preserve">
|
||||
<value>Завантажити Колірні Профілі</value>
|
||||
</data>
|
||||
<data name="DownloadUpdate" xml:space="preserve">
|
||||
<value>Завантажити</value>
|
||||
</data>
|
||||
@@ -327,6 +369,9 @@
|
||||
<data name="EcoMode" xml:space="preserve">
|
||||
<value>Еко</value>
|
||||
</data>
|
||||
<data name="EnableGPUOnShutdown" xml:space="preserve">
|
||||
<value>Увімкнути GPU при вимиканні лептопу</value>
|
||||
</data>
|
||||
<data name="EnableOptimusText" xml:space="preserve">
|
||||
<value>Вимкнення dGPU коли NVIDIA Display Mode не встановлено в режим Optimus може спричинити проблеми з управлінням яскравістю до наступного перезавантаження.
|
||||
|
||||
@@ -338,6 +383,9 @@
|
||||
<data name="EnergySettings" xml:space="preserve">
|
||||
<value>Налаштування Енергії</value>
|
||||
</data>
|
||||
<data name="Export" xml:space="preserve">
|
||||
<value>Експортувати Профіль</value>
|
||||
</data>
|
||||
<data name="Extra" xml:space="preserve">
|
||||
<value>Додатково</value>
|
||||
</data>
|
||||
@@ -371,9 +419,18 @@
|
||||
<data name="FansPower" xml:space="preserve">
|
||||
<value>Кулери та Потужність</value>
|
||||
</data>
|
||||
<data name="FlickerFreeDimming" xml:space="preserve">
|
||||
<value>Безмерехтливе Затемнення</value>
|
||||
</data>
|
||||
<data name="FnLock" xml:space="preserve">
|
||||
<value>Гарячі клавіші Fn+F працюють без натискання Fn</value>
|
||||
</data>
|
||||
<data name="FnLockOff" xml:space="preserve">
|
||||
<value>FN-Lock Вимк.</value>
|
||||
</data>
|
||||
<data name="FnLockOn" xml:space="preserve">
|
||||
<value>FN-Lock Увімк.</value>
|
||||
</data>
|
||||
<data name="GPUBoost" xml:space="preserve">
|
||||
<value>Dynamic Boost</value>
|
||||
</data>
|
||||
@@ -398,6 +455,9 @@
|
||||
<data name="GPUModeUltimate" xml:space="preserve">
|
||||
<value>Ексклюзивний dGPU</value>
|
||||
</data>
|
||||
<data name="GPUPower" xml:space="preserve">
|
||||
<value>Потужність GPU</value>
|
||||
</data>
|
||||
<data name="GPUSettings" xml:space="preserve">
|
||||
<value>Параметри GPU</value>
|
||||
</data>
|
||||
@@ -410,6 +470,12 @@
|
||||
<data name="High" xml:space="preserve">
|
||||
<value>Висока</value>
|
||||
</data>
|
||||
<data name="ImageRotation" xml:space="preserve">
|
||||
<value>Поворот</value>
|
||||
</data>
|
||||
<data name="Import" xml:space="preserve">
|
||||
<value>Імпорт Профілю</value>
|
||||
</data>
|
||||
<data name="KeyBindings" xml:space="preserve">
|
||||
<value>Прив'язки клавіш</value>
|
||||
</data>
|
||||
@@ -428,6 +494,9 @@
|
||||
<data name="LaptopScreen" xml:space="preserve">
|
||||
<value>Дисплей</value>
|
||||
</data>
|
||||
<data name="LEDStatusIndicators" xml:space="preserve">
|
||||
<value>LED-Індикатори стану</value>
|
||||
</data>
|
||||
<data name="Lid" xml:space="preserve">
|
||||
<value>Кришка</value>
|
||||
</data>
|
||||
@@ -437,12 +506,21 @@
|
||||
<data name="Lighting" xml:space="preserve">
|
||||
<value>Ілюмінація</value>
|
||||
</data>
|
||||
<data name="LockScreen" xml:space="preserve">
|
||||
<value>Блокування екрану</value>
|
||||
</data>
|
||||
<data name="Logo" xml:space="preserve">
|
||||
<value>Лого</value>
|
||||
</data>
|
||||
<data name="Low" xml:space="preserve">
|
||||
<value>Низька</value>
|
||||
</data>
|
||||
<data name="LSDeadzones" xml:space="preserve">
|
||||
<value>Лівий стік - Deadzone</value>
|
||||
</data>
|
||||
<data name="LTDeadzones" xml:space="preserve">
|
||||
<value>Лівий тригер - Deadzone</value>
|
||||
</data>
|
||||
<data name="MatrixAudio" xml:space="preserve">
|
||||
<value>Аудіо візуалізатор</value>
|
||||
</data>
|
||||
@@ -491,6 +569,9 @@
|
||||
<data name="MouseButtonResponse" xml:space="preserve">
|
||||
<value>Відповідь Кнопок</value>
|
||||
</data>
|
||||
<data name="MouseImportFailed" xml:space="preserve">
|
||||
<value>Не вдалося імпортувати профіль. Вибраний файл не є допустимим профілем миші або є пошкодженим.</value>
|
||||
</data>
|
||||
<data name="MouseLiftOffDistance" xml:space="preserve">
|
||||
<value>Відстань підйому</value>
|
||||
</data>
|
||||
@@ -504,7 +585,13 @@
|
||||
<value>Синхронізувати з мишею</value>
|
||||
</data>
|
||||
<data name="Multizone" xml:space="preserve">
|
||||
<value>Мультизони</value>
|
||||
<value>Мульти зона</value>
|
||||
</data>
|
||||
<data name="MultizoneStrong" xml:space="preserve">
|
||||
<value>Мульти зона сильна</value>
|
||||
</data>
|
||||
<data name="Muted" xml:space="preserve">
|
||||
<value>Беззвучний</value>
|
||||
</data>
|
||||
<data name="MuteMic" xml:space="preserve">
|
||||
<value>Вимкнути мікрофон</value>
|
||||
@@ -521,6 +608,15 @@
|
||||
<data name="NotConnected" xml:space="preserve">
|
||||
<value>Не під'єднано</value>
|
||||
</data>
|
||||
<data name="Off" xml:space="preserve">
|
||||
<value>Вимк.</value>
|
||||
</data>
|
||||
<data name="On" xml:space="preserve">
|
||||
<value>Увімк.</value>
|
||||
</data>
|
||||
<data name="OneZone" xml:space="preserve">
|
||||
<value>Одна зона</value>
|
||||
</data>
|
||||
<data name="OpenGHelper" xml:space="preserve">
|
||||
<value>Відкрити вікно G-Helper</value>
|
||||
</data>
|
||||
@@ -569,15 +665,27 @@
|
||||
<data name="Quit" xml:space="preserve">
|
||||
<value>Вихід</value>
|
||||
</data>
|
||||
<data name="Reset" xml:space="preserve">
|
||||
<value>Скинути</value>
|
||||
</data>
|
||||
<data name="RestartGPU" xml:space="preserve">
|
||||
<value>Щось використовує dGPU та запобігає Еко-режиму. Дозвольте G-Helper спробувати перезапустити dGPU у менеджері пристрою? (Будь ласка, продовжуйте на власний ризик)</value>
|
||||
</data>
|
||||
<data name="RPM" xml:space="preserve">
|
||||
<value>Оберти</value>
|
||||
</data>
|
||||
<data name="RSDeadzones" xml:space="preserve">
|
||||
<value>Правий стік - Deadzone</value>
|
||||
</data>
|
||||
<data name="RTDeadzones" xml:space="preserve">
|
||||
<value>Правий тригер - Deadzone</value>
|
||||
</data>
|
||||
<data name="RunOnStartup" xml:space="preserve">
|
||||
<value>Запускати на старті</value>
|
||||
</data>
|
||||
<data name="ScalingQuality" xml:space="preserve">
|
||||
<value>Масштабування</value>
|
||||
</data>
|
||||
<data name="ScreenPadDown" xml:space="preserve">
|
||||
<value>Зменшити яскравість Screenpad</value>
|
||||
</data>
|
||||
@@ -632,6 +740,12 @@
|
||||
<data name="ToggleScreen" xml:space="preserve">
|
||||
<value>Вимкнути екран</value>
|
||||
</data>
|
||||
<data name="ToggleTouchscreen" xml:space="preserve">
|
||||
<value>Сенсорний екран</value>
|
||||
</data>
|
||||
<data name="Touchscreen" xml:space="preserve">
|
||||
<value/>
|
||||
</data>
|
||||
<data name="Turbo" xml:space="preserve">
|
||||
<value>Турбо</value>
|
||||
</data>
|
||||
@@ -639,7 +753,7 @@
|
||||
<value>Вимкнений</value>
|
||||
</data>
|
||||
<data name="TurnOffOnBattery" xml:space="preserve">
|
||||
<value>Вимикати на батареї</value>
|
||||
<value>Вимкнути на батареї</value>
|
||||
</data>
|
||||
<data name="UltimateGPUTooltip" xml:space="preserve">
|
||||
<value>Підключає екран лептопу до dGPU, щоб підвищити FPS</value>
|
||||
@@ -650,12 +764,27 @@
|
||||
<data name="UndervoltingRisky" xml:space="preserve">
|
||||
<value>Undervolting є експериментальним. Якщо значення занизькі для вашого CPU, це може спричинити нестабільність або пошкодити дані. Якщо хочете спробувати - почніть з малих значень, натисніть «Застосувати» та перевірте, чи стабільно все працює.</value>
|
||||
</data>
|
||||
<data name="Unmuted" xml:space="preserve">
|
||||
<value>Активний</value>
|
||||
</data>
|
||||
<data name="Updates" xml:space="preserve">
|
||||
<value>Оновлення</value>
|
||||
</data>
|
||||
<data name="VersionLabel" xml:space="preserve">
|
||||
<value>Версія</value>
|
||||
</data>
|
||||
<data name="VibrationStrength" xml:space="preserve">
|
||||
<value>Сила вібрації</value>
|
||||
</data>
|
||||
<data name="VisualMode" xml:space="preserve">
|
||||
<value>Візуальний режим</value>
|
||||
</data>
|
||||
<data name="VisualModesHDR" xml:space="preserve">
|
||||
<value>Візуальні режими недоступні, коли HDR активний</value>
|
||||
</data>
|
||||
<data name="VisualModesScreen" xml:space="preserve">
|
||||
<value>Візуальні режими недоступні, коли екран вимкнений</value>
|
||||
</data>
|
||||
<data name="VolumeDown" xml:space="preserve">
|
||||
<value>Зменшення гучності</value>
|
||||
</data>
|
||||
@@ -668,4 +797,7 @@
|
||||
<data name="WindowTop" xml:space="preserve">
|
||||
<value>Тримати вікно завжди зверху</value>
|
||||
</data>
|
||||
</root>
|
||||
<data name="Zoom" xml:space="preserve">
|
||||
<value>Зум</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -144,6 +144,9 @@
|
||||
<data name="AlertUltimateTitle" xml:space="preserve">
|
||||
<value>Khởi động lại ngay?</value>
|
||||
</data>
|
||||
<data name="AllyController" xml:space="preserve">
|
||||
<value>Ally Controller</value>
|
||||
</data>
|
||||
<data name="AnimationSpeed" xml:space="preserve">
|
||||
<value>Tốc độ</value>
|
||||
</data>
|
||||
@@ -246,6 +249,18 @@
|
||||
<data name="Awake" xml:space="preserve">
|
||||
<value>Đang bật</value>
|
||||
</data>
|
||||
<data name="BacklightLow" xml:space="preserve">
|
||||
<value>Low</value>
|
||||
</data>
|
||||
<data name="BacklightMax" xml:space="preserve">
|
||||
<value>Max</value>
|
||||
</data>
|
||||
<data name="BacklightMid" xml:space="preserve">
|
||||
<value>Mid</value>
|
||||
</data>
|
||||
<data name="BacklightOff" xml:space="preserve">
|
||||
<value>Off</value>
|
||||
</data>
|
||||
<data name="BacklightTimeout" xml:space="preserve">
|
||||
<value>Số giây để tắt đèn nền bàn phím(khi dùng pin)</value>
|
||||
</data>
|
||||
@@ -270,6 +285,15 @@
|
||||
<data name="BatteryLimitFull" xml:space="preserve">
|
||||
<value>One time charge to 100%</value>
|
||||
</data>
|
||||
<data name="Binding" xml:space="preserve">
|
||||
<value>Binding</value>
|
||||
</data>
|
||||
<data name="BindingPrimary" xml:space="preserve">
|
||||
<value>Primary</value>
|
||||
</data>
|
||||
<data name="BindingSecondary" xml:space="preserve">
|
||||
<value>Secondary</value>
|
||||
</data>
|
||||
<data name="BiosAndDriverUpdates" xml:space="preserve">
|
||||
<value>Cập nhật BIOS và driver</value>
|
||||
</data>
|
||||
@@ -288,6 +312,9 @@
|
||||
<data name="BrightnessUp" xml:space="preserve">
|
||||
<value>Tăng độ sáng</value>
|
||||
</data>
|
||||
<data name="BWTrayIcon" xml:space="preserve">
|
||||
<value>Black and white tray icon</value>
|
||||
</data>
|
||||
<data name="Calibrate" xml:space="preserve">
|
||||
<value>Calibrate</value>
|
||||
</data>
|
||||
@@ -297,6 +324,12 @@
|
||||
<data name="Color" xml:space="preserve">
|
||||
<value>Màu</value>
|
||||
</data>
|
||||
<data name="Contrast" xml:space="preserve">
|
||||
<value>Contrast</value>
|
||||
</data>
|
||||
<data name="Controller" xml:space="preserve">
|
||||
<value>Controller</value>
|
||||
</data>
|
||||
<data name="CPUBoost" xml:space="preserve">
|
||||
<value>Tăng tốc CPU</value>
|
||||
</data>
|
||||
@@ -309,12 +342,21 @@
|
||||
<data name="Default" xml:space="preserve">
|
||||
<value>Mặc định</value>
|
||||
</data>
|
||||
<data name="DisableController" xml:space="preserve">
|
||||
<value>Disable Controller</value>
|
||||
</data>
|
||||
<data name="DisableOnLidClose" xml:space="preserve">
|
||||
<value>Disable on lid close</value>
|
||||
</data>
|
||||
<data name="DisableOverdrive" xml:space="preserve">
|
||||
<value>Tắt Overdrive</value>
|
||||
</data>
|
||||
<data name="Discharging" xml:space="preserve">
|
||||
<value>Đang không sạc</value>
|
||||
</data>
|
||||
<data name="DownloadColorProfiles" xml:space="preserve">
|
||||
<value>Download Color Profiles</value>
|
||||
</data>
|
||||
<data name="DownloadUpdate" xml:space="preserve">
|
||||
<value>Tải xuống</value>
|
||||
</data>
|
||||
@@ -327,6 +369,9 @@
|
||||
<data name="EcoMode" xml:space="preserve">
|
||||
<value>Tiết kiệm</value>
|
||||
</data>
|
||||
<data name="EnableGPUOnShutdown" xml:space="preserve">
|
||||
<value>Enable GPU on shutdown (prevents issue with Eco mode)</value>
|
||||
</data>
|
||||
<data name="EnableOptimusText" xml:space="preserve">
|
||||
<value>Disabling the dGPU by going into Eco mode while Display Mode in NVIDIA Control Panel is not set to Optimus might cause problems with brightness controls until after the next reboot.
|
||||
|
||||
@@ -338,6 +383,9 @@ Do you still want to continue?</value>
|
||||
<data name="EnergySettings" xml:space="preserve">
|
||||
<value>Energy Settings</value>
|
||||
</data>
|
||||
<data name="Export" xml:space="preserve">
|
||||
<value>Export Profile</value>
|
||||
</data>
|
||||
<data name="Extra" xml:space="preserve">
|
||||
<value>Thêm</value>
|
||||
</data>
|
||||
@@ -371,9 +419,18 @@ Do you still want to continue?</value>
|
||||
<data name="FansPower" xml:space="preserve">
|
||||
<value>Quạt + Công suất</value>
|
||||
</data>
|
||||
<data name="FlickerFreeDimming" xml:space="preserve">
|
||||
<value>Flicker-free Dimming</value>
|
||||
</data>
|
||||
<data name="FnLock" xml:space="preserve">
|
||||
<value>Process Fn+F hotkeys without Fn</value>
|
||||
</data>
|
||||
<data name="FnLockOff" xml:space="preserve">
|
||||
<value>FN-Lock Off</value>
|
||||
</data>
|
||||
<data name="FnLockOn" xml:space="preserve">
|
||||
<value>FN-Lock On</value>
|
||||
</data>
|
||||
<data name="GPUBoost" xml:space="preserve">
|
||||
<value>Tăng tốc năng động</value>
|
||||
</data>
|
||||
@@ -398,6 +455,9 @@ Do you still want to continue?</value>
|
||||
<data name="GPUModeUltimate" xml:space="preserve">
|
||||
<value>Chỉ dùng GPU rời</value>
|
||||
</data>
|
||||
<data name="GPUPower" xml:space="preserve">
|
||||
<value>GPU Power</value>
|
||||
</data>
|
||||
<data name="GPUSettings" xml:space="preserve">
|
||||
<value>Cài đặt GPU</value>
|
||||
</data>
|
||||
@@ -410,6 +470,12 @@ Do you still want to continue?</value>
|
||||
<data name="High" xml:space="preserve">
|
||||
<value>High</value>
|
||||
</data>
|
||||
<data name="ImageRotation" xml:space="preserve">
|
||||
<value>Image Rotation</value>
|
||||
</data>
|
||||
<data name="Import" xml:space="preserve">
|
||||
<value>Import Profile</value>
|
||||
</data>
|
||||
<data name="KeyBindings" xml:space="preserve">
|
||||
<value>Tổ hợp phím</value>
|
||||
</data>
|
||||
@@ -428,6 +494,9 @@ Do you still want to continue?</value>
|
||||
<data name="LaptopScreen" xml:space="preserve">
|
||||
<value>Màn hình Laptop</value>
|
||||
</data>
|
||||
<data name="LEDStatusIndicators" xml:space="preserve">
|
||||
<value>LED Status Indicators</value>
|
||||
</data>
|
||||
<data name="Lid" xml:space="preserve">
|
||||
<value>Màn gập</value>
|
||||
</data>
|
||||
@@ -437,12 +506,21 @@ Do you still want to continue?</value>
|
||||
<data name="Lighting" xml:space="preserve">
|
||||
<value>Lighting</value>
|
||||
</data>
|
||||
<data name="LockScreen" xml:space="preserve">
|
||||
<value>Lock Screen</value>
|
||||
</data>
|
||||
<data name="Logo" xml:space="preserve">
|
||||
<value>Logo</value>
|
||||
</data>
|
||||
<data name="Low" xml:space="preserve">
|
||||
<value>Low</value>
|
||||
</data>
|
||||
<data name="LSDeadzones" xml:space="preserve">
|
||||
<value>Left Stick Deadzones</value>
|
||||
</data>
|
||||
<data name="LTDeadzones" xml:space="preserve">
|
||||
<value>Left Trigger Deadzones</value>
|
||||
</data>
|
||||
<data name="MatrixAudio" xml:space="preserve">
|
||||
<value>Sóng nhạc</value>
|
||||
</data>
|
||||
@@ -491,6 +569,9 @@ Do you still want to continue?</value>
|
||||
<data name="MouseButtonResponse" xml:space="preserve">
|
||||
<value>Button Response</value>
|
||||
</data>
|
||||
<data name="MouseImportFailed" xml:space="preserve">
|
||||
<value>Import failed. Selected file is not a valid mouse profile or corrutpted.</value>
|
||||
</data>
|
||||
<data name="MouseLiftOffDistance" xml:space="preserve">
|
||||
<value>Lift Off Distance</value>
|
||||
</data>
|
||||
@@ -504,7 +585,13 @@ Do you still want to continue?</value>
|
||||
<value>Synchronize with mouse</value>
|
||||
</data>
|
||||
<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 name="Muted" xml:space="preserve">
|
||||
<value>Muted</value>
|
||||
</data>
|
||||
<data name="MuteMic" xml:space="preserve">
|
||||
<value>Tắt Mic</value>
|
||||
@@ -521,6 +608,15 @@ Do you still want to continue?</value>
|
||||
<data name="NotConnected" xml:space="preserve">
|
||||
<value>Not Connected</value>
|
||||
</data>
|
||||
<data name="Off" xml:space="preserve">
|
||||
<value>Off</value>
|
||||
</data>
|
||||
<data name="On" xml:space="preserve">
|
||||
<value>On</value>
|
||||
</data>
|
||||
<data name="OneZone" xml:space="preserve">
|
||||
<value>One Zone</value>
|
||||
</data>
|
||||
<data name="OpenGHelper" xml:space="preserve">
|
||||
<value>Mở cửa sổ G-Helper</value>
|
||||
</data>
|
||||
@@ -569,15 +665,27 @@ Do you still want to continue?</value>
|
||||
<data name="Quit" xml:space="preserve">
|
||||
<value>Thoát</value>
|
||||
</data>
|
||||
<data name="Reset" xml:space="preserve">
|
||||
<value>Reset</value>
|
||||
</data>
|
||||
<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>
|
||||
</data>
|
||||
<data name="RPM" xml:space="preserve">
|
||||
<value>VTP</value>
|
||||
</data>
|
||||
<data name="RSDeadzones" xml:space="preserve">
|
||||
<value>Right Stick Deadzones</value>
|
||||
</data>
|
||||
<data name="RTDeadzones" xml:space="preserve">
|
||||
<value>Right Trigger Deadzones</value>
|
||||
</data>
|
||||
<data name="RunOnStartup" xml:space="preserve">
|
||||
<value>Chạy khi khởi động</value>
|
||||
</data>
|
||||
<data name="ScalingQuality" xml:space="preserve">
|
||||
<value>Scaling Quality</value>
|
||||
</data>
|
||||
<data name="ScreenPadDown" xml:space="preserve">
|
||||
<value>Screenpad Brightness Down</value>
|
||||
</data>
|
||||
@@ -632,6 +740,12 @@ Do you still want to continue?</value>
|
||||
<data name="ToggleScreen" xml:space="preserve">
|
||||
<value>Bật tắt màn hình</value>
|
||||
</data>
|
||||
<data name="ToggleTouchscreen" xml:space="preserve">
|
||||
<value>Toggle Touchscreen</value>
|
||||
</data>
|
||||
<data name="Touchscreen" xml:space="preserve">
|
||||
<value/>
|
||||
</data>
|
||||
<data name="Turbo" xml:space="preserve">
|
||||
<value>Turbo</value>
|
||||
</data>
|
||||
@@ -650,12 +764,27 @@ Do you still want to continue?</value>
|
||||
<data name="UndervoltingRisky" xml:space="preserve">
|
||||
<value>Undervolting is an experimental and risky feature. If applied values are too low for your hardware, it can become unstable, shut down or cause data corruption. If you want to try - start from small values first, click Apply and test what works for you.</value>
|
||||
</data>
|
||||
<data name="Unmuted" xml:space="preserve">
|
||||
<value>Unmuted</value>
|
||||
</data>
|
||||
<data name="Updates" xml:space="preserve">
|
||||
<value>Updates</value>
|
||||
</data>
|
||||
<data name="VersionLabel" xml:space="preserve">
|
||||
<value>Phiên bản</value>
|
||||
</data>
|
||||
<data name="VibrationStrength" xml:space="preserve">
|
||||
<value>Vibration Strength</value>
|
||||
</data>
|
||||
<data name="VisualMode" xml:space="preserve">
|
||||
<value>Visual Mode</value>
|
||||
</data>
|
||||
<data name="VisualModesHDR" xml:space="preserve">
|
||||
<value>Visual Modes are not available when HDR is active</value>
|
||||
</data>
|
||||
<data name="VisualModesScreen" xml:space="preserve">
|
||||
<value>Visual Modes are not available when laptop screen is off</value>
|
||||
</data>
|
||||
<data name="VolumeDown" xml:space="preserve">
|
||||
<value>Giảm âm lượng</value>
|
||||
</data>
|
||||
@@ -668,4 +797,7 @@ Do you still want to continue?</value>
|
||||
<data name="WindowTop" xml:space="preserve">
|
||||
<value>Giữ cửa sổ ở trên cùng</value>
|
||||
</data>
|
||||
</root>
|
||||
<data name="Zoom" xml:space="preserve">
|
||||
<value>Zoom</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user