Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
81c323363a | ||
|
|
1356b61383 | ||
|
|
3806c77d98 | ||
|
|
a6c5766138 | ||
|
|
3bbcb2d56a | ||
|
|
25fd140b3e | ||
|
|
5e481878f5 | ||
|
|
c05f2ab548 | ||
|
|
919ab803d1 | ||
|
|
dd7be5c575 | ||
|
|
546ccf4748 | ||
|
|
d457c6c66f | ||
|
|
cfc6bfa738 | ||
|
|
de80eeb823 | ||
|
|
2bb2819b33 | ||
|
|
c0e2281b74 | ||
|
|
9e8952157a | ||
|
|
e2dcbc2ecf | ||
|
|
4c76c88074 | ||
|
|
890e6d84fb | ||
|
|
cd5ab37afd | ||
|
|
5adde7b9c4 | ||
|
|
61dcfc3aeb | ||
|
|
342123dc4e | ||
|
|
c55f779dba | ||
|
|
675edce193 | ||
|
|
f9e71693ea | ||
|
|
e99f1adfae | ||
|
|
330f755c44 | ||
|
|
4ceac098ab | ||
|
|
9599c1a616 | ||
|
|
5ec3f9a8a7 | ||
|
|
60a6f8d347 | ||
|
|
533a7e64d2 | ||
|
|
2d13c3a834 | ||
|
|
064b5412a6 | ||
|
|
2f4067c374 | ||
|
|
7f3d9c5f41 | ||
|
|
e9abec565d | ||
|
|
5296627f8d | ||
|
|
7fdbd8780b | ||
|
|
feb5c1eaed | ||
|
|
1baed149af | ||
|
|
d7e924b72b | ||
|
|
b8fb0d7549 | ||
|
|
7dbd2363db | ||
|
|
081ca63d85 | ||
|
|
06d6be528a | ||
|
|
ce4529325b | ||
|
|
52f1b8f546 | ||
|
|
79bbcbdccb | ||
|
|
a92353c9a2 | ||
|
|
3e0eec8294 | ||
|
|
ceaa77ffe7 | ||
|
|
c87016c4f8 | ||
|
|
4d754c0876 | ||
|
|
8244fd638b | ||
|
|
85ad6050f8 | ||
|
|
df34766f35 | ||
|
|
ad5ffd7578 | ||
|
|
4784e57370 | ||
|
|
41cf7a5ac2 | ||
|
|
d94868f466 | ||
|
|
01fa98adaf | ||
|
|
7594ea6bad | ||
|
|
6fbe545d32 | ||
|
|
b39db0361e | ||
|
|
2959e82daa | ||
|
|
63e533f456 | ||
|
|
ef20b30d68 | ||
|
|
836aeeba92 | ||
|
|
53f204740e | ||
|
|
a284b0f2b9 | ||
|
|
a2b98e1e47 | ||
|
|
acef61a26e | ||
|
|
0d0789d091 | ||
|
|
dfd5650d2b | ||
|
|
29375e9b80 | ||
|
|
519682e2cb | ||
|
|
8d4718166b | ||
|
|
60a27fbf27 | ||
|
|
6e39633a87 | ||
|
|
1fa744e763 | ||
|
|
1b504482e8 | ||
|
|
57aa36c24e | ||
|
|
e9e9b6c790 | ||
|
|
e8f0a9b4c4 | ||
|
|
9e7d47d39d | ||
|
|
0981d101a3 | ||
|
|
63abc5f7cf | ||
|
|
1b616398a9 | ||
|
|
21d7d3de60 | ||
|
|
ddea7f7cc4 | ||
|
|
e348c33e92 | ||
|
|
e2575e2395 | ||
|
|
9f77b456f1 | ||
|
|
ec038f9fc3 | ||
|
|
7dc2a28af9 | ||
|
|
f69543c5db | ||
|
|
fa51af770e | ||
|
|
cfab637a71 | ||
|
|
0fd01ca59a | ||
|
|
91d8d6d9fd | ||
|
|
9e2ce90de2 | ||
|
|
7231a62a92 | ||
|
|
66a9dc1ce1 | ||
|
|
34ddc1623a | ||
|
|
7ae2e33024 | ||
|
|
f1354b6099 | ||
|
|
6128f0a0f8 | ||
|
|
b8ad13e682 | ||
|
|
6073d68b6e | ||
|
|
ecc8142325 | ||
|
|
16d26cea8a | ||
|
|
71859619f9 | ||
|
|
9ffedef52a | ||
|
|
d1d7f04757 | ||
|
|
1c6c090360 | ||
|
|
90aa0176f6 | ||
|
|
c8bc280e5b | ||
|
|
c5074c187a | ||
|
|
c90c2ae89b | ||
|
|
10c3cebc2e | ||
|
|
a9250559d2 | ||
|
|
45c8eb2e9b | ||
|
|
133de2cf61 | ||
|
|
9738bc513a | ||
|
|
03268ecab4 | ||
|
|
bcc79b77d8 | ||
|
|
8d6ddf6d26 | ||
|
|
90d4b35741 | ||
|
|
f53e6fbe33 | ||
|
|
b33fe92e8a | ||
|
|
220a969ddb | ||
|
|
f59393d343 | ||
|
|
2e6b3880c1 | ||
|
|
badb8bea7d | ||
|
|
5a9141b25c | ||
|
|
152be5d8ad | ||
|
|
afc9172f97 | ||
|
|
b8b8141cfe | ||
|
|
6bb67f218a | ||
|
|
0eb28b1bc9 | ||
|
|
290c4463fa | ||
|
|
ab50362496 | ||
|
|
e2bfdd6877 | ||
|
|
795c8705c4 | ||
|
|
f7c3a317f8 | ||
|
|
7c0b318fe1 | ||
|
|
67dafcc63e | ||
|
|
d7207b1fea | ||
|
|
f743980fb9 | ||
|
|
195df07e5f | ||
|
|
c5ad1a3f95 | ||
|
|
85ef00956a | ||
|
|
c899d9e7e9 | ||
|
|
a75c4101e3 | ||
|
|
2dcf20c8c8 | ||
|
|
f2b0fb7f6a | ||
|
|
9699aaf00c | ||
|
|
ae656ba727 | ||
|
|
02126560ca | ||
|
|
78592f17a9 | ||
|
|
b98a17ef53 | ||
|
|
66737611c3 | ||
|
|
9d4a420ea2 | ||
|
|
61f11c77be | ||
|
|
d247462cbc | ||
|
|
6b89fdf8bb | ||
|
|
20dd29f5ff | ||
|
|
58bdabe62c | ||
|
|
557ba6207c | ||
|
|
159de779af | ||
|
|
b8c994d3c6 | ||
|
|
78e2c50209 | ||
|
|
4f990e6306 | ||
|
|
7f10165cb5 | ||
|
|
7bf7222636 | ||
|
|
3c7f696756 | ||
|
|
a61f5ea448 | ||
|
|
81fca1c991 | ||
|
|
8e4129b941 | ||
|
|
b71ca62fba | ||
|
|
1b3b1467b1 | ||
|
|
1a85f56fb4 | ||
|
|
3f5cb818a2 | ||
|
|
fab0b8c3dc | ||
|
|
9504bc3850 | ||
|
|
8bde66bf0f | ||
|
|
6b9d8b2573 | ||
|
|
845d8bf6e7 | ||
|
|
4baf1f1d87 | ||
|
|
74c1ea3ad4 | ||
|
|
561dadb67a | ||
|
|
7f52520996 | ||
|
|
82a2a552db | ||
|
|
ee9b0af7d6 | ||
|
|
633848f31a | ||
|
|
3275aa091e | ||
|
|
49b971d126 | ||
|
|
29352278fa | ||
|
|
aa53995859 | ||
|
|
b6694eb485 | ||
|
|
8bde612db4 | ||
|
|
27d4d21167 | ||
|
|
9211e68ad4 | ||
|
|
70d190c571 | ||
|
|
d413765178 | ||
|
|
2f7d2f98e8 | ||
|
|
e3754aeae8 | ||
|
|
d01ac27c5d | ||
|
|
4fb905d0b3 | ||
|
|
0d72b915dd | ||
|
|
66f890493b | ||
|
|
8e4c4abdba | ||
|
|
ec9ff29428 | ||
|
|
a4d03196c1 | ||
|
|
1826959cb9 | ||
|
|
96a196aa07 | ||
|
|
b404354c6a | ||
|
|
3a6ed62282 | ||
|
|
139579a1ca | ||
|
|
3f4a2fbb81 | ||
|
|
e4deacf0b6 | ||
|
|
078687934a | ||
|
|
674a987e2a | ||
|
|
be3d27adfb | ||
|
|
216375ab10 | ||
|
|
b6b6f72f73 | ||
|
|
d9ef14be0b | ||
|
|
5de61bd2f7 | ||
|
|
35ced0dcfb | ||
|
|
6dc5728554 | ||
|
|
d6fcd7b58c | ||
|
|
f069f9fd9b | ||
|
|
165abd5fe6 | ||
|
|
145a699369 | ||
|
|
6820416ee1 | ||
|
|
e32515d85c | ||
|
|
fd40aaf840 | ||
|
|
0cb9ef76f7 | ||
|
|
750b93d6d5 | ||
|
|
3b54545457 | ||
|
|
2596099fb6 | ||
|
|
cdd67ae571 | ||
|
|
3c0a284e9a | ||
|
|
2cf65ee032 | ||
|
|
a02cafae2b | ||
|
|
b5fdc114e7 | ||
|
|
dd0f0a16d3 | ||
|
|
4fc97a80a8 | ||
|
|
ada7a23668 | ||
|
|
804647f480 | ||
|
|
f529dd8bbf | ||
|
|
e5c962325e | ||
|
|
b6d5874b62 | ||
|
|
dc375de632 | ||
|
|
7ff0ef52d7 | ||
|
|
8da297d1be | ||
|
|
ef3a7e0722 | ||
|
|
df311b2916 | ||
|
|
871a7227fc | ||
|
|
16f4d790de | ||
|
|
feafec755e | ||
|
|
caa46763cd | ||
|
|
1ecc5336ce | ||
|
|
4d22f4f80b | ||
|
|
645d126911 | ||
|
|
4047a2933b | ||
|
|
67f37b440b | ||
|
|
c1bb23d0f7 | ||
|
|
ee77df7523 | ||
|
|
d6d23809ec | ||
|
|
d17fe4b039 | ||
|
|
cbded1c7fb | ||
|
|
16b25824e2 | ||
|
|
8e6aee71d7 | ||
|
|
f860afdbd4 | ||
|
|
52727a5abc | ||
|
|
0bcc7779b8 | ||
|
|
3e341c2475 | ||
|
|
92e8bcd9f7 | ||
|
|
d796b649fa | ||
|
|
37a9f9c359 | ||
|
|
c09d18889a | ||
|
|
6055c1cfb1 | ||
|
|
31f06034e5 | ||
|
|
885dff41c8 | ||
|
|
27cf45fb07 | ||
|
|
ba4111203f | ||
|
|
f03bb86f30 | ||
|
|
6e1ae9a17a | ||
|
|
5f2c341216 | ||
|
|
8782ac649e | ||
|
|
0040638d83 | ||
|
|
4c16284ce0 | ||
|
|
873619ccf8 | ||
|
|
971c57c237 | ||
|
|
a50f026f8e | ||
|
|
d1b0431964 | ||
|
|
80516570a6 | ||
|
|
f012579dc3 | ||
|
|
2ab8f4f937 | ||
|
|
12e43265db | ||
|
|
eae68bb6c3 | ||
|
|
2aa9813e5d | ||
|
|
095ce5964f | ||
|
|
8b4ecfce7c | ||
|
|
0966cb08d0 | ||
|
|
cb51f15fed | ||
|
|
0021b76083 | ||
|
|
7e8c032618 | ||
|
|
0171b19084 | ||
|
|
11dbef6f37 | ||
|
|
02a2bc4c5f | ||
|
|
475a074c9e | ||
|
|
677a66ac9b | ||
|
|
954e5eddef | ||
|
|
76bc9e93cb | ||
|
|
b8bf1b66fc | ||
|
|
ced828c401 | ||
|
|
d4eb4f74c3 | ||
|
|
cc45de1183 | ||
|
|
0cdeb732a9 | ||
|
|
95a5543a04 | ||
|
|
73efe1e4b6 | ||
|
|
e66cb853c5 | ||
|
|
876d3138e4 | ||
|
|
8450b46657 | ||
|
|
6459f0350e | ||
|
|
b302184de3 | ||
|
|
525170a5d2 | ||
|
|
86ad2dc09f | ||
|
|
8efd6e4a79 | ||
|
|
2f9b8ad897 | ||
|
|
7b6670e893 | ||
|
|
104d2be7be | ||
|
|
3e5ed6cdd9 | ||
|
|
1870669672 | ||
|
|
c41e922ac6 | ||
|
|
4d19e4af2a | ||
|
|
6480176728 | ||
|
|
c83b7dda3b | ||
|
|
c25157946e | ||
|
|
a4f39e6145 | ||
|
|
9281cd1d35 | ||
|
|
6c07ce8026 | ||
|
|
140bcfee8f | ||
|
|
45d0091161 | ||
|
|
fa05e062b5 | ||
|
|
7e8479720e | ||
|
|
0e2ef9d347 | ||
|
|
c16ac3eeb3 | ||
|
|
ce6f1c1d64 | ||
|
|
58b5c132dd | ||
|
|
5ad85ce3db | ||
|
|
94e0baa82c | ||
|
|
724f8f6a72 | ||
|
|
28e4c2b3f5 | ||
|
|
fa9da672cf | ||
|
|
a504a77bef | ||
|
|
1cdf2fa659 | ||
|
|
3c32d3fec8 | ||
|
|
dee0e2139f | ||
|
|
8e26295d3b | ||
|
|
06452aacde | ||
|
|
569f1d2e27 | ||
|
|
026bf78222 | ||
|
|
80d0808847 | ||
|
|
465d966283 | ||
|
|
8c5480c228 | ||
|
|
15e28c8a8f | ||
|
|
18f3fb74cd | ||
|
|
d7b358974e | ||
|
|
970610327c | ||
|
|
4988e0605d | ||
|
|
d96759555a | ||
|
|
e717bb68f0 | ||
|
|
48645d60d1 | ||
|
|
58590c0db3 | ||
|
|
4f35c9c583 | ||
|
|
8d3eb2c395 | ||
|
|
5da7887c1c | ||
|
|
d7e0b24eec | ||
|
|
0371aebc43 | ||
|
|
0f11a800f8 | ||
|
|
3c6dcb8c96 | ||
|
|
fb8dbb3a04 | ||
|
|
acd89bc2d3 | ||
|
|
1b86baa24d | ||
|
|
7aebfe5442 | ||
|
|
b3b8a6ea2e | ||
|
|
13f72c3cad | ||
|
|
e100101ce4 | ||
|
|
cbc1bdd3c0 | ||
|
|
e48d719662 | ||
|
|
43be49387a | ||
|
|
5e58f4a1f8 | ||
|
|
86a98e7bf8 | ||
|
|
413e7d7567 | ||
|
|
5049ba5895 | ||
|
|
2b9a38ff0d | ||
|
|
336376a1af | ||
|
|
d94e7a5fde | ||
|
|
e8e4c3b1b8 | ||
|
|
f60e0ac762 | ||
|
|
dc4016a882 | ||
|
|
0f5040d669 | ||
|
|
846e20e24a | ||
|
|
a9b5334f3f | ||
|
|
bd2f545220 | ||
|
|
3ccce93068 | ||
|
|
f03cd930d2 | ||
|
|
9f1e120e10 | ||
|
|
43a8d4c8c2 | ||
|
|
94539bbf92 | ||
|
|
247bff132b | ||
|
|
4963431c19 | ||
|
|
0e02adba2d | ||
|
|
6e96fb6421 | ||
|
|
b11e40b313 | ||
|
|
ff05fc57cc | ||
|
|
cf6ff3c133 | ||
|
|
dddb1206b3 | ||
|
|
be51ba450b | ||
|
|
be8fb53ecc | ||
|
|
f24acd7372 | ||
|
|
a0e1f6d558 | ||
|
|
83fee9dc06 | ||
|
|
dd470dcd66 | ||
|
|
f815dfb2fd | ||
|
|
740fd33a18 | ||
|
|
4d494fe185 | ||
|
|
7db3b0f9f9 | ||
|
|
e4ce006b06 | ||
|
|
f4583b830a | ||
|
|
51dc4391bd | ||
|
|
3f2a794952 | ||
|
|
61e275af76 | ||
|
|
df82690cd0 | ||
|
|
fadfb497e8 | ||
|
|
ccf8d61f5a | ||
|
|
cd4c010f99 | ||
|
|
92660712d0 | ||
|
|
c64d7c5bab | ||
|
|
2385f672d0 | ||
|
|
27c1dc1aaa | ||
|
|
0f8d39854f | ||
|
|
e7c2606e8e | ||
|
|
9aeb5c55ab | ||
|
|
10915cf6b9 | ||
|
|
2a50aa6d3a | ||
|
|
ddcc5d1a49 | ||
|
|
9e4a14985e | ||
|
|
d5c39ceb1a | ||
|
|
a199d7fba3 | ||
|
|
aa77d2d95c | ||
|
|
9a5ac282c5 | ||
|
|
24edcc7328 | ||
|
|
76859942b8 | ||
|
|
4ede575ea1 | ||
|
|
e3ba241ff2 | ||
|
|
deb885ced5 | ||
|
|
3d088fa407 | ||
|
|
148a894380 | ||
|
|
10b666a1bf | ||
|
|
4138470d6b | ||
|
|
3344a3562f | ||
|
|
6d494b64b3 | ||
|
|
84e9163b96 | ||
|
|
29dccbd8ae | ||
|
|
1bb296c04d | ||
|
|
ec791c100e | ||
|
|
42d98070f9 | ||
|
|
3b775e7bc6 | ||
|
|
1ba0d429a1 | ||
|
|
76d4de1cc2 | ||
|
|
0712981e6f | ||
|
|
80b9422fb0 | ||
|
|
903c4fc182 | ||
|
|
84694ccbe0 | ||
|
|
91fd13855f | ||
|
|
cea1d43e6b | ||
|
|
bbc73b8784 | ||
|
|
0cabd425ef | ||
|
|
20b2e735ec | ||
|
|
7e104f7167 | ||
|
|
1e71360366 | ||
|
|
18bdb7aa05 | ||
|
|
d1e4675c5c | ||
|
|
4a63180600 | ||
|
|
5f96ac77b5 | ||
|
|
3402c7b4c4 | ||
|
|
c1131cc747 | ||
|
|
1b9ddd194e | ||
|
|
b4414cf08f | ||
|
|
54a14d6395 | ||
|
|
20fce69585 | ||
|
|
b33cf54f1e | ||
|
|
fdfbed9981 | ||
|
|
58df2a0408 | ||
|
|
ca5d607937 | ||
|
|
7fa3a5b195 | ||
|
|
a28a11b6f8 | ||
|
|
1237a7c12b | ||
|
|
5580210632 | ||
|
|
94ee6c0418 | ||
|
|
d9f677cbc4 | ||
|
|
5a675e5bff | ||
|
|
2c214ddf44 | ||
|
|
190d615972 | ||
|
|
5cd553912c | ||
|
|
a6cb64d69c | ||
|
|
ade556c8ae | ||
|
|
13f6e869c1 | ||
|
|
9990ede3ca | ||
|
|
b062672dfb | ||
|
|
558b6ed218 | ||
|
|
d8cad8fd2c | ||
|
|
cd59b82b7b | ||
|
|
167202e8ff | ||
|
|
c96fac02c2 | ||
|
|
bebfd8ef01 | ||
|
|
4bc6a8b8d4 | ||
|
|
22dae1cc0e | ||
|
|
4b0f563a6c | ||
|
|
a1981804e3 | ||
|
|
417de86984 | ||
|
|
6ade8f9eca | ||
|
|
374e6e67d2 | ||
|
|
4355f500ba | ||
|
|
7044d8a084 | ||
|
|
96b1fe4ef6 | ||
|
|
8c2db41b36 | ||
|
|
204c608000 | ||
|
|
4a78dd4b31 | ||
|
|
b99f9467de | ||
|
|
26484ad137 | ||
|
|
db208cbbec | ||
|
|
36b81e8c1f | ||
|
|
831cfd9f20 | ||
|
|
f1645d22a2 | ||
|
|
08cdaac59a | ||
|
|
0dd7c039f0 | ||
|
|
3a2b309576 | ||
|
|
3a2822d406 | ||
|
|
fda418c6dd | ||
|
|
3919a2064d | ||
|
|
d5160330c2 | ||
|
|
dd6b0416b6 | ||
|
|
33618b4c97 | ||
|
|
a2aafd4614 | ||
|
|
5f037e6cf3 | ||
|
|
0cdb537424 | ||
|
|
b036aa5d69 | ||
|
|
29dce6c30a | ||
|
|
2da8b54d67 | ||
|
|
207f1a02f0 | ||
|
|
e10de6ca0e | ||
|
|
a8371303c8 | ||
|
|
a93f2ac448 | ||
|
|
f3aebd2619 | ||
|
|
2a3dceea71 | ||
|
|
b59416b575 | ||
|
|
3b15c3e19b | ||
|
|
2ba0c8df4f | ||
|
|
c001fd9342 | ||
|
|
e377f75f1d | ||
|
|
53153774b7 | ||
|
|
9773aa31d8 | ||
|
|
5e67d9d4db | ||
|
|
ee7690228f | ||
|
|
23a9059ff9 | ||
|
|
7188208b6b | ||
|
|
a318ce12fa | ||
|
|
12e48d0446 | ||
|
|
3928fee041 | ||
|
|
0c5dcd9c74 | ||
|
|
61a0d4fdf1 | ||
|
|
f563bae495 | ||
|
|
93a415205e | ||
|
|
af88bb2161 | ||
|
|
1698c1b027 | ||
|
|
206a6cda35 | ||
|
|
f9e85d8168 | ||
|
|
e982d7ee6f | ||
|
|
acaf4eadb2 | ||
|
|
092f8df8f5 | ||
|
|
6f873c9785 | ||
|
|
ebe531e5eb | ||
|
|
7ce9a10126 | ||
|
|
99b7989c48 | ||
|
|
527841b940 | ||
|
|
5e789d27a6 | ||
|
|
4904144ccb | ||
|
|
3ff7540693 | ||
|
|
9aa9ff9291 | ||
|
|
2452306e6c | ||
|
|
b044efe50e | ||
|
|
c3affed9b1 | ||
|
|
d7d6cba5ae | ||
|
|
8ed9f56d30 | ||
|
|
eca0dd68ca | ||
|
|
ad3f01aded | ||
|
|
8dda647619 | ||
|
|
dfc4a2c1cc | ||
|
|
31a9ac6afa | ||
|
|
6001f2f47d | ||
|
|
8ac2ab9a03 | ||
|
|
e01bd5da81 | ||
|
|
8ae1ff3e57 | ||
|
|
fe07a2f926 | ||
|
|
0a48c6b74b | ||
|
|
a51e7c5698 | ||
|
|
10c456cbff | ||
|
|
714b28294f | ||
|
|
2f99cd2560 | ||
|
|
6bf8a5d64c | ||
|
|
67d081d1c1 | ||
|
|
8c3a50c18f | ||
|
|
d910b944ea | ||
|
|
d208f9d7b9 | ||
|
|
4c7013836b | ||
|
|
432ff4f4f3 | ||
|
|
60962e382b | ||
|
|
e7d1febe4b | ||
|
|
ae7a7fd390 | ||
|
|
9479f3b3ff | ||
|
|
63fc406735 | ||
|
|
1b4f3ced7d | ||
|
|
b07d31f697 | ||
|
|
d8cce13211 | ||
|
|
8e0f4b60d6 | ||
|
|
9a699f4cb5 | ||
|
|
38a19b6adb | ||
|
|
13fa20a517 | ||
|
|
8109d77ab1 | ||
|
|
3f76d039b6 | ||
|
|
87f3271046 | ||
|
|
e04480171e | ||
|
|
86fb73ca48 | ||
|
|
f01005ea60 | ||
|
|
9e5e482265 | ||
|
|
17a2801492 | ||
|
|
7c5d5786a6 | ||
|
|
b8bd9bf87b | ||
|
|
2371eb4344 | ||
|
|
ef111fde2f | ||
|
|
c45b18d133 | ||
|
|
98601bd7b1 | ||
|
|
b988d5f0fe | ||
|
|
aa0579a4f1 | ||
|
|
5d28b19066 | ||
|
|
e119e46c5a | ||
|
|
c1866c0ad5 | ||
|
|
4efd670747 | ||
|
|
a2720c2108 | ||
|
|
b7ca304322 | ||
|
|
ae8a3c61d5 | ||
|
|
defb2ca6c7 | ||
|
|
9e5011374f | ||
|
|
355d7b4b5f | ||
|
|
6a3bf7b2c0 | ||
|
|
89e528c2a6 | ||
|
|
1c884f3acb | ||
|
|
31863a7788 | ||
|
|
54f97a4928 | ||
|
|
719c73e6d3 | ||
|
|
4e17745be0 | ||
|
|
2d99bbd2ed | ||
|
|
2e25bf6610 | ||
|
|
f1c89b9a8e | ||
|
|
6ebbf7df6f | ||
|
|
94d3bed471 | ||
|
|
158117ce31 | ||
|
|
b48cfa8e77 | ||
|
|
7f965e0f9b | ||
|
|
19f81943d6 | ||
|
|
25653ee55f | ||
|
|
125be98466 | ||
|
|
467b619f0a | ||
|
|
aff7f42c68 | ||
|
|
2a79f778e6 | ||
|
|
dd1231ad34 | ||
|
|
fc432f34eb | ||
|
|
0611148ec4 | ||
|
|
c156fa69ab | ||
|
|
5364787599 | ||
|
|
a06e5066e9 | ||
|
|
f0b227798e | ||
|
|
3bce89eecf | ||
|
|
bf7eec4233 | ||
|
|
879176a87f | ||
|
|
2ba5f9ee7f | ||
|
|
bb146b66a3 | ||
|
|
926dda7350 | ||
|
|
538eab9516 | ||
|
|
cc7d8058e2 | ||
|
|
db4096d57f | ||
|
|
5f139467ea | ||
|
|
466c443a20 | ||
|
|
649f81494e | ||
|
|
1121261a4a | ||
|
|
d1e9fbaff1 | ||
|
|
016b7627d1 | ||
|
|
f5f1a91481 | ||
|
|
c9c907e3f0 | ||
|
|
09d0529050 | ||
|
|
025f6542dd | ||
|
|
4eb5872e2f | ||
|
|
32352e2e1b | ||
|
|
be67b039d6 | ||
|
|
632b90a0e3 | ||
|
|
4d197bda9a | ||
|
|
76f5ac93bb | ||
|
|
1ce085b49f | ||
|
|
e915e72ce6 | ||
|
|
6ea49eeab0 | ||
|
|
2d6a750b0b | ||
|
|
f0902a02a0 | ||
|
|
fef075eeb8 | ||
|
|
30439659b9 | ||
|
|
c59b03df6b | ||
|
|
b1ed316d13 | ||
|
|
6b8379c081 | ||
|
|
c07441bc63 | ||
|
|
4f8c482645 | ||
|
|
9ab0ea5f34 | ||
|
|
cfb6d09d06 | ||
|
|
1a94f3a6f8 | ||
|
|
3075006799 | ||
|
|
37aa8e5219 | ||
|
|
7f8e974fe1 | ||
|
|
3fe8cdf05c | ||
|
|
46c3353e08 | ||
|
|
9fce9fe962 | ||
|
|
128abf61b9 | ||
|
|
4a068f113e | ||
|
|
0796cbaef8 | ||
|
|
d248292fa3 | ||
|
|
76ededf9f3 | ||
|
|
46acaf092a | ||
|
|
ad18bec52c | ||
|
|
e936fe4126 | ||
|
|
912cfac8c5 | ||
|
|
6d46cbc069 | ||
|
|
93a7e70ca3 | ||
|
|
6c7b59ed44 | ||
|
|
eaa709813d | ||
|
|
9cca49745a | ||
|
|
cea276090d | ||
|
|
96e50f7723 | ||
|
|
a55d724620 | ||
|
|
e9b584d84c | ||
|
|
64c142345b | ||
|
|
d327f22741 | ||
|
|
774035e886 | ||
|
|
e66d108df0 | ||
|
|
445d50bcaf | ||
|
|
a5ddeeee95 | ||
|
|
94be5ce97b | ||
|
|
7f60e6f321 | ||
|
|
32241a91dc | ||
|
|
9f8dfaa50c | ||
|
|
d27cbcd7d0 | ||
|
|
290f6d024e | ||
|
|
b2102b11d9 | ||
|
|
4bbb0bfb14 | ||
|
|
6b958527ce | ||
|
|
abe8987748 | ||
|
|
b634fb98f9 | ||
|
|
cd7bb322f9 | ||
|
|
dd1fe4402c | ||
|
|
46544aee82 | ||
|
|
942c8dca27 | ||
|
|
74654d7fcf | ||
|
|
6c4fe011bf | ||
|
|
fddd56c2f9 | ||
|
|
fb56c5248b | ||
|
|
6dda1a38d0 | ||
|
|
b30efb1913 | ||
|
|
f926263706 | ||
|
|
6f617aa40b | ||
|
|
eef988fcdb | ||
|
|
d0958b69be | ||
|
|
c6e8854dda | ||
|
|
3f4f2776be | ||
|
|
388bd6310f | ||
|
|
d20c31ef71 | ||
|
|
43fff7f52f | ||
|
|
8f60d5dae5 | ||
|
|
cbc3223114 | ||
|
|
0a7006db43 | ||
|
|
8722844646 | ||
|
|
8e8fdc1277 | ||
|
|
41480797e2 | ||
|
|
f7202ee9b0 | ||
|
|
a868f02794 | ||
|
|
4b348ceec6 | ||
|
|
f021e9a9f7 | ||
|
|
48527a4061 | ||
|
|
04c2b85e2b | ||
|
|
4c01396e46 | ||
|
|
ced12ac064 | ||
|
|
09d36ccf60 | ||
|
|
62675821ed | ||
|
|
51a5165308 | ||
|
|
bd41de6dbe | ||
|
|
4b02932bb4 | ||
|
|
75ff5a0291 | ||
|
|
10e5312579 | ||
|
|
b14b47fd33 | ||
|
|
b16735bfe0 | ||
|
|
d5ae52a8f7 | ||
|
|
faee5fa107 | ||
|
|
03b9ea8e49 | ||
|
|
7b95942653 | ||
|
|
cb40cdcd92 | ||
|
|
a8f23cb3bf | ||
|
|
e1329b4a93 | ||
|
|
029c3f8473 | ||
|
|
dd4c3b3cf9 | ||
|
|
fe60f6f5df | ||
|
|
b279ee74cb | ||
|
|
c683110a80 | ||
|
|
240f47090d | ||
|
|
3612b9244b | ||
|
|
b2aefe8854 | ||
|
|
ed6a845168 | ||
|
|
342731084b | ||
|
|
f837c329ec | ||
|
|
f43116073d | ||
|
|
fcdd58f827 | ||
|
|
f2bd61937f | ||
|
|
ba7627513e | ||
|
|
5d8628d8a0 | ||
|
|
f41c97574c | ||
|
|
64be43911c | ||
|
|
4f38ac66db | ||
|
|
eef512ae98 | ||
|
|
43113662c1 | ||
|
|
e975d0d5c5 | ||
|
|
ae2672247c | ||
|
|
b3f284c476 | ||
|
|
c070f8d078 | ||
|
|
ed076865bc | ||
|
|
e59b1f78ac | ||
|
|
a3fca21b32 | ||
|
|
c191284030 | ||
|
|
6a1b3567f4 | ||
|
|
7680aad78c | ||
|
|
3350eb16de | ||
|
|
c93262fc54 | ||
|
|
3144ea24b9 | ||
|
|
35cdd55c49 |
No files matched your search
@@ -0,0 +1,9 @@
|
||||
Write-Host "Deployment finished -> do en empty commit on the gh-pages branch to update the page"
|
||||
cd ..
|
||||
git clone -q "https://github.com/Vocaluxe/Vocaluxe.git" -b "gh-pages" --single-branch "VocaluxeWeb"
|
||||
cd VocaluxeWeb
|
||||
git config --global user.email "noreply@vocaluxe.org"
|
||||
git config --global user.name "VocaluxeBuildBot"
|
||||
git commit --allow-empty -m "Trigger page update after a new publish (triggered by $Env:APPVEYOR_REPO_COMMIT_MESSAGE [$Env:APPVEYOR_REPO_COMMIT])"
|
||||
git push -q "https://$($Env:GitHubKey):x-oauth-basic@github.com/Vocaluxe/Vocaluxe.git" "gh-pages"
|
||||
cd ..\Vocaluxe
|
||||
@@ -0,0 +1,63 @@
|
||||
if($Env:APPVEYOR_PULL_REQUEST_NUMBER)
|
||||
{
|
||||
$Env:VersionTag = "0.0.0-na-PR_$Env:APPVEYOR_PULL_REQUEST_NUMBER"
|
||||
Return $Env:VersionTag
|
||||
}
|
||||
|
||||
$currentCommitSha = $Env:CurrentCommitSha
|
||||
$githubRepoApiUri = $Env:githubRepoApiUri #"https://api.github.com/repos/:user/:repo/"
|
||||
$Env:VersionTag = ""
|
||||
$gitApiAuthHeader = @{
|
||||
Authorization = 'Basic ' + [Convert]::ToBase64String(
|
||||
[Text.Encoding]::ASCII.GetBytes($Env:GitHubKey + ":x-oauth-basic"));
|
||||
};
|
||||
# Inline-if helper function
|
||||
Function IIf($If, $Right, $Wrong) {If ($If) {$Right} Else {$Wrong}}
|
||||
|
||||
try{
|
||||
$result = Invoke-RestMethod -Uri "$($githubRepoApiUri)git/refs/tags" -Method 'GET' -Headers $gitApiAuthHeader
|
||||
}
|
||||
catch [System.Net.WebException]
|
||||
{
|
||||
# Error getting tags
|
||||
$statusCode = [int]$_.Exception.Response.StatusCode
|
||||
$html = $_.Exception.Response.StatusDescription
|
||||
Write-Host "Error getting tags ($html)"
|
||||
Return ;
|
||||
}
|
||||
|
||||
# Get tag info
|
||||
try{
|
||||
$tagsInfo = ($result | % { "$($githubRepoApiUri)git/tags/$($_.object.sha)" ;} | % { try { Invoke-RestMethod -Method 'GET' -Uri $($_) -Headers $gitApiAuthHeader} catch {}})
|
||||
}
|
||||
catch [System.Net.WebException]
|
||||
{
|
||||
# Error getting tags
|
||||
$statusCode = [int]$_.Exception.Response.StatusCode
|
||||
$html = $_.Exception.Response.StatusDescription
|
||||
Write-Host "Error getting info for tags ($html)"
|
||||
Return ;
|
||||
}
|
||||
|
||||
# Compare taged commits with current commit
|
||||
try{
|
||||
$commitTagComp = $tagsInfo | select sha, tag, tagger, @{n='dist';e={[int](Invoke-RestMethod -Method 'GET' -Uri "$($githubRepoApiUri)compare/$($_.object.sha)...$currentCommitSha" -Headers $gitApiAuthHeader | % { (IIf ($_.status -ne "diverged") ($_.ahead_by) (-1))})}}
|
||||
}
|
||||
catch [System.Net.WebException]
|
||||
{
|
||||
# Error comparing tags
|
||||
$statusCode = [int]$_.Exception.Response.StatusCode
|
||||
$html = $_.Exception.Response.StatusDescription
|
||||
Write-Host "Error comparing tags with current commit ($html)"
|
||||
Return ;
|
||||
}
|
||||
|
||||
$latestTag = $commitTagComp | where {$_.dist -ge 0} | sort-object -property @{Expression="dist";Descending=$false}, @{Expression="tag";Descending=$false} | Select-Object -first 1
|
||||
|
||||
if(!$latestTag){
|
||||
Write-Host "Commit not describable"
|
||||
Return ;
|
||||
}
|
||||
|
||||
$Env:VersionTag = "$($latestTag.tag)-$($latestTag.dist)-g$($currentCommitSha.Substring(0,7))"
|
||||
Return $Env:VersionTag
|
||||
@@ -0,0 +1,19 @@
|
||||
if($Env:APPVEYOR_REPO_TAG -ne "true" -and (-not $Env:APPVEYOR_PULL_REQUEST_NUMBER)) {
|
||||
Write-Host "Push without tag detected"
|
||||
if($Env:APPVEYOR_REPO_BRANCH -eq "develop"){
|
||||
Write-Host "Nightly build branch was detected"
|
||||
$targetTag = "Nightly"
|
||||
$Env:NIGHTLY_BUILD = true
|
||||
}
|
||||
else{
|
||||
Write-Host "No special branch found"
|
||||
Return
|
||||
}
|
||||
Write-Host "Moving tag $targetTag to $Env:APPVEYOR_REPO_BRANCH"
|
||||
git config --global user.email "noreply@vocaluxe.org";
|
||||
git config --global user.name "VocaluxeBuildBot";
|
||||
git tag "$targetTag" -f;
|
||||
git push -q -f "https://$($Env:GitHubKey):x-oauth-basic@github.com/Vocaluxe/Vocaluxe.git" "$targetTag";
|
||||
|
||||
Write-Host "Tag $targetTag points now to the head of branch $Env:APPVEYOR_REPO_BRANCH"
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
if($Env:APPVEYOR_REPO_TAG -eq "true") {
|
||||
Write-Host "Taged commit detected"
|
||||
$targetTag = $Env:APPVEYOR_REPO_TAG_NAME
|
||||
Write-Host "Tag=$targetTag"
|
||||
$Env:NIGHTLY_BUILD = "false"
|
||||
if($targetTag -eq "Nightly") {
|
||||
$Env:NIGHTLY_BUILD = "true"
|
||||
Write-Host "This is a nightly build"
|
||||
}
|
||||
else
|
||||
{
|
||||
Write-Host "This is NOT a nightly build"
|
||||
}
|
||||
}
|
||||
else{
|
||||
Return;
|
||||
}
|
||||
@@ -0,0 +1,66 @@
|
||||
if($Env:APPVEYOR_REPO_TAG -eq "true") {
|
||||
$targetTag = $Env:APPVEYOR_REPO_TAG_NAME
|
||||
Write-Host "Deploy for tag $targetTag"
|
||||
}
|
||||
else{
|
||||
Write-Host "No tag found: no preparation required"
|
||||
Return;
|
||||
}
|
||||
|
||||
$Env:IS_BETA_RELEASE = ($Env:APPVEYOR_REPO_TAG_NAME -match "beta")
|
||||
|
||||
$getRelaseInfoParams = @{
|
||||
Uri = "https://api.github.com/repos/Vocaluxe/Vocaluxe/releases/tags/$targetTag";
|
||||
Method = 'GET';
|
||||
Headers = @{
|
||||
Authorization = 'Basic ' + [Convert]::ToBase64String(
|
||||
[Text.Encoding]::ASCII.GetBytes($Env:GitHubKey + ":x-oauth-basic"));
|
||||
}
|
||||
}
|
||||
try{
|
||||
$result = Invoke-RestMethod @getRelaseInfoParams
|
||||
}
|
||||
catch [System.Net.WebException]
|
||||
{
|
||||
# No Release found for this tag
|
||||
$statusCode = [int]$_.Exception.Response.StatusCode
|
||||
$html = $_.Exception.Response.StatusDescription
|
||||
Write-Host "No Release found for this tag ($html): $targetTag"
|
||||
Return;
|
||||
}
|
||||
|
||||
$releaseId = $result.id
|
||||
|
||||
if(!$releaseId){
|
||||
# No matching release found in this release
|
||||
Write-Host "No matching release found"
|
||||
Return;
|
||||
}
|
||||
|
||||
if($result.body -match $Env:APPVEYOR_REPO_COMMIT){
|
||||
# An other build already recreated the release
|
||||
Write-Host "An other build already recreated the release"
|
||||
Return;
|
||||
}
|
||||
|
||||
$deleteAssetParams = @{
|
||||
Uri = "https://api.github.com/repos/Vocaluxe/Vocaluxe/releases/$releaseId";
|
||||
Method = 'DELETE';
|
||||
Headers = @{
|
||||
Authorization = 'Basic ' + [Convert]::ToBase64String(
|
||||
[Text.Encoding]::ASCII.GetBytes($Env:GitHubKey + ":x-oauth-basic"));
|
||||
}
|
||||
}
|
||||
try{
|
||||
$result = Invoke-RestMethod @deleteAssetParams
|
||||
Write-Host "Successfully deleted release for: $targetTag"
|
||||
}
|
||||
catch [System.Net.WebException]
|
||||
{
|
||||
# Could not delete release
|
||||
$statusCode = [int]$_.Exception.Response.StatusCode
|
||||
$html = $_.Exception.Response.StatusDescription
|
||||
Write-Host "Could not delete release ($html) for: $targetTag"
|
||||
Return;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
#!/bin/sh
|
||||
PROJECT=$1
|
||||
cd $PROJECT
|
||||
sed -i -r -e 's/AssemblyInformationalVersion\(".*?"\)/AssemblyInformationalVersion("GITVERSION")/' $PROJECT/Properties/AssemblyInfo.cs
|
||||
sed -i -r -e 's/AssemblyVersion\(".*?"\)/AssemblyVersion("SHORTVERSION")/' $PROJECT/Properties/AssemblyInfo.cs
|
||||
sed -i -r -e 's/AssemblyFileVersion\(".*?"\)/AssemblyFileVersion("SHORTVERSION")/' $PROJECT/Properties/AssemblyInfo.cs
|
||||
sed -i -r -e 's/AssemblyTitle\(".*?"\)/AssemblyTitle("FULLVERSION")/' $PROJECT/Properties/AssemblyInfo.cs
|
||||
sed -i -e 's/var matchingServerVersion = "";/var matchingServerVersion = "'$(git describe --long)'";/' $PROJECT/../Output/Website/js/main.js
|
||||
@@ -0,0 +1,29 @@
|
||||
#!/bin/sh
|
||||
PROJECT=$1
|
||||
cd $PROJECT
|
||||
arch=$2
|
||||
version=$(git describe --long)
|
||||
shortVersion=${version%%-*}
|
||||
shortVersionClean=$(echo $shortVersion | sed -e 's/alpha/0/' -e 's/beta/1/' -e 's/rc/2/' -e 's/[[:alpha:]]//g')
|
||||
|
||||
case ${shortVersion##*.} in
|
||||
alpha*)
|
||||
releaseType='Alpha'
|
||||
;;
|
||||
beta*)
|
||||
releaseType='Beta'
|
||||
;;
|
||||
rc*)
|
||||
releaseType='RC'
|
||||
;;
|
||||
*)
|
||||
releaseType='Release'
|
||||
;;
|
||||
esac
|
||||
|
||||
versionName=$(grep -oP "\"${shortVersionClean%.*}.\" *: *\"\K([^\"]+)(?=\")" ../.build/versionNames.json)
|
||||
fullVersionName="Vocaluxe $([ "$versionName" == "" ] && echo "" || echo "'$versionName' ")$shortVersion ($arch) $([ "$releaseType" == "Release" ] && echo "" || echo "$releaseType ")($version)"
|
||||
|
||||
sed -i -e s/GITVERSION/$(git describe --long)/ $PROJECT/Properties/AssemblyInfo.cs
|
||||
sed -i -e s/SHORTVERSION/"$shortVersionClean"/ $PROJECT/Properties/AssemblyInfo.cs
|
||||
sed -i -e s/FULLVERSION/"$fullVersionName"/ $PROJECT/Properties/AssemblyInfo.cs
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"0.0.": "Unversioned Build",
|
||||
"0.1.": "Rising Start",
|
||||
"0.2.": "Sparkling Sky",
|
||||
"0.3.": "Shining Heaven",
|
||||
"0.4.": "Blue Sunrise"
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
param(
|
||||
[Parameter(Mandatory=$true)]
|
||||
[String]$ProjectDir
|
||||
)
|
||||
|
||||
if($Env:GIT_VERSION_TAG)
|
||||
{
|
||||
$version = $Env:GIT_VERSION_TAG;
|
||||
}
|
||||
else
|
||||
{
|
||||
$version = git describe --long;
|
||||
}
|
||||
|
||||
(Get-Content -Encoding UTF8 "$($ProjectDir)..\Output\Website\js\main.js") `
|
||||
| Foreach-Object {$_ -replace '(?<=var *matchingServerVersion * = *\")\w*(?=\" *;)', "$version"} `
|
||||
| Set-Content -Encoding UTF8 "$($ProjectDir)..\Output\Website\js\main.js"
|
||||
|
||||
(Get-Content -Encoding UTF8 "$($ProjectDir)Properties\AssemblyInfo.cs") `
|
||||
| Foreach-Object {$_ -replace '(?<=AssemblyInformationalVersion\(\").*(?=\")', 'GITVERSION'} `
|
||||
| Foreach-Object {$_ -replace '(?<=(AssemblyVersion|AssemblyFileVersion)\(\").*(?=\")', 'SHORTVERSION'} `
|
||||
| Foreach-Object {$_ -replace '(?<=AssemblyTitle\(\").*(?=\")', 'FULLVERSION'} `
|
||||
| Set-Content -Encoding UTF8 "$($ProjectDir)Properties\AssemblyInfo.cs"
|
||||
@@ -0,0 +1,40 @@
|
||||
param(
|
||||
[Parameter(Mandatory=$true)]
|
||||
[String]$ProjectDir,
|
||||
[Parameter(Mandatory=$true)]
|
||||
[String]$Arch
|
||||
)
|
||||
|
||||
if($Env:GIT_VERSION_TAG)
|
||||
{
|
||||
$version = $Env:GIT_VERSION_TAG;
|
||||
}
|
||||
else
|
||||
{
|
||||
$version = git describe --long;
|
||||
}
|
||||
|
||||
$shortVersion = $version.Split('-')[0];
|
||||
|
||||
[System.Reflection.Assembly]::LoadWithPartialName("System.Web.Extensions")
|
||||
$versionName = (New-Object System.Web.Script.Serialization.JavaScriptSerializer).Deserialize((Get-Content "$($ProjectDir)..\.build\versionNames.json"), `
|
||||
[System.Collections.Hashtable])[([regex]"[0-9]+\.[0-9]+\.").Match($shortVersion).Value]
|
||||
|
||||
$releaseType = switch -wildcard ($shortVersion.Split('.')[2])
|
||||
{
|
||||
"alpha*" {"Alpha"}
|
||||
"beta*" {"Beta"}
|
||||
"rc*" {"RC"}
|
||||
default {"Release"}
|
||||
};
|
||||
|
||||
$fullVersionName = "Vocaluxe $(if($versionName) {"'"+$versionName+"' "} else {''})$shortVersion ($Arch) $(if($releaseType -ne "Release") {'$releaseType '} else {''})($version)"
|
||||
|
||||
(Get-Content -Encoding UTF8 "$($ProjectDir)Properties\AssemblyInfo.cs") `
|
||||
| Foreach-Object {$_ `
|
||||
-replace '(?<=AssemblyInformationalVersion\(").*(?=")', $version `
|
||||
-replace '(?<=(AssemblyVersion|AssemblyFileVersion)\(").*(?=")', `
|
||||
($version.Split('-')[0].replace('alpha','0').replace('beta','1').replace('rc','2') -replace "[a-zA-Z]+","")`
|
||||
-replace '(?<=AssemblyTitle\(").*(?=")', $fullVersionName `
|
||||
-replace '(?<=AssemblyCopyright\(".*)[0-9]+(?=")', (Get-Date).Year} `
|
||||
| Set-Content -Encoding UTF8 "$($ProjectDir)Properties\AssemblyInfo.cs"
|
||||
@@ -1,26 +1,15 @@
|
||||
obj
|
||||
Output/Songs
|
||||
PitchTracker.dll
|
||||
Thumbs.db
|
||||
.transifexrc
|
||||
.vs
|
||||
tx.exe
|
||||
*.mp4
|
||||
*.pdb
|
||||
/Output/Benchmark.log
|
||||
/Output/CoverDB.sqlite
|
||||
/Output/HighscoreDB.sqlite
|
||||
/Output/PartyModes/*/Code/*
|
||||
/Output/Vocaluxe.exe*
|
||||
/Output/Vocaluxe.vshost.exe*
|
||||
/Output/VocaluxeLib.dll
|
||||
*.psess
|
||||
/*.vsp
|
||||
/*.ctl
|
||||
/Output/Registration.xml
|
||||
/Vocaluxe.suo
|
||||
*.csproj.user
|
||||
*.vcxproj.user
|
||||
/Output/Config.xml
|
||||
*.ipch
|
||||
*.log
|
||||
/Output/Playlists/*.xml
|
||||
GstreamerHelper.dll
|
||||
*.tlog
|
||||
*.suo
|
||||
*.obj
|
||||
@@ -35,28 +24,50 @@ GstreamerHelper.dll
|
||||
*.codeanalysis*
|
||||
*.nativecodeanalysis*
|
||||
*.lastcodeanalysissucceeded
|
||||
/PartyModes/*/*/*.dll
|
||||
*.Cache
|
||||
/GstreamerHelper/bin/*
|
||||
/VocaluxeLib/bin
|
||||
ClientServerLib.dll
|
||||
ClientTest.exe
|
||||
*.psess
|
||||
*.vshost.*
|
||||
*.userprefs
|
||||
AndroidRemote.dll.mdb
|
||||
/ClientServerLib/AndroidRemote/bin/Newtonsoft.Json.MonoDroid.dll
|
||||
/ClientServerLib/AndroidRemote/bin/AndroidRemote.dll
|
||||
/ClientServerLib/ClientTest/bin/Debug/Newtonsoft.Json.dll
|
||||
*.apk
|
||||
*.user
|
||||
*.VC.db
|
||||
*.VC.opendb
|
||||
*.dll.config
|
||||
/*.vsp
|
||||
/*.ctl
|
||||
/Output/Config.xml
|
||||
/Output/CoverDB.sqlite
|
||||
/Output/HighscoreDB.sqlite
|
||||
/Output/ClientServerLib.dll
|
||||
Installer/VocaluxeSetup_0.3.0Beta.exe
|
||||
Output/Vocaluxe_x64.exe
|
||||
/WebserverInitalConfig/bin/Release
|
||||
/Output/Vocaluxe.exe*
|
||||
/Output/Vocaluxe_x64.exe*
|
||||
/Output/Vocaluxe.vshost.exe*
|
||||
/Output/VocaluxeLib.dll
|
||||
/Output/VocaluxeServerConfig.exe
|
||||
/Output/VocaluxeServerConfig.exe.config
|
||||
/Output/Photos
|
||||
/Output/Screenshots
|
||||
/Output/Website
|
||||
/Output/VocaluxeServerConfig.exe
|
||||
/Output/VocaluxeServerConfig.exe.config
|
||||
/Output/Songs
|
||||
/Output/Playlists/*.xml
|
||||
/Output/Profiles/*.xml
|
||||
/Output/Profiles/*.png
|
||||
/Output/PartyModes/*/Code/*
|
||||
/PartyModes/*/*/*.dll
|
||||
/VocaluxeLib/bin
|
||||
/ServerLib/bin/ClientServerLib.dll
|
||||
/Installer/setup-cache
|
||||
/Installer/Files
|
||||
/Installer/log.txt
|
||||
/Installer/setup-cache
|
||||
/Installer/Setup Files
|
||||
/WebserverInitalConfig/bin
|
||||
/PhoneGap/
|
||||
/Output/Profiles
|
||||
PitchTracker.dll
|
||||
/TestResults
|
||||
/VocaluxeTests/bin
|
||||
/Output/libs
|
||||
/Output/Themes/*.mp4
|
||||
/packages
|
||||
/Output/x64
|
||||
/Output/x86
|
||||
/PitchTracker/bin
|
||||
/PitchTracker/obj
|
||||
@@ -0,0 +1,39 @@
|
||||
[main]
|
||||
host = https://www.transifex.com
|
||||
minimum_perc = 25
|
||||
|
||||
[vocaluxe.challenge]
|
||||
file_filter = Output/PartyModes/Challenge/Languages/<lang>.xml
|
||||
source_file = Output/PartyModes/Challenge/Languages/English.xml
|
||||
source_lang = English
|
||||
lang_map = en:English, cs:Czech, de:German, es:Spanish, fr:French, sv:Swedish, nl:Dutch, ast:Asturian, tr:Turkish, hu:Hungarian, it:Italian, ca:Catalan, pt:Portuguese, pl_PL:Polish, da_DK:Danish
|
||||
type = ANDROID
|
||||
|
||||
[vocaluxe.challenge-medley]
|
||||
file_filter = Output/PartyModes/ChallengeMedley/Languages/<lang>.xml
|
||||
source_file = Output/PartyModes/ChallengeMedley/Languages/English.xml
|
||||
source_lang = English
|
||||
lang_map = en:English, cs:Czech, de:German, es:Spanish, fr:French, sv:Swedish, nl:Dutch, ast:Asturian, tr:Turkish, hu:Hungarian, it:Italian, ca:Catalan, pt:Portuguese, pl_PL:Polish, da_DK:Danish
|
||||
type = ANDROID
|
||||
|
||||
[vocaluxe.game]
|
||||
file_filter = Output/Languages/<lang>.xml
|
||||
source_file = Output/Languages/English.xml
|
||||
source_lang = English
|
||||
lang_map = en:English, cs:Czech, de:German, es:Spanish, fr:French, sv:Swedish, nl:Dutch, ast:Asturian, tr:Turkish, hu:Hungarian, it:Italian, ca:Catalan, pt:Portuguese, pl_PL:Polish, da_DK:Danish
|
||||
type = ANDROID
|
||||
|
||||
[vocaluxe.tictactoe]
|
||||
file_filter = Output/PartyModes/TicTacToe/Languages/<lang>.xml
|
||||
source_file = Output/PartyModes/TicTacToe/Languages/English.xml
|
||||
source_lang = English
|
||||
lang_map = en:English, cs:Czech, de:German, es:Spanish, fr:French, sv:Swedish, nl:Dutch, ast:Asturian, tr:Turkish, hu:Hungarian, it:Italian, ca:Catalan, pt:Portuguese, pl_PL:Polish, da_DK:Danish
|
||||
type = ANDROID
|
||||
|
||||
[vocaluxe.webinterface]
|
||||
file_filter = Vocaluxe/Website/locales/<lang>.json
|
||||
source_file = Vocaluxe/Website/locales/en.json
|
||||
source_lang = en
|
||||
lang_map = en:English, cs:Czech, de:German, es:Spanish, fr:French, sv:Swedish, nl:Dutch, ast:Asturian, tr:Turkish, hu:Hungarian, it:Italian, ca:Catalan, pt:Portuguese, pl_PL:Polish, da_DK:Danish
|
||||
type = KEYVALUEJSON
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 11.00
|
||||
# Visual Studio 2010
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Vocaluxe App", "AndroidRemote\Vocaluxe App.csproj", "{D97EF6F3-7C3F-439F-B022-647948E206D2}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Release|Any CPU = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{D97EF6F3-7C3F-439F-B022-647948E206D2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{D97EF6F3-7C3F-439F-B022-647948E206D2}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{D97EF6F3-7C3F-439F-B022-647948E206D2}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{D97EF6F3-7C3F-439F-B022-647948E206D2}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(MonoDevelopProperties) = preSolution
|
||||
StartupItem = AndroidRemote\Vocaluxe App.csproj
|
||||
Policies = $0
|
||||
$0.DotNetNamingPolicy = $1
|
||||
$1.DirectoryNamespaceAssociation = None
|
||||
$1.ResourceNamePolicy = FileFormatDefault
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
@@ -1,285 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
using Android.App;
|
||||
using Android.Content;
|
||||
using Android.Content.PM;
|
||||
using Android.Graphics;
|
||||
using Android.Runtime;
|
||||
using Android.Views;
|
||||
using Android.Widget;
|
||||
using Android.OS;
|
||||
using Android.Provider;
|
||||
|
||||
using ClientServerLib;
|
||||
using Vocaluxe.Base.Server;
|
||||
|
||||
namespace org.vocaluxe.app
|
||||
{
|
||||
[Activity (Label = "Vocaluxe App", MainLauncher = true, ConfigurationChanges=Android.Content.PM.ConfigChanges.Orientation)]
|
||||
public class Activity1 : Activity
|
||||
{
|
||||
private readonly int REQUEST_TAKE_PICTURE = 1;
|
||||
private readonly int REQUEST_PICK_PICTURE = 2;
|
||||
|
||||
CClient client = new CClient();
|
||||
CDiscover discover;
|
||||
Button bConnect;
|
||||
Button bSendAvatar;
|
||||
Button bSendProfile;
|
||||
|
||||
TextView tIP;
|
||||
TextView tPassword;
|
||||
|
||||
ProgressDialog pDialog;
|
||||
|
||||
byte[] fileBytes;
|
||||
|
||||
Java.IO.File file;
|
||||
Java.IO.File file2;
|
||||
Java.IO.File dir;
|
||||
System.IO.FileStream fs;
|
||||
|
||||
bool sendProfile;
|
||||
|
||||
protected override void OnCreate (Bundle bundle)
|
||||
{
|
||||
base.OnCreate (bundle);
|
||||
|
||||
SetContentView (Resource.Layout.Main);
|
||||
pDialog = new ProgressDialog (this);
|
||||
pDialog.SetCancelable (false);
|
||||
|
||||
bConnect = FindViewById<Button> (Resource.Id.btConnect);
|
||||
bConnect.Click += delegate { Connect(); };
|
||||
|
||||
Button bDiscover = FindViewById<Button> (Resource.Id.btDiscover);
|
||||
bDiscover.Click += delegate { Discover(); };
|
||||
|
||||
bSendAvatar = FindViewById<Button> (Resource.Id.btSendAvatar);
|
||||
bSendAvatar.Click += SendAvatar;
|
||||
|
||||
bSendProfile = FindViewById<Button> (Resource.Id.btSendProfile);
|
||||
bSendProfile.Click += SendProfile;
|
||||
|
||||
tIP = FindViewById<TextView> (Resource.Id.tbIP);
|
||||
tPassword = FindViewById<TextView> (Resource.Id.tbPassword);
|
||||
|
||||
sendProfile = false;
|
||||
|
||||
discover = new CDiscover(3000, CCommands.BroadcastKeyword);
|
||||
Discover ();
|
||||
}
|
||||
|
||||
protected override void OnStop ()
|
||||
{
|
||||
base.OnStop();
|
||||
//client.Close();
|
||||
}
|
||||
|
||||
protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
|
||||
{
|
||||
//base.OnActivityResult(requestCode, resultCode, data);
|
||||
if (resultCode != Result.Ok)
|
||||
return;
|
||||
|
||||
if (requestCode == REQUEST_TAKE_PICTURE)
|
||||
{
|
||||
// make it available in the gallery
|
||||
//Intent mediaScanIntent = new Intent(Intent.ActionMediaScannerScanFile);
|
||||
Android.Net.Uri contentUri = Android.Net.Uri.FromFile(file);
|
||||
//mediaScanIntent.SetData(contentUri);
|
||||
//SendBroadcast(mediaScanIntent);
|
||||
|
||||
Java.IO.File dir2 = new Java.IO.File(Android.OS.Environment.GetExternalStoragePublicDirectory(Android.OS.Environment.DirectoryPictures), Resources.GetString(Resource.String.app_name));
|
||||
if (!dir.Exists())
|
||||
{
|
||||
dir.Mkdirs();
|
||||
}
|
||||
|
||||
file2 = new Java.IO.File(dir, String.Format("myPhoto_{0}.jpg", Guid.NewGuid()));
|
||||
|
||||
Intent picker = new Intent ("com.android.camera.action.CROP");
|
||||
//Intent picker = new Intent (Intent.ActionGetContent, contentUri);
|
||||
picker.SetDataAndType (contentUri, "image/*");
|
||||
picker.PutExtra ("crop", "true");
|
||||
picker.PutExtra ("aspectX", 1);
|
||||
picker.PutExtra ("aspectY", 1);
|
||||
picker.PutExtra ("outputX", 512);
|
||||
picker.PutExtra ("outputY", 512);
|
||||
picker.PutExtra ("return-data", false);
|
||||
//picker.PutExtra ("outputFormat", Bitmap.CompressFormat.Jpeg.ToString ());
|
||||
picker.PutExtra ("noFaceDetection", true);
|
||||
picker.PutExtra (MediaStore.ExtraOutput, Android.Net.Uri.FromFile(file2));
|
||||
StartActivityForResult (picker, REQUEST_PICK_PICTURE);
|
||||
}
|
||||
|
||||
if (requestCode == REQUEST_PICK_PICTURE)
|
||||
{
|
||||
if (data.Extras != null)
|
||||
{
|
||||
System.IO.FileInfo fi = new System.IO.FileInfo(file2.Path);
|
||||
fs = new System.IO.FileStream(file2.Path, System.IO.FileMode.Open);
|
||||
fileBytes = new byte[fi.Length];
|
||||
fs.BeginRead (fileBytes, 0, (int)fi.Length, new AsyncCallback(OnFileRead), null);
|
||||
fi = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void OnFileRead(IAsyncResult ar)
|
||||
{
|
||||
if (fileBytes == null)
|
||||
return;
|
||||
|
||||
fs.Flush();
|
||||
fs.Close();
|
||||
|
||||
if (file != null)
|
||||
file.Delete ();
|
||||
|
||||
if (file2 != null)
|
||||
file2.Delete ();
|
||||
|
||||
if (sendProfile)
|
||||
{
|
||||
sendProfile = false;
|
||||
TextView tv = FindViewById<TextView>(Resource.Id.tbPlayerName);
|
||||
if (tv.Text == String.Empty)
|
||||
return;
|
||||
|
||||
client.SendMessage (CCommands.CreateCommandSendProfile(fileBytes, tv.Text, 0), OnResponse);
|
||||
}
|
||||
else
|
||||
client.SendMessage (CCommands.CreateCommandSendAvatarPictureJpg(fileBytes), OnResponse);
|
||||
}
|
||||
|
||||
private bool IsThereAnAppToTakePictures()
|
||||
{
|
||||
Intent intent = new Intent(MediaStore.ActionImageCapture);
|
||||
IList<ResolveInfo> availableActivities = PackageManager.QueryIntentActivities(intent, PackageInfoFlags.MatchDefaultOnly);
|
||||
return availableActivities != null && availableActivities.Count > 0;
|
||||
}
|
||||
|
||||
private void SendAvatar(object sender, EventArgs eventArgs)
|
||||
{
|
||||
_TakePicture (false);
|
||||
}
|
||||
|
||||
private void SendProfile(object sender, EventArgs eventArgs)
|
||||
{
|
||||
_TakePicture (true);
|
||||
}
|
||||
|
||||
private void _TakePicture(bool SendProfile)
|
||||
{
|
||||
sendProfile = SendProfile;
|
||||
|
||||
if (!IsThereAnAppToTakePictures())
|
||||
return;
|
||||
|
||||
Intent intent = new Intent(MediaStore.ActionImageCapture);
|
||||
dir = new Java.IO.File(Android.OS.Environment.GetExternalStoragePublicDirectory(Android.OS.Environment.DirectoryPictures), Resources.GetString(Resource.String.app_name));
|
||||
if (!dir.Exists())
|
||||
{
|
||||
dir.Mkdirs();
|
||||
}
|
||||
|
||||
file = new Java.IO.File(dir, String.Format("myPhoto_{0}.jpg", Guid.NewGuid()));
|
||||
intent.PutExtra(MediaStore.ExtraOutput, Android.Net.Uri.FromFile(file));
|
||||
StartActivityForResult(intent, REQUEST_TAKE_PICTURE);
|
||||
}
|
||||
|
||||
private void Connect()
|
||||
{
|
||||
if (!client.Connected)
|
||||
{
|
||||
pDialog.SetMessage ("Connecting for Server...");
|
||||
pDialog.Show ();
|
||||
client.Connect(tIP.Text, 3000, tPassword.Text, OnConnectionChanged);
|
||||
}
|
||||
else
|
||||
{
|
||||
pDialog.Hide ();
|
||||
client.Disconnect();
|
||||
}
|
||||
}
|
||||
|
||||
private void Discover()
|
||||
{
|
||||
pDialog.SetMessage ("Searching for Server...");
|
||||
pDialog.Show ();
|
||||
discover.Discover (_OnDiscovered);
|
||||
}
|
||||
|
||||
private void OnConnectionChanged(bool Connected)
|
||||
{
|
||||
RunOnUiThread (() => UpdateConnectionStatus(Connected));
|
||||
}
|
||||
|
||||
private void OnResponse(byte[] Message)
|
||||
{
|
||||
if (Message == null)
|
||||
return;
|
||||
|
||||
if (Message.Length < 4)
|
||||
return;
|
||||
|
||||
int command = BitConverter.ToInt32(Message, 0);
|
||||
switch (command)
|
||||
{
|
||||
case CCommands.ResponseOK:
|
||||
RunOnUiThread (() => Toast.MakeText(this, Resources.GetString(Resource.String.message_ok), ToastLength.Short).Show());
|
||||
break;
|
||||
|
||||
case CCommands.ResponseNOK:
|
||||
RunOnUiThread (() => Toast.MakeText(this, Resources.GetString(Resource.String.message_nok), ToastLength.Short).Show());
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void _OnDiscovered(string Address, string HostName)
|
||||
{
|
||||
RunOnUiThread (() =>
|
||||
{
|
||||
if (Address != CDiscover.sTimeout && Address != CDiscover.sFinished)
|
||||
{
|
||||
tIP.Text = Address;
|
||||
Connect ();
|
||||
}
|
||||
else if (Address == CDiscover.sTimeout)
|
||||
{
|
||||
pDialog.Hide ();
|
||||
Toast.MakeText(this, "Cant't find any Vocaluxe Server", ToastLength.Short).Show();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void UpdateConnectionStatus(bool Connected)
|
||||
{
|
||||
if (Connected)
|
||||
{
|
||||
pDialog.Hide ();
|
||||
bConnect.Text = Resources.GetString(Resource.String.button_disconnect);
|
||||
Toast.MakeText(this, Resource.String.message_connected, ToastLength.Short).Show();
|
||||
bSendAvatar.Enabled = true;
|
||||
bSendProfile.Enabled = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
pDialog.Hide ();
|
||||
client.Disconnect();
|
||||
bConnect.Text = Resources.GetString(Resource.String.button_connect);
|
||||
bSendAvatar.Enabled = false;
|
||||
bSendProfile.Enabled = false;
|
||||
Toast.MakeText(this, Resources.GetString(Resource.String.message_disconnected), ToastLength.Short).Show();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="0.1" package="org.vocaluxe.app">
|
||||
<uses-sdk />
|
||||
<application android:label="Vocaluxe App" android:icon="@drawable/icon"></application>
|
||||
<uses-permission android:name="android.permission.CAMERA" />
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
</manifest>
|
||||
@@ -1,28 +0,0 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using Android.App;
|
||||
|
||||
// Information about this assembly is defined by the following attributes.
|
||||
// Change them to the values specific to your project.
|
||||
|
||||
[assembly: AssemblyTitle("Vocaluxe App")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("")]
|
||||
[assembly: AssemblyCopyright("Alex")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}".
|
||||
// The form "{Major}.{Minor}.*" will automatically update the build and revision,
|
||||
// and "{Major}.{Minor}.{Build}.*" will update just the revision.
|
||||
|
||||
[assembly: AssemblyVersion("1.0.0")]
|
||||
|
||||
// The following attributes are used to specify the signing key for the assembly,
|
||||
// if desired. See the Mono documentation for more information about signing.
|
||||
|
||||
//[assembly: AssemblyDelaySign(false)]
|
||||
//[assembly: AssemblyKeyFile("")]
|
||||
|
||||
@@ -1,44 +0,0 @@
|
||||
Images, layout descriptions, binary blobs and string dictionaries can be included
|
||||
in your application as resource files. Various Android APIs are designed to
|
||||
operate on the resource IDs instead of dealing with images, strings or binary blobs
|
||||
directly.
|
||||
|
||||
For example, a sample Android app that contains a user interface layout (main.axml),
|
||||
an internationalization string table (strings.xml) and some icons (drawable-XXX/icon.png)
|
||||
would keep its resources in the "Resources" directory of the application:
|
||||
|
||||
Resources/
|
||||
drawable/
|
||||
icon.png
|
||||
|
||||
layout/
|
||||
main.axml
|
||||
|
||||
values/
|
||||
strings.xml
|
||||
|
||||
In order to get the build system to recognize Android resources, set the build action to
|
||||
"AndroidResource". The native Android APIs do not operate directly with filenames, but
|
||||
instead operate on resource IDs. When you compile an Android application that uses resources,
|
||||
the build system will package the resources for distribution and generate a class called "R"
|
||||
(this is an Android convention) that contains the tokens for each one of the resources
|
||||
included. For example, for the above Resources layout, this is what the R class would expose:
|
||||
|
||||
public class R {
|
||||
public class drawable {
|
||||
public const int icon = 0x123;
|
||||
}
|
||||
|
||||
public class layout {
|
||||
public const int main = 0x456;
|
||||
}
|
||||
|
||||
public class strings {
|
||||
public const int first_string = 0xabc;
|
||||
public const int second_string = 0xbcd;
|
||||
}
|
||||
}
|
||||
|
||||
You would then use R.drawable.icon to reference the drawable/icon.png file, or R.layout.main
|
||||
to reference the layout/main.axml file, or R.strings.first_string to reference the first
|
||||
string in the dictionary file values/strings.xml.
|
||||
@@ -1,175 +0,0 @@
|
||||
#pragma warning disable 1591
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// Dieser Code wurde von einem Tool generiert.
|
||||
// Laufzeitversion:4.0.30319.18047
|
||||
//
|
||||
// Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
|
||||
// der Code erneut generiert wird.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
[assembly: global::Android.Runtime.ResourceDesignerAttribute("org.vocaluxe.app.Resource", IsApplication=true)]
|
||||
|
||||
namespace org.vocaluxe.app
|
||||
{
|
||||
|
||||
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Android.Build.Tasks", "1.0.0.0")]
|
||||
public partial class Resource
|
||||
{
|
||||
|
||||
static Resource()
|
||||
{
|
||||
global::Android.Runtime.ResourceIdManager.UpdateIdValues();
|
||||
}
|
||||
|
||||
public static void UpdateIdValues()
|
||||
{
|
||||
}
|
||||
|
||||
public partial class Attribute
|
||||
{
|
||||
|
||||
static Attribute()
|
||||
{
|
||||
global::Android.Runtime.ResourceIdManager.UpdateIdValues();
|
||||
}
|
||||
|
||||
private Attribute()
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
public partial class Drawable
|
||||
{
|
||||
|
||||
// aapt resource value: 0x7f020000
|
||||
public const int Icon = 2130837504;
|
||||
|
||||
static Drawable()
|
||||
{
|
||||
global::Android.Runtime.ResourceIdManager.UpdateIdValues();
|
||||
}
|
||||
|
||||
private Drawable()
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
public partial class Id
|
||||
{
|
||||
|
||||
// aapt resource value: 0x7f050004
|
||||
public const int btConnect = 2131034116;
|
||||
|
||||
// aapt resource value: 0x7f050005
|
||||
public const int btDiscover = 2131034117;
|
||||
|
||||
// aapt resource value: 0x7f050006
|
||||
public const int btSendAvatar = 2131034118;
|
||||
|
||||
// aapt resource value: 0x7f050009
|
||||
public const int btSendProfile = 2131034121;
|
||||
|
||||
// aapt resource value: 0x7f050001
|
||||
public const int tbIP = 2131034113;
|
||||
|
||||
// aapt resource value: 0x7f050003
|
||||
public const int tbPassword = 2131034115;
|
||||
|
||||
// aapt resource value: 0x7f050008
|
||||
public const int tbPlayerName = 2131034120;
|
||||
|
||||
// aapt resource value: 0x7f050000
|
||||
public const int textView1 = 2131034112;
|
||||
|
||||
// aapt resource value: 0x7f050002
|
||||
public const int textView2 = 2131034114;
|
||||
|
||||
// aapt resource value: 0x7f050007
|
||||
public const int textView3 = 2131034119;
|
||||
|
||||
static Id()
|
||||
{
|
||||
global::Android.Runtime.ResourceIdManager.UpdateIdValues();
|
||||
}
|
||||
|
||||
private Id()
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
public partial class Layout
|
||||
{
|
||||
|
||||
// aapt resource value: 0x7f030000
|
||||
public const int Main = 2130903040;
|
||||
|
||||
static Layout()
|
||||
{
|
||||
global::Android.Runtime.ResourceIdManager.UpdateIdValues();
|
||||
}
|
||||
|
||||
private Layout()
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
public partial class String
|
||||
{
|
||||
|
||||
// aapt resource value: 0x7f040000
|
||||
public const int app_name = 2130968576;
|
||||
|
||||
// aapt resource value: 0x7f040001
|
||||
public const int button_connect = 2130968577;
|
||||
|
||||
// aapt resource value: 0x7f040002
|
||||
public const int button_disconnect = 2130968578;
|
||||
|
||||
// aapt resource value: 0x7f040003
|
||||
public const int button_send_avatar = 2130968579;
|
||||
|
||||
// aapt resource value: 0x7f040004
|
||||
public const int button_send_profile = 2130968580;
|
||||
|
||||
// aapt resource value: 0x7f04000c
|
||||
public const int ip_address = 2130968588;
|
||||
|
||||
// aapt resource value: 0x7f040005
|
||||
public const int message_connected = 2130968581;
|
||||
|
||||
// aapt resource value: 0x7f040006
|
||||
public const int message_disconnected = 2130968582;
|
||||
|
||||
// aapt resource value: 0x7f040008
|
||||
public const int message_nok = 2130968584;
|
||||
|
||||
// aapt resource value: 0x7f040007
|
||||
public const int message_ok = 2130968583;
|
||||
|
||||
// aapt resource value: 0x7f04000d
|
||||
public const int password = 2130968589;
|
||||
|
||||
// aapt resource value: 0x7f040009
|
||||
public const int text_ip_address = 2130968585;
|
||||
|
||||
// aapt resource value: 0x7f04000a
|
||||
public const int text_password = 2130968586;
|
||||
|
||||
// aapt resource value: 0x7f04000b
|
||||
public const int text_player_name = 2130968587;
|
||||
|
||||
static String()
|
||||
{
|
||||
global::Android.Runtime.ResourceIdManager.UpdateIdValues();
|
||||
}
|
||||
|
||||
private String()
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#pragma warning restore 1591
|
||||
|
Before Width: | Height: | Size: 60 KiB |
@@ -1,71 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:orientation="vertical"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="fill_parent">
|
||||
<TextView
|
||||
android:text="@string/text_ip_address"
|
||||
android:textAppearance="?android:attr/textAppearanceMedium"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:id="@+id/textView1"
|
||||
android:layout_margin="3dp"
|
||||
android:linksClickable="false" />
|
||||
<EditText
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:id="@+id/tbIP"
|
||||
android:layout_margin="3dp"
|
||||
android:text="@string/ip_address" />
|
||||
<TextView
|
||||
android:text="@string/text_password"
|
||||
android:textAppearance="?android:attr/textAppearanceMedium"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="3dp"
|
||||
android:id="@+id/textView2" />
|
||||
<EditText
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:id="@+id/tbPassword"
|
||||
android:layout_margin="3dp"
|
||||
android:text="@string/password" />
|
||||
<Button
|
||||
android:text="@string/button_connect"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="3dp"
|
||||
android:id="@+id/btConnect" />
|
||||
<Button
|
||||
android:text="Discover"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="3dp"
|
||||
android:id="@+id/btDiscover" />
|
||||
<Button
|
||||
android:text="@string/button_send_avatar"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:id="@+id/btSendAvatar"
|
||||
android:layout_margin="3dp"
|
||||
android:enabled="false" />
|
||||
<TextView
|
||||
android:text="@string/text_player_name"
|
||||
android:textAppearance="?android:attr/textAppearanceMedium"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="3dp"
|
||||
android:id="@+id/textView3" />
|
||||
<EditText
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="3dp"
|
||||
android:id="@+id/tbPlayerName" />
|
||||
<Button
|
||||
android:text="@string/button_send_profile"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:id="@+id/btSendProfile"
|
||||
android:layout_margin="3dp"
|
||||
android:enabled="false" />
|
||||
</LinearLayout>
|
||||
@@ -1,17 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="app_name">Vocaluxe App</string>
|
||||
<string name="button_connect">Connect</string>
|
||||
<string name="button_disconnect">Disconnect</string>
|
||||
<string name="button_send_avatar">Send Avatar Picture</string>
|
||||
<string name="button_send_profile">Send Profile</string>
|
||||
<string name="message_connected">Connected</string>
|
||||
<string name="message_disconnected">Disconnected</string>
|
||||
<string name="message_ok">Success</string>
|
||||
<string name="message_nok">Error</string>
|
||||
<string name="text_ip_address">IP Address of Vocaluxe Server:</string>
|
||||
<string name="text_password">Password:</string>
|
||||
<string name="text_player_name">Player Name:</string>
|
||||
<string name="ip_address"></string>
|
||||
<string name="password">vocaluxe</string>
|
||||
</resources>
|
||||
@@ -1,163 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProductVersion>10.0.0</ProductVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectGuid>{D97EF6F3-7C3F-439F-B022-647948E206D2}</ProjectGuid>
|
||||
<ProjectTypeGuids>{EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
|
||||
<OutputType>Library</OutputType>
|
||||
<RootNamespace>org.vocaluxe.app</RootNamespace>
|
||||
<MonoAndroidResourcePrefix>Resources</MonoAndroidResourcePrefix>
|
||||
<MonoAndroidAssetsPrefix>Assets</MonoAndroidAssetsPrefix>
|
||||
<AndroidResgenClass>Resource</AndroidResgenClass>
|
||||
<AndroidApplication>True</AndroidApplication>
|
||||
<AndroidResgenFile>Resources\Resource.designer.cs</AndroidResgenFile>
|
||||
<AssemblyName>VocaluxeApp</AssemblyName>
|
||||
<AndroidManifest>Properties\AndroidManifest.xml</AndroidManifest>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\</OutputPath>
|
||||
<DefineConstants>DEBUG;MONO</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<ConsolePause>false</ConsolePause>
|
||||
<AndroidLinkMode>None</AndroidLinkMode>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>none</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\</OutputPath>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<AndroidUseSharedRuntime>false</AndroidUseSharedRuntime>
|
||||
<ConsolePause>false</ConsolePause>
|
||||
<DefineConstants>MONO</DefineConstants>
|
||||
<EmbedAssembliesIntoApk>true</EmbedAssembliesIntoApk>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="Mono.Android" />
|
||||
<Reference Include="Newtonsoft.Json.MonoDroid">
|
||||
<HintPath>Newtonsoft.Json.MonoDroid.dll</HintPath>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="MainActivity.cs" />
|
||||
<Compile Include="Resources\Resource.designer.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="..\ClientServerLib\CClient.cs">
|
||||
<Link>ClientServerLib\CClient.cs</Link>
|
||||
</Compile>
|
||||
<Compile Include="..\ClientServerLib\CConnection.cs">
|
||||
<Link>ClientServerLib\CConnection.cs</Link>
|
||||
</Compile>
|
||||
<Compile Include="..\ClientServerLib\Structs.cs">
|
||||
<Link>ClientServerLib\Structs.cs</Link>
|
||||
</Compile>
|
||||
<Compile Include="..\ClientServerLib\DeffieHellman\BigInt.cs">
|
||||
<Link>ClientServerLib\DeffieHellman\BigInt.cs</Link>
|
||||
</Compile>
|
||||
<Compile Include="..\ClientServerLib\DeffieHellman\DeffieHellman.cs">
|
||||
<Link>ClientServerLib\DeffieHellman\DeffieHellman.cs</Link>
|
||||
</Compile>
|
||||
<Compile Include="..\ClientServerLib\DeffieHellman\StrongNumberProvider.cs">
|
||||
<Link>ClientServerLib\DeffieHellman\StrongNumberProvider.cs</Link>
|
||||
</Compile>
|
||||
<Compile Include="..\ClientServerLib\CDiscover.cs">
|
||||
<Link>ClientServerLib\CDiscover.cs</Link>
|
||||
</Compile>
|
||||
<Compile Include="..\..\Vocaluxe\Base\Server\CCommands.cs">
|
||||
<Link>ClientServerLib\Server\CCommands.cs</Link>
|
||||
</Compile>
|
||||
<Compile Include="..\..\Vocaluxe\Base\Server\VocaluxeStructs.cs">
|
||||
<Link>ClientServerLib\Server\VocaluxeStructs.cs</Link>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Resources\AboutResources.txt" />
|
||||
<None Include="Properties\AndroidManifest.xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<AndroidResource Include="Resources\layout\Main.axml" />
|
||||
<AndroidResource Include="Resources\values\Strings.xml" />
|
||||
<AndroidResource Include="Resources\drawable\Icon.png" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildExtensionsPath)\Novell\Novell.MonoDroid.CSharp.targets" />
|
||||
<ItemGroup>
|
||||
<Folder Include="ClientServerLib\" />
|
||||
<Folder Include="Assets\" />
|
||||
<Folder Include="ClientServerLib\Vocaluxe\" />
|
||||
<Folder Include="ClientServerLib\Server\" />
|
||||
</ItemGroup>
|
||||
<ProjectExtensions>
|
||||
<MonoDevelop>
|
||||
<Properties>
|
||||
<Policies>
|
||||
<TextStylePolicy TabsToSpaces="False" inheritsSet="VisualStudio" inheritsScope="text/plain" scope="text/plain" />
|
||||
<NameConventionPolicy>
|
||||
<Rules>
|
||||
<NamingRule Name="Namespaces" AffectedEntity="Namespace" VisibilityMask="VisibilityMask" NamingStyle="PascalCase" IncludeInstanceMembers="True" IncludeStaticEntities="True" />
|
||||
<NamingRule Name="Types" AffectedEntity="Class, Struct, Enum, Delegate" VisibilityMask="VisibilityMask" NamingStyle="PascalCase" IncludeInstanceMembers="True" IncludeStaticEntities="True" />
|
||||
<NamingRule Name="Interfaces" AffectedEntity="Interface" VisibilityMask="VisibilityMask" NamingStyle="PascalCase" IncludeInstanceMembers="True" IncludeStaticEntities="True">
|
||||
<RequiredPrefixes>
|
||||
<String>I</String>
|
||||
</RequiredPrefixes>
|
||||
</NamingRule>
|
||||
<NamingRule Name="Attributes" AffectedEntity="CustomAttributes" VisibilityMask="VisibilityMask" NamingStyle="PascalCase" IncludeInstanceMembers="True" IncludeStaticEntities="True">
|
||||
<RequiredSuffixes>
|
||||
<String>Attribute</String>
|
||||
</RequiredSuffixes>
|
||||
</NamingRule>
|
||||
<NamingRule Name="Event Arguments" AffectedEntity="CustomEventArgs" VisibilityMask="VisibilityMask" NamingStyle="PascalCase" IncludeInstanceMembers="True" IncludeStaticEntities="True">
|
||||
<RequiredSuffixes>
|
||||
<String>EventArgs</String>
|
||||
</RequiredSuffixes>
|
||||
</NamingRule>
|
||||
<NamingRule Name="Exceptions" AffectedEntity="CustomExceptions" VisibilityMask="VisibilityMask" NamingStyle="PascalCase" IncludeInstanceMembers="True" IncludeStaticEntities="True">
|
||||
<RequiredSuffixes>
|
||||
<String>Exception</String>
|
||||
</RequiredSuffixes>
|
||||
</NamingRule>
|
||||
<NamingRule Name="Methods" AffectedEntity="Methods" VisibilityMask="VisibilityMask" NamingStyle="PascalCase" IncludeInstanceMembers="True" IncludeStaticEntities="True" />
|
||||
<NamingRule Name="Static Readonly Fields" AffectedEntity="ReadonlyField" VisibilityMask="Internal, Protected, Public" NamingStyle="PascalCase" IncludeInstanceMembers="False" IncludeStaticEntities="True" />
|
||||
<NamingRule Name="Fields (Non Private)" AffectedEntity="Field" VisibilityMask="Internal, Protected, Public" NamingStyle="PascalCase" IncludeInstanceMembers="True" IncludeStaticEntities="True" />
|
||||
<NamingRule Name="ReadOnly Fields (Non Private)" AffectedEntity="ReadonlyField" VisibilityMask="Internal, Protected, Public" NamingStyle="PascalCase" IncludeInstanceMembers="True" IncludeStaticEntities="False" />
|
||||
<NamingRule Name="Fields (Private)" AffectedEntity="Field, ReadonlyField" VisibilityMask="Private" NamingStyle="CamelCase" IncludeInstanceMembers="True" IncludeStaticEntities="False">
|
||||
<AllowedPrefixes>
|
||||
<String>_</String>
|
||||
<String>m_</String>
|
||||
</AllowedPrefixes>
|
||||
</NamingRule>
|
||||
<NamingRule Name="Static Fields (Private)" AffectedEntity="Field" VisibilityMask="Private" NamingStyle="CamelCase" IncludeInstanceMembers="False" IncludeStaticEntities="True" />
|
||||
<NamingRule Name="ReadOnly Fields (Private)" AffectedEntity="ReadonlyField" VisibilityMask="Private" NamingStyle="CamelCase" IncludeInstanceMembers="True" IncludeStaticEntities="False">
|
||||
<AllowedPrefixes>
|
||||
<String>_</String>
|
||||
<String>m_</String>
|
||||
</AllowedPrefixes>
|
||||
</NamingRule>
|
||||
<NamingRule Name="Constant Fields" AffectedEntity="ConstantField" VisibilityMask="VisibilityMask" NamingStyle="PascalCase" IncludeInstanceMembers="True" IncludeStaticEntities="True" />
|
||||
<NamingRule Name="Properties" AffectedEntity="Property" VisibilityMask="VisibilityMask" NamingStyle="PascalCase" IncludeInstanceMembers="True" IncludeStaticEntities="True" />
|
||||
<NamingRule Name="Events" AffectedEntity="Event" VisibilityMask="VisibilityMask" NamingStyle="PascalCase" IncludeInstanceMembers="True" IncludeStaticEntities="True" />
|
||||
<NamingRule Name="Enum Members" AffectedEntity="EnumMember" VisibilityMask="VisibilityMask" NamingStyle="PascalCase" IncludeInstanceMembers="True" IncludeStaticEntities="True" />
|
||||
<NamingRule Name="Parameters" AffectedEntity="Parameter" VisibilityMask="VisibilityMask" NamingStyle="CamelCase" IncludeInstanceMembers="True" IncludeStaticEntities="True" />
|
||||
<NamingRule Name="Type Parameters" AffectedEntity="TypeParameter" VisibilityMask="VisibilityMask" NamingStyle="PascalCase" IncludeInstanceMembers="True" IncludeStaticEntities="True">
|
||||
<RequiredPrefixes>
|
||||
<String>T</String>
|
||||
</RequiredPrefixes>
|
||||
</NamingRule>
|
||||
</Rules>
|
||||
</NameConventionPolicy>
|
||||
<VersionControlPolicy inheritsSet="Mono" />
|
||||
<ChangeLogPolicy inheritsSet="Mono" />
|
||||
</Policies>
|
||||
</Properties>
|
||||
</MonoDevelop>
|
||||
</ProjectExtensions>
|
||||
</Project>
|
||||
@@ -1,42 +0,0 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 11.00
|
||||
# Visual C# Express 2010
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ClientServerLib", "ClientServerLib\ClientServerLib.csproj", "{EC5167E4-CCFB-4CEE-987C-CF816F1062A3}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ClientTest", "ClientTest\ClientTest.csproj", "{48A825C6-728F-4EBF-B98E-3D4665B3BC9E}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Debug|Mixed Platforms = Debug|Mixed Platforms
|
||||
Debug|x86 = Debug|x86
|
||||
Release|Any CPU = Release|Any CPU
|
||||
Release|Mixed Platforms = Release|Mixed Platforms
|
||||
Release|x86 = Release|x86
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{EC5167E4-CCFB-4CEE-987C-CF816F1062A3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{EC5167E4-CCFB-4CEE-987C-CF816F1062A3}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{EC5167E4-CCFB-4CEE-987C-CF816F1062A3}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{EC5167E4-CCFB-4CEE-987C-CF816F1062A3}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{EC5167E4-CCFB-4CEE-987C-CF816F1062A3}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{EC5167E4-CCFB-4CEE-987C-CF816F1062A3}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{EC5167E4-CCFB-4CEE-987C-CF816F1062A3}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{EC5167E4-CCFB-4CEE-987C-CF816F1062A3}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{EC5167E4-CCFB-4CEE-987C-CF816F1062A3}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{EC5167E4-CCFB-4CEE-987C-CF816F1062A3}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{48A825C6-728F-4EBF-B98E-3D4665B3BC9E}.Debug|Any CPU.ActiveCfg = Debug|x86
|
||||
{48A825C6-728F-4EBF-B98E-3D4665B3BC9E}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
|
||||
{48A825C6-728F-4EBF-B98E-3D4665B3BC9E}.Debug|Mixed Platforms.Build.0 = Debug|x86
|
||||
{48A825C6-728F-4EBF-B98E-3D4665B3BC9E}.Debug|x86.ActiveCfg = Debug|x86
|
||||
{48A825C6-728F-4EBF-B98E-3D4665B3BC9E}.Debug|x86.Build.0 = Debug|x86
|
||||
{48A825C6-728F-4EBF-B98E-3D4665B3BC9E}.Release|Any CPU.ActiveCfg = Release|x86
|
||||
{48A825C6-728F-4EBF-B98E-3D4665B3BC9E}.Release|Mixed Platforms.ActiveCfg = Release|x86
|
||||
{48A825C6-728F-4EBF-B98E-3D4665B3BC9E}.Release|Mixed Platforms.Build.0 = Release|x86
|
||||
{48A825C6-728F-4EBF-B98E-3D4665B3BC9E}.Release|x86.ActiveCfg = Release|x86
|
||||
{48A825C6-728F-4EBF-B98E-3D4665B3BC9E}.Release|x86.Build.0 = Release|x86
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
@@ -1,137 +0,0 @@
|
||||
#region license
|
||||
// This file is part of Vocaluxe.
|
||||
//
|
||||
// Vocaluxe 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 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// Vocaluxe 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 Vocaluxe. If not, see <http://www.gnu.org/licenses/>.
|
||||
#endregion
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Net;
|
||||
using System.Net.Sockets;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Timers;
|
||||
|
||||
namespace ServerLib
|
||||
{
|
||||
public delegate void OnServerDiscovered(string ipAddress, string hostname);
|
||||
|
||||
public class CDiscover
|
||||
{
|
||||
public const string Timeout = "Timeout";
|
||||
public const string Finished = "Finished";
|
||||
|
||||
private readonly string _Keyword;
|
||||
private readonly string _BroadcastAddress;
|
||||
private readonly int _Port;
|
||||
|
||||
private Thread _DiscoverThread;
|
||||
private bool _DiscoverRunning;
|
||||
private OnServerDiscovered _OnDiscovered;
|
||||
|
||||
private readonly System.Timers.Timer _BroadcastTimer;
|
||||
|
||||
public CDiscover(int port, string keyword, string broadcastAddress = "255.255.255.255")
|
||||
{
|
||||
_BroadcastAddress = broadcastAddress;
|
||||
_Port = port;
|
||||
_Keyword = keyword;
|
||||
|
||||
_DiscoverRunning = false;
|
||||
_BroadcastTimer = new System.Timers.Timer();
|
||||
_BroadcastTimer.Elapsed += _OnBroadcastEvent;
|
||||
_BroadcastTimer.Interval = 2500;
|
||||
}
|
||||
|
||||
public void StartBroadcasting()
|
||||
{
|
||||
_BroadcastTimer.Start();
|
||||
}
|
||||
|
||||
public void Stop()
|
||||
{
|
||||
_BroadcastTimer.Stop();
|
||||
_DiscoverRunning = false;
|
||||
}
|
||||
|
||||
public void Discover(OnServerDiscovered onDiscovered, int timeout = 5000)
|
||||
{
|
||||
if (_DiscoverRunning)
|
||||
return;
|
||||
|
||||
_DiscoverRunning = true;
|
||||
_DiscoverThread = new Thread(() => _Discover(timeout)) {Name = "Client discover"};
|
||||
_OnDiscovered = onDiscovered;
|
||||
_DiscoverThread.Start();
|
||||
}
|
||||
|
||||
private void _OnBroadcastEvent(object source, ElapsedEventArgs e)
|
||||
{
|
||||
Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp) {EnableBroadcast = true};
|
||||
IPAddress broadcast = IPAddress.Parse(_BroadcastAddress);
|
||||
byte[] sendbuf = Encoding.UTF8.GetBytes(_Keyword);
|
||||
IPEndPoint ep = new IPEndPoint(broadcast, _Port);
|
||||
|
||||
s.SendTo(sendbuf, ep);
|
||||
s.Close();
|
||||
}
|
||||
|
||||
private void _Discover(int timeout)
|
||||
{
|
||||
UdpClient listener = null;
|
||||
Stopwatch timer = new Stopwatch();
|
||||
|
||||
List<string> knownServer = new List<string>();
|
||||
bool foundSomething = false;
|
||||
timer.Start();
|
||||
while (_DiscoverRunning && timer.ElapsedMilliseconds < timeout * 2)
|
||||
{
|
||||
try
|
||||
{
|
||||
listener = new UdpClient(_Port);
|
||||
IPEndPoint groupEp = new IPEndPoint(IPAddress.Any, _Port);
|
||||
listener.Client.ReceiveTimeout = timeout;
|
||||
|
||||
byte[] bytes = listener.Receive(ref groupEp);
|
||||
string message = Encoding.UTF8.GetString(bytes, 0, bytes.Length);
|
||||
|
||||
foundSomething = true;
|
||||
if (!knownServer.Contains(groupEp.Address.ToString()))
|
||||
{
|
||||
knownServer.Add(groupEp.Address.ToString());
|
||||
if (_OnDiscovered != null)
|
||||
{
|
||||
IPHostEntry e = Dns.GetHostEntry(groupEp.Address);
|
||||
string hostname = e.HostName;
|
||||
|
||||
_OnDiscovered(groupEp.Address.ToString(), hostname);
|
||||
}
|
||||
}
|
||||
|
||||
listener.Close();
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
if (listener != null)
|
||||
listener.Close();
|
||||
}
|
||||
}
|
||||
_DiscoverRunning = false;
|
||||
|
||||
if (_OnDiscovered != null)
|
||||
_OnDiscovered(!foundSomething ? Timeout : Finished, String.Empty);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,211 +0,0 @@
|
||||
#region license
|
||||
// This file is part of Vocaluxe.
|
||||
//
|
||||
// Vocaluxe 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 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// Vocaluxe 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 Vocaluxe. If not, see <http://www.gnu.org/licenses/>.
|
||||
#endregion
|
||||
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.ServiceModel;
|
||||
using System.ServiceModel.Web;
|
||||
using System.Net;
|
||||
|
||||
namespace ServerLib
|
||||
{
|
||||
public class CServer
|
||||
{
|
||||
private ServiceHost _Host;
|
||||
private Uri _BaseAddress;
|
||||
private bool _Encrypted;
|
||||
|
||||
public static SendKeyEventDelegate SendKeyEvent { internal get; set; }
|
||||
|
||||
#region profile
|
||||
public static GetProfileDataDelegate GetProfileData { internal get; set; }
|
||||
|
||||
public static SendProfileDataDelegate SendProfileData { internal get; set; }
|
||||
|
||||
public static GetProfileListDelegate GetProfileList { internal get; set; }
|
||||
#endregion
|
||||
|
||||
#region photo
|
||||
public static SendPhotoDelegate SendPhoto { get; set; }
|
||||
#endregion
|
||||
|
||||
#region website
|
||||
public static GetSiteFileDelegate GetSiteFile { internal get; set; }
|
||||
|
||||
public static GetDelayedImageDelegate GetDelayedImage { internal get; set; }
|
||||
#endregion
|
||||
|
||||
#region songs
|
||||
public static GetSongDelegate GetSong { internal get; set; }
|
||||
|
||||
public static GetAllSongsDelegate GetAllSongs { internal get; set; }
|
||||
|
||||
public static GetCurrentSongIdDelegate GetCurrentSongId { internal get; set; }
|
||||
#endregion
|
||||
|
||||
#region playlist
|
||||
public static GetPlaylistsDelegate GetPlaylists { internal get; set; }
|
||||
|
||||
public static GetPlaylistDelegate GetPlaylist { internal get; set; }
|
||||
|
||||
public static AddSongToPlaylistDelegate AddSongToPlaylist { internal get; set; }
|
||||
|
||||
public static RemoveSongFromPlaylistDelegate RemoveSongFromPlaylist { internal get; set; }
|
||||
|
||||
public static MoveSongInPlaylistDelegate MoveSongInPlaylist { internal get; set; }
|
||||
|
||||
public static PlaylistContainsSongDelegate PlaylistContainsSong { internal get; set; }
|
||||
|
||||
public static GetPlaylistSongsDelegate GetPlaylistSongs { internal get; set; }
|
||||
|
||||
public static RemovePlaylistDelegate RemovePlaylist { internal get; set; }
|
||||
|
||||
public static AddPlaylistDelegate AddPlaylist { internal get; set; }
|
||||
#endregion
|
||||
|
||||
#region user management
|
||||
public static ValidatePasswordDelegate ValidatePassword { internal get; set; }
|
||||
|
||||
public static GetUserRoleDelegate GetUserRole { internal get; set; }
|
||||
|
||||
public static SetUserRoleDelegate SetUserRole { internal get; set; }
|
||||
|
||||
public static GetUserIdFromUsernameDelegate GetUserIdFromUsername { internal get; set; }
|
||||
#endregion
|
||||
|
||||
public CServer(int port, bool encrypted)
|
||||
{
|
||||
_Init(port, encrypted);
|
||||
}
|
||||
|
||||
public string GetBaseAddress()
|
||||
{
|
||||
return _BaseAddress.AbsoluteUri;
|
||||
|
||||
/*IPAddress[] ips = Dns.GetHostAddresses(Dns.GetHostName());
|
||||
foreach (IPAddress ip in ips)
|
||||
{
|
||||
if (ip.AddressFamily == AddressFamily.InterNetwork)
|
||||
return ip.ToString();
|
||||
}
|
||||
return "";*/
|
||||
}
|
||||
|
||||
public bool IsRunning()
|
||||
{
|
||||
return _Host.State == CommunicationState.Opened;
|
||||
}
|
||||
|
||||
#region server control
|
||||
private void _Init(int port, bool encrypted)
|
||||
{
|
||||
string hostname = Dns.GetHostName();
|
||||
string protocol = (encrypted) ? "https" : "http";
|
||||
_BaseAddress = new Uri(protocol + "://" + hostname + ":" + port + "/");
|
||||
_Encrypted = encrypted;
|
||||
_Host = new WebServiceHost(typeof(CWebservice), _BaseAddress);
|
||||
|
||||
WebHttpBinding wb = new WebHttpBinding
|
||||
{
|
||||
MaxReceivedMessageSize = 10485760,
|
||||
MaxBufferSize = 10485760,
|
||||
MaxBufferPoolSize = 10485760,
|
||||
ReaderQuotas = {MaxStringContentLength = 10485760, MaxArrayLength = 10485760, MaxBytesPerRead = 10485760}
|
||||
};
|
||||
if (encrypted)
|
||||
{
|
||||
wb.Security.Mode = WebHttpSecurityMode.Transport;
|
||||
wb.Security.Transport = new HttpTransportSecurity {ClientCredentialType = HttpClientCredentialType.None};
|
||||
}
|
||||
_Host.AddServiceEndpoint(typeof(ICWebservice), wb, "");
|
||||
}
|
||||
|
||||
public void Start()
|
||||
{
|
||||
try
|
||||
{
|
||||
/*ServiceMetadataBehavior smb = new ServiceMetadataBehavior();
|
||||
smb.MetadataExporter.PolicyVersion = PolicyVersion.Policy15;
|
||||
smb.HttpGetEnabled = true;
|
||||
host.Description.Behaviors.Add(smb);*/
|
||||
_RegisterUrlAndCert(_BaseAddress.Port, false);
|
||||
_Host.Open();
|
||||
}
|
||||
catch (CommunicationException e)
|
||||
{
|
||||
if (e is AddressAccessDeniedException || e is AddressAlreadyInUseException)
|
||||
{
|
||||
_RegisterUrlAndCert(_BaseAddress.Port, true);
|
||||
try
|
||||
{
|
||||
_Host.Abort();
|
||||
_Init(_BaseAddress.Port, _Encrypted);
|
||||
_Host.Open();
|
||||
}
|
||||
catch (CommunicationException)
|
||||
{
|
||||
_Host.Abort();
|
||||
}
|
||||
}
|
||||
else
|
||||
_Host.Abort();
|
||||
}
|
||||
}
|
||||
|
||||
public void Stop()
|
||||
{
|
||||
try
|
||||
{
|
||||
_Host.Close();
|
||||
}
|
||||
catch (CommunicationException)
|
||||
{
|
||||
_Host.Abort();
|
||||
}
|
||||
}
|
||||
|
||||
private void _RegisterUrlAndCert(int port, bool reserve)
|
||||
{
|
||||
#if WIN
|
||||
|
||||
ProcessStartInfo info = new ProcessStartInfo
|
||||
{
|
||||
FileName = "VocaluxeServerConfig.exe",
|
||||
WorkingDirectory = Environment.CurrentDirectory,
|
||||
Arguments = port + " " + (_Encrypted ? "true" : "false") + (reserve ? " reserve" : ""),
|
||||
UseShellExecute = true,
|
||||
CreateNoWindow = true,
|
||||
WindowStyle = ProcessWindowStyle.Hidden,
|
||||
};
|
||||
try
|
||||
{
|
||||
using (Process p = Process.Start(info))
|
||||
{
|
||||
p.WaitForExit();
|
||||
p.Close();
|
||||
}
|
||||
}
|
||||
catch (Exception) {}
|
||||
#else
|
||||
|
||||
//Required?
|
||||
|
||||
#endif
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,179 +0,0 @@
|
||||
#region license
|
||||
// This file is part of Vocaluxe.
|
||||
//
|
||||
// Vocaluxe 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 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// Vocaluxe 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 Vocaluxe. If not, see <http://www.gnu.org/licenses/>.
|
||||
#endregion
|
||||
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Runtime.Serialization;
|
||||
using System.Drawing;
|
||||
using System.IO;
|
||||
using System.Drawing.Imaging;
|
||||
using System.Text.RegularExpressions;
|
||||
|
||||
namespace ServerLib
|
||||
{
|
||||
public delegate bool SendKeyEventDelegate(string key);
|
||||
|
||||
#region profile
|
||||
public delegate SProfileData GetProfileDataDelegate(int profileId, bool isReadonly);
|
||||
|
||||
public delegate bool SendProfileDataDelegate(SProfileData profile);
|
||||
|
||||
public delegate SProfileData[] GetProfileListDelegate();
|
||||
|
||||
[DataContract]
|
||||
public struct SProfileData
|
||||
{
|
||||
[DataMember] public CBase64Image Avatar;
|
||||
[DataMember] public string PlayerName;
|
||||
[DataMember] public int Type;
|
||||
[DataMember] public int Difficulty;
|
||||
[DataMember] public int ProfileId;
|
||||
[DataMember] public bool IsEditable;
|
||||
[DataMember] public string Password;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region photo
|
||||
public delegate bool SendPhotoDelegate(SPhotoData photo);
|
||||
|
||||
[DataContract]
|
||||
public struct SPhotoData
|
||||
{
|
||||
[DataMember] public CBase64Image Photo;
|
||||
//Add infomation about the user who took this image??
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region website
|
||||
public delegate byte[] GetSiteFileDelegate(string filename);
|
||||
|
||||
public delegate CBase64Image GetDelayedImageDelegate(string hashedFilename);
|
||||
#endregion
|
||||
|
||||
[DataContract]
|
||||
public class CBase64Image
|
||||
{
|
||||
[DataMember] private string base64Data = "";
|
||||
|
||||
[DataMember] private string imageId = "";
|
||||
|
||||
public CBase64Image(Image img, ImageFormat format)
|
||||
{
|
||||
MemoryStream ms = new MemoryStream();
|
||||
img.Save(ms, format);
|
||||
string formatString = ImageCodecInfo.GetImageEncoders().FirstOrDefault(x => x.FormatID == format.Guid).FilenameExtension.Replace("*.", "").ToLower();
|
||||
base64Data = "data:image/" + formatString + ";base64," + Convert.ToBase64String(ms.ToArray());
|
||||
}
|
||||
|
||||
public CBase64Image(string imageId)
|
||||
{
|
||||
this.imageId = imageId;
|
||||
}
|
||||
|
||||
public Image GetImage()
|
||||
{
|
||||
string onlyBase64Data = base64Data.Substring(base64Data.IndexOf(";base64,") + (";base64,").Length);
|
||||
byte[] imageData = Convert.FromBase64String(onlyBase64Data);
|
||||
MemoryStream ms = new MemoryStream(imageData, 0, imageData.Length);
|
||||
ms.Write(imageData, 0, imageData.Length);
|
||||
Image image = Image.FromStream(ms, true);
|
||||
return image;
|
||||
}
|
||||
|
||||
public string GetImageType()
|
||||
{
|
||||
Match match = Regex.Match(base64Data, "(?<=data:image/)[a-zA-Z]+(?=;base64)");
|
||||
return match.Success ? match.Groups[0].Value : "";
|
||||
}
|
||||
}
|
||||
|
||||
#region songs
|
||||
public delegate SSongInfo GetSongDelegate(int songId);
|
||||
|
||||
public delegate SSongInfo[] GetAllSongsDelegate();
|
||||
|
||||
public delegate int GetCurrentSongIdDelegate();
|
||||
|
||||
[DataContract]
|
||||
public struct SSongInfo
|
||||
{
|
||||
[DataMember] public string Title;
|
||||
[DataMember] public string Artist;
|
||||
[DataMember] public CBase64Image Cover;
|
||||
[DataMember]
|
||||
public string Genre { get; set; }
|
||||
[DataMember]
|
||||
public string Language { get; set; }
|
||||
[DataMember]
|
||||
public string Year { get; set; }
|
||||
[DataMember]
|
||||
public bool IsDuet { get; set; }
|
||||
[DataMember]
|
||||
public int SongId { get; set; }
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region playlists
|
||||
public delegate SPlaylistInfo[] GetPlaylistsDelegate();
|
||||
|
||||
public delegate SPlaylistInfo GetPlaylistDelegate(int playlistId);
|
||||
|
||||
public delegate void AddSongToPlaylistDelegate(int songId, int playlistId, bool allowDuplicates);
|
||||
|
||||
public delegate void RemoveSongFromPlaylistDelegate(int position, int playlistId, int songId);
|
||||
|
||||
public delegate void MoveSongInPlaylistDelegate(int newPosition, int playlistId, int songId);
|
||||
|
||||
public delegate bool PlaylistContainsSongDelegate(int songId, int playlistId);
|
||||
|
||||
public delegate SPlaylistSongInfo[] GetPlaylistSongsDelegate(int playlistId);
|
||||
|
||||
public delegate void RemovePlaylistDelegate(int playlistId);
|
||||
|
||||
public delegate int AddPlaylistDelegate(string playlistName);
|
||||
|
||||
[DataContract]
|
||||
public struct SPlaylistSongInfo
|
||||
{
|
||||
[DataMember] public SSongInfo Song;
|
||||
[DataMember] public int PlaylistId;
|
||||
[DataMember] public int PlaylistPosition;
|
||||
[DataMember] public int GameMode;
|
||||
}
|
||||
|
||||
[DataContract]
|
||||
public struct SPlaylistInfo
|
||||
{
|
||||
[DataMember] public int PlaylistId;
|
||||
[DataMember] public string PlaylistName;
|
||||
[DataMember] public int SongCount;
|
||||
[DataMember] public string LastChanged;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region user management
|
||||
public delegate void SetPasswordDelegate(int profileId, string newPassword);
|
||||
|
||||
public delegate bool ValidatePasswordDelegate(int profileId, string password);
|
||||
|
||||
public delegate int GetUserRoleDelegate(int profileId);
|
||||
|
||||
public delegate void SetUserRoleDelegate(int profileId, int userRole);
|
||||
|
||||
public delegate int GetUserIdFromUsernameDelegate(string username);
|
||||
#endregion
|
||||
}
|
||||
@@ -1,56 +0,0 @@
|
||||
#region license
|
||||
// This file is part of Vocaluxe.
|
||||
//
|
||||
// Vocaluxe 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 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// Vocaluxe 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 Vocaluxe. If not, see <http://www.gnu.org/licenses/>.
|
||||
#endregion
|
||||
|
||||
using System.Reflection;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// Allgemeine Informationen über eine Assembly werden über die folgenden
|
||||
// Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern,
|
||||
// die mit einer Assembly verknüpft sind.
|
||||
|
||||
[assembly: AssemblyTitle("ClientServerLib")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("ClientServerLib")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2013")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// Durch Festlegen von ComVisible auf "false" werden die Typen in dieser Assembly unsichtbar
|
||||
// für COM-Komponenten. Wenn Sie auf einen Typ in dieser Assembly von
|
||||
// COM zugreifen müssen, legen Sie das ComVisible-Attribut für diesen Typ auf "true" fest.
|
||||
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird
|
||||
|
||||
[assembly: Guid("53f89645-1948-420f-b64a-7dc705ca8820")]
|
||||
|
||||
// Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten:
|
||||
//
|
||||
// Hauptversion
|
||||
// Nebenversion
|
||||
// Buildnummer
|
||||
// Revision
|
||||
//
|
||||
// Sie können alle Werte angeben oder die standardmäßigen Build- und Revisionsnummern
|
||||
// übernehmen, indem Sie "*" eingeben:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||
@@ -1,89 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProductVersion>8.0.30703</ProductVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectGuid>{EC5167E4-CCFB-4CEE-987C-CF816F1062A3}</ProjectGuid>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>ServerLib</RootNamespace>
|
||||
<AssemblyName>ClientServerLib</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<TargetFrameworkProfile>
|
||||
</TargetFrameworkProfile>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'DebugWin|AnyCPU'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>..\..\Output\</OutputPath>
|
||||
<DefineConstants>TRACE;DEBUG;WIN;</DefineConstants>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'DebugLinux|AnyCPU'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>..\..\Output\</OutputPath>
|
||||
<DefineConstants>TRACE;DEBUG;LINUX;</DefineConstants>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'ReleaseWin|AnyCPU'">
|
||||
<OutputPath>..\..\Output\</OutputPath>
|
||||
<DefineConstants>TRACE;WIN;</DefineConstants>
|
||||
<Optimize>true</Optimize>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'ReleaseLinux|AnyCPU'">
|
||||
<OutputPath>..\..\Output\</OutputPath>
|
||||
<DefineConstants>TRACE;LINUX;</DefineConstants>
|
||||
<Optimize>true</Optimize>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Runtime.Serialization" />
|
||||
<Reference Include="System.ServiceModel" />
|
||||
<Reference Include="System.ServiceModel.Web" />
|
||||
<Reference Include="System.Web.Services" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="CDiscover.cs" />
|
||||
<Compile Include="CServer.cs" />
|
||||
<Compile Include="CWebservice.cs" />
|
||||
<Compile Include="DataStructs.cs" />
|
||||
<Compile Include="ICWebservice.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="Session.cs" />
|
||||
<Compile Include="SessionControl.cs" />
|
||||
<Compile Include="UserRights.cs" />
|
||||
<Compile Include="UserRoleControl.cs" />
|
||||
<Compile Include="UserRoles.cs" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
</Target>
|
||||
<Target Name="AfterBuild">
|
||||
</Target>
|
||||
-->
|
||||
</Project>
|
||||
@@ -1,337 +0,0 @@
|
||||
namespace ClientTest
|
||||
{
|
||||
partial class ClientTest
|
||||
{
|
||||
/// <summary>
|
||||
/// Erforderliche Designervariable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Verwendete Ressourcen bereinigen.
|
||||
/// </summary>
|
||||
/// <param name="disposing">True, wenn verwaltete Ressourcen gelöscht werden sollen; andernfalls False.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Vom Windows Form-Designer generierter Code
|
||||
|
||||
/// <summary>
|
||||
/// Erforderliche Methode für die Designerunterstützung.
|
||||
/// Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.statusStrip1 = new System.Windows.Forms.StatusStrip();
|
||||
this.lbConnectionStatus = new System.Windows.Forms.ToolStripStatusLabel();
|
||||
this.lbConnectionStatusText = new System.Windows.Forms.ToolStripStatusLabel();
|
||||
this.tbDataSending = new System.Windows.Forms.TextBox();
|
||||
this.lbDateSending = new System.Windows.Forms.Label();
|
||||
this.lbDataReceiving = new System.Windows.Forms.Label();
|
||||
this.tbDataReceiving = new System.Windows.Forms.TextBox();
|
||||
this.lbPort = new System.Windows.Forms.Label();
|
||||
this.tbPort = new System.Windows.Forms.TextBox();
|
||||
this.tbServerIP = new System.Windows.Forms.TextBox();
|
||||
this.btConnect = new System.Windows.Forms.Button();
|
||||
this.lbServerIP = new System.Windows.Forms.Label();
|
||||
this.tbPassword = new System.Windows.Forms.TextBox();
|
||||
this.lbPassword = new System.Windows.Forms.Label();
|
||||
this.btLeft = new System.Windows.Forms.Button();
|
||||
this.btRight = new System.Windows.Forms.Button();
|
||||
this.btUp = new System.Windows.Forms.Button();
|
||||
this.btDown = new System.Windows.Forms.Button();
|
||||
this.btSendAvatar = new System.Windows.Forms.Button();
|
||||
this.btSendProfile = new System.Windows.Forms.Button();
|
||||
this.btDiscover = new System.Windows.Forms.Button();
|
||||
this.tbDiscoveredServer = new System.Windows.Forms.TextBox();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.statusStrip1.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// statusStrip1
|
||||
//
|
||||
this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.lbConnectionStatus,
|
||||
this.lbConnectionStatusText});
|
||||
this.statusStrip1.Location = new System.Drawing.Point(0, 528);
|
||||
this.statusStrip1.Name = "statusStrip1";
|
||||
this.statusStrip1.Size = new System.Drawing.Size(1008, 22);
|
||||
this.statusStrip1.TabIndex = 4;
|
||||
this.statusStrip1.Text = "statusStrip1";
|
||||
//
|
||||
// lbConnectionStatus
|
||||
//
|
||||
this.lbConnectionStatus.Name = "lbConnectionStatus";
|
||||
this.lbConnectionStatus.Size = new System.Drawing.Size(107, 17);
|
||||
this.lbConnectionStatus.Text = "Connection Status:";
|
||||
//
|
||||
// lbConnectionStatusText
|
||||
//
|
||||
this.lbConnectionStatusText.Name = "lbConnectionStatusText";
|
||||
this.lbConnectionStatusText.Size = new System.Drawing.Size(79, 17);
|
||||
this.lbConnectionStatusText.Text = "Disconnected";
|
||||
//
|
||||
// tbDataSending
|
||||
//
|
||||
this.tbDataSending.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.tbDataSending.Location = new System.Drawing.Point(12, 25);
|
||||
this.tbDataSending.Multiline = true;
|
||||
this.tbDataSending.Name = "tbDataSending";
|
||||
this.tbDataSending.Size = new System.Drawing.Size(810, 120);
|
||||
this.tbDataSending.TabIndex = 7;
|
||||
//
|
||||
// lbDateSending
|
||||
//
|
||||
this.lbDateSending.AutoSize = true;
|
||||
this.lbDateSending.Location = new System.Drawing.Point(12, 9);
|
||||
this.lbDateSending.Name = "lbDateSending";
|
||||
this.lbDateSending.Size = new System.Drawing.Size(75, 13);
|
||||
this.lbDateSending.TabIndex = 6;
|
||||
this.lbDateSending.Text = "Data Sending:";
|
||||
//
|
||||
// lbDataReceiving
|
||||
//
|
||||
this.lbDataReceiving.AutoSize = true;
|
||||
this.lbDataReceiving.Location = new System.Drawing.Point(12, 197);
|
||||
this.lbDataReceiving.Name = "lbDataReceiving";
|
||||
this.lbDataReceiving.Size = new System.Drawing.Size(84, 13);
|
||||
this.lbDataReceiving.TabIndex = 8;
|
||||
this.lbDataReceiving.Text = "Data Receiving:";
|
||||
//
|
||||
// tbDataReceiving
|
||||
//
|
||||
this.tbDataReceiving.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.tbDataReceiving.Location = new System.Drawing.Point(12, 213);
|
||||
this.tbDataReceiving.Multiline = true;
|
||||
this.tbDataReceiving.Name = "tbDataReceiving";
|
||||
this.tbDataReceiving.Size = new System.Drawing.Size(810, 120);
|
||||
this.tbDataReceiving.TabIndex = 9;
|
||||
//
|
||||
// lbPort
|
||||
//
|
||||
this.lbPort.AutoSize = true;
|
||||
this.lbPort.Location = new System.Drawing.Point(828, 41);
|
||||
this.lbPort.Name = "lbPort";
|
||||
this.lbPort.Size = new System.Drawing.Size(29, 13);
|
||||
this.lbPort.TabIndex = 1;
|
||||
this.lbPort.Text = "Port:";
|
||||
//
|
||||
// tbPort
|
||||
//
|
||||
this.tbPort.Location = new System.Drawing.Point(910, 38);
|
||||
this.tbPort.Name = "tbPort";
|
||||
this.tbPort.Size = new System.Drawing.Size(86, 20);
|
||||
this.tbPort.TabIndex = 3;
|
||||
this.tbPort.Text = "3000";
|
||||
//
|
||||
// tbServerIP
|
||||
//
|
||||
this.tbServerIP.Location = new System.Drawing.Point(910, 12);
|
||||
this.tbServerIP.Name = "tbServerIP";
|
||||
this.tbServerIP.Size = new System.Drawing.Size(86, 20);
|
||||
this.tbServerIP.TabIndex = 2;
|
||||
this.tbServerIP.Text = "127.0.0.1";
|
||||
//
|
||||
// btConnect
|
||||
//
|
||||
this.btConnect.Location = new System.Drawing.Point(831, 90);
|
||||
this.btConnect.Name = "btConnect";
|
||||
this.btConnect.Size = new System.Drawing.Size(165, 23);
|
||||
this.btConnect.TabIndex = 5;
|
||||
this.btConnect.Text = "Connect";
|
||||
this.btConnect.UseVisualStyleBackColor = true;
|
||||
this.btConnect.Click += new System.EventHandler(this.btConnect_Click);
|
||||
//
|
||||
// lbServerIP
|
||||
//
|
||||
this.lbServerIP.AutoSize = true;
|
||||
this.lbServerIP.Location = new System.Drawing.Point(828, 15);
|
||||
this.lbServerIP.Name = "lbServerIP";
|
||||
this.lbServerIP.Size = new System.Drawing.Size(54, 13);
|
||||
this.lbServerIP.TabIndex = 0;
|
||||
this.lbServerIP.Text = "Server IP:";
|
||||
//
|
||||
// tbPassword
|
||||
//
|
||||
this.tbPassword.Location = new System.Drawing.Point(910, 64);
|
||||
this.tbPassword.Name = "tbPassword";
|
||||
this.tbPassword.Size = new System.Drawing.Size(86, 20);
|
||||
this.tbPassword.TabIndex = 6;
|
||||
this.tbPassword.UseSystemPasswordChar = true;
|
||||
//
|
||||
// lbPassword
|
||||
//
|
||||
this.lbPassword.AutoSize = true;
|
||||
this.lbPassword.Location = new System.Drawing.Point(828, 67);
|
||||
this.lbPassword.Name = "lbPassword";
|
||||
this.lbPassword.Size = new System.Drawing.Size(56, 13);
|
||||
this.lbPassword.TabIndex = 7;
|
||||
this.lbPassword.Text = "Password:";
|
||||
//
|
||||
// btLeft
|
||||
//
|
||||
this.btLeft.Enabled = false;
|
||||
this.btLeft.Location = new System.Drawing.Point(831, 238);
|
||||
this.btLeft.Name = "btLeft";
|
||||
this.btLeft.Size = new System.Drawing.Size(69, 23);
|
||||
this.btLeft.TabIndex = 10;
|
||||
this.btLeft.Text = "Left";
|
||||
this.btLeft.UseVisualStyleBackColor = true;
|
||||
this.btLeft.Click += new System.EventHandler(this.btLeft_Click);
|
||||
//
|
||||
// btRight
|
||||
//
|
||||
this.btRight.Enabled = false;
|
||||
this.btRight.Location = new System.Drawing.Point(927, 238);
|
||||
this.btRight.Name = "btRight";
|
||||
this.btRight.Size = new System.Drawing.Size(69, 23);
|
||||
this.btRight.TabIndex = 11;
|
||||
this.btRight.Text = "Right";
|
||||
this.btRight.UseVisualStyleBackColor = true;
|
||||
this.btRight.Click += new System.EventHandler(this.brRight_Click);
|
||||
//
|
||||
// btUp
|
||||
//
|
||||
this.btUp.Enabled = false;
|
||||
this.btUp.Location = new System.Drawing.Point(877, 209);
|
||||
this.btUp.Name = "btUp";
|
||||
this.btUp.Size = new System.Drawing.Size(69, 23);
|
||||
this.btUp.TabIndex = 12;
|
||||
this.btUp.Text = "Up";
|
||||
this.btUp.UseVisualStyleBackColor = true;
|
||||
this.btUp.Click += new System.EventHandler(this.btUp_Click);
|
||||
//
|
||||
// btDown
|
||||
//
|
||||
this.btDown.Enabled = false;
|
||||
this.btDown.Location = new System.Drawing.Point(877, 267);
|
||||
this.btDown.Name = "btDown";
|
||||
this.btDown.Size = new System.Drawing.Size(69, 23);
|
||||
this.btDown.TabIndex = 13;
|
||||
this.btDown.Text = "Down";
|
||||
this.btDown.UseVisualStyleBackColor = true;
|
||||
this.btDown.Click += new System.EventHandler(this.btDown_Click);
|
||||
//
|
||||
// btSendAvatar
|
||||
//
|
||||
this.btSendAvatar.Enabled = false;
|
||||
this.btSendAvatar.Location = new System.Drawing.Point(831, 310);
|
||||
this.btSendAvatar.Name = "btSendAvatar";
|
||||
this.btSendAvatar.Size = new System.Drawing.Size(165, 23);
|
||||
this.btSendAvatar.TabIndex = 14;
|
||||
this.btSendAvatar.Text = "Send Avatar";
|
||||
this.btSendAvatar.UseVisualStyleBackColor = true;
|
||||
this.btSendAvatar.Click += new System.EventHandler(this.btSendAvatar_Click);
|
||||
//
|
||||
// btSendProfile
|
||||
//
|
||||
this.btSendProfile.Enabled = false;
|
||||
this.btSendProfile.Location = new System.Drawing.Point(831, 339);
|
||||
this.btSendProfile.Name = "btSendProfile";
|
||||
this.btSendProfile.Size = new System.Drawing.Size(165, 23);
|
||||
this.btSendProfile.TabIndex = 15;
|
||||
this.btSendProfile.Text = "Send Profile";
|
||||
this.btSendProfile.UseVisualStyleBackColor = true;
|
||||
this.btSendProfile.Click += new System.EventHandler(this.btSendProfile_Click);
|
||||
//
|
||||
// btDiscover
|
||||
//
|
||||
this.btDiscover.Location = new System.Drawing.Point(831, 502);
|
||||
this.btDiscover.Name = "btDiscover";
|
||||
this.btDiscover.Size = new System.Drawing.Size(165, 23);
|
||||
this.btDiscover.TabIndex = 16;
|
||||
this.btDiscover.Text = "Discover";
|
||||
this.btDiscover.UseVisualStyleBackColor = true;
|
||||
this.btDiscover.Click += new System.EventHandler(this.btDiscover_Click);
|
||||
//
|
||||
// tbDiscoveredServer
|
||||
//
|
||||
this.tbDiscoveredServer.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.tbDiscoveredServer.Location = new System.Drawing.Point(15, 405);
|
||||
this.tbDiscoveredServer.Multiline = true;
|
||||
this.tbDiscoveredServer.Name = "tbDiscoveredServer";
|
||||
this.tbDiscoveredServer.Size = new System.Drawing.Size(810, 120);
|
||||
this.tbDiscoveredServer.TabIndex = 17;
|
||||
this.tbDiscoveredServer.WordWrap = false;
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Location = new System.Drawing.Point(12, 389);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(41, 13);
|
||||
this.label1.TabIndex = 18;
|
||||
this.label1.Text = "Server:";
|
||||
//
|
||||
// ClientTest
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(1008, 550);
|
||||
this.Controls.Add(this.label1);
|
||||
this.Controls.Add(this.tbDiscoveredServer);
|
||||
this.Controls.Add(this.btDiscover);
|
||||
this.Controls.Add(this.btSendProfile);
|
||||
this.Controls.Add(this.btSendAvatar);
|
||||
this.Controls.Add(this.btDown);
|
||||
this.Controls.Add(this.btUp);
|
||||
this.Controls.Add(this.btRight);
|
||||
this.Controls.Add(this.btLeft);
|
||||
this.Controls.Add(this.tbDataReceiving);
|
||||
this.Controls.Add(this.lbPassword);
|
||||
this.Controls.Add(this.lbDataReceiving);
|
||||
this.Controls.Add(this.tbPassword);
|
||||
this.Controls.Add(this.lbDateSending);
|
||||
this.Controls.Add(this.lbServerIP);
|
||||
this.Controls.Add(this.tbDataSending);
|
||||
this.Controls.Add(this.btConnect);
|
||||
this.Controls.Add(this.tbServerIP);
|
||||
this.Controls.Add(this.statusStrip1);
|
||||
this.Controls.Add(this.tbPort);
|
||||
this.Controls.Add(this.lbPort);
|
||||
this.Name = "ClientTest";
|
||||
this.Text = "ClientTest";
|
||||
this.statusStrip1.ResumeLayout(false);
|
||||
this.statusStrip1.PerformLayout();
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.StatusStrip statusStrip1;
|
||||
private System.Windows.Forms.ToolStripStatusLabel lbConnectionStatus;
|
||||
private System.Windows.Forms.ToolStripStatusLabel lbConnectionStatusText;
|
||||
private System.Windows.Forms.TextBox tbDataSending;
|
||||
private System.Windows.Forms.Label lbDateSending;
|
||||
private System.Windows.Forms.Label lbDataReceiving;
|
||||
private System.Windows.Forms.TextBox tbDataReceiving;
|
||||
private System.Windows.Forms.Label lbPort;
|
||||
private System.Windows.Forms.TextBox tbPort;
|
||||
private System.Windows.Forms.TextBox tbServerIP;
|
||||
private System.Windows.Forms.Button btConnect;
|
||||
private System.Windows.Forms.Label lbServerIP;
|
||||
private System.Windows.Forms.TextBox tbPassword;
|
||||
private System.Windows.Forms.Label lbPassword;
|
||||
private System.Windows.Forms.Button btLeft;
|
||||
private System.Windows.Forms.Button btRight;
|
||||
private System.Windows.Forms.Button btUp;
|
||||
private System.Windows.Forms.Button btDown;
|
||||
private System.Windows.Forms.Button btSendAvatar;
|
||||
private System.Windows.Forms.Button btSendProfile;
|
||||
private System.Windows.Forms.Button btDiscover;
|
||||
private System.Windows.Forms.TextBox tbDiscoveredServer;
|
||||
private System.Windows.Forms.Label label1;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,284 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Drawing.Imaging;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.IO;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
|
||||
using ClientServerLib;
|
||||
using Vocaluxe.Base.Server;
|
||||
|
||||
namespace ClientTest
|
||||
{
|
||||
public partial class ClientTest : Form
|
||||
{
|
||||
CClient client;
|
||||
CDiscover discover;
|
||||
|
||||
private bool loggedIn;
|
||||
|
||||
public ClientTest()
|
||||
{
|
||||
client = new CClient();
|
||||
loggedIn = false;
|
||||
discover = new CDiscover(3000, CCommands.BroadcastKeyword);
|
||||
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
protected override void OnClosing(CancelEventArgs e)
|
||||
{
|
||||
client.Close();
|
||||
discover.Stop();
|
||||
base.OnClosing(e);
|
||||
}
|
||||
|
||||
private void btConnect_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (!client.Connected)
|
||||
Connect();
|
||||
else
|
||||
Disconnect();
|
||||
}
|
||||
|
||||
private void btLogin_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (!client.Connected)
|
||||
return;
|
||||
|
||||
client.SendMessage(CCommands.CreateCommandLogin(tbPassword.Text), OnResponse);
|
||||
}
|
||||
|
||||
private void Connect()
|
||||
{
|
||||
int port = 3000;
|
||||
if (!int.TryParse(tbPort.Text, out port))
|
||||
{
|
||||
MessageBox.Show("Error parsing port number", "Port Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
return;
|
||||
}
|
||||
|
||||
IPAddress ip;
|
||||
if (!IPAddress.TryParse(tbServerIP.Text, out ip))
|
||||
{
|
||||
MessageBox.Show("Error parsing ip address", "IP Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
return;
|
||||
}
|
||||
|
||||
lbConnectionStatusText.Text = "Connecting...";
|
||||
client.Connect(tbServerIP.Text, port, tbPassword.Text, OnConnectionChanged, OnSend, OnReceived);
|
||||
}
|
||||
|
||||
private void Disconnect()
|
||||
{
|
||||
client.Disconnect();
|
||||
}
|
||||
|
||||
private void OnResponse(byte[] Message)
|
||||
{
|
||||
if (Message == null)
|
||||
return;
|
||||
|
||||
if (Message.Length < 4)
|
||||
return;
|
||||
|
||||
int command = BitConverter.ToInt32(Message, 0);
|
||||
switch (command)
|
||||
{
|
||||
case CCommands.ResponseLoginFailed:
|
||||
MessageBox.Show("Unknown Error on login", "Login Failed", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
break;
|
||||
|
||||
case CCommands.ResponseLoginWrongPassword:
|
||||
MessageBox.Show("Wrong Password", "Login Failed", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
break;
|
||||
|
||||
case CCommands.ResponseLoginOK:
|
||||
loggedIn = true;
|
||||
this.Invoke((MethodInvoker)delegate
|
||||
{
|
||||
lbConnectionStatusText.Text = "Logged in";
|
||||
});
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void OnConnectionChanged(bool Connected)
|
||||
{
|
||||
if (Connected)
|
||||
{
|
||||
this.Invoke((MethodInvoker)delegate
|
||||
{
|
||||
lbConnectionStatusText.Text = "Connected";
|
||||
btConnect.Text = "Disconnect";
|
||||
btUp.Enabled = true;
|
||||
btDown.Enabled = true;
|
||||
btLeft.Enabled = true;
|
||||
btRight.Enabled = true;
|
||||
btSendAvatar.Enabled = true;
|
||||
btSendProfile.Enabled = true;
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
this.Invoke((MethodInvoker)delegate
|
||||
{
|
||||
client.Disconnect();
|
||||
lbConnectionStatusText.Text = "Disconnected";
|
||||
btConnect.Text = "Connect";
|
||||
loggedIn = false;
|
||||
btUp.Enabled = false;
|
||||
btDown.Enabled = false;
|
||||
btLeft.Enabled = false;
|
||||
btRight.Enabled = false;
|
||||
btSendAvatar.Enabled = false;
|
||||
btSendProfile.Enabled = false;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
private void OnSend(byte[] Message)
|
||||
{
|
||||
if (Message == null)
|
||||
return;
|
||||
|
||||
string text = String.Empty;
|
||||
int max = Message.Length;
|
||||
if (max > 1000)
|
||||
max = 1000;
|
||||
for (int i = 0; i < max; i++)
|
||||
{
|
||||
text += Message[i].ToString() + " ";
|
||||
}
|
||||
|
||||
this.Invoke((MethodInvoker)delegate
|
||||
{
|
||||
tbDataSending.Text = text;
|
||||
});
|
||||
}
|
||||
|
||||
private void OnReceived(byte[] Message)
|
||||
{
|
||||
if (Message == null)
|
||||
return;
|
||||
|
||||
string text = String.Empty;
|
||||
int max = Message.Length;
|
||||
if (max > 1000)
|
||||
max = 1000;
|
||||
for (int i = 0; i < max; i++)
|
||||
{
|
||||
text += Message[i].ToString() + " ";
|
||||
}
|
||||
|
||||
this.Invoke((MethodInvoker)delegate
|
||||
{
|
||||
tbDataReceiving.Text = text;
|
||||
});
|
||||
}
|
||||
|
||||
private void btUp_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (!client.Connected || !loggedIn)
|
||||
return;
|
||||
|
||||
client.SendMessage(CCommands.CreateCommandWithoutParams(CCommands.CommandSendKeyUp), null);
|
||||
}
|
||||
|
||||
private void btLeft_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (!client.Connected || !loggedIn)
|
||||
return;
|
||||
|
||||
client.SendMessage(CCommands.CreateCommandWithoutParams(CCommands.CommandSendKeyLeft), null);
|
||||
}
|
||||
|
||||
private void btDown_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (!client.Connected || !loggedIn)
|
||||
return;
|
||||
|
||||
client.SendMessage(CCommands.CreateCommandWithoutParams(CCommands.CommandSendKeyDown), null);
|
||||
}
|
||||
|
||||
private void brRight_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (!client.Connected || !loggedIn)
|
||||
return;
|
||||
|
||||
client.SendMessage(CCommands.CreateCommandWithoutParams(CCommands.CommandSendKeyRight), null);
|
||||
}
|
||||
|
||||
private void btSendAvatar_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (!client.Connected || !loggedIn)
|
||||
return;
|
||||
|
||||
byte[] data = new byte[512 * 512 * 4];
|
||||
for (int i = 0; i < data.Length; i++)
|
||||
{
|
||||
data[i] = (byte) (i % 255);
|
||||
}
|
||||
client.SendMessage(CCommands.CreateCommandSendAvatarPicture(512, 512, data), OnResponse);
|
||||
}
|
||||
|
||||
private void btSendProfile_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (!client.Connected || !loggedIn)
|
||||
return;
|
||||
|
||||
if (!File.Exists("test.jpg"))
|
||||
{
|
||||
byte[] data = new byte[512 * 512 * 4];
|
||||
for (int i = 0; i < data.Length; i++)
|
||||
{
|
||||
data[i] = (byte)(i % 255);
|
||||
}
|
||||
|
||||
Bitmap bmp = new Bitmap(512, 512);
|
||||
BitmapData bmpData = bmp.LockBits(new Rectangle(0, 0, bmp.Width, bmp.Height), ImageLockMode.WriteOnly, PixelFormat.Format32bppArgb);
|
||||
Marshal.Copy(data, 0, bmpData.Scan0, data.Length);
|
||||
bmp.UnlockBits(bmpData);
|
||||
|
||||
bmp.Save("test.jpg", ImageFormat.Jpeg);
|
||||
bmp.Dispose();
|
||||
}
|
||||
|
||||
if (File.Exists("test.jpg"))
|
||||
{
|
||||
byte[] data = File.ReadAllBytes("test.jpg");
|
||||
|
||||
if (data == null)
|
||||
return;
|
||||
|
||||
client.SendMessage(CCommands.CreateCommandSendProfile(data, "TestUser", 0), OnResponse);
|
||||
}
|
||||
}
|
||||
|
||||
private void btDiscover_Click(object sender, EventArgs e)
|
||||
{
|
||||
tbDiscoveredServer.Text = "Searching for Vocaluxe Server:\r\n";
|
||||
discover.Discover(_OnDiscovered);
|
||||
}
|
||||
|
||||
private void _OnDiscovered(string Address, string HostName)
|
||||
{
|
||||
this.Invoke((MethodInvoker)delegate
|
||||
{
|
||||
if (Address != "Timeout")
|
||||
tbDiscoveredServer.Text += "IP = " + Address + "; HostName = " + HostName + "\r\n";
|
||||
else
|
||||
tbDiscoveredServer.Text += "Timeout" + "\r\n";
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,103 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
|
||||
<ProductVersion>8.0.30703</ProductVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectGuid>{48A825C6-728F-4EBF-B98E-3D4665B3BC9E}</ProjectGuid>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>ClientTest</RootNamespace>
|
||||
<AssemblyName>ClientTest</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
||||
<TargetFrameworkProfile>Client</TargetFrameworkProfile>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="Newtonsoft.Json, Version=4.5.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\ClientServerLib\bin\Newtonsoft.Json.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<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.Deployment" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="..\..\Vocaluxe\Base\Server\CCommands.cs">
|
||||
<Link>CCommands.cs</Link>
|
||||
</Compile>
|
||||
<Compile Include="..\..\Vocaluxe\Base\Server\VocaluxeStructs.cs">
|
||||
<Link>VocaluxeStructs.cs</Link>
|
||||
</Compile>
|
||||
<Compile Include="ClientTest.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="ClientTest.Designer.cs">
|
||||
<DependentUpon>ClientTest.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Program.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<EmbeddedResource Include="ClientTest.resx">
|
||||
<DependentUpon>ClientTest.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Properties\Resources.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<Compile Include="Properties\Resources.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
</Compile>
|
||||
<None Include="Properties\Settings.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
||||
</None>
|
||||
<Compile Include="Properties\Settings.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Settings.settings</DependentUpon>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\ClientServerLib\ClientServerLib.csproj">
|
||||
<Project>{EC5167E4-CCFB-4CEE-987C-CF816F1062A3}</Project>
|
||||
<Name>ClientServerLib</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
</Target>
|
||||
<Target Name="AfterBuild">
|
||||
</Target>
|
||||
-->
|
||||
</Project>
|
||||
@@ -1,123 +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>
|
||||
<metadata name="statusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
</root>
|
||||
@@ -1,21 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace ClientTest
|
||||
{
|
||||
static class Program
|
||||
{
|
||||
/// <summary>
|
||||
/// Der Haupteinstiegspunkt für die Anwendung.
|
||||
/// </summary>
|
||||
[STAThread]
|
||||
static void Main()
|
||||
{
|
||||
Application.EnableVisualStyles();
|
||||
Application.SetCompatibleTextRenderingDefault(false);
|
||||
Application.Run(new ClientTest());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,71 +0,0 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// Dieser Code wurde von einem Tool generiert.
|
||||
// Laufzeitversion:4.0.30319.18034
|
||||
//
|
||||
// Änderungen an dieser Datei können fehlerhaftes Verhalten verursachen und gehen verloren, wenn
|
||||
// der Code neu generiert wird.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace ClientTest.Properties
|
||||
{
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw.
|
||||
/// </summary>
|
||||
// Diese Klasse wurde von der StronglyTypedResourceBuilder-Klasse
|
||||
// über ein Tool wie ResGen oder Visual Studio automatisch generiert.
|
||||
// Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen
|
||||
// mit der Option /str erneut aus, oder erstellen Sie Ihr VS-Projekt neu.
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.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>
|
||||
/// Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Resources.ResourceManager ResourceManager
|
||||
{
|
||||
get
|
||||
{
|
||||
if ((resourceMan == null))
|
||||
{
|
||||
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ClientTest.Properties.Resources", typeof(Resources).Assembly);
|
||||
resourceMan = temp;
|
||||
}
|
||||
return resourceMan;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle
|
||||
/// Ressourcenlookups, die diese stark typisierte Ressourcenklasse verwenden.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Globalization.CultureInfo Culture
|
||||
{
|
||||
get
|
||||
{
|
||||
return resourceCulture;
|
||||
}
|
||||
set
|
||||
{
|
||||
resourceCulture = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,117 +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.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: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" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
</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" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
</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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
||||
@@ -1,30 +0,0 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.18034
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace ClientTest.Properties
|
||||
{
|
||||
|
||||
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.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,7 +0,0 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
|
||||
<Profiles>
|
||||
<Profile Name="(Default)" />
|
||||
</Profiles>
|
||||
<Settings />
|
||||
</SettingsFile>
|
||||
@@ -0,0 +1,4 @@
|
||||
# Build Vocaluxe - HowTo (Linux)
|
||||
|
||||
* Clone the repository (see [this](https://github.com/Vocaluxe/Vocaluxe/blob/develop/HowToBuildWin.md) for help)
|
||||
* Navigate to the cloned repository and execute `make`. Make sure that all dependencies are installed and the process completes without errors.
|
||||
@@ -0,0 +1,58 @@
|
||||
# Build Vocaluxe - HowTo (Windows)
|
||||
|
||||
* Navigate to the right repository: usually [Vocaluxe Main](https://github.com/Vocaluxe/Vocaluxe)
|
||||
* Navigate to the right branch: usually [develop](https://github.com/Vocaluxe/Vocaluxe/tree/develop) (The main branch of Vocaluxe)
|
||||
|
||||

|
||||
|
||||
* Copy the `URL` of the corresponding git file
|
||||
|
||||

|
||||
|
||||
* Make sure [Visual Studio 2012/2013(?)](http://www.visualstudio.com/downloads/download-visual-studio-vs#d-express-windows-desktop) is installed
|
||||
|
||||
* Clone the repository and open it
|
||||
|
||||
**Method A: Use Visual Studio (2013+)'s git client:**
|
||||
* Start Visual Studio
|
||||
* `VIEW`->`Team Explorer`
|
||||
* Click on the `Connect to a Team Project` button inside the `Team Explorer`
|
||||
* Click on `Clone` under `Local Git Repositories`
|
||||
* Enter `[theCopiedGitUrl]` in the first field
|
||||
* Enter a target folder in the second field
|
||||
* Click clone
|
||||

|
||||
|
||||
**Method B: Use commandline git client:**
|
||||
* Make sure git is installed [git-scm](http://git-scm.com/)
|
||||
* Open a `git bash` (there should be a link in the start menu)
|
||||
or a normal commandline if you have added git to the `PATH` variable
|
||||
* Navigate to the folder where git should create the Vocaluxe project folder
|
||||
|
||||
```
|
||||
cd [PathToYourFolder]
|
||||
```
|
||||
* Clone the repository (could take some time...)
|
||||
```
|
||||
git clone [theCopiedGitUrl]
|
||||
```
|
||||

|
||||
|
||||
* Now you should find a Folder `Vocaluxe` in the given directory -> navigate into it
|
||||
|
||||
* Open the file `Vocaluxe.sln` with Visual Studio
|
||||
|
||||
* Configure the build target to `ReleaseWin` and `x86` or `x64` (if unsure -> select `x86`)
|
||||
* Build the projects by clicking `"Build"->"Build solution"` or just press `Control`+`Shift`+`B`
|
||||
|
||||

|
||||
|
||||
* Check if your build was successful
|
||||

|
||||
|
||||
* YOUR build should have appeared here:
|
||||
```
|
||||
[PathToYourFolder]\Vocaluxe\Output
|
||||
```
|
||||
* Run `Vocaluxe.exe` or copy the whole folder to a location of your choice
|
||||
* Have fun!
|
||||
@@ -1,14 +0,0 @@
|
||||
REM compile x64
|
||||
call "%VS110COMNTOOLS%\..\..\VC\vcvarsall.bat" x64
|
||||
devenv.com ..\Vocaluxe.sln /Rebuild "InstallerWin|x64"
|
||||
|
||||
REM remove old x64 executables if found and rename
|
||||
if exist "..\Output\Vocaluxe_x64.exe" del "..\Output\Vocaluxe_x64.exe"
|
||||
ren "..\Output\Vocaluxe.exe" "Vocaluxe_x64.exe"
|
||||
|
||||
REM compile x86
|
||||
call "%VS110COMNTOOLS%\..\..\VC\vcvarsall.bat" x86
|
||||
devenv.com ..\Vocaluxe.sln /Rebuild "InstallerWin|x86"
|
||||
|
||||
REM compile installer
|
||||
AdvancedInstaller.com /rebuild setup.aip
|
||||
@@ -0,0 +1,74 @@
|
||||
:: Build script for vocaluxe installer (x86 and x64 versions)
|
||||
::
|
||||
:: Requirements
|
||||
:: - wget.exe: http://gnuwin32.sourceforge.net/packages/wget.htm
|
||||
:: - unzip.exe: http://gnuwin32.sourceforge.net/packages/unzip.htm
|
||||
:: - nuget.exe: https://www.nuget.org/downloads
|
||||
:: - Visual Studio with devenv.exe (should be located in somewhere in Visual Studio folder, e.g. C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE)
|
||||
:: - AdvancedInstaller
|
||||
|
||||
@ECHO OFF
|
||||
echo Cloning vocaluxe from github and checkout master
|
||||
if exist "Files" (
|
||||
cd Files
|
||||
git checkout -q develop >> log.txt
|
||||
git pull -q >> log.txt
|
||||
cd ../
|
||||
) else (
|
||||
git clone -q https://github.com/Vocaluxe/Vocaluxe.git Files > log.txt
|
||||
cd Files
|
||||
git checkout -q develop >> log.txt
|
||||
cd ../
|
||||
)
|
||||
echo - Done
|
||||
echo.
|
||||
|
||||
echo Download ambient videos and move them to themes folder
|
||||
wget --append-output=log.txt -q -O videos.zip https://github.com/lukeIam/VocaluxeDependencies/blob/master/zips/themes/vocaluxe.themes.ambient.video.zip?raw=true || goto :error
|
||||
unzip -q -o -d Files/Output videos.zip || goto :error
|
||||
del /q videos.zip >> log.txt || goto :error
|
||||
echo - Done
|
||||
echo.
|
||||
|
||||
echo Delete lib-folder to prevent packing wrong dlls
|
||||
del /q Files\Output\libs >> log.txt || goto :error
|
||||
echo - Done
|
||||
echo.
|
||||
|
||||
echo Restore dependencies and build x64
|
||||
nuget restore Files/Vocaluxe.sln >> log.txt || goto :error
|
||||
devenv Files/Vocaluxe.sln /Build "InstallerWin|x64" >> log.txt || goto :error
|
||||
echo - Done
|
||||
echo.
|
||||
|
||||
echo Build x64 installer
|
||||
AdvancedInstaller.com /rebuild setup.aip -buildslist x64 >> log.txt || goto :error
|
||||
echo - Done
|
||||
echo.
|
||||
|
||||
echo Delete lib-folder to prevent packing wrong dlls
|
||||
del /q Files\Output\libs >> log.txt || goto :error
|
||||
echo - Done
|
||||
echo.
|
||||
|
||||
echo Restore dependencies and build x86
|
||||
nuget restore Files/Vocaluxe.sln >> log.txt || goto :error
|
||||
devenv Files/Vocaluxe.sln /Build "InstallerWin|x86" >> log.txt || goto :error
|
||||
echo - Done
|
||||
echo.
|
||||
|
||||
echo Build x86 installer
|
||||
AdvancedInstaller.com /rebuild setup.aip -buildslist x86 >> log.txt || goto :error
|
||||
echo - Done
|
||||
echo.
|
||||
|
||||
echo Everything is done!
|
||||
|
||||
pause
|
||||
goto :EOF
|
||||
|
||||
:error
|
||||
echo Failed with error #%errorlevel%.
|
||||
echo See log.txt for more details.
|
||||
pause
|
||||
exit /b %errorlevel%
|
||||
@@ -1,20 +0,0 @@
|
||||
@echo off
|
||||
SET version=v0.3.0
|
||||
SET status=Beta
|
||||
SET buildnum=0081
|
||||
SET buildname=Vocaluxe %version% %status% (%buildnum%).rar
|
||||
|
||||
REM compile x64
|
||||
call "%VS110COMNTOOLS%\..\..\VC\vcvarsall.bat" x64
|
||||
devenv.com ..\Vocaluxe.sln /Rebuild "ReleaseWin|x64"
|
||||
|
||||
REM remove old x64 executables if found and rename
|
||||
if exist "..\Output\Vocaluxe_x64.exe" del "..\Output\Vocaluxe_x64.exe"
|
||||
ren "..\Output\Vocaluxe.exe" "Vocaluxe_x64.exe"
|
||||
|
||||
REM compile x86
|
||||
call "%VS110COMNTOOLS%\..\..\VC\vcvarsall.bat" x86
|
||||
devenv.com ..\Vocaluxe.sln /Rebuild "ReleaseWin|x86"
|
||||
|
||||
REM package
|
||||
rar a -r -ep1 -x..\Output\CoverDB.sqlite -x..\Output\HighscoreDB.sqlite -x..\Output\*.log -x..\Output\*.pdb -x..\Output\Config.xml -x..\Output\Vocaluxe.vshost* -x..\Output\Songs -x..\Output\Screenshots -x..\Output\Playlists "%buildname%" "..\Output\*"
|
||||
@@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<packageSources>
|
||||
<add key="nuget.org" value="https://www.nuget.org/api/v2/" />
|
||||
<add key="Vocaluxe" value="https://www.myget.org/F/vocaluxe/api/v2" />
|
||||
</packageSources>
|
||||
<activePackageSource>
|
||||
<add key="Vocaluxe" value="https://www.myget.org/F/vocaluxe/api/v2" />
|
||||
</activePackageSource>
|
||||
<disabledPackageSources>
|
||||
<add key="nuget.org" value="https://www.nuget.org/api/v2/" />
|
||||
</disabledPackageSources>
|
||||
</configuration>
|
||||
@@ -0,0 +1,166 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<Info>
|
||||
<Name>Ambient Blue</Name>
|
||||
<Folder>Ambient Blue</Folder>
|
||||
<Author>flokuep</Author>
|
||||
</Info>
|
||||
<!--Cover definitions when a category is missing a cover-->
|
||||
<!--Possible types are: Default, Song, Artist, Letter, Edition, Genre, Language, Year, Decade, Date -->
|
||||
<CoverGenerator Type="Default">
|
||||
<Text>
|
||||
<!--<Text>: Text to be shown, %TEXT% will be replaced by the category or song name-->
|
||||
<Text>%TEXT%</Text>
|
||||
<Font>
|
||||
<Name>Normal</Name>
|
||||
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
|
||||
<Style>Bold</Style>
|
||||
<!--<Size> Maximum size of the text in px-->
|
||||
<Size>550</Size>
|
||||
</Font>
|
||||
<!--<Color>: Text color from ColorScheme (high priority)-->
|
||||
<!--or <R>, <G>, <B>, <A> (lower priority)-->
|
||||
<Color>
|
||||
<R>0.675</R>
|
||||
<G>0.890</G>
|
||||
<B>0.969</B>
|
||||
<A>0.8</A>
|
||||
</Color>
|
||||
<!--<Margin>: Spacing of the text from the borders of the image in px-->
|
||||
<Margin Default="24">
|
||||
<Left>24</Left>
|
||||
</Margin>
|
||||
<!--<Indent>: Indentation of the text for multiple lines-->
|
||||
<Indent>100</Indent>
|
||||
</Text>
|
||||
<BackgroundColor>
|
||||
<R>1</R>
|
||||
<G>1</G>
|
||||
<B>1</B>
|
||||
<A>1</A>
|
||||
</BackgroundColor>
|
||||
<!--<Image>: Background image for the cover-->
|
||||
<Image>Normal.png</Image>
|
||||
<!--<ImageAlpha>Alpha value of the image in case the first cover is shown(optional)-->
|
||||
<ImageAlpha>1.0</ImageAlpha>
|
||||
<!--<ShowFirstCover>Whether the first cover of a category should be shown(optional)-->
|
||||
<ShowFirstCover>True</ShowFirstCover>
|
||||
</CoverGenerator>
|
||||
<CoverGenerator Type="Year">
|
||||
<Text>
|
||||
<!--<Text>: Text to be shown, %TEXT% will be replaced by the category or song name-->
|
||||
<Text>%TEXT%</Text>
|
||||
<Font>
|
||||
<Name>Normal</Name>
|
||||
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
|
||||
<Style>Bold</Style>
|
||||
<!--<Size> Maximum size of the text in px-->
|
||||
<Size>550</Size>
|
||||
</Font>
|
||||
<!--<Color>: Text color from ColorScheme (high priority)-->
|
||||
<!--or <R>, <G>, <B>, <A> (lower priority)-->
|
||||
<Color>
|
||||
<R>0.675</R>
|
||||
<G>0.890</G>
|
||||
<B>0.969</B>
|
||||
<A>0.8</A>
|
||||
</Color>
|
||||
<!--<Margin>: Spacing of the text from the borders of the image in px-->
|
||||
<Margin Default="24">
|
||||
<Top>-150</Top>
|
||||
</Margin>
|
||||
<!--<Indent>: Indentation of the text for multiple lines-->
|
||||
<Indent>100</Indent>
|
||||
</Text>
|
||||
<BackgroundColor>
|
||||
<R>1</R>
|
||||
<G>1</G>
|
||||
<B>1</B>
|
||||
<A>1</A>
|
||||
</BackgroundColor>
|
||||
<!--<Image>: Background image for the cover-->
|
||||
<Image>Normal.png</Image>
|
||||
<!--<ImageAlpha>Alpha value of the image in case the first cover is shown(optional)-->
|
||||
<ImageAlpha>1.0</ImageAlpha>
|
||||
<!--<ShowFirstCover>Whether the first cover of a category should be shown(optional)-->
|
||||
<ShowFirstCover>True</ShowFirstCover>
|
||||
</CoverGenerator>
|
||||
<CoverGenerator Type="Artist">
|
||||
<Text>
|
||||
<!--<Text>: Text to be shown, %TEXT% will be replaced by the category or song name-->
|
||||
<Text>%TEXT%</Text>
|
||||
<Font>
|
||||
<Name>Normal</Name>
|
||||
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
|
||||
<Style>Bold</Style>
|
||||
<!--<Size> Maximum size of the text in px-->
|
||||
<Size>550</Size>
|
||||
</Font>
|
||||
<!--<Color>: Text color from ColorScheme (high priority)-->
|
||||
<!--or <R>, <G>, <B>, <A> (lower priority)-->
|
||||
<Color>
|
||||
<R>0.675</R>
|
||||
<G>0.890</G>
|
||||
<B>0.969</B>
|
||||
<A>0.8</A>
|
||||
</Color>
|
||||
<!--<Margin>: Spacing of the text from the borders of the image in px-->
|
||||
<Margin Default="24">
|
||||
<Bottom>150</Bottom>
|
||||
</Margin>
|
||||
<!--<Indent>: Indentation of the text for multiple lines-->
|
||||
<Indent>100</Indent>
|
||||
</Text>
|
||||
<BackgroundColor>
|
||||
<R>1</R>
|
||||
<G>1</G>
|
||||
<B>1</B>
|
||||
<A>1</A>
|
||||
</BackgroundColor>
|
||||
<!--<Image>: Background image for the cover-->
|
||||
<Image>Normal.png</Image>
|
||||
<!--<ImageAlpha>Alpha value of the image in case the first cover is shown(optional)-->
|
||||
<ImageAlpha>1.0</ImageAlpha>
|
||||
<!--<ShowFirstCover>Whether the first cover of a category should be shown(optional)-->
|
||||
<ShowFirstCover>True</ShowFirstCover>
|
||||
</CoverGenerator>
|
||||
<CoverGenerator Type="Date">
|
||||
<Text>
|
||||
<!--<Text>: Text to be shown, %TEXT% will be replaced by the category or song name-->
|
||||
<Text>%TEXT%</Text>
|
||||
<Font>
|
||||
<Name>Normal</Name>
|
||||
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
|
||||
<Style>Bold</Style>
|
||||
<!--<Size> Maximum size of the text in px-->
|
||||
<Size>120</Size>
|
||||
</Font>
|
||||
<!--<Color>: Text color from ColorScheme (high priority)-->
|
||||
<!--or <R>, <G>, <B>, <A> (lower priority)-->
|
||||
<Color>
|
||||
<R>0.675</R>
|
||||
<G>0.890</G>
|
||||
<B>0.969</B>
|
||||
<A>0.8</A>
|
||||
</Color>
|
||||
<!--<Margin>: Spacing of the text from the borders of the image in px-->
|
||||
<Margin Default="5">
|
||||
<Top>-150</Top>
|
||||
</Margin>
|
||||
<!--<Indent>: Indentation of the text for multiple lines-->
|
||||
<Indent>100</Indent>
|
||||
</Text>
|
||||
<BackgroundColor>
|
||||
<R>1</R>
|
||||
<G>1</G>
|
||||
<B>1</B>
|
||||
<A>1</A>
|
||||
</BackgroundColor>
|
||||
<!--<Image>: Background image for the cover-->
|
||||
<Image>Normal.png</Image>
|
||||
<!--<ImageAlpha>Alpha value of the image in case the first cover is shown(optional)-->
|
||||
<ImageAlpha>1.0</ImageAlpha>
|
||||
<!--<ShowFirstCover>Whether the first cover of a category should be shown(optional)-->
|
||||
<ShowFirstCover>True</ShowFirstCover>
|
||||
</CoverGenerator>
|
||||
</root>
|
||||
|
After Width: | Height: | Size: 126 KiB |
|
After Width: | Height: | Size: 126 KiB |
@@ -0,0 +1,166 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<Info>
|
||||
<Name>Ambient Green</Name>
|
||||
<Folder>Ambient Green</Folder>
|
||||
<Author>flokuep</Author>
|
||||
</Info>
|
||||
<!--Cover definitions when a category is missing a cover-->
|
||||
<!--Possible types are: Default, Song, Artist, Letter, Edition, Genre, Language, Year, Decade, Date -->
|
||||
<CoverGenerator Type="Default">
|
||||
<Text>
|
||||
<!--<Text>: Text to be shown, %TEXT% will be replaced by the category or song name-->
|
||||
<Text>%TEXT%</Text>
|
||||
<Font>
|
||||
<Name>Normal</Name>
|
||||
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
|
||||
<Style>Bold</Style>
|
||||
<!--<Size> Maximum size of the text in px-->
|
||||
<Size>550</Size>
|
||||
</Font>
|
||||
<!--<Color>: Text color from ColorScheme (high priority)-->
|
||||
<!--or <R>, <G>, <B>, <A> (lower priority)-->
|
||||
<Color>
|
||||
<R>0.709</R>
|
||||
<G>0.968</G>
|
||||
<B>0.674</B>
|
||||
<A>0.9</A>
|
||||
</Color>
|
||||
<!--<Margin>: Spacing of the text from the borders of the image in px-->
|
||||
<Margin Default="24">
|
||||
<Left>24</Left>
|
||||
</Margin>
|
||||
<!--<Indent>: Indentation of the text for multiple lines-->
|
||||
<Indent>100</Indent>
|
||||
</Text>
|
||||
<BackgroundColor>
|
||||
<R>1</R>
|
||||
<G>1</G>
|
||||
<B>1</B>
|
||||
<A>1</A>
|
||||
</BackgroundColor>
|
||||
<!--<Image>: Background image for the cover-->
|
||||
<Image>Normal.png</Image>
|
||||
<!--<ImageAlpha>Alpha value of the image in case the first cover is shown(optional)-->
|
||||
<ImageAlpha>1.0</ImageAlpha>
|
||||
<!--<ShowFirstCover>Whether the first cover of a category should be shown(optional)-->
|
||||
<ShowFirstCover>True</ShowFirstCover>
|
||||
</CoverGenerator>
|
||||
<CoverGenerator Type="Year">
|
||||
<Text>
|
||||
<!--<Text>: Text to be shown, %TEXT% will be replaced by the category or song name-->
|
||||
<Text>%TEXT%</Text>
|
||||
<Font>
|
||||
<Name>Normal</Name>
|
||||
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
|
||||
<Style>Bold</Style>
|
||||
<!--<Size> Maximum size of the text in px-->
|
||||
<Size>550</Size>
|
||||
</Font>
|
||||
<!--<Color>: Text color from ColorScheme (high priority)-->
|
||||
<!--or <R>, <G>, <B>, <A> (lower priority)-->
|
||||
<Color>
|
||||
<R>0.709</R>
|
||||
<G>0.968</G>
|
||||
<B>0.674</B>
|
||||
<A>0.9</A>
|
||||
</Color>
|
||||
<!--<Margin>: Spacing of the text from the borders of the image in px-->
|
||||
<Margin Default="24">
|
||||
<Top>-150</Top>
|
||||
</Margin>
|
||||
<!--<Indent>: Indentation of the text for multiple lines-->
|
||||
<Indent>100</Indent>
|
||||
</Text>
|
||||
<BackgroundColor>
|
||||
<R>1</R>
|
||||
<G>1</G>
|
||||
<B>1</B>
|
||||
<A>1</A>
|
||||
</BackgroundColor>
|
||||
<!--<Image>: Background image for the cover-->
|
||||
<Image>Normal.png</Image>
|
||||
<!--<ImageAlpha>Alpha value of the image in case the first cover is shown(optional)-->
|
||||
<ImageAlpha>1.0</ImageAlpha>
|
||||
<!--<ShowFirstCover>Whether the first cover of a category should be shown(optional)-->
|
||||
<ShowFirstCover>True</ShowFirstCover>
|
||||
</CoverGenerator>
|
||||
<CoverGenerator Type="Artist">
|
||||
<Text>
|
||||
<!--<Text>: Text to be shown, %TEXT% will be replaced by the category or song name-->
|
||||
<Text>%TEXT%</Text>
|
||||
<Font>
|
||||
<Name>Normal</Name>
|
||||
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
|
||||
<Style>Bold</Style>
|
||||
<!--<Size> Maximum size of the text in px-->
|
||||
<Size>550</Size>
|
||||
</Font>
|
||||
<!--<Color>: Text color from ColorScheme (high priority)-->
|
||||
<!--or <R>, <G>, <B>, <A> (lower priority)-->
|
||||
<Color>
|
||||
<R>0.709</R>
|
||||
<G>0.968</G>
|
||||
<B>0.674</B>
|
||||
<A>0.9</A>
|
||||
</Color>
|
||||
<!--<Margin>: Spacing of the text from the borders of the image in px-->
|
||||
<Margin Default="24">
|
||||
<Bottom>150</Bottom>
|
||||
</Margin>
|
||||
<!--<Indent>: Indentation of the text for multiple lines-->
|
||||
<Indent>100</Indent>
|
||||
</Text>
|
||||
<BackgroundColor>
|
||||
<R>1</R>
|
||||
<G>1</G>
|
||||
<B>1</B>
|
||||
<A>1</A>
|
||||
</BackgroundColor>
|
||||
<!--<Image>: Background image for the cover-->
|
||||
<Image>Normal.png</Image>
|
||||
<!--<ImageAlpha>Alpha value of the image in case the first cover is shown(optional)-->
|
||||
<ImageAlpha>1.0</ImageAlpha>
|
||||
<!--<ShowFirstCover>Whether the first cover of a category should be shown(optional)-->
|
||||
<ShowFirstCover>True</ShowFirstCover>
|
||||
</CoverGenerator>
|
||||
<CoverGenerator Type="Date">
|
||||
<Text>
|
||||
<!--<Text>: Text to be shown, %TEXT% will be replaced by the category or song name-->
|
||||
<Text>%TEXT%</Text>
|
||||
<Font>
|
||||
<Name>Normal</Name>
|
||||
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
|
||||
<Style>Bold</Style>
|
||||
<!--<Size> Maximum size of the text in px-->
|
||||
<Size>120</Size>
|
||||
</Font>
|
||||
<!--<Color>: Text color from ColorScheme (high priority)-->
|
||||
<!--or <R>, <G>, <B>, <A> (lower priority)-->
|
||||
<Color>
|
||||
<R>0.709</R>
|
||||
<G>0.968</G>
|
||||
<B>0.674</B>
|
||||
<A>0.9</A>
|
||||
</Color>
|
||||
<!--<Margin>: Spacing of the text from the borders of the image in px-->
|
||||
<Margin Default="5">
|
||||
<Top>-150</Top>
|
||||
</Margin>
|
||||
<!--<Indent>: Indentation of the text for multiple lines-->
|
||||
<Indent>100</Indent>
|
||||
</Text>
|
||||
<BackgroundColor>
|
||||
<R>1</R>
|
||||
<G>1</G>
|
||||
<B>1</B>
|
||||
<A>1</A>
|
||||
</BackgroundColor>
|
||||
<!--<Image>: Background image for the cover-->
|
||||
<Image>Normal.png</Image>
|
||||
<!--<ImageAlpha>Alpha value of the image in case the first cover is shown(optional)-->
|
||||
<ImageAlpha>1.0</ImageAlpha>
|
||||
<!--<ShowFirstCover>Whether the first cover of a category should be shown(optional)-->
|
||||
<ShowFirstCover>True</ShowFirstCover>
|
||||
</CoverGenerator>
|
||||
</root>
|
||||
|
After Width: | Height: | Size: 125 KiB |
|
After Width: | Height: | Size: 125 KiB |
@@ -0,0 +1,166 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<Info>
|
||||
<Name>Ambient Red</Name>
|
||||
<Folder>Ambient Red</Folder>
|
||||
<Author>flokuep</Author>
|
||||
</Info>
|
||||
<!--Cover definitions when a category is missing a cover-->
|
||||
<!--Possible types are: Default, Song, Artist, Letter, Edition, Genre, Language, Year, Decade, Date -->
|
||||
<CoverGenerator Type="Default">
|
||||
<Text>
|
||||
<!--<Text>: Text to be shown, %TEXT% will be replaced by the category or song name-->
|
||||
<Text>%TEXT%</Text>
|
||||
<Font>
|
||||
<Name>Normal</Name>
|
||||
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
|
||||
<Style>Bold</Style>
|
||||
<!--<Size> Maximum size of the text in px-->
|
||||
<Size>550</Size>
|
||||
</Font>
|
||||
<!--<Color>: Text color from ColorScheme (high priority)-->
|
||||
<!--or <R>, <G>, <B>, <A> (lower priority)-->
|
||||
<Color>
|
||||
<R>0.968</R>
|
||||
<G>0.674</G>
|
||||
<B>0.674</B>
|
||||
<A>0.9</A>
|
||||
</Color>
|
||||
<!--<Margin>: Spacing of the text from the borders of the image in px-->
|
||||
<Margin Default="24">
|
||||
<Left>24</Left>
|
||||
</Margin>
|
||||
<!--<Indent>: Indentation of the text for multiple lines-->
|
||||
<Indent>100</Indent>
|
||||
</Text>
|
||||
<BackgroundColor>
|
||||
<R>1</R>
|
||||
<G>1</G>
|
||||
<B>1</B>
|
||||
<A>1</A>
|
||||
</BackgroundColor>
|
||||
<!--<Image>: Background image for the cover-->
|
||||
<Image>Normal.png</Image>
|
||||
<!--<ImageAlpha>Alpha value of the image in case the first cover is shown(optional)-->
|
||||
<ImageAlpha>1.0</ImageAlpha>
|
||||
<!--<ShowFirstCover>Whether the first cover of a category should be shown(optional)-->
|
||||
<ShowFirstCover>True</ShowFirstCover>
|
||||
</CoverGenerator>
|
||||
<CoverGenerator Type="Year">
|
||||
<Text>
|
||||
<!--<Text>: Text to be shown, %TEXT% will be replaced by the category or song name-->
|
||||
<Text>%TEXT%</Text>
|
||||
<Font>
|
||||
<Name>Normal</Name>
|
||||
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
|
||||
<Style>Bold</Style>
|
||||
<!--<Size> Maximum size of the text in px-->
|
||||
<Size>550</Size>
|
||||
</Font>
|
||||
<!--<Color>: Text color from ColorScheme (high priority)-->
|
||||
<!--or <R>, <G>, <B>, <A> (lower priority)-->
|
||||
<Color>
|
||||
<R>0.968</R>
|
||||
<G>0.674</G>
|
||||
<B>0.674</B>
|
||||
<A>0.9</A>
|
||||
</Color>
|
||||
<!--<Margin>: Spacing of the text from the borders of the image in px-->
|
||||
<Margin Default="24">
|
||||
<Top>-150</Top>
|
||||
</Margin>
|
||||
<!--<Indent>: Indentation of the text for multiple lines-->
|
||||
<Indent>100</Indent>
|
||||
</Text>
|
||||
<BackgroundColor>
|
||||
<R>1</R>
|
||||
<G>1</G>
|
||||
<B>1</B>
|
||||
<A>1</A>
|
||||
</BackgroundColor>
|
||||
<!--<Image>: Background image for the cover-->
|
||||
<Image>Normal.png</Image>
|
||||
<!--<ImageAlpha>Alpha value of the image in case the first cover is shown(optional)-->
|
||||
<ImageAlpha>1.0</ImageAlpha>
|
||||
<!--<ShowFirstCover>Whether the first cover of a category should be shown(optional)-->
|
||||
<ShowFirstCover>True</ShowFirstCover>
|
||||
</CoverGenerator>
|
||||
<CoverGenerator Type="Artist">
|
||||
<Text>
|
||||
<!--<Text>: Text to be shown, %TEXT% will be replaced by the category or song name-->
|
||||
<Text>%TEXT%</Text>
|
||||
<Font>
|
||||
<Name>Normal</Name>
|
||||
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
|
||||
<Style>Bold</Style>
|
||||
<!--<Size> Maximum size of the text in px-->
|
||||
<Size>550</Size>
|
||||
</Font>
|
||||
<!--<Color>: Text color from ColorScheme (high priority)-->
|
||||
<!--or <R>, <G>, <B>, <A> (lower priority)-->
|
||||
<Color>
|
||||
<R>0.968</R>
|
||||
<G>0.674</G>
|
||||
<B>0.674</B>
|
||||
<A>0.9</A>
|
||||
</Color>
|
||||
<!--<Margin>: Spacing of the text from the borders of the image in px-->
|
||||
<Margin Default="24">
|
||||
<Bottom>150</Bottom>
|
||||
</Margin>
|
||||
<!--<Indent>: Indentation of the text for multiple lines-->
|
||||
<Indent>100</Indent>
|
||||
</Text>
|
||||
<BackgroundColor>
|
||||
<R>1</R>
|
||||
<G>1</G>
|
||||
<B>1</B>
|
||||
<A>1</A>
|
||||
</BackgroundColor>
|
||||
<!--<Image>: Background image for the cover-->
|
||||
<Image>Normal.png</Image>
|
||||
<!--<ImageAlpha>Alpha value of the image in case the first cover is shown(optional)-->
|
||||
<ImageAlpha>1.0</ImageAlpha>
|
||||
<!--<ShowFirstCover>Whether the first cover of a category should be shown(optional)-->
|
||||
<ShowFirstCover>True</ShowFirstCover>
|
||||
</CoverGenerator>
|
||||
<CoverGenerator Type="Date">
|
||||
<Text>
|
||||
<!--<Text>: Text to be shown, %TEXT% will be replaced by the category or song name-->
|
||||
<Text>%TEXT%</Text>
|
||||
<Font>
|
||||
<Name>Normal</Name>
|
||||
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
|
||||
<Style>Bold</Style>
|
||||
<!--<Size> Maximum size of the text in px-->
|
||||
<Size>120</Size>
|
||||
</Font>
|
||||
<!--<Color>: Text color from ColorScheme (high priority)-->
|
||||
<!--or <R>, <G>, <B>, <A> (lower priority)-->
|
||||
<Color>
|
||||
<R>0.968</R>
|
||||
<G>0.674</G>
|
||||
<B>0.674</B>
|
||||
<A>0.9</A>
|
||||
</Color>
|
||||
<!--<Margin>: Spacing of the text from the borders of the image in px-->
|
||||
<Margin Default="5">
|
||||
<Top>-150</Top>
|
||||
</Margin>
|
||||
<!--<Indent>: Indentation of the text for multiple lines-->
|
||||
<Indent>100</Indent>
|
||||
</Text>
|
||||
<BackgroundColor>
|
||||
<R>1</R>
|
||||
<G>1</G>
|
||||
<B>1</B>
|
||||
<A>1</A>
|
||||
</BackgroundColor>
|
||||
<!--<Image>: Background image for the cover-->
|
||||
<Image>Normal.png</Image>
|
||||
<!--<ImageAlpha>Alpha value of the image in case the first cover is shown(optional)-->
|
||||
<ImageAlpha>1.0</ImageAlpha>
|
||||
<!--<ShowFirstCover>Whether the first cover of a category should be shown(optional)-->
|
||||
<ShowFirstCover>True</ShowFirstCover>
|
||||
</CoverGenerator>
|
||||
</root>
|
||||
|
After Width: | Height: | Size: 124 KiB |
|
After Width: | Height: | Size: 124 KiB |
@@ -0,0 +1,166 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<Info>
|
||||
<Name>Ambient Yellow</Name>
|
||||
<Folder>Ambient Yellow</Folder>
|
||||
<Author>flokuep</Author>
|
||||
</Info>
|
||||
<!--Cover definitions when a category is missing a cover-->
|
||||
<!--Possible types are: Default, Song, Artist, Letter, Edition, Genre, Language, Year, Decade, Date -->
|
||||
<CoverGenerator Type="Default">
|
||||
<Text>
|
||||
<!--<Text>: Text to be shown, %TEXT% will be replaced by the category or song name-->
|
||||
<Text>%TEXT%</Text>
|
||||
<Font>
|
||||
<Name>Normal</Name>
|
||||
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
|
||||
<Style>Bold</Style>
|
||||
<!--<Size> Maximum size of the text in px-->
|
||||
<Size>550</Size>
|
||||
</Font>
|
||||
<!--<Color>: Text color from ColorScheme (high priority)-->
|
||||
<!--or <R>, <G>, <B>, <A> (lower priority)-->
|
||||
<Color>
|
||||
<R>0.968</R>
|
||||
<G>0.956</G>
|
||||
<B>0.674</B>
|
||||
<A>0.9</A>
|
||||
</Color>
|
||||
<!--<Margin>: Spacing of the text from the borders of the image in px-->
|
||||
<Margin Default="24">
|
||||
<Left>24</Left>
|
||||
</Margin>
|
||||
<!--<Indent>: Indentation of the text for multiple lines-->
|
||||
<Indent>100</Indent>
|
||||
</Text>
|
||||
<BackgroundColor>
|
||||
<R>1</R>
|
||||
<G>1</G>
|
||||
<B>1</B>
|
||||
<A>1</A>
|
||||
</BackgroundColor>
|
||||
<!--<Image>: Background image for the cover-->
|
||||
<Image>Normal.png</Image>
|
||||
<!--<ImageAlpha>Alpha value of the image in case the first cover is shown(optional)-->
|
||||
<ImageAlpha>1.0</ImageAlpha>
|
||||
<!--<ShowFirstCover>Whether the first cover of a category should be shown(optional)-->
|
||||
<ShowFirstCover>True</ShowFirstCover>
|
||||
</CoverGenerator>
|
||||
<CoverGenerator Type="Year">
|
||||
<Text>
|
||||
<!--<Text>: Text to be shown, %TEXT% will be replaced by the category or song name-->
|
||||
<Text>%TEXT%</Text>
|
||||
<Font>
|
||||
<Name>Normal</Name>
|
||||
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
|
||||
<Style>Bold</Style>
|
||||
<!--<Size> Maximum size of the text in px-->
|
||||
<Size>550</Size>
|
||||
</Font>
|
||||
<!--<Color>: Text color from ColorScheme (high priority)-->
|
||||
<!--or <R>, <G>, <B>, <A> (lower priority)-->
|
||||
<Color>
|
||||
<R>0.968</R>
|
||||
<G>0.956</G>
|
||||
<B>0.674</B>
|
||||
<A>0.9</A>
|
||||
</Color>
|
||||
<!--<Margin>: Spacing of the text from the borders of the image in px-->
|
||||
<Margin Default="24">
|
||||
<Top>-150</Top>
|
||||
</Margin>
|
||||
<!--<Indent>: Indentation of the text for multiple lines-->
|
||||
<Indent>100</Indent>
|
||||
</Text>
|
||||
<BackgroundColor>
|
||||
<R>1</R>
|
||||
<G>1</G>
|
||||
<B>1</B>
|
||||
<A>1</A>
|
||||
</BackgroundColor>
|
||||
<!--<Image>: Background image for the cover-->
|
||||
<Image>Normal.png</Image>
|
||||
<!--<ImageAlpha>Alpha value of the image in case the first cover is shown(optional)-->
|
||||
<ImageAlpha>1.0</ImageAlpha>
|
||||
<!--<ShowFirstCover>Whether the first cover of a category should be shown(optional)-->
|
||||
<ShowFirstCover>True</ShowFirstCover>
|
||||
</CoverGenerator>
|
||||
<CoverGenerator Type="Artist">
|
||||
<Text>
|
||||
<!--<Text>: Text to be shown, %TEXT% will be replaced by the category or song name-->
|
||||
<Text>%TEXT%</Text>
|
||||
<Font>
|
||||
<Name>Outline</Name>
|
||||
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
|
||||
<Style>Bold</Style>
|
||||
<!--<Size> Maximum size of the text in px-->
|
||||
<Size>550</Size>
|
||||
</Font>
|
||||
<!--<Color>: Text color from ColorScheme (high priority)-->
|
||||
<!--or <R>, <G>, <B>, <A> (lower priority)-->
|
||||
<Color>
|
||||
<R>0.968</R>
|
||||
<G>0.956</G>
|
||||
<B>0.674</B>
|
||||
<A>0.9</A>
|
||||
</Color>
|
||||
<!--<Margin>: Spacing of the text from the borders of the image in px-->
|
||||
<Margin Default="24">
|
||||
<Bottom>150</Bottom>
|
||||
</Margin>
|
||||
<!--<Indent>: Indentation of the text for multiple lines-->
|
||||
<Indent>100</Indent>
|
||||
</Text>
|
||||
<BackgroundColor>
|
||||
<R>1</R>
|
||||
<G>1</G>
|
||||
<B>1</B>
|
||||
<A>1</A>
|
||||
</BackgroundColor>
|
||||
<!--<Image>: Background image for the cover-->
|
||||
<Image>Normal.png</Image>
|
||||
<!--<ImageAlpha>Alpha value of the image in case the first cover is shown(optional)-->
|
||||
<ImageAlpha>1.0</ImageAlpha>
|
||||
<!--<ShowFirstCover>Whether the first cover of a category should be shown(optional)-->
|
||||
<ShowFirstCover>True</ShowFirstCover>
|
||||
</CoverGenerator>
|
||||
<CoverGenerator Type="Date">
|
||||
<Text>
|
||||
<!--<Text>: Text to be shown, %TEXT% will be replaced by the category or song name-->
|
||||
<Text>%TEXT%</Text>
|
||||
<Font>
|
||||
<Name>Normal</Name>
|
||||
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
|
||||
<Style>Bold</Style>
|
||||
<!--<Size> Maximum size of the text in px-->
|
||||
<Size>120</Size>
|
||||
</Font>
|
||||
<!--<Color>: Text color from ColorScheme (high priority)-->
|
||||
<!--or <R>, <G>, <B>, <A> (lower priority)-->
|
||||
<Color>
|
||||
<R>0.968</R>
|
||||
<G>0.956</G>
|
||||
<B>0.674</B>
|
||||
<A>0.9</A>
|
||||
</Color>
|
||||
<!--<Margin>: Spacing of the text from the borders of the image in px-->
|
||||
<Margin Default="5">
|
||||
<Top>-150</Top>
|
||||
</Margin>
|
||||
<!--<Indent>: Indentation of the text for multiple lines-->
|
||||
<Indent>100</Indent>
|
||||
</Text>
|
||||
<BackgroundColor>
|
||||
<R>1</R>
|
||||
<G>1</G>
|
||||
<B>1</B>
|
||||
<A>1</A>
|
||||
</BackgroundColor>
|
||||
<!--<Image>: Background image for the cover-->
|
||||
<Image>Normal.png</Image>
|
||||
<!--<ImageAlpha>Alpha value of the image in case the first cover is shown(optional)-->
|
||||
<ImageAlpha>1.0</ImageAlpha>
|
||||
<!--<ShowFirstCover>Whether the first cover of a category should be shown(optional)-->
|
||||
<ShowFirstCover>True</ShowFirstCover>
|
||||
</CoverGenerator>
|
||||
</root>
|
||||
|
After Width: | Height: | Size: 116 KiB |
|
After Width: | Height: | Size: 116 KiB |
@@ -1,234 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<root>
|
||||
<Info>
|
||||
<Name>Blue</Name>
|
||||
<Folder>Blue</Folder>
|
||||
<Author>flokuep</Author>
|
||||
</Info>
|
||||
<Cover>
|
||||
<Cover1>
|
||||
<Name>NoCover</Name>
|
||||
<Path>NoCover.png</Path>
|
||||
</Cover1>
|
||||
<Cover2>
|
||||
<Name>A</Name>
|
||||
<Path>A.png</Path>
|
||||
</Cover2>
|
||||
<Cover3>
|
||||
<Name>B</Name>
|
||||
<Path>B.png</Path>
|
||||
</Cover3>
|
||||
<Cover4>
|
||||
<Name>C</Name>
|
||||
<Path>C.png</Path>
|
||||
</Cover4>
|
||||
<Cover5>
|
||||
<Name>D</Name>
|
||||
<Path>D.png</Path>
|
||||
</Cover5>
|
||||
<Cover6>
|
||||
<Name>E</Name>
|
||||
<Path>E.png</Path>
|
||||
</Cover6>
|
||||
<Cover7>
|
||||
<Name>F</Name>
|
||||
<Path>F.png</Path>
|
||||
</Cover7>
|
||||
<Cover8>
|
||||
<Name>G</Name>
|
||||
<Path>G.png</Path>
|
||||
</Cover8>
|
||||
<Cover9>
|
||||
<Name>H</Name>
|
||||
<Path>H.png</Path>
|
||||
</Cover9>
|
||||
<Cover10>
|
||||
<Name>I</Name>
|
||||
<Path>I.png</Path>
|
||||
</Cover10>
|
||||
<Cover11>
|
||||
<Name>J</Name>
|
||||
<Path>J.png</Path>
|
||||
</Cover11>
|
||||
<Cover12>
|
||||
<Name>K</Name>
|
||||
<Path>K.png</Path>
|
||||
</Cover12>
|
||||
<Cover13>
|
||||
<Name>L</Name>
|
||||
<Path>L.png</Path>
|
||||
</Cover13>
|
||||
<Cover14>
|
||||
<Name>M</Name>
|
||||
<Path>M.png</Path>
|
||||
</Cover14>
|
||||
<Cover15>
|
||||
<Name>N</Name>
|
||||
<Path>N.png</Path>
|
||||
</Cover15>
|
||||
<Cover16>
|
||||
<Name>O</Name>
|
||||
<Path>O.png</Path>
|
||||
</Cover16>
|
||||
<Cover17>
|
||||
<Name>P</Name>
|
||||
<Path>P.png</Path>
|
||||
</Cover17>
|
||||
<Cover18>
|
||||
<Name>Q</Name>
|
||||
<Path>Q.png</Path>
|
||||
</Cover18>
|
||||
<Cover19>
|
||||
<Name>R</Name>
|
||||
<Path>R.png</Path>
|
||||
</Cover19>
|
||||
<Cover20>
|
||||
<Name>S</Name>
|
||||
<Path>S.png</Path>
|
||||
</Cover20>
|
||||
<Cover21>
|
||||
<Name>T</Name>
|
||||
<Path>T.png</Path>
|
||||
</Cover21>
|
||||
<Cover22>
|
||||
<Name>U</Name>
|
||||
<Path>U.png</Path>
|
||||
</Cover22>
|
||||
<Cover23>
|
||||
<Name>V</Name>
|
||||
<Path>V.png</Path>
|
||||
</Cover23>
|
||||
<Cover24>
|
||||
<Name>W</Name>
|
||||
<Path>W.png</Path>
|
||||
</Cover24>
|
||||
<Cover25>
|
||||
<Name>X</Name>
|
||||
<Path>X.png</Path>
|
||||
</Cover25>
|
||||
<Cover26>
|
||||
<Name>Y</Name>
|
||||
<Path>Y.png</Path>
|
||||
</Cover26>
|
||||
<Cover27>
|
||||
<Name>Z</Name>
|
||||
<Path>Z.png</Path>
|
||||
</Cover27>
|
||||
<Cover28>
|
||||
<Name>#</Name>
|
||||
<Path>#.png</Path>
|
||||
</Cover28>
|
||||
<Cover29>
|
||||
<Name>No Year</Name>
|
||||
<Path>NoYear.png</Path>
|
||||
</Cover29>
|
||||
<Cover30>
|
||||
<Name>Ohne Jahr</Name>
|
||||
<Path>OhneJahr.png</Path>
|
||||
</Cover30>
|
||||
<Cover31>
|
||||
<Name>1900 - 1909</Name>
|
||||
<Path>1900er.png</Path>
|
||||
</Cover31>
|
||||
<Cover32>
|
||||
<Name>1910 - 1919</Name>
|
||||
<Path>1910er.png</Path>
|
||||
</Cover32>
|
||||
<Cover33>
|
||||
<Name>1920 - 1929</Name>
|
||||
<Path>20er.png</Path>
|
||||
</Cover33>
|
||||
<Cover34>
|
||||
<Name>1930 - 1939</Name>
|
||||
<Path>30er.png</Path>
|
||||
</Cover34>
|
||||
<Cover35>
|
||||
<Name>1940 - 1949</Name>
|
||||
<Path>40er.png</Path>
|
||||
</Cover35>
|
||||
<Cover36>
|
||||
<Name>1950 - 1959</Name>
|
||||
<Path>50er.png</Path>
|
||||
</Cover36>
|
||||
<Cover37>
|
||||
<Name>1960 - 1969</Name>
|
||||
<Path>60er.png</Path>
|
||||
</Cover37>
|
||||
<Cover38>
|
||||
<Name>1970 - 1979</Name>
|
||||
<Path>70er.png</Path>
|
||||
</Cover38>
|
||||
<Cover39>
|
||||
<Name>1980 - 1989</Name>
|
||||
<Path>80er.png</Path>
|
||||
</Cover39>
|
||||
<Cover40>
|
||||
<Name>1990 - 1999</Name>
|
||||
<Path>90er.png</Path>
|
||||
</Cover40>
|
||||
<Cover41>
|
||||
<Name>2000 - 2009</Name>
|
||||
<Path>2000er.png</Path>
|
||||
</Cover41>
|
||||
<Cover42>
|
||||
<Name>2010 - 2019</Name>
|
||||
<Path>2010er.png</Path>
|
||||
</Cover42>
|
||||
<Cover43>
|
||||
<Name>No Language</Name>
|
||||
<Path>NoLanguage.png</Path>
|
||||
</Cover43>
|
||||
<Cover44>
|
||||
<Name>Ohne Sprache</Name>
|
||||
<Path>OhneSprache.png</Path>
|
||||
</Cover44>
|
||||
<Cover45>
|
||||
<Name>German</Name>
|
||||
<Path>German.png</Path>
|
||||
</Cover45>
|
||||
<Cover46>
|
||||
<Name>English</Name>
|
||||
<Path>English.png</Path>
|
||||
</Cover46>
|
||||
<Cover47>
|
||||
<Name>French</Name>
|
||||
<Path>French.png</Path>
|
||||
</Cover47>
|
||||
<Cover48>
|
||||
<Name>Italian</Name>
|
||||
<Path>Italian.png</Path>
|
||||
</Cover48>
|
||||
<Cover49>
|
||||
<Name>Spanish</Name>
|
||||
<Path>Spanish.png</Path>
|
||||
</Cover49>
|
||||
<Cover50>
|
||||
<Name>Polish</Name>
|
||||
<Path>Polish.png</Path>
|
||||
</Cover50>
|
||||
<Cover51>
|
||||
<Name>No Edition</Name>
|
||||
<Path>NoEdition.png</Path>
|
||||
</Cover51>
|
||||
<Cover52>
|
||||
<Name>Ohne Edition</Name>
|
||||
<Path>OhneEdition.png</Path>
|
||||
</Cover52>
|
||||
<Cover53>
|
||||
<Name>No Genre</Name>
|
||||
<Path>NoGenre.png</Path>
|
||||
</Cover53>
|
||||
<Cover54>
|
||||
<Name>Ohne Genre</Name>
|
||||
<Path>OhneGenre.png</Path>
|
||||
</Cover54>
|
||||
<Cover55>
|
||||
<Name>All Songs</Name>
|
||||
<Path>AllSongs.png</Path>
|
||||
</Cover55>
|
||||
<Cover56>
|
||||
<Name>Alle Songs</Name>
|
||||
<Path>AlleSongs.png</Path>
|
||||
</Cover56>
|
||||
</Cover>
|
||||
</root>
|
||||
|
Before Width: | Height: | Size: 262 KiB |
|
Before Width: | Height: | Size: 257 KiB |
|
Before Width: | Height: | Size: 260 KiB |
|
Before Width: | Height: | Size: 254 KiB |
|
Before Width: | Height: | Size: 257 KiB |
|
Before Width: | Height: | Size: 258 KiB |
|
Before Width: | Height: | Size: 260 KiB |
|
Before Width: | Height: | Size: 256 KiB |
|
Before Width: | Height: | Size: 257 KiB |
|
Before Width: | Height: | Size: 259 KiB |
|
Before Width: | Height: | Size: 259 KiB |
|
Before Width: | Height: | Size: 258 KiB |
|
Before Width: | Height: | Size: 259 KiB |
|
Before Width: | Height: | Size: 239 KiB |
|
Before Width: | Height: | Size: 275 KiB |
|
Before Width: | Height: | Size: 274 KiB |
|
Before Width: | Height: | Size: 227 KiB |
|
Before Width: | Height: | Size: 249 KiB |
|
Before Width: | Height: | Size: 228 KiB |
|
Before Width: | Height: | Size: 240 KiB |
|
Before Width: | Height: | Size: 274 KiB |
|
Before Width: | Height: | Size: 251 KiB |
|
Before Width: | Height: | Size: 275 KiB |
|
Before Width: | Height: | Size: 234 KiB |
|
Before Width: | Height: | Size: 274 KiB |
|
Before Width: | Height: | Size: 222 KiB |
|
Before Width: | Height: | Size: 262 KiB |
|
Before Width: | Height: | Size: 275 KiB |
|
Before Width: | Height: | Size: 261 KiB |