Compare commits
938 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ef45baecbd | ||
|
|
30e75b2100 | ||
|
|
563472b489 | ||
|
|
724a9adab8 | ||
|
|
9686c28f6a | ||
|
|
03d0aeb879 | ||
|
|
96afc62165 | ||
|
|
fd3ea9afe9 | ||
|
|
853d38a427 | ||
|
|
76a2f64fa6 | ||
|
|
6c0e116918 | ||
|
|
c1abf90559 | ||
|
|
eb085a6534 | ||
|
|
78b85d59aa | ||
|
|
0f900e01fa | ||
|
|
f754d4d865 | ||
|
|
474c4e888d | ||
|
|
8f8ca453da | ||
|
|
8bd00fd2f1 | ||
|
|
61958aba2c | ||
|
|
3fa6f44828 | ||
|
|
31be72efb2 | ||
|
|
405c20f056 | ||
|
|
5f0fb4ebc3 | ||
|
|
c6a2b06fdf | ||
|
|
8f38eba23e | ||
|
|
79164aae72 | ||
|
|
e5d3ac0d92 | ||
|
|
f7c8c16344 | ||
|
|
b1fccbf175 | ||
|
|
cc1e4bc9f8 | ||
|
|
3812f3031c | ||
|
|
837f97d491 | ||
|
|
2dab825af4 | ||
|
|
a78c1ba50d | ||
|
|
50aea3b5ba | ||
|
|
6a971595f7 | ||
|
|
a1d944a9a0 | ||
|
|
8b49312bad | ||
|
|
95b279b0e9 | ||
|
|
01477d8b25 | ||
|
|
4e5182eb73 | ||
|
|
8d0b70a5dc | ||
|
|
37a241f136 | ||
|
|
ace7566c2a | ||
|
|
0b646cedb5 | ||
|
|
a0d2fb6a4e | ||
|
|
59a556794f | ||
|
|
cca474a5a5 | ||
|
|
ae05b997c7 | ||
|
|
88a6e18e78 | ||
|
|
3de72df806 | ||
|
|
da176085cd | ||
|
|
2b0ac7c087 | ||
|
|
94ecf4a069 | ||
|
|
9355e2f50c | ||
|
|
058ae3d185 | ||
|
|
3c1e6395a4 | ||
|
|
236d10c14a | ||
|
|
53f350da9a | ||
|
|
bb6819f240 | ||
|
|
8f53254dbc | ||
|
|
8ed73f6ae0 | ||
|
|
d59ccd7beb | ||
|
|
aeb11c9be1 | ||
|
|
a1c8e93034 | ||
|
|
00a11ea076 | ||
|
|
9115f707dc | ||
|
|
a2ec8de976 | ||
|
|
be7e5aa7d2 | ||
|
|
27124c9cdd | ||
|
|
44079ed69c | ||
|
|
07749cb2cc | ||
|
|
9d30acaba6 | ||
|
|
f3fdef780d | ||
|
|
1243d1381b | ||
|
|
3602f627e8 | ||
|
|
97fab64d32 | ||
|
|
e7b7f33b1b | ||
|
|
01c2171a62 | ||
|
|
321dc13531 | ||
|
|
4032e8be7b | ||
|
|
e52de1d1a7 | ||
|
|
7c38e823c1 | ||
|
|
e6defd3e55 | ||
|
|
3caf4f2cb3 | ||
|
|
3f897b12cf | ||
|
|
12d0126dd5 | ||
|
|
b218619b2b | ||
|
|
ae80076f36 | ||
|
|
ae9c69e469 | ||
|
|
cfd2919e88 | ||
|
|
985460d98e | ||
|
|
7596d988b9 | ||
|
|
50cad04b47 | ||
|
|
457d93b5c4 | ||
|
|
bb2af95344 | ||
|
|
34e76946f3 | ||
|
|
3f52c1255e | ||
|
|
924e32f027 | ||
|
|
2f735215e0 | ||
|
|
23ed1457d5 | ||
|
|
52214c1e15 | ||
|
|
09de4a5e05 | ||
|
|
69a6754483 | ||
|
|
078756600e | ||
|
|
5e2c7055d4 | ||
|
|
eb265be0a4 | ||
|
|
ad74acae0f | ||
|
|
d325cf1165 | ||
|
|
39bace76d3 | ||
|
|
44e8ef7cd8 | ||
|
|
85e4e3f9df | ||
|
|
ad94042a2c | ||
|
|
304fe58f27 | ||
|
|
edcd8be662 | ||
|
|
3970d5c0c2 | ||
|
|
4451eafe71 | ||
|
|
1c799fd474 | ||
|
|
17e25619da | ||
|
|
a4376b1492 | ||
|
|
d41faad9d9 | ||
|
|
0e6116b478 | ||
|
|
789127e8ff | ||
|
|
6ef9f32d4f | ||
|
|
1048dbed40 | ||
|
|
86c823bfde | ||
|
|
764f00ed3a | ||
|
|
3e4ea03437 | ||
|
|
0ef679e00d | ||
|
|
7f2bf2e905 | ||
|
|
ab8a8d5a35 | ||
|
|
a3b9c653fa | ||
|
|
ed48f5c559 | ||
|
|
d328f6b7ec | ||
|
|
16ba94d67d | ||
|
|
7978170133 | ||
|
|
ab313eb442 | ||
|
|
f40008d94a | ||
|
|
75e19d8d18 | ||
|
|
9bb978f612 | ||
|
|
7ea3fbc917 | ||
|
|
3af5b458ba | ||
|
|
b23542d681 | ||
|
|
e0616dee76 | ||
|
|
cd54e67b87 | ||
|
|
9d4779fd96 | ||
|
|
d4d147e5fc | ||
|
|
35b17bc620 | ||
|
|
3eb4af5e75 | ||
|
|
49f22a1f81 | ||
|
|
7cd5686488 | ||
|
|
0d63feec57 | ||
|
|
0ee8318ca4 | ||
|
|
8e45cdb47d | ||
|
|
a61a0506fd | ||
|
|
b3877492dd | ||
|
|
090f15fc47 | ||
|
|
d57692c5d1 | ||
|
|
60dfbee16d | ||
|
|
74f586744f | ||
|
|
9b93eaa9e9 | ||
|
|
a4eed2d939 | ||
|
|
34a3855941 | ||
|
|
dfd9abeba4 | ||
|
|
f937273fe3 | ||
|
|
8d601525b5 | ||
|
|
5dd3716012 | ||
|
|
a4709de918 | ||
|
|
c24b9b2c83 | ||
|
|
3686231cf2 | ||
|
|
4c12097063 | ||
|
|
da7f877f2a | ||
|
|
1dbb1e4af9 | ||
|
|
abea225b54 | ||
|
|
2053042e19 | ||
|
|
a3046258d4 | ||
|
|
207da8d0a6 | ||
|
|
f7ed3bf01f | ||
|
|
3c8cd407e1 | ||
|
|
ea56b6d06c | ||
|
|
d4c4296196 | ||
|
|
1b4be52ce6 | ||
|
|
286686f8c4 | ||
|
|
146852ca19 | ||
|
|
3f6181f77b | ||
|
|
8997a2eacb | ||
|
|
a6642a4db8 | ||
|
|
8a8ac75b29 | ||
|
|
1cc2422117 | ||
|
|
0fa3feef1f | ||
|
|
3ae923ba0e | ||
|
|
11e150b0f9 | ||
|
|
1ed8c234a3 | ||
|
|
948e600f96 | ||
|
|
1050e7d25f | ||
|
|
2ff1b07449 | ||
|
|
4466217063 | ||
|
|
01adf213bc | ||
|
|
c1308434b1 | ||
|
|
e854598cd2 | ||
|
|
f6ca5a3b96 | ||
|
|
8fe196bf8a | ||
|
|
3abb3c32f0 | ||
|
|
867c9c2989 | ||
|
|
c1c8e08c9d | ||
|
|
bdcfa4e722 | ||
|
|
7879bda5c1 | ||
|
|
ef062d1b10 | ||
|
|
8b6204ed2b | ||
|
|
f14d1a98f9 | ||
|
|
9ec518a952 | ||
|
|
8ee67f832c | ||
|
|
684e103e12 | ||
|
|
1d3fe0a924 | ||
|
|
b41ca3cd89 | ||
|
|
aa0e88129b | ||
|
|
4baa26d7a0 | ||
|
|
4c4088b28a | ||
|
|
ea8944c1cc | ||
|
|
d7e1e32654 | ||
|
|
9878e6da46 | ||
|
|
37320fb975 | ||
|
|
0148a71281 | ||
|
|
9f4baa9d99 | ||
|
|
5706d7b66d | ||
|
|
fb27bb8727 | ||
|
|
80c827974a | ||
|
|
d2e7d4551f | ||
|
|
308e3ed044 | ||
|
|
f563342eb5 | ||
|
|
16d6e4d471 | ||
|
|
030aa930a1 | ||
|
|
3a6df857da | ||
|
|
7d9340d9d5 | ||
|
|
9dca27c941 | ||
|
|
6f2b30f762 | ||
|
|
89be723132 | ||
|
|
ec1dde650f | ||
|
|
dbf1a32580 | ||
|
|
a81ed58983 | ||
|
|
33df960d04 | ||
|
|
337bee9f28 | ||
|
|
e57c41a254 | ||
|
|
62d06c65ab | ||
|
|
e70a935d7a | ||
|
|
c8e6ce678a | ||
|
|
22960af78b | ||
|
|
95e31a1d3f | ||
|
|
06ff83b75c | ||
|
|
1f6025a10f | ||
|
|
00bfa20fac | ||
|
|
1475d5ee66 | ||
|
|
b73d2e7107 | ||
|
|
a7fa76d63a | ||
|
|
e2c720346a | ||
|
|
01a853e865 | ||
|
|
6510de2bd8 | ||
|
|
7fc1de2ce3 | ||
|
|
b0d399e9ee | ||
|
|
7f680829ef | ||
|
|
603f956261 | ||
|
|
6d06df9004 | ||
|
|
5ea086d05b | ||
|
|
1ad819fa9d | ||
|
|
f2dd6205b5 | ||
|
|
b2a3c231ff | ||
|
|
f6c223a411 | ||
|
|
e7a2ba6805 | ||
|
|
5a08d9ccd6 | ||
|
|
5714a5e62a | ||
|
|
def7e5ac5a | ||
|
|
601bb20492 | ||
|
|
59600df977 | ||
|
|
e1b9730e9b | ||
|
|
e378551938 | ||
|
|
a82b2ef571 | ||
|
|
6157a01701 | ||
|
|
ec17ae8ce9 | ||
|
|
f719528017 | ||
|
|
966b45eb65 | ||
|
|
eeae6994a2 | ||
|
|
07809d882f | ||
|
|
e970f0b4e4 | ||
|
|
a36b6a3fdf | ||
|
|
4febca257f | ||
|
|
9d493b4d08 | ||
|
|
9a6bf5a481 | ||
|
|
40565e8b3d | ||
|
|
fb294c441d | ||
|
|
03b775370b | ||
|
|
1015f87533 | ||
|
|
cadc5d65cf | ||
|
|
3e2f104aa7 | ||
|
|
c87ce3b66f | ||
|
|
3093dd43a4 | ||
|
|
061bb39b60 | ||
|
|
d994c79d5d | ||
|
|
9ca66db07b | ||
|
|
4a382d4e29 | ||
|
|
69a5ba4470 | ||
|
|
4a890a4da7 | ||
|
|
023c1db417 | ||
|
|
7ef1f9315e | ||
|
|
a148c88435 | ||
|
|
f6ad169f9d | ||
|
|
e69a5559e8 | ||
|
|
500fe9abc4 | ||
|
|
55f4a340af | ||
|
|
b17ed3675e | ||
|
|
34031fa15d | ||
|
|
d6d31d8ae9 | ||
|
|
0bfee26418 | ||
|
|
71d6b96c10 | ||
|
|
d1b7250a7a | ||
|
|
39b81d0664 | ||
|
|
6337818dbc | ||
|
|
2257af6294 | ||
|
|
572257b645 | ||
|
|
6eb82b6b7e | ||
|
|
7ef703da42 | ||
|
|
f7f8aa550a | ||
|
|
8d693b5e01 | ||
|
|
e8bc8311e6 | ||
|
|
19c4a1d6c1 | ||
|
|
a53fa7178f | ||
|
|
09aee26cd4 | ||
|
|
0c6e486eb0 | ||
|
|
1561ed90f6 | ||
|
|
c2f965ced9 | ||
|
|
aed524bbc5 | ||
|
|
8cf7e4fd71 | ||
|
|
0ebcf12502 | ||
|
|
2af13e995f | ||
|
|
2e2562fefc | ||
|
|
1860c42114 | ||
|
|
8782ae8ad2 | ||
|
|
5d9cde10ce | ||
|
|
2ee2b31bc0 | ||
|
|
4cd92db141 | ||
|
|
8ee389e8cb | ||
|
|
971fe1fe7c | ||
|
|
e9df0f9f99 | ||
|
|
d465b13a03 | ||
|
|
412d4d7238 | ||
|
|
1dd93bfcff | ||
|
|
4ebf241306 | ||
|
|
1a714a39df | ||
|
|
b2b387c017 | ||
|
|
bf43328e7a | ||
|
|
4cba6bb03c | ||
|
|
72f9f156b8 | ||
|
|
c78719c3bf | ||
|
|
7e4ea640cf | ||
|
|
6ddca6d608 | ||
|
|
0fae17b42a | ||
|
|
7e834cea6d | ||
|
|
6fc546c69c | ||
|
|
e8baa21d42 | ||
|
|
4c3c65dded | ||
|
|
843f7d1a41 | ||
|
|
673d5a8c0e | ||
|
|
6bd4540106 | ||
|
|
5b57e6214e | ||
|
|
27f7935127 | ||
|
|
cd84819a03 | ||
|
|
0efc335232 | ||
|
|
b04fb9b789 | ||
|
|
354d5493c4 | ||
|
|
3e499befbc | ||
|
|
bc0fc2a29d | ||
|
|
229ace708d | ||
|
|
2708937554 | ||
|
|
66654537fe | ||
|
|
5d16d7b2d1 | ||
|
|
b3ebf85772 | ||
|
|
733f0999e1 | ||
|
|
2aec8856c7 | ||
|
|
a0d5a6f234 | ||
|
|
d9afd172f9 | ||
|
|
3b9368230c | ||
|
|
7d510a8ba7 | ||
|
|
e7f08bf0a7 | ||
|
|
ad3235bb96 | ||
|
|
b5b18f2a1a | ||
|
|
28f9df1cee | ||
|
|
cd2f2aeec8 | ||
|
|
a15d2cdbbe | ||
|
|
f489d59168 | ||
|
|
309ddbf08e | ||
|
|
1bc6fb9509 | ||
|
|
88e5628d7b | ||
|
|
27dc98af21 | ||
|
|
ce12eb61fd | ||
|
|
8ed62df8e2 | ||
|
|
f4b4be5466 | ||
|
|
9a33bea7e7 | ||
|
|
3f469897b0 | ||
|
|
1aa380f768 | ||
|
|
b0c3988a9d | ||
|
|
8c02bb59ee | ||
|
|
d60bf050cf | ||
|
|
a0f2e8bd92 | ||
|
|
63db623d07 | ||
|
|
ab0b2c4da2 | ||
|
|
091e159d10 | ||
|
|
91fa89b058 | ||
|
|
36d3543852 | ||
|
|
72ed687390 | ||
|
|
c56855bbc7 | ||
|
|
9377804b06 | ||
|
|
c50ac7a53b | ||
|
|
677e7b5a59 | ||
|
|
8066d07a76 | ||
|
|
e8d6081f9f | ||
|
|
5fb888262e | ||
|
|
a4ffab7b50 | ||
|
|
8d25803b71 | ||
|
|
df4baca6bc | ||
|
|
dc43ab4c8f | ||
|
|
2249174f96 | ||
|
|
6916a63de6 | ||
|
|
1064a80dad | ||
|
|
4844215462 | ||
|
|
b84889b03d | ||
|
|
b38bfd9c65 | ||
|
|
b807ad8002 | ||
|
|
f5854cde1b | ||
|
|
bde4849465 | ||
|
|
8677efdb06 | ||
|
|
2bbd5705c2 | ||
|
|
0bf9b73ba8 | ||
|
|
42fd54269e | ||
|
|
28f1c5c132 | ||
|
|
30b60a5b4e | ||
|
|
f0c9dd7956 | ||
|
|
78ee4fbba2 | ||
|
|
243b45326e | ||
|
|
4efe85aad7 | ||
|
|
975f918703 | ||
|
|
d9f4218bb4 | ||
|
|
671c15385a | ||
|
|
091b9aad5b | ||
|
|
e51b745a13 | ||
|
|
ad1ea92cbd | ||
|
|
66bfb80f3c | ||
|
|
ef6b453673 | ||
|
|
5496d22c48 | ||
|
|
7cd3a8276d | ||
|
|
99ea7285ba | ||
|
|
9722d46d00 | ||
|
|
b115cf82d9 | ||
|
|
f4e72b5a99 | ||
|
|
24596626bd | ||
|
|
6e761c0a4e | ||
|
|
2a3738f79e | ||
|
|
1a475f9fe8 | ||
|
|
819b026ec7 | ||
|
|
38a816a255 | ||
|
|
e8af1d2ccf | ||
|
|
33cd881ae6 | ||
|
|
a3b6af9f22 | ||
|
|
458007862e | ||
|
|
2fac5d76e9 | ||
|
|
1e886fc124 | ||
|
|
c075278180 | ||
|
|
333d0ee62f | ||
|
|
7a6b2011e4 | ||
|
|
e4c65cd84e | ||
|
|
10e2a2cf3b | ||
|
|
0d72731ce7 | ||
|
|
33fb645694 | ||
|
|
d369c9db8e | ||
|
|
a935cac791 | ||
|
|
a08a4b4f92 | ||
|
|
bd2ba612de | ||
|
|
306d186bef | ||
|
|
da67d62946 | ||
|
|
50cc295e9e | ||
|
|
bec97545d1 | ||
|
|
db5f0334c4 | ||
|
|
42c623c8ca | ||
|
|
d3c1e2ab56 | ||
|
|
57e60287ff | ||
|
|
007fbf8be5 | ||
|
|
d3baa47f93 | ||
|
|
225905ebff | ||
|
|
c08ddd5057 | ||
|
|
970dfc069d | ||
|
|
9b5f9a64fd | ||
|
|
6720e2429e | ||
|
|
5070b166d9 | ||
|
|
8b6d12d57b | ||
|
|
8888747137 | ||
|
|
d83b5b14a8 | ||
|
|
17ecd9cb82 | ||
|
|
0829b4bd9e | ||
|
|
fbc9652f20 | ||
|
|
c7d9d658f2 | ||
|
|
1c525618e2 | ||
|
|
9ead5dbd19 | ||
|
|
625e887dc1 | ||
|
|
60cbf894e5 | ||
|
|
95a3403898 | ||
|
|
fbf50e7466 | ||
|
|
e9b6988a69 | ||
|
|
8d49c96c57 | ||
|
|
ea56dcdda8 | ||
|
|
5ef8340ba3 | ||
|
|
51e1e85867 | ||
|
|
b24f740129 | ||
|
|
653d66c343 | ||
|
|
3dd4ae1bfc | ||
|
|
27c8ae79e0 | ||
|
|
53e3231452 | ||
|
|
bcf98d847a | ||
|
|
b6ee67d506 | ||
|
|
3f13747413 | ||
|
|
54046d5c9d | ||
|
|
8966f25e06 | ||
|
|
27fca2cb82 | ||
|
|
0d1a17a41a | ||
|
|
517e4a1142 | ||
|
|
a380f87b5f | ||
|
|
35d9d29d40 | ||
|
|
e1c9d81496 | ||
|
|
fbeeb3f015 | ||
|
|
48735a602a | ||
|
|
886f3349ae | ||
|
|
43c150a18b | ||
|
|
33bbc4a2c4 | ||
|
|
6c4a014e57 | ||
|
|
ce0dd9ceec | ||
|
|
3520ce6a3f | ||
|
|
376f8226ab | ||
|
|
6b6ae6bfef | ||
|
|
b13dbf0b59 | ||
|
|
0f7ac5c0ba | ||
|
|
25b94bc2c1 | ||
|
|
445730a833 | ||
|
|
fd1590142e | ||
|
|
c41adc54c5 | ||
|
|
a3f6b105de | ||
|
|
6e402d4931 | ||
|
|
c40a0d8835 | ||
|
|
28416dc3d2 | ||
|
|
1bde5b6836 | ||
|
|
d1619bca22 | ||
|
|
a123c38dfd | ||
|
|
e02d1850a2 | ||
|
|
bd37761fc5 | ||
|
|
897b901c7c | ||
|
|
da882c3c11 | ||
|
|
bd1a46d18d | ||
|
|
1c23c10c81 | ||
|
|
55f16d2c53 | ||
|
|
bac8b2b96c | ||
|
|
08328c91c4 | ||
|
|
6634ef094c | ||
|
|
3b6e6167b0 | ||
|
|
f55dfa7a73 | ||
|
|
93f0c970da | ||
|
|
aa94da9767 | ||
|
|
8340c18257 | ||
|
|
075e238c46 | ||
|
|
6e6b5ae98c | ||
|
|
2078ff867b | ||
|
|
446d88e16a | ||
|
|
ebacaa0341 | ||
|
|
8420abd915 | ||
|
|
650c41eb8a | ||
|
|
db3018bbf5 | ||
|
|
539f94d1c9 | ||
|
|
f56502d8f3 | ||
|
|
57ae0d008b | ||
|
|
e128a4868b | ||
|
|
3875e1c1bf | ||
|
|
dd508907eb | ||
|
|
765854cd10 | ||
|
|
69fe7c091a | ||
|
|
45a2b7f976 | ||
|
|
a8cf3407e7 | ||
|
|
b8163c3c3e | ||
|
|
9d27465492 | ||
|
|
bba71c3782 | ||
|
|
eaa8a3ca6c | ||
|
|
0b28770d1a | ||
|
|
45d3386a88 | ||
|
|
8df330b7aa | ||
|
|
69857e0548 | ||
|
|
b1388e10e5 | ||
|
|
6f7f127279 | ||
|
|
18c8f5783b | ||
|
|
cdf3eb1373 | ||
|
|
e5bcd0fc29 | ||
|
|
b0dc44a98e | ||
|
|
41a14cd3b7 | ||
|
|
b38c7cf834 | ||
|
|
2ee4c1e647 | ||
|
|
2bcf97a97a | ||
|
|
8eaec77b0c | ||
|
|
3161ba1022 | ||
|
|
496bba71d4 | ||
|
|
3e1e822e56 | ||
|
|
b1ea6da39b | ||
|
|
8d54abae4c | ||
|
|
3583aa11ed | ||
|
|
642c36bacf | ||
|
|
0343b32847 | ||
|
|
6e2d11952f | ||
|
|
d0ad69656a | ||
|
|
62789fa036 | ||
|
|
a7fe444067 | ||
|
|
1ef4740b09 | ||
|
|
c5e445da17 | ||
|
|
a52de9039d | ||
|
|
8db8e497a5 | ||
|
|
28c9b2710c | ||
|
|
6ba9b1f05a | ||
|
|
ea5d3e64ee | ||
|
|
636d28ac54 | ||
|
|
6e54286a60 | ||
|
|
b396012934 | ||
|
|
f3909acdfe | ||
|
|
3ed71444a7 | ||
|
|
cab7c6d49b | ||
|
|
368641523a | ||
|
|
42c76d25c6 | ||
|
|
3968fa50f5 | ||
|
|
4d985c7b7c | ||
|
|
235a52a701 | ||
|
|
9a63b660de | ||
|
|
8eb0222873 | ||
|
|
bf8636135a | ||
|
|
33cdee5497 | ||
|
|
564d7b10a0 | ||
|
|
a1a408da1d | ||
|
|
85a3506403 | ||
|
|
e860cf52c4 | ||
|
|
32a46e47e2 | ||
|
|
538e91aaa9 | ||
|
|
94eaf8144f | ||
|
|
404a8f110d | ||
|
|
14f5228754 | ||
|
|
5ec2d1b436 | ||
|
|
32c6ce3a44 | ||
|
|
b86148dfb3 | ||
|
|
26e94fad2b | ||
|
|
c306eb032f | ||
|
|
09944583dd | ||
|
|
8f4ad52469 | ||
|
|
5f4eca21e5 | ||
|
|
b4632a0b6e | ||
|
|
c14a11170d | ||
|
|
723005b28f | ||
|
|
72f25a686e | ||
|
|
b1fb940759 | ||
|
|
1020cd70d1 | ||
|
|
50a2f13dbe | ||
|
|
b1ffb8291f | ||
|
|
dbc8ddaf2b | ||
|
|
b42cb6be05 | ||
|
|
b63363336f | ||
|
|
b0ef161ed9 | ||
|
|
7d31237d5f | ||
|
|
3705e2abbf | ||
|
|
7d73529c83 | ||
|
|
2e59d49ad1 | ||
|
|
f61eef8961 | ||
|
|
efb4c085d5 | ||
|
|
4a045d6a91 | ||
|
|
da1a78cfa3 | ||
|
|
5b3697fbde | ||
|
|
726d759589 | ||
|
|
ed614332f7 | ||
|
|
9d46064dca | ||
|
|
407b49b3ad | ||
|
|
0e92d4ec0c | ||
|
|
4f96835e19 | ||
|
|
56d954d94e | ||
|
|
a8aeb1e3e9 | ||
|
|
415fd266a2 | ||
|
|
51f9e17380 | ||
|
|
28045ad33e | ||
|
|
e1bd44cd00 | ||
|
|
27d6026213 | ||
|
|
c67d5f10f8 | ||
|
|
5f73be07e8 | ||
|
|
0cad09d2bb | ||
|
|
54b2612bb8 | ||
|
|
82b4d19282 | ||
|
|
23a587c819 | ||
|
|
d69eecd494 | ||
|
|
0d4cc59f9a | ||
|
|
a394536a8c | ||
|
|
ebcd20ceb5 | ||
|
|
964c2f4dd2 | ||
|
|
e985047a54 | ||
|
|
bafc09a948 | ||
|
|
14a172b78b | ||
|
|
2eb324bf41 | ||
|
|
afe9ad5128 | ||
|
|
cc657d4ec2 | ||
|
|
1270dd474e | ||
|
|
e9ea70838d | ||
|
|
e7fde60150 | ||
|
|
2028113d58 | ||
|
|
4d55423fc7 | ||
|
|
d82874409d | ||
|
|
930ba2b0e7 | ||
|
|
4743f365a1 | ||
|
|
194ff5d62b | ||
|
|
5a726a01e0 | ||
|
|
fee13353ec | ||
|
|
cd3543fff4 | ||
|
|
c54f240346 | ||
|
|
7f55ad908a | ||
|
|
d586a82e37 | ||
|
|
722e06a02b | ||
|
|
2f76d2b775 | ||
|
|
7519977124 | ||
|
|
2e65b9ceb8 | ||
|
|
04bffca206 | ||
|
|
ff5a164c69 | ||
|
|
26b391a8d9 | ||
|
|
32eed33c82 | ||
|
|
639893f2e7 | ||
|
|
42b0cc1a64 | ||
|
|
6f7fa6c9d6 | ||
|
|
e6fb775dcd | ||
|
|
ece15ca9bb | ||
|
|
6b3c2788df | ||
|
|
067bdd20d7 | ||
|
|
97ce08c4c7 | ||
|
|
fbb9cbdc33 | ||
|
|
815adca198 | ||
|
|
ce3d5792ad | ||
|
|
74fc0b3ed7 | ||
|
|
604a1e8499 | ||
|
|
56ade0a0d1 | ||
|
|
6294a96aea | ||
|
|
9a95953a04 | ||
|
|
8d9c0c9092 | ||
|
|
e399ca672f | ||
|
|
660345d18a | ||
|
|
3844db6e79 | ||
|
|
5374e20757 | ||
|
|
bc6167c4ee | ||
|
|
7979f77284 | ||
|
|
71b90ed5cb | ||
|
|
9d2e236b3e | ||
|
|
d42657a3f0 | ||
|
|
e4818fae18 | ||
|
|
7b39bfcbc4 | ||
|
|
fd6f3c94dd | ||
|
|
dd10c07fb5 | ||
|
|
3bbfdcffdd | ||
|
|
6b7c4e1724 | ||
|
|
d3ad1091ec | ||
|
|
65177c448b | ||
|
|
1cdecb3810 | ||
|
|
20ea755a93 | ||
|
|
3b7bc95869 | ||
|
|
5380daad53 | ||
|
|
a5f4d848d4 | ||
|
|
cf0f9bfa01 | ||
|
|
68461e05da | ||
|
|
397b988851 | ||
|
|
eddb95e791 | ||
|
|
fa1183710b | ||
|
|
f468fd9c56 | ||
|
|
22f2aa93a8 | ||
|
|
c2c0a8f190 | ||
|
|
da3e6655c6 | ||
|
|
856959a4d1 | ||
|
|
9053ecb4ee | ||
|
|
33fd7fc09b | ||
|
|
d005f19755 | ||
|
|
1081007009 | ||
|
|
e6c0a67483 | ||
|
|
265e18985d | ||
|
|
8dc204e81a | ||
|
|
b9b604bfe3 | ||
|
|
05027cd458 | ||
|
|
9bbde49a5c | ||
|
|
cfca7786f3 | ||
|
|
be57edf2c5 | ||
|
|
f48901355a | ||
|
|
ca153fecfc | ||
|
|
e3227de8b4 | ||
|
|
4a202245b5 | ||
|
|
b94f9de582 | ||
|
|
7371949730 | ||
|
|
857926696c | ||
|
|
4451a6c185 | ||
|
|
ea6a71b7c3 | ||
|
|
625dddcfbb | ||
|
|
0cd769fc0c | ||
|
|
f5e0c92824 | ||
|
|
327a097bcf | ||
|
|
68626fa536 | ||
|
|
8935101058 | ||
|
|
6947c925b9 | ||
|
|
4562131078 | ||
|
|
21188f0942 | ||
|
|
1316559ebc | ||
|
|
cd576f9211 | ||
|
|
1bac8e8937 | ||
|
|
e6d0449f8f | ||
|
|
e0e40b7918 | ||
|
|
b59f16a425 | ||
|
|
46b110d93b | ||
|
|
7e8a654ada | ||
|
|
c2c33228a0 | ||
|
|
0a28f13d51 | ||
|
|
9f3a1da931 | ||
|
|
05874ad6be | ||
|
|
078e8046bd | ||
|
|
b07901485e | ||
|
|
a37cbef8a8 | ||
|
|
8debcc171c | ||
|
|
e230f0f474 | ||
|
|
558bd67591 | ||
|
|
a7e4892acf | ||
|
|
a0ba69c1aa | ||
|
|
1e7e80577d | ||
|
|
2177308b02 | ||
|
|
a8c2409ed1 | ||
|
|
1ef9e64a41 | ||
|
|
f0546485cf | ||
|
|
032e91e4b4 | ||
|
|
1447636eb7 | ||
|
|
966f96a02b | ||
|
|
954c014708 | ||
|
|
ad30dc5ae2 | ||
|
|
3f74344b99 | ||
|
|
96d8d88d09 | ||
|
|
8626b8283f | ||
|
|
d90025e8fe | ||
|
|
a572bd8553 | ||
|
|
0f5146e58c | ||
|
|
9c6c0f3506 | ||
|
|
8c36cc8b8c | ||
|
|
44435057d7 | ||
|
|
135bdeb638 | ||
|
|
93c93b620d | ||
|
|
247aefbf07 | ||
|
|
0a8397652f | ||
|
|
ecd5b01161 | ||
|
|
1e9893977d | ||
|
|
4fd6b13e0f | ||
|
|
d21d36c196 | ||
|
|
fbffbea641 | ||
|
|
9899c2cd27 | ||
|
|
10370e9ae2 | ||
|
|
d391e24784 | ||
|
|
430fef0ac4 | ||
|
|
8430842679 | ||
|
|
9d37e67901 | ||
|
|
e98ff53058 | ||
|
|
b47d3c34f2 | ||
|
|
54dd261df0 | ||
|
|
8eb7e41d16 | ||
|
|
2068bfb6fa | ||
|
|
dfc1ac712e | ||
|
|
d96587cb7b | ||
|
|
005550af55 | ||
|
|
543e2905cc | ||
|
|
a49b9bea61 | ||
|
|
9ea9cb2757 | ||
|
|
5543381a14 | ||
|
|
cd6dcf4640 | ||
|
|
d321ab477f | ||
|
|
1cd0f87278 | ||
|
|
936274fc3b | ||
|
|
2bbaa30322 | ||
|
|
cedd54d64d | ||
|
|
38604459a6 | ||
|
|
0a48a0dc6f | ||
|
|
85a23fbae1 | ||
|
|
01da76bdc4 | ||
|
|
1f1553e159 | ||
|
|
2af84941ca | ||
|
|
a82f558acf | ||
|
|
d13f7201ba | ||
|
|
89aa0c6133 | ||
|
|
1699467e0d | ||
|
|
7a27ab0513 | ||
|
|
2a0c68e4ec | ||
|
|
91c42d4d3f | ||
|
|
49d56166d7 | ||
|
|
1ac603b904 | ||
|
|
d5b2923c68 | ||
|
|
b80b375df1 | ||
|
|
2b2b60b90f | ||
|
|
3977283ecb | ||
|
|
d27778775d | ||
|
|
5c053bb5eb | ||
|
|
83658aa476 | ||
|
|
e0111b6f12 | ||
|
|
e308bbf928 | ||
|
|
1817fbc0fd | ||
|
|
3b149aea54 | ||
|
|
7575a2d736 | ||
|
|
17c198e711 | ||
|
|
1f8635e9c4 | ||
|
|
37e6c198a1 | ||
|
|
751c8779f4 | ||
|
|
9e2bf46636 | ||
|
|
3529323d93 | ||
|
|
ba52c1f8b5 | ||
|
|
bf2070d758 | ||
|
|
7a1de4cf0f | ||
|
|
caf0bee161 | ||
|
|
cedd694e8e | ||
|
|
d1c58585f5 | ||
|
|
0fce626c46 | ||
|
|
adb8f38c0d | ||
|
|
735ee42580 | ||
|
|
103ae81b8b | ||
|
|
8e351193e1 | ||
|
|
d57b9281a1 | ||
|
|
e07627377e | ||
|
|
8899f4b772 | ||
|
|
e7fd268927 | ||
|
|
c8fe3a4c43 | ||
|
|
19c2502c31 | ||
|
|
56dae4babd | ||
|
|
bc20d7527c | ||
|
|
3d325d4fe5 | ||
|
|
ba0141cfb1 | ||
|
|
d32c7b4056 | ||
|
|
63f064ba1c | ||
|
|
e5c9df31e4 | ||
|
|
c0a8e895f7 | ||
|
|
064ae44ecf | ||
|
|
005ba6e5ea | ||
|
|
9f6aba6cbd |
2
.github/FUNDING.yml
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
github: stax76
|
||||
ko_fi: stax76
|
||||
40
.github/ISSUE_TEMPLATE/ask-a-question.md
vendored
Normal file
@@ -0,0 +1,40 @@
|
||||
---
|
||||
name: Ask a question
|
||||
about: Ask a question about mpv.net
|
||||
title: ''
|
||||
labels: question
|
||||
assignees: stax76
|
||||
|
||||
---
|
||||
|
||||
This template is meant for usage questions of mpv.net.
|
||||
|
||||
Some type of questions like questions about a problem require filling out an issue template:
|
||||
|
||||
**Describe the problem**
|
||||
A clear and concise description of what the problem is.
|
||||
|
||||
**To Reproduce**
|
||||
To reproduce, try the last beta version using the CLI option `--config=no`.
|
||||
|
||||
In case of an audio or video problem, try to reproduce the problem using mpv instead of mpv.net.
|
||||
If it can be reproduced with mpv, use the [mpv issue tracker](https://github.com/mpv-player/mpv/issues).
|
||||
|
||||
Steps to reproduce the behavior:
|
||||
1. Go to '...'
|
||||
2. Click on '....'
|
||||
3. Scroll down to '....'
|
||||
4. See error
|
||||
|
||||
**Expected behavior**
|
||||
A clear and concise description of what you expected to happen.
|
||||
|
||||
**Screenshots**
|
||||
If applicable, add screenshots to help explain your problem.
|
||||
|
||||
**Additional context**
|
||||
Add any other context about the problem here.
|
||||
1. mpv.net version
|
||||
2. Windows version
|
||||
3. GPU name
|
||||
4. Media info
|
||||
36
.github/ISSUE_TEMPLATE/report-a-bug.md
vendored
Normal file
@@ -0,0 +1,36 @@
|
||||
---
|
||||
name: Report a bug
|
||||
about: Create a report to help us improve
|
||||
title: ''
|
||||
labels: bug
|
||||
assignees: stax76
|
||||
|
||||
---
|
||||
|
||||
**Describe the bug**
|
||||
A clear and concise description of what the bug is.
|
||||
|
||||
**To Reproduce**
|
||||
To reproduce, try the last beta version using the CLI option `--config=no`.
|
||||
|
||||
In case of an audio or video issue, try to reproduce the issue using mpv instead of mpv.net.
|
||||
If it can be reproduced with mpv, use the [mpv issue tracker](https://github.com/mpv-player/mpv/issues).
|
||||
|
||||
Steps to reproduce the behavior:
|
||||
1. Go to '...'
|
||||
2. Click on '....'
|
||||
3. Scroll down to '....'
|
||||
4. See error
|
||||
|
||||
**Expected behavior**
|
||||
A clear and concise description of what you expected to happen.
|
||||
|
||||
**Screenshots**
|
||||
If applicable, add screenshots to help explain your problem.
|
||||
|
||||
**Additional context**
|
||||
Add any other context about the problem here.
|
||||
1. mpv.net version
|
||||
2. Windows version
|
||||
3. GPU name
|
||||
4. Media info
|
||||
20
.github/ISSUE_TEMPLATE/request-a-feature.md
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
---
|
||||
name: Request a feature
|
||||
about: Suggest an idea for this project
|
||||
title: ''
|
||||
labels: feature request
|
||||
assignees: stax76
|
||||
|
||||
---
|
||||
|
||||
**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.
|
||||
75
.github/__workflows__ currently flawed/build.yml
vendored
Normal file
@@ -0,0 +1,75 @@
|
||||
name: mpvnet build
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
- ci
|
||||
paths-ignore:
|
||||
- '*.md'
|
||||
- 'LICENSE'
|
||||
- '.gitignore'
|
||||
- '.gitattributes'
|
||||
- 'docs/**'
|
||||
- '.github/**'
|
||||
- 'src/Extensions/**'
|
||||
pull_request:
|
||||
branches: [main]
|
||||
paths-ignore:
|
||||
- '*.md'
|
||||
- 'LICENSE'
|
||||
- '.gitignore'
|
||||
- '.gitattributes'
|
||||
- 'docs/**'
|
||||
- '.github/**'
|
||||
- 'src/Extensions/**'
|
||||
|
||||
jobs:
|
||||
windows:
|
||||
name: Windows build
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Add msbuild to PATH
|
||||
uses: microsoft/setup-msbuild@v1.1
|
||||
- uses: msys2/setup-msys2@v2
|
||||
with:
|
||||
msystem: mingw64
|
||||
update: true
|
||||
install: >-
|
||||
base-devel
|
||||
wget
|
||||
p7zip
|
||||
- name: Build
|
||||
shell: cmd
|
||||
run: |
|
||||
cd src
|
||||
nuget restore
|
||||
msbuild -restore
|
||||
msbuild MpvNet.sln /m /p:Configuration=Debug
|
||||
- name: Create .mo files for localization
|
||||
shell: pwsh
|
||||
run: Install-Package Gettext.Tools -Force; $env:Path = ((Get-Package Gettext.Tools).Source | Split-Path) + '\tools\bin;' + $env:Path; .\lang\create-mo-files.ps1
|
||||
- name: Download libmpv # In principle, only update this binary file when significant feature changes occur in mpv/mpv.net
|
||||
shell: msys2 {0}
|
||||
run: |
|
||||
wget -nv -O libmpv.7z https://github.com/zhongfly/mpv-winbuild/releases/download/2025-05-03-e663cbc/mpv-dev-x86_64-20250503-git-e663cbc.7z
|
||||
7z x -y libmpv.7z -olibmpv
|
||||
cp -f libmpv/libmpv-2.dll src/MpvNet.Windows/bin/Debug/ || true
|
||||
- name: Download MediaInfo
|
||||
shell: msys2 {0}
|
||||
run: |
|
||||
wget -nv -O MediaInfo.7z https://mediaarea.net/download/binary/libmediainfo0/24.03/MediaInfo_DLL_24.03_Windows_x64_WithoutInstaller.7z
|
||||
7z x -y MediaInfo.7z -oMediaInfo
|
||||
cp -f MediaInfo/MediaInfo.dll src/MpvNet.Windows/bin/Debug/ || true
|
||||
- name: Download mpvnet.com file
|
||||
shell: msys2 {0}
|
||||
run: |
|
||||
wget -nv -O mpvnet.com https://github.com/mpvnet-player/file-host/releases/download/tag/mpvnet.com.txt
|
||||
cp -f mpvnet.com src/MpvNet.Windows/bin/Debug/ || true
|
||||
- name: Upload
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: "mpv.net-win64"
|
||||
path: src/MpvNet.Windows/bin/Debug/
|
||||
9
.tx/config
Normal file
@@ -0,0 +1,9 @@
|
||||
|
||||
[main]
|
||||
host = https://app.transifex.com
|
||||
|
||||
[o:stax76:p:mpvnet:r:mpvnet]
|
||||
file_filter = lang/po/<lang>.po
|
||||
source_file = lang/source.pot
|
||||
source_lang = en
|
||||
type = PO
|
||||
67
Changelog.md
@@ -1,67 +0,0 @@
|
||||
### 4.3
|
||||
|
||||
- there was new bug in file association feature
|
||||
|
||||
### 4.2
|
||||
|
||||
- the help and layout in the config editor was improved
|
||||
- clipboard monitoring for URLs can be disabled in the settings
|
||||
- the context menu has a new feature: Open > Add files to playlist,
|
||||
it appends files to the playlist [(Default binding)](https://github.com/stax76/mpv.net/blob/master/mpv.net/Resources/inputConf.txt#L33)
|
||||
- a setting was added to force using a single mpv.net process instance
|
||||
|
||||
### 4.1
|
||||
|
||||
- drag & drop support for subtitles was added
|
||||
- libmpv was updated
|
||||
- command line support for stdin and URLs was added
|
||||
- there was a crash happening when the player is
|
||||
minimized in the taskbar
|
||||
|
||||
### 4.0
|
||||
|
||||
- on the start screen the mpv.NET icon is shown instead of the mpv icon,
|
||||
feedback and contributions regarding the icon are welcome! The paint.net
|
||||
pdn and png source is located [here](https://github.com/stax76/mpv.net/tree/master/img)
|
||||
- everytime only one file is opened the complete folder is loaded in the playlist
|
||||
- the info command (i key) shows the audio format
|
||||
- new options osd-font-size, sub-font, sub-font-size
|
||||
- new color options with dedicated GUI support: sub-color, sub-border-color, sub-back-color
|
||||
- the config editor no longer shows the command line switches
|
||||
- the github start page was greatly improved
|
||||
- the setup.ps1 PowerShell script was greatly improved in regard of error handling and readability
|
||||
- a [manual to mpv.net](Manual.md) was created
|
||||
|
||||
### 3.7
|
||||
|
||||
- new icon design, probably better then before but still too simple
|
||||
- the radio buttons in the config editor have now a Windows 10 like design,
|
||||
they are larger and use the Windows theme color
|
||||
|
||||
### 3.6.1
|
||||
|
||||
- there was a bug causing an exception if both the input editor and config editor
|
||||
is opened, as soon as one is opened, the other can't be opened
|
||||
|
||||
### 3.6
|
||||
|
||||
- playing files from rar archives caused an exception
|
||||
- there was a bug that caused underscores beeing removed from input like MBTN_LEFT_DBL
|
||||
- the search clear button in the input editor had a render issue in dark mode
|
||||
- new search feature added to search and play media files, requires
|
||||
[Everything](https://www.voidtools.com) to be installed. [Default Binding](https://github.com/stax76/mpv.net/blob/master/mpv.net/Resources/inputConf.txt#L29)
|
||||
|
||||
### 3.5
|
||||
|
||||
- when the main windows gets activated and the clipboard content starts with http
|
||||
mpv.net will ask to play the URL, previously this was restricted to YouTube URLs
|
||||
- Python script errors show line and column whenever it is supported by IronPython
|
||||
- if conf files exist in the startup directory mpv.net will use the startup
|
||||
directory as config directory instead of creating default conf files in appdata
|
||||
- renamed commands are handled now by migration code instead of being broken
|
||||
|
||||
### 3.4
|
||||
|
||||
- new feature added to manage file associations from within the app. It can be found in the menu at: Tools > Manage... [Default Binding](https://github.com/stax76/mpv.net/blob/master/mpv.net/Resources/inputConf.txt#L149)
|
||||
- new zip download option added
|
||||
- new x86 download option added
|
||||
21
LICENSE.txt
@@ -1,21 +0,0 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2017-2019 Frank Skare (stax76)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and ssociated documentation files (the "Software"),
|
||||
to deal in the Software without restriction, including without limitation
|
||||
the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
and/or sell copies of the Software, and to permit persons to whom the
|
||||
Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included
|
||||
in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH
|
||||
THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
340
License.txt
Normal file
@@ -0,0 +1,340 @@
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Lesser General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License along
|
||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) year name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License.
|
||||
831
Manual.md
@@ -1,831 +0,0 @@
|
||||
# mpv.net manual
|
||||
|
||||
## Table of contents
|
||||
|
||||
* [About mpv.net](#about-mpvnet)
|
||||
+ [Target Audience](#target-audience)
|
||||
* [Requirements](#requirements)
|
||||
* [Installation](#installation)
|
||||
+ [File Associations](#file-associations)
|
||||
* [Context Menu](#context-menu)
|
||||
+ [Open > Open Files](#open--open-files)
|
||||
+ [Open > Open URL](#open--open-url)
|
||||
+ [Open > Show media search](#open--show-media-search)
|
||||
+ [Open > Load external audio files](#open--load-external-audio-files)
|
||||
+ [Open > Load external subtitle files](#open--load-external-subtitle-files)
|
||||
+ [Play/Pause](#play-pause)
|
||||
+ [Stop](#stop)
|
||||
+ [Toggle Fullscreen](#toggle-fullscreen)
|
||||
+ [Navigate > Previous File](#navigate--previous-file)
|
||||
+ [Navigate > Next File](#navigate--next-file)
|
||||
+ [Navigate > Next Chapter](#navigate--next-chapter)
|
||||
+ [Navigate > Previous Chapter](#navigate--previous-chapter)
|
||||
+ [Navigate > Jump Next Frame](#navigate--jump-next-frame)
|
||||
+ [Navigate > Jump Previous Frame](#navigate--jump-previous-frame)
|
||||
+ [Navigate > Jump](#navigate--jump)
|
||||
+ [Pan & Scan > Increase Size](#pan--scan--increase-size)
|
||||
+ [Pan & Scan > Decrease Size](#pan--scan--decrease-size)
|
||||
+ [Pan & Scan > Move Left](#pan--scan--move-left)
|
||||
+ [Pan & Scan > Move Right](#pan--scan--move-right)
|
||||
+ [Pan & Scan > Move Up](#pan--scan--move-up)
|
||||
+ [Pan & Scan > Move Down](#pan--scan--move-down)
|
||||
+ [Pan & Scan > Decrease Height](#pan--scan--decrease-height)
|
||||
+ [Pan & Scan > Increase Height](#pan--scan--increase-height)
|
||||
+ [Pan & Scan > Reset](#pan--scan--reset)
|
||||
+ [Video > Decrease Contrast](#video--decrease-contrast)
|
||||
+ [Video > Increase Contrast](#video--increase-contrast)
|
||||
+ [Video > Decrease Brightness](#video--decrease-brightness)
|
||||
+ [Video > Increase Brightness](#video--increase-brightness)
|
||||
+ [Video > Decrease Gamma](#video--decrease-gamma)
|
||||
+ [Video > Increase Gamma](#video--increase-gamma)
|
||||
+ [Video > Decrease Saturation](#video--decrease-saturation)
|
||||
+ [Video > Increase Saturation](#video--increase-saturation)
|
||||
+ [Video > Take Screenshot](#video--take-screenshot)
|
||||
+ [Video > Toggle Deinterlace](#video--toggle-deinterlace)
|
||||
+ [Video > Cycle Aspect Ratio](#video--cycle-aspect-ratio)
|
||||
+ [Audio > Cycle/Next](#audio--cycle-next)
|
||||
+ [Audio > Delay +0.1](#audio--delay--01)
|
||||
+ [Audio > Delay -0.1](#audio--delay--01)
|
||||
+ [Subtitle > Cycle/Next](#subtitle--cycle-next)
|
||||
+ [Subtitle > Toggle Visibility](#subtitle--toggle-visibility)
|
||||
+ [Subtitle > Delay -0.1](#subtitle--delay--01)
|
||||
+ [Subtitle > Delay 0.1](#subtitle--delay-01)
|
||||
+ [Subtitle > Move Up](#subtitle--move-up)
|
||||
+ [Subtitle > Move Down](#subtitle--move-down)
|
||||
+ [Subtitle > Decrease Subtitle Font Size](#subtitle--decrease-subtitle-font-size)
|
||||
+ [Subtitle > Increase Subtitle Font Size](#subtitle--increase-subtitle-font-size)
|
||||
+ [Volume > Up](#volume--up)
|
||||
+ [Volume > Down](#volume--down)
|
||||
+ [Volume > Mute](#volume--mute)
|
||||
+ [Speed > -10%](#speed---10-)
|
||||
+ [Speed > 10%](#speed--10-)
|
||||
+ [Speed > Half](#speed--half)
|
||||
+ [Speed > Double](#speed--double)
|
||||
+ [Speed > Reset](#speed--reset)
|
||||
+ [Extensions > Rating > 0stars](#extensions--rating--0stars)
|
||||
+ [View > On Top > Enable](#view--on-top--enable)
|
||||
+ [View > On Top > Disable](#view--on-top--disable)
|
||||
+ [View > File Info](#view--file-info)
|
||||
+ [View > Show Statistics](#view--show-statistics)
|
||||
+ [View > Toggle Statistics](#view--toggle-statistics)
|
||||
+ [View > Toggle OSC Visibility](#view--toggle-osc-visibility)
|
||||
+ [View > Show Playlist](#view--show-playlist)
|
||||
+ [View > Show Audio/Video/Subtitle List](#view--show-audio-video-subtitle-list)
|
||||
+ [Settings > Show Config Editor](#settings--show-config-editor)
|
||||
+ [Settings > Show Input Editor](#settings--show-input-editor)
|
||||
+ [Settings > Open Config Folder](#settings--open-config-folder)
|
||||
+ [Tools > Command Palette](#tools--command-palette)
|
||||
+ [Tools > Show History](#tools--show-history)
|
||||
+ [Tools > Set/clear A-B loop points](#tools--set-clear-a-b-loop-points)
|
||||
+ [Tools > Toggle infinite file looping](#tools--toggle-infinite-file-looping)
|
||||
+ [Tools > Cycle Hardware Decoding](#tools--cycle-hardware-decoding)
|
||||
+ [Tools > Execute mpv command](#tools--execute-mpv-command)
|
||||
+ [Tools > Manage File Associations](#tools--manage-file-associations)
|
||||
+ [Help > Show mpv manual](#help--show-mpv-manual)
|
||||
+ [Help > Show mpv default keys](#help--show-mpv-default-keys)
|
||||
+ [Help > Show mpv.net default keys](#help--show-mpvnet-default-keys)
|
||||
+ [Help > Show mpv.net manual](#help--show-mpvnet-manual)
|
||||
+ [Help > About mpv.net](#help--about-mpvnet)
|
||||
+ [Exit](#exit)
|
||||
+ [Exit Watch Later](#exit-watch-later)
|
||||
* [Command Line Interface](#command-line-interface)
|
||||
* [Settings](#settings)
|
||||
|
||||
## About mpv.net
|
||||
|
||||
mpv.net is a media player for Windows. Similar like VLC mpv.net is not based on DirectShow like MPC, mpv.net is based on libmpv which in return is based on ffmpeg.
|
||||
|
||||
libmpv provides the majority of the features of the mpv media player, a fork of mplayer. mpv focuses on the usage of the command line interface, mpv.net retains the ability to be used from the command line and adds a simple and easy to use GUI on top of it.
|
||||
|
||||
mpv.net is meant to be a small single person project, it's designed to be mpv compatible, can use the same settings as mpv and offers almost all mpv features because they are all contained in libmpv, this means the official [mpv manual](https://mpv.io/manual/master/) fully applies to mpv.net.
|
||||
|
||||
### Target Audience
|
||||
|
||||
The target audience of mpv.net are Windows programmers and users that need something more advanced than common media players.
|
||||
|
||||
Furthermore mpv.net is well suited for Windows users who are interested to learn about the Linux operating system and portable apps, even though mpv.net self is not portable.
|
||||
|
||||
## Requirements
|
||||
|
||||
mpv.net is based on the .NET Framework and requires Windows 7 as minimum version of the Windows operating system. As of the writing of this manual the minimum required .NET Framework version is 4.7.2.
|
||||
|
||||
For optimal results a modern graphics card is recommended.
|
||||
|
||||
## Installation
|
||||
|
||||
mpv.net is available as setup and as portable download in the 7zip and zip archive format, to unpack the portable download 7zip can be used, it is available at www.7-zip.org.
|
||||
|
||||
If you are new to mpv.net the portable download is recommended, for regular mpv.net users the setup is typically more easy to use.
|
||||
|
||||
The x64 editions require more memory and have the advantage of decoders being typically first and better optimized for x64.
|
||||
|
||||
x86 should though still be well supported and work.
|
||||
|
||||
### File Associations
|
||||
|
||||
File Associations can be created using the setup or from within the apps context menu under 'Tools > Manage File Associations'.
|
||||
|
||||
Windows 10 prevents apps to register as the default app, to define the default video or audio player app in Windows 10 go to the Windows settings under 'Settings > Apps > Default apps' or shell execute 'ms-settings:defaultapps'.
|
||||
|
||||
It's also possible to change the default application using the Open With feature of the context menu in Windows File Explorer.
|
||||
|
||||
## Context Menu
|
||||
|
||||
The most important part of the user interface in mpv.net is the context menu, the menu can be customized as it is defined in the same file where the key bindings are defined.
|
||||
|
||||
### Open > Open Files
|
||||
|
||||
The Open Files menu entry is one way to open files in mpv.net, it supports multi selection.
|
||||
|
||||
Another way to open files is the command line, it is used by the Windows File Explorer if file associations exist.
|
||||
|
||||
A third way is to drag and drop files on the main window.
|
||||
|
||||
### Open > Open URL
|
||||
|
||||
The Open URL menu entry can be used to open URLs for example from YouTube.
|
||||
|
||||
mpv.net monitors the Windows clipboard and ask if URLs should be played in case it finds a URL in the clipboard.
|
||||
|
||||
### Open > Show media search
|
||||
|
||||
mpv.net supports system wide media searches using the Everything indexing service installed by the popular file search tool Everything (www.voidtools.com).
|
||||
|
||||
### Open > Load external audio files
|
||||
|
||||
Allows to load an external audio file. It's also possible to auto detect external audio files based on the file name, the option for this can be found in the settings under 'Settings > Show Config Editor > Audio > audio-file-auto'.
|
||||
|
||||
### Open > Load external subtitle files
|
||||
|
||||
Allows to load an external subtitle file. It's also possible to auto detect external subtitle files based on the file name, the option for this can be found in the settings under 'Settings > Show Config Editor > Subtitles > sub-auto'.
|
||||
|
||||
### Play/Pause
|
||||
|
||||
Play/Pause using the command:
|
||||
|
||||
`cycle pause`
|
||||
|
||||
[cycle command](https://mpv.io/manual/master/#command-interface-cycle-%3Cproperty%3E-[up|down])
|
||||
|
||||
[pause property](https://mpv.io/manual/master/#options-pause)
|
||||
|
||||
### Stop
|
||||
|
||||
Stops the player and unloads the playlist using the command:
|
||||
|
||||
`stop`
|
||||
|
||||
[stop command](https://mpv.io/manual/master/#command-interface-stop)
|
||||
|
||||
### Toggle Fullscreen
|
||||
|
||||
Toggles fullscreen using the command:
|
||||
|
||||
`cycle fullscreen`
|
||||
|
||||
[cycle command](https://mpv.io/manual/master/#command-interface-cycle-%3Cproperty%3E-[up|down])
|
||||
|
||||
[fullscreen property](https://mpv.io/manual/master/#options-fs)
|
||||
|
||||
### Navigate > Previous File
|
||||
|
||||
Navigates to the previous file in the playlist using the command:
|
||||
|
||||
`playlist-prev`
|
||||
|
||||
[playlist-prev command](https://mpv.io/manual/master/#command-interface-playlist-prev)
|
||||
|
||||
### Navigate > Next File
|
||||
|
||||
Navigates to the next file in the playlist using the command:
|
||||
|
||||
`playlist-next`
|
||||
|
||||
[playlist-next command](https://mpv.io/manual/master/#command-interface-playlist-next)
|
||||
|
||||
### Navigate > Next Chapter
|
||||
|
||||
Navigates to the next chapter using the command:
|
||||
|
||||
`add chapter 1`
|
||||
|
||||
[add command](https://mpv.io/manual/master/#command-interface-add-%3Cproperty%3E-[%3Cvalue%3E])
|
||||
|
||||
[chapter property](https://mpv.io/manual/master/#command-interface-chapter)
|
||||
|
||||
### Navigate > Previous Chapter
|
||||
|
||||
Navigates to the previous chapter using the command:
|
||||
|
||||
`add chapter -1`
|
||||
|
||||
[add command](https://mpv.io/manual/master/#command-interface-add-%3Cproperty%3E-[%3Cvalue%3E])
|
||||
|
||||
[chapter property](https://mpv.io/manual/master/#command-interface-chapter)
|
||||
|
||||
### Navigate > Jump Next Frame
|
||||
|
||||
Jumps to the next frame using the command:
|
||||
|
||||
`frame-step`
|
||||
|
||||
[frame-step command](https://mpv.io/manual/master/#command-interface-frame-step)
|
||||
|
||||
### Navigate > Jump Previous Frame
|
||||
|
||||
Jumps to the previous frame using the command:
|
||||
|
||||
`frame-back-step`
|
||||
|
||||
[frame-back-step command](https://mpv.io/manual/master/#command-interface-frame-back-step)
|
||||
|
||||
### Navigate > Jump
|
||||
|
||||
Seeking using the command:
|
||||
|
||||
`no-osd seek sec`
|
||||
|
||||
sec is the relative amount of seconds to jump, the no-osd prefix
|
||||
is used because mpv.net includes a script that shows the position
|
||||
when a seek operation is performed, the script uses a more simple
|
||||
time format.
|
||||
|
||||
[no-osd command prefix](https://mpv.io/manual/master/#command-interface-no-osd)
|
||||
|
||||
[seek command](https://mpv.io/manual/master/#command-interface-[relative|absolute|absolute-percent|relative-percent|exact|keyframes])
|
||||
|
||||
### Pan & Scan > Increase Size
|
||||
|
||||
Adds video zoom using the command:
|
||||
|
||||
`add video-zoom 0.1`
|
||||
|
||||
[add command](https://mpv.io/manual/master/#command-interface-add-%3Cproperty%3E-[%3Cvalue%3E])
|
||||
|
||||
[video-zoom property](https://mpv.io/manual/master/#options-video-zoom)
|
||||
|
||||
### Pan & Scan > Decrease Size
|
||||
|
||||
Adds negative video zoom using the command:
|
||||
|
||||
`add video-zoom -0.1`
|
||||
|
||||
[add command](https://mpv.io/manual/master/#command-interface-add-%3Cproperty%3E-[%3Cvalue%3E])
|
||||
|
||||
[video-zoom property](https://mpv.io/manual/master/#options-video-zoom)
|
||||
|
||||
### Pan & Scan > Move Left
|
||||
|
||||
`add video-pan-x -0.01`
|
||||
|
||||
[add command](https://mpv.io/manual/master/#command-interface-add-%3Cproperty%3E-[%3Cvalue%3E])
|
||||
|
||||
[video-pan-x, video-pan-y property](https://mpv.io/manual/master/#options-video-pan-y)
|
||||
|
||||
### Pan & Scan > Move Right
|
||||
|
||||
`add video-pan-x 0.01`
|
||||
|
||||
[add command](https://mpv.io/manual/master/#command-interface-add-%3Cproperty%3E-[%3Cvalue%3E])
|
||||
|
||||
[video-pan-x, video-pan-y property](https://mpv.io/manual/master/#options-video-pan-y)
|
||||
|
||||
### Pan & Scan > Move Up
|
||||
|
||||
`add video-pan-y -0.01`
|
||||
|
||||
[add command](https://mpv.io/manual/master/#command-interface-add-%3Cproperty%3E-[%3Cvalue%3E])
|
||||
|
||||
[video-pan-x, video-pan-y property](https://mpv.io/manual/master/#options-video-pan-y)
|
||||
|
||||
### Pan & Scan > Move Down
|
||||
|
||||
`add video-pan-y 0.01`
|
||||
|
||||
[add command](https://mpv.io/manual/master/#command-interface-add-%3Cproperty%3E-[%3Cvalue%3E])
|
||||
|
||||
[video-pan-x, video-pan-y property](https://mpv.io/manual/master/#options-video-pan-y)
|
||||
|
||||
### Pan & Scan > Decrease Height
|
||||
|
||||
`add panscan -0.1`
|
||||
|
||||
[add command](https://mpv.io/manual/master/#command-interface-add-%3Cproperty%3E-[%3Cvalue%3E])
|
||||
|
||||
[panscan property](https://mpv.io/manual/master/#options-panscan)
|
||||
|
||||
### Pan & Scan > Increase Height
|
||||
|
||||
`add panscan 0.1`
|
||||
|
||||
[add command](https://mpv.io/manual/master/#command-interface-add-%3Cproperty%3E-[%3Cvalue%3E])
|
||||
|
||||
[panscan property](https://mpv.io/manual/master/#options-panscan)
|
||||
|
||||
### Pan & Scan > Reset
|
||||
|
||||
Resets Pan & Scan, multiple commands in the same line are separated with semicolon.
|
||||
|
||||
`set video-zoom 0; set video-pan-x 0; set video-pan-y 0`
|
||||
|
||||
[video-zoom property](https://mpv.io/manual/master/#options-video-zoom)
|
||||
|
||||
[video-pan-x, video-pan-y property](https://mpv.io/manual/master/#options-video-pan-y)
|
||||
|
||||
### Video > Decrease Contrast
|
||||
|
||||
Decreases contrast with the following command:
|
||||
|
||||
`add contrast -1`
|
||||
|
||||
[add command](https://mpv.io/manual/master/#command-interface-add-%3Cproperty%3E-[%3Cvalue%3E])
|
||||
|
||||
[contrast property](https://mpv.io/manual/master/#options-contrast)
|
||||
|
||||
### Video > Increase Contrast
|
||||
|
||||
Increases contrast with the following command:
|
||||
|
||||
`add contrast 1`
|
||||
|
||||
[add command](https://mpv.io/manual/master/#command-interface-add-%3Cproperty%3E-[%3Cvalue%3E])
|
||||
|
||||
[contrast property](https://mpv.io/manual/master/#options-contrast)
|
||||
|
||||
### Video > Decrease Brightness
|
||||
|
||||
Decreases brightness using the following command:
|
||||
|
||||
`add brightness -1`
|
||||
|
||||
[add command](https://mpv.io/manual/master/#command-interface-add-%3Cproperty%3E-[%3Cvalue%3E])
|
||||
|
||||
[brightness property](https://mpv.io/manual/master/#options-brightness)
|
||||
|
||||
### Video > Increase Brightness
|
||||
|
||||
Increases brightness using the following command:
|
||||
|
||||
`add brightness 1`
|
||||
|
||||
[add command](https://mpv.io/manual/master/#command-interface-add-%3Cproperty%3E-[%3Cvalue%3E])
|
||||
|
||||
[brightness property](https://mpv.io/manual/master/#options-brightness)
|
||||
|
||||
### Video > Decrease Gamma
|
||||
|
||||
Decreases gamma using the following command:
|
||||
|
||||
`add gamma -1`
|
||||
|
||||
[add command](https://mpv.io/manual/master/#command-interface-add-%3Cproperty%3E-[%3Cvalue%3E])
|
||||
|
||||
[gamma property](https://mpv.io/manual/master/#options-gamma)
|
||||
|
||||
### Video > Increase Gamma
|
||||
|
||||
Increases gamma using the following command:
|
||||
|
||||
`add gamma 1`
|
||||
|
||||
[add command](https://mpv.io/manual/master/#command-interface-add-%3Cproperty%3E-[%3Cvalue%3E])
|
||||
|
||||
[gamma property](https://mpv.io/manual/master/#options-gamma)
|
||||
|
||||
### Video > Decrease Saturation
|
||||
|
||||
Decreases saturation using the following command:
|
||||
|
||||
`add saturation -1`
|
||||
|
||||
[add command](https://mpv.io/manual/master/#command-interface-add-%3Cproperty%3E-[%3Cvalue%3E])
|
||||
|
||||
[saturation property](https://mpv.io/manual/master/#options-saturation)
|
||||
|
||||
### Video > Increase Saturation
|
||||
|
||||
Increases saturation using the following command:
|
||||
|
||||
`add saturation 1`
|
||||
|
||||
[add command](https://mpv.io/manual/master/#command-interface-add-%3Cproperty%3E-[%3Cvalue%3E])
|
||||
|
||||
[saturation property](https://mpv.io/manual/master/#options-saturation)
|
||||
|
||||
### Video > Take Screenshot
|
||||
|
||||
`async screenshot`
|
||||
|
||||
[async command prefix](https://mpv.io/manual/master/#command-interface-async)
|
||||
|
||||
[screenshot command](https://mpv.io/manual/master/#command-interface-[subtitles|video|window|single|each-frame])
|
||||
|
||||
### Video > Toggle Deinterlace
|
||||
|
||||
Cycles the deinterlace property using the following command:
|
||||
|
||||
`cycle deinterlace`
|
||||
|
||||
[cycle command](https://mpv.io/manual/master/#command-interface-cycle-%3Cproperty%3E-[up|down])
|
||||
|
||||
[deinterlace property](https://mpv.io/manual/master/#options-deinterlace)
|
||||
|
||||
### Video > Cycle Aspect Ratio
|
||||
|
||||
Cycles the aspect ratio using the following command:
|
||||
|
||||
`cycle-values video-aspect "16:9" "4:3" "2.35:1" "-1"`
|
||||
|
||||
[cycle-values command](https://mpv.io/manual/master/#command-interface-cycle-values)
|
||||
|
||||
[video-aspect property](https://mpv.io/manual/master/#options-video-aspect)
|
||||
|
||||
### Audio > Cycle/Next
|
||||
|
||||
This uses a mpv.net command that shows better info then the mpv preset
|
||||
and also has the advantage of not showing no audio.
|
||||
|
||||
### Audio > Delay +0.1
|
||||
|
||||
Adds a audio delay using the following command:
|
||||
|
||||
`add audio-delay 0.1`
|
||||
|
||||
[add command](https://mpv.io/manual/master/#command-interface-add-%3Cproperty%3E-[%3Cvalue%3E])
|
||||
|
||||
[audio-delay property](https://mpv.io/manual/master/#options-audio-delay)
|
||||
|
||||
### Audio > Delay -0.1
|
||||
|
||||
Adds a negative audio delay using the following command:
|
||||
|
||||
`add audio-delay -0.1`
|
||||
|
||||
[add command](https://mpv.io/manual/master/#command-interface-add-%3Cproperty%3E-[%3Cvalue%3E])
|
||||
|
||||
[audio-delay property](https://mpv.io/manual/master/#options-audio-delay)
|
||||
|
||||
### Subtitle > Cycle/Next
|
||||
|
||||
Shows the next subtitle track using the following command:
|
||||
|
||||
`cycle sub`
|
||||
|
||||
[cycle command](https://mpv.io/manual/master/#command-interface-cycle-%3Cproperty%3E-[up|down])
|
||||
|
||||
[sub/sid property](https://mpv.io/manual/master/#options-sid)
|
||||
|
||||
### Subtitle > Toggle Visibility
|
||||
|
||||
Cycles the subtitle visibility using the following command:
|
||||
|
||||
`cycle sub-visibility`
|
||||
|
||||
[cycle command](https://mpv.io/manual/master/#command-interface-cycle-%3Cproperty%3E-[up|down])
|
||||
|
||||
[sub-visibility property](https://mpv.io/manual/master/#options-no-sub-visibility)
|
||||
|
||||
### Subtitle > Delay -0.1
|
||||
|
||||
Adds a negative subtitle delay using the following command:
|
||||
|
||||
`add sub-delay -0.1`
|
||||
|
||||
[add command](https://mpv.io/manual/master/#command-interface-add-%3Cproperty%3E-[%3Cvalue%3E])
|
||||
|
||||
[sub-delay property](https://mpv.io/manual/master/#options-sub-delay)
|
||||
|
||||
### Subtitle > Delay 0.1
|
||||
|
||||
Adds a positive subtitle delay using the following command:
|
||||
|
||||
`add sub-delay 0.1`
|
||||
|
||||
[add command](https://mpv.io/manual/master/#command-interface-add-%3Cproperty%3E-[%3Cvalue%3E])
|
||||
|
||||
[sub-delay property](https://mpv.io/manual/master/#options-sub-delay)
|
||||
|
||||
### Subtitle > Move Up
|
||||
|
||||
Moves the subtitle up using the following command:
|
||||
|
||||
`add sub-pos -1`
|
||||
|
||||
[add command](https://mpv.io/manual/master/#command-interface-add-%3Cproperty%3E-[%3Cvalue%3E])
|
||||
|
||||
[sub-pos property](https://mpv.io/manual/master/#options-sub-pos)
|
||||
|
||||
### Subtitle > Move Down
|
||||
|
||||
Moves the subtitle down using the following command:
|
||||
|
||||
`add sub-pos 1`
|
||||
|
||||
[add command](https://mpv.io/manual/master/#command-interface-add-%3Cproperty%3E-[%3Cvalue%3E])
|
||||
|
||||
[sub-pos property](https://mpv.io/manual/master/#options-sub-pos)
|
||||
|
||||
### Subtitle > Decrease Subtitle Font Size
|
||||
|
||||
Decreases the subtitle font size using the following command:
|
||||
|
||||
`add sub-scale -0.1`
|
||||
|
||||
[add command](https://mpv.io/manual/master/#command-interface-add-%3Cproperty%3E-[%3Cvalue%3E])
|
||||
|
||||
[sub-scale property](https://mpv.io/manual/master/#options-sub-scale)
|
||||
|
||||
### Subtitle > Increase Subtitle Font Size
|
||||
|
||||
Increases the subtitle font size using the following command:
|
||||
|
||||
`add sub-scale 0.1`
|
||||
|
||||
[add command](https://mpv.io/manual/master/#command-interface-add-%3Cproperty%3E-[%3Cvalue%3E])
|
||||
|
||||
[sub-scale property](https://mpv.io/manual/master/#options-sub-scale)
|
||||
|
||||
### Volume > Up
|
||||
|
||||
Increases the volume using the following command:
|
||||
|
||||
`add volume 10`
|
||||
|
||||
[add command](https://mpv.io/manual/master/#command-interface-add-%3Cproperty%3E-[%3Cvalue%3E])
|
||||
|
||||
[volume property](https://mpv.io/manual/master/#options-volume)
|
||||
|
||||
### Volume > Down
|
||||
|
||||
Decreases the volume using the following command:
|
||||
|
||||
`add volume -10`
|
||||
|
||||
[add command](https://mpv.io/manual/master/#command-interface-add-%3Cproperty%3E-[%3Cvalue%3E])
|
||||
|
||||
[volume property](https://mpv.io/manual/master/#options-volume)
|
||||
|
||||
### Volume > Mute
|
||||
|
||||
Cycles the mute property using the following command:
|
||||
|
||||
`cycle mute`
|
||||
|
||||
[cycle command](https://mpv.io/manual/master/#command-interface-cycle-%3Cproperty%3E-[up|down])
|
||||
|
||||
[mute property](https://mpv.io/manual/master/#options-mute)
|
||||
|
||||
### Speed > -10%
|
||||
|
||||
Decreases the speed by 10% using the following command:
|
||||
|
||||
`multiply speed 1/1.1`
|
||||
|
||||
[multiply command](https://mpv.io/manual/master/#command-interface-multiply-%3Cproperty%3E-%3Cfactor%3E)
|
||||
|
||||
[speed property](https://mpv.io/manual/master/#options-speed)
|
||||
|
||||
### Speed > 10%
|
||||
|
||||
Increases the speed by 10% using the following command:
|
||||
|
||||
`multiply speed 1.1`
|
||||
|
||||
[multiply command](https://mpv.io/manual/master/#command-interface-multiply-%3Cproperty%3E-%3Cfactor%3E)
|
||||
|
||||
[speed property](https://mpv.io/manual/master/#options-speed)
|
||||
|
||||
### Speed > Half
|
||||
|
||||
Halfs the speed using the following command:
|
||||
|
||||
`multiply speed 0.5`
|
||||
|
||||
[multiply command](https://mpv.io/manual/master/#command-interface-multiply-%3Cproperty%3E-%3Cfactor%3E)
|
||||
|
||||
[speed property](https://mpv.io/manual/master/#options-speed)
|
||||
|
||||
### Speed > Double
|
||||
|
||||
Doubles the speed using the following command:
|
||||
|
||||
`multiply speed 2`
|
||||
|
||||
[multiply command](https://mpv.io/manual/master/#command-interface-multiply-%3Cproperty%3E-%3Cfactor%3E)
|
||||
|
||||
[speed property](https://mpv.io/manual/master/#options-speed)
|
||||
|
||||
### Speed > Reset
|
||||
|
||||
Resets the speed using the following command:
|
||||
|
||||
`set speed 1`
|
||||
|
||||
[set command](https://mpv.io/manual/master/#command-interface-set-%3Cproperty%3E-%22%3Cvalue%3E%22)
|
||||
|
||||
[speed property](https://mpv.io/manual/master/#options-speed)
|
||||
|
||||
### Extensions > Rating > 0stars
|
||||
|
||||
A plugin the writes the rating to the filename.
|
||||
|
||||
### View > On Top > Enable
|
||||
|
||||
Forces the player to stay on top of other windows using the following command:
|
||||
|
||||
`set ontop yes`
|
||||
|
||||
[set command](https://mpv.io/manual/master/#command-interface-set-%3Cproperty%3E-%22%3Cvalue%3E%22)
|
||||
|
||||
[ontop property](https://mpv.io/manual/master/#options-ontop)
|
||||
|
||||
### View > On Top > Disable
|
||||
|
||||
Disables the player to stay on top of other windows using the following command:
|
||||
|
||||
`set ontop no`
|
||||
|
||||
[set command](https://mpv.io/manual/master/#command-interface-set-%3Cproperty%3E-%22%3Cvalue%3E%22)
|
||||
|
||||
[ontop property](https://mpv.io/manual/master/#options-ontop)
|
||||
|
||||
### View > File Info
|
||||
|
||||
Shows info using a mpv.net command about the current file, shows length, position, formats, size and filename.
|
||||
|
||||
### View > Show Statistics
|
||||
|
||||
Show statistics using the following command:
|
||||
|
||||
`script-binding stats/display-stats`
|
||||
|
||||
[script-binding command](https://mpv.io/manual/master/#command-interface-script-binding)
|
||||
|
||||
### View > Toggle Statistics
|
||||
|
||||
Toggles statistics using the following command:
|
||||
|
||||
`script-binding stats/display-stats-toggle`
|
||||
|
||||
[script-binding command](https://mpv.io/manual/master/#command-interface-script-binding)
|
||||
|
||||
### View > Toggle OSC Visibility
|
||||
|
||||
Toggles OSC Visibility using the following command:
|
||||
|
||||
`script-binding osc/visibility`
|
||||
|
||||
[script-binding command](https://mpv.io/manual/master/#command-interface-script-binding)
|
||||
|
||||
### View > Show Playlist
|
||||
|
||||
Shows the playlist for 5 seconds using the following command:
|
||||
|
||||
`show-text ${playlist} 5000`
|
||||
|
||||
[show-text command](https://mpv.io/manual/master/#command-interface-show-text)
|
||||
|
||||
### View > Show Audio/Video/Subtitle List
|
||||
|
||||
Shows the Audio/Video/Subtitle list for 5 seconds using the following command:
|
||||
|
||||
`show-text ${track-list} 5000`
|
||||
|
||||
[show-text command](https://mpv.io/manual/master/#command-interface-show-text)
|
||||
|
||||
### Settings > Show Config Editor
|
||||
|
||||
Shows mpv.net's config editor.
|
||||
|
||||
### Settings > Show Input Editor
|
||||
|
||||
Shows mpv.net's key binding editor.
|
||||
|
||||
### Settings > Open Config Folder
|
||||
|
||||
Opens the config folder which contains:
|
||||
|
||||
mpv.conf file containing mpv settings
|
||||
|
||||
mpvnet.conf file containing mpv.net settings
|
||||
|
||||
input.conf containing mpv key bindings
|
||||
|
||||
User scripts and user extensions
|
||||
|
||||
### Tools > Command Palette
|
||||
|
||||
Shows the command palette window which allows to find mpv.net commands, it shows the command's location in the context menu and the key shortcut.
|
||||
|
||||
### Tools > Show History
|
||||
|
||||
When enabled shows a file that contains the playback history containing the time and filename.
|
||||
|
||||
### Tools > Set/clear A-B loop points
|
||||
|
||||
Enables to set loop start and end points using the following command:
|
||||
|
||||
`ab-loop`
|
||||
|
||||
[ab-loop command](https://mpv.io/manual/master/#command-interface-ab-loop)
|
||||
|
||||
### Tools > Toggle infinite file looping
|
||||
|
||||
Loops the current file infinitely using the following command:
|
||||
|
||||
cycle-values loop-file "inf" "no"
|
||||
|
||||
[cycle-values command](https://mpv.io/manual/master/#command-interface-cycle-values)
|
||||
|
||||
[loop-file command](https://mpv.io/manual/master/#options-loop)
|
||||
|
||||
### Tools > Cycle Hardware Decoding
|
||||
|
||||
Cycles the hwdec property to enable/disable hardware decoding using the following command:
|
||||
|
||||
`cycle-values hwdec "auto" "no"`
|
||||
|
||||
[cycle-values command](https://mpv.io/manual/master/#command-interface-cycle-values)
|
||||
|
||||
[hwdec property](https://mpv.io/manual/master/#options-hwdec)
|
||||
|
||||
### Tools > Execute mpv command
|
||||
|
||||
Allows to execute mpv commands.
|
||||
|
||||
### Tools > Manage File Associations
|
||||
|
||||
Allows to manage file associations.
|
||||
|
||||
### Help > Show mpv manual
|
||||
|
||||
Shows the [mpv manual](https://mpv.io/manual/stable/).
|
||||
|
||||
### Help > Show mpv default keys
|
||||
|
||||
Shows the [mpv default keys](https://github.com/mpv-player/mpv/blob/master/etc/input.conf)
|
||||
|
||||
### Help > Show mpv.net default keys
|
||||
|
||||
Shows the [mpv.net default keys](https://github.com/stax76/mpv.net/blob/master/mpv.net/Resources/inputConf.txt)
|
||||
|
||||
Help > Show mpv.net web site
|
||||
|
||||
Shows the [mpv.net web site](https://mpv-net.github.io/mpv.net-web-site/)
|
||||
|
||||
### Help > Show mpv.net manual
|
||||
|
||||
Shows the [mpv.net manual](https://github.com/stax76/mpv.net/blob/master/Manual.md)
|
||||
|
||||
### Help > About mpv.net
|
||||
|
||||
Shows the mpv.net about dialog.
|
||||
|
||||
### Exit
|
||||
|
||||
Exits mpv.net using the following command:
|
||||
|
||||
`quit`
|
||||
|
||||
[quit command](https://mpv.io/manual/master/#command-interface-quit-[%3Ccode%3E])
|
||||
|
||||
### Exit Watch Later
|
||||
|
||||
Exits mpv.net and remembers the position in the file using the following command:
|
||||
|
||||
`quit-watch-later`
|
||||
|
||||
[quit-watch-later command](https://mpv.io/manual/master/#command-interface-quit-watch-later)
|
||||
|
||||
## Command Line Interface
|
||||
|
||||
mpvnet implements a basic CLI to set mpv commands.
|
||||
|
||||
Example:
|
||||
|
||||
mpvnet --mute=yes <file|URL>
|
||||
|
||||
## Settings
|
||||
|
||||
mpv.net is able to share the settings with mpv and mpv.net uses the same logic to decide from where the settings are loaded. The default location is:
|
||||
|
||||
```Text
|
||||
C:\Users\%username%\AppData\Roaming\mpv\mpv.conf
|
||||
```
|
||||
|
||||
If a directory named portable_config next to the mpvnet.exe exists, all config will be loaded from this directory only.
|
||||
|
||||
```Text
|
||||
<startup>\portable_config\mpv.conf
|
||||
```
|
||||
|
||||
In case there isn't any config folder mpv.net asks where to create it. If no mpv.conf file exists mpv.net generates it with the following defaults:
|
||||
|
||||
<https://github.com/stax76/mpv.net/blob/master/mpv.net/Resources/mpvConf.txt>
|
||||
|
||||
Config files located in the same directory as mpvnet.exe are loaded with lower priority. Some config files are loaded only once, which means that e.g. of 2 input.conf files located in two config directories, only the one from the directory with higher priority will be loaded.
|
||||
|
||||
The key bindings and the context menu definitions are stored in the input.conf file,
|
||||
if it's missing mpv.net generates it with the following defaults:
|
||||
|
||||
<https://github.com/stax76/mpv.net/blob/master/mpv.net/Resources/inputConf.txt>
|
||||
252
README.md
@@ -1,225 +1,147 @@
|
||||

|
||||
|
||||
# 🎞 mpv.net
|
||||

|
||||
|
||||
mpv.net is a modern media player for Windows that works just like [mpv](https://mpv.io).
|
||||
    
|
||||
|
||||
#### Based on libmpv
|
||||
🎞 mpv.net
|
||||
==========
|
||||
|
||||
mpv.net is a media player for Windows with a modern GUI.
|
||||
|
||||
The player is based on the popular [mpv](https://mpv.io) media player.
|
||||
mpv.net is designed to be mpv compatible, almost all mpv features are available,
|
||||
this means the official [mpv manual](https://mpv.io/manual/master/) applies to mpv.net,
|
||||
differences are documented in the [mpv.net manual](docs/manual.md#differences-compared-to-mpv).
|
||||
|
||||
#### Graphical User Interface
|
||||
|
||||
Modern GUI with customizable color themes.
|
||||
|
||||
mpv.net is based on libmpv which offers a straightforward C API that was designed from the ground up to make mpv usable as a library and facilitate easy integration into other applications. mpv is like vlc not based on DirectShow or Media Foundation.
|
||||
|
||||
#### Command Line Interface
|
||||
|
||||
mpv.net has the [CLI of mpv](https://mpv.io/manual/master/#options).
|
||||
mpv.net supports mpvs command line interface.
|
||||
|
||||
|
||||
#### High quality video output
|
||||
|
||||
libmpv has an OpenGL based video output that is capable of many features loved by videophiles, such as video scaling with popular high quality algorithms, color management, frame timing, interpolation, HDR, and more.
|
||||
Video output that is capable of many features loved by videophiles,
|
||||
such as video scaling with popular high quality algorithms,
|
||||
color management, frame timing, interpolation, HDR, and more.
|
||||
|
||||
|
||||
#### On Screen Controller
|
||||
|
||||
The OSC of libmpv offers play controls with a modern flat design. ([Screenshot](#main-window-screenshot))
|
||||
Play controls with a modern flat design.
|
||||
|
||||
|
||||
#### GPU video decoding
|
||||
|
||||
libmpv leverages the FFmpeg hwaccel APIs to support DXVA2 video decoding acceleration.
|
||||
Leverages the FFmpeg hwaccel APIs to support DXVA2 video decoding acceleration.
|
||||
|
||||
#### Active development
|
||||
|
||||
mpv.net is under active development. Want a feature? Post a [patch](https://github.com/stax76/mpv.net/pulls) or [request it](https://github.com/stax76/mpv.net/issues)!
|
||||
#### Based on libmpv
|
||||
|
||||
mpv.net is based on libmpv which offers a straightforward C API that
|
||||
was designed from the ground up to make mpv usable as a library and
|
||||
facilitate easy integration into other applications.
|
||||
mpv is like VLC not based on DirectShow or Media Foundation.
|
||||
|
||||
|
||||
Table of contents
|
||||
-----------------
|
||||
|
||||
- [Features](#features)
|
||||
- [Screenshots](#screenshots)
|
||||
- [Manual](#manual)
|
||||
- [Context Menu](#context-menu)
|
||||
- [Settings](#settings)
|
||||
- [Scripting](#scripting)
|
||||
- [Add-ons](#add-ons)
|
||||
- [Architecture](#architecture)
|
||||
- [Features](#features-that-mpv-and-mpvnet-have-in-common)
|
||||
- [Support](#support)
|
||||
- [Links](#links)
|
||||
- [Changelog](#changelog)
|
||||
- [Download](#download)
|
||||
- [Manual](#manual)
|
||||
- [Screenshots](#screenshots)
|
||||
- [Contributing](#contributing)
|
||||
|
||||
### Features
|
||||
|
||||
- Customizable context menu defined in the same file as the key bindings ([Screenshot](#context-menu-screenshot), [Defaults](https://github.com/stax76/mpv.net/blob/master/mpv.net/Resources/inputConf.txt))
|
||||
- Searchable config dialog ([Screenshot](#config-editor-screenshot), [Defaults](https://github.com/stax76/mpv.net/blob/master/mpv.net/Resources/mpvConf.txt))
|
||||
- Searchable input (key/mouse) binding editor ([Screenshot](#input-editor-screenshot), [Defaults](https://github.com/stax76/mpv.net/blob/master/mpv.net/Resources/inputConf.txt))
|
||||
- Searchable command palette to quickly launch commands and look for keys ([Screenshot](#command-palette-screenshot))
|
||||
- Modern UI with dark mode ([Screenshot](#config-editor-screenshot))
|
||||
- Addon/extension API for .NET languages
|
||||
- Scripting API for Python, C#, Lua, JavaScript and PowerShell ([wiki](https://github.com/stax76/mpv.net/wiki/Scripting))
|
||||
- mpv's OSC, IPC and conf files
|
||||
- [Command Line Interface](https://mpv.io/manual/master/#options)
|
||||
Features that mpv and mpv.net have in common
|
||||
--------------------------------------------
|
||||
|
||||
- Lua and JavaScript Scripting ([awesome-mpv lists a large collection of available user scripts](https://github.com/stax76/awesome-mpv))
|
||||
- Simple config files that are easy to read and edit
|
||||
- JSON IPC to control the player with a external programs
|
||||
- On Screen Controller (OSC, play control buttons) with modern flat design
|
||||
- Command Line Interface
|
||||
- Started from a terminal, status, error and debug output is printed on the terminal
|
||||
- DXVA2 video decoding acceleration
|
||||
- OpenGL based video output capable of features loved by videophiles, such as video scaling with popular high quality algorithms, color management, frame timing, interpolation, HDR, and more
|
||||
- Search feature powered by [Everything](https://www.voidtools.com) to find and play media ([Screenshot](#media-search-screenshot))
|
||||
- Video output capable of features loved by videophiles, such as video scaling with popular high quality algorithms, color management, frame timing, interpolation, HDR, and more
|
||||
- Browser extensions to start mpv.net from the browser
|
||||
- Fast seek performance
|
||||
- Fast startup performance
|
||||
- Usable as video player, audio player and image viewer with a wide range of supported formats
|
||||
- Built-in decoders, no external codecs have to be installed
|
||||
- Build-in media streaming (requires yt-dlp being installed)
|
||||
- External audio and subtitle files can be loaded manually or automatically
|
||||
- Screenshot feature
|
||||
- Internationalization using gettext and transifex
|
||||
|
||||
### Screenshots
|
||||
|
||||
#### Main Window Screenshot
|
||||
Features exclusive to mpv.net
|
||||
----------------------------
|
||||
|
||||

|
||||
- Very high degree of mpv compatibility, almost all mpv features are available
|
||||
- Modern graphical user interface with customizable color themes
|
||||
- Customizable context menu
|
||||
- Searchable config editor
|
||||
- Searchable input (shorcut keys) editor
|
||||
- Global keyboard shortcuts
|
||||
- Extension API for .NET languages (C#, VB.NET and F#)
|
||||
- Files can be enqueued from File Explorer
|
||||
|
||||
#### Context Menu Screenshot
|
||||
|
||||
Context menu defined in the input.conf file with dark mode support.
|
||||
## [Support](docs/manual.md#support)
|
||||
|
||||

|
||||
[Support section of the manual.](docs/manual.md#support)
|
||||
|
||||
#### Config Editor Screenshot
|
||||
|
||||
A searchable config editor as alternative to edit the mpv.conf file manually.
|
||||
## [Download](docs/manual.md#download)
|
||||
|
||||

|
||||
[Download section of the manual.](docs/manual.md#download)
|
||||
|
||||
#### Input Editor Screenshot
|
||||
|
||||
A searchable key and mouse binding editor.
|
||||
## [Manual](docs/manual.md)
|
||||
|
||||

|
||||
[The mpv.net documentation.](docs/manual.md)
|
||||
|
||||
#### Command Palette Screenshot
|
||||
|
||||
Forgot where a command in the menu is located or what shortcut key it has?
|
||||
Just press Ctrl+Shift+P and find it easily in the searchable command palette.
|
||||
## [Contributing](docs/contributing.md)
|
||||
|
||||

|
||||
[Contributing section of the manual.](docs/manual.md#contributing)
|
||||
|
||||
#### Media Search Screenshot
|
||||
|
||||
Media search feature powered by [Everything](https://www.voidtools.com) to find and play media.
|
||||
Screenshots
|
||||
-----------
|
||||
|
||||

|
||||
#### Main Window
|
||||
|
||||
### Manual
|
||||

|
||||
|
||||
[Manual](Manual.md)
|
||||
|
||||
### Context Menu
|
||||
#### Context Menu
|
||||
|
||||
The context menu can be customized via input.conf file located in the config directory:
|
||||

|
||||
|
||||
```Text
|
||||
C:\Users\%username%\AppData\Roaming\mpv\input.conf
|
||||
```
|
||||
|
||||
if it's missing mpv.net generates it with the following defaults:
|
||||
#### Config Editor
|
||||
|
||||
<https://github.com/stax76/mpv.net/blob/master/mpv.net/Resources/inputConf.txt>
|
||||
Searchable config editor as alternative to edit the conf file manually.
|
||||
|
||||
input.conf defines mpv's key and mouse bindings and mpv.net uses comments to define the context menu.
|
||||

|
||||
|
||||
### Settings
|
||||
|
||||
mpv.net is able to share the settings with mpv and mpv.net uses the same logic to decide from where the settings are loaded. The default location is:
|
||||
#### Terminal
|
||||
|
||||
```Text
|
||||
C:\Users\%username%\AppData\Roaming\mpv\mpv.conf
|
||||
```
|
||||

|
||||
|
||||
If a directory named portable_config next to the mpvnet.exe exists, all config will be loaded from this directory only.
|
||||
|
||||
```Text
|
||||
<startup>\portable_config\mpv.conf
|
||||
```
|
||||
Other projects from me
|
||||
----------------------
|
||||
|
||||
In case there isn't any config folder mpv.net asks where to create it. If no mpv.conf file exists mpv.net generates it with the following defaults:
|
||||
A list of my other projects can be found here:
|
||||
|
||||
<https://github.com/stax76/mpv.net/blob/master/mpv.net/Resources/mpvConf.txt>
|
||||
|
||||
Config files located in the same directory as mpvnet.exe are loaded with lower priority. Some config files are loaded only once, which means that e.g. of 2 input.conf files located in two config directories, only the one from the directory with higher priority will be loaded.
|
||||
|
||||
The key bindings and the context menu definitions are stored in the input.conf file,
|
||||
if it's missing mpv.net generates it with the following defaults:
|
||||
|
||||
<https://github.com/stax76/mpv.net/blob/master/mpv.net/Resources/inputConf.txt>
|
||||
|
||||
mpv.net supports almost all mpv settings and features, [limitations are listed in the wiki](https://github.com/stax76/mpv.net/wiki/Limitations).
|
||||
|
||||
### Scripting
|
||||
|
||||
[Scripting wiki page](https://github.com/stax76/mpv.net/wiki/Scripting)
|
||||
|
||||
### Add-ons
|
||||
|
||||
[Add-on wiki page](https://github.com/stax76/mpv.net/wiki/Addons)
|
||||
|
||||
### Architecture
|
||||
|
||||
mpv.net is written in C# 7.0 and runs on the .NET framework 4.7 or higher.
|
||||
|
||||
The Add-on implementation is based on the [Managed Extensibility Framework](https://docs.microsoft.com/en-us/dotnet/framework/mef/).
|
||||
|
||||
There are no specific extension or scripting interfaces but instead everyting
|
||||
is accessible for .NET compatible languages (C#, VB.NET, F#, Python, PowerShell),
|
||||
this decision was made to keep the code simple and lightweight.
|
||||
|
||||
Python scripting is implemented with IronPython which uses Python 2.7.
|
||||
|
||||
The main/video window is WinForms based, all other windows are WPF based.
|
||||
|
||||
The config editor adds it's controls dynamically and uses TOML to define it's
|
||||
content, there are only two simple types, StringSetting and OptionSetting.
|
||||
|
||||
mpv.net was started 2017 and consists of about 6000 lines of code and markup.
|
||||
|
||||
IDE, Editor: Visual Studio, Visual Studio Code.
|
||||
|
||||
Due to mpv.net being my first WPF app and mpv.net never meant to be a large
|
||||
application best practices and design pattern are not always applied.
|
||||
|
||||
Third party components:
|
||||
|
||||
- [libmpv, the heard and soul of mpv.net](https://mpv.io/)
|
||||
- [MediaInfo, no media related project could do without](https://mediaarea.net/en/MediaInfo)
|
||||
- [Tommy, a single file TOML parser](https://github.com/dezhidki/Tommy)
|
||||
- [IronPython, bringing Python to dotnet](https://ironpython.net/)
|
||||
- [CS-Script, scripting with C#](http://www.csscript.net/)
|
||||
- [Everything, a blazing fast file search service](https://www.voidtools.com)
|
||||
|
||||
### Support
|
||||
|
||||
[Support thread in Doom9 forum](https://forum.doom9.org/showthread.php?t=174841)
|
||||
|
||||
[Support thread in VideoHelp forum](https://forum.videohelp.com/threads/392514-mpv-net-a-extendable-media-player-for-windows)
|
||||
|
||||
[Issue tracker to report bugs and request features](https://github.com/stax76/mpv.net/issues)
|
||||
|
||||
[frank.skare.de@gmail.com](mailto:frank.skare.de@gmail.com?Subject=mpv.net%20support)
|
||||
|
||||
### Links
|
||||
|
||||
mpv manual: <https://mpv.io/manual/master/>
|
||||
|
||||
mpv wiki: <https://github.com/mpv-player/mpv/wiki>
|
||||
|
||||
mpv.net wiki: <https://github.com/stax76/mpv.net/wiki>
|
||||
|
||||
mpv apps: <https://github.com/mpv-player/mpv/wiki/Applications-using-mpv>
|
||||
|
||||
mpv user scripts: <https://github.com/mpv-player/mpv/wiki/User-Scripts>
|
||||
|
||||
mpv default key bindings: <https://github.com/mpv-player/mpv/blob/master/etc/input.conf>
|
||||
|
||||
mpv.net default key bindings: <https://github.com/stax76/mpv.net/blob/master/mpv.net/Resources/inputConf.txt>
|
||||
|
||||
mpv download: <https://mpv.io/installation/>
|
||||
|
||||
mpv.net download: <https://github.com/stax76/mpv.net/releases>
|
||||
|
||||
mpv bugs and requests: <https://mpv.io/bug-reports/>
|
||||
|
||||
mpv.net bugs and requests: <https://github.com/stax76/mpv.net/issues>
|
||||
|
||||
### Changelog
|
||||
|
||||
[Changelog](Changelog.md)
|
||||
|
||||
### Download
|
||||
|
||||
<https://github.com/stax76/mpv.net/releases>
|
||||
https://stax76.github.io/software-list
|
||||
@@ -1,35 +0,0 @@
|
||||
Imports System.ComponentModel.Composition
|
||||
Imports System.IO
|
||||
Imports System.Windows.Forms
|
||||
|
||||
Imports mpvnet
|
||||
|
||||
Imports CSScriptLibrary
|
||||
|
||||
<Export(GetType(IAddon))>
|
||||
Public Class CSScriptAddon
|
||||
Implements IAddon
|
||||
|
||||
Sub New()
|
||||
Dim scriptFiles As New List(Of String)
|
||||
|
||||
If Directory.Exists(mp.ConfFolder + "scripts") Then
|
||||
scriptFiles.AddRange(Directory.GetFiles(mp.ConfFolder + "scripts", "*.cs"))
|
||||
End If
|
||||
|
||||
If Directory.Exists(Application.StartupPath + "\scripts") Then
|
||||
scriptFiles.AddRange(Directory.GetFiles(Application.StartupPath + "\scripts", "*.cs"))
|
||||
End If
|
||||
|
||||
If scriptFiles.Count = 0 Then Return
|
||||
CSScriptLibrary.CSScript.EvaluatorConfig.Engine = EvaluatorEngine.CodeDom
|
||||
|
||||
For Each i In scriptFiles
|
||||
Try
|
||||
CSScriptLibrary.CSScript.Evaluator.LoadCode(File.ReadAllText(i))
|
||||
Catch ex As Exception
|
||||
Msg.ShowException(ex)
|
||||
End Try
|
||||
Next
|
||||
End Sub
|
||||
End Class
|
||||
@@ -1,166 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{71808A87-8B1C-4DF8-957C-D79C3B164CCA}</ProjectGuid>
|
||||
<OutputType>Library</OutputType>
|
||||
<RootNamespace>CSScriptAddon</RootNamespace>
|
||||
<AssemblyName>CSScriptAddon</AssemblyName>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<MyType>Windows</MyType>
|
||||
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
|
||||
<TargetFrameworkProfile />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<DefineDebug>true</DefineDebug>
|
||||
<DefineTrace>true</DefineTrace>
|
||||
<OutputPath>..\mpv.net\bin\Addons\CSScriptAddon\</OutputPath>
|
||||
<DocumentationFile>
|
||||
</DocumentationFile>
|
||||
<NoWarn>42105,42106,42107,42353,42354,42355</NoWarn>
|
||||
<WarningsAsErrors>41999,42016,42017,42018,42019,42020,42021,42022,42032,42036</WarningsAsErrors>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<DefineDebug>false</DefineDebug>
|
||||
<DefineTrace>true</DefineTrace>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>..\mpv.net\bin\Addons\CSScriptAddon\</OutputPath>
|
||||
<DocumentationFile>
|
||||
</DocumentationFile>
|
||||
<NoWarn>42105,42106,42107,42353,42354,42355</NoWarn>
|
||||
<WarningsAsErrors>41999,42016,42017,42018,42019,42020,42021,42022,42032,42036</WarningsAsErrors>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<OptionExplicit>On</OptionExplicit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<OptionCompare>Binary</OptionCompare>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<OptionStrict>On</OptionStrict>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<OptionInfer>On</OptionInfer>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DefineDebug>true</DefineDebug>
|
||||
<DefineTrace>true</DefineTrace>
|
||||
<OutputPath>..\..\mpv.net\bin\x86\Addons\CSScriptAddon\</OutputPath>
|
||||
<NoWarn>42105,42106,42107,42353,42354,42355</NoWarn>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<WarningsAsErrors>41999,42016,42017,42018,42019,42020,42021,42022,42032,42036</WarningsAsErrors>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
|
||||
<DefineTrace>true</DefineTrace>
|
||||
<OutputPath>..\mpv.net\bin\x86\Addons\CSScriptAddon\</OutputPath>
|
||||
<Optimize>true</Optimize>
|
||||
<NoWarn>42105,42106,42107,42353,42354,42355</NoWarn>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<WarningsAsErrors>41999,42016,42017,42018,42019,42020,42021,42022,42032,42036</WarningsAsErrors>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DefineDebug>true</DefineDebug>
|
||||
<DefineTrace>true</DefineTrace>
|
||||
<OutputPath>..\..\mpv.net\bin\x64\Addons\CSScriptAddon\</OutputPath>
|
||||
<NoWarn>42105,42106,42107,42353,42354,42355</NoWarn>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<WarningsAsErrors>41999,42016,42017,42018,42019,42020,42021,42022,42032,42036</WarningsAsErrors>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
|
||||
<DefineTrace>true</DefineTrace>
|
||||
<OutputPath>..\mpv.net\bin\x64\Addons\CSScriptAddon\</OutputPath>
|
||||
<Optimize>true</Optimize>
|
||||
<NoWarn>42105,42106,42107,42353,42354,42355</NoWarn>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<WarningsAsErrors>41999,42016,42017,42018,42019,42020,42021,42022,42032,42036</WarningsAsErrors>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="CSScriptLibrary, Version=3.27.5.0, Culture=neutral, PublicKeyToken=70fcc3d18c749033, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>.\CSScriptLibrary.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.ComponentModel.Composition" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="System.Net.Http" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Import Include="Microsoft.VisualBasic" />
|
||||
<Import Include="System" />
|
||||
<Import Include="System.Collections" />
|
||||
<Import Include="System.Collections.Generic" />
|
||||
<Import Include="System.Data" />
|
||||
<Import Include="System.Diagnostics" />
|
||||
<Import Include="System.Linq" />
|
||||
<Import Include="System.Xml.Linq" />
|
||||
<Import Include="System.Threading.Tasks" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="CSScriptAddon.vb" />
|
||||
<Compile Include="My Project\AssemblyInfo.vb" />
|
||||
<Compile Include="My Project\Application.Designer.vb">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Application.myapp</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="My Project\Resources.Designer.vb">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DesignTime>True</DesignTime>
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="My Project\Settings.Designer.vb">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Settings.settings</DependentUpon>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="My Project\Resources.resx">
|
||||
<Generator>VbMyResourcesResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.Designer.vb</LastGenOutput>
|
||||
<CustomToolNamespace>My.Resources</CustomToolNamespace>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="My Project\Application.myapp">
|
||||
<Generator>MyApplicationCodeGenerator</Generator>
|
||||
<LastGenOutput>Application.Designer.vb</LastGenOutput>
|
||||
</None>
|
||||
<None Include="My Project\Settings.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<CustomToolNamespace>My</CustomToolNamespace>
|
||||
<LastGenOutput>Settings.Designer.vb</LastGenOutput>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="CSScriptLibrary.dll" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\mpv.net\mpv.net.csproj">
|
||||
<Project>{1751f378-8edf-4b62-be6d-304c7c287089}</Project>
|
||||
<Name>mpv.net</Name>
|
||||
<Private>False</Private>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
|
||||
</Project>
|
||||
@@ -1,13 +0,0 @@
|
||||
'------------------------------------------------------------------------------
|
||||
' <auto-generated>
|
||||
' This code was generated by a tool.
|
||||
' Runtime Version:4.0.30319.42000
|
||||
'
|
||||
' Changes to this file may cause incorrect behavior and will be lost if
|
||||
' the code is regenerated.
|
||||
' </auto-generated>
|
||||
'------------------------------------------------------------------------------
|
||||
|
||||
Option Strict On
|
||||
Option Explicit On
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<MyApplicationData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
||||
<MySubMain>false</MySubMain>
|
||||
<SingleInstance>false</SingleInstance>
|
||||
<ShutdownMode>0</ShutdownMode>
|
||||
<EnableVisualStyles>true</EnableVisualStyles>
|
||||
<AuthenticationMode>0</AuthenticationMode>
|
||||
<ApplicationType>1</ApplicationType>
|
||||
<SaveMySettingsOnExit>true</SaveMySettingsOnExit>
|
||||
</MyApplicationData>
|
||||
@@ -1,35 +0,0 @@
|
||||
Imports System
|
||||
Imports System.Reflection
|
||||
Imports System.Runtime.InteropServices
|
||||
|
||||
' General Information about an assembly is controlled through the following
|
||||
' set of attributes. Change these attribute values to modify the information
|
||||
' associated with an assembly.
|
||||
|
||||
' Review the values of the assembly attributes
|
||||
|
||||
<Assembly: AssemblyTitle("CSScriptAddon")>
|
||||
<Assembly: AssemblyDescription("")>
|
||||
<Assembly: AssemblyCompany("")>
|
||||
<Assembly: AssemblyProduct("CSScriptAddon")>
|
||||
<Assembly: AssemblyCopyright("Copyright © 2019")>
|
||||
<Assembly: AssemblyTrademark("")>
|
||||
|
||||
<Assembly: ComVisible(False)>
|
||||
|
||||
'The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||
<Assembly: Guid("4a748201-3948-497d-b156-7d172a332bd6")>
|
||||
|
||||
' Version information for an assembly consists of the following four values:
|
||||
'
|
||||
' Major Version
|
||||
' Minor Version
|
||||
' Build Number
|
||||
' Revision
|
||||
'
|
||||
' You can specify all the values or you can default the Build and Revision Numbers
|
||||
' by using the '*' as shown below:
|
||||
' <Assembly: AssemblyVersion("1.0.*")>
|
||||
|
||||
<Assembly: AssemblyVersion("1.0.0.0")>
|
||||
<Assembly: AssemblyFileVersion("1.0.0.0")>
|
||||
@@ -1,63 +0,0 @@
|
||||
'------------------------------------------------------------------------------
|
||||
' <auto-generated>
|
||||
' This code was generated by a tool.
|
||||
' Runtime Version:4.0.30319.42000
|
||||
'
|
||||
' Changes to this file may cause incorrect behavior and will be lost if
|
||||
' the code is regenerated.
|
||||
' </auto-generated>
|
||||
'------------------------------------------------------------------------------
|
||||
|
||||
Option Strict On
|
||||
Option Explicit On
|
||||
|
||||
Imports System
|
||||
|
||||
Namespace My.Resources
|
||||
|
||||
'This class was auto-generated by the StronglyTypedResourceBuilder
|
||||
'class via a tool like ResGen or Visual Studio.
|
||||
'To add or remove a member, edit your .ResX file then rerun ResGen
|
||||
'with the /str option, or rebuild your VS project.
|
||||
'''<summary>
|
||||
''' A strongly-typed resource class, for looking up localized strings, etc.
|
||||
'''</summary>
|
||||
<Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0"), _
|
||||
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
|
||||
Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
|
||||
Global.Microsoft.VisualBasic.HideModuleNameAttribute()> _
|
||||
Friend Module Resources
|
||||
|
||||
Private resourceMan As Global.System.Resources.ResourceManager
|
||||
|
||||
Private resourceCulture As Global.System.Globalization.CultureInfo
|
||||
|
||||
'''<summary>
|
||||
''' Returns the cached ResourceManager instance used by this class.
|
||||
'''</summary>
|
||||
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
|
||||
Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager
|
||||
Get
|
||||
If Object.ReferenceEquals(resourceMan, Nothing) Then
|
||||
Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("CSScriptAddon.Resources", GetType(Resources).Assembly)
|
||||
resourceMan = temp
|
||||
End If
|
||||
Return resourceMan
|
||||
End Get
|
||||
End Property
|
||||
|
||||
'''<summary>
|
||||
''' Overrides the current thread's CurrentUICulture property for all
|
||||
''' resource lookups using this strongly typed resource class.
|
||||
'''</summary>
|
||||
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
|
||||
Friend Property Culture() As Global.System.Globalization.CultureInfo
|
||||
Get
|
||||
Return resourceCulture
|
||||
End Get
|
||||
Set
|
||||
resourceCulture = value
|
||||
End Set
|
||||
End Property
|
||||
End Module
|
||||
End Namespace
|
||||
73
addons/CSScriptAddon/My Project/Settings.Designer.vb
generated
@@ -1,73 +0,0 @@
|
||||
'------------------------------------------------------------------------------
|
||||
' <auto-generated>
|
||||
' This code was generated by a tool.
|
||||
' Runtime Version:4.0.30319.42000
|
||||
'
|
||||
' Changes to this file may cause incorrect behavior and will be lost if
|
||||
' the code is regenerated.
|
||||
' </auto-generated>
|
||||
'------------------------------------------------------------------------------
|
||||
|
||||
Option Strict On
|
||||
Option Explicit On
|
||||
|
||||
|
||||
Namespace My
|
||||
|
||||
<Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
|
||||
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.9.0.0"), _
|
||||
Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
|
||||
Partial Friend NotInheritable Class MySettings
|
||||
Inherits Global.System.Configuration.ApplicationSettingsBase
|
||||
|
||||
Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings)
|
||||
|
||||
#Region "My.Settings Auto-Save Functionality"
|
||||
#If _MyType = "WindowsForms" Then
|
||||
Private Shared addedHandler As Boolean
|
||||
|
||||
Private Shared addedHandlerLockObject As New Object
|
||||
|
||||
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
|
||||
Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs)
|
||||
If My.Application.SaveMySettingsOnExit Then
|
||||
My.Settings.Save()
|
||||
End If
|
||||
End Sub
|
||||
#End If
|
||||
#End Region
|
||||
|
||||
Public Shared ReadOnly Property [Default]() As MySettings
|
||||
Get
|
||||
|
||||
#If _MyType = "WindowsForms" Then
|
||||
If Not addedHandler Then
|
||||
SyncLock addedHandlerLockObject
|
||||
If Not addedHandler Then
|
||||
AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings
|
||||
addedHandler = True
|
||||
End If
|
||||
End SyncLock
|
||||
End If
|
||||
#End If
|
||||
Return defaultInstance
|
||||
End Get
|
||||
End Property
|
||||
End Class
|
||||
End Namespace
|
||||
|
||||
Namespace My
|
||||
|
||||
<Global.Microsoft.VisualBasic.HideModuleNameAttribute(), _
|
||||
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
|
||||
Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute()> _
|
||||
Friend Module MySettingsProperty
|
||||
|
||||
<Global.System.ComponentModel.Design.HelpKeywordAttribute("My.Settings")> _
|
||||
Friend ReadOnly Property Settings() As Global.CSScriptAddon.My.MySettings
|
||||
Get
|
||||
Return Global.CSScriptAddon.My.MySettings.Default
|
||||
End Get
|
||||
End Property
|
||||
End Module
|
||||
End Namespace
|
||||
@@ -1,7 +0,0 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" UseMySettingsClassName="true">
|
||||
<Profiles>
|
||||
<Profile Name="(Default)" />
|
||||
</Profiles>
|
||||
<Settings />
|
||||
</SettingsFile>
|
||||
@@ -1,36 +0,0 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
[assembly: AssemblyTitle("RatingAddon")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("RatingAddon")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2017")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// Setting ComVisible to false makes the types in this assembly not visible
|
||||
// to COM components. If you need to access a type in this assembly from
|
||||
// COM, set the ComVisible attribute to true on that type.
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||
[assembly: Guid("55c88710-539d-4402-84c8-31694841c731")]
|
||||
|
||||
// Version information for an assembly consists of the following four values:
|
||||
//
|
||||
// Major Version
|
||||
// Minor Version
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
// You can specify all the values or you can default the Build and Revision Numbers
|
||||
// by using the '*' as shown below:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||
@@ -1,58 +0,0 @@
|
||||
using System;
|
||||
using System.ComponentModel.Composition;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
|
||||
using mpvnet;
|
||||
|
||||
namespace RatingAddon
|
||||
{
|
||||
[Export(typeof(IAddon))]
|
||||
public class RatingAddon : IAddon
|
||||
{
|
||||
Dictionary<string, int> Dic = new Dictionary<string, int>();
|
||||
|
||||
public RatingAddon()
|
||||
{
|
||||
mp.ClientMessage += mpv_ClientMessage;
|
||||
mp.Shutdown += mpv_Shutdown;
|
||||
}
|
||||
|
||||
void mpv_Shutdown()
|
||||
{
|
||||
foreach (var i in Dic)
|
||||
{
|
||||
string filepath = i.Key;
|
||||
int rating = i.Value;
|
||||
|
||||
if (String.IsNullOrEmpty(filepath) || ! File.Exists(filepath))
|
||||
return;
|
||||
|
||||
string basename = Path.GetFileNameWithoutExtension(filepath);
|
||||
|
||||
for (int x = 0; x < 6; x++)
|
||||
if (basename.Contains(" (" + x.ToString() + "stars)"))
|
||||
basename = basename.Replace(" (" + x.ToString() + "stars)", "");
|
||||
|
||||
basename += $" ({rating}stars)";
|
||||
string newPath = Path.Combine(Path.GetDirectoryName(filepath), basename + Path.GetExtension(filepath));
|
||||
|
||||
if (filepath.ToLower() != newPath.ToLower())
|
||||
File.Move(filepath, newPath);
|
||||
|
||||
File.SetLastWriteTime(newPath, DateTime.Now);
|
||||
}
|
||||
}
|
||||
|
||||
void mpv_ClientMessage(string[] args)
|
||||
{
|
||||
int rating;
|
||||
|
||||
if (args?.Length != 2 || args[0] != "rate-file" || ! int.TryParse(args[1], out rating))
|
||||
return;
|
||||
|
||||
Dic[mp.get_property_string("path")] = rating;
|
||||
mp.commandv("show-text", $"Rating: {rating}");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,92 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{55C88710-539D-4402-84C8-31694841C731}</ProjectGuid>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>RatingAddon</RootNamespace>
|
||||
<AssemblyName>RatingAddon</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<TargetFrameworkProfile />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>..\mpv.net\bin\Addons\RatingAddon\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>..\mpv.net\bin\Addons\RatingAddon\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>..\..\mpv.net\bin\x86\Addons\RatingAddon\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
|
||||
<OutputPath>..\mpv.net\bin\x86\Addons\RatingAddon\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<Optimize>true</Optimize>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>..\..\mpv.net\bin\x64\Addons\RatingAddon\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
|
||||
<OutputPath>..\mpv.net\bin\x64\Addons\RatingAddon\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<Optimize>true</Optimize>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.ComponentModel.Composition" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Net.Http" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="RatingAddon.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\mpv.net\mpv.net.csproj">
|
||||
<Project>{1751f378-8edf-4b62-be6d-304c7c287089}</Project>
|
||||
<Name>mpv.net</Name>
|
||||
<Private>False</Private>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
</Project>
|
||||
@@ -1,27 +0,0 @@
|
||||
using System.ComponentModel.Composition;
|
||||
|
||||
using mpvnet;
|
||||
|
||||
namespace TestAddon
|
||||
{
|
||||
[Export(typeof(IAddon))]
|
||||
public class TestAddon : IAddon
|
||||
{
|
||||
// do some init work in constructor
|
||||
public TestAddon()
|
||||
{
|
||||
// Observe changes of the fullscreen property.
|
||||
// You can find a list of available mpv properties
|
||||
// in mpv.net's wiki on github or use mpv --list-properties.
|
||||
// You can test properties in mpv.net in the menu at:
|
||||
// Tools > Execute mpv command
|
||||
// where you can enter: show-text ${fullscreen}
|
||||
mp.observe_property_bool("fullscreen", OnFullscreenChange);
|
||||
}
|
||||
|
||||
void OnFullscreenChange(bool val)
|
||||
{
|
||||
mp.commandv("show-text", "fullscreen: " + val.ToString());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,92 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{06F854B0-00F9-4B53-94D9-0BE65A7C55D8}</ProjectGuid>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>TestAddon</RootNamespace>
|
||||
<AssemblyName>TestAddon</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<Deterministic>true</Deterministic>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>bin\x64\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
|
||||
<OutputPath>bin\x64\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<Optimize>true</Optimize>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>bin\x86\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
|
||||
<OutputPath>bin\x86\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<Optimize>true</Optimize>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.ComponentModel.Composition" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Net.Http" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="TestAddon.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\mpv.net\mpv.net.csproj">
|
||||
<Project>{1751f378-8edf-4b62-be6d-304c7c287089}</Project>
|
||||
<Name>mpv.net</Name>
|
||||
<Private>False</Private>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
</Project>
|
||||
1177
docs/changelog.md
Normal file
BIN
docs/img/ConfEditor.webp
Normal file
|
After Width: | Height: | Size: 243 KiB |
BIN
docs/img/Main.webp
Normal file
|
After Width: | Height: | Size: 429 KiB |
BIN
docs/img/Menu.webp
Normal file
|
After Width: | Height: | Size: 148 KiB |
BIN
docs/img/Terminal.webp
Normal file
|
After Width: | Height: | Size: 139 KiB |
755
docs/manual.md
Normal file
@@ -0,0 +1,755 @@
|
||||
|
||||
mpv.net manual
|
||||
==============
|
||||
|
||||
**ENGLISH** | **[简体中文](manual_chs.md)**
|
||||
|
||||
Table of contents
|
||||
-----------------
|
||||
|
||||
* [About](#about)
|
||||
* [Download](#download)
|
||||
* [Installation](#installation)
|
||||
* [Support](#support)
|
||||
* [Config Folder](#config-folder)
|
||||
* [Input and context menu](#input-and-context-menu)
|
||||
* [Command Line Interface](#command-line-interface)
|
||||
* [Terminal](#terminal)
|
||||
* [mpv.net specific commands](#mpvnet-specific-commands)
|
||||
* [mpv.net specific options](#mpvnet-specific-options)
|
||||
* [External Tools](#external-tools)
|
||||
* [Scripting](#scripting)
|
||||
* [Extensions](#extensions)
|
||||
* [Color Theme](#color-theme)
|
||||
* [Advanced Features](#advanced-features)
|
||||
* [Differences compared to mpv](#differences-compared-to-mpv)
|
||||
* [Environment Variables](#environment-variables)
|
||||
* [user-data](#user-data)
|
||||
* [Contributing](#contributing)
|
||||
* [Context Menu Commands](#context-menu)
|
||||
|
||||
About
|
||||
-----
|
||||
|
||||
mpv.net is a media player for Windows that has a modern GUI.
|
||||
|
||||
The player is based on the popular [mpv](https://mpv.io) media player.
|
||||
mpv.net is designed to be mpv compatible, almost all mpv features are available,
|
||||
this means the official [mpv manual](https://mpv.io/manual/master/) applies to mpv.net,
|
||||
differences are documented in this manual under [Differences compared to mpv](#differences-compared-to-mpv).
|
||||
|
||||
|
||||
Download
|
||||
--------
|
||||
|
||||
[Stable and beta portable and setup via GitHub download](../../../releases)
|
||||
|
||||
[Changelog](changelog.md)
|
||||
|
||||
|
||||
Installation
|
||||
------------
|
||||
|
||||
#### Requirements
|
||||
|
||||
1. Windows 10 or higher.
|
||||
2. [.NET Desktop Runtime 10.0](https://dotnet.microsoft.com/en-us/download/dotnet/10.0)
|
||||
|
||||
Internet streaming requires:
|
||||
|
||||
- Downloading [yt-dlp](https://github.com/yt-dlp/yt-dlp) and adding its folder
|
||||
to the [user environment variable PATH](https://www.google.com/search?q=user+environment+variable+PATH).
|
||||
Alternativly the yt-dlp executable can be saved in the mpv.net executable folder.
|
||||
- In case of proxy server usage, [manual configuration](https://github.com/mpvnet-player/mpv.net/issues/401).
|
||||
|
||||
#### File Associations
|
||||
|
||||
File Associations can be registered using the context menu under `Config > Setup`.
|
||||
|
||||
After the file associations were registered, it might still be necessary to change the
|
||||
default app in the Windows settings.
|
||||
|
||||
Another way to register file associations is using Windows File Explorer,
|
||||
select a media file and select `Open with > Choose another app` in the context menu.
|
||||
|
||||
[Open with++](#open-with) can be used to extend the File Explorer context menu
|
||||
to get menu items for [Play with mpv.net](https://github.com/stax76/OpenWithPlusPlus#play-with-mpvnet) and
|
||||
[Add to mpv.net playlist](https://github.com/stax76/OpenWithPlusPlus#add-to-mpvnet-playlist).
|
||||
Alternativly the `Send To` feature of Windows File Explorer can be used.
|
||||
|
||||
#### Path environment variable
|
||||
|
||||
In order to use mpv.net in a terminal for advanced use cases,
|
||||
mpv.net can be added to the Path environment variable, it allows
|
||||
to run mpv.net in a terminal by typing `mpvnet`. The easiest way
|
||||
to add mpv.net to path is:
|
||||
|
||||
`Context Menu > Config > Setup > Add mpv.net to Path environment variable`
|
||||
|
||||
For more information see the [terminal section](#terminal).
|
||||
|
||||
Support
|
||||
-------
|
||||
|
||||
Before making a support request, please try the newest [beta version](../../../releases) first.
|
||||
|
||||
Support can be requested here:
|
||||
|
||||
mpv.net bug reports, feature requests and advanced questions:
|
||||
|
||||
https://github.com/mpvnet-player/mpv.net/issues
|
||||
|
||||
Beginner mpv questions:
|
||||
|
||||
https://www.reddit.com/r/mpv
|
||||
|
||||
Advanced mpv questions:
|
||||
|
||||
https://github.com/mpv-player/mpv/issues
|
||||
|
||||
https://github.com/mpv-player/mpv/discussions
|
||||
|
||||
|
||||
Config Folder
|
||||
-------------
|
||||
|
||||
mpv.net searches the config folder at:
|
||||
|
||||
1. Folder defined via MPVNET_HOME environment variable.
|
||||
2. startup\portable_config (startup means the directory containing mpvnet.exe)
|
||||
3. `%APPDATA%\mpv.net` (`C:\Users\Username\AppData\Roaming\mpv.net`)
|
||||
|
||||
The config folder can be easily opened with:
|
||||
|
||||
`Context Menu > Config > Open Config Folder`
|
||||
|
||||
The most important files and folders in the config folder are:
|
||||
|
||||
- `mpv.conf` file containing the mpv configuration.
|
||||
- `mpvnet.conf` file containing the mpv.net configuration.
|
||||
- `input.conf` file containing mpv key and mouse input bindings.
|
||||
- `scripts` folder containing mpv user scripts.
|
||||
- `script-opts` folder containing user scripts configuration files.
|
||||
|
||||
|
||||
Input and context menu
|
||||
----------------------
|
||||
|
||||
Global keyboard shortcuts are supported via `global-input.conf` file.
|
||||
|
||||
The config folder can be opened from the context menu: `Config > Open Config Folder`
|
||||
|
||||
A input and config editor can be found in the context menu under `Config`.
|
||||
|
||||
The input test mode can be started via command line: `--input-test`
|
||||
|
||||
The input key list can be printed with `--input-keylist`.
|
||||
|
||||
mpv input.conf defaults:
|
||||
https://github.com/mpv-player/mpv/blob/master/etc/input.conf
|
||||
|
||||
mpv input commands:
|
||||
https://mpv.io/manual/master/#list-of-input-commands
|
||||
|
||||
mpv input options:
|
||||
https://mpv.io/manual/master/#input
|
||||
|
||||
Before version v7 all bindings and the context menu definition
|
||||
were defined in the input.conf file, which mpv.net created
|
||||
in case it didn't exist. This had the disadvantage that mpv.net
|
||||
lost control over all default bindings and context menu
|
||||
defaults. This was unfortunate, v7 introduces a new bindings
|
||||
and context menu design fixing it.
|
||||
|
||||
In v7 no input.conf file is created, the default bindings and
|
||||
context menu is defined internally. input.conf only contains
|
||||
what is different from the internally defined defaults,
|
||||
so it works the same as it works in mpv.
|
||||
|
||||
For backward compatibility the old input.conf context menu
|
||||
format with the menu definition using `#menu: ` is still
|
||||
supported. The new design also allows for a menu customization,
|
||||
in a sub section called `Custom`. In input.conf it can be
|
||||
defined like so:
|
||||
|
||||
`Ctrl+a show-text Test #custom-menu: Test > Test`
|
||||
|
||||
Users that have their bindings and context menu customized
|
||||
before v7 can easily migrate to the new design by deleting
|
||||
bindings they don't use and remember the shortcut and remove
|
||||
`#menu:` everywhere, it's important to remove `#menu:`
|
||||
everywhere in order to enable the new mode/design.
|
||||
|
||||
|
||||
Command Line Interface
|
||||
----------------------
|
||||
|
||||
**mpvnet** [options] [file|URL|PLAYLIST|-]
|
||||
**mpvnet** [options] files
|
||||
|
||||
|
||||
mpv properties can be set with the same syntax as mpv, that is:
|
||||
|
||||
|
||||
To enable the border property:
|
||||
|
||||
`--border` or `--border=yes`
|
||||
|
||||
|
||||
To disable the border property:
|
||||
|
||||
`--no-boder` or `--border=no`
|
||||
|
||||
|
||||
Supported are all mpv properties, they are documented here:
|
||||
|
||||
https://mpv.io/manual/master/#properties
|
||||
|
||||
|
||||
mpv has a few non property based switches which are generally not supported in mpv.net.
|
||||
|
||||
|
||||
Terminal
|
||||
--------
|
||||
|
||||
When mpv.net is started from a terminal it will output status,
|
||||
error and debug messages to the terminal and accept input keys from the terminal.
|
||||
|
||||
mpv.net specific commands
|
||||
-------------------------
|
||||
|
||||
`script-message-to mpvnet <command> <arguments>`
|
||||
|
||||
### add-to-path
|
||||
Adds mpv.net to the Path environment variable.
|
||||
|
||||
### remove-from-path
|
||||
Removes mpv.net from the Path environment variable.
|
||||
|
||||
### edit-conf-file [mpv.conf|input.conf]
|
||||
Opens mpv.conf or input.conf in a text editor.
|
||||
|
||||
### load-audio
|
||||
Shows a file browser dialog to open external audio files.
|
||||
|
||||
For automatic detection of external audio files based on the file name,
|
||||
use the mpv option `audio-file-auto`, it can be found it the config dialog:
|
||||
|
||||
`Context Menu > Config > Show Config Editor > Audio > audio-file-auto`
|
||||
|
||||
### load-sub
|
||||
Shows a file browser dialog to open external subtitle files.
|
||||
|
||||
For automatic detection of external subtitle files based on the file name,
|
||||
use the mpv option `sub-auto`, it can be found it the config dialog:
|
||||
|
||||
`Context Menu > Config > Show Config Editor > Subtitles > sub-auto`
|
||||
|
||||
### move-window [left|top|right|bottom|center]
|
||||
Moves the Window to the screen edge (Alt+Arrow) or center (Alt+BS).
|
||||
|
||||
### open-conf-folder
|
||||
Opens the config folder with Windows File Explorer.
|
||||
|
||||
### open-files [\<flags\>]
|
||||
**append**
|
||||
Appends files to the playlist.
|
||||
|
||||
Opens a file browser dialog in order to select files to be opened.
|
||||
The file browser dialog supports multiselect to load multiple files
|
||||
at once.
|
||||
|
||||
Supported are media files and Blu-ray and DVD ISO image files.
|
||||
|
||||
### open-optical-media
|
||||
Shows a folder browser dialog to open a DVD or BD folder.
|
||||
ISO images don't have to be mounted, but instead can be
|
||||
opened directly with the open-files command.
|
||||
|
||||
### open-clipboard [\<flags\>]
|
||||
Opens URLs or filepaths from the clipboard,
|
||||
or files in the file clipboard format.
|
||||
|
||||
**append**
|
||||
Appends files/URLs to the playlist.
|
||||
|
||||
### play-pause
|
||||
Cycles the pause property. In case the playlist is empty,
|
||||
the most recent file from the recent files list is loaded.
|
||||
|
||||
### reg-file-assoc \<audio|video|image\>
|
||||
Registers the file associations.
|
||||
|
||||
### scale-window \<factor\>
|
||||
Decreases or increases the Window size.
|
||||
|
||||
### shell-execute \<file|URL\>
|
||||
Shell executes a single file or URL.
|
||||
|
||||
### show-about
|
||||
Shows the about dialog.
|
||||
|
||||
### show-audio-devices
|
||||
Shows available audio devices in a message box.
|
||||
|
||||
### show-commands
|
||||
Shows available [mpv input commands](https://mpv.io/manual/master/#list-of-input-commands).
|
||||
|
||||
### show-properties
|
||||
Shows available [properties](https://mpv.io/manual/master/#properties).
|
||||
|
||||
### show-keys
|
||||
Shows available [input keys](https://mpv.io/manual/master/#options-input-keylist).
|
||||
|
||||
### show-protocols
|
||||
Shows available [protocols](https://mpv.io/manual/master/#options-list-protocols).
|
||||
|
||||
### show-decoders
|
||||
Shows available decoders.
|
||||
|
||||
### show-demuxers
|
||||
Shows available demuxers.
|
||||
|
||||
### show-conf-editor
|
||||
Shows the conf editor.
|
||||
|
||||
### show-input-editor
|
||||
Shows the input editor.
|
||||
|
||||
### show-media-info [\<flags\>]
|
||||
**msgbox**
|
||||
Shows media info in a messsage box.
|
||||
|
||||
**editor**
|
||||
Shows media info in a text editor.
|
||||
|
||||
**osd**
|
||||
Shows media info on screen.
|
||||
|
||||
**full**
|
||||
Shows fully detailed media info.
|
||||
|
||||
**raw**
|
||||
Shows media info with raw property names.
|
||||
|
||||
### show-menu
|
||||
Shows the context menu.
|
||||
|
||||
### show-profiles
|
||||
Shows available profiles with a message box.
|
||||
|
||||
### show-text \<text\> \<duration\> \<font-size\>
|
||||
Shows a OSD message with given text, duration and font size.
|
||||
|
||||
### window-scale \<factor\>
|
||||
Works similar as the [window-scale](https://mpv.io/manual/master/#command-interface-window-scale) mpv property.
|
||||
|
||||
|
||||
mpv.net specific options
|
||||
------------------------
|
||||
|
||||
mpv.net specific options can be found in the conf editor searching for 'mpv.net'.
|
||||
|
||||
The options are saved in the mpvnet.conf file.
|
||||
|
||||
#### --autofit-audio \<integer\>
|
||||
Initial window height in percent for audio files. Default: 70
|
||||
|
||||
#### --autofit-image \<integer\>
|
||||
Initial window height in percent for image files. Default: 80
|
||||
|
||||
#### --queue \<files\>
|
||||
|
||||
Adds files to the playlist, requires [--process-instance=single](#--process-instancevalue).
|
||||
[Open with++](#open-with) can be used to add files to the playlist using File Explorer.
|
||||
|
||||
#### --command=\<input command\>
|
||||
|
||||
Sends a input command to a running mpv.net instance via command line, for instance
|
||||
to create global keyboard shortcuts with AutoHotkey. Requires [process-instance=single](#--process-instancevalue).
|
||||
|
||||
### Audio
|
||||
|
||||
#### --remember-audio-device=\<yes|no\>
|
||||
|
||||
Save and restore the audio device chosen in the context menu. Default: yes
|
||||
|
||||
#### --remember-volume=\<yes|no\>
|
||||
|
||||
Save volume and mute on exit and restore it on start. Default: yes
|
||||
|
||||
|
||||
### Screen
|
||||
|
||||
#### --start-size=\<value\>
|
||||
|
||||
Setting to remember the window size.
|
||||
|
||||
**width-session**
|
||||
Width is remembered in the current session.
|
||||
|
||||
**width-always**
|
||||
Width is always remembered.
|
||||
|
||||
**height-session**
|
||||
Height is remembered in the current session. Default
|
||||
|
||||
**height-always**
|
||||
Height is always remembered.
|
||||
|
||||
**video**
|
||||
Window size is set to video resolution.
|
||||
|
||||
**session**
|
||||
Window size is remembered in the current session.
|
||||
|
||||
**always**
|
||||
Window size is always remembered.
|
||||
|
||||
#### --minimum-aspect-ratio=\<float\>
|
||||
|
||||
Minimum aspect ratio of the window. Useful to force
|
||||
a wider window and therefore a larger OSC.
|
||||
|
||||
#### --minimum-aspect-ratio-audio=\<float\>
|
||||
|
||||
Same as minimum-aspect-ratio but used for audio files.
|
||||
|
||||
#### --remember-window-position=\<yes|no\>
|
||||
|
||||
Save the window position on exit. Default: no
|
||||
|
||||
#### --start-threshold=\<milliseconds\>
|
||||
|
||||
Threshold in milliseconds to wait for libmpv returning the video
|
||||
resolution before the window is shown, otherwise default dimensions
|
||||
are used as defined by autofit and start-size. Default: 1500
|
||||
|
||||
### Playback
|
||||
|
||||
#### --auto-load-folder=\<yes|no\>
|
||||
|
||||
For single files automatically load the entire directory
|
||||
into the playlist. This option by default is disabled.
|
||||
The option is deprecated because mpv now has native
|
||||
support for it using `autocreate-playlist`,
|
||||
which by default mpv.net sets to `autocreate-playlist=filter`.
|
||||
|
||||
|
||||
### General
|
||||
|
||||
#### --menu-syntax=\<value\>
|
||||
|
||||
Used menu syntax for defining the context menu in input.conf.
|
||||
mpv.net by default uses `#menu:`, uosc uses `#!` by default.
|
||||
|
||||
#### --process-instance=\<value\>
|
||||
|
||||
Defines if more then one mpv.net process is allowed.
|
||||
|
||||
Whenever the CTRL key is pressed when files or URLs are opened,
|
||||
the playlist is not cleared but the files or URLs are appended to the playlist.
|
||||
This not only works on process startup but in all mpv.net features that open files and URLs.
|
||||
|
||||
Multi can alternatively be enabled by pressing the SHIFT key.
|
||||
|
||||
**multi**
|
||||
Create a new process everytime the shell starts mpv.net.
|
||||
|
||||
**single**
|
||||
Force a single process everytime the shell starts mpv.net. Default
|
||||
|
||||
**queue**
|
||||
Force a single process and add files to playlist.
|
||||
|
||||
#### --recent-count=\<int\>
|
||||
|
||||
Amount of recent files to be remembered. Default: 15
|
||||
|
||||
#### --media-info=\<yes|no\>
|
||||
|
||||
Usage of the media info library instead of mpv to access media information. Default: yes (mpv.net specific option)
|
||||
|
||||
#### --debug-mode=\<yes|no\>
|
||||
|
||||
Enable this only when a developer asks for it. Default: no
|
||||
|
||||
|
||||
### UI
|
||||
|
||||
#### --language=\<value\>
|
||||
|
||||
User interface display language.
|
||||
mpv.net must be restarted after a change.
|
||||
|
||||
Work on the translation is done with transifex:
|
||||
https://app.transifex.com/stax76/teams/
|
||||
|
||||
#### --dark-mode=\<value\>
|
||||
|
||||
Enables a dark theme.
|
||||
|
||||
**always**
|
||||
Default
|
||||
|
||||
**system**
|
||||
Available on Windows 10 or higher.
|
||||
|
||||
**never**
|
||||
|
||||
#### --dark-theme=\<string\>
|
||||
|
||||
Color theme used in dark mode. Default: dark
|
||||
|
||||
[Color Themes](#color-theme)
|
||||
|
||||
#### --light-theme=\<string\>
|
||||
|
||||
Color theme used in light mode. Default: light
|
||||
|
||||
[Color Themes](#color-theme)
|
||||
|
||||
|
||||
External Tools
|
||||
--------------
|
||||
|
||||
### Play with mpv
|
||||
|
||||
In order to play videos from sites such as YouTube the Chrome Extension [Play with mpv](https://chrome.google.com/webstore/detail/play-with-mpv/hahklcmnfgffdlchjigehabfbiigleji) can be used.
|
||||
|
||||
Due to Chrome Extensions not being able to start a app, another app that communicates with the extension is required, this app can be downloaded [here](http://www.mediafire.com/file/lezj8lwqt5zf75v/play-with-mpvnet-server.7z/file). The extension works only when the app is running, to have the app always running a link can be created in the auto start folder located at:
|
||||
|
||||
`C:\Users\%username%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup`
|
||||
|
||||
This will start the app on system start and have it running in the background. When the file association registration of mpv.net was executed then the app should find the location of mpv.net, alternativly the mpv.net folder can be added to the Path environment variable.
|
||||
|
||||
|
||||
### Open With
|
||||
|
||||
Alternatively the Chrome/Firefox extension [Open With](../../../issues/119) can be used.
|
||||
|
||||
|
||||
### Open with++
|
||||
|
||||
[Open with++](https://github.com/stax76/OpenWithPlusPlus) can be used to extend the File Explorer context menu to get menu items for [Play with mpv.net](https://github.com/stax76/OpenWithPlusPlus#play-with-mpvnet) and [Add to mpv.net playlist](https://github.com/stax76/OpenWithPlusPlus#add-to-mpvnet-playlist).
|
||||
|
||||
|
||||
### External Application Launcher
|
||||
|
||||
Videos can be streamed or downloaded easily with the Chrome extension
|
||||
[External Application Launcher](https://chromewebstore.google.com/detail/external-application-laun/bifmfjgpgndemajpeeoiopbeilbaifdo),
|
||||
for download (recommended):
|
||||
|
||||
path: `wt`
|
||||
|
||||
args: `-- powershell -NoLogo -Command "yt-dlp --ignore-errors --download-archive 'C:\External Application Button.txt' --output 'C:\YouTube\%(channel)s - %(title)s.%(ext)s' ('[HREF]' -replace '&list=.+','')"`
|
||||
|
||||
|
||||
Scripting
|
||||
---------
|
||||
|
||||
#### Lua
|
||||
|
||||
A very large collection of user scripts can be found in the GitHub repository
|
||||
[awesome-mpv](https://github.com/stax76/awesome-mpv).
|
||||
|
||||
Lua scripting is documented in the mpv.net wiki [here](https://github.com/mpvnet-player/mpv.net/wiki/Extending-mpv-and-mpv.net-via-Lua-scripting).
|
||||
|
||||
#### JavaScript
|
||||
|
||||
[mpv JavaScript documentation](https://mpv.io/manual/master/#javascript)
|
||||
|
||||
|
||||
.NET Extensions
|
||||
---------------
|
||||
|
||||
.NET Extensions are located in a subfolder _extensions_ in the config folder,
|
||||
the filename must have the same name as the directory:
|
||||
|
||||
```Text
|
||||
<config folder>\extensions\ExampleExtension\ExampleExtension.dll
|
||||
```
|
||||
|
||||
|
||||
Color Theme
|
||||
-----------
|
||||
|
||||
mpv.net supports custom color themes, the definition of the built-in themes can be found at:
|
||||
|
||||
[theme.txt](../../../tree/main/src/Resources/theme.txt)
|
||||
|
||||
|
||||
Custom themes can be saved at:
|
||||
|
||||
`<conf folder>\theme.conf`
|
||||
|
||||
The theme.conf file may contain multiple themes.
|
||||
|
||||
In the config editor under UI there are the options dark-theme and
|
||||
light-theme to define the themes used in dark and in light mode.
|
||||
|
||||
|
||||
Advanced Features
|
||||
-----------------
|
||||
|
||||
### Playback of VapourSynth scripts
|
||||
|
||||
vpy files are supported with following mpv.conf configuration:
|
||||
|
||||
```
|
||||
[extension.vpy]
|
||||
demuxer-lavf-format = vapoursynth
|
||||
```
|
||||
|
||||
Python and VapourSynth must be in the path environment variable.
|
||||
|
||||
|
||||
Differences compared to mpv
|
||||
---------------------------
|
||||
|
||||
mpv.net is designed to work exactly like mpv, there are a few
|
||||
differences and limitations:
|
||||
|
||||
The configuration folder is named `mpv.net` instead of `mpv`:
|
||||
|
||||
`C:\Users\username\AppData\Roaming\mpv.net`
|
||||
|
||||
### Window Limitations
|
||||
|
||||
mpv.net implements an own main window which means only mpv window
|
||||
features are supported that have an own implementation in mpv.net.
|
||||
|
||||
A window free mode is currently not supported, the main window is always
|
||||
visible, even when mpv.net is started from the terminal and music is played.
|
||||
|
||||
For mpv.net it's currently not possible to find out where OSC menus are located,
|
||||
but there are 3 features that require this information, therefore mpv.net
|
||||
makes the assumption that near the window borders might be OSC menus. As a result
|
||||
the following three features, work only when invoked from the center of the window:
|
||||
|
||||
1. Window dragging (moving the window with the mouse).
|
||||
2. Showing the context menu.
|
||||
3. Auto hiding the mouse cursor.
|
||||
|
||||
When the mouse is near a window border, these 3 features are not available.
|
||||
The dead zone sizes are 10% left, top, right and 22% bottom.
|
||||
|
||||
The documentation of mpv's window features can be found here:
|
||||
|
||||
https://mpv.io/manual/master/#window
|
||||
|
||||
|
||||
**mpv.net has currently implemented the following window properties:**
|
||||
|
||||
- [border](https://mpv.io/manual/master/#options-border)
|
||||
- [cursor-autohide](https://mpv.io/manual/master/#options-cursor-autohide)
|
||||
- [fullscreen](https://mpv.io/manual/master/#options-fullscreen)
|
||||
- [keepaspect-window](https://mpv.io/manual/master/#options-keepaspect-window)
|
||||
- [ontop](https://mpv.io/manual/master/#options-ontop)
|
||||
- [screen](https://mpv.io/manual/master/#options-screen)
|
||||
- [snap-window](https://mpv.io/manual/master/#options-snap-window)
|
||||
- [title-bar](https://mpv.io/manual/master/#options-title-bar)
|
||||
- [title](https://mpv.io/manual/master/#options-title)
|
||||
- [window-maximized](https://mpv.io/manual/master/#options-window-maximized)
|
||||
- [window-minimized](https://mpv.io/manual/master/#options-window-minimized)
|
||||
- [window-scale](https://mpv.io/manual/master/#options-window-scale)
|
||||
|
||||
|
||||
**Partly implemented or modified:**
|
||||
|
||||
#### --autofit=\<int\>
|
||||
|
||||
\<int\> Initial window height in percent. Default: 60
|
||||
|
||||
#### --autofit-smaller=\<int\>
|
||||
|
||||
\<int\> Minimum window height in percent. Default: 10
|
||||
|
||||
#### --autofit-larger=\<int\>
|
||||
|
||||
\<int\> Maximum window height in percent. Default: 80
|
||||
|
||||
#### --geometry\<x:y\>
|
||||
|
||||
Initial window location in percent. Default: 50:50 (centered)
|
||||
|
||||
Requires Windows 11, on Windows 10 it works slightly incorrect due to invisible borders.
|
||||
|
||||
x=0 docks the window to the left side.
|
||||
x=100 docks the window to the right side.
|
||||
|
||||
y=0 docks the window to the top side.
|
||||
y=100 docks the window to the bottom side.
|
||||
|
||||
#### --title-bar=\<yes|no\>
|
||||
|
||||
Shows the window title bar. Default: yes
|
||||
|
||||
**mpv.net specific window features:**
|
||||
|
||||
mpv.net specific window features are documented in the [screen section](#screen).
|
||||
|
||||
|
||||
### Command Line Limitations
|
||||
|
||||
mpv.net supports property based mpv command line options which means it supports
|
||||
almost all mpv command line options.
|
||||
|
||||
What is not supported are non property bases options. Non property based options
|
||||
need an own implementation in mpv.net, so far implemented are:
|
||||
|
||||
--ad=help
|
||||
--audio-device=help
|
||||
--input-keylist
|
||||
--profile=help
|
||||
--vd=help
|
||||
--version
|
||||
|
||||
### Other Limitations
|
||||
|
||||
The mpv property [idle](https://mpv.io/manual/master/#options-idle) can be
|
||||
used and mpv.net functions accordingly, but Lua scripts always see `idle=yes`
|
||||
because mpv.net has to set it to function correctly, this is a difficult
|
||||
to overcome libmpv limitation.
|
||||
|
||||
|
||||
### mpv.net specific options
|
||||
|
||||
Options that are specific to mpv.net can be found by entering _mpv.net_
|
||||
in the search field of the config editor, in the mpv.net manual they are
|
||||
documented [here](#mpvnet-specific-options).
|
||||
|
||||
mpv.net specific options are saved in the file mpvnet.conf and are just
|
||||
as mpv properties available on the command line.
|
||||
|
||||
|
||||
Environment Variables
|
||||
---------------------
|
||||
|
||||
### MPVNET_HOME
|
||||
|
||||
Directory where mpv.net looks for the user configuration.
|
||||
|
||||
|
||||
user-data
|
||||
---------
|
||||
|
||||
Script authors can access the following
|
||||
[user-data](https://mpv.io/manual/master/#command-interface-user-data) properties:
|
||||
|
||||
```
|
||||
user-data/frontend/name
|
||||
user-data/frontend/version
|
||||
user-data/frontend/process-path
|
||||
```
|
||||
|
||||
Contributing
|
||||
------------
|
||||
|
||||
Work on the translation is done with transifex, translators have to create a transifex account:
|
||||
|
||||
https://app.transifex.com/stax76/teams/
|
||||
|
||||
For translation questions visit:
|
||||
|
||||
https://github.com/mpvnet-player/mpv.net/issues/576
|
||||
1516
docs/manual_chs.md
Normal file
2
docs/privacy.md
Normal file
@@ -0,0 +1,2 @@
|
||||
|
||||
mpv.net does not collect any personal information.
|
||||
|
Before Width: | Height: | Size: 1.2 MiB |
|
Before Width: | Height: | Size: 212 KiB |
|
Before Width: | Height: | Size: 214 KiB |
BIN
img/Main.png
|
Before Width: | Height: | Size: 5.8 MiB |
|
Before Width: | Height: | Size: 125 KiB |
BIN
img/Menu.png
|
Before Width: | Height: | Size: 1.3 MiB |
BIN
img/mpvnet.pdn
BIN
img/mpvnet.png
|
Before Width: | Height: | Size: 6.7 KiB |
20
lang/create-mo-files.ps1
Normal file
@@ -0,0 +1,20 @@
|
||||
|
||||
$ErrorActionPreference = 'Stop'
|
||||
|
||||
$PoFiles = Get-ChildItem $PSScriptRoot/po
|
||||
$ExeFolder = "$PSScriptRoot/../src/MpvNet.Windows/bin/Debug"
|
||||
|
||||
foreach ($it in $PoFiles)
|
||||
{
|
||||
$folder = "$ExeFolder/Locale/$($it.BaseName)/LC_MESSAGES"
|
||||
|
||||
if (-not (Test-Path $folder))
|
||||
{
|
||||
New-Item -ItemType Directory -Path $folder | Out-Null
|
||||
}
|
||||
|
||||
$moPath = "$folder/mpvnet.mo"
|
||||
msgfmt --output-file=$moPath $it.FullName
|
||||
if ($LastExitCode) { throw $LastExitCode }
|
||||
$moPath
|
||||
}
|
||||
111
lang/cs-files.txt
Normal file
@@ -0,0 +1,111 @@
|
||||
D:\Projects\CS\mpv.net\src\MpvNet\App.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet\AppInfo.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet\Binding.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet\Chapter.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet\Command.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet\CommandLine.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet\ExtensionLoader.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet\FileTypes.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet\Folder.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet\Global.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet\GlobalUsings.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet\InputConf.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet\MediaTrack.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet\MpvClient.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet\Player.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet\Settings.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet\StringPair.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet\Terminal.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet\Translator.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet\ExtensionMethod\ObjectExtension.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet\ExtensionMethod\PathStringExtension.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet\ExtensionMethod\StringExtension.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet\Help\FileHelp.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet\Help\MpvHelp.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet\Help\ProcessHelp.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet\Help\StringHelp.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet\Help\TaskHelp.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet\MVVM\Messages.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet\Native\LibMpv.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet\Native\MediaInfo.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet\Native\StringLogicalComparer.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Extension\ExampleExtension\ExampleExtension.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\Conf.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\FileAssociation.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\GlobalUsings.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\Program.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\Settings.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\Help\RegistryHelp.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\Help\WinApiHelp.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\Native\StockIcon.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\Native\Taskbar.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\Native\WinApi.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\Properties\Resources.Designer.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\UI\GlobalHotkey.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\UI\Theme.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\UI\TreeNode.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.Designer.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\SnapManager.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\BindingProxy.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\ComboBoxTemplateSelector.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\ConfWindow.xaml.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\InputWindow.xaml.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\ISettingControl.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\LearnWindow.xaml.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\MenuHelp.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\Msg.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\WpfApplication.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\WpfTranslator.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\Controls\ComboBoxSettingControl.xaml.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\Controls\HyperlinkEx.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\Controls\OptionSettingControl.xaml.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\Controls\SearchControl.xaml.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\Controls\StringSettingControl.xaml.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\HandyControl\Controls\ScrollViewer.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\HandyControl\Controls\SimplePanel.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\HandyControl\Controls\Attach\BorderElement.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\HandyControl\Controls\Attach\IconElement.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\HandyControl\Controls\Attach\MenuTopLineAttach.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\HandyControl\Controls\Attach\ScrollViewerAttach.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\HandyControl\Data\ValueBoxes.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\HandyControl\Tools\AnimationHelper.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\HandyControl\Tools\RegexPatterns.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\HandyControl\Tools\Converter\BorderCircularConverter.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\HandyControl\Tools\Extension\StringExtension.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\HandyControl\Tools\Helper\ScreenHelper.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\HandyControl\Tools\Helper\VisualHelper.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\HandyControl\Tools\Interop\InteropMethods.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\HandyControl\Tools\Interop\InteropValues.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\HandyControl\Tools\Interop\Handle\BitmapHandle.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\HandyControl\Tools\Interop\Handle\CommonHandles.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\HandyControl\Tools\Interop\Handle\HandleCollector.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\HandyControl\Tools\Interop\Handle\WpfSafeHandle.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\MsgBox\MessageBoxEx.xaml.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\MsgBox\MsgBoxExCheckBoxData.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\MsgBox\MsgBoxExDelegate.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\MsgBox\MsgBoxExStatic.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\MsgBox\MsgBoxExtendedFunctionality.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\MsgBox\MsgBoxUrl.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\MsgBox\MsgEnum.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\ViewModels\AboutViewModel.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\ViewModels\NodeViewModel.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\ViewModels\ViewModelBase.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\Views\AboutWindow.xaml.cs
|
||||
D:\Projects\CS\mpv.net\src\NGettext.Wpf\ChangeCultureCommand.cs
|
||||
D:\Projects\CS\mpv.net\src\NGettext.Wpf\CompositionRoot.cs
|
||||
D:\Projects\CS\mpv.net\src\NGettext.Wpf\CultureEventArgs.cs
|
||||
D:\Projects\CS\mpv.net\src\NGettext.Wpf\CultureTracker.cs
|
||||
D:\Projects\CS\mpv.net\src\NGettext.Wpf\GettextExtension.cs
|
||||
D:\Projects\CS\mpv.net\src\NGettext.Wpf\GettextFormatConverterExtension.cs
|
||||
D:\Projects\CS\mpv.net\src\NGettext.Wpf\IWeakCultureObserver.cs
|
||||
D:\Projects\CS\mpv.net\src\NGettext.Wpf\Localizer.cs
|
||||
D:\Projects\CS\mpv.net\src\NGettext.Wpf\TrackCurrentCultureBehavior.cs
|
||||
D:\Projects\CS\mpv.net\src\NGettext.Wpf\Translation.cs
|
||||
D:\Projects\CS\mpv.net\src\NGettext.Wpf\Common\GettextStringFormatConverter.cs
|
||||
D:\Projects\CS\mpv.net\src\NGettext.Wpf\EnumTranslation\EnumLocalizer.cs
|
||||
D:\Projects\CS\mpv.net\src\NGettext.Wpf\EnumTranslation\EnumMsgIdAttribute.cs
|
||||
D:\Projects\CS\mpv.net\src\NGettext.Wpf\EnumTranslation\LocalizeEnumConverter.cs
|
||||
D:\Projects\CS\mpv.net\src\NGettext.Wpf\Properties\AssemblyInfo.cs
|
||||
1013
lang/po/bg.po
Normal file
999
lang/po/de.po
Normal file
@@ -0,0 +1,999 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
# Translators:
|
||||
# Frank Skare, 2025
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-10-06 00:24+0200\n"
|
||||
"PO-Revision-Date: 2023-12-08 00:34+0000\n"
|
||||
"Last-Translator: Frank Skare, 2025\n"
|
||||
"Language-Team: German (https://app.transifex.com/stax76/teams/179964/de/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: de\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:12
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:13
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:14
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:15
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:16
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:17
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:18
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:19
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:20
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:21
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:22
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:23
|
||||
msgid "File"
|
||||
msgstr "Datei"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:12
|
||||
msgid "Open Files..."
|
||||
msgstr "Dateien öffnen..."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:13
|
||||
msgid "Open URL or file from clipboard"
|
||||
msgstr "URL oder Datei aus der Zwischenablage öffnen"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:14
|
||||
msgid "Open DVD/Blu-ray Drive/Folder..."
|
||||
msgstr "DVD/Blu-ray-Laufwerk/Ordner öffnen..."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:16
|
||||
msgid "Add external audio files..."
|
||||
msgstr "Externe Audiodateien hinzufügen..."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:17
|
||||
msgid "Add external subtitle files..."
|
||||
msgstr "Externe Untertiteldateien hinzufügen..."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:19
|
||||
msgid "Add files to playlist..."
|
||||
msgstr "Dateien zur Wiedergabeliste hinzufügen..."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:20
|
||||
msgid "Add files/URLs to playlist from clipboard"
|
||||
msgstr "Dateien/URLs zur Wiedergabeliste aus der Zwischenablage hinzufügen"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:22
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:372
|
||||
msgid "Recent Files"
|
||||
msgstr "Zuletzt geöffnete Dateien"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:23
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:201
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:233
|
||||
msgid "Exit"
|
||||
msgstr "Beenden"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:25
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:26
|
||||
msgid "Playback"
|
||||
msgstr "Wiedergabe"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:25
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:203
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:204
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:205
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:206
|
||||
msgid "Play/Pause"
|
||||
msgstr "Wiedergabe/Pause"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:26
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:207
|
||||
msgid "Stop"
|
||||
msgstr "Stopp"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:28
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:29
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:30
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:31
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:32
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:34
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:35
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:36
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:37
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:38
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:39
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:40
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:41
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:42
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:43
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:44
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:45
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:46
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:47
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:48
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:49
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:50
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:51
|
||||
msgid "Navigate"
|
||||
msgstr "Navigieren"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:28
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:214
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:216
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:218
|
||||
msgid "Previous File"
|
||||
msgstr "Vorherige Datei"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:29
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:215
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:217
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:219
|
||||
msgid "Next File"
|
||||
msgstr "Nächste Datei"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:31
|
||||
msgid "First File"
|
||||
msgstr "Erste Datei"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:32
|
||||
msgid "Last File"
|
||||
msgstr "Letzte Datei"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:35
|
||||
msgid "Next Chapter"
|
||||
msgstr "Nächstes Kapitel"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:36
|
||||
msgid "Previous Chapter"
|
||||
msgstr "Vorheriges Kapitel"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:38
|
||||
msgid "Jump To Next Frame"
|
||||
msgstr "Zum nächsten Bild springen"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:39
|
||||
msgid "Jump To Previous Frame"
|
||||
msgstr "Zum vorherigen Bild springen"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:41
|
||||
msgid "Jump 5 sec forward"
|
||||
msgstr "5 Sekunden vorwärts springen"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:42
|
||||
msgid "Jump 5 sec backward"
|
||||
msgstr "5 Sekunden rückwärts springen"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:44
|
||||
msgid "Jump 30 sec forward"
|
||||
msgstr "30 Sekunden vorwärts springen"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:45
|
||||
msgid "Jump 30 sec backward"
|
||||
msgstr "30 Sekunden rückwärts springen"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:47
|
||||
msgid "Jump 5 min forward"
|
||||
msgstr "5 Minuten vorwärts springen"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:48
|
||||
msgid "Jump 5 min backward"
|
||||
msgstr "5 Minuten rückwärts springen"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:50
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:393
|
||||
msgid "Title"
|
||||
msgstr "Titel"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:51
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:351
|
||||
msgid "Chapter"
|
||||
msgstr "Kapitel"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:53
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:54
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:55
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:56
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:57
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:58
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:59
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:60
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:61
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:62
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:63
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:64
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:65
|
||||
msgid "Pan & Scan"
|
||||
msgstr "Pan & Scan"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:53
|
||||
msgid "Decrease Size"
|
||||
msgstr "Größe verringern"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:54
|
||||
msgid "Increase Size"
|
||||
msgstr "Größe erhöhen"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:56
|
||||
msgid "Move Left"
|
||||
msgstr "Nach links bewegen"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:57
|
||||
msgid "Move Right"
|
||||
msgstr "Nach rechts bewegen"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:59
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:97
|
||||
msgid "Move Up"
|
||||
msgstr "Nach oben bewegen"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:60
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:98
|
||||
msgid "Move Down"
|
||||
msgstr "Nach unten bewegen"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:62
|
||||
msgid "Decrease Height"
|
||||
msgstr "Höhe verringern"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:63
|
||||
msgid "Increase Height"
|
||||
msgstr "Höhe erhöhen"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:65
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:118
|
||||
msgid "Reset"
|
||||
msgstr "Zurücksetzen"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:67
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:68
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:69
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:70
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:71
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:72
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:73
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:74
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:75
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:76
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:77
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:78
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:79
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:80
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:81
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:82
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:83
|
||||
msgid "Video"
|
||||
msgstr "Video"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:67
|
||||
msgid "Decrease Contrast"
|
||||
msgstr "Kontrast verringern"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:68
|
||||
msgid "Increase Contrast"
|
||||
msgstr "Kontrast erhöhen"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:70
|
||||
msgid "Decrease Brightness"
|
||||
msgstr "Helligkeit verringern"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:71
|
||||
msgid "Increase Brightness"
|
||||
msgstr "Helligkeit erhöhen"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:73
|
||||
msgid "Decrease Gamma"
|
||||
msgstr "Gamma verringern"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:74
|
||||
msgid "Increase Gamma"
|
||||
msgstr "Gamma erhöhen"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:76
|
||||
msgid "Decrease Saturation"
|
||||
msgstr "Sättigung verringern"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:77
|
||||
msgid "Increase Saturation"
|
||||
msgstr "Sättigung erhöhen"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:79
|
||||
msgid "Take Screenshot"
|
||||
msgstr "Bildschirmfoto machen"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:80
|
||||
msgid "Take Screenshot without subtitles"
|
||||
msgstr "Bildschirmfoto ohne Untertitel machen"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:81
|
||||
msgid "Toggle Deinterlace"
|
||||
msgstr "Deinterlace umschalten"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:82
|
||||
msgid "Change Aspect Ratio"
|
||||
msgstr "Seitenverhältnis ändern"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:83
|
||||
msgid "Rotate Video"
|
||||
msgstr "Video drehen"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:85
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:86
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:87
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:88
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:89
|
||||
msgid "Audio"
|
||||
msgstr "Audio"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:85
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:453
|
||||
msgid "Audio Device"
|
||||
msgstr "Audiogerät"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:86
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:91
|
||||
msgid "Next Track"
|
||||
msgstr "Nächster Titel"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:88
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:95
|
||||
msgid "Delay +0.1"
|
||||
msgstr "Verzögerung +0.1"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:89
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:94
|
||||
msgid "Delay -0.1"
|
||||
msgstr "Verzögerung -0.1"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:91
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:92
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:93
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:94
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:95
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:96
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:97
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:98
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:99
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:100
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:101
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:102
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:103
|
||||
msgid "Subtitle"
|
||||
msgstr "Untertitel"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:92
|
||||
msgid "Toggle Visibility"
|
||||
msgstr "Sichtbarkeit umschalten"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:100
|
||||
msgid "Decrease Font Size"
|
||||
msgstr "Schriftgröße verringern"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:101
|
||||
msgid "Increase Font Size"
|
||||
msgstr "Schriftgröße erhöhen"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:103
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:142
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:143
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:144
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:145
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:146
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:147
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:148
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:149
|
||||
msgid "More"
|
||||
msgstr "Mehr"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:103
|
||||
msgid "Toggle overriding SSA/ASS styles with normal styles"
|
||||
msgstr "Überschreiben von SSA/ASS-Stilen mit normalen Stilen umschalten"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:105
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:289
|
||||
msgid "Track"
|
||||
msgstr "Spur"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:107
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:108
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:109
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:110
|
||||
msgid "Volume"
|
||||
msgstr "Lautstärke"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:107
|
||||
msgctxt "Volume"
|
||||
msgid "Up"
|
||||
msgstr "Hoch"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:108
|
||||
msgctxt "Volume"
|
||||
msgid "Down"
|
||||
msgstr "Runter"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:110
|
||||
msgid "Mute"
|
||||
msgstr "Stumm"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:112
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:113
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:114
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:115
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:116
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:117
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:118
|
||||
msgid "Speed"
|
||||
msgstr "Geschwindigkeit"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:112
|
||||
msgid "-10%"
|
||||
msgstr "-10%"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:113
|
||||
msgid "+10%"
|
||||
msgstr "+10%"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:115
|
||||
msgid "Half"
|
||||
msgstr "Halb"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:116
|
||||
msgid "Double"
|
||||
msgstr "Doppelt"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:120
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:121
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:122
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:123
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:124
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:125
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:126
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:127
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:128
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:129
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:130
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:131
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:132
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:133
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:134
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:135
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:136
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:137
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:138
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:139
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:140
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:141
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:142
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:143
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:144
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:145
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:146
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:147
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:148
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:149
|
||||
msgid "View"
|
||||
msgstr "Ansicht"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:120
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:127
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:234
|
||||
msgid "Playlist"
|
||||
msgstr "Wiedergabeliste"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:121
|
||||
msgid "Toggle Statistics"
|
||||
msgstr "Statistiken umschalten"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:122
|
||||
msgid "Toggle OSC Visibility"
|
||||
msgstr "Bildschirmschaltflächen-Sichtbarkeit umschalten"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:123
|
||||
msgid "Media Info On-Screen"
|
||||
msgstr "Media Info Bildschirm"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:124
|
||||
msgid "Media Info Message Box"
|
||||
msgstr "Media Info Message Box"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:125
|
||||
msgid "Progress"
|
||||
msgstr "Fortschritt"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:126
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:127
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:128
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:129
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:130
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:131
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:132
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:133
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:134
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:135
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:136
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:137
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:138
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:139
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:140
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:248
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:249
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:250
|
||||
msgid "On-Screen Menu"
|
||||
msgstr "Bildschirmmenü"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:128
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:246
|
||||
msgid "Bindings"
|
||||
msgstr "Tastaturkurzbefehle"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:129
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:247
|
||||
msgid "Properties"
|
||||
msgstr "Eigenschaften"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:130
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:240
|
||||
msgid "Chapters"
|
||||
msgstr "Kapitel"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:131
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:239
|
||||
msgid "Tracks"
|
||||
msgstr "Spuren"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:132
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:237
|
||||
msgid "Audio Tracks"
|
||||
msgstr "Audiospuren"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:133
|
||||
msgid "Subtitle Tracks"
|
||||
msgstr "Untertitelspuren"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:134
|
||||
msgid "Secondary Subtitle"
|
||||
msgstr "Sekundärer Untertitel"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:135
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:238
|
||||
msgid "Video Tracks"
|
||||
msgstr "Videospuren"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:136
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:241
|
||||
msgid "Editions"
|
||||
msgstr "Editionen"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:137
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:242
|
||||
msgid "Subtitle Lines"
|
||||
msgstr "Untertitellinien"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:138
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:243
|
||||
msgid "Audio Devices"
|
||||
msgstr "Audiogeräte"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:139
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:244
|
||||
msgid "Watch History"
|
||||
msgstr "Anschauverlauf"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:140
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:245
|
||||
msgid "Watch Later"
|
||||
msgstr "Später Anschauen"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:142
|
||||
msgid "Console"
|
||||
msgstr "Konsole"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:143
|
||||
msgid "Commands"
|
||||
msgstr "Befehle"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:144
|
||||
msgid "Active Bindings In Text Editor"
|
||||
msgstr "Aktive Tastaturkombinationen Im Texteditor"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:145
|
||||
msgid "Active Bindings On-Screen"
|
||||
msgstr "Aktive Tastaturkombinationen Auf Bildschirm"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:146
|
||||
msgid "Keys"
|
||||
msgstr "Tastaturkombinationen"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:147
|
||||
msgid "Protocols"
|
||||
msgstr "Protokolle"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:148
|
||||
msgid "Decoders"
|
||||
msgstr "Dekoder"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:149
|
||||
msgid "Demuxers"
|
||||
msgstr "Demuxer"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:151
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:152
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:153
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:154
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:155
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:156
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:157
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:158
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:159
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:160
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:161
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:162
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:163
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:164
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:165
|
||||
msgid "Window"
|
||||
msgstr "Fenster"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:151
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:221
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:222
|
||||
msgid "Fullscreen"
|
||||
msgstr "Vollbild"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:152
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:153
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:154
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:155
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:156
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:157
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:158
|
||||
msgid "Zoom"
|
||||
msgstr "Zoom"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:152
|
||||
msgid "Enlarge"
|
||||
msgstr "Vergrößern"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:153
|
||||
msgid "Shrink"
|
||||
msgstr "Verkleinern"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:155
|
||||
msgid "50 %"
|
||||
msgstr "50 %"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:156
|
||||
msgid "100 %"
|
||||
msgstr "100 %"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:157
|
||||
msgid "200 %"
|
||||
msgstr "200 %"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:158
|
||||
msgid "300 %"
|
||||
msgstr "300 %"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:159
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:160
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:161
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:162
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:163
|
||||
msgid "Move"
|
||||
msgstr "Verschieben"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:159
|
||||
msgctxt "Move"
|
||||
msgid "Left"
|
||||
msgstr "Links"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:160
|
||||
msgctxt "Move"
|
||||
msgid "Right"
|
||||
msgstr "Rechts"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:161
|
||||
msgctxt "Move"
|
||||
msgid "Up"
|
||||
msgstr "Hoch"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:162
|
||||
msgctxt "Move"
|
||||
msgid "Down"
|
||||
msgstr "Runter"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:163
|
||||
msgctxt "Move"
|
||||
msgid "Center"
|
||||
msgstr "Mitte"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:164
|
||||
msgid "Toggle Border"
|
||||
msgstr "Rahmen umschalten"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:165
|
||||
msgid "Toggle On Top"
|
||||
msgstr "Fenster im Vordergrund umschalten"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:167
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:426
|
||||
msgid "Profile"
|
||||
msgstr "Profil"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:169
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:170
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:171
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:172
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:173
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:174
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:175
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:176
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:177
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:178
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:179
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:180
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:181
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:182
|
||||
msgid "Config"
|
||||
msgstr "Konfiguration"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:169
|
||||
msgid "Show Config Editor"
|
||||
msgstr "Konfigurationseditor anzeigen"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:170
|
||||
msgid "Show Input Editor"
|
||||
msgstr "Tastenkombinationeneditor anzeigen"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:172
|
||||
msgid "Edit mpv.conf"
|
||||
msgstr "mpv.conf bearbeiten"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:173
|
||||
msgid "Edit input.conf"
|
||||
msgstr "input.conf bearbeiten"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:175
|
||||
msgid "Open Config Folder"
|
||||
msgstr "Konfigurationsordner öffnen"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:176
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:177
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:178
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:179
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:180
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:181
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:182
|
||||
msgid "Setup"
|
||||
msgstr "Einrichten"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:176
|
||||
msgid "Register video file associations"
|
||||
msgstr "Video-Dateizuordnungen registrieren"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:177
|
||||
msgid "Register audio file associations"
|
||||
msgstr "Audio-Dateizuordnungen registrieren"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:178
|
||||
msgid "Register image file associations"
|
||||
msgstr "Bild-Dateizuordnungen registrieren"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:179
|
||||
msgid "Unregister file associations"
|
||||
msgstr "Dateizuordnungen entfernen"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:181
|
||||
msgid "Add mpv.net to Path environment variable"
|
||||
msgstr "mpv.net zur Umgebungsvariable Path hinzufügen"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:182
|
||||
msgid "Remove mpv.net from Path environment variable"
|
||||
msgstr "mpv.net aus der Umgebungsvariablen 'Path' entfernen"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:184
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:185
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:186
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:187
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:188
|
||||
msgid "Tools"
|
||||
msgstr "Werkzeuge"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:184
|
||||
msgid "Set/clear A-B loop points"
|
||||
msgstr "Setzen/Löschen von A-B Schleifenpunkten"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:185
|
||||
msgid "Toggle infinite file looping"
|
||||
msgstr "Unendliche Dateischleife umschalten"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:186
|
||||
msgid "Shuffle Playlist"
|
||||
msgstr "Wiedergabeliste mischen"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:187
|
||||
msgid "Toggle Hardware Decoding"
|
||||
msgstr "Hardware-Decodierung umschalten"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:188
|
||||
msgid "Exit Watch Later"
|
||||
msgstr "Beenden und später anschauen"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:190
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:477
|
||||
msgid "Custom"
|
||||
msgstr "Benutzerdefiniert"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:192
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:193
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:194
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:195
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:196
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:197
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:198
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:199
|
||||
msgid "Help"
|
||||
msgstr "Hilfe"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:192
|
||||
msgid "Website mpv"
|
||||
msgstr "Webseite mpv"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:193
|
||||
msgid "Website mpv.net"
|
||||
msgstr "Webseite mpv.net"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:195
|
||||
msgid "Manual mpv"
|
||||
msgstr "Handbuch mpv"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:196
|
||||
msgid "Manual mpv.net"
|
||||
msgstr "Handbuch mpv.net"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:198
|
||||
msgid "awesome-mpv"
|
||||
msgstr "awesome-mpv"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:199
|
||||
msgid "About mpv.net"
|
||||
msgstr "Über mpv.net"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:202
|
||||
msgid "Show Menu"
|
||||
msgstr "Menü anzeigen"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:208
|
||||
msgid "Forward"
|
||||
msgstr "Vorwärts"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:209
|
||||
msgid "Backward"
|
||||
msgstr "Rückwärts"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:210
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:212
|
||||
msgid "Volume Up"
|
||||
msgstr "Lautstärke erhöhen"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:211
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:213
|
||||
msgid "Volume Down"
|
||||
msgstr "Lautstärke verringern"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:220
|
||||
msgid "Ignore left mouse butten"
|
||||
msgstr "Ignoriere die linke Maustaste"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:223
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:225
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:231
|
||||
msgid "Seek Forward"
|
||||
msgstr "Suchen vorwärts"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:224
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:226
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:232
|
||||
msgid "Seek Backward"
|
||||
msgstr "Suchen rückwärts"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:227
|
||||
msgid "Undo previous (or marked) seek"
|
||||
msgstr "Rückgängig machen vorherige (oder markierte) Suche"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:228
|
||||
msgid "Mark position for revert-seek"
|
||||
msgstr "Markieren der Position für die Rückwärtssuche"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:229
|
||||
msgid "Seek to previous subtitle"
|
||||
msgstr "Zum vorherigen Untertitel springen"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:230
|
||||
msgid "Seek to next subtitle"
|
||||
msgstr "Zum nächsten Untertitel springen"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:235
|
||||
msgid "Subtitles"
|
||||
msgstr "Untertitel"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:236
|
||||
msgid "Secondary Subtitles"
|
||||
msgstr "Zweite Untertitel"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:192
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:214
|
||||
msgid "Files/URLs were added to the playlist"
|
||||
msgstr "Dateien/URLs wurden zur Wiedergabeliste hinzugefügt"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:207
|
||||
msgid "The clipboard does not contain a valid URL or file."
|
||||
msgstr "Die Zwischenablage enthält keine gültige URL oder Datei."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:262
|
||||
msgid "File Explorer icons will refresh after process restart."
|
||||
msgstr ""
|
||||
"Datei-Explorer-Symbole werden nach dem Neustart des Prozesses aktualisiert."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:265
|
||||
msgid "File associations were successfully removed."
|
||||
msgstr "Dateizuordnungen wurden erfolgreich entfernt."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:267
|
||||
msgid "File associations were successfully created."
|
||||
msgstr "Dateizuordnungen wurden erfolgreich erstellt."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:270
|
||||
msgid "Error creating file associations."
|
||||
msgstr "Fehler beim Erstellen von Dateizuordnungen."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:387
|
||||
msgid "mpv.net is already in the Path environment variable."
|
||||
msgstr "mpv.net ist bereits in der 'Path' Umgebungsvariable enthalten."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:395
|
||||
msgid "mpv.net was successfully added to the Path environment variable."
|
||||
msgstr "mpv.net wurde erfolgreich zur 'Path' Umgebungsvariable hinzugefügt."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:404
|
||||
msgid "mpv.net was not found in the Path environment variable."
|
||||
msgstr "mpv.net wurde nicht in der 'Path' Umgebungsvariable gefunden."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:413
|
||||
msgid "mpv.net was successfully removed from the Path environment variable."
|
||||
msgstr "mpv.net wurde erfolgreich aus der 'Path' Umgebungsvariable entfernt."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:418
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:423
|
||||
msgid "This feature was removed, but there are user scripts:"
|
||||
msgstr "Diese Funktion wurde entfernt, aber es gibt Benutzerskripte:"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:427
|
||||
msgid "This feature was removed."
|
||||
msgstr "Diese Funktion wurde entfernt."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\Properties\Resources.Designer.cs:79
|
||||
msgid "editor_conf"
|
||||
msgstr "editor_conf"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\Properties\Resources.Designer.cs:114
|
||||
msgid "theme"
|
||||
msgstr "theme"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:388
|
||||
msgid "Clear List"
|
||||
msgstr "Liste löschen"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:448
|
||||
msgid "Show Profiles"
|
||||
msgstr "Profile anzeigen"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:1432
|
||||
msgid "Shutdown thread failed to complete within 10 seconds."
|
||||
msgstr ""
|
||||
"Shutdown-Thread konnte nicht innerhalb von 10 Sekunden abgeschlossen werden."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\InputWindow.xaml.cs:116
|
||||
msgid "Changes will be available on next startup."
|
||||
msgstr "Änderungen werden beim nächsten Start verfügbar sein."
|
||||
1028
lang/po/fr.po
Normal file
997
lang/po/ja.po
Normal file
@@ -0,0 +1,997 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
# Translators:
|
||||
# ever_green, 2025
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-10-06 00:24+0200\n"
|
||||
"PO-Revision-Date: 2023-12-08 00:34+0000\n"
|
||||
"Last-Translator: ever_green, 2025\n"
|
||||
"Language-Team: Japanese (https://app.transifex.com/stax76/teams/179964/ja/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: ja\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:12
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:13
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:14
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:15
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:16
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:17
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:18
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:19
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:20
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:21
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:22
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:23
|
||||
msgid "File"
|
||||
msgstr "ファイル"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:12
|
||||
msgid "Open Files..."
|
||||
msgstr "ファイルを開く..."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:13
|
||||
msgid "Open URL or file from clipboard"
|
||||
msgstr "クリップボードから URL またはファイルを開く"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:14
|
||||
msgid "Open DVD/Blu-ray Drive/Folder..."
|
||||
msgstr "DVD/Blu-ray ドライブ/フォルダを開く..."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:16
|
||||
msgid "Add external audio files..."
|
||||
msgstr "外部オーディオファイルを追加..."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:17
|
||||
msgid "Add external subtitle files..."
|
||||
msgstr "外部字幕ファイルを追加..."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:19
|
||||
msgid "Add files to playlist..."
|
||||
msgstr "プレイリストへファイルを追加..."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:20
|
||||
msgid "Add files/URLs to playlist from clipboard"
|
||||
msgstr "クリップボードからプレイリストへファイル/URL を追加"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:22
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:372
|
||||
msgid "Recent Files"
|
||||
msgstr "最近のファイル"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:23
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:201
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:233
|
||||
msgid "Exit"
|
||||
msgstr "終了"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:25
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:26
|
||||
msgid "Playback"
|
||||
msgstr "再生"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:25
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:203
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:204
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:205
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:206
|
||||
msgid "Play/Pause"
|
||||
msgstr "再生/一時停止"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:26
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:207
|
||||
msgid "Stop"
|
||||
msgstr "停止"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:28
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:29
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:30
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:31
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:32
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:34
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:35
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:36
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:37
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:38
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:39
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:40
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:41
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:42
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:43
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:44
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:45
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:46
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:47
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:48
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:49
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:50
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:51
|
||||
msgid "Navigate"
|
||||
msgstr "操作"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:28
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:214
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:216
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:218
|
||||
msgid "Previous File"
|
||||
msgstr "前のファイル"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:29
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:215
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:217
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:219
|
||||
msgid "Next File"
|
||||
msgstr "次のファイル"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:31
|
||||
msgid "First File"
|
||||
msgstr "最初のファイル"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:32
|
||||
msgid "Last File"
|
||||
msgstr "最後のファイル"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:35
|
||||
msgid "Next Chapter"
|
||||
msgstr "次のチャプター"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:36
|
||||
msgid "Previous Chapter"
|
||||
msgstr "前のチャプター"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:38
|
||||
msgid "Jump To Next Frame"
|
||||
msgstr "次のフレームへ進む"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:39
|
||||
msgid "Jump To Previous Frame"
|
||||
msgstr "前のフレームへ戻る"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:41
|
||||
msgid "Jump 5 sec forward"
|
||||
msgstr "5 秒進む"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:42
|
||||
msgid "Jump 5 sec backward"
|
||||
msgstr "5 秒戻る"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:44
|
||||
msgid "Jump 30 sec forward"
|
||||
msgstr "30 秒進む"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:45
|
||||
msgid "Jump 30 sec backward"
|
||||
msgstr "30 秒戻る"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:47
|
||||
msgid "Jump 5 min forward"
|
||||
msgstr "5 分進む"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:48
|
||||
msgid "Jump 5 min backward"
|
||||
msgstr "5 分戻る"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:50
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:393
|
||||
msgid "Title"
|
||||
msgstr "タイトル"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:51
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:351
|
||||
msgid "Chapter"
|
||||
msgstr "チャプター"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:53
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:54
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:55
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:56
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:57
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:58
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:59
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:60
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:61
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:62
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:63
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:64
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:65
|
||||
msgid "Pan & Scan"
|
||||
msgstr "パン&スキャン"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:53
|
||||
msgid "Decrease Size"
|
||||
msgstr "サイズを縮小"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:54
|
||||
msgid "Increase Size"
|
||||
msgstr "サイズを拡大"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:56
|
||||
msgid "Move Left"
|
||||
msgstr "左へ移動"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:57
|
||||
msgid "Move Right"
|
||||
msgstr "右へ移動"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:59
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:97
|
||||
msgid "Move Up"
|
||||
msgstr "上へ移動"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:60
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:98
|
||||
msgid "Move Down"
|
||||
msgstr "下へ移動"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:62
|
||||
msgid "Decrease Height"
|
||||
msgstr "高さを縮小"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:63
|
||||
msgid "Increase Height"
|
||||
msgstr "高さを拡大"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:65
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:118
|
||||
msgid "Reset"
|
||||
msgstr "リセット"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:67
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:68
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:69
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:70
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:71
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:72
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:73
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:74
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:75
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:76
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:77
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:78
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:79
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:80
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:81
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:82
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:83
|
||||
msgid "Video"
|
||||
msgstr "ビデオ"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:67
|
||||
msgid "Decrease Contrast"
|
||||
msgstr "コントラストを下げる"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:68
|
||||
msgid "Increase Contrast"
|
||||
msgstr "コントラストを上げる"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:70
|
||||
msgid "Decrease Brightness"
|
||||
msgstr "明るさを下げる"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:71
|
||||
msgid "Increase Brightness"
|
||||
msgstr "明るさを上げる"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:73
|
||||
msgid "Decrease Gamma"
|
||||
msgstr "ガンマ値を下げる"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:74
|
||||
msgid "Increase Gamma"
|
||||
msgstr "ガンマ値を上げる"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:76
|
||||
msgid "Decrease Saturation"
|
||||
msgstr "彩度を下げる"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:77
|
||||
msgid "Increase Saturation"
|
||||
msgstr "彩度を上げる"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:79
|
||||
msgid "Take Screenshot"
|
||||
msgstr "スクリーンショットを撮る"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:80
|
||||
msgid "Take Screenshot without subtitles"
|
||||
msgstr "字幕なしでスクリーンショットを撮る"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:81
|
||||
msgid "Toggle Deinterlace"
|
||||
msgstr "インターレース解除の切り替え"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:82
|
||||
msgid "Change Aspect Ratio"
|
||||
msgstr "アスペクト比を変更"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:83
|
||||
msgid "Rotate Video"
|
||||
msgstr "ビデオを回転"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:85
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:86
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:87
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:88
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:89
|
||||
msgid "Audio"
|
||||
msgstr "オーディオ"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:85
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:453
|
||||
msgid "Audio Device"
|
||||
msgstr "オーディオデバイス"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:86
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:91
|
||||
msgid "Next Track"
|
||||
msgstr "次のトラック"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:88
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:95
|
||||
msgid "Delay +0.1"
|
||||
msgstr "遅延 +0.1"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:89
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:94
|
||||
msgid "Delay -0.1"
|
||||
msgstr "遅延 -0.1"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:91
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:92
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:93
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:94
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:95
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:96
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:97
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:98
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:99
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:100
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:101
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:102
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:103
|
||||
msgid "Subtitle"
|
||||
msgstr "字幕"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:92
|
||||
msgid "Toggle Visibility"
|
||||
msgstr "表示の切り替え"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:100
|
||||
msgid "Decrease Font Size"
|
||||
msgstr "フォントサイズを縮小"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:101
|
||||
msgid "Increase Font Size"
|
||||
msgstr "フォントサイズを拡大"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:103
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:142
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:143
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:144
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:145
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:146
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:147
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:148
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:149
|
||||
msgid "More"
|
||||
msgstr "その他"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:103
|
||||
msgid "Toggle overriding SSA/ASS styles with normal styles"
|
||||
msgstr "SSA/ASS スタイルを通常のスタイルで上書きする"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:105
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:289
|
||||
msgid "Track"
|
||||
msgstr "トラック"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:107
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:108
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:109
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:110
|
||||
msgid "Volume"
|
||||
msgstr "音量"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:107
|
||||
msgctxt "Volume"
|
||||
msgid "Up"
|
||||
msgstr "上げる"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:108
|
||||
msgctxt "Volume"
|
||||
msgid "Down"
|
||||
msgstr "下げる"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:110
|
||||
msgid "Mute"
|
||||
msgstr "ミュート"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:112
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:113
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:114
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:115
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:116
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:117
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:118
|
||||
msgid "Speed"
|
||||
msgstr "再生速度"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:112
|
||||
msgid "-10%"
|
||||
msgstr "-10%"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:113
|
||||
msgid "+10%"
|
||||
msgstr "+10%"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:115
|
||||
msgid "Half"
|
||||
msgstr "1/2"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:116
|
||||
msgid "Double"
|
||||
msgstr "2 倍"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:120
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:121
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:122
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:123
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:124
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:125
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:126
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:127
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:128
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:129
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:130
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:131
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:132
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:133
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:134
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:135
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:136
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:137
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:138
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:139
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:140
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:141
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:142
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:143
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:144
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:145
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:146
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:147
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:148
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:149
|
||||
msgid "View"
|
||||
msgstr "表示"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:120
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:127
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:234
|
||||
msgid "Playlist"
|
||||
msgstr "プレイリスト"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:121
|
||||
msgid "Toggle Statistics"
|
||||
msgstr "統計情報の切り替え"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:122
|
||||
msgid "Toggle OSC Visibility"
|
||||
msgstr "OSC 表示の切り替え"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:123
|
||||
msgid "Media Info On-Screen"
|
||||
msgstr "画面メディア情報"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:124
|
||||
msgid "Media Info Message Box"
|
||||
msgstr "メッセージメディア情報"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:125
|
||||
msgid "Progress"
|
||||
msgstr "再生位置"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:126
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:127
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:128
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:129
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:130
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:131
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:132
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:133
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:134
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:135
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:136
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:137
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:138
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:139
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:140
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:248
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:249
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:250
|
||||
msgid "On-Screen Menu"
|
||||
msgstr "画面メニュー"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:128
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:246
|
||||
msgid "Bindings"
|
||||
msgstr "バインディング"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:129
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:247
|
||||
msgid "Properties"
|
||||
msgstr "プロパティ"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:130
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:240
|
||||
msgid "Chapters"
|
||||
msgstr "チャプター"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:131
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:239
|
||||
msgid "Tracks"
|
||||
msgstr "トラック"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:132
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:237
|
||||
msgid "Audio Tracks"
|
||||
msgstr "オーディオトラック"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:133
|
||||
msgid "Subtitle Tracks"
|
||||
msgstr "字幕トラック"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:134
|
||||
msgid "Secondary Subtitle"
|
||||
msgstr "セカンダリ字幕"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:135
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:238
|
||||
msgid "Video Tracks"
|
||||
msgstr "ビデオトラック"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:136
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:241
|
||||
msgid "Editions"
|
||||
msgstr "エディション"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:137
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:242
|
||||
msgid "Subtitle Lines"
|
||||
msgstr "字幕ライン"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:138
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:243
|
||||
msgid "Audio Devices"
|
||||
msgstr "オーディオデバイス"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:139
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:244
|
||||
msgid "Watch History"
|
||||
msgstr "再生履歴"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:140
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:245
|
||||
msgid "Watch Later"
|
||||
msgstr "再生位置を保存"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:142
|
||||
msgid "Console"
|
||||
msgstr "コンソール"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:143
|
||||
msgid "Commands"
|
||||
msgstr "コマンド"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:144
|
||||
msgid "Active Bindings In Text Editor"
|
||||
msgstr "キーバインドをエディタで編集"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:145
|
||||
msgid "Active Bindings On-Screen"
|
||||
msgstr "キーバインドを画面に表示"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:146
|
||||
msgid "Keys"
|
||||
msgstr "キー"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:147
|
||||
msgid "Protocols"
|
||||
msgstr "プロトコル"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:148
|
||||
msgid "Decoders"
|
||||
msgstr "デコーダー"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:149
|
||||
msgid "Demuxers"
|
||||
msgstr "デマルチプレクサ"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:151
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:152
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:153
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:154
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:155
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:156
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:157
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:158
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:159
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:160
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:161
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:162
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:163
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:164
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:165
|
||||
msgid "Window"
|
||||
msgstr "ウィンドウ"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:151
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:221
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:222
|
||||
msgid "Fullscreen"
|
||||
msgstr "フルスクリーン"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:152
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:153
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:154
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:155
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:156
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:157
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:158
|
||||
msgid "Zoom"
|
||||
msgstr "ズーム"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:152
|
||||
msgid "Enlarge"
|
||||
msgstr "拡大"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:153
|
||||
msgid "Shrink"
|
||||
msgstr "縮小"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:155
|
||||
msgid "50 %"
|
||||
msgstr "50 %"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:156
|
||||
msgid "100 %"
|
||||
msgstr "100 %"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:157
|
||||
msgid "200 %"
|
||||
msgstr "200 %"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:158
|
||||
msgid "300 %"
|
||||
msgstr "300 %"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:159
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:160
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:161
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:162
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:163
|
||||
msgid "Move"
|
||||
msgstr "移動"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:159
|
||||
msgctxt "Move"
|
||||
msgid "Left"
|
||||
msgstr "左へ"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:160
|
||||
msgctxt "Move"
|
||||
msgid "Right"
|
||||
msgstr "右へ"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:161
|
||||
msgctxt "Move"
|
||||
msgid "Up"
|
||||
msgstr "上へ"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:162
|
||||
msgctxt "Move"
|
||||
msgid "Down"
|
||||
msgstr "下へ"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:163
|
||||
msgctxt "Move"
|
||||
msgid "Center"
|
||||
msgstr "中央"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:164
|
||||
msgid "Toggle Border"
|
||||
msgstr "ボーダーの切り替え"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:165
|
||||
msgid "Toggle On Top"
|
||||
msgstr "常に手前に表示"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:167
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:426
|
||||
msgid "Profile"
|
||||
msgstr "プロファイル"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:169
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:170
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:171
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:172
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:173
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:174
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:175
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:176
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:177
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:178
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:179
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:180
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:181
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:182
|
||||
msgid "Config"
|
||||
msgstr "設定"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:169
|
||||
msgid "Show Config Editor"
|
||||
msgstr "構成エディターを表示"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:170
|
||||
msgid "Show Input Editor"
|
||||
msgstr "入力エディターを表示"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:172
|
||||
msgid "Edit mpv.conf"
|
||||
msgstr "mpv.conf の編集"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:173
|
||||
msgid "Edit input.conf"
|
||||
msgstr "input.conf の編集"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:175
|
||||
msgid "Open Config Folder"
|
||||
msgstr "構成フォルダを開く"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:176
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:177
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:178
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:179
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:180
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:181
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:182
|
||||
msgid "Setup"
|
||||
msgstr "セットアップ"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:176
|
||||
msgid "Register video file associations"
|
||||
msgstr "ビデオファイルの関連付けを登録"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:177
|
||||
msgid "Register audio file associations"
|
||||
msgstr "オーディオファイルの関連付けを登録"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:178
|
||||
msgid "Register image file associations"
|
||||
msgstr "画像ファイルの関連付けを登録"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:179
|
||||
msgid "Unregister file associations"
|
||||
msgstr "ファイルの関連付けの登録解除"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:181
|
||||
msgid "Add mpv.net to Path environment variable"
|
||||
msgstr "mpv.net を Path 環境変数へ追加"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:182
|
||||
msgid "Remove mpv.net from Path environment variable"
|
||||
msgstr "mpv.net を Path 環境変数から削除"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:184
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:185
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:186
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:187
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:188
|
||||
msgid "Tools"
|
||||
msgstr "ツール"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:184
|
||||
msgid "Set/clear A-B loop points"
|
||||
msgstr "A-B 区間ループの設定/解除"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:185
|
||||
msgid "Toggle infinite file looping"
|
||||
msgstr "無限ファイルループの切り替え"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:186
|
||||
msgid "Shuffle Playlist"
|
||||
msgstr "プレイリストをシャッフル"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:187
|
||||
msgid "Toggle Hardware Decoding"
|
||||
msgstr "ハードウェアデコードの切り替え"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:188
|
||||
msgid "Exit Watch Later"
|
||||
msgstr "再生位置を保存して終了"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:190
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:477
|
||||
msgid "Custom"
|
||||
msgstr "カスタム"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:192
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:193
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:194
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:195
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:196
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:197
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:198
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:199
|
||||
msgid "Help"
|
||||
msgstr "ヘルプ"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:192
|
||||
msgid "Website mpv"
|
||||
msgstr "mpv ウェブサイト"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:193
|
||||
msgid "Website mpv.net"
|
||||
msgstr "mpv.net ウェブサイト"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:195
|
||||
msgid "Manual mpv"
|
||||
msgstr "mpv マニュアル"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:196
|
||||
msgid "Manual mpv.net"
|
||||
msgstr "mpv.net マニュアル"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:198
|
||||
msgid "awesome-mpv"
|
||||
msgstr "awesome-mpv"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:199
|
||||
msgid "About mpv.net"
|
||||
msgstr "mpv.net のバージョン情報"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:202
|
||||
msgid "Show Menu"
|
||||
msgstr "メニューを表示"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:208
|
||||
msgid "Forward"
|
||||
msgstr "進む"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:209
|
||||
msgid "Backward"
|
||||
msgstr "戻る"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:210
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:212
|
||||
msgid "Volume Up"
|
||||
msgstr "音量を上げる"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:211
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:213
|
||||
msgid "Volume Down"
|
||||
msgstr "音量を下げる"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:220
|
||||
msgid "Ignore left mouse butten"
|
||||
msgstr "マウスの左ボタンを無視"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:223
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:225
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:231
|
||||
msgid "Seek Forward"
|
||||
msgstr "早送り"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:224
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:226
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:232
|
||||
msgid "Seek Backward"
|
||||
msgstr "早戻し"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:227
|
||||
msgid "Undo previous (or marked) seek"
|
||||
msgstr "直前の (またはマークした) シークを元に戻す"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:228
|
||||
msgid "Mark position for revert-seek"
|
||||
msgstr "戻り位置をマーク"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:229
|
||||
msgid "Seek to previous subtitle"
|
||||
msgstr "前の字幕へ戻る"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:230
|
||||
msgid "Seek to next subtitle"
|
||||
msgstr "次の字幕へ進む"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:235
|
||||
msgid "Subtitles"
|
||||
msgstr "字幕"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:236
|
||||
msgid "Secondary Subtitles"
|
||||
msgstr "セカンダリ字幕"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:192
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:214
|
||||
msgid "Files/URLs were added to the playlist"
|
||||
msgstr "ファイル/URL がプレイリストへ追加されました"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:207
|
||||
msgid "The clipboard does not contain a valid URL or file."
|
||||
msgstr "クリップボードに有効な URL またはファイルが含まれていません。"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:262
|
||||
msgid "File Explorer icons will refresh after process restart."
|
||||
msgstr "ファイルエクスプローラーのアイコンは、プロセスの再起動後に更新されます。"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:265
|
||||
msgid "File associations were successfully removed."
|
||||
msgstr "ファイルの関連付けは正常に削除されました。"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:267
|
||||
msgid "File associations were successfully created."
|
||||
msgstr "ファイルの関連付けが正常に作成されました。"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:270
|
||||
msgid "Error creating file associations."
|
||||
msgstr "ファイルの関連付けの作成中にエラーが発生しました。"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:387
|
||||
msgid "mpv.net is already in the Path environment variable."
|
||||
msgstr "mpv.net は既に Path 環境変数にあります。"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:395
|
||||
msgid "mpv.net was successfully added to the Path environment variable."
|
||||
msgstr "mpv.net が Path 環境変数へ正常に追加されました。"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:404
|
||||
msgid "mpv.net was not found in the Path environment variable."
|
||||
msgstr "mpv.net が Path 環境変数に見つかりませんでした。"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:413
|
||||
msgid "mpv.net was successfully removed from the Path environment variable."
|
||||
msgstr "mpv.net は Path 環境変数から正常に削除されました。"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:418
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:423
|
||||
msgid "This feature was removed, but there are user scripts:"
|
||||
msgstr "この機能は削除されましたが、ユーザースクリプトがあります:"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:427
|
||||
msgid "This feature was removed."
|
||||
msgstr "この機能は削除されました。"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\Properties\Resources.Designer.cs:79
|
||||
msgid "editor_conf"
|
||||
msgstr "editor_conf"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\Properties\Resources.Designer.cs:114
|
||||
msgid "theme"
|
||||
msgstr "テーマ"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:388
|
||||
msgid "Clear List"
|
||||
msgstr "リストをクリア"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:448
|
||||
msgid "Show Profiles"
|
||||
msgstr "プロファイルを表示"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:1432
|
||||
msgid "Shutdown thread failed to complete within 10 seconds."
|
||||
msgstr "シャットダウン スレッドが 10 秒以内に完了しませんでした。"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\InputWindow.xaml.cs:116
|
||||
msgid "Changes will be available on next startup."
|
||||
msgstr "変更は次回の起動時に利用可能になります。"
|
||||
1020
lang/po/ko.po
Normal file
1022
lang/po/pl.po
Normal file
1022
lang/po/ru.po
Normal file
1009
lang/po/tr.po
Normal file
998
lang/po/zh_CN.po
Normal file
@@ -0,0 +1,998 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
# Translators:
|
||||
# dyphire, 2023
|
||||
# nkh0472 <nkh0472@hotmail.com>, 2025
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-10-06 00:24+0200\n"
|
||||
"PO-Revision-Date: 2023-12-08 00:34+0000\n"
|
||||
"Last-Translator: nkh0472 <nkh0472@hotmail.com>, 2025\n"
|
||||
"Language-Team: Chinese (China) (https://app.transifex.com/stax76/teams/179964/zh_CN/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: zh_CN\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:12
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:13
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:14
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:15
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:16
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:17
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:18
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:19
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:20
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:21
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:22
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:23
|
||||
msgid "File"
|
||||
msgstr "文件"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:12
|
||||
msgid "Open Files..."
|
||||
msgstr "打开文件..."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:13
|
||||
msgid "Open URL or file from clipboard"
|
||||
msgstr "从剪贴板打开 URL 或文件"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:14
|
||||
msgid "Open DVD/Blu-ray Drive/Folder..."
|
||||
msgstr "打开 DVD/蓝光驱动器/文件夹..."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:16
|
||||
msgid "Add external audio files..."
|
||||
msgstr "添加外部音频文件..."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:17
|
||||
msgid "Add external subtitle files..."
|
||||
msgstr "添加外部字幕文件..."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:19
|
||||
msgid "Add files to playlist..."
|
||||
msgstr "添加文件到播放列表..."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:20
|
||||
msgid "Add files/URLs to playlist from clipboard"
|
||||
msgstr "将 文件/URL 从剪贴板添加到播放列表"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:22
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:372
|
||||
msgid "Recent Files"
|
||||
msgstr "近期文件"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:23
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:201
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:233
|
||||
msgid "Exit"
|
||||
msgstr "退出"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:25
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:26
|
||||
msgid "Playback"
|
||||
msgstr "回放"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:25
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:203
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:204
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:205
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:206
|
||||
msgid "Play/Pause"
|
||||
msgstr "播放/暂停"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:26
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:207
|
||||
msgid "Stop"
|
||||
msgstr "停止"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:28
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:29
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:30
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:31
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:32
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:34
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:35
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:36
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:37
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:38
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:39
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:40
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:41
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:42
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:43
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:44
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:45
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:46
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:47
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:48
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:49
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:50
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:51
|
||||
msgid "Navigate"
|
||||
msgstr "导航"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:28
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:214
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:216
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:218
|
||||
msgid "Previous File"
|
||||
msgstr "上一个文件"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:29
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:215
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:217
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:219
|
||||
msgid "Next File"
|
||||
msgstr "下一个文件"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:31
|
||||
msgid "First File"
|
||||
msgstr "第一个文件"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:32
|
||||
msgid "Last File"
|
||||
msgstr "最后一个文件"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:35
|
||||
msgid "Next Chapter"
|
||||
msgstr "下一个章节"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:36
|
||||
msgid "Previous Chapter"
|
||||
msgstr "上一个章节"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:38
|
||||
msgid "Jump To Next Frame"
|
||||
msgstr "跳至下一帧"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:39
|
||||
msgid "Jump To Previous Frame"
|
||||
msgstr "跳至上一帧"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:41
|
||||
msgid "Jump 5 sec forward"
|
||||
msgstr "快进 5 秒"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:42
|
||||
msgid "Jump 5 sec backward"
|
||||
msgstr "快退 5 秒"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:44
|
||||
msgid "Jump 30 sec forward"
|
||||
msgstr "快进 30 秒"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:45
|
||||
msgid "Jump 30 sec backward"
|
||||
msgstr "快退 30 秒"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:47
|
||||
msgid "Jump 5 min forward"
|
||||
msgstr "快进 5 分钟"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:48
|
||||
msgid "Jump 5 min backward"
|
||||
msgstr "快退 5 分钟"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:50
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:393
|
||||
msgid "Title"
|
||||
msgstr "标题"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:51
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:351
|
||||
msgid "Chapter"
|
||||
msgstr "章节"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:53
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:54
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:55
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:56
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:57
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:58
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:59
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:60
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:61
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:62
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:63
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:64
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:65
|
||||
msgid "Pan & Scan"
|
||||
msgstr "平移&扫描"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:53
|
||||
msgid "Decrease Size"
|
||||
msgstr "缩减大小"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:54
|
||||
msgid "Increase Size"
|
||||
msgstr "增加大小"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:56
|
||||
msgid "Move Left"
|
||||
msgstr "左移"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:57
|
||||
msgid "Move Right"
|
||||
msgstr "右移"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:59
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:97
|
||||
msgid "Move Up"
|
||||
msgstr "上移"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:60
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:98
|
||||
msgid "Move Down"
|
||||
msgstr "下移"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:62
|
||||
msgid "Decrease Height"
|
||||
msgstr "降低高度"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:63
|
||||
msgid "Increase Height"
|
||||
msgstr "增加高度"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:65
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:118
|
||||
msgid "Reset"
|
||||
msgstr "重置"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:67
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:68
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:69
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:70
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:71
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:72
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:73
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:74
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:75
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:76
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:77
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:78
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:79
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:80
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:81
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:82
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:83
|
||||
msgid "Video"
|
||||
msgstr "视频"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:67
|
||||
msgid "Decrease Contrast"
|
||||
msgstr "降低对比度"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:68
|
||||
msgid "Increase Contrast"
|
||||
msgstr "增加对比度"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:70
|
||||
msgid "Decrease Brightness"
|
||||
msgstr "降低亮度"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:71
|
||||
msgid "Increase Brightness"
|
||||
msgstr "增加亮度"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:73
|
||||
msgid "Decrease Gamma"
|
||||
msgstr "降低伽马"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:74
|
||||
msgid "Increase Gamma"
|
||||
msgstr "增加伽马"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:76
|
||||
msgid "Decrease Saturation"
|
||||
msgstr "降低饱和度"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:77
|
||||
msgid "Increase Saturation"
|
||||
msgstr "增加饱和度"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:79
|
||||
msgid "Take Screenshot"
|
||||
msgstr "截屏"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:80
|
||||
msgid "Take Screenshot without subtitles"
|
||||
msgstr "截图(无字幕)"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:81
|
||||
msgid "Toggle Deinterlace"
|
||||
msgstr "切换 去隔行"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:82
|
||||
msgid "Change Aspect Ratio"
|
||||
msgstr "更改纵横比"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:83
|
||||
msgid "Rotate Video"
|
||||
msgstr "旋转视频"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:85
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:86
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:87
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:88
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:89
|
||||
msgid "Audio"
|
||||
msgstr "音频"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:85
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:453
|
||||
msgid "Audio Device"
|
||||
msgstr "音频设备"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:86
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:91
|
||||
msgid "Next Track"
|
||||
msgstr "下一个轨道"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:88
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:95
|
||||
msgid "Delay +0.1"
|
||||
msgstr "延迟 +0.1"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:89
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:94
|
||||
msgid "Delay -0.1"
|
||||
msgstr "延迟 -0.1"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:91
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:92
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:93
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:94
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:95
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:96
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:97
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:98
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:99
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:100
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:101
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:102
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:103
|
||||
msgid "Subtitle"
|
||||
msgstr "字幕"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:92
|
||||
msgid "Toggle Visibility"
|
||||
msgstr "切换 可见性"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:100
|
||||
msgid "Decrease Font Size"
|
||||
msgstr "减小字体大小"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:101
|
||||
msgid "Increase Font Size"
|
||||
msgstr "增加字体大小"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:103
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:142
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:143
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:144
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:145
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:146
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:147
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:148
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:149
|
||||
msgid "More"
|
||||
msgstr "更多"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:103
|
||||
msgid "Toggle overriding SSA/ASS styles with normal styles"
|
||||
msgstr "切换 使用常规样式覆盖 SSA/ASS 样式"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:105
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:289
|
||||
msgid "Track"
|
||||
msgstr "轨道"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:107
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:108
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:109
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:110
|
||||
msgid "Volume"
|
||||
msgstr "音量"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:107
|
||||
msgctxt "Volume"
|
||||
msgid "Up"
|
||||
msgstr "增大"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:108
|
||||
msgctxt "Volume"
|
||||
msgid "Down"
|
||||
msgstr "减小"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:110
|
||||
msgid "Mute"
|
||||
msgstr "静音"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:112
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:113
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:114
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:115
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:116
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:117
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:118
|
||||
msgid "Speed"
|
||||
msgstr "速度"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:112
|
||||
msgid "-10%"
|
||||
msgstr "-10%"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:113
|
||||
msgid "+10%"
|
||||
msgstr "+10%"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:115
|
||||
msgid "Half"
|
||||
msgstr "减半"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:116
|
||||
msgid "Double"
|
||||
msgstr "翻倍"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:120
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:121
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:122
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:123
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:124
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:125
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:126
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:127
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:128
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:129
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:130
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:131
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:132
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:133
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:134
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:135
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:136
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:137
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:138
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:139
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:140
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:141
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:142
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:143
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:144
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:145
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:146
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:147
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:148
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:149
|
||||
msgid "View"
|
||||
msgstr "查看"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:120
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:127
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:234
|
||||
msgid "Playlist"
|
||||
msgstr "播放列表"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:121
|
||||
msgid "Toggle Statistics"
|
||||
msgstr "切换 统计信息"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:122
|
||||
msgid "Toggle OSC Visibility"
|
||||
msgstr "切换 OSC 可见性"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:123
|
||||
msgid "Media Info On-Screen"
|
||||
msgstr "显示媒体信息"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:124
|
||||
msgid "Media Info Message Box"
|
||||
msgstr "媒体信息消息框"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:125
|
||||
msgid "Progress"
|
||||
msgstr "进度"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:126
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:127
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:128
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:129
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:130
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:131
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:132
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:133
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:134
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:135
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:136
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:137
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:138
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:139
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:140
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:248
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:249
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:250
|
||||
msgid "On-Screen Menu"
|
||||
msgstr "屏幕菜单"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:128
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:246
|
||||
msgid "Bindings"
|
||||
msgstr "键位绑定"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:129
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:247
|
||||
msgid "Properties"
|
||||
msgstr "属性"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:130
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:240
|
||||
msgid "Chapters"
|
||||
msgstr "章节"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:131
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:239
|
||||
msgid "Tracks"
|
||||
msgstr "轨道"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:132
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:237
|
||||
msgid "Audio Tracks"
|
||||
msgstr "音频轨道"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:133
|
||||
msgid "Subtitle Tracks"
|
||||
msgstr "字幕轨道"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:134
|
||||
msgid "Secondary Subtitle"
|
||||
msgstr "第二字幕"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:135
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:238
|
||||
msgid "Video Tracks"
|
||||
msgstr "视频轨道"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:136
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:241
|
||||
msgid "Editions"
|
||||
msgstr "版本"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:137
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:242
|
||||
msgid "Subtitle Lines"
|
||||
msgstr "字幕行"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:138
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:243
|
||||
msgid "Audio Devices"
|
||||
msgstr "音频设备"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:139
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:244
|
||||
msgid "Watch History"
|
||||
msgstr "观看历史"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:140
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:245
|
||||
msgid "Watch Later"
|
||||
msgstr "稍后观看"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:142
|
||||
msgid "Console"
|
||||
msgstr "控制台"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:143
|
||||
msgid "Commands"
|
||||
msgstr "命令"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:144
|
||||
msgid "Active Bindings In Text Editor"
|
||||
msgstr "文本编辑器中的活动绑定"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:145
|
||||
msgid "Active Bindings On-Screen"
|
||||
msgstr "屏幕上的活动绑定"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:146
|
||||
msgid "Keys"
|
||||
msgstr "键"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:147
|
||||
msgid "Protocols"
|
||||
msgstr "协议"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:148
|
||||
msgid "Decoders"
|
||||
msgstr "解码器"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:149
|
||||
msgid "Demuxers"
|
||||
msgstr "解复用器"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:151
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:152
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:153
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:154
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:155
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:156
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:157
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:158
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:159
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:160
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:161
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:162
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:163
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:164
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:165
|
||||
msgid "Window"
|
||||
msgstr "窗口"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:151
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:221
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:222
|
||||
msgid "Fullscreen"
|
||||
msgstr "全屏"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:152
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:153
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:154
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:155
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:156
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:157
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:158
|
||||
msgid "Zoom"
|
||||
msgstr "缩放"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:152
|
||||
msgid "Enlarge"
|
||||
msgstr "放大"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:153
|
||||
msgid "Shrink"
|
||||
msgstr "缩小"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:155
|
||||
msgid "50 %"
|
||||
msgstr "50 %"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:156
|
||||
msgid "100 %"
|
||||
msgstr "100 %"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:157
|
||||
msgid "200 %"
|
||||
msgstr "200 %"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:158
|
||||
msgid "300 %"
|
||||
msgstr "300 %"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:159
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:160
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:161
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:162
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:163
|
||||
msgid "Move"
|
||||
msgstr "移动"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:159
|
||||
msgctxt "Move"
|
||||
msgid "Left"
|
||||
msgstr "左移"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:160
|
||||
msgctxt "Move"
|
||||
msgid "Right"
|
||||
msgstr "右移"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:161
|
||||
msgctxt "Move"
|
||||
msgid "Up"
|
||||
msgstr "上移"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:162
|
||||
msgctxt "Move"
|
||||
msgid "Down"
|
||||
msgstr "下移"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:163
|
||||
msgctxt "Move"
|
||||
msgid "Center"
|
||||
msgstr "居中"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:164
|
||||
msgid "Toggle Border"
|
||||
msgstr "切换 边框"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:165
|
||||
msgid "Toggle On Top"
|
||||
msgstr "切换 置顶"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:167
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:426
|
||||
msgid "Profile"
|
||||
msgstr "配置文件"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:169
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:170
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:171
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:172
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:173
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:174
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:175
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:176
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:177
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:178
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:179
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:180
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:181
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:182
|
||||
msgid "Config"
|
||||
msgstr "配置"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:169
|
||||
msgid "Show Config Editor"
|
||||
msgstr "显示配置编辑器"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:170
|
||||
msgid "Show Input Editor"
|
||||
msgstr "显示输入编辑器"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:172
|
||||
msgid "Edit mpv.conf"
|
||||
msgstr "编辑 mpv.conf"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:173
|
||||
msgid "Edit input.conf"
|
||||
msgstr "编辑 input.conf"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:175
|
||||
msgid "Open Config Folder"
|
||||
msgstr "打开配置文件夹"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:176
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:177
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:178
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:179
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:180
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:181
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:182
|
||||
msgid "Setup"
|
||||
msgstr "设置"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:176
|
||||
msgid "Register video file associations"
|
||||
msgstr "注册视频文件关联"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:177
|
||||
msgid "Register audio file associations"
|
||||
msgstr "注册音频文件关联"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:178
|
||||
msgid "Register image file associations"
|
||||
msgstr "注册图像文件关联"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:179
|
||||
msgid "Unregister file associations"
|
||||
msgstr "注销文件关联"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:181
|
||||
msgid "Add mpv.net to Path environment variable"
|
||||
msgstr "将 mpv.net 添加到环境变量"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:182
|
||||
msgid "Remove mpv.net from Path environment variable"
|
||||
msgstr "将 mpv.net 从环境变量中移除"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:184
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:185
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:186
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:187
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:188
|
||||
msgid "Tools"
|
||||
msgstr "工具"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:184
|
||||
msgid "Set/clear A-B loop points"
|
||||
msgstr "设置/清除 A-B 循环点"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:185
|
||||
msgid "Toggle infinite file looping"
|
||||
msgstr "切换 无限文件循环"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:186
|
||||
msgid "Shuffle Playlist"
|
||||
msgstr "随机播放列表"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:187
|
||||
msgid "Toggle Hardware Decoding"
|
||||
msgstr "切换 硬件解码"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:188
|
||||
msgid "Exit Watch Later"
|
||||
msgstr "退出(稍后观看)"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:190
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:477
|
||||
msgid "Custom"
|
||||
msgstr "自定义"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:192
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:193
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:194
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:195
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:196
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:197
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:198
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:199
|
||||
msgid "Help"
|
||||
msgstr "帮助"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:192
|
||||
msgid "Website mpv"
|
||||
msgstr "mpv 网址"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:193
|
||||
msgid "Website mpv.net"
|
||||
msgstr "mpv.net 网址"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:195
|
||||
msgid "Manual mpv"
|
||||
msgstr "mpv 手册"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:196
|
||||
msgid "Manual mpv.net"
|
||||
msgstr "mpv.net 手册"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:198
|
||||
msgid "awesome-mpv"
|
||||
msgstr "awesome-mpv"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:199
|
||||
msgid "About mpv.net"
|
||||
msgstr "关于 mpv.net"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:202
|
||||
msgid "Show Menu"
|
||||
msgstr "显示菜单"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:208
|
||||
msgid "Forward"
|
||||
msgstr "前进"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:209
|
||||
msgid "Backward"
|
||||
msgstr "后退"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:210
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:212
|
||||
msgid "Volume Up"
|
||||
msgstr "增加 音量"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:211
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:213
|
||||
msgid "Volume Down"
|
||||
msgstr "降低 音量"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:220
|
||||
msgid "Ignore left mouse butten"
|
||||
msgstr "忽略左键"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:223
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:225
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:231
|
||||
msgid "Seek Forward"
|
||||
msgstr "向前跳转"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:224
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:226
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:232
|
||||
msgid "Seek Backward"
|
||||
msgstr "向后跳转"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:227
|
||||
msgid "Undo previous (or marked) seek"
|
||||
msgstr "撤销之前(或标记的)跳转"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:228
|
||||
msgid "Mark position for revert-seek"
|
||||
msgstr "标记回退查找的位置"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:229
|
||||
msgid "Seek to previous subtitle"
|
||||
msgstr "跳至上一条字幕"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:230
|
||||
msgid "Seek to next subtitle"
|
||||
msgstr "跳至下一条字幕"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:235
|
||||
msgid "Subtitles"
|
||||
msgstr "字幕"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:236
|
||||
msgid "Secondary Subtitles"
|
||||
msgstr "第二字幕"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:192
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:214
|
||||
msgid "Files/URLs were added to the playlist"
|
||||
msgstr "已添加 文件/URL 到播放列表"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:207
|
||||
msgid "The clipboard does not contain a valid URL or file."
|
||||
msgstr "剪贴板中未包含有效的 URL 或文件。"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:262
|
||||
msgid "File Explorer icons will refresh after process restart."
|
||||
msgstr "文件资源管理器图标将在进程重新启动后刷新"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:265
|
||||
msgid "File associations were successfully removed."
|
||||
msgstr "文件关联已成功删除"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:267
|
||||
msgid "File associations were successfully created."
|
||||
msgstr "文件关联已成功创建"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:270
|
||||
msgid "Error creating file associations."
|
||||
msgstr "创建文件关联时出错"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:387
|
||||
msgid "mpv.net is already in the Path environment variable."
|
||||
msgstr "mpv.net 已存在于环境变量。"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:395
|
||||
msgid "mpv.net was successfully added to the Path environment variable."
|
||||
msgstr "成功添加 mpv.net 至环境变量。"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:404
|
||||
msgid "mpv.net was not found in the Path environment variable."
|
||||
msgstr "环境变量中不存在 mpv.net。"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:413
|
||||
msgid "mpv.net was successfully removed from the Path environment variable."
|
||||
msgstr "成功从环境变量中移除 mpv.net 。"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:418
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:423
|
||||
msgid "This feature was removed, but there are user scripts:"
|
||||
msgstr "该功能已被移除,但有用户脚本:"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:427
|
||||
msgid "This feature was removed."
|
||||
msgstr "该功能已被移除。"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\Properties\Resources.Designer.cs:79
|
||||
msgid "editor_conf"
|
||||
msgstr "editor_conf"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\Properties\Resources.Designer.cs:114
|
||||
msgid "theme"
|
||||
msgstr "主题"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:388
|
||||
msgid "Clear List"
|
||||
msgstr "清空列表"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:448
|
||||
msgid "Show Profiles"
|
||||
msgstr "显示配置文件"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:1432
|
||||
msgid "Shutdown thread failed to complete within 10 seconds."
|
||||
msgstr "线程关闭未能在 10 秒内完成"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\InputWindow.xaml.cs:116
|
||||
msgid "Changes will be available on next startup."
|
||||
msgstr "更改将在下次启动时应用"
|
||||
993
lang/source.pot
Normal file
@@ -0,0 +1,993 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-10-06 00:24+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=CHARSET\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:12
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:13
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:14
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:15
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:16
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:17
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:18
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:19
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:20
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:21
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:22
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:23
|
||||
msgid "File"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:12
|
||||
msgid "Open Files..."
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:13
|
||||
msgid "Open URL or file from clipboard"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:14
|
||||
msgid "Open DVD/Blu-ray Drive/Folder..."
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:16
|
||||
msgid "Add external audio files..."
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:17
|
||||
msgid "Add external subtitle files..."
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:19
|
||||
msgid "Add files to playlist..."
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:20
|
||||
msgid "Add files/URLs to playlist from clipboard"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:22
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:372
|
||||
msgid "Recent Files"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:23
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:201
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:233
|
||||
msgid "Exit"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:25
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:26
|
||||
msgid "Playback"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:25
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:203
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:204
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:205
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:206
|
||||
msgid "Play/Pause"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:26
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:207
|
||||
msgid "Stop"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:28
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:29
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:30
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:31
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:32
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:34
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:35
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:36
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:37
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:38
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:39
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:40
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:41
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:42
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:43
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:44
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:45
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:46
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:47
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:48
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:49
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:50
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:51
|
||||
msgid "Navigate"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:28
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:214
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:216
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:218
|
||||
msgid "Previous File"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:29
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:215
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:217
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:219
|
||||
msgid "Next File"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:31
|
||||
msgid "First File"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:32
|
||||
msgid "Last File"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:35
|
||||
msgid "Next Chapter"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:36
|
||||
msgid "Previous Chapter"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:38
|
||||
msgid "Jump To Next Frame"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:39
|
||||
msgid "Jump To Previous Frame"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:41
|
||||
msgid "Jump 5 sec forward"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:42
|
||||
msgid "Jump 5 sec backward"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:44
|
||||
msgid "Jump 30 sec forward"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:45
|
||||
msgid "Jump 30 sec backward"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:47
|
||||
msgid "Jump 5 min forward"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:48
|
||||
msgid "Jump 5 min backward"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:50
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:393
|
||||
msgid "Title"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:51
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:351
|
||||
msgid "Chapter"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:53
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:54
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:55
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:56
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:57
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:58
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:59
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:60
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:61
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:62
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:63
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:64
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:65
|
||||
msgid "Pan & Scan"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:53
|
||||
msgid "Decrease Size"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:54
|
||||
msgid "Increase Size"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:56
|
||||
msgid "Move Left"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:57
|
||||
msgid "Move Right"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:59
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:97
|
||||
msgid "Move Up"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:60
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:98
|
||||
msgid "Move Down"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:62
|
||||
msgid "Decrease Height"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:63
|
||||
msgid "Increase Height"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:65
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:118
|
||||
msgid "Reset"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:67
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:68
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:69
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:70
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:71
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:72
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:73
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:74
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:75
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:76
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:77
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:78
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:79
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:80
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:81
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:82
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:83
|
||||
msgid "Video"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:67
|
||||
msgid "Decrease Contrast"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:68
|
||||
msgid "Increase Contrast"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:70
|
||||
msgid "Decrease Brightness"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:71
|
||||
msgid "Increase Brightness"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:73
|
||||
msgid "Decrease Gamma"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:74
|
||||
msgid "Increase Gamma"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:76
|
||||
msgid "Decrease Saturation"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:77
|
||||
msgid "Increase Saturation"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:79
|
||||
msgid "Take Screenshot"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:80
|
||||
msgid "Take Screenshot without subtitles"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:81
|
||||
msgid "Toggle Deinterlace"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:82
|
||||
msgid "Change Aspect Ratio"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:83
|
||||
msgid "Rotate Video"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:85
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:86
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:87
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:88
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:89
|
||||
msgid "Audio"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:85
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:453
|
||||
msgid "Audio Device"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:86
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:91
|
||||
msgid "Next Track"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:88
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:95
|
||||
msgid "Delay +0.1"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:89
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:94
|
||||
msgid "Delay -0.1"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:91
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:92
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:93
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:94
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:95
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:96
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:97
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:98
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:99
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:100
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:101
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:102
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:103
|
||||
msgid "Subtitle"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:92
|
||||
msgid "Toggle Visibility"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:100
|
||||
msgid "Decrease Font Size"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:101
|
||||
msgid "Increase Font Size"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:103
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:142
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:143
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:144
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:145
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:146
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:147
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:148
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:149
|
||||
msgid "More"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:103
|
||||
msgid "Toggle overriding SSA/ASS styles with normal styles"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:105
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:289
|
||||
msgid "Track"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:107
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:108
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:109
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:110
|
||||
msgid "Volume"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:107
|
||||
msgctxt "Volume"
|
||||
msgid "Up"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:108
|
||||
msgctxt "Volume"
|
||||
msgid "Down"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:110
|
||||
msgid "Mute"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:112
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:113
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:114
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:115
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:116
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:117
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:118
|
||||
msgid "Speed"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:112
|
||||
msgid "-10%"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:113
|
||||
msgid "+10%"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:115
|
||||
msgid "Half"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:116
|
||||
msgid "Double"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:120
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:121
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:122
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:123
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:124
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:125
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:126
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:127
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:128
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:129
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:130
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:131
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:132
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:133
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:134
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:135
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:136
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:137
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:138
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:139
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:140
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:141
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:142
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:143
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:144
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:145
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:146
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:147
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:148
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:149
|
||||
msgid "View"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:120
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:127
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:234
|
||||
msgid "Playlist"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:121
|
||||
msgid "Toggle Statistics"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:122
|
||||
msgid "Toggle OSC Visibility"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:123
|
||||
msgid "Media Info On-Screen"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:124
|
||||
msgid "Media Info Message Box"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:125
|
||||
msgid "Progress"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:126
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:127
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:128
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:129
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:130
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:131
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:132
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:133
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:134
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:135
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:136
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:137
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:138
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:139
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:140
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:248
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:249
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:250
|
||||
msgid "On-Screen Menu"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:128
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:246
|
||||
msgid "Bindings"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:129
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:247
|
||||
msgid "Properties"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:130
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:240
|
||||
msgid "Chapters"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:131
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:239
|
||||
msgid "Tracks"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:132
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:237
|
||||
msgid "Audio Tracks"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:133
|
||||
msgid "Subtitle Tracks"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:134
|
||||
msgid "Secondary Subtitle"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:135
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:238
|
||||
msgid "Video Tracks"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:136
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:241
|
||||
msgid "Editions"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:137
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:242
|
||||
msgid "Subtitle Lines"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:138
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:243
|
||||
msgid "Audio Devices"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:139
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:244
|
||||
msgid "Watch History"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:140
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:245
|
||||
msgid "Watch Later"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:142
|
||||
msgid "Console"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:143
|
||||
msgid "Commands"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:144
|
||||
msgid "Active Bindings In Text Editor"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:145
|
||||
msgid "Active Bindings On-Screen"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:146
|
||||
msgid "Keys"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:147
|
||||
msgid "Protocols"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:148
|
||||
msgid "Decoders"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:149
|
||||
msgid "Demuxers"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:151
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:152
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:153
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:154
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:155
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:156
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:157
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:158
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:159
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:160
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:161
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:162
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:163
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:164
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:165
|
||||
msgid "Window"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:151
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:221
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:222
|
||||
msgid "Fullscreen"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:152
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:153
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:154
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:155
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:156
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:157
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:158
|
||||
msgid "Zoom"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:152
|
||||
msgid "Enlarge"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:153
|
||||
msgid "Shrink"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:155
|
||||
msgid "50 %"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:156
|
||||
msgid "100 %"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:157
|
||||
msgid "200 %"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:158
|
||||
msgid "300 %"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:159
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:160
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:161
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:162
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:163
|
||||
msgid "Move"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:159
|
||||
msgctxt "Move"
|
||||
msgid "Left"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:160
|
||||
msgctxt "Move"
|
||||
msgid "Right"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:161
|
||||
msgctxt "Move"
|
||||
msgid "Up"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:162
|
||||
msgctxt "Move"
|
||||
msgid "Down"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:163
|
||||
msgctxt "Move"
|
||||
msgid "Center"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:164
|
||||
msgid "Toggle Border"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:165
|
||||
msgid "Toggle On Top"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:167
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:426
|
||||
msgid "Profile"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:169
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:170
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:171
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:172
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:173
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:174
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:175
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:176
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:177
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:178
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:179
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:180
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:181
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:182
|
||||
msgid "Config"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:169
|
||||
msgid "Show Config Editor"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:170
|
||||
msgid "Show Input Editor"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:172
|
||||
msgid "Edit mpv.conf"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:173
|
||||
msgid "Edit input.conf"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:175
|
||||
msgid "Open Config Folder"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:176
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:177
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:178
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:179
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:180
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:181
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:182
|
||||
msgid "Setup"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:176
|
||||
msgid "Register video file associations"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:177
|
||||
msgid "Register audio file associations"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:178
|
||||
msgid "Register image file associations"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:179
|
||||
msgid "Unregister file associations"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:181
|
||||
msgid "Add mpv.net to Path environment variable"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:182
|
||||
msgid "Remove mpv.net from Path environment variable"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:184
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:185
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:186
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:187
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:188
|
||||
msgid "Tools"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:184
|
||||
msgid "Set/clear A-B loop points"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:185
|
||||
msgid "Toggle infinite file looping"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:186
|
||||
msgid "Shuffle Playlist"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:187
|
||||
msgid "Toggle Hardware Decoding"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:188
|
||||
msgid "Exit Watch Later"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:190
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:477
|
||||
msgid "Custom"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:192
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:193
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:194
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:195
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:196
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:197
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:198
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:199
|
||||
msgid "Help"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:192
|
||||
msgid "Website mpv"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:193
|
||||
msgid "Website mpv.net"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:195
|
||||
msgid "Manual mpv"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:196
|
||||
msgid "Manual mpv.net"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:198
|
||||
msgid "awesome-mpv"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:199
|
||||
msgid "About mpv.net"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:202
|
||||
msgid "Show Menu"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:208
|
||||
msgid "Forward"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:209
|
||||
msgid "Backward"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:210
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:212
|
||||
msgid "Volume Up"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:211
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:213
|
||||
msgid "Volume Down"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:220
|
||||
msgid "Ignore left mouse butten"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:223
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:225
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:231
|
||||
msgid "Seek Forward"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:224
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:226
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:232
|
||||
msgid "Seek Backward"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:227
|
||||
msgid "Undo previous (or marked) seek"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:228
|
||||
msgid "Mark position for revert-seek"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:229
|
||||
msgid "Seek to previous subtitle"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:230
|
||||
msgid "Seek to next subtitle"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:235
|
||||
msgid "Subtitles"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:236
|
||||
msgid "Secondary Subtitles"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:192
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:214
|
||||
msgid "Files/URLs were added to the playlist"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:207
|
||||
msgid "The clipboard does not contain a valid URL or file."
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:262
|
||||
msgid "File Explorer icons will refresh after process restart."
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:265
|
||||
msgid "File associations were successfully removed."
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:267
|
||||
msgid "File associations were successfully created."
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:270
|
||||
msgid "Error creating file associations."
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:387
|
||||
msgid "mpv.net is already in the Path environment variable."
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:395
|
||||
msgid "mpv.net was successfully added to the Path environment variable."
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:404
|
||||
msgid "mpv.net was not found in the Path environment variable."
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:413
|
||||
msgid "mpv.net was successfully removed from the Path environment variable."
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:418
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:423
|
||||
msgid "This feature was removed, but there are user scripts:"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:427
|
||||
msgid "This feature was removed."
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\Properties\Resources.Designer.cs:79
|
||||
msgid "editor_conf"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\Properties\Resources.Designer.cs:114
|
||||
msgid "theme"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:388
|
||||
msgid "Clear List"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:448
|
||||
msgid "Show Profiles"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:1432
|
||||
msgid "Shutdown thread failed to complete within 10 seconds."
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\InputWindow.xaml.cs:116
|
||||
msgid "Changes will be available on next startup."
|
||||
msgstr ""
|
||||
23
lang/update-po-and-pot-files.ps1
Normal file
@@ -0,0 +1,23 @@
|
||||
|
||||
$ErrorActionPreference = 'Stop'
|
||||
|
||||
# Write list of .cs files into cs-files.txt file
|
||||
Get-ChildItem $PSScriptRoot/.. -Recurse -File -Filter '*.cs' |
|
||||
Where-Object { $_ -notmatch '[/\\]obj[/\\]' } |
|
||||
ForEach-Object { $_.FullName } |
|
||||
Out-File $PSScriptRoot/cs-files.txt
|
||||
|
||||
# Create .pot file
|
||||
xgettext -k_ -k_n:1,2 -k_p:1c,2 -k_pn:1c,2,3 --force-po --from-code=UTF-8 '--language=c#' -o $PSScriptRoot/source.pot --files-from=$PSScriptRoot/cs-files.txt --keyword=_
|
||||
if ($LastExitCode) { throw $LastExitCode }
|
||||
|
||||
# Backup .po files
|
||||
$BackupTargetFolder = $env:TEMP + '/mpv.net po backup ' + (Get-Date -Format 'yyyy-MM-dd HH_mm_ss')
|
||||
Copy-Item $PSScriptRoot/po $BackupTargetFolder -Force -Recurse
|
||||
'PO file backup: ' + (Resolve-Path $BackupTargetFolder)
|
||||
|
||||
# Update .po files
|
||||
(Get-ChildItem $PSScriptRoot/PO -Filter '*.po').FullName |
|
||||
ForEach-Object { msgmerge --sort-output --backup=none --update $_ $PSScriptRoot/source.pot }
|
||||
|
||||
if ($LastExitCode) { throw $LastExitCode }
|
||||
79
mpv.net.sln
@@ -1,79 +0,0 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 16
|
||||
VisualStudioVersion = 16.0.28729.10
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "mpv.net", "mpv.net\mpv.net.csproj", "{1751F378-8EDF-4B62-BE6D-304C7C287089}"
|
||||
EndProject
|
||||
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "CSScriptAddon", "addons\CSScriptAddon\CSScriptAddon.vbproj", "{71808A87-8B1C-4DF8-957C-D79C3B164CCA}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RatingAddon", "addons\RatingAddon\RatingAddon.csproj", "{55C88710-539D-4402-84C8-31694841C731}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestAddon", "addons\TestAddon\TestAddon.csproj", "{06F854B0-00F9-4B53-94D9-0BE65A7C55D8}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Debug|x64 = Debug|x64
|
||||
Debug|x86 = Debug|x86
|
||||
Release|Any CPU = Release|Any CPU
|
||||
Release|x64 = Release|x64
|
||||
Release|x86 = Release|x86
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{1751F378-8EDF-4B62-BE6D-304C7C287089}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{1751F378-8EDF-4B62-BE6D-304C7C287089}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{1751F378-8EDF-4B62-BE6D-304C7C287089}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{1751F378-8EDF-4B62-BE6D-304C7C287089}.Debug|x64.Build.0 = Debug|x64
|
||||
{1751F378-8EDF-4B62-BE6D-304C7C287089}.Debug|x86.ActiveCfg = Debug|x86
|
||||
{1751F378-8EDF-4B62-BE6D-304C7C287089}.Debug|x86.Build.0 = Debug|x86
|
||||
{1751F378-8EDF-4B62-BE6D-304C7C287089}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{1751F378-8EDF-4B62-BE6D-304C7C287089}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{1751F378-8EDF-4B62-BE6D-304C7C287089}.Release|x64.ActiveCfg = Release|x64
|
||||
{1751F378-8EDF-4B62-BE6D-304C7C287089}.Release|x64.Build.0 = Release|x64
|
||||
{1751F378-8EDF-4B62-BE6D-304C7C287089}.Release|x86.ActiveCfg = Release|x86
|
||||
{1751F378-8EDF-4B62-BE6D-304C7C287089}.Release|x86.Build.0 = Release|x86
|
||||
{71808A87-8B1C-4DF8-957C-D79C3B164CCA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{71808A87-8B1C-4DF8-957C-D79C3B164CCA}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{71808A87-8B1C-4DF8-957C-D79C3B164CCA}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{71808A87-8B1C-4DF8-957C-D79C3B164CCA}.Debug|x64.Build.0 = Debug|x64
|
||||
{71808A87-8B1C-4DF8-957C-D79C3B164CCA}.Debug|x86.ActiveCfg = Debug|x86
|
||||
{71808A87-8B1C-4DF8-957C-D79C3B164CCA}.Debug|x86.Build.0 = Debug|x86
|
||||
{71808A87-8B1C-4DF8-957C-D79C3B164CCA}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{71808A87-8B1C-4DF8-957C-D79C3B164CCA}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{71808A87-8B1C-4DF8-957C-D79C3B164CCA}.Release|x64.ActiveCfg = Release|x64
|
||||
{71808A87-8B1C-4DF8-957C-D79C3B164CCA}.Release|x64.Build.0 = Release|x64
|
||||
{71808A87-8B1C-4DF8-957C-D79C3B164CCA}.Release|x86.ActiveCfg = Release|x86
|
||||
{71808A87-8B1C-4DF8-957C-D79C3B164CCA}.Release|x86.Build.0 = Release|x86
|
||||
{55C88710-539D-4402-84C8-31694841C731}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{55C88710-539D-4402-84C8-31694841C731}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{55C88710-539D-4402-84C8-31694841C731}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{55C88710-539D-4402-84C8-31694841C731}.Debug|x64.Build.0 = Debug|x64
|
||||
{55C88710-539D-4402-84C8-31694841C731}.Debug|x86.ActiveCfg = Debug|x86
|
||||
{55C88710-539D-4402-84C8-31694841C731}.Debug|x86.Build.0 = Debug|x86
|
||||
{55C88710-539D-4402-84C8-31694841C731}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{55C88710-539D-4402-84C8-31694841C731}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{55C88710-539D-4402-84C8-31694841C731}.Release|x64.ActiveCfg = Release|x64
|
||||
{55C88710-539D-4402-84C8-31694841C731}.Release|x64.Build.0 = Release|x64
|
||||
{55C88710-539D-4402-84C8-31694841C731}.Release|x86.ActiveCfg = Release|x86
|
||||
{55C88710-539D-4402-84C8-31694841C731}.Release|x86.Build.0 = Release|x86
|
||||
{06F854B0-00F9-4B53-94D9-0BE65A7C55D8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{06F854B0-00F9-4B53-94D9-0BE65A7C55D8}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{06F854B0-00F9-4B53-94D9-0BE65A7C55D8}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{06F854B0-00F9-4B53-94D9-0BE65A7C55D8}.Debug|x64.Build.0 = Debug|x64
|
||||
{06F854B0-00F9-4B53-94D9-0BE65A7C55D8}.Debug|x86.ActiveCfg = Debug|x86
|
||||
{06F854B0-00F9-4B53-94D9-0BE65A7C55D8}.Debug|x86.Build.0 = Debug|x86
|
||||
{06F854B0-00F9-4B53-94D9-0BE65A7C55D8}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{06F854B0-00F9-4B53-94D9-0BE65A7C55D8}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{06F854B0-00F9-4B53-94D9-0BE65A7C55D8}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{06F854B0-00F9-4B53-94D9-0BE65A7C55D8}.Release|x64.Build.0 = Release|Any CPU
|
||||
{06F854B0-00F9-4B53-94D9-0BE65A7C55D8}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{06F854B0-00F9-4B53-94D9-0BE65A7C55D8}.Release|x86.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {8DE9E796-619E-44B8-9576-F4DE028701BF}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
@@ -1,8 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<configSections>
|
||||
</configSections>
|
||||
<startup>
|
||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2"/>
|
||||
</startup>
|
||||
</configuration>
|
||||
@@ -1,13 +0,0 @@
|
||||
<UserControl x:Class="Controls.SearchTextBoxUserControl"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
mc:Ignorable="d"
|
||||
d:DesignHeight="450" d:DesignWidth="800">
|
||||
<Grid x:Name="SearchTextBoxUserControl1" Background="{Binding Path=Background, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Window}}">
|
||||
<TextBlock x:Name="HintTextBlock" Margin="5,2" Text="Find a setting" Foreground="LightSteelBlue" VerticalAlignment="Center" Background="{Binding Path=Background, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Window}}" />
|
||||
<TextBox Name="SearchTextBox" Height="25" Padding="1,2,0,0" BorderThickness="2" Background="Transparent" TextChanged="SearchTextBox_TextChanged" Foreground="{Binding Path=Foreground, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Window}}" CaretBrush="{Binding Path=Foreground, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Window}}" />
|
||||
<Button x:Name="SearchClearButton" Background="Transparent" HorizontalAlignment="Right" Margin="2,0,4,0" FontSize="10" Width="17" Height="17" Visibility="Hidden" Click="SearchClearButton_Click" FontFamily="Marlett" Foreground="{Binding Path=Foreground2, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Window}}">r</Button>
|
||||
</Grid>
|
||||
</UserControl>
|
||||
@@ -1,47 +0,0 @@
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Input;
|
||||
|
||||
namespace Controls
|
||||
{
|
||||
public partial class SearchTextBoxUserControl : UserControl
|
||||
{
|
||||
public SearchTextBoxUserControl()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
public string Text { get => SearchTextBox.Text; set => SearchTextBox.Text = value; }
|
||||
|
||||
private string _HintText;
|
||||
|
||||
public string HintText {
|
||||
get => _HintText;
|
||||
set {
|
||||
_HintText = value;
|
||||
UpdateControls();
|
||||
}
|
||||
}
|
||||
|
||||
private void SearchClearButton_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
SearchTextBox.Text = "";
|
||||
Keyboard.Focus(SearchTextBox);
|
||||
}
|
||||
|
||||
private void SearchTextBox_TextChanged(object sender, TextChangedEventArgs e)
|
||||
{
|
||||
UpdateControls();
|
||||
}
|
||||
|
||||
void UpdateControls()
|
||||
{
|
||||
HintTextBlock.Text = SearchTextBox.Text == "" ? HintText : "";
|
||||
|
||||
if (SearchTextBox.Text == "")
|
||||
SearchClearButton.Visibility = Visibility.Hidden;
|
||||
else
|
||||
SearchClearButton.Visibility = Visibility.Visible;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,140 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Windows;
|
||||
using System.Windows.Documents;
|
||||
using System.Windows.Navigation;
|
||||
|
||||
using Tommy;
|
||||
|
||||
namespace DynamicGUI
|
||||
{
|
||||
public class Settings
|
||||
{
|
||||
public static List<SettingBase> LoadSettings(string content)
|
||||
{
|
||||
TomlTable table;
|
||||
using (StringReader reader = new StringReader(content))
|
||||
table = TOML.Parse(reader);
|
||||
List<SettingBase> settingsList = new List<SettingBase>();
|
||||
|
||||
foreach (TomlTable setting in table["settings"])
|
||||
{
|
||||
SettingBase baseSetting = null;
|
||||
|
||||
if (setting.HasKey("options"))
|
||||
{
|
||||
OptionSetting optionSetting = new OptionSetting();
|
||||
baseSetting = optionSetting;
|
||||
optionSetting.Default = setting["default"];
|
||||
optionSetting.Value = optionSetting.Default;
|
||||
optionSetting.StartValue = optionSetting.Default;
|
||||
|
||||
foreach (TomlTable option in setting["options"])
|
||||
{
|
||||
var opt = new OptionSettingOption();
|
||||
opt.Name = option["name"];
|
||||
if (option.HasKey("help"))
|
||||
opt.Help = option["help"];
|
||||
if (option.HasKey("text"))
|
||||
opt.Text = option["text"];
|
||||
else if (opt.Name == optionSetting.Default)
|
||||
opt.Text = opt.Name + " (Default)";
|
||||
opt.OptionSetting = optionSetting;
|
||||
optionSetting.Options.Add(opt);
|
||||
}
|
||||
}
|
||||
else if (setting["default"].IsString)
|
||||
{
|
||||
StringSetting stringSetting = new StringSetting();
|
||||
baseSetting = stringSetting;
|
||||
stringSetting.Default = setting["default"];
|
||||
}
|
||||
|
||||
baseSetting.Name = setting["name"];
|
||||
baseSetting.Filter = setting["filter"];
|
||||
|
||||
if (setting.HasKey("help")) baseSetting.Help = setting["help"];
|
||||
if (setting.HasKey("helpurl")) baseSetting.HelpURL = setting["helpurl"];
|
||||
if (setting.HasKey("width")) baseSetting.Width = setting["width"];
|
||||
if (setting.HasKey("type")) baseSetting.Type = setting["type"];
|
||||
|
||||
settingsList.Add(baseSetting);
|
||||
}
|
||||
return settingsList;
|
||||
}
|
||||
}
|
||||
|
||||
public abstract class SettingBase
|
||||
{
|
||||
public string Name { get; set; }
|
||||
public string Value { get; set; }
|
||||
public string StartValue { get; set; }
|
||||
public string Help { get; set; }
|
||||
public string Default { get; set; }
|
||||
public string HelpURL { get; set; }
|
||||
public string Filter { get; set; }
|
||||
public string Type { get; set; }
|
||||
public int Width { get; set; }
|
||||
}
|
||||
|
||||
public class StringSetting : SettingBase
|
||||
{
|
||||
}
|
||||
|
||||
public class OptionSetting : SettingBase
|
||||
{
|
||||
public List<OptionSettingOption> Options = new List<OptionSettingOption>();
|
||||
}
|
||||
|
||||
public class OptionSettingOption
|
||||
{
|
||||
public string Name { get; set; }
|
||||
public string Help { get; set; }
|
||||
|
||||
public OptionSetting OptionSetting { get; set; }
|
||||
|
||||
private string _Text;
|
||||
|
||||
public string Text
|
||||
{
|
||||
get => string.IsNullOrEmpty(_Text) ? Name : _Text;
|
||||
set => _Text = value;
|
||||
}
|
||||
|
||||
public bool Checked
|
||||
{
|
||||
get => OptionSetting.Value == Name ;
|
||||
set { if (value) OptionSetting.Value = Name; }
|
||||
}
|
||||
|
||||
public Visibility Visibility
|
||||
{
|
||||
get => string.IsNullOrEmpty(Help) ? Visibility.Collapsed : Visibility.Visible;
|
||||
}
|
||||
}
|
||||
|
||||
interface ISettingControl
|
||||
{
|
||||
bool Contains(string searchString);
|
||||
SettingBase SettingBase { get; }
|
||||
}
|
||||
|
||||
public class HyperlinkEx : Hyperlink
|
||||
{
|
||||
private void HyperLinkEx_RequestNavigate(object sender, RequestNavigateEventArgs e)
|
||||
{
|
||||
Process.Start(e.Uri.AbsoluteUri);
|
||||
}
|
||||
|
||||
public void SetURL(string url)
|
||||
{
|
||||
if (string.IsNullOrEmpty(url)) return;
|
||||
NavigateUri = new Uri(url);
|
||||
RequestNavigate += HyperLinkEx_RequestNavigate;
|
||||
Inlines.Clear();
|
||||
Inlines.Add(url);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,28 +0,0 @@
|
||||
<UserControl x:Name="OptionSettingControl1" x:Class="DynamicGUI.OptionSettingControl"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:local="clr-namespace:DynamicGUI"
|
||||
mc:Ignorable="d"
|
||||
d:DesignHeight="450" d:DesignWidth="800">
|
||||
<Grid Margin="20,0">
|
||||
<StackPanel>
|
||||
<TextBox x:Name="TitleTextBox" FontSize="24" Margin="0,10" BorderThickness="0" IsReadOnly="True" Foreground="{Binding Path=Foreground, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Window}}" Background="{Binding Path=Background, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Window}}"></TextBox>
|
||||
<ItemsControl x:Name="ItemsControl">
|
||||
<ItemsControl.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<WrapPanel Orientation="Vertical">
|
||||
<RadioButton x:Name="RadioButton" VerticalContentAlignment="Center" IsChecked="{Binding Checked}" GroupName="{Binding OptionSetting.Name}" Content="{Binding Text}" FontSize="16" FontWeight="Normal" VerticalAlignment="Top" Foreground="{Binding Path=Foreground, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Window}}"></RadioButton>
|
||||
<TextBox x:Name="ItemHelpTextBox" TextWrapping="WrapWithOverflow" Text="{Binding Help}" Visibility="{Binding Visibility}" Margin="10,0,0,0" BorderThickness="0" IsReadOnly="True" Padding="7,0,0,0" MinHeight="0" Foreground="{Binding Path=Foreground2, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Window}}" Background="{Binding Path=Background, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Window}}"></TextBox>
|
||||
</WrapPanel>
|
||||
</DataTemplate>
|
||||
</ItemsControl.ItemTemplate>
|
||||
</ItemsControl>
|
||||
<TextBox x:Name="HelpTextBox" TextWrapping="WrapWithOverflow" BorderThickness="0" IsReadOnly="True" Margin="0,10,0,0" Foreground="{Binding Path=Foreground, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=UserControl}}" Background="{Binding Path=Background, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=UserControl}}"></TextBox>
|
||||
<TextBlock x:Name="LinkTextBlock" Margin="0,10">
|
||||
<local:HyperlinkEx x:Name="Link"></local:HyperlinkEx>
|
||||
</TextBlock>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</UserControl>
|
||||
@@ -1,42 +0,0 @@
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
|
||||
namespace DynamicGUI
|
||||
{
|
||||
public partial class OptionSettingControl : UserControl, ISettingControl
|
||||
{
|
||||
private OptionSetting OptionSetting;
|
||||
|
||||
public OptionSettingControl(OptionSetting optionSetting)
|
||||
{
|
||||
OptionSetting = optionSetting;
|
||||
InitializeComponent();
|
||||
TitleTextBox.Text = optionSetting.Name;
|
||||
if (string.IsNullOrEmpty(optionSetting.Help))
|
||||
HelpTextBox.Visibility = Visibility.Collapsed;
|
||||
HelpTextBox.Text = optionSetting.Help;
|
||||
ItemsControl.ItemsSource = optionSetting.Options;
|
||||
if (string.IsNullOrEmpty(optionSetting.HelpURL))
|
||||
LinkTextBlock.Visibility = Visibility.Collapsed;
|
||||
Link.SetURL(optionSetting.HelpURL);
|
||||
}
|
||||
|
||||
private string _SearchableText;
|
||||
|
||||
public string SearchableText {
|
||||
get {
|
||||
if (_SearchableText is null)
|
||||
{
|
||||
_SearchableText = TitleTextBox.Text + HelpTextBox.Text;
|
||||
foreach (var i in OptionSetting.Options)
|
||||
_SearchableText += i.Text + i.Help + i.Name;
|
||||
_SearchableText = _SearchableText.ToLower();
|
||||
}
|
||||
return _SearchableText;
|
||||
}
|
||||
}
|
||||
|
||||
public SettingBase SettingBase => OptionSetting;
|
||||
public bool Contains(string searchString) => SearchableText.Contains(searchString.ToLower());
|
||||
}
|
||||
}
|
||||
@@ -1,27 +0,0 @@
|
||||
<UserControl x:Name="StringSettingControl1" x:Class="DynamicGUI.StringSettingControl"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:local="clr-namespace:DynamicGUI"
|
||||
mc:Ignorable="d"
|
||||
d:DesignHeight="450"
|
||||
d:DesignWidth="800">
|
||||
<Grid Margin="20,0">
|
||||
<StackPanel>
|
||||
<TextBox x:Name="TitleTextBox" FontSize="24" Margin="0,10" BorderThickness="0" IsReadOnly="True" Foreground="{Binding Path=Foreground, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Window}}" Background="{Binding Path=Background, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Window}}"></TextBox>
|
||||
<Grid Margin="0,0,0,10">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBox x:Name="ValueTextBox" Text="{Binding Path=Text, ElementName=StringSettingControl1, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Width="150" HorizontalAlignment="Left" Height="20" Foreground="{Binding Path=Foreground, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Window}}" Background="{Binding Path=Background, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Window}}" TextChanged="ValueTextBox_TextChanged"/>
|
||||
<Button x:Name="Button" Height="20" Grid.Column="1" Visibility="{Binding Path=Text, ElementName=StringSettingControl1}" Margin="5,0,0,0" Width="20" Click="Button_Click">...</Button>
|
||||
</Grid>
|
||||
<TextBox x:Name="HelpTextBox" TextWrapping="WrapWithOverflow" BorderThickness="0" IsReadOnly="True" Foreground="{Binding Path=Foreground, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Window}}" Background="{Binding Path=Background, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Window}}"></TextBox>
|
||||
<TextBlock x:Name="LinkTextBlock" Margin="0,10">
|
||||
<local:HyperlinkEx x:Name="Link"></local:HyperlinkEx>
|
||||
</TextBlock>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</UserControl>
|
||||
@@ -1,103 +0,0 @@
|
||||
using System;
|
||||
using System.Globalization;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Media;
|
||||
using WinForms = System.Windows.Forms;
|
||||
|
||||
namespace DynamicGUI
|
||||
{
|
||||
public partial class StringSettingControl : UserControl, ISettingControl
|
||||
{
|
||||
private StringSetting StringSetting;
|
||||
|
||||
public StringSettingControl(StringSetting stringSetting)
|
||||
{
|
||||
StringSetting = stringSetting;
|
||||
InitializeComponent();
|
||||
TitleTextBox.Text = stringSetting.Name;
|
||||
HelpTextBox.Text = stringSetting.Help;
|
||||
ValueTextBox.Text = StringSetting.Value;
|
||||
if (StringSetting.Width > 0)
|
||||
ValueTextBox.Width = StringSetting.Width;
|
||||
if (StringSetting.Type != "folder" && StringSetting.Type != "color")
|
||||
Button.Visibility = Visibility.Hidden;
|
||||
Link.SetURL(StringSetting.HelpURL);
|
||||
if (string.IsNullOrEmpty(stringSetting.HelpURL))
|
||||
LinkTextBlock.Visibility = Visibility.Collapsed;
|
||||
}
|
||||
|
||||
private string _SearchableText;
|
||||
|
||||
public string SearchableText {
|
||||
get {
|
||||
if (_SearchableText is null)
|
||||
_SearchableText = (TitleTextBox.Text + HelpTextBox.Text +ValueTextBox.Text).ToLower();
|
||||
return _SearchableText;
|
||||
}
|
||||
}
|
||||
|
||||
public bool Contains(string searchString) => SearchableText.Contains(searchString.ToLower());
|
||||
public SettingBase SettingBase => StringSetting;
|
||||
|
||||
public string Text
|
||||
{
|
||||
get => StringSetting.Value;
|
||||
set => StringSetting.Value = value;
|
||||
}
|
||||
|
||||
private void Button_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
switch (StringSetting.Type)
|
||||
{
|
||||
case "folder":
|
||||
using (var d = new WinForms.FolderBrowserDialog())
|
||||
{
|
||||
d.Description = "Choose a folder.";
|
||||
d.SelectedPath = ValueTextBox.Text;
|
||||
if (d.ShowDialog() == System.Windows.Forms.DialogResult.OK)
|
||||
ValueTextBox.Text = d.SelectedPath;
|
||||
}
|
||||
break;
|
||||
case "color":
|
||||
using (var d = new WinForms.ColorDialog())
|
||||
{
|
||||
d.FullOpen = true;
|
||||
try {
|
||||
d.Color = System.Drawing.ColorTranslator.FromHtml(ValueTextBox.Text);
|
||||
} catch { }
|
||||
if (d.ShowDialog() == WinForms.DialogResult.OK)
|
||||
ValueTextBox.Text = System.Drawing.ColorTranslator.ToHtml(d.Color);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void ValueTextBox_TextChanged(object sender, TextChangedEventArgs e) => Update();
|
||||
|
||||
public void Update()
|
||||
{
|
||||
if (StringSetting.Type == "color")
|
||||
{
|
||||
Color c = Colors.Transparent;
|
||||
if (ValueTextBox.Text != "")
|
||||
{
|
||||
try {
|
||||
if (ValueTextBox.Text.Contains("/"))
|
||||
{
|
||||
string[] a = ValueTextBox.Text.Split('/');
|
||||
if (a.Length == 3)
|
||||
c = Color.FromRgb(ToByte(a[0]), ToByte(a[1]), ToByte(a[2]));
|
||||
else if (a.Length == 4)
|
||||
c = Color.FromArgb(ToByte(a[3]), ToByte(a[0]), ToByte(a[1]), ToByte(a[2]));
|
||||
}
|
||||
else
|
||||
c = (Color)ColorConverter.ConvertFromString(ValueTextBox.Text);
|
||||
} catch {}
|
||||
}
|
||||
ValueTextBox.Background = new SolidColorBrush(c);
|
||||
}
|
||||
Byte ToByte(string val) => Convert.ToByte(Convert.ToSingle(val, CultureInfo.InvariantCulture) * 255);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,51 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.Composition;
|
||||
using System.ComponentModel.Composition.Hosting;
|
||||
using System.IO;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace mpvnet
|
||||
{
|
||||
public class Addon
|
||||
{
|
||||
[ImportMany]
|
||||
public IEnumerable<IAddon> Addons = null;
|
||||
|
||||
readonly CompositionContainer CompositionContainer;
|
||||
|
||||
public Addon()
|
||||
{
|
||||
try
|
||||
{
|
||||
AggregateCatalog catalog = new AggregateCatalog();
|
||||
|
||||
string dir = Application.StartupPath + "\\Addons";
|
||||
|
||||
if (Directory.Exists(dir))
|
||||
foreach (string i in Directory.GetDirectories(dir))
|
||||
catalog.Catalogs.Add(new DirectoryCatalog(i, "*Addon.dll"));
|
||||
|
||||
dir = mp.ConfFolder + "\\Addons";
|
||||
|
||||
if (Directory.Exists(dir))
|
||||
foreach (string i in Directory.GetDirectories(dir))
|
||||
catalog.Catalogs.Add(new DirectoryCatalog(i, "*Addon.dll"));
|
||||
|
||||
if (catalog.Catalogs.Count > 0)
|
||||
{
|
||||
CompositionContainer = new CompositionContainer(catalog);
|
||||
CompositionContainer.ComposeParts(this);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Msg.ShowException(ex);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public interface IAddon
|
||||
{
|
||||
}
|
||||
}
|
||||
@@ -1,288 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Windows.Forms;
|
||||
using System.Windows.Interop;
|
||||
|
||||
using VB = Microsoft.VisualBasic;
|
||||
|
||||
namespace mpvnet
|
||||
{
|
||||
public class Command
|
||||
{
|
||||
public string Name { get; set; }
|
||||
public Action<string[]> Action { get; set; }
|
||||
|
||||
static List<Command> commands;
|
||||
|
||||
public static List<Command> Commands
|
||||
{
|
||||
get
|
||||
{
|
||||
if (commands == null)
|
||||
{
|
||||
commands = new List<Command>();
|
||||
Type type = typeof(Command);
|
||||
MethodInfo[] methods = type.GetMethods(System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.Public);
|
||||
|
||||
foreach (MethodInfo i in methods)
|
||||
{
|
||||
ParameterInfo[] parameters = i.GetParameters();
|
||||
|
||||
if (parameters == null || parameters.Length != 1 || parameters[0].ParameterType != typeof(string[]))
|
||||
continue;
|
||||
|
||||
Command cmd = new Command() { Name = i.Name.Replace("_","-"), Action = (Action<string[]>)i.CreateDelegate(typeof(Action<string[]>)) };
|
||||
commands.Add(cmd);
|
||||
}
|
||||
}
|
||||
return commands;
|
||||
}
|
||||
}
|
||||
|
||||
public static void open_files(string[] args)
|
||||
{
|
||||
MainForm.Instance.Invoke(new Action(() => {
|
||||
using (var d = new OpenFileDialog() { Multiselect = true })
|
||||
if (d.ShowDialog() == DialogResult.OK)
|
||||
mp.Load(d.FileNames);
|
||||
}));
|
||||
}
|
||||
|
||||
public static void open_conf_folder(string[] args)
|
||||
{
|
||||
Process.Start(mp.ConfFolder);
|
||||
}
|
||||
|
||||
public static void show_input_editor(string[] args)
|
||||
{
|
||||
MainForm.Instance.Invoke(new Action(() => {
|
||||
InputWindow w = new InputWindow();
|
||||
new WindowInteropHelper(w).Owner = MainForm.Instance.Handle;
|
||||
w.ShowDialog();
|
||||
}));
|
||||
}
|
||||
|
||||
public static void show_conf_editor(string[] args)
|
||||
{
|
||||
MainForm.Instance.Invoke(new Action(() => {
|
||||
ConfWindow w = new ConfWindow();
|
||||
new WindowInteropHelper(w).Owner = MainForm.Instance.Handle;
|
||||
w.ShowDialog();
|
||||
}));
|
||||
}
|
||||
|
||||
public static void show_about(string[] args)
|
||||
{
|
||||
MainForm.Instance.Invoke(new Action(() => {
|
||||
AboutWindow w = new AboutWindow();
|
||||
new WindowInteropHelper(w).Owner = MainForm.Instance.Handle;
|
||||
w.ShowDialog();
|
||||
}));
|
||||
}
|
||||
|
||||
public static void show_command_palette(string[] args)
|
||||
{
|
||||
MainForm.Instance.Invoke(new Action(() => {
|
||||
var w = new CommandPaletteWindow();
|
||||
new WindowInteropHelper(w).Owner = MainForm.Instance.Handle;
|
||||
w.ShowDialog();
|
||||
}));
|
||||
}
|
||||
|
||||
public static void show_media_search(string[] args)
|
||||
{
|
||||
MainForm.Instance.Invoke(new Action(() => {
|
||||
var w = new EverythingWindow();
|
||||
new WindowInteropHelper(w).Owner = MainForm.Instance.Handle;
|
||||
w.ShowDialog();
|
||||
}));
|
||||
}
|
||||
|
||||
public static void show_history(string[] args)
|
||||
{
|
||||
var fp = mp.ConfFolder + "history.txt";
|
||||
|
||||
if (File.Exists(fp))
|
||||
Process.Start(fp);
|
||||
else
|
||||
if (Msg.ShowQuestion("Create history.txt file in config folder?",
|
||||
"mpv.net will write the date, time and filename of opened files to it.") == MsgResult.OK)
|
||||
File.WriteAllText(fp, "");
|
||||
}
|
||||
|
||||
public static void shell_execute(string[] args) => Process.Start(args[0]);
|
||||
|
||||
public static void show_info(string[] args)
|
||||
{
|
||||
try
|
||||
{
|
||||
string performer, title, album, genre, date, duration, text = "";
|
||||
long fileSize = 0;
|
||||
string path = mp.get_property_string("path");
|
||||
int width = mp.get_property_int("video-params/w");
|
||||
int height = mp.get_property_int("video-params/h");
|
||||
|
||||
if (File.Exists(path))
|
||||
{
|
||||
fileSize = new FileInfo(path).Length;
|
||||
|
||||
if (App.AudioTypes.Contains(Path.GetExtension(path).ToLower().TrimStart('.')))
|
||||
{
|
||||
using (MediaInfo mediaInfo = new MediaInfo(path))
|
||||
{
|
||||
performer = mediaInfo.GetInfo(MediaInfoStreamKind.General, "Performer");
|
||||
title = mediaInfo.GetInfo(MediaInfoStreamKind.General, "Title");
|
||||
album = mediaInfo.GetInfo(MediaInfoStreamKind.General, "Album");
|
||||
genre = mediaInfo.GetInfo(MediaInfoStreamKind.General, "Genre");
|
||||
date = mediaInfo.GetInfo(MediaInfoStreamKind.General, "Recorded_Date");
|
||||
duration = mediaInfo.GetInfo(MediaInfoStreamKind.Audio, "Duration/String");
|
||||
|
||||
if (performer != "") text += "Artist: " + performer + "\n";
|
||||
if (title != "") text += "Title: " + title + "\n";
|
||||
if (album != "") text += "Album: " + album + "\n";
|
||||
if (genre != "") text += "Genre: " + genre + "\n";
|
||||
if (date != "") text += "Year: " + date + "\n";
|
||||
if (duration != "") text += "Length: " + duration + "\n";
|
||||
|
||||
mp.commandv("show-text", text, "5000");
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
TimeSpan position = TimeSpan.FromSeconds(mp.get_property_number("time-pos"));
|
||||
TimeSpan duration2 = TimeSpan.FromSeconds(mp.get_property_number("duration"));
|
||||
string videoFormat = mp.get_property_string("video-format").ToUpper();
|
||||
string audioCodec = mp.get_property_string("audio-codec-name").ToUpper();
|
||||
|
||||
text = Path.GetFileName(path) + "\n" +
|
||||
FormatTime(position.TotalMinutes) + ":" +
|
||||
FormatTime(position.Seconds) + " / " +
|
||||
FormatTime(duration2.TotalMinutes) + ":" +
|
||||
FormatTime(duration2.Seconds) + "\n" +
|
||||
$"{width} x {height}\n";
|
||||
|
||||
if (fileSize > 0)
|
||||
text += Convert.ToInt32(fileSize / 1024.0 / 1024.0).ToString() + " MB\n";
|
||||
|
||||
text += $"{videoFormat}\n{audioCodec}";
|
||||
|
||||
mp.commandv("show-text", text, "5000");
|
||||
string FormatTime(double value) => ((int)value).ToString("00");
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Msg.ShowException(e);
|
||||
}
|
||||
}
|
||||
|
||||
public static void execute_mpv_command(string[] args)
|
||||
{
|
||||
MainForm.Instance.Invoke(new Action(() => {
|
||||
string command = VB.Interaction.InputBox("Enter a mpv command to be executed.", "Execute Command", RegistryHelp.GetString(App.RegPath, "RecentExecutedCommand"));
|
||||
if (string.IsNullOrEmpty(command)) return;
|
||||
RegistryHelp.SetObject(App.RegPath, "RecentExecutedCommand", command);
|
||||
mp.command_string(command, false);
|
||||
}));
|
||||
}
|
||||
|
||||
public static void open_url(string[] args)
|
||||
{
|
||||
MainForm.Instance.Invoke(new Action(() => {
|
||||
string command = VB.Interaction.InputBox("Enter URL to be opened.");
|
||||
if (string.IsNullOrEmpty(command)) return;
|
||||
mp.Load(command);
|
||||
}));
|
||||
}
|
||||
|
||||
public static void load_sub(string[] args)
|
||||
{
|
||||
MainForm.Instance.Invoke(new Action(() => {
|
||||
using (var d = new OpenFileDialog())
|
||||
{
|
||||
d.InitialDirectory = Path.GetDirectoryName(mp.get_property_string("path", false));
|
||||
d.Multiselect = true;
|
||||
if (d.ShowDialog() == DialogResult.OK)
|
||||
foreach (string i in d.FileNames)
|
||||
mp.commandv("sub-add", i);
|
||||
}
|
||||
}));
|
||||
}
|
||||
|
||||
public static void load_audio(string[] args)
|
||||
{
|
||||
MainForm.Instance.Invoke(new Action(() => {
|
||||
using (var d = new OpenFileDialog())
|
||||
{
|
||||
d.InitialDirectory = Path.GetDirectoryName(mp.get_property_string("path", false));
|
||||
d.Multiselect = true;
|
||||
|
||||
if (d.ShowDialog() == DialogResult.OK)
|
||||
foreach (string i in d.FileNames)
|
||||
mp.commandv("audio-add", i);
|
||||
}
|
||||
}));
|
||||
}
|
||||
|
||||
public static void add_files_to_playlist(string[] args)
|
||||
{
|
||||
MainForm.Instance.Invoke(new Action(() => {
|
||||
using (var d = new OpenFileDialog() { Multiselect = true })
|
||||
if (d.ShowDialog() == DialogResult.OK)
|
||||
foreach(string file in d.FileNames)
|
||||
mp.commandv("loadfile", file, "append");
|
||||
}));
|
||||
}
|
||||
|
||||
public static void cycle_audio(string[] args)
|
||||
{
|
||||
string filePath = mp.get_property_string("path", false);
|
||||
if (!File.Exists(filePath)) return;
|
||||
|
||||
using (MediaInfo mi = new MediaInfo(filePath))
|
||||
{
|
||||
MediaTrack[] audTracks = mp.MediaTracks.Where(track => track.Type == "a").ToArray();
|
||||
if (audTracks.Length < 2) return;
|
||||
int aid = mp.get_property_int("aid");
|
||||
aid += 1;
|
||||
if (aid > audTracks.Length) aid = 1;
|
||||
mp.commandv("set", "aid", aid.ToString());
|
||||
mp.commandv("show-text", audTracks[aid - 1].Text.Substring(3), "5000");
|
||||
}
|
||||
}
|
||||
|
||||
public static void manage_file_associations(string[] args)
|
||||
{
|
||||
using (var td = new TaskDialog<string>())
|
||||
{
|
||||
td.MainInstruction = "Choose an option.";
|
||||
td.MainIcon = MsgIcon.Shield;
|
||||
|
||||
td.AddCommandLink("Register video file extensions", "video");
|
||||
td.AddCommandLink("Register audio file extensions", "audio");
|
||||
td.AddCommandLink("Unregister file extensions", "unreg");
|
||||
|
||||
string result = td.Show();
|
||||
|
||||
if (!string.IsNullOrEmpty(result))
|
||||
{
|
||||
using (var proc = new Process())
|
||||
{
|
||||
proc.StartInfo.FileName = Application.ExecutablePath;
|
||||
proc.StartInfo.Arguments = "--reg-file-assoc " + result;
|
||||
proc.StartInfo.Verb = "runas";
|
||||
try {
|
||||
proc.Start();
|
||||
}
|
||||
catch (Exception)
|
||||
{ }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,380 +0,0 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Runtime.Serialization;
|
||||
using System.Windows.Forms;
|
||||
|
||||
using Microsoft.Win32;
|
||||
|
||||
namespace mpvnet
|
||||
{
|
||||
public class App
|
||||
{
|
||||
public static string ConfFilePath { get; } = mp.ConfFolder + "\\mpvnet.conf";
|
||||
public static string RegPath { get; } = "HKCU\\Software\\" + Application.ProductName;
|
||||
public static string ClipboardMonitoring { get; set; } = "yes";
|
||||
|
||||
public static string[] VideoTypes { get; } = "mkv mp4 mpg avi mov webm vob wmv flv avs 264 h264 asf webm mpeg mpv y4m avc hevc 265 h265 m2v m2ts vpy mts m4v".Split(' ');
|
||||
public static string[] AudioTypes { get; } = "mp3 mp2 ac3 ogg opus flac wav w64 m4a dts dtsma dtshr dtshd eac3 thd thd+ac3 mka aac mpa".Split(' ');
|
||||
public static string[] SubtitleTypes { get; } = "srt ass idx sup ttxt ssa smi".Split(' ');
|
||||
|
||||
public static string DarkMode { get; set; } = "always";
|
||||
public static string ProcessInstance { get; set; } = "single";
|
||||
|
||||
public static bool IsDarkMode {
|
||||
get => (DarkMode == "system" && Sys.IsDarkTheme) || DarkMode == "always";
|
||||
}
|
||||
|
||||
public static void Init()
|
||||
{
|
||||
foreach (var i in Conf)
|
||||
ProcessProperty(i.Key, i.Value);
|
||||
}
|
||||
|
||||
static Dictionary<string, string> _Conf;
|
||||
|
||||
public static Dictionary<string, string> Conf {
|
||||
get {
|
||||
if (_Conf == null)
|
||||
{
|
||||
_Conf = new Dictionary<string, string>();
|
||||
|
||||
if (File.Exists(ConfFilePath))
|
||||
foreach (string i in File.ReadAllLines(ConfFilePath))
|
||||
if (i.Contains("=") && !i.StartsWith("#"))
|
||||
_Conf[i.Substring(0, i.IndexOf("=")).Trim()] = i.Substring(i.IndexOf("=") + 1).Trim();
|
||||
}
|
||||
return _Conf;
|
||||
}
|
||||
}
|
||||
|
||||
public static void ProcessProperty(string name, string value)
|
||||
{
|
||||
switch (name)
|
||||
{
|
||||
case "clipboard-monitoring": ClipboardMonitoring = value; break;
|
||||
case "process-instance": ProcessInstance = value; break;
|
||||
case "dark-mode": DarkMode = value; break;
|
||||
}
|
||||
}
|
||||
|
||||
public static void ProcessCommandLineEarly()
|
||||
{
|
||||
var args = Environment.GetCommandLineArgs().Skip(1);
|
||||
|
||||
foreach (string i in args)
|
||||
{
|
||||
if (i.StartsWith("--"))
|
||||
{
|
||||
if (i.Contains("="))
|
||||
{
|
||||
string left = i.Substring(2, i.IndexOf("=") - 2);
|
||||
string right = i.Substring(left.Length + 3);
|
||||
mp.ProcessProperty(left, right);
|
||||
ProcessProperty(left, right);
|
||||
}
|
||||
else
|
||||
{
|
||||
string switchName = i.Substring(2);
|
||||
|
||||
switch (switchName)
|
||||
{
|
||||
case "fs":
|
||||
case "fullscreen":
|
||||
mp.Fullscreen = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class Sys
|
||||
{
|
||||
public static bool IsDarkTheme {
|
||||
get {
|
||||
object value = Registry.GetValue(@"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize", "AppsUseLightTheme", 1);
|
||||
if (value is null) value = 1;
|
||||
return (int)value == 0;
|
||||
}
|
||||
}
|
||||
|
||||
public static bool IsDirectoryWritable(string dirPath)
|
||||
{
|
||||
try
|
||||
{
|
||||
using (FileStream fs = File.Create(Path.Combine(dirPath,
|
||||
Path.GetRandomFileName()), 1, FileOptions.DeleteOnClose))
|
||||
{ }
|
||||
return true;
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public class StringLogicalComparer : IComparer, IComparer<string>
|
||||
{
|
||||
[DllImport("shlwapi.dll", CharSet = CharSet.Unicode)]
|
||||
public static extern int StrCmpLogical(string x, string y);
|
||||
|
||||
int IComparer_Compare(object x, object y) => StrCmpLogical(x.ToString(), y.ToString());
|
||||
int IComparer.Compare(object x, object y) => IComparer_Compare(x, y);
|
||||
int IComparerOfString_Compare(string x, string y) => StrCmpLogical(x, y);
|
||||
int IComparer<string>.Compare(string x, string y) => IComparerOfString_Compare(x, y);
|
||||
}
|
||||
|
||||
public class FileAssociation
|
||||
{
|
||||
static string ExePath = Application.ExecutablePath;
|
||||
static string ExeFilename = Path.GetFileName(Application.ExecutablePath);
|
||||
static string ExeFilenameNoExt = Path.GetFileNameWithoutExtension(Application.ExecutablePath);
|
||||
static string[] Types;
|
||||
|
||||
public static void Register(string[] types)
|
||||
{
|
||||
Types = types;
|
||||
|
||||
RegistryHelp.SetObject(@"HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\" + ExeFilename, null, ExePath);
|
||||
RegistryHelp.SetObject($"HKCR\\Applications\\{ExeFilename}", "FriendlyAppName", "mpv.net media player");
|
||||
RegistryHelp.SetObject($"HKCR\\Applications\\{ExeFilename}\\shell\\open\\command", null, $"\"{ExePath}\" \"%1\"");
|
||||
RegistryHelp.SetObject(@"HKLM\SOFTWARE\Clients\Media\mpv\Capabilities", "ApplicationDescription", "mpv.net media player");
|
||||
RegistryHelp.SetObject(@"HKLM\SOFTWARE\Clients\Media\mpv\Capabilities", "ApplicationName", "mpv.net");
|
||||
RegistryHelp.SetObject($"HKCR\\SystemFileAssociations\\video\\OpenWithList\\{ExeFilename}", null, "");
|
||||
RegistryHelp.SetObject($"HKCR\\SystemFileAssociations\\audio\\OpenWithList\\{ExeFilename}", null, "");
|
||||
|
||||
foreach (string ext in Types)
|
||||
{
|
||||
RegistryHelp.SetObject($"HKCR\\Applications\\{ExeFilename}\\SupportedTypes", "." + ext, "");
|
||||
RegistryHelp.SetObject($"HKCR\\" + "." + ext, null, ExeFilenameNoExt + "." + ext);
|
||||
RegistryHelp.SetObject($"HKCR\\" + "." + ext + "\\OpenWithProgIDs", ExeFilenameNoExt + "." + ext, "");
|
||||
if (App.VideoTypes.Contains(ext))
|
||||
RegistryHelp.SetObject($"HKCR\\" + "." + ext, "PerceivedType", "video");
|
||||
if (App.AudioTypes.Contains(ext))
|
||||
RegistryHelp.SetObject($"HKCR\\" + "." + ext, "PerceivedType", "audio");
|
||||
RegistryHelp.SetObject($"HKCR\\" + ExeFilenameNoExt + "." + ext + "\\shell\\open", null, "Play with " + Application.ProductName);
|
||||
RegistryHelp.SetObject($"HKCR\\" + ExeFilenameNoExt + "." + ext + "\\shell\\open\\command", null, $"\"{ExePath}\" \"%1\"");
|
||||
RegistryHelp.SetObject(@"HKLM\SOFTWARE\Clients\Media\mpv.net\Capabilities\FileAssociations", "." + ext, ExeFilenameNoExt + "." + ext);
|
||||
}
|
||||
}
|
||||
|
||||
public static void Unregister()
|
||||
{
|
||||
RegistryHelp.RemoveKey(@"HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\" + ExeFilename);
|
||||
RegistryHelp.RemoveKey($"HKCR\\Applications\\{ExeFilename}");
|
||||
RegistryHelp.RemoveKey(@"HKLM\SOFTWARE\Clients\Media\mpv.net");
|
||||
RegistryHelp.RemoveKey($"HKCR\\SystemFileAssociations\\video\\OpenWithList\\{ExeFilename}");
|
||||
RegistryHelp.RemoveKey($"HKCR\\SystemFileAssociations\\audio\\OpenWithList\\{ExeFilename}");
|
||||
|
||||
foreach (string id in Registry.ClassesRoot.GetSubKeyNames())
|
||||
{
|
||||
if (id.StartsWith(ExeFilenameNoExt + "."))
|
||||
Registry.ClassesRoot.DeleteSubKeyTree(id);
|
||||
|
||||
RegistryHelp.RemoveValue($"HKCR\\Software\\Classes\\" + id + "\\OpenWithProgIDs", ExeFilenameNoExt + id);
|
||||
RegistryHelp.RemoveValue($"HKLM\\Software\\Classes\\" + id + "\\OpenWithProgIDs", ExeFilenameNoExt + id);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class RegistryHelp
|
||||
{
|
||||
public static void SetObject(string path, string name, object value)
|
||||
{
|
||||
using (RegistryKey rk = GetRootKey(path).CreateSubKey(path.Substring(5), RegistryKeyPermissionCheck.ReadWriteSubTree))
|
||||
rk.SetValue(name, value);
|
||||
}
|
||||
|
||||
public static string GetString(string path, string name)
|
||||
{
|
||||
object val = GetObject(path, name);
|
||||
if (val == null || !(val is string)) return "";
|
||||
return val.ToString();
|
||||
}
|
||||
|
||||
public static object GetObject(string path, string name)
|
||||
{
|
||||
using (RegistryKey rk = GetRootKey(path).OpenSubKey(path.Substring(5)))
|
||||
if (rk != null)
|
||||
return rk.GetValue(name, "");
|
||||
else
|
||||
return null;
|
||||
}
|
||||
|
||||
public static void RemoveKey(string path)
|
||||
{
|
||||
try {
|
||||
GetRootKey(path).DeleteSubKeyTree(path.Substring(5), false);
|
||||
} catch { }
|
||||
}
|
||||
|
||||
public static void RemoveValue(string path, string name)
|
||||
{
|
||||
try {
|
||||
using (RegistryKey rk = GetRootKey(path).OpenSubKey(path.Substring(5), true))
|
||||
if (!(rk is null))
|
||||
rk.DeleteValue(name, false);
|
||||
} catch {}
|
||||
}
|
||||
|
||||
static RegistryKey GetRootKey(string path)
|
||||
{
|
||||
switch (path.Substring(0, 4))
|
||||
{
|
||||
case "HKLM": return Registry.LocalMachine;
|
||||
case "HKCU": return Registry.CurrentUser;
|
||||
case "HKCR": return Registry.ClassesRoot;
|
||||
default: throw new Exception();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class MediaTrack
|
||||
{
|
||||
public string Text { get; set; }
|
||||
public string Type { get; set; }
|
||||
public int ID { get; set; }
|
||||
}
|
||||
|
||||
public class CommandItem : INotifyPropertyChanged
|
||||
{
|
||||
public event PropertyChangedEventHandler PropertyChanged;
|
||||
|
||||
public string Path { get; set; } = "";
|
||||
public string Command { get; set; } = "";
|
||||
|
||||
public CommandItem() { }
|
||||
|
||||
public CommandItem(SerializationInfo info, StreamingContext context) { }
|
||||
|
||||
private void NotifyPropertyChanged([CallerMemberName] string propertyName = "")
|
||||
{
|
||||
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
|
||||
}
|
||||
|
||||
private string _Input = "";
|
||||
|
||||
public string Input {
|
||||
get => _Input;
|
||||
set {
|
||||
_Input = value;
|
||||
NotifyPropertyChanged();
|
||||
}
|
||||
}
|
||||
|
||||
public static ObservableCollection<CommandItem> GetItems(string content)
|
||||
{
|
||||
var items = new ObservableCollection<CommandItem>();
|
||||
|
||||
if (!string.IsNullOrEmpty(content))
|
||||
{
|
||||
foreach (string line in content.Split('\r', '\n'))
|
||||
{
|
||||
string val = line.Trim();
|
||||
if (val.StartsWith("#")) continue;
|
||||
if (!val.Contains(" ")) continue;
|
||||
CommandItem item = new CommandItem();
|
||||
item.Input = val.Substring(0, val.IndexOf(" "));
|
||||
if (item.Input == "_") item.Input = "";
|
||||
val = val.Substring(val.IndexOf(" ") + 1);
|
||||
|
||||
if (val.Contains("#menu:"))
|
||||
{
|
||||
item.Path = val.Substring(val.IndexOf("#menu:") + 6).Trim();
|
||||
val = val.Substring(0, val.IndexOf("#menu:"));
|
||||
if (item.Path.Contains(";"))
|
||||
item.Path = item.Path.Substring(item.Path.IndexOf(";") + 1).Trim();
|
||||
}
|
||||
|
||||
item.Command = val.Trim();
|
||||
if (item.Command == "")
|
||||
continue;
|
||||
if (item.Command.ToLower() == "ignore")
|
||||
item.Command = "";
|
||||
MigrateCommands(item);
|
||||
items.Add(item);
|
||||
}
|
||||
}
|
||||
return items;
|
||||
}
|
||||
|
||||
private static ObservableCollection<CommandItem> _Items;
|
||||
|
||||
public static ObservableCollection<CommandItem> Items {
|
||||
get {
|
||||
if (_Items is null)
|
||||
_Items = GetItems(File.ReadAllText(mp.InputConfPath));
|
||||
return _Items;
|
||||
}
|
||||
}
|
||||
|
||||
public static void MigrateCommands(CommandItem item)
|
||||
{
|
||||
switch (item.Command)
|
||||
{
|
||||
case "script-message mpv.net show-prefs":
|
||||
item.Command = "script-message mpv.net show-conf-editor";
|
||||
break;
|
||||
case "script-message mpv.net show-keys":
|
||||
item.Command = "script-message mpv.net show-input-editor";
|
||||
break;
|
||||
case "script-message mpv.net history":
|
||||
item.Command = "script-message mpv.net show-history";
|
||||
break;
|
||||
case "script-message mpv.net open-config-folder":
|
||||
item.Command = "script-message open-conf-folder";
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class CursorHelp
|
||||
{
|
||||
static bool IsVisible = true;
|
||||
|
||||
public static void Show()
|
||||
{
|
||||
if (!IsVisible)
|
||||
{
|
||||
Cursor.Show();
|
||||
IsVisible = true;
|
||||
}
|
||||
}
|
||||
|
||||
public static void Hide()
|
||||
{
|
||||
if (IsVisible)
|
||||
{
|
||||
Cursor.Hide();
|
||||
IsVisible = false;
|
||||
}
|
||||
}
|
||||
|
||||
public static bool IsPosDifferent(Point screenPos)
|
||||
{
|
||||
return
|
||||
Math.Abs(screenPos.X - Control.MousePosition.X) > 10 ||
|
||||
Math.Abs(screenPos.Y - Control.MousePosition.Y) > 10;
|
||||
}
|
||||
}
|
||||
|
||||
public class SingleProcess
|
||||
{
|
||||
public static int Message { get; } = RegisterWindowMessage("mpvnet_IPC");
|
||||
|
||||
[DllImport("user32.dll", CharSet = CharSet.Unicode)]
|
||||
static extern int RegisterWindowMessage(string id);
|
||||
|
||||
[DllImport("user32.dll")]
|
||||
public static extern bool AllowSetForegroundWindow(int dwProcessId);
|
||||
}
|
||||
}
|
||||
@@ -1,66 +0,0 @@
|
||||
using System;
|
||||
using System.Windows.Forms;
|
||||
using System.Linq;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Threading;
|
||||
using System.Diagnostics;
|
||||
|
||||
namespace mpvnet
|
||||
{
|
||||
static class Program
|
||||
{
|
||||
[STAThread]
|
||||
static void Main()
|
||||
{
|
||||
try
|
||||
{
|
||||
string[] args = Environment.GetCommandLineArgs().Skip(1).ToArray();
|
||||
|
||||
if (args.Length == 2 && args[0] == "--reg-file-assoc")
|
||||
{
|
||||
if (args[1] == "audio") FileAssociation.Register(App.AudioTypes);
|
||||
if (args[1] == "video") FileAssociation.Register(App.VideoTypes);
|
||||
if (args[1] == "unreg") FileAssociation.Unregister();
|
||||
return;
|
||||
}
|
||||
|
||||
Mutex mutex = new Mutex(true, "mpvnetProcessInstance", out bool isFirst);
|
||||
App.Init();
|
||||
|
||||
if ((App.ProcessInstance == "single" || App.ProcessInstance == "queue") && !isFirst)
|
||||
{
|
||||
List<string> files = new List<string>();
|
||||
|
||||
foreach (string arg in args)
|
||||
if (!arg.StartsWith("--") && (File.Exists(arg) || arg == "-" || arg.StartsWith("http")))
|
||||
files.Add(arg);
|
||||
|
||||
if (files.Count > 0)
|
||||
RegistryHelp.SetObject(App.RegPath, "ShellFiles", files.ToArray());
|
||||
|
||||
RegistryHelp.SetObject(App.RegPath, "ProcessInstanceMode", App.ProcessInstance);
|
||||
|
||||
foreach(Process process in Process.GetProcessesByName("mpvnet"))
|
||||
{
|
||||
try {
|
||||
SingleProcess.AllowSetForegroundWindow(process.Id);
|
||||
Native.SendMessage(process.MainWindowHandle, SingleProcess.Message, IntPtr.Zero, IntPtr.Zero);
|
||||
} catch {}
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
Application.EnableVisualStyles();
|
||||
Application.SetCompatibleTextRenderingDefault(false);
|
||||
Application.Run(new MainForm());
|
||||
mutex.Dispose();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Msg.ShowException(ex);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,110 +0,0 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
public class MediaInfo : IDisposable
|
||||
{
|
||||
IntPtr Handle;
|
||||
static bool Loaded;
|
||||
|
||||
public MediaInfo(string sourcepath)
|
||||
{
|
||||
if (!Loaded)
|
||||
{
|
||||
if (LoadLibrary("MediaInfo.dll") == IntPtr.Zero)
|
||||
throw new Exception("Failed to load MediaInfo.dll.");
|
||||
|
||||
Loaded = true;
|
||||
}
|
||||
|
||||
Handle = MediaInfo_New();
|
||||
MediaInfo_Open(Handle, sourcepath);
|
||||
}
|
||||
|
||||
public string GetInfo(MediaInfoStreamKind streamKind, string parameter)
|
||||
{
|
||||
return Marshal.PtrToStringUni(MediaInfo_Get(Handle, streamKind, 0, parameter, MediaInfoInfoKind.Text, MediaInfoInfoKind.Name));
|
||||
}
|
||||
|
||||
public int GetCount(MediaInfoStreamKind streamKind) => MediaInfo_Count_Get(Handle, streamKind, -1);
|
||||
|
||||
public string GetVideo(int streamNumber, string parameter)
|
||||
{
|
||||
return Marshal.PtrToStringUni(MediaInfo_Get(Handle, MediaInfoStreamKind.Video, streamNumber, parameter, MediaInfoInfoKind.Text, MediaInfoInfoKind.Name));
|
||||
}
|
||||
|
||||
public string GetAudio(int streamNumber, string parameter)
|
||||
{
|
||||
return Marshal.PtrToStringUni(MediaInfo_Get(Handle, MediaInfoStreamKind.Audio, streamNumber, parameter, MediaInfoInfoKind.Text, MediaInfoInfoKind.Name));
|
||||
}
|
||||
|
||||
public string GetText(int streamNumber, string parameter)
|
||||
{
|
||||
return Marshal.PtrToStringUni(MediaInfo_Get(Handle, MediaInfoStreamKind.Text, streamNumber, parameter, MediaInfoInfoKind.Text, MediaInfoInfoKind.Name));
|
||||
}
|
||||
|
||||
bool Disposed;
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
if (!Disposed)
|
||||
{
|
||||
Disposed = true;
|
||||
MediaInfo_Close(Handle);
|
||||
MediaInfo_Delete(Handle);
|
||||
}
|
||||
}
|
||||
|
||||
~MediaInfo() { Dispose(); }
|
||||
|
||||
[DllImport("kernel32.dll", CharSet = CharSet.Unicode)]
|
||||
static extern IntPtr LoadLibrary(string path);
|
||||
|
||||
[DllImport("MediaInfo.dll")]
|
||||
static extern IntPtr MediaInfo_New();
|
||||
|
||||
[DllImport("MediaInfo.dll")]
|
||||
static extern void MediaInfo_Delete(IntPtr handle);
|
||||
|
||||
[DllImport("MediaInfo.dll", CharSet = CharSet.Unicode)]
|
||||
static extern int MediaInfo_Open(IntPtr handle, string fileName);
|
||||
|
||||
[DllImport("MediaInfo.dll")]
|
||||
static extern int MediaInfo_Close(IntPtr handle);
|
||||
|
||||
[DllImport("MediaInfo.dll", CharSet = CharSet.Unicode)]
|
||||
static extern IntPtr MediaInfo_Get(IntPtr handle,
|
||||
MediaInfoStreamKind streamKind,
|
||||
int streamNumber,
|
||||
string parameter,
|
||||
MediaInfoInfoKind kindOfInfo,
|
||||
MediaInfoInfoKind kindOfSearch);
|
||||
|
||||
[DllImport("MediaInfo.dll", CharSet = CharSet.Unicode)]
|
||||
static extern int MediaInfo_Count_Get(IntPtr handle,
|
||||
MediaInfoStreamKind streamKind,
|
||||
int streamNumber);
|
||||
}
|
||||
|
||||
public enum MediaInfoStreamKind
|
||||
{
|
||||
General,
|
||||
Video,
|
||||
Audio,
|
||||
Text,
|
||||
Other,
|
||||
Image,
|
||||
Menu,
|
||||
Max,
|
||||
}
|
||||
|
||||
public enum MediaInfoInfoKind
|
||||
{
|
||||
Name,
|
||||
Text,
|
||||
Measure,
|
||||
Options,
|
||||
NameText,
|
||||
MeasureText,
|
||||
Info,
|
||||
HowTo
|
||||
}
|
||||
@@ -1,77 +0,0 @@
|
||||
using System;
|
||||
using System.Drawing;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace mpvnet
|
||||
{
|
||||
public class Native
|
||||
{
|
||||
[DllImport("kernel32.dll")]
|
||||
public static extern IntPtr LoadLibrary(string dllToLoad);
|
||||
|
||||
[DllImport("user32.dll", CharSet = CharSet.Unicode)]
|
||||
public static extern IntPtr FindWindowEx(IntPtr parentHandle, IntPtr childAfter, string lclassName, string windowTitle);
|
||||
|
||||
[DllImport("user32.dll", CharSet = CharSet.Unicode)]
|
||||
public static extern IntPtr SendMessage(IntPtr hWnd, int msg, IntPtr wParam, IntPtr lParam);
|
||||
|
||||
[DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Unicode)]
|
||||
public static extern IntPtr PostMessage(IntPtr hWnd, int Msg, IntPtr wParam, IntPtr lParam);
|
||||
|
||||
[DllImport("user32.dll")]
|
||||
public static extern void ReleaseCapture();
|
||||
|
||||
[DllImport("user32.dll")]
|
||||
public static extern bool AdjustWindowRect(ref RECT lpRect, uint dwStyle, bool bMenu);
|
||||
|
||||
[DllImport("user32.dll", SetLastError = true)]
|
||||
public static extern bool SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, int X, int Y, int cx, int cy, int uFlags);
|
||||
|
||||
[DllImport("user32.dll")]
|
||||
public static extern bool EnableWindow(IntPtr hWnd, bool bEnable);
|
||||
|
||||
[DllImport("user32.dll", EntryPoint = "GetWindowLong")]
|
||||
private static extern IntPtr GetWindowLong32(IntPtr hWnd, int nIndex);
|
||||
|
||||
[DllImport("user32.dll", EntryPoint = "GetWindowLongPtr")]
|
||||
private static extern IntPtr GetWindowLong64(IntPtr hWnd, int nIndex);
|
||||
|
||||
public static IntPtr GetWindowLongPtr(IntPtr hWnd, int nIndex)
|
||||
{
|
||||
if (IntPtr.Size == 8)
|
||||
return GetWindowLong64(hWnd, nIndex);
|
||||
else
|
||||
return GetWindowLong32(hWnd, nIndex);
|
||||
}
|
||||
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
public struct RECT
|
||||
{
|
||||
public int Left;
|
||||
public int Top;
|
||||
public int Right;
|
||||
public int Bottom;
|
||||
|
||||
public RECT(Rectangle r)
|
||||
{
|
||||
Left = r.Left;
|
||||
Top = r.Top;
|
||||
Right = r.Right;
|
||||
Bottom = r.Bottom;
|
||||
}
|
||||
|
||||
public RECT(int left, int top, int right, int bottom)
|
||||
{
|
||||
Left = left;
|
||||
Top = top;
|
||||
Right = right;
|
||||
Bottom = bottom;
|
||||
}
|
||||
|
||||
public Rectangle ToRectangle() { return Rectangle.FromLTRB(Left, Top, Right, Bottom); }
|
||||
public Size Size => new Size(Right - Left, Bottom - Top);
|
||||
public int Width => Right - Left;
|
||||
public int Height => Bottom - Top;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,38 +0,0 @@
|
||||
using System;
|
||||
|
||||
namespace mpvnet
|
||||
{
|
||||
public static class NativeHelp
|
||||
{
|
||||
public static int GetResizeBorder(int v)
|
||||
{
|
||||
switch (v)
|
||||
{
|
||||
case 1 /* WMSZ_LEFT */ : return 3;
|
||||
case 3 /* WMSZ_TOP */ : return 2;
|
||||
case 2 /* WMSZ_RIGHT */ : return 3;
|
||||
case 6 /* WMSZ_BOTTOM */ : return 2;
|
||||
case 4 /* WMSZ_TOPLEFT */ : return 1;
|
||||
case 5 /* WMSZ_TOPRIGHT */ : return 1;
|
||||
case 7 /* WMSZ_BOTTOMLEFT */ : return 3;
|
||||
case 8 /* WMSZ_BOTTOMRIGHT */: return 3;
|
||||
default: return -1;
|
||||
}
|
||||
}
|
||||
|
||||
public static void SubtractWindowBorders(IntPtr hwnd, ref Native.RECT rc)
|
||||
{
|
||||
var b = new Native.RECT(0, 0, 0, 0);
|
||||
AddWindowBorders(hwnd, ref b);
|
||||
rc.Left -= b.Left;
|
||||
rc.Top -= b.Top;
|
||||
rc.Right -= b.Right;
|
||||
rc.Bottom -= b.Bottom;
|
||||
}
|
||||
|
||||
public static void AddWindowBorders(IntPtr hwnd, ref Native.RECT rc)
|
||||
{
|
||||
Native.AdjustWindowRect(ref rc, (uint)Native.GetWindowLongPtr(hwnd, -16 /* GWL_STYLE */), false);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,656 +0,0 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Reflection;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Threading;
|
||||
using System.Windows.Forms;
|
||||
|
||||
public class Msg
|
||||
{
|
||||
private static string ShownMessages;
|
||||
|
||||
public static string SupportURL { get; set; }
|
||||
|
||||
public static void Show(string mainInstruction, string content = null)
|
||||
{
|
||||
Msg.Show(mainInstruction, content, MsgIcon.Info, MsgButtons.Ok, MsgResult.None);
|
||||
}
|
||||
|
||||
public static void ShowError(string mainInstruction, string content = null)
|
||||
{
|
||||
try
|
||||
{
|
||||
using (TaskDialog<string> td = new TaskDialog<string>())
|
||||
{
|
||||
td.AllowCancel = false;
|
||||
|
||||
if (string.IsNullOrEmpty(content))
|
||||
{
|
||||
if (mainInstruction.Length < 80)
|
||||
td.MainInstruction = mainInstruction;
|
||||
else
|
||||
td.Content = mainInstruction;
|
||||
}
|
||||
else
|
||||
{
|
||||
td.MainInstruction = mainInstruction;
|
||||
td.Content = content;
|
||||
}
|
||||
|
||||
td.MainIcon = MsgIcon.Error;
|
||||
td.Footer = "[Copy Message](copymsg)";
|
||||
|
||||
if (!string.IsNullOrEmpty(Msg.SupportURL))
|
||||
td.Footer += $" [Contact Support]({SupportURL})";
|
||||
|
||||
td.Show();
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.GetType().Name + "\n\n" + ex.Message + "\n\n" + ex.ToString(),
|
||||
Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
|
||||
public static void ShowException(Exception e)
|
||||
{
|
||||
try
|
||||
{
|
||||
using (TaskDialog<string> td = new TaskDialog<string>())
|
||||
{
|
||||
td.MainInstruction = e.GetType().Name;
|
||||
td.Content = e.Message;
|
||||
td.MainIcon = MsgIcon.Error;
|
||||
td.ExpandedInformation = e.ToString();
|
||||
td.Footer = "[Copy Message](copymsg)";
|
||||
|
||||
if (!string.IsNullOrEmpty(Msg.SupportURL))
|
||||
td.Footer += $" [Contact Support]({SupportURL})";
|
||||
|
||||
td.Show();
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.GetType().Name + "\n\n" + ex.Message + "\n\n" + ex.ToString(),
|
||||
Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
|
||||
public static void ShowWarning(string mainInstruction,
|
||||
string content = null,
|
||||
bool onlyOnce = false)
|
||||
{
|
||||
if (onlyOnce && Msg.ShownMessages != null &&
|
||||
Msg.ShownMessages.Contains(mainInstruction + content))
|
||||
return;
|
||||
|
||||
Msg.Show(mainInstruction, content, MsgIcon.Warning, MsgButtons.Ok, MsgResult.None);
|
||||
if (!onlyOnce) return;
|
||||
Msg.ShownMessages += mainInstruction + content;
|
||||
}
|
||||
|
||||
public static MsgResult ShowQuestion(string mainInstruction,
|
||||
MsgButtons buttons = MsgButtons.OkCancel)
|
||||
{
|
||||
return Msg.Show(mainInstruction, null, MsgIcon.None, buttons, MsgResult.None);
|
||||
}
|
||||
|
||||
public static MsgResult ShowQuestion(string mainInstruction,
|
||||
string content,
|
||||
MsgButtons buttons = MsgButtons.OkCancel)
|
||||
{
|
||||
return Msg.Show(mainInstruction, content, MsgIcon.None, buttons, MsgResult.None);
|
||||
}
|
||||
|
||||
public static MsgResult Show(string mainInstruction,
|
||||
string content,
|
||||
MsgIcon icon,
|
||||
MsgButtons buttons,
|
||||
MsgResult defaultButton = MsgResult.None)
|
||||
{
|
||||
try
|
||||
{
|
||||
using (TaskDialog<MsgResult> td = new TaskDialog<MsgResult>())
|
||||
{
|
||||
td.AllowCancel = false;
|
||||
td.DefaultButton = defaultButton;
|
||||
td.MainIcon = icon;
|
||||
|
||||
if (content == null)
|
||||
{
|
||||
if (mainInstruction.Length < 80)
|
||||
td.MainInstruction = mainInstruction;
|
||||
else
|
||||
td.Content = mainInstruction;
|
||||
}
|
||||
else
|
||||
{
|
||||
td.MainInstruction = mainInstruction;
|
||||
td.Content = content;
|
||||
}
|
||||
if (buttons == MsgButtons.OkCancel)
|
||||
{
|
||||
td.AddButton("OK", MsgResult.OK);
|
||||
td.AddButton("Cancel", MsgResult.Cancel);
|
||||
}
|
||||
else
|
||||
td.CommonButtons = buttons;
|
||||
return td.Show();
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
return (MsgResult)MessageBox.Show(ex.GetType().Name + "\n\n" + ex.Message + "\n\n" + ex.ToString(),
|
||||
Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class TaskDialog<T> : TaskDialogNative, IDisposable
|
||||
{
|
||||
private Dictionary<int, T> IdValueDic;
|
||||
private Dictionary<int, string> IdTextDic;
|
||||
private List<int> CommandLinkShieldList;
|
||||
private IntPtr ButtonArray;
|
||||
private IntPtr RadioButtonArray;
|
||||
private List<TaskDialogNative.TASKDIALOG_BUTTON> Buttons;
|
||||
private List<TaskDialogNative.TASKDIALOG_BUTTON> RadioButtons;
|
||||
private TaskDialogNative.TASKDIALOGCONFIG Config;
|
||||
const int TDE_CONTENT = 0;
|
||||
const int TDE_EXPANDED_INFORMATION = 1;
|
||||
const int TDE_FOOTER = 2;
|
||||
const int TDE_MAIN_INSTRUCTION = 3;
|
||||
const int TDN_CREATED = 0;
|
||||
const int TDN_NAVIGATED = 1;
|
||||
const int TDN_BUTTON_CLICKED = 2;
|
||||
const int TDN_HYPERLINK_CLICKED = 3;
|
||||
const int TDN_TIMER = 4;
|
||||
const int TDN_DESTROYED = 5;
|
||||
const int TDN_RADIO_BUTTON_CLICKED = 6;
|
||||
const int TDN_DIALOG_CONSTRUCTED = 7;
|
||||
const int TDN_VERIFICATION_CLICKED = 8;
|
||||
const int TDN_HELP = 9;
|
||||
const int TDN_EXPANDO_BUTTON_CLICKED = 10;
|
||||
const int TDM_NAVIGATE_PAGE = 1125;
|
||||
const int TDM_CLICK_BUTTON = 1126;
|
||||
const int TDM_SET_MARQUEE_PROGRESS_BAR = 1127;
|
||||
const int TDM_SET_PROGRESS_BAR_STATE = 1128;
|
||||
const int TDM_SET_PROGRESS_BAR_RANGE = 1129;
|
||||
const int TDM_SET_PROGRESS_BAR_POS = 1130;
|
||||
const int TDM_SET_PROGRESS_BAR_MARQUEE = 1131;
|
||||
const int TDM_SET_ELEMENT_TEXT = 1132;
|
||||
const int TDM_CLICK_RADIO_BUTTON = 1134;
|
||||
const int TDM_ENABLE_BUTTON = 1135;
|
||||
const int TDM_ENABLE_RADIO_BUTTON = 1136;
|
||||
const int TDM_CLICK_VERIFICATION = 1137;
|
||||
const int TDM_UPDATE_ELEMENT_TEXT = 1138;
|
||||
const int TDM_SET_BUTTON_ELEVATION_REQUIRED_STATE = 1139;
|
||||
const int TDM_UPDATE_ICON = 1140;
|
||||
private T SelectedValueValue;
|
||||
private string SelectedTextValue;
|
||||
private int TimeoutValue;
|
||||
private int ExitTickCount;
|
||||
private bool disposed;
|
||||
|
||||
public TaskDialog()
|
||||
{
|
||||
IdValueDic = new Dictionary<int, T>();
|
||||
IdTextDic = new Dictionary<int, string>();
|
||||
CommandLinkShieldList = new List<int>();
|
||||
Buttons = new List<TaskDialogNative.TASKDIALOG_BUTTON>();
|
||||
RadioButtons = new List<TaskDialogNative.TASKDIALOG_BUTTON>();
|
||||
_SelectedID = -1;
|
||||
Config = new TaskDialogNative.TASKDIALOGCONFIG();
|
||||
Config.cbSize = (uint)Marshal.SizeOf(Config);
|
||||
Config.hwndParent = GetHandle();
|
||||
Config.hInstance = IntPtr.Zero;
|
||||
Config.dwFlags = TaskDialogNative.TASKDIALOG_FLAGS.TDF_ALLOW_DIALOG_CANCELLATION;
|
||||
Config.dwCommonButtons = MsgButtons.None;
|
||||
Config.MainIcon = new TaskDialogNative.TASKDIALOGCONFIG_ICON_UNION(0);
|
||||
Config.FooterIcon = new TaskDialogNative.TASKDIALOGCONFIG_ICON_UNION(0);
|
||||
Config.cxWidth = 0U;
|
||||
Config.cButtons = 0U;
|
||||
Config.cRadioButtons = 0U;
|
||||
Config.pButtons = IntPtr.Zero;
|
||||
Config.pRadioButtons = IntPtr.Zero;
|
||||
Config.nDefaultButton = 0;
|
||||
Config.nDefaultRadioButton = 0;
|
||||
Config.pszWindowTitle = ((AssemblyProductAttribute)Assembly.GetEntryAssembly().GetCustomAttributes(typeof(AssemblyProductAttribute), true)[0]).Product;
|
||||
Config.pszMainInstruction = "";
|
||||
Config.pszContent = "";
|
||||
Config.pfCallback = new PFTASKDIALOGCALLBACK(this.DialogProc);
|
||||
}
|
||||
|
||||
public IntPtr GetHandle()
|
||||
{
|
||||
StringBuilder lpszFileName = new StringBuilder(260);
|
||||
IntPtr foregroundWindow = TaskDialogNative.GetForegroundWindow();
|
||||
TaskDialogNative.GetWindowModuleFileName(foregroundWindow, lpszFileName, 260U);
|
||||
|
||||
if (Path.GetFileName(lpszFileName.ToString().Replace(".vshost", "")) ==
|
||||
Path.GetFileName(Assembly.GetEntryAssembly().Location))
|
||||
return foregroundWindow;
|
||||
|
||||
return IntPtr.Zero;
|
||||
}
|
||||
|
||||
public bool AllowCancel {
|
||||
set {
|
||||
if (value)
|
||||
Config.dwFlags |= TaskDialogNative.TASKDIALOG_FLAGS.TDF_ALLOW_DIALOG_CANCELLATION;
|
||||
else
|
||||
Config.dwFlags ^= TaskDialogNative.TASKDIALOG_FLAGS.TDF_ALLOW_DIALOG_CANCELLATION;
|
||||
}
|
||||
}
|
||||
|
||||
public string MainInstruction {
|
||||
get => Config.pszMainInstruction;
|
||||
set => Config.pszMainInstruction = value;
|
||||
}
|
||||
|
||||
public string Content {
|
||||
get => Config.pszContent;
|
||||
set => Config.pszContent = ExpandMarkdownMarkup(value);
|
||||
}
|
||||
|
||||
public string ExpandedInformation {
|
||||
get => Config.pszExpandedInformation;
|
||||
set => Config.pszExpandedInformation = ExpandMarkdownMarkup(value);
|
||||
}
|
||||
|
||||
public string VerificationText {
|
||||
get => Config.pszVerificationText;
|
||||
set => Config.pszVerificationText = value;
|
||||
}
|
||||
|
||||
public MsgResult DefaultButton {
|
||||
get => (MsgResult)Config.nDefaultButton;
|
||||
set => Config.nDefaultButton = (int)value;
|
||||
}
|
||||
|
||||
public string Footer {
|
||||
get => Config.pszFooter;
|
||||
set => Config.pszFooter = ExpandMarkdownMarkup(value);
|
||||
}
|
||||
|
||||
public MsgIcon MainIcon {
|
||||
set => Config.MainIcon = new TaskDialogNative.TASKDIALOGCONFIG_ICON_UNION((int)value);
|
||||
}
|
||||
|
||||
private int _SelectedID;
|
||||
|
||||
public int SelectedID {
|
||||
get => _SelectedID;
|
||||
set {
|
||||
foreach (var i in IdValueDic)
|
||||
if (i.Key == value) _SelectedID = value;
|
||||
}
|
||||
}
|
||||
|
||||
public T SelectedValue {
|
||||
get {
|
||||
if (IdValueDic.ContainsKey(SelectedID))
|
||||
return IdValueDic[SelectedID];
|
||||
return SelectedValueValue;
|
||||
}
|
||||
set => SelectedValueValue = value;
|
||||
}
|
||||
|
||||
public string SelectedText {
|
||||
get {
|
||||
if (IdTextDic.ContainsKey(SelectedID))
|
||||
return IdTextDic[SelectedID];
|
||||
return SelectedTextValue;
|
||||
}
|
||||
set => SelectedTextValue = value;
|
||||
}
|
||||
|
||||
public bool CheckBoxChecked {
|
||||
get => (Config.dwFlags & TaskDialogNative.TASKDIALOG_FLAGS.TDF_VERIFICATION_FLAG_CHECKED) == TaskDialogNative.TASKDIALOG_FLAGS.TDF_VERIFICATION_FLAG_CHECKED;
|
||||
set {
|
||||
if (value)
|
||||
Config.dwFlags |= TaskDialogNative.TASKDIALOG_FLAGS.TDF_VERIFICATION_FLAG_CHECKED;
|
||||
else
|
||||
Config.dwFlags ^= TaskDialogNative.TASKDIALOG_FLAGS.TDF_VERIFICATION_FLAG_CHECKED;
|
||||
}
|
||||
}
|
||||
|
||||
public MsgButtons CommonButtons {
|
||||
get => Config.dwCommonButtons;
|
||||
set => Config.dwCommonButtons = value;
|
||||
}
|
||||
|
||||
public int Timeout {
|
||||
get => Convert.ToInt32(TimeoutValue / 1000.0);
|
||||
set {
|
||||
TimeoutValue = value * 1000;
|
||||
Config.dwFlags |= TaskDialogNative.TASKDIALOG_FLAGS.TDF_CALLBACK_TIMER;
|
||||
}
|
||||
}
|
||||
|
||||
public void AddButton(string text, T value)
|
||||
{
|
||||
int n = 1000 + IdValueDic.Count + 1;
|
||||
IdValueDic[n] = value;
|
||||
Buttons.Add(new TaskDialogNative.TASKDIALOG_BUTTON(n, text));
|
||||
}
|
||||
|
||||
public string ExpandMarkdownMarkup(string value)
|
||||
{
|
||||
if (value.Contains("["))
|
||||
{
|
||||
Regex regex = new Regex(@"\[(.+)\]\((.+)\)");
|
||||
|
||||
if (regex.Match(value).Success)
|
||||
{
|
||||
Config.dwFlags |= TaskDialogNative.TASKDIALOG_FLAGS.TDF_ENABLE_HYPERLINKS;
|
||||
value = regex.Replace(value, "<a href=\"$2\">$1</a>");
|
||||
}
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
public void AddCommandLink(string text, T value)
|
||||
{
|
||||
int n = 1000 + IdValueDic.Count + 1;
|
||||
IdValueDic[n] = value == null ? (T)(object)text : value;
|
||||
IdTextDic[n] = text;
|
||||
Buttons.Add(new TaskDialogNative.TASKDIALOG_BUTTON(n, text));
|
||||
Config.dwFlags |= TaskDialogNative.TASKDIALOG_FLAGS.TDF_USE_COMMAND_LINKS;
|
||||
}
|
||||
|
||||
public void AddCommandLink(string text, string description, T value, bool setShield = false)
|
||||
{
|
||||
int n = 1000 + IdValueDic.Count + 1;
|
||||
IdValueDic[n] = value;
|
||||
if (setShield) CommandLinkShieldList.Add(n);
|
||||
if (!string.IsNullOrEmpty(description)) text += "\n" + description;
|
||||
Buttons.Add(new TaskDialogNative.TASKDIALOG_BUTTON(n, text));
|
||||
Config.dwFlags |= TaskDialogNative.TASKDIALOG_FLAGS.TDF_USE_COMMAND_LINKS;
|
||||
}
|
||||
|
||||
public void AddRadioButton(string text, T value)
|
||||
{
|
||||
int n = 1000 + IdValueDic.Count + 1;
|
||||
IdValueDic[n] = value;
|
||||
RadioButtons.Add(new TaskDialogNative.TASKDIALOG_BUTTON(n, text));
|
||||
}
|
||||
|
||||
public T Show()
|
||||
{
|
||||
MarshalDialogControlStructs();
|
||||
TaskDialogNative.TASKDIALOGCONFIG config = Config;
|
||||
int errorCode = TaskDialogNative.TaskDialogIndirect(config, out int dummy1, out int dummy2, out bool isChecked);
|
||||
if (errorCode < 0) Marshal.ThrowExceptionForHR(errorCode);
|
||||
CheckBoxChecked = isChecked;
|
||||
if (SelectedValue is MsgResult) SelectedValue = (T)(object)SelectedID;
|
||||
return SelectedValue;
|
||||
}
|
||||
|
||||
public int DialogProc(IntPtr hwnd, uint msg, IntPtr wParam, IntPtr lParam, IntPtr lpRefData)
|
||||
{
|
||||
switch (msg)
|
||||
{
|
||||
case 0: //TDN_CREATED
|
||||
foreach (var i in CommandLinkShieldList)
|
||||
SendMessage(hwnd, TDM_SET_BUTTON_ELEVATION_REQUIRED_STATE, new IntPtr(i), new IntPtr(1));
|
||||
break;
|
||||
case 2: //TDN_BUTTON_CLICKED
|
||||
case 6: //TDN_RADIO_BUTTON_CLICKED
|
||||
if (SelectedValue is MsgResult)
|
||||
_SelectedID = wParam.ToInt32();
|
||||
else
|
||||
SelectedID = wParam.ToInt32();
|
||||
break;
|
||||
case 3: //TDN_HYPERLINK_CLICKED
|
||||
string stringUni = Marshal.PtrToStringUni(lParam);
|
||||
if (stringUni.StartsWith("mailto") || stringUni.StartsWith("http"))
|
||||
Process.Start(stringUni);
|
||||
if (stringUni == "copymsg")
|
||||
{
|
||||
Thread thread = new Thread((ThreadStart)(() => {
|
||||
Clipboard.SetText(MainInstruction + "\r\n\r\n" + Content + "\r\n\r\n" + ExpandedInformation);
|
||||
MessageBox.Show("Message was copied to clipboard.", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||
}));
|
||||
thread.SetApartmentState(ApartmentState.STA);
|
||||
thread.Start();
|
||||
}
|
||||
break;
|
||||
case 4: //TDN_TIMER
|
||||
if (ExitTickCount == 0) ExitTickCount = Environment.TickCount + Timeout * 1000;
|
||||
if (Environment.TickCount > ExitTickCount)
|
||||
TaskDialogNative.SendMessage(hwnd, 1126, new IntPtr(1), IntPtr.Zero);
|
||||
break;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
public void MarshalDialogControlStructs()
|
||||
{
|
||||
if (Buttons != null && Buttons.Count > 0)
|
||||
{
|
||||
ButtonArray = TaskDialog<T>.AllocateAndMarshalButtons(Buttons);
|
||||
Config.pButtons = ButtonArray;
|
||||
Config.cButtons = (uint)Buttons.Count;
|
||||
}
|
||||
|
||||
if (RadioButtons == null || RadioButtons.Count <= 0) return;
|
||||
RadioButtonArray = TaskDialog<T>.AllocateAndMarshalButtons(RadioButtons);
|
||||
Config.pRadioButtons = RadioButtonArray;
|
||||
Config.cRadioButtons = (uint)RadioButtons.Count;
|
||||
}
|
||||
|
||||
public static IntPtr AllocateAndMarshalButtons(List<TaskDialogNative.TASKDIALOG_BUTTON> structs)
|
||||
{
|
||||
var initialPtr = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(TASKDIALOG_BUTTON)) * structs.Count);
|
||||
var currentPtr = initialPtr;
|
||||
|
||||
foreach (var button in structs)
|
||||
{
|
||||
Marshal.StructureToPtr(button, currentPtr, false);
|
||||
currentPtr = (IntPtr)(currentPtr.ToInt64() + Marshal.SizeOf(button));
|
||||
}
|
||||
|
||||
return initialPtr;
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
Dispose(true);
|
||||
GC.SuppressFinalize(this);
|
||||
}
|
||||
|
||||
~TaskDialog()
|
||||
{
|
||||
Dispose(false);
|
||||
}
|
||||
|
||||
protected void Dispose(bool disposing)
|
||||
{
|
||||
if (disposed) return;
|
||||
disposed = true;
|
||||
|
||||
if (ButtonArray != IntPtr.Zero)
|
||||
{
|
||||
Marshal.FreeHGlobal(ButtonArray);
|
||||
ButtonArray = IntPtr.Zero;
|
||||
}
|
||||
|
||||
if (RadioButtonArray != IntPtr.Zero)
|
||||
{
|
||||
Marshal.FreeHGlobal(RadioButtonArray);
|
||||
RadioButtonArray = IntPtr.Zero;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public delegate int PFTASKDIALOGCALLBACK(
|
||||
IntPtr hwnd,
|
||||
uint msg,
|
||||
IntPtr wParam,
|
||||
IntPtr lParam,
|
||||
IntPtr lpRefData);
|
||||
|
||||
public class TaskDialogNative
|
||||
{
|
||||
[DllImport("comctl32", CharSet = CharSet.Unicode, SetLastError = true)]
|
||||
public static extern int TaskDialogIndirect(
|
||||
[In] TaskDialogNative.TASKDIALOGCONFIG pTaskConfig,
|
||||
out int pnButton,
|
||||
out int pnRadioButton,
|
||||
[MarshalAs(UnmanagedType.Bool)] out bool pVerificationFlagChecked);
|
||||
|
||||
[DllImport("user32.dll")]
|
||||
public static extern IntPtr GetForegroundWindow();
|
||||
|
||||
[DllImport("user32.dll", CharSet = CharSet.Unicode)]
|
||||
public static extern uint GetWindowModuleFileName(
|
||||
IntPtr hwnd,
|
||||
StringBuilder lpszFileName,
|
||||
uint cchFileNameMax);
|
||||
|
||||
[DllImport("user32.dll")]
|
||||
public static extern IntPtr SendMessage(
|
||||
IntPtr handle,
|
||||
int message,
|
||||
IntPtr wParam,
|
||||
IntPtr lParam);
|
||||
|
||||
[StructLayout(LayoutKind.Sequential, Pack = 4, CharSet = CharSet.Unicode)]
|
||||
public class TASKDIALOGCONFIG
|
||||
{
|
||||
public uint cbSize;
|
||||
public IntPtr hwndParent;
|
||||
public IntPtr hInstance;
|
||||
public TaskDialogNative.TASKDIALOG_FLAGS dwFlags;
|
||||
public MsgButtons dwCommonButtons;
|
||||
[MarshalAs(UnmanagedType.LPWStr)]
|
||||
public string pszWindowTitle;
|
||||
public TaskDialogNative.TASKDIALOGCONFIG_ICON_UNION MainIcon;
|
||||
[MarshalAs(UnmanagedType.LPWStr)]
|
||||
public string pszMainInstruction;
|
||||
[MarshalAs(UnmanagedType.LPWStr)]
|
||||
public string pszContent;
|
||||
public uint cButtons;
|
||||
public IntPtr pButtons;
|
||||
public int nDefaultButton;
|
||||
public uint cRadioButtons;
|
||||
public IntPtr pRadioButtons;
|
||||
public int nDefaultRadioButton;
|
||||
[MarshalAs(UnmanagedType.LPWStr)]
|
||||
public string pszVerificationText;
|
||||
[MarshalAs(UnmanagedType.LPWStr)]
|
||||
public string pszExpandedInformation;
|
||||
[MarshalAs(UnmanagedType.LPWStr)]
|
||||
public string pszExpandedControlText;
|
||||
[MarshalAs(UnmanagedType.LPWStr)]
|
||||
public string pszCollapsedControlText;
|
||||
public TaskDialogNative.TASKDIALOGCONFIG_ICON_UNION FooterIcon;
|
||||
[MarshalAs(UnmanagedType.LPWStr)]
|
||||
public string pszFooter;
|
||||
public PFTASKDIALOGCALLBACK pfCallback;
|
||||
public IntPtr lpCallbackData;
|
||||
public uint cxWidth;
|
||||
}
|
||||
|
||||
public enum TASKDIALOG_FLAGS
|
||||
{
|
||||
NONE = 0,
|
||||
TDF_ENABLE_HYPERLINKS = 1,
|
||||
TDF_USE_HICON_MAIN = 2,
|
||||
TDF_USE_HICON_FOOTER = 4,
|
||||
TDF_ALLOW_DIALOG_CANCELLATION = 8,
|
||||
TDF_USE_COMMAND_LINKS = 16,
|
||||
TDF_USE_COMMAND_LINKS_NO_ICON = 32,
|
||||
TDF_EXPAND_FOOTER_AREA = 64,
|
||||
TDF_EXPANDED_BY_DEFAULT = 128,
|
||||
TDF_VERIFICATION_FLAG_CHECKED = 256,
|
||||
TDF_SHOW_PROGRESS_BAR = 512,
|
||||
TDF_SHOW_MARQUEE_PROGRESS_BAR = 1024,
|
||||
TDF_CALLBACK_TIMER = 2048,
|
||||
TDF_POSITION_RELATIVE_TO_WINDOW = 4096,
|
||||
TDF_RTL_LAYOUT = 8192,
|
||||
TDF_NO_DEFAULT_RADIO_BUTTON = 16384,
|
||||
}
|
||||
|
||||
[StructLayout(LayoutKind.Explicit, CharSet = CharSet.Unicode)]
|
||||
public struct TASKDIALOGCONFIG_ICON_UNION
|
||||
{
|
||||
[FieldOffset(0)]
|
||||
public int hMainIcon;
|
||||
[FieldOffset(0)]
|
||||
public int pszIcon;
|
||||
[FieldOffset(0)]
|
||||
public IntPtr spacer;
|
||||
|
||||
public TASKDIALOGCONFIG_ICON_UNION(int i)
|
||||
{
|
||||
this = new TaskDialogNative.TASKDIALOGCONFIG_ICON_UNION();
|
||||
spacer = IntPtr.Zero;
|
||||
pszIcon = 0;
|
||||
hMainIcon = i;
|
||||
}
|
||||
}
|
||||
|
||||
[StructLayout(LayoutKind.Sequential, Pack = 4, CharSet = CharSet.Unicode)]
|
||||
public struct TASKDIALOG_BUTTON
|
||||
{
|
||||
public int nButtonID;
|
||||
[MarshalAs(UnmanagedType.LPWStr)]
|
||||
public string pszButtonText;
|
||||
|
||||
public TASKDIALOG_BUTTON(int n, string txt)
|
||||
{
|
||||
this = new TaskDialogNative.TASKDIALOG_BUTTON();
|
||||
nButtonID = n;
|
||||
pszButtonText = txt;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public enum MsgButtons
|
||||
{
|
||||
None = 0,
|
||||
Ok = 1,
|
||||
Yes = 2,
|
||||
No = 4,
|
||||
YesNo = 6,
|
||||
Cancel = 8,
|
||||
OkCancel = 9,
|
||||
YesNoCancel = 14,
|
||||
Retry = 16,
|
||||
RetryCancel = 24,
|
||||
Close = 32,
|
||||
}
|
||||
|
||||
public enum MsgResult
|
||||
{
|
||||
None,
|
||||
OK,
|
||||
Cancel,
|
||||
Abort,
|
||||
Retry,
|
||||
Ignore,
|
||||
Yes,
|
||||
No,
|
||||
}
|
||||
|
||||
public enum MsgIcon
|
||||
{
|
||||
None = 0,
|
||||
SecurityShieldGray = 65527,
|
||||
SecuritySuccess = 65528,
|
||||
SecurityError = 65529,
|
||||
SecurityWarning = 65530,
|
||||
SecurityShieldBlue = 65531,
|
||||
Shield = 65532,
|
||||
Info = 65533,
|
||||
Error = 65534,
|
||||
Warning = 65535,
|
||||
}
|
||||
@@ -1,36 +0,0 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
[assembly: AssemblyTitle("mpv.net")]
|
||||
[assembly: AssemblyDescription("A modern media player")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("mpv.net")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2017-2019 Frank Skare (stax76)")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// Setting ComVisible to false makes the types in this assembly not visible
|
||||
// to COM components. If you need to access a type in this assembly from
|
||||
// COM, set the ComVisible attribute to true on that type.
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||
[assembly: Guid("1751f378-8edf-4b62-be6d-304c7c287089")]
|
||||
|
||||
// Version information for an assembly consists of the following four values:
|
||||
//
|
||||
// Major Version
|
||||
// Minor Version
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
// You can specify all the values or you can default the Build and Revision Numbers
|
||||
// by using the '*' as shown below:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("4.3.0.0")]
|
||||
[assembly: AssemblyFileVersion("4.3.0.0")]
|
||||
180
mpv.net/Properties/Resources.Designer.cs
generated
@@ -1,180 +0,0 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.42000
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace mpvnet.Properties {
|
||||
using System;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// A strongly-typed resource class, for looking up localized strings, etc.
|
||||
/// </summary>
|
||||
// This class was auto-generated by the StronglyTypedResourceBuilder
|
||||
// class via a tool like ResGen or Visual Studio.
|
||||
// To add or remove a member, edit your .ResX file then rerun ResGen
|
||||
// with the /str option, or rebuild your VS project.
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
internal class Resources {
|
||||
|
||||
private static global::System.Resources.ResourceManager resourceMan;
|
||||
|
||||
private static global::System.Globalization.CultureInfo resourceCulture;
|
||||
|
||||
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
||||
internal Resources() {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the cached ResourceManager instance used by this class.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Resources.ResourceManager ResourceManager {
|
||||
get {
|
||||
if (object.ReferenceEquals(resourceMan, null)) {
|
||||
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("mpvnet.Properties.Resources", typeof(Resources).Assembly);
|
||||
resourceMan = temp;
|
||||
}
|
||||
return resourceMan;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Overrides the current thread's CurrentUICulture property for all
|
||||
/// resource lookups using this strongly typed resource class.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Globalization.CultureInfo Culture {
|
||||
get {
|
||||
return resourceCulture;
|
||||
}
|
||||
set {
|
||||
resourceCulture = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to
|
||||
/// # This file defines the input (keys and mouse) bindings of mpv and mpv.net
|
||||
/// # and it also defines the context menu of mpv.net. mpv.net has an input
|
||||
/// # editor and an config editor as alternative to editing conf text files.
|
||||
/// # The input and config editor can be found in mpv.net's context menu at:
|
||||
///
|
||||
/// # Settings > Show Config Editor
|
||||
/// # Settings > Show Input Editor
|
||||
///
|
||||
/// # The defaults of this file can be found at:
|
||||
///
|
||||
/// # https://github.com/stax76/mpv.net/blob/master/mpv.net/Resources/inputConf.txt
|
||||
///
|
||||
/// # th [rest of string was truncated]";.
|
||||
/// </summary>
|
||||
internal static string inputConf {
|
||||
get {
|
||||
return ResourceManager.GetString("inputConf", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to
|
||||
/// # This file defines the input (keys and mouse) bindings of mpv and mpv.net
|
||||
/// # and it also defines the context menu of mpv.net. mpv.net has an input
|
||||
/// # editor and an config editor as alternatives to editing conf text files.
|
||||
/// # The input and config editor can be found in mpv.net's context menu at:
|
||||
///
|
||||
/// # Settings > Show Config Editor
|
||||
/// # Settings > Show Input Editor
|
||||
///
|
||||
/// # The defaults of this file can be found at:
|
||||
///
|
||||
/// # https://github.com/stax76/mpv.net/blob/master/mpv.net/Resources/inputConf.txt
|
||||
///
|
||||
/// # t [rest of string was truncated]";.
|
||||
/// </summary>
|
||||
internal static string inputConfHeader {
|
||||
get {
|
||||
return ResourceManager.GetString("inputConfHeader", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to
|
||||
///# mpv manual: https://mpv.io/manual/master/
|
||||
///
|
||||
///# mpv.net mpv.conf defaults: https://github.com/stax76/mpv.net/blob/master/mpv.net/Resources/mpvConf.txt
|
||||
///
|
||||
///input-ar-delay = 500
|
||||
///input-ar-rate = 20
|
||||
///volume = 50
|
||||
///hwdec = yes
|
||||
///keep-open = yes
|
||||
///keep-open-pause = no
|
||||
///osd-playing-msg = ${filename}
|
||||
///screenshot-directory = ~~desktop/
|
||||
///input-default-bindings = no
|
||||
///.
|
||||
/// </summary>
|
||||
internal static string mpvConf {
|
||||
get {
|
||||
return ResourceManager.GetString("mpvConf", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to [[settings]]
|
||||
///name = "hwdec"
|
||||
///default = "no"
|
||||
///filter = "Video"
|
||||
///helpurl = "https://mpv.io/manual/master/#options-hwdec"
|
||||
///help = "Specify the hardware video decoding API that should be used if possible. Whether hardware decoding is actually done depends on the video codec. If hardware decoding is not possible, mpv will fall back on software decoding.\n\nFor more information visit:"
|
||||
///options = [{ name = "no", help = "always use software decoding" },
|
||||
/// { name = "auto", help = "enabl [rest of string was truncated]";.
|
||||
/// </summary>
|
||||
internal static string mpvConfToml {
|
||||
get {
|
||||
return ResourceManager.GetString("mpvConfToml", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap mpvnet {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("mpvnet", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to [[settings]]
|
||||
///name = "dark-mode"
|
||||
///default = "always"
|
||||
///filter = "mpv.net"
|
||||
///help = "Enables a dark theme."
|
||||
///options = [{ name = "always" },
|
||||
/// { name = "system" , help = "Available on Windows 10 or higher" },
|
||||
/// { name = "never" }]
|
||||
///
|
||||
///[[settings]]
|
||||
///name = "clipboard-monitoring"
|
||||
///default = "yes"
|
||||
///filter = "mpv.net"
|
||||
///help = "Monitors the clipboard for URLs to play."
|
||||
///options = [{ name = "yes" },
|
||||
/// { name = "no" }].
|
||||
/// </summary>
|
||||
internal static string mpvNetConfToml {
|
||||
get {
|
||||
return ResourceManager.GetString("mpvNetConfToml", resourceCulture);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,139 +0,0 @@
|
||||
<?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>
|
||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="inputConf" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\inputConf.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</value>
|
||||
</data>
|
||||
<data name="inputConfHeader" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\inputConfHeader.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
|
||||
</data>
|
||||
<data name="mpvConf" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\mpvConf.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
|
||||
</data>
|
||||
<data name="mpvConfToml" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\mpvConfToml.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
|
||||
</data>
|
||||
<data name="mpvnet" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\mpvnet.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="mpvNetConfToml" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\mpvNetConfToml.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
|
||||
</data>
|
||||
</root>
|
||||
26
mpv.net/Properties/Settings.Designer.cs
generated
@@ -1,26 +0,0 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.42000
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace mpvnet.Properties {
|
||||
|
||||
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.0.0.0")]
|
||||
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
|
||||
|
||||
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
||||
|
||||
public static Settings Default {
|
||||
get {
|
||||
return defaultInstance;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
|
||||
<Profiles />
|
||||
<Settings />
|
||||
</SettingsFile>
|
||||
@@ -1,183 +0,0 @@
|
||||
|
||||
# This file defines the input (keys and mouse) bindings of mpv and mpv.net
|
||||
# and it also defines the context menu of mpv.net. mpv.net has an input
|
||||
# editor and an config editor as alternative to editing conf text files.
|
||||
# The input and config editor can be found in mpv.net's context menu at:
|
||||
|
||||
# Settings > Show Config Editor
|
||||
# Settings > Show Input Editor
|
||||
|
||||
# The defaults of this file can be found at:
|
||||
|
||||
# https://github.com/stax76/mpv.net/blob/master/mpv.net/Resources/inputConf.txt
|
||||
|
||||
# the defaults of mpv can be found at:
|
||||
|
||||
# https://github.com/mpv-player/mpv/blob/master/etc/input.conf
|
||||
|
||||
# mpv.net's defaults of mpv.conf contain: 'input-default-bindings = no'
|
||||
# which disables mpv's input defaults. Every line in this file begins with a
|
||||
# space character to make it easier to do a text search, so if you want to know
|
||||
# if 'o' has already a binding you can make a text search on ' o '.
|
||||
|
||||
# mpv input commands: https://github.com/stax76/mpv.net/wiki/mpv-input-commands
|
||||
|
||||
# mpv input keys: https://github.com/stax76/mpv.net/wiki/mpv-input-keys
|
||||
|
||||
o script-message mpv.net open-files #menu: Open > Open Files...
|
||||
u script-message mpv.net open-url #menu: Open > Open URL...
|
||||
_ ignore #menu: Open > -
|
||||
Alt+a script-message mpv.net load-audio #menu: Open > Load external audio files...
|
||||
Alt+s script-message mpv.net load-sub #menu: Open > Load external subtitle files...
|
||||
_ ignore #menu: Open > -
|
||||
_ script-message mpv.net add-files-to-playlist #menu: Open > Add files to playlist...
|
||||
Ctrl+S script-message mpv.net show-media-search #menu: Open > Show media search...
|
||||
_ ignore #menu: Open > -
|
||||
_ ignore #menu: Open > Recent
|
||||
|
||||
_ ignore #menu: -
|
||||
Space cycle pause #menu: Play/Pause
|
||||
s stop #menu: Stop
|
||||
_ ignore #menu: -
|
||||
Enter cycle fullscreen #menu: Toggle Fullscreen
|
||||
|
||||
F11 playlist-prev #menu: Navigate > Previous File
|
||||
F12 playlist-next #menu: Navigate > Next File
|
||||
_ ignore #menu: Navigate > -
|
||||
PGUP add chapter 1 #menu: Navigate > Next Chapter
|
||||
PGDWN add chapter -1 #menu: Navigate > Previous Chapter
|
||||
_ ignore #menu: Navigate > -
|
||||
. frame-step #menu: Navigate > Jump Next Frame
|
||||
, frame-back-step #menu: Navigate > Jump Previous Frame
|
||||
_ ignore #menu: Navigate > -
|
||||
Right no-osd seek 7 #menu: Navigate > Jump 7 sec forward
|
||||
Left no-osd seek -7 #menu: Navigate > Jump 7 sec backward
|
||||
_ ignore #menu: Navigate > -
|
||||
Up no-osd seek 40 #menu: Navigate > Jump 40 sec forward
|
||||
Down no-osd seek -40 #menu: Navigate > Jump 40 sec backward
|
||||
_ ignore #menu: Navigate > -
|
||||
Ctrl+Right no-osd seek 300 #menu: Navigate > Jump 5 min forward
|
||||
Ctrl+Left no-osd seek -300 #menu: Navigate > Jump 5 min backward
|
||||
_ ignore #menu: Navigate > -
|
||||
_ ignore #menu: Navigate > Chapters
|
||||
|
||||
Ctrl++ add video-zoom 0.1 #menu: Pan & Scan > Increase Size
|
||||
Ctrl+- add video-zoom -0.1 #menu: Pan & Scan > Decrease Size
|
||||
_ ignore #menu: Pan & Scan > -
|
||||
Ctrl+KP4 add video-pan-x -0.01 #menu: Pan & Scan > Move Left
|
||||
Ctrl+KP6 add video-pan-x 0.01 #menu: Pan & Scan > Move Right
|
||||
_ ignore #menu: Pan & Scan > -
|
||||
Ctrl+KP8 add video-pan-y -0.01 #menu: Pan & Scan > Move Up
|
||||
Ctrl+KP2 add video-pan-y 0.01 #menu: Pan & Scan > Move Down
|
||||
_ ignore #menu: Pan & Scan > -
|
||||
w add panscan -0.1 #menu: Pan & Scan > Decrease Height
|
||||
W add panscan 0.1 #menu: Pan & Scan > Increase Height
|
||||
_ ignore #menu: Pan & Scan > -
|
||||
Ctrl+BS set video-zoom 0; set video-pan-x 0; set video-pan-y 0 #menu: Pan & Scan > Reset
|
||||
|
||||
Ctrl+1 add contrast -1 #menu: Video > Decrease Contrast
|
||||
Ctrl+2 add contrast 1 #menu: Video > Increase Contrast
|
||||
_ ignore #menu: Video > -
|
||||
Ctrl+3 add brightness -1 #menu: Video > Decrease Brightness
|
||||
Ctrl+4 add brightness 1 #menu: Video > Increase Brightness
|
||||
_ ignore #menu: Video > -
|
||||
Ctrl+5 add gamma -1 #menu: Video > Decrease Gamma
|
||||
Ctrl+6 add gamma 1 #menu: Video > Increase Gamma
|
||||
_ ignore #menu: Video > -
|
||||
Ctrl+7 add saturation -1 #menu: Video > Decrease Saturation
|
||||
Ctrl+8 add saturation 1 #menu: Video > Increase Saturation
|
||||
_ ignore #menu: Video > -
|
||||
Ctrl+s async screenshot #menu: Video > Take Screenshot
|
||||
d cycle deinterlace #menu: Video > Toggle Deinterlace
|
||||
a cycle-values video-aspect "16:9" "4:3" "2.35:1" "-1" #menu: Video > Cycle Aspect Ratio
|
||||
|
||||
KP7 script-message mpv.net cycle-audio #menu: Audio > Cycle/Next
|
||||
_ ignore #menu: Audio > -
|
||||
KP6 add audio-delay 0.1 #menu: Audio > Delay +0.1
|
||||
KP9 add audio-delay -0.1 #menu: Audio > Delay -0.1
|
||||
|
||||
KP8 cycle sub #menu: Subtitle > Cycle/Next
|
||||
v cycle sub-visibility #menu: Subtitle > Toggle Visibility
|
||||
_ ignore #menu: Subtitle > -
|
||||
z add sub-delay -0.1 #menu: Subtitle > Delay -0.1
|
||||
Z add sub-delay 0.1 #menu: Subtitle > Delay +0.1
|
||||
_ ignore #menu: Subtitle > -
|
||||
r add sub-pos -1 #menu: Subtitle > Move Up
|
||||
R add sub-pos +1 #menu: Subtitle > Move Down
|
||||
_ ignore #menu: Subtitle > -
|
||||
_ add sub-scale -0.1 #menu: Subtitle > Decrease Subtitle Font Size
|
||||
_ add sub-scale 0.1 #menu: Subtitle > Increase Subtitle Font Size
|
||||
|
||||
_ ignore #menu: Track
|
||||
|
||||
+ add volume 10 #menu: Volume > Up
|
||||
- add volume -10 #menu: Volume > Down
|
||||
_ ignore #menu: Volume > -
|
||||
m cycle mute #menu: Volume > Mute
|
||||
|
||||
[ multiply speed 1/1.1 #menu: Speed > -10%
|
||||
] multiply speed 1.1 #menu: Speed > +10%
|
||||
_ ignore #menu: Speed > -
|
||||
{ multiply speed 0.5 #menu: Speed > Half
|
||||
} multiply speed 2.0 #menu: Speed > Double
|
||||
_ ignore #menu: Speed > -
|
||||
BS set speed 1 #menu: Speed > Reset
|
||||
|
||||
KP0 script-message rate-file 0 #menu: Extensions > Rating > 0stars
|
||||
KP1 script-message rate-file 1 #menu: Extensions > Rating > 1stars
|
||||
KP2 script-message rate-file 2 #menu: Extensions > Rating > 2stars
|
||||
KP3 script-message rate-file 3 #menu: Extensions > Rating > 3stars
|
||||
KP4 script-message rate-file 4 #menu: Extensions > Rating > 4stars
|
||||
KP5 script-message rate-file 5 #menu: Extensions > Rating > 5stars
|
||||
|
||||
Ctrl+t set ontop yes #menu: View > On Top > Enable
|
||||
Ctrl+T set ontop no #menu: View > On Top > Disable
|
||||
i script-message mpv.net show-info #menu: View > File Info
|
||||
t script-binding stats/display-stats #menu: View > Show Statistics
|
||||
T script-binding stats/display-stats-toggle #menu: View > Toggle Statistics
|
||||
Del script-binding osc/visibility #menu: View > Toggle OSC Visibility
|
||||
F8 show-text ${playlist} 5000 #menu: View > Show Playlist
|
||||
F9 show-text ${track-list} 5000 #menu: View > Show Audio/Video/Subtitle List
|
||||
|
||||
c script-message mpv.net show-conf-editor #menu: Settings > Show Config Editor
|
||||
Ctrl+i script-message mpv.net show-input-editor #menu: Settings > Show Input Editor
|
||||
Ctrl+f script-message mpv.net open-conf-folder #menu: Settings > Open Config Folder
|
||||
|
||||
Ctrl+P script-message mpv.net show-command-palette #menu: Tools > Command Palette
|
||||
h script-message mpv.net show-history #menu: Tools > Show History
|
||||
l ab-loop #menu: Tools > Set/clear A-B loop points
|
||||
L cycle-values loop-file "inf" "no" #menu: Tools > Toggle infinite file looping
|
||||
Ctrl+h cycle-values hwdec "auto" "no" #menu: Tools > Cycle Hardware Decoding
|
||||
_ script-message mpv.net execute-mpv-command #menu: Tools > Execute mpv command...
|
||||
_ script-message mpv.net manage-file-associations #menu: Tools > Manage File Associations...
|
||||
|
||||
_ script-message mpv.net shell-execute https://mpv.io/manual/stable/ #menu: Help > Show mpv manual
|
||||
_ script-message mpv.net shell-execute https://github.com/mpv-player/mpv/blob/master/etc/input.conf #menu: Help > Show mpv default keys
|
||||
_ script-message mpv.net shell-execute https://github.com/stax76/mpv.net/blob/master/mpv.net/Resources/inputConf.txt #menu: Help > Show mpv.net default keys
|
||||
_ script-message mpv.net shell-execute https://mpv-net.github.io/mpv.net-web-site/ #menu: Help > Show mpv.net web site
|
||||
_ script-message mpv.net shell-execute https://github.com/stax76/mpv.net/blob/master/Manual.md #menu: Help > Show mpv.net manual
|
||||
_ ignore #menu: Help > -
|
||||
_ script-message mpv.net show-about #menu: Help > About mpv.net
|
||||
|
||||
_ ignore #menu: -
|
||||
Esc quit #menu: Exit
|
||||
Q quit-watch-later #menu: Exit Watch Later
|
||||
|
||||
> playlist-next
|
||||
< playlist-prev
|
||||
Power quit
|
||||
Play cycle pause
|
||||
Pause cycle pause
|
||||
PlayPause cycle pause
|
||||
Stop stop
|
||||
Forward seek 60
|
||||
Rewind seek -60
|
||||
Mute cycle mute
|
||||
Volume_Up add volume 10
|
||||
Volume_Down add volume -10
|
||||
Wheel_Up add volume 10
|
||||
Wheel_Down add volume -10
|
||||
Prev playlist-prev
|
||||
Next playlist-next
|
||||
|
||||
MBTN_LEFT_DBL cycle fullscreen
|
||||
@@ -1,25 +0,0 @@
|
||||
|
||||
# This file defines the input (keys and mouse) bindings of mpv and mpv.net
|
||||
# and it also defines the context menu of mpv.net. mpv.net has an input
|
||||
# editor and an config editor as alternatives to editing conf text files.
|
||||
# The input and config editor can be found in mpv.net's context menu at:
|
||||
|
||||
# Settings > Show Config Editor
|
||||
# Settings > Show Input Editor
|
||||
|
||||
# The defaults of this file can be found at:
|
||||
|
||||
# https://github.com/stax76/mpv.net/blob/master/mpv.net/Resources/inputConf.txt
|
||||
|
||||
# the defaults of mpv can be found at:
|
||||
|
||||
# https://github.com/mpv-player/mpv/blob/master/etc/inputConf
|
||||
|
||||
# mpv.net's defaults of mpv.conf contain: 'input-default-bindings = no'
|
||||
# which disables mpv's input defaults. Every line in this file begins with a
|
||||
# space character to make it easier to do a text search, so if you want to know
|
||||
# if 'o' has already a binding you can make a text search on ' o '.
|
||||
|
||||
# mpv input commands: https://github.com/stax76/mpv.net/wiki/mpv-input-commands
|
||||
|
||||
# mpv input keys: https://github.com/stax76/mpv.net/wiki/mpv-input-keys
|
||||
@@ -1,14 +0,0 @@
|
||||
|
||||
# mpv manual: https://mpv.io/manual/master/
|
||||
|
||||
# mpv.net mpv.conf defaults: https://github.com/stax76/mpv.net/blob/master/mpv.net/Resources/mpvConf.txt
|
||||
|
||||
input-ar-delay = 500
|
||||
input-ar-rate = 20
|
||||
volume = 50
|
||||
hwdec = yes
|
||||
keep-open = yes
|
||||
keep-open-pause = no
|
||||
osd-playing-msg = ${filename}
|
||||
screenshot-directory = ~~desktop/
|
||||
input-default-bindings = no
|
||||
@@ -1,320 +0,0 @@
|
||||
[[settings]]
|
||||
name = "hwdec"
|
||||
default = "no"
|
||||
filter = "Video"
|
||||
helpurl = "https://mpv.io/manual/master/#options-hwdec"
|
||||
help = "Specify the hardware video decoding API that should be used if possible. Whether hardware decoding is actually done depends on the video codec. If hardware decoding is not possible, mpv will fall back on software decoding.\n\nFor more information visit:"
|
||||
options = [{ name = "no", help = "always use software decoding" },
|
||||
{ name = "auto", help = "enable best hw decoder (see below)" },
|
||||
{ name = "yes", help = "exactly the same as auto" },
|
||||
{ name = "auto-copy", help = "enable best hw decoder with copy-back (see below)" },
|
||||
{ name = "dxva2", help = "requires vo=gpu with gpu-context=d3d11, gpu-context=angle or gpu-context=dxinterop (Windows only)" },
|
||||
{ name = "dxva2-copy", help = "copies video back to system RAM (Windows only)" },
|
||||
{ name = "d3d11va", help = "requires vo=gpu with gpu-context=d3d11 or gpu-context=angle (Windows 8+ only)" },
|
||||
{ name = "d3d11va-copy", help = "copies video back to system RAM (Windows 8+ only)" },
|
||||
{ name = "cuda", help = "requires vo=gpu (Any platform CUDA is available)" },
|
||||
{ name = "cuda-copy", help = "copies video back to system RAM (Any platform CUDA is available)" },
|
||||
{ name = "nvdec", help = "requires vo=gpu (Any platform CUDA is available)" },
|
||||
{ name = "nvdec-copy", help = "copies video back to system RAM (Any platform CUDA is available)" },
|
||||
{ name = "crystalhd", help = "copies video back to system RAM (Any platform supported by hardware)" },
|
||||
{ name = "rkmpp", help = "requires vo=gpu (some RockChip devices only)" }]
|
||||
|
||||
[[settings]]
|
||||
name = "gpu-api"
|
||||
default = "auto"
|
||||
filter = "Video"
|
||||
help = "Controls which type of graphics APIs will be accepted."
|
||||
options = [{ name = "auto", help = "Use any available API" },
|
||||
{ name = "opengl", help = "Allow only OpenGL (requires OpenGL 2.1+ or GLES 2.0+)" },
|
||||
{ name = "vulkan", help = "Allow only Vulkan (requires a valid/working spirv-compiler)" },
|
||||
{ name = "d3d11", help = "Allow only gpu-context=d3d11" }]
|
||||
|
||||
[[settings]]
|
||||
name = "gpu-context"
|
||||
default = "auto"
|
||||
filter = "Video"
|
||||
options = [{ name = "auto", help = "auto-select" },
|
||||
{ name = "win", help = "Win32/WGL" },
|
||||
{ name = "winvk", help = "VK_KHR_win32_surface" },
|
||||
{ name = "angle", help = "Direct3D11 through the OpenGL ES translation layer ANGLE. This supports almost everything the win backend does (if the ANGLE build is new enough)." },
|
||||
{ name = "dxinterop", help = "(experimental) Win32, using WGL for rendering and Direct3D 9Ex for presentation. Works on Nvidia and AMD. Newer Intel chips with the latest drivers may also work." },
|
||||
{ name = "d3d11", help = "Win32, with native Direct3D 11 rendering." }]
|
||||
|
||||
[[settings]]
|
||||
name = "vo"
|
||||
default = "gpu"
|
||||
filter = "Video"
|
||||
help = "Video output drivers to be used.\n\nFor more information visit:"
|
||||
helpurl = "https://mpv.io/manual/master/#video-output-drivers-vo"
|
||||
options = [{ name = "gpu", help = "General purpose, customizable, GPU-accelerated video output driver. It supports extended scaling methods, dithering, color management, custom shaders, HDR, and more." },
|
||||
{ name = "direct3d", help = "Video output driver that uses the Direct3D interface" }]
|
||||
|
||||
[[settings]]
|
||||
name = "video-sync"
|
||||
default = "audio"
|
||||
filter = "Video"
|
||||
help = "How the player synchronizes audio and video.\n\nFor more information visit:"
|
||||
helpurl = "https://mpv.io/manual/master/#options-video-sync"
|
||||
options = [{ name = "audio" },
|
||||
{ name = "display-resample" },
|
||||
{ name = "display-resample-vdrop" },
|
||||
{ name = "display-resample-desync" },
|
||||
{ name = "display-vdrop" },
|
||||
{ name = "display-adrop" },
|
||||
{ name = "display-desync" },
|
||||
{ name = "desync" }]
|
||||
|
||||
[[settings]]
|
||||
name = "scale"
|
||||
default = "bilinear"
|
||||
filter = "Video"
|
||||
help = "The GPU renderer filter function to use when upscaling video. There are some more filters, but most are not as useful. For a complete list, pass help as value, e.g.: mpv --scale=help"
|
||||
options = [{ name = "bilinear", help = "Bilinear hardware texture filtering (fastest, very low quality)." },
|
||||
{ name = "spline36", help = "Mid quality and speed. This is the default when using gpu-hq." },
|
||||
{ name = "lanczos", help = "Lanczos scaling. Provides mid quality and speed. Generally worse than spline36, but it results in a slightly sharper image which is good for some content types. The number of taps can be controlled with scale-radius, but is best left unchanged. (This filter is an alias for sinc-windowed sinc)" },
|
||||
{ name = "ewa_lanczos", help = "Elliptic weighted average Lanczos scaling. Also known as Jinc. Relatively slow, but very good quality. The radius can be controlled with scale-radius. Increasing the radius makes the filter sharper but adds more ringing. (This filter is an alias for jinc-windowed jinc)" },
|
||||
{ name = "ewa_lanczossharp", help = "A slightly sharpened version of ewa_lanczos, preconfigured to use an ideal radius and parameter. If your hardware can run it, this is probably what you should use by default." },
|
||||
{ name = "mitchell", help = "Mitchell-Netravali. The B and C parameters can be set with scale-param1 and scale-param2. This filter is very good at downscaling (see dscale)." },
|
||||
{ name = "oversample", help = "A version of nearest neighbour that (naively) oversamples pixels, so that pixels overlapping edges get linearly interpolated instead of rounded. This essentially removes the small imperfections and judder artifacts caused by nearest-neighbour interpolation, in exchange for adding some blur. This filter is good at temporal interpolation, and also known as \"smoothmotion\" (see tscale)." },
|
||||
{ name = "linear", help = "A tscale filter." }]
|
||||
|
||||
[[settings]]
|
||||
name = "cscale"
|
||||
default = "bilinear"
|
||||
filter = "Video"
|
||||
help = "As scale, but for interpolating chroma information. If the image is not subsampled, this option is ignored entirely."
|
||||
options = [{ name = "bilinear", help = "Bilinear hardware texture filtering (fastest, very low quality)." },
|
||||
{ name = "spline36", help = "Mid quality and speed. This is the default when using gpu-hq." },
|
||||
{ name = "lanczos", help = "Lanczos scaling. Provides mid quality and speed. Generally worse than spline36, but it results in a slightly sharper image which is good for some content types. The number of taps can be controlled with scale-radius, but is best left unchanged. (This filter is an alias for sinc-windowed sinc)" },
|
||||
{ name = "ewa_lanczos", help = "Elliptic weighted average Lanczos scaling. Also known as Jinc. Relatively slow, but very good quality. The radius can be controlled with scale-radius. Increasing the radius makes the filter sharper but adds more ringing. (This filter is an alias for jinc-windowed jinc)" },
|
||||
{ name = "ewa_lanczossharp", help = "A slightly sharpened version of ewa_lanczos, preconfigured to use an ideal radius and parameter. If your hardware can run it, this is probably what you should use by default." },
|
||||
{ name = "mitchell", help = "Mitchell-Netravali. The B and C parameters can be set with scale-param1 and scale-param2. This filter is very good at downscaling (see dscale)." },
|
||||
{ name = "oversample", help = "A version of nearest neighbour that (naively) oversamples pixels, so that pixels overlapping edges get linearly interpolated instead of rounded. This essentially removes the small imperfections and judder artifacts caused by nearest-neighbour interpolation, in exchange for adding some blur. This filter is good at temporal interpolation, and also known as \"smoothmotion\" (see tscale)." },
|
||||
{ name = "linear", help = "A tscale filter." }]
|
||||
|
||||
[[settings]]
|
||||
name = "dscale"
|
||||
default = "bilinear"
|
||||
filter = "Video"
|
||||
help = "Like scale, but apply these filters on downscaling instead. If this option is unset, the filter implied by scale will be applied."
|
||||
options = [{ name = "bilinear", help = "Bilinear hardware texture filtering (fastest, very low quality)." },
|
||||
{ name = "spline36", help = "Mid quality and speed. This is the default when using gpu-hq." },
|
||||
{ name = "lanczos", help = "Lanczos scaling. Provides mid quality and speed. Generally worse than spline36, but it results in a slightly sharper image which is good for some content types. The number of taps can be controlled with scale-radius, but is best left unchanged. (This filter is an alias for sinc-windowed sinc)" },
|
||||
{ name = "ewa_lanczos", help = "Elliptic weighted average Lanczos scaling. Also known as Jinc. Relatively slow, but very good quality. The radius can be controlled with scale-radius. Increasing the radius makes the filter sharper but adds more ringing. (This filter is an alias for jinc-windowed jinc)" },
|
||||
{ name = "ewa_lanczossharp", help = "A slightly sharpened version of ewa_lanczos, preconfigured to use an ideal radius and parameter. If your hardware can run it, this is probably what you should use by default." },
|
||||
{ name = "mitchell", help = "Mitchell-Netravali. The B and C parameters can be set with scale-param1 and scale-param2. This filter is very good at downscaling (see dscale)." },
|
||||
{ name = "oversample", help = "A version of nearest neighbour that (naively) oversamples pixels, so that pixels overlapping edges get linearly interpolated instead of rounded. This essentially removes the small imperfections and judder artifacts caused by nearest-neighbour interpolation, in exchange for adding some blur. This filter is good at temporal interpolation, and also known as \"smoothmotion\" (see tscale)." },
|
||||
{ name = "linear", help = "A tscale filter." }]
|
||||
|
||||
[[settings]]
|
||||
name = "dither-depth"
|
||||
default = "no"
|
||||
filter = "Video"
|
||||
help = "Set dither target depth to N. Note that the depth of the connected video display device cannot be detected. Often, LCD panels will do dithering on their own, which conflicts with this option and leads to ugly output."
|
||||
options = [{ name = "no", help = "Disable any dithering done by mpv." },
|
||||
{ name = "auto", help = "Automatic selection. If output bit depth cannot be detected, 8 bits per component are assumed." },
|
||||
{ name = "8", help = "Dither to 8 bit output." }]
|
||||
|
||||
[[settings]]
|
||||
name = "correct-downscaling"
|
||||
default = "no"
|
||||
filter = "Video"
|
||||
help = "When using convolution based filters, extend the filter size when downscaling. Increases quality, but reduces performance while downscaling.\n\nThis will perform slightly sub-optimally for anamorphic video (but still better than without it) since it will extend the size to match only the milder of the scale factors between the axes."
|
||||
options = [{ name = "yes" },
|
||||
{ name = "no" }]
|
||||
|
||||
[[settings]]
|
||||
name = "sigmoid-upscaling"
|
||||
default = "no"
|
||||
filter = "Video"
|
||||
help = "When upscaling, use a sigmoidal color transform to avoid emphasizing ringing artifacts. This also implies linear-scaling."
|
||||
options = [{ name = "yes" },
|
||||
{ name = "no" }]
|
||||
|
||||
[[settings]]
|
||||
name = "deband"
|
||||
default = "no"
|
||||
filter = "Video"
|
||||
help = "Enable the debanding algorithm. This greatly reduces the amount of visible banding, blocking and other quantization artifacts, at the expense of very slightly blurring some of the finest details. In practice, it's virtually always an improvement - the only reason to disable it would be for performance."
|
||||
options = [{ name = "yes" },
|
||||
{ name = "no" }]
|
||||
|
||||
[[settings]]
|
||||
name = "volume"
|
||||
default = "100"
|
||||
filter = "Audio"
|
||||
help = "Set the startup volume. 0 means silence, 100 means no volume reduction or amplification. Negative values can be passed for compatibility, but are treated as 0. Since mpv 0.18.1, this always controls the internal mixer (aka \"softvol\"). Default: 100"
|
||||
|
||||
[[settings]]
|
||||
name = "alang"
|
||||
default = ""
|
||||
filter = "Audio"
|
||||
help = "Specify a priority list of audio languages to use. Different container formats employ different language codes. DVDs use ISO 639-1 two-letter language codes, Matroska, MPEG-TS and NUT use ISO 639-2 three-letter language codes, while OGM uses a free-form identifier. See also aid.\n\nExamples\n\nmpv dvd://1 alang=hu,en chooses the Hungarian language track on a DVD and falls back on English if Hungarian is not available.\n\nmpv alang=jpn example.mkv plays a Matroska file with Japanese audio."
|
||||
|
||||
[[settings]]
|
||||
name = "audio-file-auto"
|
||||
default = "no"
|
||||
filter = "Audio"
|
||||
help = "Load additional audio files matching the video filename. The parameter specifies how external audio files are matched."
|
||||
options = [{ name = "no", help = "Don't automatically load external audio files." },
|
||||
{ name = "exact", help = "Load the media filename with audio file extension." },
|
||||
{ name = "fuzzy", help = "Load all audio files containing media filename." },
|
||||
{ name = "all", help = "Load all audio files in the current and audio-file-paths directories." }]
|
||||
|
||||
[[settings]]
|
||||
name = "slang"
|
||||
default = ""
|
||||
filter = "Subtitle"
|
||||
help = "Specify a priority list of subtitle languages to use. Different container formats employ different language codes. DVDs use ISO 639-1 two letter language codes, Matroska uses ISO 639-2 three letter language codes while OGM uses a free-form identifier. See also sid."
|
||||
|
||||
[[settings]]
|
||||
name = "sub-auto"
|
||||
default = "exact"
|
||||
filter = "Subtitle"
|
||||
help = "Load additional subtitle files matching the video filename. The parameter specifies how external subtitle files are matched. exact is enabled by default."
|
||||
options = [{ name = "no", help = "Don't automatically load external subtitle files." },
|
||||
{ name = "exact", help = "Load the media filename with subtitle file extension." },
|
||||
{ name = "fuzzy", help = "Load all subs containing media filename." },
|
||||
{ name = "all", help = "Load all subs in the current and sub-file-paths directories." }]
|
||||
|
||||
[[settings]]
|
||||
name = "sub-font"
|
||||
default = ""
|
||||
filter = "Subtitle"
|
||||
help = "Specify font to use for subtitles that do not themselves specify a particular font. The default is sans-serif."
|
||||
|
||||
[[settings]]
|
||||
name = "sub-font-size"
|
||||
default = ""
|
||||
filter = "Subtitle"
|
||||
help = "Specify the sub font size. The unit is the size in scaled pixels at a window height of 720. The actual pixel size is scaled with the window height: if the window height is larger or smaller than 720, the actual size of the text increases or decreases as well. Default: 55"
|
||||
|
||||
[[settings]]
|
||||
name = "sub-color"
|
||||
default = ""
|
||||
type = "color"
|
||||
filter = "Subtitle"
|
||||
help = "Specify the color used for unstyled text subtitles.\n\nThe color is specified in the form r/g/b, where each color component is specified as number in the range 0.0 to 1.0. It's also possible to specify the transparency by using r/g/b/a, where the alpha value 0 means fully transparent, and 1.0 means opaque. If the alpha component is not given, the color is 100% opaque.\n\nPassing a single number to the option sets the sub to gray, and the form gray/a lets you specify alpha additionally.\n\nExamples\n\n1.0/0.0/0.0 set sub to opaque red\n1.0/0.0/0.0/0.75 set sub to opaque red with 75% alpha\n0.5/0.75 set sub to 50% gray with 75% alpha\n\nAlternatively, the color can be specified as a RGB hex triplet in the form #RRGGBB, where each 2-digit group expresses a color value in the range 0 (00) to 255 (FF). For example, #FF0000 is red. This is similar to web colors. Alpha is given with #AARRGGBB.\n\nExamples\n\n#FF0000 set sub to opaque red\n#C0808080 set sub to 50% gray with 75% alpha"
|
||||
|
||||
[[settings]]
|
||||
name = "sub-border-color"
|
||||
default = ""
|
||||
type = "color"
|
||||
filter = "Subtitle"
|
||||
help = "See sub-color. Color used for the sub font border. Ignored when sub-back-color is specified (or more exactly: when that option is not set to completely transparent)."
|
||||
|
||||
[[settings]]
|
||||
name = "sub-back-color"
|
||||
default = ""
|
||||
type = "color"
|
||||
filter = "Subtitle"
|
||||
help = "See sub-color. Color used for sub text background. You can use sub-shadow-offset to change its size relative to the text."
|
||||
|
||||
[[settings]]
|
||||
name = "screen"
|
||||
default = ""
|
||||
filter = "Screen"
|
||||
help = "In multi-monitor configurations (i.e. a single desktop that spans across multiple displays), this option tells mpv which screen to display the video on."
|
||||
|
||||
[[settings]]
|
||||
name = "osd-playing-msg"
|
||||
default = ""
|
||||
width = 300
|
||||
filter = "Screen"
|
||||
help = "Show a message on OSD when playback starts. The string is expanded for properties, e.g. osd-playing-msg='file: ${filename}' will show the message file: followed by a space and the currently played filename. For more information visit:"
|
||||
helpurl = "https://mpv.io/manual/master/#property-expansion"
|
||||
|
||||
[[settings]]
|
||||
name = "osd-font-size"
|
||||
default = "55"
|
||||
filter = "Screen"
|
||||
help = "Specify the OSD font size. See sub-font-size for details. Default: 55"
|
||||
|
||||
[[settings]]
|
||||
name = "fullscreen"
|
||||
default = "no"
|
||||
filter = "Screen"
|
||||
help = "Start the player in fullscreen mode."
|
||||
options = [{ name = "yes" },
|
||||
{ name = "no" }]
|
||||
|
||||
[[settings]]
|
||||
name = "screenshot-directory"
|
||||
default = ""
|
||||
width = 500
|
||||
type = "folder"
|
||||
filter = "Screen"
|
||||
help = "Store screenshots in this directory. This path is joined with the filename generated by screenshot-template. If the template filename is already absolute, the directory is ignored.\n\nIf the directory does not exist, it is created on the first screenshot. If it is not a directory, an error is generated when trying to write a screenshot.\n\nThis option is not set by default, and thus will write screenshots to the directory from which mpv was started. In pseudo-gui mode (see PSEUDO GUI MODE), this is set to the desktop."
|
||||
|
||||
[[settings]]
|
||||
name = "autofit"
|
||||
default = "50%"
|
||||
filter = "Screen"
|
||||
help = "Set the initial window size in percent. Please note that this setting is only partly implemented in mpv.net, accepted are only integer values with percent sign added. Default: 50%"
|
||||
|
||||
[[settings]]
|
||||
name = "keep-open-pause"
|
||||
default = "yes"
|
||||
filter = "Playback"
|
||||
help = "If set to no, instead of pausing when keep-open is active, just stop at end of file and continue playing forward when you seek backwards until end where it stops again."
|
||||
options = [{ name = "yes" },
|
||||
{ name = "no" }]
|
||||
|
||||
[[settings]]
|
||||
name = "keep-open"
|
||||
default = "no"
|
||||
filter = "Playback"
|
||||
help = "Do not terminate when playing or seeking beyond the end of the file, and there is not next file to be played (and loop is not used). Instead, pause the player. When trying to seek beyond end of the file, the player will attempt to seek to the last frame.\n\nNormally, this will act like set pause yes on EOF, unless the keep-open-pause=no option is set."
|
||||
options = [{ name = "yes", help = "Don't terminate if the current file is the last playlist entry. Equivalent to keep-open without arguments."},
|
||||
{ name = "no", help = "If the current file ends, go to the next file or terminate." },
|
||||
{ name = "always", help = "Like yes, but also applies to files before the last playlist entry. This means playback will never automatically advance to the next file."}]
|
||||
|
||||
[[settings]]
|
||||
name = "loop-file"
|
||||
default = ""
|
||||
filter = "Playback"
|
||||
help = "Loop a single file N times. inf means forever, no means normal playback.\n\nThe difference to loop-playlist is that this doesn't loop the playlist, just the file itself. If the playlist contains only a single file, the difference between the two option is that this option performs a seek on loop, instead of reloading the file. loop is an alias for this option."
|
||||
|
||||
[[settings]]
|
||||
name = "save-position-on-quit"
|
||||
default = "no"
|
||||
filter = "Playback"
|
||||
help = "Always save the current playback position on quit. When this file is played again later, the player will seek to the old playback position on start. This does not happen if playback of a file is stopped in any other way than quitting. For example, going to the next file in the playlist will not save the position, and start playback at beginning the next time the file is played.\n\nThis behavior is disabled by default, but is always available when quitting the player with Shift+Q."
|
||||
options = [{ name = "yes" },
|
||||
{ name = "no" }]
|
||||
|
||||
[[settings]]
|
||||
name = "input-ar-delay"
|
||||
default = ""
|
||||
filter = "Input"
|
||||
help = "Delay in milliseconds before we start to autorepeat a key (0 to disable)."
|
||||
|
||||
[[settings]]
|
||||
name = "input-ar-rate"
|
||||
default = ""
|
||||
filter = "Input"
|
||||
help = "Number of key presses to generate per second on autorepeat."
|
||||
|
||||
[[settings]]
|
||||
name = "hr-seek"
|
||||
default = "absolute"
|
||||
filter = "Playback"
|
||||
help = "Select when to use precise seeks that are not limited to keyframes. Such seeks require decoding video from the previous keyframe up to the target position and so can take some time depending on decoding performance. For some video formats, precise seeks are disabled. This option selects the default choice to use for seeks; it is possible to explicitly override that default in the definition of key bindings and in input commands."
|
||||
options = [{ name = "yes", help = "Use precise seeks whenever possible." },
|
||||
{ name = "no", help = "Never use precise seeks." },
|
||||
{ name = "absolute", help = "Use precise seeks if the seek is to an absolute position in the file, such as a chapter seek, but not for relative seeks like the default behavior of arrow keys." },
|
||||
{ name = "always", help = "Same as yes (for compatibility)." }]
|
||||
|
||||
[[settings]]
|
||||
name = "track-auto-selection"
|
||||
default = "yes"
|
||||
filter = "Playback"
|
||||
help = "Enable the default track auto-selection. Enabling this will make the player select streams according to aid, alang, and others. If it is disabled, no tracks are selected. In addition, the player will not exit if no tracks are selected, and wait instead (this wait mode is similar to pausing, but the pause option is not set).\n\nThis is useful with lavfi-complex: you can start playback in this mode, and then set select tracks at runtime by setting the filter graph. Note that if lavfi-complex is set before playback is started, the referenced tracks are always selected."
|
||||
options = [{ name = "yes" },
|
||||
{ name = "no" }]
|
||||
|
||||
[[settings]]
|
||||
name = "loop-playlist"
|
||||
default = ""
|
||||
filter = "Playback"
|
||||
help = "<N|inf|force|no> Loops playback N times. A value of 1 plays it one time (default), 2 two times, etc. inf means forever. no is the same as 1 and disables looping. If several files are specified on command line, the entire playlist is looped. The force mode is like inf, but does not skip playlist entries which have been marked as failing. This means the player might waste CPU time trying to loop a file that doesn't exist. But it might be useful for playing webradios under very bad network conditions."
|
||||
@@ -1,25 +0,0 @@
|
||||
[[settings]]
|
||||
name = "dark-mode"
|
||||
default = "always"
|
||||
filter = "mpv.net"
|
||||
help = "Enables a dark theme."
|
||||
options = [{ name = "always" },
|
||||
{ name = "system" , help = "Available on Windows 10 or higher" },
|
||||
{ name = "never" }]
|
||||
|
||||
[[settings]]
|
||||
name = "clipboard-monitoring"
|
||||
default = "yes"
|
||||
filter = "mpv.net"
|
||||
help = "Monitors the clipboard for URLs to play."
|
||||
options = [{ name = "yes" },
|
||||
{ name = "no" }]
|
||||
|
||||
[[settings]]
|
||||
name = "process-instance"
|
||||
default = "single"
|
||||
filter = "mpv.net"
|
||||
help = "Defines if more then one mpv.net process is allowed."
|
||||
options = [{ name = "multi", help = "Create a new process everytime the shell starts mpv.net" },
|
||||
{ name = "single", help = "Force a single process everytime the shell starts mpv.net" },
|
||||
{ name = "queue", help = "Force a single process and add files to playlist" }]
|
||||
|
Before Width: | Height: | Size: 6.7 KiB |
@@ -1,127 +0,0 @@
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Threading;
|
||||
using System.Management.Automation.Runspaces;
|
||||
using System.Reflection;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace mpvnet
|
||||
{
|
||||
public class PowerShellScript
|
||||
{
|
||||
public static object Execute(string code, string[] parameters)
|
||||
{
|
||||
using (Runspace runspace = RunspaceFactory.CreateRunspace())
|
||||
{
|
||||
runspace.ApartmentState = ApartmentState.STA;
|
||||
runspace.ThreadOptions = PSThreadOptions.UseCurrentThread;
|
||||
runspace.Open();
|
||||
|
||||
using (Pipeline pipeline = runspace.CreatePipeline())
|
||||
{
|
||||
pipeline.Commands.AddScript(
|
||||
@"Using namespace mpvnet;
|
||||
Using namespace System;
|
||||
[System.Reflection.Assembly]::LoadWithPartialName(""mpvnet"")");
|
||||
|
||||
pipeline.Commands.AddScript(code);
|
||||
|
||||
try
|
||||
{
|
||||
var ret = pipeline.Invoke(parameters);
|
||||
|
||||
if (ret.Count > 0)
|
||||
return ret[0];
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
try
|
||||
{
|
||||
using (Pipeline pipeline2 = runspace.CreatePipeline())
|
||||
{
|
||||
pipeline2.Commands.AddScript("$PSVersionTable.PSVersion.Major * 10 +" +
|
||||
"$PSVersionTable.PSVersion.Minor");
|
||||
|
||||
if (Convert.ToInt32(pipeline2.Invoke()[0].ToString()) < 51)
|
||||
throw new Exception();
|
||||
}
|
||||
}
|
||||
catch (Exception ex2)
|
||||
{
|
||||
Msg.ShowError("PowerShell Setup Problem\n\nEnsure you have at least PowerShell 5.1 installed.", ex2.ToString());
|
||||
return null;
|
||||
}
|
||||
Msg.ShowException(ex);
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static void Init(string filePath)
|
||||
{
|
||||
foreach (var eventInfo in typeof(mp).GetEvents())
|
||||
{
|
||||
if (eventInfo.Name.ToLower() ==
|
||||
Path.GetFileNameWithoutExtension(filePath).ToLower().Replace("-", ""))
|
||||
{
|
||||
PowerShellEventObject eventObject = new PowerShellEventObject();
|
||||
MethodInfo mi;
|
||||
eventObject.FilePath = filePath;
|
||||
|
||||
if (eventInfo.EventHandlerType == typeof(Action))
|
||||
{
|
||||
mi = eventObject.GetType().GetMethod(nameof(PowerShellEventObject.Invoke));
|
||||
}
|
||||
else if (eventInfo.EventHandlerType == typeof(Action<EndFileEventMode>))
|
||||
{
|
||||
mi = eventObject.GetType().GetMethod(nameof(PowerShellEventObject.InvokeEndFileEventMode));
|
||||
}
|
||||
else if (eventInfo.EventHandlerType == typeof(Action<string[]>))
|
||||
{
|
||||
mi = eventObject.GetType().GetMethod(nameof(PowerShellEventObject.InvokeStrings));
|
||||
}
|
||||
else
|
||||
throw new Exception();
|
||||
|
||||
eventObject.EventInfo = eventInfo;
|
||||
Delegate handler = Delegate.CreateDelegate(eventInfo.EventHandlerType, eventObject, mi);
|
||||
eventObject.Delegate = handler;
|
||||
eventInfo.AddEventHandler(eventObject, handler);
|
||||
return;
|
||||
}
|
||||
}
|
||||
Task.Run(() =>
|
||||
{
|
||||
PowerShellScript.Execute(File.ReadAllText(filePath), new string[] {});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
public class PowerShellEventObject
|
||||
{
|
||||
public EventInfo EventInfo { get; set; }
|
||||
public Delegate Delegate { get; set; }
|
||||
public string FilePath { get; set; }
|
||||
|
||||
public void Invoke()
|
||||
{
|
||||
Task.Run(() => { PowerShellScript.Execute(File.ReadAllText(FilePath), new string[] { }); });
|
||||
}
|
||||
|
||||
public void InvokeEndFileEventMode(EndFileEventMode arg)
|
||||
{
|
||||
Task.Run(() =>
|
||||
{
|
||||
PowerShellScript.Execute(File.ReadAllText(FilePath), new string[] { arg.ToString() });
|
||||
});
|
||||
}
|
||||
|
||||
public void InvokeStrings(string[] args)
|
||||
{
|
||||
Task.Run(() => {
|
||||
PowerShellScript.Execute(File.ReadAllText(FilePath), args);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,59 +0,0 @@
|
||||
using System;
|
||||
using System.Reflection;
|
||||
|
||||
using Microsoft.Scripting;
|
||||
using Microsoft.Scripting.Hosting;
|
||||
|
||||
using IronPython.Hosting;
|
||||
using IronPython.Runtime;
|
||||
using IronPython.Runtime.Operations;
|
||||
|
||||
namespace mpvnet
|
||||
{
|
||||
public class PythonScript
|
||||
{
|
||||
ScriptEngine engine;
|
||||
ScriptScope scope;
|
||||
|
||||
public PythonScript(string code)
|
||||
{
|
||||
try
|
||||
{
|
||||
engine = Python.CreateEngine();
|
||||
scope = engine.CreateScope();
|
||||
scope.ImportModule("clr");
|
||||
engine.Execute("import clr", scope);
|
||||
engine.Execute("clr.AddReference(\"mpvnet\")", scope);
|
||||
engine.Execute("import mpvnet", scope);
|
||||
engine.Execute("from mpvnet import *", scope);
|
||||
engine.Execute(code, scope);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
if (ex is SyntaxErrorException e)
|
||||
Msg.ShowError($"{e.Line}, {e.Column}: " + ex.Message);
|
||||
else
|
||||
Msg.ShowException(ex);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class PythonEventObject
|
||||
{
|
||||
public PythonFunction PythonFunction { get; set; }
|
||||
public EventInfo EventInfo { get; set; }
|
||||
public Delegate Delegate { get; set; }
|
||||
|
||||
public void Invoke() => PythonCalls.Call(PythonFunction);
|
||||
|
||||
public void InvokeEndFileEventMode(EndFileEventMode arg)
|
||||
{
|
||||
PythonCalls.Call(PythonFunction, new[] { arg });
|
||||
}
|
||||
|
||||
public void InvokeStrings(string[] arg)
|
||||
{
|
||||
PythonCalls.Call(PythonFunction, new[] { arg });
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
<Window x:Class="mpvnet.AboutWindow"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
mc:Ignorable="d"
|
||||
Title="About mpv.net" Height="230" Width="420" FontSize="16" ShowInTaskbar="False"
|
||||
WindowStartupLocation="CenterOwner" ResizeMode="NoResize">
|
||||
<Grid>
|
||||
<StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
|
||||
<TextBlock FontSize="48" HorizontalAlignment="Center" Margin="0,0,0,10">mpv.net</TextBlock>
|
||||
<TextBlock HorizontalAlignment="Center">Copyright (c) 2017-2019 Frank Skare (stax76)</TextBlock>
|
||||
<TextBlock Name="Version" HorizontalAlignment="Center" />
|
||||
<TextBlock HorizontalAlignment="Center" Margin="0,0,0,20">MIT License</TextBlock>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Window>
|
||||
@@ -1,18 +0,0 @@
|
||||
using System.Windows;
|
||||
using System.Windows.Input;
|
||||
|
||||
namespace mpvnet
|
||||
{
|
||||
public partial class AboutWindow : Window
|
||||
{
|
||||
public AboutWindow()
|
||||
{
|
||||
InitializeComponent();
|
||||
Version.Text = $"Version {System.Windows.Forms.Application.ProductVersion}";
|
||||
Foreground = WPF.WPF.ThemeBrush;
|
||||
}
|
||||
|
||||
protected override void OnPreviewKeyDown(KeyEventArgs e) => Close();
|
||||
protected override void OnMouseDown(MouseButtonEventArgs e) => Close();
|
||||
}
|
||||
}
|
||||
@@ -1,35 +0,0 @@
|
||||
<Window x:Class="mpvnet.CommandPaletteWindow"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
mc:Ignorable="d"
|
||||
Title="Command Palette" Height="295" Width="400" ResizeMode="NoResize"
|
||||
WindowStartupLocation="CenterOwner" Loaded="Window_Loaded" FontSize="13">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition></RowDefinition>
|
||||
</Grid.RowDefinitions>
|
||||
<TextBox Name="FilterTextBox" PreviewKeyDown="FilterTextBox_PreviewKeyDown" TextChanged="FilterTextBox_TextChanged"></TextBox>
|
||||
<ListView Name="ListView" Grid.Row="1" MouseUp="ListView_MouseUp">
|
||||
<ListView.ItemContainerStyle>
|
||||
<Style TargetType="ListBoxItem">
|
||||
<Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter>
|
||||
</Style>
|
||||
</ListView.ItemContainerStyle>
|
||||
<ListView.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition />
|
||||
<ColumnDefinition />
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Text="{Binding Path}"></TextBlock>
|
||||
<TextBlock Grid.Column="1" Text="{Binding Input}" HorizontalAlignment="Right"></TextBlock>
|
||||
</Grid>
|
||||
</DataTemplate>
|
||||
</ListView.ItemTemplate>
|
||||
</ListView>
|
||||
</Grid>
|
||||
</Window>
|
||||
@@ -1,122 +0,0 @@
|
||||
using Microsoft.Win32;
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
using System.Windows;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Interop;
|
||||
using System.Windows.Media;
|
||||
|
||||
namespace mpvnet
|
||||
{
|
||||
public partial class CommandPaletteWindow : Window
|
||||
{
|
||||
ICollectionView CollectionView;
|
||||
|
||||
public CommandPaletteWindow()
|
||||
{
|
||||
InitializeComponent();
|
||||
CollectionViewSource collectionViewSource = new CollectionViewSource() { Source = CommandItem.Items };
|
||||
CollectionView = collectionViewSource.View;
|
||||
var yourCostumFilter = new Predicate<object>(item => Filter((CommandItem)item));
|
||||
CollectionView.Filter = yourCostumFilter;
|
||||
ListView.ItemsSource = CollectionView;
|
||||
|
||||
if (App.IsDarkMode)
|
||||
{
|
||||
ListView.Foreground = Brushes.White;
|
||||
ListView.Background = Brushes.Black;
|
||||
FilterTextBox.Foreground = Brushes.White;
|
||||
FilterTextBox.Background = Brushes.Black;
|
||||
}
|
||||
}
|
||||
|
||||
bool Filter(CommandItem item)
|
||||
{
|
||||
if (item.Command == "" || item.Path == "")
|
||||
return false;
|
||||
string filter = FilterTextBox.Text.ToLower();
|
||||
if (filter == "") return true;
|
||||
if (item.Command.ToLower().Contains(filter) ||
|
||||
item.Input.ToLower().Contains(filter) ||
|
||||
item.Path.ToLower().Contains(filter))
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
private void Window_Loaded(object sender, RoutedEventArgs e)
|
||||
{
|
||||
HwndSource source = HwndSource.FromHwnd(new WindowInteropHelper(this).Handle);
|
||||
source.AddHook(new HwndSourceHook(WndProc));
|
||||
Keyboard.Focus(FilterTextBox);
|
||||
SelectFirst();
|
||||
}
|
||||
|
||||
void SelectFirst()
|
||||
{
|
||||
if (ListView.Items.Count > 0)
|
||||
ListView.SelectedIndex = 0;
|
||||
}
|
||||
|
||||
private IntPtr WndProc(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled)
|
||||
{
|
||||
if (msg == 0x200 /*WM_MOUSEMOVE*/ && Mouse.LeftButton != MouseButtonState.Pressed)
|
||||
handled = true;
|
||||
return IntPtr.Zero;
|
||||
}
|
||||
|
||||
private void FilterTextBox_PreviewKeyDown(object sender, KeyEventArgs e)
|
||||
{
|
||||
switch (e.Key)
|
||||
{
|
||||
case Key.Up:
|
||||
{
|
||||
int index = ListView.SelectedIndex;
|
||||
index -= 1;
|
||||
if (index < 0) index = 0;
|
||||
ListView.SelectedIndex = index;
|
||||
ListView.ScrollIntoView(ListView.SelectedItem);
|
||||
}
|
||||
break;
|
||||
case Key.Down:
|
||||
{
|
||||
int index = ListView.SelectedIndex;
|
||||
index += 1;
|
||||
if (index > ListView.Items.Count - 1) index = ListView.Items.Count - 1;
|
||||
ListView.SelectedIndex = index;
|
||||
ListView.ScrollIntoView(ListView.SelectedItem);
|
||||
}
|
||||
break;
|
||||
case Key.Escape:
|
||||
Close();
|
||||
break;
|
||||
case Key.Enter:
|
||||
Execute();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void Execute()
|
||||
{
|
||||
if (ListView.SelectedItem != null)
|
||||
{
|
||||
CommandItem item = ListView.SelectedItem as CommandItem;
|
||||
Close();
|
||||
mp.command_string(item.Command);
|
||||
}
|
||||
}
|
||||
|
||||
private void ListView_MouseUp(object sender, MouseButtonEventArgs e)
|
||||
{
|
||||
Execute();
|
||||
}
|
||||
|
||||
private void FilterTextBox_TextChanged(object sender, System.Windows.Controls.TextChangedEventArgs e)
|
||||
{
|
||||
CollectionView.Refresh();
|
||||
SelectFirst();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,36 +0,0 @@
|
||||
<Window xmlns:Controls="clr-namespace:Controls" x:Name="ConfWindow1" x:Class="mpvnet.ConfWindow"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:WPF="clr-namespace:WPF"
|
||||
mc:Ignorable="d"
|
||||
Height="500" Width="700" Loaded="ConfWindow1_Loaded" ShowInTaskbar="False"
|
||||
WindowStartupLocation="CenterScreen" Title="Config Editor">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="*" />
|
||||
</Grid.RowDefinitions>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="100" />
|
||||
<ColumnDefinition Width="*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<Controls:SearchTextBoxUserControl HintText="Find a setting" x:Name="SearchControl" Width="250" Margin="0,20,0,0" Grid.ColumnSpan="2"/>
|
||||
<ScrollViewer x:Name="MainScrollViewer" VerticalScrollBarVisibility="Auto" Grid.Row="1" Grid.Column="2" Margin="0,0,0,10">
|
||||
<StackPanel x:Name="MainStackPanel"></StackPanel>
|
||||
</ScrollViewer>
|
||||
<StackPanel Margin="20,0,0,0" Grid.Row="1">
|
||||
<ListBox x:Name="FilterListBox" ItemsSource="{Binding FilterStrings}" BorderThickness="0" SelectionChanged="ListBox_SelectionChanged" Foreground="{x:Static WPF:WPF.ThemeBrush}" Background="{Binding Path=Background, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Window}}">
|
||||
<ListBox.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock Text="{Binding}" FontSize="16" />
|
||||
</DataTemplate>
|
||||
</ListBox.ItemTemplate>
|
||||
</ListBox>
|
||||
<TextBlock x:Name="OpenSettingsTextBlock" Margin="0,30,0,0" Cursor="Hand" TextWrapping="WrapWithOverflow" Foreground="{x:Static WPF:WPF.ThemeBrush}" MouseUp="OpenSettingsTextBlock_MouseUp">Open config folder</TextBlock>
|
||||
<TextBlock x:Name="ShowManualTextBlock" Margin="0,15,0,0" Cursor="Hand" TextWrapping="WrapWithOverflow" Foreground="{x:Static WPF:WPF.ThemeBrush}" MouseUp="ShowManualTextBlock_MouseUp">Show mpv manual</TextBlock>
|
||||
<TextBlock x:Name="SupportTextBlock" Margin="0,15,0,0" Cursor="Hand" TextWrapping="WrapWithOverflow" Foreground="{x:Static WPF:WPF.ThemeBrush}" MouseUp="SupportTextBlock_MouseUp">Show support forum</TextBlock>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Window>
|
||||
@@ -1,251 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using System.Linq;
|
||||
|
||||
using DynamicGUI;
|
||||
|
||||
namespace mpvnet
|
||||
{
|
||||
public partial class ConfWindow : Window
|
||||
{
|
||||
private List<SettingBase> SettingsDefinitions = Settings.LoadSettings(Properties.Resources.mpvConfToml);
|
||||
private List<SettingBase> NetSettingsDefinitions = Settings.LoadSettings(Properties.Resources.mpvNetConfToml);
|
||||
private Dictionary<string, Dictionary<string, string>> Comments = new Dictionary<string, Dictionary<string, string>>();
|
||||
|
||||
public ObservableCollection<string> FilterStrings { get; } = new ObservableCollection<string>();
|
||||
|
||||
public ConfWindow()
|
||||
{
|
||||
InitializeComponent();
|
||||
DataContext = this;
|
||||
SearchControl.SearchTextBox.TextChanged += SearchTextBox_TextChanged;
|
||||
LoadSettings(SettingsDefinitions, Conf);
|
||||
LoadSettings(NetSettingsDefinitions, NetConf);
|
||||
SearchControl.Text = RegistryHelp.GetString(@"HKCU\Software\mpv.net", "config editor search");
|
||||
|
||||
if (App.IsDarkMode)
|
||||
{
|
||||
Foreground = Brushes.White;
|
||||
Foreground2 = Brushes.Silver;
|
||||
Background = Brushes.Black;
|
||||
}
|
||||
}
|
||||
|
||||
public Brush Foreground2 {
|
||||
get { return (Brush)GetValue(Foreground2Property); }
|
||||
set { SetValue(Foreground2Property, value); }
|
||||
}
|
||||
|
||||
public static readonly DependencyProperty Foreground2Property =
|
||||
DependencyProperty.Register("Foreground2", typeof(Brush), typeof(ConfWindow), new PropertyMetadata(Brushes.DarkSlateGray));
|
||||
|
||||
private void LoadSettings(List<SettingBase> settingsDefinitions,
|
||||
Dictionary<string, string> confSettings)
|
||||
{
|
||||
foreach (var setting in settingsDefinitions)
|
||||
{
|
||||
if (!FilterStrings.Contains(setting.Filter))
|
||||
FilterStrings.Add(setting.Filter);
|
||||
|
||||
foreach (var pair in confSettings)
|
||||
{
|
||||
if (setting.Name == pair.Key)
|
||||
{
|
||||
setting.Value = pair.Value;
|
||||
setting.StartValue = pair.Value;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
switch (setting)
|
||||
{
|
||||
case StringSetting s:
|
||||
var sc = new StringSettingControl(s);
|
||||
sc.TitleTextBox.Foreground = WPF.WPF.ThemeBrush;
|
||||
MainStackPanel.Children.Add(sc);
|
||||
break;
|
||||
case OptionSetting s:
|
||||
var oc = new OptionSettingControl(s);
|
||||
oc.TitleTextBox.Foreground = WPF.WPF.ThemeBrush;
|
||||
MainStackPanel.Children.Add(oc);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private Dictionary<string, string> _Conf;
|
||||
|
||||
public Dictionary<string, string> Conf {
|
||||
get {
|
||||
if (_Conf == null) _Conf = LoadConf(mp.ConfPath);
|
||||
return _Conf;
|
||||
}
|
||||
}
|
||||
|
||||
private Dictionary<string, string> _NetConf;
|
||||
|
||||
public Dictionary<string, string> NetConf {
|
||||
get {
|
||||
if (_NetConf == null) _NetConf = LoadConf(App.ConfFilePath);
|
||||
return _NetConf;
|
||||
}
|
||||
}
|
||||
|
||||
private Dictionary<string, string> LoadConf(string filePath)
|
||||
{
|
||||
Dictionary<string, string> conf = new Dictionary<string, string>();
|
||||
Comments[filePath] = new Dictionary<string, string>();
|
||||
|
||||
if (File.Exists(filePath))
|
||||
{
|
||||
foreach (string i in File.ReadAllLines(filePath))
|
||||
{
|
||||
if (i.Contains("="))
|
||||
{
|
||||
int pos = i.IndexOf("=");
|
||||
string left = i.Substring(0, pos).Replace(" ", "").ToLower();
|
||||
string right = i.Substring(pos + 1).Trim();
|
||||
|
||||
if (left.StartsWith("#"))
|
||||
{
|
||||
Comments[filePath][left.TrimStart('#')] = right;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (left == "fs") left = "fullscreen";
|
||||
if (left == "loop") left = "loop-file";
|
||||
conf[left] = right;
|
||||
}
|
||||
}
|
||||
}
|
||||
return conf;
|
||||
}
|
||||
|
||||
protected override void OnClosed(EventArgs e)
|
||||
{
|
||||
base.OnClosed(e);
|
||||
WriteToDisk();
|
||||
RegistryHelp.SetObject(@"HKCU\Software\mpv.net", "config editor search", SearchControl.Text);
|
||||
}
|
||||
|
||||
void WriteToDisk()
|
||||
{
|
||||
bool isDirty = false;
|
||||
|
||||
foreach (SettingBase i in SettingsDefinitions)
|
||||
if (i.StartValue != i.Value)
|
||||
isDirty = true;
|
||||
|
||||
foreach (SettingBase i in NetSettingsDefinitions)
|
||||
if (i.StartValue != i.Value)
|
||||
isDirty = true;
|
||||
|
||||
if (!isDirty)
|
||||
return;
|
||||
|
||||
WriteToDisk(mp.ConfPath, Conf, SettingsDefinitions);
|
||||
WriteToDisk(App.ConfFilePath, NetConf, NetSettingsDefinitions);
|
||||
|
||||
Msg.Show("Changes will be available on next mpv.net startup.");
|
||||
}
|
||||
|
||||
void WriteToDisk(string filePath,
|
||||
Dictionary<string, string> confSettings,
|
||||
List<SettingBase> settings)
|
||||
{
|
||||
string content = "";
|
||||
|
||||
foreach (var i in Comments[filePath])
|
||||
content += $"#{i.Key} = {i.Value}\r\n";
|
||||
|
||||
foreach (var setting in settings)
|
||||
{
|
||||
if ((setting.Value ?? "") != setting.Default)
|
||||
confSettings[setting.Name] = setting.Value;
|
||||
|
||||
if (confSettings.ContainsKey(setting.Name) &&
|
||||
(setting.Value ?? "") == setting.Default ||
|
||||
(setting.Value ?? "") == "")
|
||||
{
|
||||
confSettings.Remove(setting.Name);
|
||||
}
|
||||
}
|
||||
|
||||
foreach (var i in confSettings)
|
||||
content = content + $"{i.Key} = {i.Value}\r\n";
|
||||
|
||||
File.WriteAllText(filePath, content);
|
||||
}
|
||||
|
||||
private void SearchTextBox_TextChanged(object sender, TextChangedEventArgs e)
|
||||
{
|
||||
string activeFilter = "";
|
||||
|
||||
foreach (var i in FilterStrings)
|
||||
if (SearchControl.Text == i + ":")
|
||||
activeFilter = i;
|
||||
|
||||
if (activeFilter == "")
|
||||
{
|
||||
foreach (UIElement i in MainStackPanel.Children)
|
||||
if ((i as ISettingControl).Contains(SearchControl.Text))
|
||||
i.Visibility = Visibility.Visible;
|
||||
else
|
||||
i.Visibility = Visibility.Collapsed;
|
||||
|
||||
FilterListBox.SelectedItem = null;
|
||||
}
|
||||
else
|
||||
foreach (UIElement i in MainStackPanel.Children)
|
||||
if ((i as ISettingControl).SettingBase.Filter == activeFilter)
|
||||
i.Visibility = Visibility.Visible;
|
||||
else
|
||||
i.Visibility = Visibility.Collapsed;
|
||||
|
||||
MainScrollViewer.ScrollToTop();
|
||||
}
|
||||
|
||||
private void ConfWindow1_Loaded(object sender, RoutedEventArgs e)
|
||||
{
|
||||
SearchControl.SearchTextBox.SelectAll();
|
||||
Keyboard.Focus(SearchControl.SearchTextBox);
|
||||
foreach (var i in MainStackPanel.Children.OfType<StringSettingControl>())
|
||||
i.Update();
|
||||
}
|
||||
|
||||
private void ListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
||||
{
|
||||
if (e.AddedItems.Count > 0)
|
||||
SearchControl.Text = e.AddedItems[0].ToString() + ":";
|
||||
}
|
||||
|
||||
private void OpenSettingsTextBlock_MouseUp(object sender, MouseButtonEventArgs e)
|
||||
{
|
||||
Process.Start(Path.GetDirectoryName(mp.ConfPath));
|
||||
}
|
||||
|
||||
private void ShowManualTextBlock_MouseUp(object sender, MouseButtonEventArgs e)
|
||||
{
|
||||
Process.Start("https://mpv.io/manual/master/");
|
||||
}
|
||||
|
||||
private void SupportTextBlock_MouseUp(object sender, MouseButtonEventArgs e)
|
||||
{
|
||||
Process.Start("https://github.com/stax76/mpv.net#Support");
|
||||
}
|
||||
|
||||
protected override void OnKeyDown(KeyEventArgs e)
|
||||
{
|
||||
base.OnKeyDown(e);
|
||||
if (e.Key == Key.Escape)
|
||||
Close();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
<Window x:Class="mpvnet.EverythingWindow"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
mc:Ignorable="d"
|
||||
Title="Media File Search" Height="300" Width="600" ResizeMode="NoResize"
|
||||
WindowStartupLocation="CenterOwner" Loaded="Window_Loaded" FontSize="13">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition></RowDefinition>
|
||||
</Grid.RowDefinitions>
|
||||
<TextBox Name="FilterTextBox" PreviewKeyDown="FilterTextBox_PreviewKeyDown" TextChanged="FilterTextBox_TextChanged"></TextBox>
|
||||
<ListView Name="ListView" Grid.Row="1" MouseUp="ListView_MouseUp" PreviewKeyDown="ListView_PreviewKeyDown">
|
||||
<ListView.ItemContainerStyle>
|
||||
<Style TargetType="ListBoxItem">
|
||||
<Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter>
|
||||
</Style>
|
||||
</ListView.ItemContainerStyle>
|
||||
</ListView>
|
||||
</Grid>
|
||||
</Window>
|
||||
@@ -1,168 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Interop;
|
||||
using System.Windows.Media;
|
||||
|
||||
namespace mpvnet
|
||||
{
|
||||
public partial class EverythingWindow : Window
|
||||
{
|
||||
public EverythingWindow()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
if (App.IsDarkMode)
|
||||
{
|
||||
ListView.Foreground = Brushes.White;
|
||||
ListView.Background = Brushes.Black;
|
||||
FilterTextBox.Foreground = Brushes.White;
|
||||
FilterTextBox.Background = Brushes.Black;
|
||||
}
|
||||
}
|
||||
|
||||
const int EVERYTHING_REQUEST_FILE_NAME = 0x00000001;
|
||||
const int EVERYTHING_REQUEST_PATH = 0x00000002;
|
||||
const int EVERYTHING_SORT_SIZE_DESCENDING = 6;
|
||||
|
||||
[DllImport("Everything.dll", CharSet = CharSet.Unicode)]
|
||||
public static extern int Everything_SetSearch(string lpSearchString);
|
||||
|
||||
[DllImport("Everything.dll")]
|
||||
public static extern void Everything_SetRequestFlags(UInt32 dwRequestFlags);
|
||||
|
||||
[DllImport("Everything.dll")]
|
||||
public static extern void Everything_SetSort(UInt32 dwSortType);
|
||||
|
||||
[DllImport("Everything.dll", CharSet = CharSet.Unicode)]
|
||||
public static extern bool Everything_Query(bool bWait);
|
||||
|
||||
[DllImport("Everything.dll", CharSet = CharSet.Unicode)]
|
||||
public static extern void Everything_GetResultFullPathName(UInt32 nIndex, StringBuilder lpString, UInt32 nMaxCount);
|
||||
|
||||
[DllImport("Everything.dll")]
|
||||
public static extern bool Everything_GetResultSize(UInt32 nIndex, out long lpFileSize);
|
||||
|
||||
[DllImport("Everything.dll")]
|
||||
public static extern UInt32 Everything_GetNumResults();
|
||||
|
||||
private void Window_Loaded(object sender, RoutedEventArgs e)
|
||||
{
|
||||
HwndSource source = HwndSource.FromHwnd(new WindowInteropHelper(this).Handle);
|
||||
source.AddHook(new HwndSourceHook(WndProc));
|
||||
Keyboard.Focus(FilterTextBox);
|
||||
}
|
||||
|
||||
void SelectFirst()
|
||||
{
|
||||
if (ListView.Items.Count > 0)
|
||||
ListView.SelectedIndex = 0;
|
||||
}
|
||||
|
||||
private IntPtr WndProc(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled)
|
||||
{
|
||||
if (msg == 0x200 /*WM_MOUSEMOVE*/ && Mouse.LeftButton != MouseButtonState.Pressed)
|
||||
handled = true;
|
||||
return IntPtr.Zero;
|
||||
}
|
||||
|
||||
private void FilterTextBox_PreviewKeyDown(object sender, KeyEventArgs e)
|
||||
{
|
||||
switch (e.Key)
|
||||
{
|
||||
case Key.Up:
|
||||
{
|
||||
int index = ListView.SelectedIndex;
|
||||
index -= 1;
|
||||
if (index < 0) index = 0;
|
||||
ListView.SelectedIndex = index;
|
||||
ListView.ScrollIntoView(ListView.SelectedItem);
|
||||
}
|
||||
break;
|
||||
case Key.Down:
|
||||
{
|
||||
int index = ListView.SelectedIndex;
|
||||
index += 1;
|
||||
if (index > ListView.Items.Count - 1) index = ListView.Items.Count - 1;
|
||||
ListView.SelectedIndex = index;
|
||||
ListView.ScrollIntoView(ListView.SelectedItem);
|
||||
}
|
||||
break;
|
||||
case Key.Escape:
|
||||
Close();
|
||||
break;
|
||||
case Key.Enter:
|
||||
Execute();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void ListView_PreviewKeyDown(object sender, KeyEventArgs e)
|
||||
{
|
||||
if (e.Key == Key.Escape) Close();
|
||||
if (e.Key == Key.Enter) Execute();
|
||||
}
|
||||
|
||||
void Execute()
|
||||
{
|
||||
if (ListView.SelectedItem != null)
|
||||
mp.Load(ListView.SelectedItem as string);
|
||||
Keyboard.Focus(FilterTextBox);
|
||||
}
|
||||
|
||||
private void ListView_MouseUp(object sender, MouseButtonEventArgs e)
|
||||
{
|
||||
Execute();
|
||||
}
|
||||
|
||||
private void FilterTextBox_TextChanged(object sender, TextChangedEventArgs e)
|
||||
{
|
||||
string searchtext = FilterTextBox.Text;
|
||||
Task.Run(() => Search(searchtext));
|
||||
}
|
||||
|
||||
object LockObject = new object();
|
||||
|
||||
void Search(string searchtext)
|
||||
{
|
||||
lock (LockObject)
|
||||
{
|
||||
try
|
||||
{
|
||||
List<string> items = new List<string>();
|
||||
UInt32 i;
|
||||
const int bufsize = 500;
|
||||
StringBuilder buf = new StringBuilder(bufsize);
|
||||
Everything_SetSearch(searchtext);
|
||||
Everything_SetRequestFlags(EVERYTHING_REQUEST_FILE_NAME | EVERYTHING_REQUEST_PATH);
|
||||
Everything_SetSort(EVERYTHING_SORT_SIZE_DESCENDING);
|
||||
Everything_Query(true);
|
||||
for (i = 0; i < Everything_GetNumResults(); i++)
|
||||
{
|
||||
Everything_GetResultFullPathName(i, buf, bufsize);
|
||||
string ext = Path.GetExtension(buf.ToString()).TrimStart('.').ToLower();
|
||||
if (App.AudioTypes.Contains(ext) || App.VideoTypes.Contains(ext))
|
||||
items.Add(buf.ToString());
|
||||
if (items.Count > 100) break;
|
||||
}
|
||||
Application.Current.Dispatcher.Invoke(() => {
|
||||
ListView.ItemsSource = items;
|
||||
SelectFirst();
|
||||
});
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
Msg.ShowError("Search query failed.",
|
||||
"The search feature depends on [Everything](https://www.voidtools.com) being installed.");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,44 +0,0 @@
|
||||
<Window xmlns:Controls="clr-namespace:Controls" x:Class="mpvnet.InputWindow"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
mc:Ignorable="d"
|
||||
Title="Input Editor" Height="500" Width="750" FontSize="13"
|
||||
Loaded="Window_Loaded" Closed="Window_Closed" ShowInTaskbar="False">
|
||||
<Window.Resources>
|
||||
<Style x:Key="DataGrid_Font_Centering" TargetType="{x:Type DataGridCell}">
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="{x:Type DataGridCell}">
|
||||
<Grid Background="{TemplateBinding Background}">
|
||||
<ContentPresenter VerticalAlignment="Center" />
|
||||
</Grid>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
</Window.Resources>
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="*" />
|
||||
</Grid.RowDefinitions>
|
||||
<Controls:SearchTextBoxUserControl HintText="Type ? to get help." x:Name="SearchControl" Width="300" Margin="0,20,0,20" Grid.ColumnSpan="2" />
|
||||
<DataGrid Grid.Row="1" x:Name="DataGrid" CommandManager.PreviewCanExecute="DataGrid_PreviewCanExecute" AutoGenerateColumns="False" CellStyle="{StaticResource DataGrid_Font_Centering}">
|
||||
<DataGrid.Columns>
|
||||
<DataGridTextColumn Header="Menu" Binding="{Binding Path}"/>
|
||||
<DataGridTemplateColumn Header="Input">
|
||||
<DataGridTemplateColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<Button MinHeight="20" Click="ButtonClick">
|
||||
<TextBlock Text="{Binding Input}"></TextBlock>
|
||||
</Button>
|
||||
</DataTemplate>
|
||||
</DataGridTemplateColumn.CellTemplate>
|
||||
</DataGridTemplateColumn>
|
||||
<DataGridTextColumn Header="Command" Binding="{Binding Command}" MaxWidth="330" />
|
||||
</DataGrid.Columns>
|
||||
</DataGrid>
|
||||
</Grid>
|
||||
</Window>
|
||||