Compare commits
943
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a526692c25 | ||
|
|
b36993acec | ||
|
|
d311fca590 | ||
|
|
8c8a1c692c | ||
|
|
d869aa73d0 | ||
|
|
be351c2b3d | ||
|
|
f3d3528754 | ||
|
|
ce961cb4c6 | ||
|
|
1c8b509441 | ||
|
|
cc289a8ed0 | ||
|
|
8a858c2623 | ||
|
|
6e12eb80a0 | ||
|
|
d879741ec6 | ||
|
|
439e621674 | ||
|
|
b01541f4e4 | ||
|
|
0e5a6676c3 | ||
|
|
a9beb4746e | ||
|
|
79352ee9d5 | ||
|
|
3a8c2ae328 | ||
|
|
7f53cd1e96 | ||
|
|
4118aad491 | ||
|
|
bf948b5790 | ||
|
|
c82806f9cb | ||
|
|
4eb7f6c044 | ||
|
|
b57df1dcb9 | ||
|
|
020982508d | ||
|
|
775e29efb6 | ||
|
|
5035df27c3 | ||
|
|
8f3098fc1e | ||
|
|
3ca3254b9f | ||
|
|
f7908eebb9 | ||
|
|
ffd3afcf2f | ||
|
|
5808e76fae | ||
|
|
5c20373db3 | ||
|
|
f981e90af3 | ||
|
|
55b0dda57c | ||
|
|
36d44bf52f | ||
|
|
370d3fa1e3 | ||
|
|
b3f8c7ce58 | ||
|
|
eea68eae18 | ||
|
|
0b9ef3c0b8 | ||
|
|
2fb6df3fe9 | ||
|
|
dca63391b6 | ||
|
|
c2b583c911 | ||
|
|
e7ba9fd7e1 | ||
|
|
e158951695 | ||
|
|
f345ffdc0f | ||
|
|
26e5bc6082 | ||
|
|
2123594ce2 | ||
|
|
5562ae9cc5 | ||
|
|
4087f1d10f | ||
|
|
7fe5004f90 | ||
|
|
b317f54f22 | ||
|
|
4f1a2c2562 | ||
|
|
babd580c64 | ||
|
|
7eb0992d2c | ||
|
|
535bc61b4c | ||
|
|
18a0c2e9db | ||
|
|
4559112651 | ||
|
|
f3f3f1b7d9 | ||
|
|
b06f9f2606 | ||
|
|
8037f2eae8 | ||
|
|
08bddd7d79 | ||
|
|
d00464bd25 | ||
|
|
9398521006 | ||
|
|
f72f4377f4 | ||
|
|
16b7fd71a0 | ||
|
|
4be00def5c | ||
|
|
9b34640a58 | ||
|
|
eab68d8fb6 | ||
|
|
bd9f74e6e4 | ||
|
|
073df3d7eb | ||
|
|
b50e1596cc | ||
|
|
ca28b447ac | ||
|
|
5687bc6e10 | ||
|
|
709d7fd92c | ||
|
|
01cf05bc75 | ||
|
|
f3128fe915 | ||
|
|
794cfb4271 | ||
|
|
9ed0b5c5f9 | ||
|
|
99b425e0e2 | ||
|
|
173d849b8f | ||
|
|
17ce54d7f2 | ||
|
|
d2388a2ca8 | ||
|
|
213120a98b | ||
|
|
5295a925d8 | ||
|
|
67569dfe9d | ||
|
|
7709374f4f | ||
|
|
7130bcc46d | ||
|
|
262df44be1 | ||
|
|
1193f7c393 | ||
|
|
693b212417 | ||
|
|
8304b14a90 | ||
|
|
64e93dc959 | ||
|
|
a7f7279d9d | ||
|
|
9d64253916 | ||
|
|
8eabdc058b | ||
|
|
1b0bf6efe9 | ||
|
|
91a6df0361 | ||
|
|
0f3ad939a8 | ||
|
|
61582efeb9 | ||
|
|
7f77aafe41 | ||
|
|
4de43e4d4a | ||
|
|
dc71bccc5c | ||
|
|
9c70177456 | ||
|
|
99ceb03a1c | ||
|
|
a63244d1e4 | ||
|
|
04afcfe115 | ||
|
|
764e5c7fe5 | ||
|
|
a1ee9799bc | ||
|
|
b087886305 | ||
|
|
fd409a9247 | ||
|
|
0ca4dff62c | ||
|
|
ea07e61d3d | ||
|
|
17bff6bf57 | ||
|
|
cc866ab7e4 | ||
|
|
5fdeda5ee8 | ||
|
|
9dfadc8b30 | ||
|
|
75ec9f57a0 | ||
|
|
c99712ea7d | ||
|
|
1d26fabaa7 | ||
|
|
9a47330fec | ||
|
|
24d7a027dc | ||
|
|
92362d4932 | ||
|
|
af16f2c6b7 | ||
|
|
3e77466b86 | ||
|
|
637f7e6928 | ||
|
|
42b8148aca | ||
|
|
fd49b186fa | ||
|
|
a29a8c6f78 | ||
|
|
46e1c5bc37 | ||
|
|
d2f9412cf1 | ||
|
|
b2359f1527 | ||
|
|
856a841c72 | ||
|
|
34710065e8 | ||
|
|
f783883bf8 | ||
|
|
d4571b123d | ||
|
|
a24e7ba61b | ||
|
|
8ae43a1be9 | ||
|
|
46da380b57 | ||
|
|
072b3e6e26 | ||
|
|
276764cfe9 | ||
|
|
ba08f63ec4 | ||
|
|
f17aaeccf9 | ||
|
|
ca2accfb25 | ||
|
|
f6695814be | ||
|
|
dc2dd5d5a6 | ||
|
|
3f0b93925f | ||
|
|
965c05b43d | ||
|
|
ae38b8bf5e | ||
|
|
8deaac8bd1 | ||
|
|
fd5e1e80da | ||
|
|
fc258f1d7a | ||
|
|
d13e48e002 | ||
|
|
b86cfe159f | ||
|
|
38dd6dc190 | ||
|
|
4ad6bca31c | ||
|
|
59cbeb3e1b | ||
|
|
3b91d213b1 | ||
|
|
bf3c6f8812 | ||
|
|
b29242862b | ||
|
|
32e2fb5d33 | ||
|
|
a7f73d606f | ||
|
|
b44a564792 | ||
|
|
788bebb160 | ||
|
|
d737652d08 | ||
|
|
f55fc850a2 | ||
|
|
04efd729d6 | ||
|
|
82d46a974a | ||
|
|
21359936b8 | ||
|
|
be95b5a954 | ||
|
|
bbaa08d7f0 | ||
|
|
50b10c4bac | ||
|
|
1c3983c12e | ||
|
|
f05e87402a | ||
|
|
9c85cb354a | ||
|
|
d79274a5d9 | ||
|
|
4778656110 | ||
|
|
3cf6593342 | ||
|
|
bbc585881a | ||
|
|
159ae5e47c | ||
|
|
6a071c42d2 | ||
|
|
1f275eb077 | ||
|
|
c589db6add | ||
|
|
fa5277ecdb | ||
|
|
4265372099 | ||
|
|
03d5794183 | ||
|
|
827a901153 | ||
|
|
50192eb4ad | ||
|
|
a02fd4cddd | ||
|
|
4d5900aaa1 | ||
|
|
5ca67332ee | ||
|
|
172137f1a0 | ||
|
|
0cfcee95c7 | ||
|
|
52ebdd42c6 | ||
|
|
eb8c8db899 | ||
|
|
37199c5f90 | ||
|
|
8c089f4e2a | ||
|
|
12dc4d0527 | ||
|
|
0c1b954e07 | ||
|
|
b976cac49d | ||
|
|
e4c3565ebe | ||
|
|
9af501b75d | ||
|
|
7f11710e0a | ||
|
|
ce859cf526 | ||
|
|
119d1692c9 | ||
|
|
02473ea7d5 | ||
|
|
c7f3c2cedf | ||
|
|
1ab771c3ad | ||
|
|
494c41dd5a | ||
|
|
f114436120 | ||
|
|
b7be6a4316 | ||
|
|
c59c035d74 | ||
|
|
a57531854e | ||
|
|
cb913e5c02 | ||
|
|
983916e919 | ||
|
|
6bcbbb29e7 | ||
|
|
d6a0666268 | ||
|
|
5b5a1b7fa7 | ||
|
|
83b86d915a | ||
|
|
4052bfb4ad | ||
|
|
fdd4d019ef | ||
|
|
e9cf2d43f1 | ||
|
|
a5d040df3d | ||
|
|
f8b8af47ad | ||
|
|
2d1af6beee | ||
|
|
b5910ad0ba | ||
|
|
3e5469a974 | ||
|
|
979e53b87b | ||
|
|
084bd225dc | ||
|
|
c562c1d6be | ||
|
|
b4746529e1 | ||
|
|
7f1e66e94b | ||
|
|
1e47252214 | ||
|
|
0bcbe3a703 | ||
|
|
1cb83c91a6 | ||
|
|
51a8dd4919 | ||
|
|
1f74b25fd1 | ||
|
|
f4004b1271 | ||
|
|
8c57de1605 | ||
|
|
0c214cb5b9 | ||
|
|
8dc1913db8 | ||
|
|
fdf4909f97 | ||
|
|
4036e37bbe | ||
|
|
30b07878ba | ||
|
|
7610554b1e | ||
|
|
f9371f36a4 | ||
|
|
93f010c988 | ||
|
|
d02bf6dab1 | ||
|
|
99770653bb | ||
|
|
2afef2b609 | ||
|
|
11120b5b1e | ||
|
|
bf1750664c | ||
|
|
864523327f | ||
|
|
1166c3910d | ||
|
|
7d5a38ea6c | ||
|
|
faf6a9876c | ||
|
|
550844e5e8 | ||
|
|
a45baa0e78 | ||
|
|
d061dc4342 | ||
|
|
4e4dbb6821 | ||
|
|
79ed7e143e | ||
|
|
a2e170bb93 | ||
|
|
b1fdc02465 | ||
|
|
e9e671d101 | ||
|
|
078a6cb0cb | ||
|
|
9346f0b33d | ||
|
|
9b52ee4558 | ||
|
|
c6aa4ec687 | ||
|
|
365c6ad753 | ||
|
|
c04e65c254 | ||
|
|
8e9d253687 | ||
|
|
69807dd208 | ||
|
|
6552968df4 | ||
|
|
063d38a991 | ||
|
|
0d7a0c0817 | ||
|
|
90c846d1ad | ||
|
|
3e489782e1 | ||
|
|
642913b0d1 | ||
|
|
ea7a0d4652 | ||
|
|
7382e7a5c8 | ||
|
|
1383441b15 | ||
|
|
3a9a0d9cb3 | ||
|
|
af94bf4a59 | ||
|
|
99654721eb | ||
|
|
e043cc0bc3 | ||
|
|
af04f8b8e9 | ||
|
|
94967e0f6d | ||
|
|
9408100a80 | ||
|
|
0c75913bf2 | ||
|
|
3c8547160d | ||
|
|
1b3dba329a | ||
|
|
3bc0c2a625 | ||
|
|
94543f129e | ||
|
|
5b667f5e52 | ||
|
|
c975a51ae7 | ||
|
|
f29410d821 | ||
|
|
4e2401c11a | ||
|
|
664d8c8732 | ||
|
|
25faca8ea7 | ||
|
|
07c7f96fb2 | ||
|
|
13aa0a1f24 | ||
|
|
741a8c3034 | ||
|
|
da46d924e9 | ||
|
|
a2d7b2f905 | ||
|
|
7a9d9e575b | ||
|
|
ab6a5784fa | ||
|
|
0608336c60 | ||
|
|
d108c2873d | ||
|
|
9872d4bc4f | ||
|
|
284934ebfd | ||
|
|
c64e1ae104 | ||
|
|
02dbb2ed54 | ||
|
|
c9d28c30f0 | ||
|
|
241ecae867 | ||
|
|
81eefcaa76 | ||
|
|
3b13f5e43b | ||
|
|
4d9488033f | ||
|
|
e524def8c0 | ||
|
|
8e35eedf22 | ||
|
|
0ce308047e | ||
|
|
480c79edba | ||
|
|
7db60fe7da | ||
|
|
ddd5a2b1c6 | ||
|
|
53058ae73f | ||
|
|
650c9d0d62 | ||
|
|
ca12a77670 | ||
|
|
5849c9a4cd | ||
|
|
7f4165fc05 | ||
|
|
a87812c6a1 | ||
|
|
56284bff6c | ||
|
|
bfff7b58fd | ||
|
|
6e7f687df4 | ||
|
|
41983bc0ca | ||
|
|
0057159066 | ||
|
|
79e8cdf595 | ||
|
|
d25cb12bff | ||
|
|
c723db39c7 | ||
|
|
d13e18a8ed | ||
|
|
a454670de5 | ||
|
|
fe9945ad6c | ||
|
|
b9cbc708e8 | ||
|
|
81e143a3d2 | ||
|
|
fd24d5a0a2 | ||
|
|
05ff9e8d4e | ||
|
|
05d80fba38 | ||
|
|
402273d91b | ||
|
|
d456b9d554 | ||
|
|
5a8b9a9706 | ||
|
|
8c27465325 | ||
|
|
d47575f2c5 | ||
|
|
0704b645df | ||
|
|
9edbbf2af4 | ||
|
|
5e982a7812 | ||
|
|
ecb3342145 | ||
|
|
c09a4f4eb6 | ||
|
|
8f2e5f5666 | ||
|
|
c50f2bd4f6 | ||
|
|
8d45dd3b73 | ||
|
|
dea5de91d2 | ||
|
|
67159e3be7 | ||
|
|
fb4d80b169 | ||
|
|
a8896e940a | ||
|
|
749efbb84b | ||
|
|
f8773e4ba0 | ||
|
|
e439c31c9e | ||
|
|
dd862dff66 | ||
|
|
f10d40a0a2 | ||
|
|
e6f200b960 | ||
|
|
e7c1e6fc27 | ||
|
|
6e232b9efe | ||
|
|
bcca849d0c | ||
|
|
c50401903f | ||
|
|
1d5f6b173d | ||
|
|
7c44a4ede3 | ||
|
|
aa44ef7b64 | ||
|
|
e05e6853fa | ||
|
|
f83cd2e8b9 | ||
|
|
b3cfccdb80 | ||
|
|
ee532e5c01 | ||
|
|
75046a3351 | ||
|
|
82ac66f8a4 | ||
|
|
15f9472b15 | ||
|
|
109566fc8f | ||
|
|
ff2e891022 | ||
|
|
3b0d233cbd | ||
|
|
628534a9ac | ||
|
|
d1c0cdf4f2 | ||
|
|
7c05c987a3 | ||
|
|
150f6db4d1 | ||
|
|
866b7c20a8 | ||
|
|
a367db44cf | ||
|
|
936829e873 | ||
|
|
9b505758dc | ||
|
|
967ed01fcf | ||
|
|
574a2c4b77 | ||
|
|
5960d54722 | ||
|
|
474318ee37 | ||
|
|
923decae5a | ||
|
|
1bc7d61b57 | ||
|
|
17ebe211ec | ||
|
|
c85a3e5a28 | ||
|
|
8a8ea65fae | ||
|
|
ade596121b | ||
|
|
8c8b5359f2 | ||
|
|
536d7ed7b1 | ||
|
|
d400b618a7 | ||
|
|
fe1182e916 | ||
|
|
d618bba8a6 | ||
|
|
8b7d571b66 | ||
|
|
6fa17f3372 | ||
|
|
4d840aa903 | ||
|
|
cb86e7941b | ||
|
|
a616f49864 | ||
|
|
db637b5a4c | ||
|
|
7760777c06 | ||
|
|
fa46fb90fb | ||
|
|
1cbe23ed7b | ||
|
|
3009d0bd7d | ||
|
|
e228a40db8 | ||
|
|
3ac522ba41 | ||
|
|
f55af65e82 | ||
|
|
6407f16d81 | ||
|
|
1415542f73 | ||
|
|
2db5076ec9 | ||
|
|
c3c351e2c2 | ||
|
|
613558867c | ||
|
|
bcc2d7e69b | ||
|
|
9e633999d6 | ||
|
|
50415f68a5 | ||
|
|
24d51e1c92 | ||
|
|
cb32d9aff8 | ||
|
|
59d2a38daa | ||
|
|
e95bb782f0 | ||
|
|
5f3e77d93e | ||
|
|
82a2463062 | ||
|
|
f7d1929816 | ||
|
|
51589c5e21 | ||
|
|
0defac2f2a | ||
|
|
813b2ef253 | ||
|
|
3210bc2767 | ||
|
|
15d9b0418f | ||
|
|
a25cd4bb4b | ||
|
|
91819726b1 | ||
|
|
08434842b3 | ||
|
|
4a28d8cebb | ||
|
|
ed67e1dd10 | ||
|
|
bfc4823e36 | ||
|
|
8873c0c3db | ||
|
|
25c0acc388 | ||
|
|
07c9d9bdbd | ||
|
|
ce33503adf | ||
|
|
0f0e1c25bc | ||
|
|
944d9186ca | ||
|
|
158c5845ab | ||
|
|
0fdf1d2a60 | ||
|
|
69c2faeb6a | ||
|
|
52895fab67 | ||
|
|
5119a57614 | ||
|
|
cd07a43724 | ||
|
|
f9e1f559b1 | ||
|
|
cc285b9924 | ||
|
|
be0e6a2bb4 | ||
|
|
0331b8d799 | ||
|
|
364c67e49b | ||
|
|
37aa472269 | ||
|
|
220674d0d6 | ||
|
|
185fc03c3c | ||
|
|
ec9f0f064e | ||
|
|
8decc8d1a5 | ||
|
|
1f6bbb6257 | ||
|
|
6b164a80a1 | ||
|
|
f87f8d4610 | ||
|
|
e8c50e709e | ||
|
|
948f6e1112 | ||
|
|
27cc7b6a73 | ||
|
|
56c646d82c | ||
|
|
5c74dd6462 | ||
|
|
15fdc2cd09 | ||
|
|
d248c1203e | ||
|
|
29a7a61806 | ||
|
|
70e632f153 | ||
|
|
8180b262fc | ||
|
|
82c3042c0f | ||
|
|
f1521183f8 | ||
|
|
e200161982 | ||
|
|
22f50c6bc1 | ||
|
|
52f8f00434 | ||
|
|
d9b1199ffb | ||
|
|
9a97ef4647 | ||
|
|
873a9fa7e5 | ||
|
|
ec5f3351b6 | ||
|
|
86e9e60f07 | ||
|
|
3c33ba7f18 | ||
|
|
d233de8194 | ||
|
|
add2cfcb96 | ||
|
|
6f670381cf | ||
|
|
853e58e593 | ||
|
|
f2743b41b0 | ||
|
|
35309f27ed | ||
|
|
c78c8190d5 | ||
|
|
1f37896066 | ||
|
|
749f76e6fe | ||
|
|
b5e60ae1b0 | ||
|
|
1f24a4e520 | ||
|
|
58b52f4884 | ||
|
|
381f1dd2c9 | ||
|
|
4498908e72 | ||
|
|
370e480c8c | ||
|
|
fc84649aab | ||
|
|
5784aa1064 | ||
|
|
5192c64991 | ||
|
|
e4e92cb75c | ||
|
|
a31c195749 | ||
|
|
3ab82e7582 | ||
|
|
b33f23cc46 | ||
|
|
e06a133717 | ||
|
|
3c47570563 | ||
|
|
b4c919eba8 | ||
|
|
03d671fabc | ||
|
|
96dbb9233a | ||
|
|
fdf81cd112 | ||
|
|
c4df0d8cdc | ||
|
|
ec9689f200 | ||
|
|
14d28a043d | ||
|
|
16e5954fcb | ||
|
|
f87f076162 | ||
|
|
913c2bd2cb | ||
|
|
7f7df43da2 | ||
|
|
16784e5bb3 | ||
|
|
adbb9c2b00 | ||
|
|
f7e65eb971 | ||
|
|
06e2b76c75 | ||
|
|
5d1a81520c | ||
|
|
a6496deeed | ||
|
|
9b5e7971dc | ||
|
|
18e77a54c3 | ||
|
|
06a21ac229 | ||
|
|
96d90be59f | ||
|
|
ce46aa4721 | ||
|
|
20e9501b0d | ||
|
|
56d9052b73 | ||
|
|
91d802f68d | ||
|
|
5f8d6bc504 | ||
|
|
e292b2d991 | ||
|
|
6c9b9b72da | ||
|
|
f582a4482d | ||
|
|
1079215871 | ||
|
|
6978093404 | ||
|
|
2f45e999d8 | ||
|
|
d44464829b | ||
|
|
efe50d88ec | ||
|
|
71f62a346d | ||
|
|
c0e45a3c78 | ||
|
|
70482e6b26 | ||
|
|
ca5e843bf6 | ||
|
|
a74fddc98f | ||
|
|
57ebcbf2c4 | ||
|
|
c7019db6f4 | ||
|
|
21f5912ec9 | ||
|
|
8d46c3cc66 | ||
|
|
7712e46d64 | ||
|
|
b504df9d02 | ||
|
|
92b2e92620 | ||
|
|
2984695265 | ||
|
|
c9260a75f6 | ||
|
|
1a16d055df | ||
|
|
83a84f1c2d | ||
|
|
90a4591563 | ||
|
|
768fdb269e | ||
|
|
c48b9668f0 | ||
|
|
027ff7847c | ||
|
|
4514325b9c | ||
|
|
b5fd9c58cd | ||
|
|
910a0fa58e | ||
|
|
1e21f5f872 | ||
|
|
e1201abc1e | ||
|
|
c3242abe95 | ||
|
|
d81cdd9114 | ||
|
|
45bcd7f9b8 | ||
|
|
4390370a19 | ||
|
|
54c7af9902 | ||
|
|
b57d61010f | ||
|
|
eaca010ee9 | ||
|
|
c5d22952bf | ||
|
|
81806603eb | ||
|
|
ca9da569ce | ||
|
|
6705439cf3 | ||
|
|
3799c820ca | ||
|
|
1105614b86 | ||
|
|
6a1ad03153 | ||
|
|
fc01074f89 | ||
|
|
bcd666b86b | ||
|
|
d0c7c3f64f | ||
|
|
862dddf8c9 | ||
|
|
d134ca68c6 | ||
|
|
e35c2fd5d0 | ||
|
|
29f9a454eb | ||
|
|
41b65d38fa | ||
|
|
fc9abd3c62 | ||
|
|
c001a2af25 | ||
|
|
3d24eb54ec | ||
|
|
ab93b4c66d | ||
|
|
49eb78497b | ||
|
|
6a4ab3e0d2 | ||
|
|
21742f0096 | ||
|
|
b720009dc0 | ||
|
|
36910e9020 | ||
|
|
0456ed6b4e | ||
|
|
ec4d7f71fe | ||
|
|
25db62ce15 | ||
|
|
dfe11d72e3 | ||
|
|
d94dcaefa0 | ||
|
|
f0340b8d22 | ||
|
|
ee0547e4c4 | ||
|
|
cb30fe50cd | ||
|
|
3271099fea | ||
|
|
5cb1c2ad84 | ||
|
|
928380ebf9 | ||
|
|
0ec5b9bff2 | ||
|
|
7ad17ae397 | ||
|
|
edbfbf2f2f | ||
|
|
fbefcf7280 | ||
|
|
16bf50e610 | ||
|
|
fc8aef7323 | ||
|
|
8ec32e9755 | ||
|
|
03186af6a1 | ||
|
|
d68eb751c5 | ||
|
|
694c078655 | ||
|
|
9484519ec3 | ||
|
|
e015dc8264 | ||
|
|
7367e55d1d | ||
|
|
856f576c05 | ||
|
|
064aa3de11 | ||
|
|
ade44ac2ea | ||
|
|
f785f73e92 | ||
|
|
09400e4f4e | ||
|
|
76d83ffbec | ||
|
|
72add82ee9 | ||
|
|
995e27e9b7 | ||
|
|
79e8f4abe8 | ||
|
|
404a94a199 | ||
|
|
40d31b8b8a | ||
|
|
b9f06bd599 | ||
|
|
330b31ae2e | ||
|
|
50e9ba34b4 | ||
|
|
a28a10bc54 | ||
|
|
cd9345e10c | ||
|
|
5c4ed30c21 | ||
|
|
e2a86e2c8a | ||
|
|
2dba59d1ff | ||
|
|
9ba6bab920 | ||
|
|
f56226e17f | ||
|
|
2ce0410f2c | ||
|
|
cd4aa50207 | ||
|
|
e5c83b5a3e | ||
|
|
7432343214 | ||
|
|
8f32bab4c9 | ||
|
|
26a9dc3f65 | ||
|
|
360a97ab54 | ||
|
|
540ed72e99 | ||
|
|
c81793029d | ||
|
|
1e66eaf929 | ||
|
|
7ddccb55d2 | ||
|
|
34dc1c8bc2 | ||
|
|
1ed22b4613 | ||
|
|
8a6e6465a7 | ||
|
|
35ed051742 | ||
|
|
5bd0c1517f | ||
|
|
6267110b69 | ||
|
|
4e766280c4 | ||
|
|
3d2d77eb3f | ||
|
|
e394e1ecc4 | ||
|
|
90a0506d56 | ||
|
|
ad58d7eae7 | ||
|
|
d0a5a48948 | ||
|
|
4258d515e6 | ||
|
|
f54280dafd | ||
|
|
11099dda2e | ||
|
|
64a68ccbb4 | ||
|
|
4790ba7839 | ||
|
|
1900abde13 | ||
|
|
60b5670577 | ||
|
|
b00406c8e4 | ||
|
|
8dea7fa129 | ||
|
|
2241d8c971 | ||
|
|
beaf7654bb | ||
|
|
0dec42431f | ||
|
|
fea05a17ea | ||
|
|
e4c63d432d | ||
|
|
f300a1d54b | ||
|
|
3a1a3dd0db | ||
|
|
74e6e3623f | ||
|
|
8a244dd3d3 | ||
|
|
fd1cef5616 | ||
|
|
adcac857f8 | ||
|
|
f6a049337e | ||
|
|
40050c1188 | ||
|
|
9bf7ad97f5 | ||
|
|
5723145165 | ||
|
|
84cc22b21b | ||
|
|
c93dd45997 | ||
|
|
a1c4bca908 | ||
|
|
432f4441b9 | ||
|
|
306b3491c4 | ||
|
|
8dbad556ec | ||
|
|
a8a4f37628 | ||
|
|
81d1a1133d | ||
|
|
cfd9f7d25b | ||
|
|
a05d9405b9 | ||
|
|
74f80299b0 | ||
|
|
f11eefed56 | ||
|
|
6b873b72ae | ||
|
|
a3c81745b1 | ||
|
|
d8486a9968 | ||
|
|
9b38c8ef08 | ||
|
|
e7af84670d | ||
|
|
b46ec4efea | ||
|
|
4f9f55ec21 | ||
|
|
3442365127 | ||
|
|
651358d0b6 | ||
|
|
187c9d7e33 | ||
|
|
0849be094e | ||
|
|
8bb39750a1 | ||
|
|
12e7d3b254 | ||
|
|
51dd3da11c | ||
|
|
87eb3cb083 | ||
|
|
b084a9bf0a | ||
|
|
2f12caccf9 | ||
|
|
ebf19616f4 | ||
|
|
b998aa5504 | ||
|
|
fdde08bd01 | ||
|
|
2136ebccd6 | ||
|
|
59add00d4a | ||
|
|
e791da9791 | ||
|
|
07add23251 | ||
|
|
ee25e0a40b | ||
|
|
0cee5e1af8 | ||
|
|
ffcaf5af90 | ||
|
|
5b57ee66ce | ||
|
|
f68be36159 | ||
|
|
2935c9d8de | ||
|
|
264bb5abf7 | ||
|
|
0137f2e6e1 | ||
|
|
6d8e498f76 | ||
|
|
b8b1b58f36 | ||
|
|
8433edacb3 | ||
|
|
68c8a1b170 | ||
|
|
7d133fd37e | ||
|
|
cef7649bed | ||
|
|
615fb40416 | ||
|
|
d990f043bd | ||
|
|
12bf8ca929 | ||
|
|
8dd6dc9a29 | ||
|
|
43039d95ac | ||
|
|
7ba6f68a8d | ||
|
|
19c11e2fd2 | ||
|
|
888bc10c17 | ||
|
|
54150f5afa | ||
|
|
3da43ad2a9 | ||
|
|
0f7337c522 | ||
|
|
29e3636e0a | ||
|
|
a271cf89cf | ||
|
|
88d9b55b14 | ||
|
|
03cf308c16 | ||
|
|
d63d8bf7f9 | ||
|
|
a396473201 | ||
|
|
ef7c50b276 | ||
|
|
f6815086a1 | ||
|
|
91ff6d4cb3 | ||
|
|
46a620f9d7 | ||
|
|
0b37e7cb39 | ||
|
|
384e24d3e9 | ||
|
|
ad53dc22fd | ||
|
|
5ffec69dc7 | ||
|
|
11a380c3da | ||
|
|
f6cbb14dce | ||
|
|
e781f6e767 | ||
|
|
55ef89a9c7 | ||
|
|
d24a4b79d4 | ||
|
|
dc471700ca | ||
|
|
490df43f34 | ||
|
|
8fa0416fee | ||
|
|
d15814d39f | ||
|
|
b5e83bcc7b | ||
|
|
fc3eb72359 | ||
|
|
eceee8e5f4 | ||
|
|
101d86897b | ||
|
|
1dbb9e353e | ||
|
|
5eb0b65590 | ||
|
|
36144a5690 | ||
|
|
a943600019 | ||
|
|
45ac3f414e | ||
|
|
b92198b7f8 | ||
|
|
cf4893410b | ||
|
|
345bcd4cdf | ||
|
|
84786dde00 | ||
|
|
ca2d904770 | ||
|
|
3431e0acf5 | ||
|
|
a99f84f4b2 | ||
|
|
8eddafd9d0 | ||
|
|
78e233c460 | ||
|
|
789af19c60 | ||
|
|
c624edceba | ||
|
|
9eab07f863 | ||
|
|
a5bff8e9b3 | ||
|
|
850896a52b | ||
|
|
c8b3a12856 | ||
|
|
92d676d788 | ||
|
|
419f427a01 | ||
|
|
480b03b645 | ||
|
|
5eda606952 | ||
|
|
b54cbc985e | ||
|
|
7978ea4e8c | ||
|
|
4064e03568 | ||
|
|
f499c8177e | ||
|
|
d8b3f665db | ||
|
|
03884b7ea6 | ||
|
|
c905044e1b | ||
|
|
bf32fcc817 | ||
|
|
f6de57c1a5 | ||
|
|
cc112f971e | ||
|
|
5ce5432830 | ||
|
|
b2d45a4072 | ||
|
|
07e477f891 | ||
|
|
2147240e47 | ||
|
|
f1aa7ff893 | ||
|
|
b3bcf0fa88 | ||
|
|
8185509683 | ||
|
|
d348070226 | ||
|
|
eb7197eb47 | ||
|
|
49a0e4330e | ||
|
|
6ac44f3bdc | ||
|
|
6123b6ea45 | ||
|
|
081669c334 | ||
|
|
599c0763e5 | ||
|
|
c8b358dba2 | ||
|
|
d92b5fc435 | ||
|
|
c65c651b6f | ||
|
|
36da4d1121 | ||
|
|
b3308830b2 | ||
|
|
18adea343e | ||
|
|
09f4f3f23b | ||
|
|
a1054a093c | ||
|
|
099dd0c0d2 | ||
|
|
acbfb0083a | ||
|
|
af4696657c | ||
|
|
ea089c012e | ||
|
|
b9a313057e | ||
|
|
42f653ab6f | ||
|
|
26f4e92c1f | ||
|
|
873d26b335 | ||
|
|
d05675242a | ||
|
|
72c8a94a6c | ||
|
|
b94e947793 | ||
|
|
50a7152941 | ||
|
|
4b4af29f86 | ||
|
|
a95c49e7d0 | ||
|
|
2897ddb8f5 | ||
|
|
b590e5572d | ||
|
|
f46e1b8ca2 | ||
|
|
7116a7d28b | ||
|
|
37a3b89e7a | ||
|
|
7c88f4de2d | ||
|
|
62c13e8318 | ||
|
|
41bbb31af4 | ||
|
|
524674aafc | ||
|
|
6af82fd070 | ||
|
|
afb06b1495 | ||
|
|
118d5fa3b0 | ||
|
|
c68a0d17fc | ||
|
|
c17938f96b | ||
|
|
f58ee3f15f | ||
|
|
7652543231 | ||
|
|
e773354477 | ||
|
|
abbbdc2bc0 | ||
|
|
05b7b177f6 | ||
|
|
b89d096652 | ||
|
|
d866916f42 | ||
|
|
da8e0f6571 | ||
|
|
3fa9702952 | ||
|
|
ae7da0b12d | ||
|
|
7a13a515d9 | ||
|
|
133f497f84 | ||
|
|
a9ad983c13 | ||
|
|
214b9fc9a7 | ||
|
|
951c61aeaa | ||
|
|
285b6dbc39 | ||
|
|
eb7d361657 | ||
|
|
2428214c4b | ||
|
|
af89f7683d | ||
|
|
667a8ae163 | ||
|
|
3a89723d97 | ||
|
|
9ee5c4ec56 | ||
|
|
5e58271903 | ||
|
|
8c907c620d | ||
|
|
b84d429c2e | ||
|
|
9f34be5a61 | ||
|
|
14ac0c2923 | ||
|
|
279c7bcc1a | ||
|
|
c7235e67ef | ||
|
|
840d5520d2 | ||
|
|
1eec9590c3 | ||
|
|
e18bf4b062 | ||
|
|
88e1e7f14b | ||
|
|
091463a429 | ||
|
|
f67605e6aa | ||
|
|
9a0648ff0a | ||
|
|
c9e4acc4e2 | ||
|
|
292dfac25e | ||
|
|
37addf7a94 | ||
|
|
640fc1418b | ||
|
|
8a48c4ed1c | ||
|
|
f9e0681d59 | ||
|
|
cbc0f0a66e | ||
|
|
481b210c0d | ||
|
|
4e7a6639d2 | ||
|
|
a0c7d93b84 | ||
|
|
516325eba8 | ||
|
|
e0193e2be5 | ||
|
|
b85f5b1332 | ||
|
|
648c7b4ed6 | ||
|
|
14fc1bec17 | ||
|
|
fa7abafa5f | ||
|
|
36df305b13 | ||
|
|
f1eff447bb | ||
|
|
49e3c073a5 | ||
|
|
6991d447d4 | ||
|
|
b30a1d49ff | ||
|
|
78759d98dc | ||
|
|
caf38725ae | ||
|
|
3074b2eb93 | ||
|
|
39bb6851e4 | ||
|
|
e57b13ad94 | ||
|
|
1a9576fdff | ||
|
|
4908a07c20 | ||
|
|
6c00151d17 | ||
|
|
6ebc972c2b | ||
|
|
94652e122d | ||
|
|
e49184e606 | ||
|
|
14d2c77f91 | ||
|
|
6430fc29a9 | ||
|
|
4dd85f86a8 |
No files matched your search
@@ -8,7 +8,7 @@ steps:
|
||||
displayName: 'Install vulkan-sdk'
|
||||
- script: python -m pip install --upgrade pip conan
|
||||
displayName: 'Install conan'
|
||||
- script: refreshenv && mkdir build && cd build && cmake -G "Visual Studio 16 2019" -A x64 -DYUZU_USE_BUNDLED_QT=1 -DYUZU_USE_BUNDLED_SDL2=1 -DYUZU_USE_QT_WEB_ENGINE=ON -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON -DYUZU_ENABLE_COMPATIBILITY_REPORTING=${COMPAT} -DUSE_DISCORD_PRESENCE=ON -DENABLE_QT_TRANSLATION=ON -DDISPLAY_VERSION=${{ parameters['version'] }} -DCMAKE_BUILD_TYPE=Release .. && cd ..
|
||||
- script: refreshenv && mkdir build && cd build && cmake -G "Visual Studio 16 2019" -A x64 -DYUZU_USE_BUNDLED_QT=1 -DYUZU_USE_BUNDLED_SDL2=1 -DYUZU_USE_QT_WEB_ENGINE=ON -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON -DYUZU_ENABLE_COMPATIBILITY_REPORTING=${COMPAT} -DYUZU_TESTS=OFF -DUSE_DISCORD_PRESENCE=ON -DENABLE_QT_TRANSLATION=ON -DDISPLAY_VERSION=${{ parameters['version'] }} -DCMAKE_BUILD_TYPE=Release .. && cd ..
|
||||
displayName: 'Configure CMake'
|
||||
- task: MSBuild@1
|
||||
displayName: 'Build'
|
||||
|
||||
@@ -7,9 +7,6 @@
|
||||
[submodule "dynarmic"]
|
||||
path = externals/dynarmic
|
||||
url = https://github.com/MerryMage/dynarmic.git
|
||||
[submodule "soundtouch"]
|
||||
path = externals/soundtouch
|
||||
url = https://github.com/citra-emu/ext-soundtouch.git
|
||||
[submodule "libressl"]
|
||||
path = externals/libressl
|
||||
url = https://github.com/citra-emu/ext-libressl-portable.git
|
||||
|
||||
+35
-39
@@ -21,8 +21,6 @@ CMAKE_DEPENDENT_OPTION(YUZU_USE_BUNDLED_QT "Download bundled Qt binaries" "${MSV
|
||||
|
||||
option(ENABLE_WEB_SERVICE "Enable web services (telemetry, etc.)" ON)
|
||||
|
||||
option(YUZU_USE_BUNDLED_BOOST "Download bundled Boost" OFF)
|
||||
|
||||
option(YUZU_USE_BUNDLED_LIBUSB "Compile bundled libusb" OFF)
|
||||
|
||||
option(YUZU_USE_BUNDLED_FFMPEG "Download/Build bundled FFmpeg" "${WIN32}")
|
||||
@@ -33,6 +31,10 @@ option(ENABLE_CUBEB "Enables the cubeb audio backend" ON)
|
||||
|
||||
option(USE_DISCORD_PRESENCE "Enables Discord Rich Presence" OFF)
|
||||
|
||||
option(YUZU_USE_BUNDLED_OPUS "Compile bundled opus" ON)
|
||||
|
||||
option(YUZU_TESTS "Compile tests" ON)
|
||||
|
||||
# Default to a Release build
|
||||
get_property(IS_MULTI_CONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
|
||||
if (NOT IS_MULTI_CONFIG AND NOT CMAKE_BUILD_TYPE)
|
||||
@@ -166,8 +168,7 @@ macro(yuzu_find_packages)
|
||||
# Capitalization matters here. We need the naming to match the generated paths from Conan
|
||||
set(REQUIRED_LIBS
|
||||
# Cmake Pkg Prefix Version Conan Pkg
|
||||
"Catch2 2.13.7 catch2/2.13.7"
|
||||
"fmt 8.0.1 fmt/8.0.1"
|
||||
"fmt 8.0.1 fmt/8.1.1"
|
||||
"lz4 1.8 lz4/1.9.2"
|
||||
"nlohmann_json 3.8 nlohmann_json/3.8.0"
|
||||
"ZLIB 1.2 zlib/1.2.11"
|
||||
@@ -175,6 +176,11 @@ macro(yuzu_find_packages)
|
||||
# can't use opus until AVX check is fixed: https://github.com/yuzu-emu/yuzu/pull/4068
|
||||
#"opus 1.3 opus/1.3.1"
|
||||
)
|
||||
if (YUZU_TESTS)
|
||||
list(APPEND REQUIRED_LIBS
|
||||
"Catch2 2.13.7 catch2/2.13.7"
|
||||
)
|
||||
endif()
|
||||
|
||||
foreach(PACKAGE ${REQUIRED_LIBS})
|
||||
string(REGEX REPLACE "[ \t\r\n]+" ";" PACKAGE_SPLIT ${PACKAGE})
|
||||
@@ -200,9 +206,7 @@ macro(yuzu_find_packages)
|
||||
unset(FN_FORCE_REQUIRED)
|
||||
endmacro()
|
||||
|
||||
if (NOT YUZU_USE_BUNDLED_BOOST)
|
||||
find_package(Boost 1.73.0 CONFIG COMPONENTS context headers QUIET)
|
||||
endif()
|
||||
find_package(Boost 1.73.0 COMPONENTS context headers)
|
||||
if (Boost_FOUND)
|
||||
set(Boost_LIBRARIES Boost::boost)
|
||||
# Conditionally add Boost::context only if the active version of the Conan or system Boost package provides it
|
||||
@@ -213,23 +217,9 @@ if (Boost_FOUND)
|
||||
if (TARGET Boost::context)
|
||||
list(APPEND Boost_LIBRARIES Boost::context)
|
||||
endif()
|
||||
elseif (${CMAKE_SYSTEM_NAME} STREQUAL "Linux" OR YUZU_USE_BUNDLED_BOOST)
|
||||
message(STATUS "Boost 1.73.0 or newer not found, falling back to externals")
|
||||
set(YUZU_USE_BUNDLED_BOOST ON CACHE BOOL "Download bundled Boost" FORCE)
|
||||
|
||||
# Use yuzu Boost binaries
|
||||
set(Boost_EXT_NAME "boost_1_75_0")
|
||||
set(Boost_PATH "${CMAKE_BINARY_DIR}/externals/${Boost_EXT_NAME}")
|
||||
download_bundled_external("boost/" ${Boost_EXT_NAME} "")
|
||||
set(Boost_USE_DEBUG_RUNTIME FALSE)
|
||||
set(Boost_USE_STATIC_LIBS ON)
|
||||
find_package(Boost 1.75.0 CONFIG REQUIRED COMPONENTS context headers PATHS ${Boost_PATH} NO_DEFAULT_PATH)
|
||||
# Manually set the include dirs since the find_package sets it incorrectly
|
||||
set(Boost_INCLUDE_DIRS ${Boost_PATH}/include CACHE PATH "Path to Boost headers" FORCE)
|
||||
include_directories(SYSTEM "${Boost_INCLUDE_DIRS}")
|
||||
else()
|
||||
message(STATUS "Boost 1.73.0 or newer not found, falling back to Conan")
|
||||
list(APPEND CONAN_REQUIRED_LIBS "boost/1.73.0")
|
||||
message(STATUS "Boost 1.79.0 or newer not found, falling back to Conan")
|
||||
list(APPEND CONAN_REQUIRED_LIBS "boost/1.79.0")
|
||||
endif()
|
||||
|
||||
# Attempt to locate any packages that are required and report the missing ones in CONAN_REQUIRED_LIBS
|
||||
@@ -249,7 +239,7 @@ if(ENABLE_QT)
|
||||
# Check for system Qt on Linux, fallback to bundled Qt
|
||||
if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
|
||||
if (NOT YUZU_USE_BUNDLED_QT)
|
||||
find_package(Qt5 ${QT_VERSION} COMPONENTS Widgets)
|
||||
find_package(Qt5 ${QT_VERSION} COMPONENTS Widgets DBus)
|
||||
endif()
|
||||
if (NOT Qt5_FOUND OR YUZU_USE_BUNDLED_QT)
|
||||
# Check for dependencies, then enable bundled Qt download
|
||||
@@ -355,7 +345,11 @@ if(ENABLE_QT)
|
||||
|
||||
set(YUZU_QT_NO_CMAKE_SYSTEM_PATH "NO_CMAKE_SYSTEM_PATH")
|
||||
endif()
|
||||
find_package(Qt5 ${QT_VERSION} REQUIRED COMPONENTS Widgets ${QT_PREFIX_HINT} ${YUZU_QT_NO_CMAKE_SYSTEM_PATH})
|
||||
if ((${CMAKE_SYSTEM_NAME} STREQUAL "Linux") AND YUZU_USE_BUNDLED_QT)
|
||||
find_package(Qt5 ${QT_VERSION} REQUIRED COMPONENTS Widgets DBus ${QT_PREFIX_HINT} ${YUZU_QT_NO_CMAKE_SYSTEM_PATH})
|
||||
else()
|
||||
find_package(Qt5 ${QT_VERSION} REQUIRED COMPONENTS Widgets ${QT_PREFIX_HINT} ${YUZU_QT_NO_CMAKE_SYSTEM_PATH})
|
||||
endif()
|
||||
if (YUZU_USE_QT_WEB_ENGINE)
|
||||
find_package(Qt5 COMPONENTS WebEngineCore WebEngineWidgets)
|
||||
endif()
|
||||
@@ -411,13 +405,11 @@ if (CONAN_REQUIRED_LIBS)
|
||||
# Download conan.cmake automatically, you can also just copy the conan.cmake file
|
||||
if(NOT EXISTS "${CMAKE_BINARY_DIR}/conan.cmake")
|
||||
message(STATUS "Downloading conan.cmake from https://github.com/conan-io/cmake-conan")
|
||||
# TODO: Use a tagged release. The latest tagged release does not support VS2022 as of this writing.
|
||||
file(DOWNLOAD "https://raw.githubusercontent.com/conan-io/cmake-conan/43e385830ee35377dbd2dcbe8d5a9e750301ea00/conan.cmake"
|
||||
"${CMAKE_BINARY_DIR}/conan.cmake")
|
||||
file(DOWNLOAD "https://raw.githubusercontent.com/conan-io/cmake-conan/release/0.18/conan.cmake" "${CMAKE_BINARY_DIR}/conan.cmake")
|
||||
endif()
|
||||
include(${CMAKE_BINARY_DIR}/conan.cmake)
|
||||
|
||||
conan_check(VERSION 1.41.0 REQUIRED)
|
||||
conan_check(VERSION 1.45.0 REQUIRED)
|
||||
|
||||
# Manually add iconv to fix a dep conflict between qt and sdl2
|
||||
# We don't need to add it through find_package or anything since the other two can find it just fine
|
||||
@@ -508,7 +500,7 @@ set(FFmpeg_COMPONENTS
|
||||
avutil
|
||||
swscale)
|
||||
|
||||
if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
|
||||
if (UNIX AND NOT APPLE)
|
||||
Include(FindPkgConfig REQUIRED)
|
||||
pkg_check_modules(LIBVA libva)
|
||||
endif()
|
||||
@@ -647,14 +639,18 @@ endif()
|
||||
# =========================
|
||||
|
||||
# Install freedesktop.org metadata files, following those specifications:
|
||||
# http://standards.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html
|
||||
# http://standards.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html
|
||||
# http://standards.freedesktop.org/shared-mime-info-spec/shared-mime-info-spec-latest.html
|
||||
# https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html
|
||||
# https://specifications.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html
|
||||
# https://specifications.freedesktop.org/shared-mime-info-spec/shared-mime-info-spec-latest.html
|
||||
# https://www.freedesktop.org/software/appstream/docs/
|
||||
if(ENABLE_QT AND UNIX AND NOT APPLE)
|
||||
install(FILES "${PROJECT_SOURCE_DIR}/dist/yuzu.desktop"
|
||||
DESTINATION "${CMAKE_INSTALL_PREFIX}/share/applications")
|
||||
install(FILES "${PROJECT_SOURCE_DIR}/dist/yuzu.svg"
|
||||
DESTINATION "${CMAKE_INSTALL_PREFIX}/share/icons/hicolor/scalable/apps")
|
||||
install(FILES "${PROJECT_SOURCE_DIR}/dist/yuzu.xml"
|
||||
DESTINATION "${CMAKE_INSTALL_PREFIX}/share/mime/packages")
|
||||
install(FILES "dist/org.yuzu_emu.yuzu.desktop"
|
||||
DESTINATION "share/applications")
|
||||
install(FILES "dist/yuzu.svg"
|
||||
DESTINATION "share/icons/hicolor/scalable/apps"
|
||||
RENAME "org.yuzu_emu.yuzu.svg")
|
||||
install(FILES "dist/org.yuzu_emu.yuzu.xml"
|
||||
DESTINATION "share/mime/packages")
|
||||
install(FILES "dist/org.yuzu_emu.yuzu.metainfo.xml"
|
||||
DESTINATION "share/metainfo")
|
||||
endif()
|
||||
@@ -11,9 +11,15 @@ find_package(Git QUIET PATHS "${GIT_EXECUTABLE}")
|
||||
|
||||
# generate git/build information
|
||||
include(GetGitRevisionDescription)
|
||||
get_git_head_revision(GIT_REF_SPEC GIT_REV)
|
||||
git_describe(GIT_DESC --always --long --dirty)
|
||||
git_branch_name(GIT_BRANCH)
|
||||
if(NOT GIT_REF_SPEC)
|
||||
get_git_head_revision(GIT_REF_SPEC GIT_REV)
|
||||
endif()
|
||||
if(NOT GIT_DESC)
|
||||
git_describe(GIT_DESC --always --long --dirty)
|
||||
endif()
|
||||
if (NOT GIT_BRANCH)
|
||||
git_branch_name(GIT_BRANCH)
|
||||
endif()
|
||||
get_timestamp(BUILD_DATE)
|
||||
|
||||
# Generate cpp with Git revision from template
|
||||
|
||||
@@ -77,6 +77,6 @@ If you wish to support us a different way, please join our [Discord](https://dis
|
||||
|
||||
## License
|
||||
|
||||
yuzu is licensed under the GPLv2 (or any later version). Refer to the [license.txt](https://github.com/yuzu-emu/yuzu/blob/master/license.txt) file.
|
||||
yuzu is licensed under the GPLv3 (or any later version). Refer to the [license.txt](https://github.com/yuzu-emu/yuzu/blob/master/license.txt) file.
|
||||
|
||||
The [Skyline-Emulator Team](https://github.com/skyline-emu/skyline) is exempt from GPLv2 for the contributions from all these contributors [FernandoS27](https://github.com/FernandoS27), [lioncash](https://github.com/lioncash), [bunnei](https://github.com/bunnei), [ReinUsesLisp](https://github.com/ReinUsesLisp), [Morph1984](https://github.com/Morph1984), [ogniK5377](https://github.com/ogniK5377), [german77](https://github.com/german77), [ameerj](https://github.com/ameerj), [Kelebek1](https://github.com/Kelebek1) and [lat9nq](https://github.com/lat9nq). They may only use the code from these contributors under Mozilla Public License, version 2.0.
|
||||
The [Skyline-Emulator Team](https://github.com/skyline-emu/skyline) may choose to use the code from these contributors under the GPL-3.0-or-later OR MPL-2.0: [FernandoS27](https://github.com/FernandoS27), [lioncash](https://github.com/lioncash), [bunnei](https://github.com/bunnei), [ReinUsesLisp](https://github.com/ReinUsesLisp), [Morph1984](https://github.com/Morph1984), [ogniK5377](https://github.com/ogniK5377), [german77](https://github.com/german77), [ameerj](https://github.com/ameerj), [Kelebek1](https://github.com/Kelebek1) and [lat9nq](https://github.com/lat9nq)
|
||||
Vendored
+1689
-1316
File diff suppressed because it is too large.
Load diff
Vendored
+1051
-721
File diff suppressed because it is too large.
Load diff
Vendored
+1055
-725
File diff suppressed because it is too large.
Load diff
Vendored
+1119
-781
File diff suppressed because it is too large.
Load diff
Vendored
+6390
File diff suppressed because it is too large.
Load diff
Vendored
+1050
-704
File diff suppressed because it is too large.
Load diff
Vendored
+6235
File diff suppressed because it is too large.
Load diff
Vendored
+1091
-758
File diff suppressed because it is too large.
Load diff
Vendored
+6364
File diff suppressed because it is too large.
Load diff
Vendored
+1110
-772
File diff suppressed because it is too large.
Load diff
Vendored
+1115
-771
File diff suppressed because it is too large.
Load diff
Vendored
+1139
-786
File diff suppressed because it is too large.
Load diff
Vendored
+1474
-1095
File diff suppressed because it is too large.
Load diff
Vendored
+1103
-772
File diff suppressed because it is too large.
Load diff
Vendored
+1299
-953
File diff suppressed because it is too large.
Load diff
Vendored
+1180
-828
File diff suppressed because it is too large.
Load diff
Vendored
+1365
-994
File diff suppressed because it is too large.
Load diff
Vendored
+1279
-933
File diff suppressed because it is too large.
Load diff
Vendored
+1107
-777
File diff suppressed because it is too large.
Load diff
Vendored
+1076
-746
File diff suppressed because it is too large.
Load diff
Vendored
+6376
File diff suppressed because it is too large.
Load diff
Vendored
+1115
-785
File diff suppressed because it is too large.
Load diff
Vendored
+1029
-683
File diff suppressed because it is too large.
Load diff
Vendored
+1075
-729
File diff suppressed because it is too large.
Load diff
+2
-2
@@ -4,9 +4,9 @@ Type=Application
|
||||
Name=yuzu
|
||||
GenericName=Switch Emulator
|
||||
Comment=Nintendo Switch video game console emulator
|
||||
Icon=yuzu
|
||||
Icon=org.yuzu_emu.yuzu
|
||||
TryExec=yuzu
|
||||
Exec=yuzu %f
|
||||
Categories=Game;Emulator;Qt;
|
||||
MimeType=application/x-nx-nro;application/x-nx-nso;application/x-nx-nsp;application/x-nx-xci;
|
||||
Keywords=Switch;Nintendo;
|
||||
Keywords=Nintendo;Switch;
|
||||
Vendored
+56
@@ -0,0 +1,56 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<component type="desktop-application">
|
||||
<id>org.yuzu_emu.yuzu</id>
|
||||
<metadata_license>CC0-1.0</metadata_license>
|
||||
<name>yuzu</name>
|
||||
<summary>Nintendo Switch emulator</summary>
|
||||
<description>
|
||||
<p>yuzu is the world's most popular, open-source, Nintendo Switch emulator — started by the creators of Citra.</p>
|
||||
<p>The emulator is capable of running most commercial games at full speed, provided you meet the necessary hardware requirements.</p>
|
||||
<p>For a full list of games yuzu support, please visit our Compatibility page.</p>
|
||||
<p>Check out our website for the latest news on exciting features, monthly progress reports, and more!</p>
|
||||
</description>
|
||||
<categories>
|
||||
<category>Game</category>
|
||||
<category>Emulator</category>
|
||||
</categories>
|
||||
<keywords>
|
||||
<keyword>switch</keyword>
|
||||
<keyword>emulator</keyword>
|
||||
</keywords>
|
||||
<url type="homepage">https://yuzu-emu.org/</url>
|
||||
<url type="bugtracker">https://github.com/yuzu-emu/yuzu/issues</url>
|
||||
<url type="faq">https://yuzu-emu.org/wiki/faq/</url>
|
||||
<url type="help">https://yuzu-emu.org/wiki/home/</url>
|
||||
<url type="donation">https://yuzu-emu.org/donate/</url>
|
||||
<url type="translate">https://www.transifex.com/projects/p/yuzu</url>
|
||||
<url type="contact">https://community.citra-emu.org/</url>
|
||||
<url type="vcs-browser">https://github.com/yuzu-emu/yuzu</url>
|
||||
<url type="contribute">https://yuzu-emu.org/wiki/contributing/</url>
|
||||
<launchable type="desktop-id">org.yuzu_emu.yuzu.desktop</launchable>
|
||||
<provides>
|
||||
<binary>yuzu</binary>
|
||||
<binary>yuzu-cmd</binary>
|
||||
</provides>
|
||||
<supports>
|
||||
<control>pointing</control>
|
||||
<control>keyboard</control>
|
||||
<control>gamepad</control>
|
||||
</supports>
|
||||
<requires>
|
||||
<memory>8192</memory>
|
||||
</requires>
|
||||
<recommends>
|
||||
<memory>16384</memory>
|
||||
</recommends>
|
||||
<project_license>GPL-3.0-or-later</project_license>
|
||||
<developer_name>yuzu Emulator Team</developer_name>
|
||||
<content_rating type="oars-1.0"/>
|
||||
<screenshots>
|
||||
<screenshot type="default">https://raw.githubusercontent.com/yuzu-emu/yuzu-emu.github.io/master/images/screenshots/001-Super%20Mario%20Odyssey%20.png</screenshot>
|
||||
<screenshot>https://raw.githubusercontent.com/yuzu-emu/yuzu-emu.github.io/master/images/screenshots/004-The%20Legend%20of%20Zelda%20Skyward%20Sword%20HD.png</screenshot>
|
||||
<screenshot>https://raw.githubusercontent.com/yuzu-emu/yuzu-emu.github.io/master/images/screenshots/007-Pokemon%20Sword.png</screenshot>
|
||||
<screenshot>https://raw.githubusercontent.com/yuzu-emu/yuzu-emu.github.io/master/images/screenshots/010-Hyrule%20Warriors%20Age%20of%20Calamity.png</screenshot>
|
||||
<screenshot>https://raw.githubusercontent.com/yuzu-emu/yuzu-emu.github.io/master/images/screenshots/039-Pok%C3%A9mon%20Mystery%20Dungeon%20Rescue%20Team%20DX.png.png.png</screenshot>
|
||||
</screenshots>
|
||||
</component>
|
||||
+5
-5
@@ -3,7 +3,7 @@
|
||||
<mime-type type="application/x-nx-nro">
|
||||
<comment>Nintendo Switch homebrew executable</comment>
|
||||
<acronym>NRO</acronym>
|
||||
<icon name="yuzu"/>
|
||||
<icon name="org.yuzu_emu.yuzu"/>
|
||||
<glob pattern="*.nro"/>
|
||||
<magic><match value="NRO" type="string" offset="16"/></magic>
|
||||
</mime-type>
|
||||
@@ -11,7 +11,7 @@
|
||||
<mime-type type="application/x-nx-nso">
|
||||
<comment>Nintendo Switch homebrew executable</comment>
|
||||
<acronym>NSO</acronym>
|
||||
<icon name="yuzu"/>
|
||||
<icon name="org.yuzu_emu.yuzu"/>
|
||||
<glob pattern="*.nso"/>
|
||||
<magic><match value="NSO" type="string" offset="0"/></magic>
|
||||
</mime-type>
|
||||
@@ -19,7 +19,7 @@
|
||||
<mime-type type="application/x-nx-nsp">
|
||||
<comment>Nintendo Switch Package</comment>
|
||||
<acronym>NSP</acronym>
|
||||
<icon name="yuzu"/>
|
||||
<icon name="org.yuzu_emu.yuzu"/>
|
||||
<glob pattern="*.nsp"/>
|
||||
<magic><match value="PFS" type="string" offset="0"/></magic>
|
||||
</mime-type>
|
||||
@@ -27,7 +27,7 @@
|
||||
<mime-type type="application/x-nx-xci">
|
||||
<comment>Nintendo Switch Card Image</comment>
|
||||
<acronym>XCI</acronym>
|
||||
<icon name="yuzu"/>
|
||||
<icon name="org.yuzu_emu.yuzu"/>
|
||||
<glob pattern="*.xci"/>
|
||||
</mime-type>
|
||||
</mime-info>
|
||||
</mime-info>
|
||||
BIN
Binary file not shown.
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 6.6 KiB |
Vendored
+3
-10
@@ -13,10 +13,6 @@ if (ARCHITECTURE_x86 OR ARCHITECTURE_x86_64)
|
||||
target_compile_definitions(xbyak INTERFACE XBYAK_NO_OP_NAMES)
|
||||
endif()
|
||||
|
||||
# Catch
|
||||
add_library(catch-single-include INTERFACE)
|
||||
target_include_directories(catch-single-include INTERFACE catch/single_include)
|
||||
|
||||
# Dynarmic
|
||||
if (ARCHITECTURE_x86_64)
|
||||
set(DYNARMIC_TESTS OFF)
|
||||
@@ -72,9 +68,6 @@ if (YUZU_USE_EXTERNAL_SDL2)
|
||||
add_library(SDL2 ALIAS SDL2-static)
|
||||
endif()
|
||||
|
||||
# SoundTouch
|
||||
add_subdirectory(soundtouch)
|
||||
|
||||
# Cubeb
|
||||
if(ENABLE_CUBEB)
|
||||
set(BUILD_TESTS OFF CACHE BOOL "")
|
||||
@@ -117,10 +110,10 @@ if (ENABLE_WEB_SERVICE)
|
||||
endif()
|
||||
|
||||
# Opus
|
||||
find_package(opus 1.3)
|
||||
if (NOT opus_FOUND)
|
||||
message(STATUS "opus 1.3 or newer not found, falling back to externals")
|
||||
if (YUZU_USE_BUNDLED_OPUS)
|
||||
add_subdirectory(opus EXCLUDE_FROM_ALL)
|
||||
else()
|
||||
find_package(opus 1.3 REQUIRED)
|
||||
endif()
|
||||
|
||||
# FFMpeg
|
||||
|
||||
+18
-18
@@ -747,12 +747,12 @@ AF1 sharpness){
|
||||
// Immediate constants for peak range.
|
||||
AF2 peakC=AF2(1.0,-1.0*4.0);
|
||||
// Limiters, these need to be high precision RCPs.
|
||||
AF1 hitMinR=mn4R*ARcpF1(AF1_(4.0)*mx4R);
|
||||
AF1 hitMinG=mn4G*ARcpF1(AF1_(4.0)*mx4G);
|
||||
AF1 hitMinB=mn4B*ARcpF1(AF1_(4.0)*mx4B);
|
||||
AF1 hitMaxR=(peakC.x-mx4R)*ARcpF1(AF1_(4.0)*mn4R+peakC.y);
|
||||
AF1 hitMaxG=(peakC.x-mx4G)*ARcpF1(AF1_(4.0)*mn4G+peakC.y);
|
||||
AF1 hitMaxB=(peakC.x-mx4B)*ARcpF1(AF1_(4.0)*mn4B+peakC.y);
|
||||
AF1 hitMinR=min(mn4R,eR)*ARcpF1(AF1_(4.0)*mx4R);
|
||||
AF1 hitMinG=min(mn4G,eG)*ARcpF1(AF1_(4.0)*mx4G);
|
||||
AF1 hitMinB=min(mn4B,eB)*ARcpF1(AF1_(4.0)*mx4B);
|
||||
AF1 hitMaxR=(peakC.x-max(mx4R,eR))*ARcpF1(AF1_(4.0)*mn4R+peakC.y);
|
||||
AF1 hitMaxG=(peakC.x-max(mx4G,eG))*ARcpF1(AF1_(4.0)*mn4G+peakC.y);
|
||||
AF1 hitMaxB=(peakC.x-max(mx4B,eB))*ARcpF1(AF1_(4.0)*mn4B+peakC.y);
|
||||
AF1 lobeR=max(-hitMinR,hitMaxR);
|
||||
AF1 lobeG=max(-hitMinG,hitMaxG);
|
||||
AF1 lobeB=max(-hitMinB,hitMaxB);
|
||||
@@ -845,12 +845,12 @@ AF1 sharpness){
|
||||
// Immediate constants for peak range.
|
||||
AH2 peakC=AH2(1.0,-1.0*4.0);
|
||||
// Limiters, these need to be high precision RCPs.
|
||||
AH1 hitMinR=mn4R*ARcpH1(AH1_(4.0)*mx4R);
|
||||
AH1 hitMinG=mn4G*ARcpH1(AH1_(4.0)*mx4G);
|
||||
AH1 hitMinB=mn4B*ARcpH1(AH1_(4.0)*mx4B);
|
||||
AH1 hitMaxR=(peakC.x-mx4R)*ARcpH1(AH1_(4.0)*mn4R+peakC.y);
|
||||
AH1 hitMaxG=(peakC.x-mx4G)*ARcpH1(AH1_(4.0)*mn4G+peakC.y);
|
||||
AH1 hitMaxB=(peakC.x-mx4B)*ARcpH1(AH1_(4.0)*mn4B+peakC.y);
|
||||
AH1 hitMinR=min(mn4R,eR)*ARcpH1(AH1_(4.0)*mx4R);
|
||||
AH1 hitMinG=min(mn4G,eG)*ARcpH1(AH1_(4.0)*mx4G);
|
||||
AH1 hitMinB=min(mn4B,eB)*ARcpH1(AH1_(4.0)*mx4B);
|
||||
AH1 hitMaxR=(peakC.x-max(mx4R,eR))*ARcpH1(AH1_(4.0)*mn4R+peakC.y);
|
||||
AH1 hitMaxG=(peakC.x-max(mx4G,eG))*ARcpH1(AH1_(4.0)*mn4G+peakC.y);
|
||||
AH1 hitMaxB=(peakC.x-max(mx4B,eB))*ARcpH1(AH1_(4.0)*mn4B+peakC.y);
|
||||
AH1 lobeR=max(-hitMinR,hitMaxR);
|
||||
AH1 lobeG=max(-hitMinG,hitMaxG);
|
||||
AH1 lobeB=max(-hitMinB,hitMaxB);
|
||||
@@ -963,12 +963,12 @@ AF1 sharpness){
|
||||
// Immediate constants for peak range.
|
||||
AH2 peakC=AH2(1.0,-1.0*4.0);
|
||||
// Limiters, these need to be high precision RCPs.
|
||||
AH2 hitMinR=mn4R*ARcpH2(AH2_(4.0)*mx4R);
|
||||
AH2 hitMinG=mn4G*ARcpH2(AH2_(4.0)*mx4G);
|
||||
AH2 hitMinB=mn4B*ARcpH2(AH2_(4.0)*mx4B);
|
||||
AH2 hitMaxR=(peakC.x-mx4R)*ARcpH2(AH2_(4.0)*mn4R+peakC.y);
|
||||
AH2 hitMaxG=(peakC.x-mx4G)*ARcpH2(AH2_(4.0)*mn4G+peakC.y);
|
||||
AH2 hitMaxB=(peakC.x-mx4B)*ARcpH2(AH2_(4.0)*mn4B+peakC.y);
|
||||
AH2 hitMinR=min(mn4R,eR)*ARcpH2(AH2_(4.0)*mx4R);
|
||||
AH2 hitMinG=min(mn4G,eG)*ARcpH2(AH2_(4.0)*mx4G);
|
||||
AH2 hitMinB=min(mn4B,eB)*ARcpH2(AH2_(4.0)*mx4B);
|
||||
AH2 hitMaxR=(peakC.x-max(mx4R,eR))*ARcpH2(AH2_(4.0)*mn4R+peakC.y);
|
||||
AH2 hitMaxG=(peakC.x-max(mx4G,eG))*ARcpH2(AH2_(4.0)*mn4G+peakC.y);
|
||||
AH2 hitMaxB=(peakC.x-max(mx4B,eB))*ARcpH2(AH2_(4.0)*mn4B+peakC.y);
|
||||
AH2 lobeR=max(-hitMinR,hitMaxR);
|
||||
AH2 lobeG=max(-hitMinG,hitMaxG);
|
||||
AH2 lobeB=max(-hitMinB,hitMaxB);
|
||||
|
||||
Vendored
+1
-1
Submodule externals/Vulkan-Headers updated: 07c4a37bcf...33d4dd987f.
Vendored
+1
-1
Submodule externals/dynarmic updated: cce7e4ee5d...57af72a567.
Vendored
+9
-4
@@ -95,7 +95,8 @@ if (NOT WIN32)
|
||||
# ffnvenc could load CUDA libraries at the runtime using dlopen/dlsym or LoadLibrary/GetProcAddress
|
||||
# here we handle the hard-linking senario where CUDA is linked during compilation
|
||||
if (CUDA_FOUND)
|
||||
list(APPEND FFmpeg_HWACCEL_FLAGS --extra-cflags=-I${CUDA_INCLUDE_DIRS})
|
||||
# This line causes build error if CUDA_INCLUDE_DIRS is anything but a single non-empty value
|
||||
#list(APPEND FFmpeg_HWACCEL_FLAGS --extra-cflags=-I${CUDA_INCLUDE_DIRS})
|
||||
list(APPEND FFmpeg_HWACCEL_LIBRARIES ${CUDA_LIBRARIES})
|
||||
list(APPEND FFmpeg_HWACCEL_INCLUDE_DIRS ${CUDA_INCLUDE_DIRS})
|
||||
list(APPEND FFmpeg_HWACCEL_LDFLAGS ${CUDA_LDFLAGS})
|
||||
@@ -119,6 +120,8 @@ if (NOT WIN32)
|
||||
|
||||
# `configure` parameters builds only exactly what yuzu needs from FFmpeg
|
||||
# `--disable-vdpau` is needed to avoid linking issues
|
||||
set(FFmpeg_CC ${CMAKE_C_COMPILER_LAUNCHER} ${CMAKE_C_COMPILER})
|
||||
set(FFmpeg_CXX ${CMAKE_CXX_COMPILER_LAUNCHER} ${CMAKE_CXX_COMPILER})
|
||||
add_custom_command(
|
||||
OUTPUT
|
||||
${FFmpeg_MAKEFILE}
|
||||
@@ -137,12 +140,14 @@ if (NOT WIN32)
|
||||
--enable-decoder=h264
|
||||
--enable-decoder=vp8
|
||||
--enable-decoder=vp9
|
||||
--cc="${CMAKE_C_COMPILER}"
|
||||
--cxx="${CMAKE_CXX_COMPILER}"
|
||||
--cc="${FFmpeg_CC}"
|
||||
--cxx="${FFmpeg_CXX}"
|
||||
${FFmpeg_HWACCEL_FLAGS}
|
||||
WORKING_DIRECTORY
|
||||
${FFmpeg_BUILD_DIR}
|
||||
)
|
||||
unset(FFmpeg_CC)
|
||||
unset(FFmpeg_CXX)
|
||||
unset(FFmpeg_HWACCEL_FLAGS)
|
||||
|
||||
# Workaround for Ubuntu 18.04's older version of make not being able to call make as a child
|
||||
@@ -209,6 +214,6 @@ else(WIN32)
|
||||
set(FFmpeg_LDFLAGS "${FFmpeg_LDFLAGS}" PARENT_SCOPE)
|
||||
set(FFmpeg_LIBRARIES "${FFmpeg_LIBRARIES}" PARENT_SCOPE)
|
||||
set(FFmpeg_INCLUDE_DIR "${FFmpeg_INCLUDE_DIR}" PARENT_SCOPE)
|
||||
endif(WIN32)
|
||||
endif()
|
||||
|
||||
unset(FFmpeg_COMPONENTS)
|
||||
Vendored
+1
-1
Submodule externals/libressl updated: 8289d0d07d...8929f818fd.
Vendored
+1
-1
Submodule externals/sirit updated: a39596358a...aa292d5665.
Vendored
-1
Submodule externals/soundtouch deleted from 060181eaf2.
+6
-7
@@ -65,12 +65,14 @@ if (MSVC)
|
||||
/we4305 # 'context': truncation from 'type1' to 'type2'
|
||||
/we4388 # 'expression': signed/unsigned mismatch
|
||||
/we4389 # 'operator': signed/unsigned mismatch
|
||||
/we4505 # 'function': unreferenced local function has been removed
|
||||
/we4547 # 'operator': operator before comma has no effect; expected operator with side-effect
|
||||
/we4549 # 'operator1': operator before comma has no effect; did you intend 'operator2'?
|
||||
/we4555 # Expression has no effect; expected expression with side-effect
|
||||
/we4715 # 'function': not all control paths return a value
|
||||
/we4834 # Discarding return value of function with 'nodiscard' attribute
|
||||
/we5038 # data member 'member1' will be initialized after data member 'member2'
|
||||
/we5245 # 'function': unreferenced function with internal linkage has been removed
|
||||
)
|
||||
|
||||
if (ARCHITECTURE_x86_64)
|
||||
@@ -103,12 +105,6 @@ else()
|
||||
-Wno-unused-parameter
|
||||
)
|
||||
|
||||
# TODO: Remove when we update to a GCC compiler that enables this
|
||||
# by default (i.e. GCC 10 or newer).
|
||||
if (CMAKE_CXX_COMPILER_ID STREQUAL GNU)
|
||||
add_compile_options(-fconcepts)
|
||||
endif()
|
||||
|
||||
if (ARCHITECTURE_x86_64)
|
||||
add_compile_options("-mcx16")
|
||||
endif()
|
||||
@@ -151,7 +147,10 @@ add_subdirectory(audio_core)
|
||||
add_subdirectory(video_core)
|
||||
add_subdirectory(input_common)
|
||||
add_subdirectory(shader_recompiler)
|
||||
add_subdirectory(tests)
|
||||
|
||||
if (YUZU_TESTS)
|
||||
add_subdirectory(tests)
|
||||
endif()
|
||||
|
||||
if (ENABLE_SDL2)
|
||||
add_subdirectory(yuzu_cmd)
|
||||
|
||||
@@ -36,8 +36,6 @@ add_library(audio_core STATIC
|
||||
splitter_context.h
|
||||
stream.cpp
|
||||
stream.h
|
||||
time_stretch.cpp
|
||||
time_stretch.h
|
||||
voice_context.cpp
|
||||
voice_context.h
|
||||
|
||||
@@ -63,7 +61,6 @@ if (NOT MSVC)
|
||||
endif()
|
||||
|
||||
target_link_libraries(audio_core PUBLIC common core)
|
||||
target_link_libraries(audio_core PRIVATE SoundTouch)
|
||||
|
||||
if(ENABLE_CUBEB)
|
||||
target_link_libraries(audio_core PRIVATE cubeb)
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
// Copyright 2018 yuzu Emulator Project
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#define _USE_MATH_DEFINES
|
||||
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
// Copyright 2018 yuzu Emulator Project
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
// Copyright 2018 yuzu Emulator Project
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#define _USE_MATH_DEFINES
|
||||
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
// Copyright 2018 yuzu Emulator Project
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
// Copyright 2018 yuzu Emulator Project
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include "audio_core/audio_out.h"
|
||||
#include "audio_core/sink.h"
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
// Copyright 2018 yuzu Emulator Project
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
// Copyright 2018 yuzu Emulator Project
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include <limits>
|
||||
#include <vector>
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
// Copyright 2018 yuzu Emulator Project
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
// Copyright 2020 yuzu Emulator Project
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
// SPDX-FileCopyrightText: Copyright 2020 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include <cstring>
|
||||
#include "audio_core/behavior_info.h"
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
// Copyright 2020 yuzu Emulator Project
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
// SPDX-FileCopyrightText: Copyright 2020 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
// Copyright 2018 yuzu Emulator Project
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
// Copyright 2018 yuzu Emulator Project
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include <algorithm>
|
||||
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
// Copyright 2018 yuzu Emulator Project
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
// Copyright 2020 yuzu Emulator Project
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
// SPDX-FileCopyrightText: Copyright 2020 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include <algorithm>
|
||||
#include <cmath>
|
||||
@@ -130,17 +129,17 @@ s32 ToS32(float sample) {
|
||||
return static_cast<s32>(rescaled_sample);
|
||||
}
|
||||
|
||||
constexpr std::array<std::size_t, 20> REVERB_TAP_INDEX_1CH{0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
|
||||
constexpr std::array<u8, 20> REVERB_TAP_INDEX_1CH{0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
|
||||
|
||||
constexpr std::array<std::size_t, 20> REVERB_TAP_INDEX_2CH{0, 0, 0, 1, 1, 1, 1, 0, 0, 0,
|
||||
1, 1, 1, 0, 0, 0, 0, 1, 1, 1};
|
||||
constexpr std::array<u8, 20> REVERB_TAP_INDEX_2CH{0, 0, 0, 1, 1, 1, 1, 0, 0, 0,
|
||||
1, 1, 1, 0, 0, 0, 0, 1, 1, 1};
|
||||
|
||||
constexpr std::array<std::size_t, 20> REVERB_TAP_INDEX_4CH{0, 0, 0, 1, 1, 1, 1, 2, 2, 2,
|
||||
1, 1, 1, 0, 0, 0, 0, 3, 3, 3};
|
||||
constexpr std::array<u8, 20> REVERB_TAP_INDEX_4CH{0, 0, 0, 1, 1, 1, 1, 2, 2, 2,
|
||||
1, 1, 1, 0, 0, 0, 0, 3, 3, 3};
|
||||
|
||||
constexpr std::array<std::size_t, 20> REVERB_TAP_INDEX_6CH{4, 0, 0, 1, 1, 1, 1, 2, 2, 2,
|
||||
1, 1, 1, 0, 0, 0, 0, 3, 3, 3};
|
||||
constexpr std::array<u8, 20> REVERB_TAP_INDEX_6CH{4, 0, 0, 1, 1, 1, 1, 2, 2, 2,
|
||||
1, 1, 1, 0, 0, 0, 0, 3, 3, 3};
|
||||
|
||||
template <std::size_t CHANNEL_COUNT>
|
||||
void ApplyReverbGeneric(
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
// Copyright 2020 yuzu Emulator Project
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
// SPDX-FileCopyrightText: Copyright 2020 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
// Copyright 2020 yuzu Emulator Project
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
// SPDX-FileCopyrightText: Copyright 2020 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
@@ -15,7 +14,9 @@ constexpr ResultCode ERR_INVALID_PARAMETERS{ErrorModule::Audio, 41};
|
||||
constexpr ResultCode ERR_SPLITTER_SORT_FAILED{ErrorModule::Audio, 43};
|
||||
} // namespace Audren
|
||||
|
||||
constexpr u32_le CURRENT_PROCESS_REVISION = Common::MakeMagic('R', 'E', 'V', '9');
|
||||
constexpr u8 BASE_REVISION = '0';
|
||||
constexpr u32_le CURRENT_PROCESS_REVISION =
|
||||
Common::MakeMagic('R', 'E', 'V', static_cast<u8>(BASE_REVISION + 0xA));
|
||||
constexpr std::size_t MAX_MIX_BUFFERS = 24;
|
||||
constexpr std::size_t MAX_BIQUAD_FILTERS = 2;
|
||||
constexpr std::size_t MAX_CHANNEL_COUNT = 6;
|
||||
|
||||
@@ -1,13 +1,11 @@
|
||||
// Copyright 2018 yuzu Emulator Project
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include <algorithm>
|
||||
#include <atomic>
|
||||
#include <cstring>
|
||||
#include "audio_core/cubeb_sink.h"
|
||||
#include "audio_core/stream.h"
|
||||
#include "audio_core/time_stretch.h"
|
||||
#include "common/assert.h"
|
||||
#include "common/logging/log.h"
|
||||
#include "common/ring_buffer.h"
|
||||
@@ -23,8 +21,7 @@ class CubebSinkStream final : public SinkStream {
|
||||
public:
|
||||
CubebSinkStream(cubeb* ctx_, u32 sample_rate, u32 num_channels_, cubeb_devid output_device,
|
||||
const std::string& name)
|
||||
: ctx{ctx_}, num_channels{std::min(num_channels_, 6u)}, time_stretch{sample_rate,
|
||||
num_channels} {
|
||||
: ctx{ctx_}, num_channels{std::min(num_channels_, 6u)} {
|
||||
|
||||
cubeb_stream_params params{};
|
||||
params.rate = sample_rate;
|
||||
@@ -131,7 +128,6 @@ private:
|
||||
Common::RingBuffer<s16, 0x10000> queue;
|
||||
std::array<s16, 2> last_frame{};
|
||||
std::atomic<bool> should_flush{};
|
||||
TimeStretcher time_stretch;
|
||||
|
||||
static long DataCallback(cubeb_stream* stream, void* user_data, const void* input_buffer,
|
||||
void* output_buffer, long num_frames);
|
||||
@@ -205,25 +201,7 @@ long CubebSinkStream::DataCallback([[maybe_unused]] cubeb_stream* stream, void*
|
||||
|
||||
const std::size_t num_channels = impl->GetNumChannels();
|
||||
const std::size_t samples_to_write = num_channels * num_frames;
|
||||
std::size_t samples_written;
|
||||
|
||||
/*
|
||||
if (Settings::values.enable_audio_stretching.GetValue()) {
|
||||
const std::vector<s16> in{impl->queue.Pop()};
|
||||
const std::size_t num_in{in.size() / num_channels};
|
||||
s16* const out{reinterpret_cast<s16*>(buffer)};
|
||||
const std::size_t out_frames =
|
||||
impl->time_stretch.Process(in.data(), num_in, out, num_frames);
|
||||
samples_written = out_frames * num_channels;
|
||||
|
||||
if (impl->should_flush) {
|
||||
impl->time_stretch.Flush();
|
||||
impl->should_flush = false;
|
||||
}
|
||||
} else {
|
||||
samples_written = impl->queue.Pop(buffer, samples_to_write);
|
||||
}*/
|
||||
samples_written = impl->queue.Pop(buffer, samples_to_write);
|
||||
const std::size_t samples_written = impl->queue.Pop(buffer, samples_to_write);
|
||||
|
||||
if (samples_written >= num_channels) {
|
||||
std::memcpy(&impl->last_frame[0], buffer + (samples_written - num_channels) * sizeof(s16),
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
// Copyright 2018 yuzu Emulator Project
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
// Copyright 2021 yuzu Emulator Project
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
// SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include <cstring>
|
||||
#include "audio_core/delay_line.h"
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
// Copyright 2021 yuzu Emulator Project
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
// SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
// Copyright 2020 yuzu Emulator Project
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
// SPDX-FileCopyrightText: Copyright 2020 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include <algorithm>
|
||||
#include "audio_core/effect_context.h"
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
// Copyright 2020 yuzu Emulator Project
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
// SPDX-FileCopyrightText: Copyright 2020 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
// Copyright 2020 yuzu Emulator Project
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
// SPDX-FileCopyrightText: Copyright 2020 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include "audio_core/behavior_info.h"
|
||||
#include "audio_core/effect_context.h"
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
// Copyright 2020 yuzu Emulator Project
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
// SPDX-FileCopyrightText: Copyright 2020 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
|
||||
// Copyright 2020 yuzu Emulator Project
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
// SPDX-FileCopyrightText: Copyright 2020 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include "audio_core/memory_pool.h"
|
||||
#include "common/logging/log.h"
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
// Copyright 2020 yuzu Emulator Project
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
// SPDX-FileCopyrightText: Copyright 2020 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
// Copyright 2020 yuzu Emulator Project
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
// SPDX-FileCopyrightText: Copyright 2020 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include <algorithm>
|
||||
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
// Copyright 2020 yuzu Emulator Project
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
// SPDX-FileCopyrightText: Copyright 2020 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
// Copyright 2018 yuzu Emulator Project
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
|
||||
@@ -1,13 +1,11 @@
|
||||
// Copyright 2018 yuzu Emulator Project
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include <algorithm>
|
||||
#include <atomic>
|
||||
#include <cstring>
|
||||
#include "audio_core/sdl2_sink.h"
|
||||
#include "audio_core/stream.h"
|
||||
#include "audio_core/time_stretch.h"
|
||||
#include "common/assert.h"
|
||||
#include "common/logging/log.h"
|
||||
//#include "common/settings.h"
|
||||
@@ -27,7 +25,7 @@ namespace AudioCore {
|
||||
class SDLSinkStream final : public SinkStream {
|
||||
public:
|
||||
SDLSinkStream(u32 sample_rate, u32 num_channels_, const std::string& output_device)
|
||||
: num_channels{std::min(num_channels_, 6u)}, time_stretch{sample_rate, num_channels} {
|
||||
: num_channels{std::min(num_channels_, 6u)} {
|
||||
|
||||
SDL_AudioSpec spec;
|
||||
spec.freq = sample_rate;
|
||||
@@ -116,7 +114,6 @@ private:
|
||||
SDL_AudioDeviceID dev = 0;
|
||||
u32 num_channels{};
|
||||
std::atomic<bool> should_flush{};
|
||||
TimeStretcher time_stretch;
|
||||
};
|
||||
|
||||
SDLSink::SDLSink(std::string_view target_device_name) {
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
// Copyright 2018 yuzu Emulator Project
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
// Copyright 2018 yuzu Emulator Project
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
// Copyright 2020 yuzu Emulator Project
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
// SPDX-FileCopyrightText: Copyright 2020 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include "audio_core/sink_context.h"
|
||||
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
// Copyright 2020 yuzu Emulator Project
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
// SPDX-FileCopyrightText: Copyright 2020 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
// Copyright 2018 yuzu Emulator Project
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include <algorithm>
|
||||
#include <memory>
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
// Copyright 2018 yuzu Emulator Project
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
// Copyright 2018 yuzu Emulator Project
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
// Copyright 2020 yuzu Emulator Project
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
// SPDX-FileCopyrightText: Copyright 2020 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include "audio_core/behavior_info.h"
|
||||
#include "audio_core/splitter_context.h"
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
// Copyright 2020 yuzu Emulator Project
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
// SPDX-FileCopyrightText: Copyright 2020 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
// Copyright 2018 yuzu Emulator Project
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include <algorithm>
|
||||
#include <cmath>
|
||||
@@ -79,14 +78,24 @@ static void VolumeAdjustSamples(std::vector<s16>& samples, float game_volume) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Implementation of a volume slider with a dynamic range of 60 dB
|
||||
const float volume_scale_factor = volume == 0 ? 0 : std::exp(6.90775f * volume) * 0.001f;
|
||||
// Perceived volume is not the same as the volume level
|
||||
const float volume_scale_factor = (0.85f * ((volume * volume) - volume)) + volume;
|
||||
for (auto& sample : samples) {
|
||||
sample = static_cast<s16>(sample * volume_scale_factor);
|
||||
}
|
||||
}
|
||||
|
||||
void Stream::PlayNextBuffer(std::chrono::nanoseconds ns_late) {
|
||||
#ifndef _WIN32
|
||||
auto now = std::chrono::steady_clock::now();
|
||||
auto duration = now.time_since_epoch();
|
||||
auto nanoseconds = std::chrono::duration_cast<std::chrono::nanoseconds>(duration);
|
||||
|
||||
if (nanoseconds > expected_cb_time) {
|
||||
ns_late = nanoseconds - expected_cb_time;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (!IsPlaying()) {
|
||||
// Ensure we are in playing state before playing the next buffer
|
||||
sink_stream.Flush();
|
||||
@@ -121,6 +130,9 @@ void Stream::PlayNextBuffer(std::chrono::nanoseconds ns_late) {
|
||||
ns_late = {};
|
||||
}
|
||||
|
||||
#ifndef _WIN32
|
||||
expected_cb_time = nanoseconds + (buffer_release_ns - ns_late);
|
||||
#endif
|
||||
core_timing.ScheduleEvent(buffer_release_ns - ns_late, release_event, {});
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
// Copyright 2018 yuzu Emulator Project
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
@@ -124,6 +123,9 @@ private:
|
||||
SinkStream& sink_stream; ///< Output sink for the stream
|
||||
Core::Timing::CoreTiming& core_timing; ///< Core timing instance.
|
||||
std::string name; ///< Name of the stream, must be unique
|
||||
#ifndef _WIN32
|
||||
std::chrono::nanoseconds expected_cb_time = {}; ///< Estimated time of next callback
|
||||
#endif
|
||||
};
|
||||
|
||||
using StreamPtr = std::shared_ptr<Stream>;
|
||||
|
||||
@@ -1,68 +0,0 @@
|
||||
// Copyright 2018 yuzu Emulator Project
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
|
||||
#include <algorithm>
|
||||
#include <cmath>
|
||||
#include <cstddef>
|
||||
#include "audio_core/time_stretch.h"
|
||||
#include "common/logging/log.h"
|
||||
|
||||
namespace AudioCore {
|
||||
|
||||
TimeStretcher::TimeStretcher(u32 sample_rate, u32 channel_count) : m_sample_rate{sample_rate} {
|
||||
m_sound_touch.setChannels(channel_count);
|
||||
m_sound_touch.setSampleRate(sample_rate);
|
||||
m_sound_touch.setPitch(1.0);
|
||||
m_sound_touch.setTempo(1.0);
|
||||
}
|
||||
|
||||
void TimeStretcher::Clear() {
|
||||
m_sound_touch.clear();
|
||||
}
|
||||
|
||||
void TimeStretcher::Flush() {
|
||||
m_sound_touch.flush();
|
||||
}
|
||||
|
||||
std::size_t TimeStretcher::Process(const s16* in, std::size_t num_in, s16* out,
|
||||
std::size_t num_out) {
|
||||
const double time_delta = static_cast<double>(num_out) / m_sample_rate; // seconds
|
||||
|
||||
// We were given actual_samples number of samples, and num_samples were requested from us.
|
||||
double current_ratio = static_cast<double>(num_in) / static_cast<double>(num_out);
|
||||
|
||||
const double max_latency = 0.25; // seconds
|
||||
const double max_backlog = m_sample_rate * max_latency;
|
||||
const double backlog_fullness = m_sound_touch.numSamples() / max_backlog;
|
||||
if (backlog_fullness > 4.0) {
|
||||
// Too many samples in backlog: Don't push anymore on
|
||||
num_in = 0;
|
||||
}
|
||||
|
||||
// We ideally want the backlog to be about 50% full.
|
||||
// This gives some headroom both ways to prevent underflow and overflow.
|
||||
// We tweak current_ratio to encourage this.
|
||||
constexpr double tweak_time_scale = 0.05; // seconds
|
||||
const double tweak_correction = (backlog_fullness - 0.5) * (time_delta / tweak_time_scale);
|
||||
current_ratio *= std::pow(1.0 + 2.0 * tweak_correction, tweak_correction < 0 ? 3.0 : 1.0);
|
||||
|
||||
// This low-pass filter smoothes out variance in the calculated stretch ratio.
|
||||
// The time-scale determines how responsive this filter is.
|
||||
constexpr double lpf_time_scale = 0.712; // seconds
|
||||
const double lpf_gain = 1.0 - std::exp(-time_delta / lpf_time_scale);
|
||||
m_stretch_ratio += lpf_gain * (current_ratio - m_stretch_ratio);
|
||||
|
||||
// Place a lower limit of 5% speed. When a game boots up, there will be
|
||||
// many silence samples. These do not need to be timestretched.
|
||||
m_stretch_ratio = std::max(m_stretch_ratio, 0.05);
|
||||
m_sound_touch.setTempo(m_stretch_ratio);
|
||||
|
||||
LOG_TRACE(Audio, "{:5}/{:5} ratio:{:0.6f} backlog:{:0.6f}", num_in, num_out, m_stretch_ratio,
|
||||
backlog_fullness);
|
||||
|
||||
m_sound_touch.putSamples(in, static_cast<u32>(num_in));
|
||||
return m_sound_touch.receiveSamples(out, static_cast<u32>(num_out));
|
||||
}
|
||||
|
||||
} // namespace AudioCore
|
||||
@@ -1,34 +0,0 @@
|
||||
// Copyright 2018 yuzu Emulator Project
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <cstddef>
|
||||
#include <SoundTouch.h>
|
||||
#include "common/common_types.h"
|
||||
|
||||
namespace AudioCore {
|
||||
|
||||
class TimeStretcher {
|
||||
public:
|
||||
TimeStretcher(u32 sample_rate, u32 channel_count);
|
||||
|
||||
/// @param in Input sample buffer
|
||||
/// @param num_in Number of input frames in `in`
|
||||
/// @param out Output sample buffer
|
||||
/// @param num_out Desired number of output frames in `out`
|
||||
/// @returns Actual number of frames written to `out`
|
||||
std::size_t Process(const s16* in, std::size_t num_in, s16* out, std::size_t num_out);
|
||||
|
||||
void Clear();
|
||||
|
||||
void Flush();
|
||||
|
||||
private:
|
||||
u32 m_sample_rate;
|
||||
soundtouch::SoundTouch m_sound_touch;
|
||||
double m_stretch_ratio = 1.0;
|
||||
};
|
||||
|
||||
} // namespace AudioCore
|
||||
@@ -1,6 +1,5 @@
|
||||
// Copyright 2020 yuzu Emulator Project
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
// SPDX-FileCopyrightText: Copyright 2020 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include <algorithm>
|
||||
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
// Copyright 2020 yuzu Emulator Project
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
// SPDX-FileCopyrightText: Copyright 2020 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
|
||||
@@ -22,6 +22,11 @@ add_custom_command(OUTPUT scm_rev.cpp
|
||||
-DTITLE_BAR_FORMAT_RUNNING=${TITLE_BAR_FORMAT_RUNNING}
|
||||
-DBUILD_TAG=${BUILD_TAG}
|
||||
-DBUILD_ID=${DISPLAY_VERSION}
|
||||
-DGIT_REF_SPEC=${GIT_REF_SPEC}
|
||||
-DGIT_REV=${GIT_REV}
|
||||
-DGIT_DESC=${GIT_DESC}
|
||||
-DGIT_BRANCH=${GIT_BRANCH}
|
||||
-DBUILD_FULLNAME=${BUILD_FULLNAME}
|
||||
-DGIT_EXECUTABLE=${GIT_EXECUTABLE}
|
||||
-P ${CMAKE_SOURCE_DIR}/CMakeModules/GenerateSCMRev.cmake
|
||||
DEPENDS
|
||||
@@ -80,6 +85,7 @@ add_library(common STATIC
|
||||
logging/backend.h
|
||||
logging/filter.cpp
|
||||
logging/filter.h
|
||||
logging/formatter.h
|
||||
logging/log.h
|
||||
logging/log_entry.h
|
||||
logging/text_formatter.cpp
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
// Copyright 2019 yuzu emulator team
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
// SPDX-FileCopyrightText: Copyright 2019 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
// Copyright 2021 yuzu Emulator Project
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
// SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include "common/assert.h"
|
||||
#include "common/common_funcs.h"
|
||||
|
||||
+3
-3
@@ -1,6 +1,6 @@
|
||||
// Copyright 2013 Dolphin Emulator Project / 2014 Citra Emulator Project
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
// SPDX-FileCopyrightText: 2013 Dolphin Emulator Project
|
||||
// SPDX-FileCopyrightText: 2014 Citra Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
|
||||
+94
-6
@@ -1,16 +1,14 @@
|
||||
// Copyright 2020 yuzu Emulator Project
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
// SPDX-FileCopyrightText: Copyright 2020 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <cstring>
|
||||
#include <memory>
|
||||
|
||||
#include "common/common_types.h"
|
||||
|
||||
#if _MSC_VER
|
||||
#include <intrin.h>
|
||||
#else
|
||||
#include <cstring>
|
||||
#endif
|
||||
|
||||
namespace Common {
|
||||
@@ -47,6 +45,50 @@ namespace Common {
|
||||
reinterpret_cast<__int64*>(expected.data())) != 0;
|
||||
}
|
||||
|
||||
[[nodiscard]] inline bool AtomicCompareAndSwap(volatile u8* pointer, u8 value, u8 expected,
|
||||
u8& actual) {
|
||||
actual =
|
||||
_InterlockedCompareExchange8(reinterpret_cast<volatile char*>(pointer), value, expected);
|
||||
return actual == expected;
|
||||
}
|
||||
|
||||
[[nodiscard]] inline bool AtomicCompareAndSwap(volatile u16* pointer, u16 value, u16 expected,
|
||||
u16& actual) {
|
||||
actual =
|
||||
_InterlockedCompareExchange16(reinterpret_cast<volatile short*>(pointer), value, expected);
|
||||
return actual == expected;
|
||||
}
|
||||
|
||||
[[nodiscard]] inline bool AtomicCompareAndSwap(volatile u32* pointer, u32 value, u32 expected,
|
||||
u32& actual) {
|
||||
actual =
|
||||
_InterlockedCompareExchange(reinterpret_cast<volatile long*>(pointer), value, expected);
|
||||
return actual == expected;
|
||||
}
|
||||
|
||||
[[nodiscard]] inline bool AtomicCompareAndSwap(volatile u64* pointer, u64 value, u64 expected,
|
||||
u64& actual) {
|
||||
actual = _InterlockedCompareExchange64(reinterpret_cast<volatile __int64*>(pointer), value,
|
||||
expected);
|
||||
return actual == expected;
|
||||
}
|
||||
|
||||
[[nodiscard]] inline bool AtomicCompareAndSwap(volatile u64* pointer, u128 value, u128 expected,
|
||||
u128& actual) {
|
||||
const bool result =
|
||||
_InterlockedCompareExchange128(reinterpret_cast<volatile __int64*>(pointer), value[1],
|
||||
value[0], reinterpret_cast<__int64*>(expected.data())) != 0;
|
||||
actual = expected;
|
||||
return result;
|
||||
}
|
||||
|
||||
[[nodiscard]] inline u128 AtomicLoad128(volatile u64* pointer) {
|
||||
u128 result{};
|
||||
_InterlockedCompareExchange128(reinterpret_cast<volatile __int64*>(pointer), result[1],
|
||||
result[0], reinterpret_cast<__int64*>(result.data()));
|
||||
return result;
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
[[nodiscard]] inline bool AtomicCompareAndSwap(volatile u8* pointer, u8 value, u8 expected) {
|
||||
@@ -73,6 +115,52 @@ namespace Common {
|
||||
return __sync_bool_compare_and_swap((unsigned __int128*)pointer, expected_a, value_a);
|
||||
}
|
||||
|
||||
[[nodiscard]] inline bool AtomicCompareAndSwap(volatile u8* pointer, u8 value, u8 expected,
|
||||
u8& actual) {
|
||||
actual = __sync_val_compare_and_swap(pointer, expected, value);
|
||||
return actual == expected;
|
||||
}
|
||||
|
||||
[[nodiscard]] inline bool AtomicCompareAndSwap(volatile u16* pointer, u16 value, u16 expected,
|
||||
u16& actual) {
|
||||
actual = __sync_val_compare_and_swap(pointer, expected, value);
|
||||
return actual == expected;
|
||||
}
|
||||
|
||||
[[nodiscard]] inline bool AtomicCompareAndSwap(volatile u32* pointer, u32 value, u32 expected,
|
||||
u32& actual) {
|
||||
actual = __sync_val_compare_and_swap(pointer, expected, value);
|
||||
return actual == expected;
|
||||
}
|
||||
|
||||
[[nodiscard]] inline bool AtomicCompareAndSwap(volatile u64* pointer, u64 value, u64 expected,
|
||||
u64& actual) {
|
||||
actual = __sync_val_compare_and_swap(pointer, expected, value);
|
||||
return actual == expected;
|
||||
}
|
||||
|
||||
[[nodiscard]] inline bool AtomicCompareAndSwap(volatile u64* pointer, u128 value, u128 expected,
|
||||
u128& actual) {
|
||||
unsigned __int128 value_a;
|
||||
unsigned __int128 expected_a;
|
||||
unsigned __int128 actual_a;
|
||||
std::memcpy(&value_a, value.data(), sizeof(u128));
|
||||
std::memcpy(&expected_a, expected.data(), sizeof(u128));
|
||||
actual_a = __sync_val_compare_and_swap((unsigned __int128*)pointer, expected_a, value_a);
|
||||
std::memcpy(actual.data(), &actual_a, sizeof(u128));
|
||||
return actual_a == expected_a;
|
||||
}
|
||||
|
||||
[[nodiscard]] inline u128 AtomicLoad128(volatile u64* pointer) {
|
||||
unsigned __int128 zeros_a = 0;
|
||||
unsigned __int128 result_a =
|
||||
__sync_val_compare_and_swap((unsigned __int128*)pointer, zeros_a, zeros_a);
|
||||
|
||||
u128 result;
|
||||
std::memcpy(result.data(), &result_a, sizeof(u128));
|
||||
return result;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
} // namespace Common
|
||||
@@ -1,6 +1,5 @@
|
||||
// Copyright 2020 yuzu emulator team
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
// SPDX-FileCopyrightText: Copyright 2020 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
|
||||
+3
-30
@@ -1,39 +1,12 @@
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
|
||||
// Copyright 2014 Tony Wasserka
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are met:
|
||||
//
|
||||
// * Redistributions of source code must retain the above copyright
|
||||
// notice, this list of conditions and the following disclaimer.
|
||||
// * Redistributions in binary form must reproduce the above copyright
|
||||
// notice, this list of conditions and the following disclaimer in the
|
||||
// documentation and/or other materials provided with the distribution.
|
||||
// * Neither the name of the owner nor the names of its contributors may
|
||||
// be used to endorse or promote products derived from this software
|
||||
// without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
// SPDX-FileCopyrightText: 2014 Tony Wasserka
|
||||
// SPDX-FileCopyrightText: 2014 Dolphin Emulator Project
|
||||
// SPDX-License-Identifier: BSD-3-Clause AND GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <cstddef>
|
||||
#include <limits>
|
||||
#include <type_traits>
|
||||
#include "common/common_funcs.h"
|
||||
#include "common/swap.h"
|
||||
|
||||
/*
|
||||
|
||||
+2
-15
@@ -1,18 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2018-2020 Atmosphère-NX
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms and conditions of the GNU General Public License,
|
||||
* version 2, as published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
* more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
// SPDX-FileCopyrightText: Copyright 2020 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
|
||||
+15
-3
@@ -1,6 +1,5 @@
|
||||
// Copyright 2018 yuzu emulator team
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
@@ -45,10 +44,23 @@ template <typename T>
|
||||
return static_cast<u32>(log2_f + static_cast<u64>((value ^ (1ULL << log2_f)) != 0ULL));
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
requires std::is_unsigned_v<T>
|
||||
[[nodiscard]] constexpr bool IsPow2(T value) {
|
||||
return std::has_single_bit(value);
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
requires std::is_integral_v<T>
|
||||
[[nodiscard]] T NextPow2(T value) {
|
||||
return static_cast<T>(1ULL << ((8U * sizeof(T)) - std::countl_zero(value - 1U)));
|
||||
}
|
||||
|
||||
template <size_t bit_index, typename T>
|
||||
requires std::is_integral_v<T>
|
||||
[[nodiscard]] constexpr bool Bit(const T value) {
|
||||
static_assert(bit_index < BitSize<T>(), "bit_index must be smaller than size of T");
|
||||
return ((value >> bit_index) & T(1)) == T(1);
|
||||
}
|
||||
|
||||
} // namespace Common
|
||||
+5
-20
@@ -1,23 +1,8 @@
|
||||
// Copyright (c) 2011 Google, Inc.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to deal
|
||||
// in the Software without restriction, including without limitation the rights
|
||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
// copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in
|
||||
// all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
// THE SOFTWARE.
|
||||
//
|
||||
// SPDX-FileCopyrightText: 2011 Google, Inc.
|
||||
// SPDX-FileContributor: Geoff Pike
|
||||
// SPDX-FileContributor: Jyrki Alakuijala
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
// CityHash, by Geoff Pike and Jyrki Alakuijala
|
||||
//
|
||||
// This file provides CityHash64() and related functions.
|
||||
|
||||
+5
-20
@@ -1,23 +1,8 @@
|
||||
// Copyright (c) 2011 Google, Inc.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to deal
|
||||
// in the Software without restriction, including without limitation the rights
|
||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
// copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in
|
||||
// all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
// THE SOFTWARE.
|
||||
//
|
||||
// SPDX-FileCopyrightText: 2011 Google, Inc.
|
||||
// SPDX-FileContributor: Geoff Pike
|
||||
// SPDX-FileContributor: Jyrki Alakuijala
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
// CityHash, by Geoff Pike and Jyrki Alakuijala
|
||||
//
|
||||
// http://code.google.com/p/cityhash/
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
// Copyright 2019 yuzu emulator team
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
// SPDX-FileCopyrightText: Copyright 2019 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
|
||||
Loaded 100 of 1522 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user