From f0fac0c7fb6f7dd9fe81747b3369767c8c9e7d01 Mon Sep 17 00:00:00 2001 From: Morph <39850852+Morph1984@users.noreply.github.com> Date: Wed, 22 Jul 2020 10:39:53 -0400 Subject: [PATCH] =?UTF-8?q?Project=20Mj=C3=B6lnir:=20Part=201?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: James Rowe <jroweboy@gmail.com> Co-authored-by: Its-Rei <kupfel@gmail.com> --- dist/icons/controller/controller.qrc | 25 + dist/icons/controller/dual_joycon.png | Bin 0 -> 36466 bytes dist/icons/controller/dual_joycon_dark.png | Bin 0 -> 36261 bytes .../icons/controller/dual_joycon_midnight.png | Bin 0 -> 34667 bytes dist/icons/controller/handheld.png | Bin 0 -> 14108 bytes dist/icons/controller/handheld_dark.png | Bin 0 -> 13731 bytes dist/icons/controller/handheld_midnight.png | Bin 0 -> 13366 bytes dist/icons/controller/pro_controller.png | Bin 0 -> 36710 bytes dist/icons/controller/pro_controller_dark.png | Bin 0 -> 34897 bytes .../controller/pro_controller_midnight.png | Bin 0 -> 35893 bytes dist/icons/controller/single_joycon_left.png | Bin 0 -> 25565 bytes .../controller/single_joycon_left_dark.png | Bin 0 -> 25682 bytes .../single_joycon_left_midnight.png | Bin 0 -> 24405 bytes .../single_joycon_left_vertical.png | Bin 0 -> 24764 bytes .../single_joycon_left_vertical_dark.png | Bin 0 -> 24938 bytes .../single_joycon_left_vertical_midnight.png | Bin 0 -> 23681 bytes dist/icons/controller/single_joycon_right.png | Bin 0 -> 28320 bytes .../controller/single_joycon_right_dark.png | Bin 0 -> 28157 bytes .../single_joycon_right_midnight.png | Bin 0 -> 27006 bytes .../single_joycon_right_vertical.png | Bin 0 -> 27655 bytes .../single_joycon_right_vertical_dark.png | Bin 0 -> 27729 bytes .../single_joycon_right_vertical_midnight.png | Bin 0 -> 26354 bytes dist/license.md | 3 + .../colorful_dark/icons/16x16/refresh.png | Bin 0 -> 362 bytes .../icons/16x16/view-refresh.png | Bin 0 -> 362 bytes dist/qt_themes/colorful_dark/style.qrc | 1 + .../icons/16x16/refresh.png | Bin 0 -> 362 bytes .../icons/16x16/view-refresh.png | Bin 0 -> 362 bytes .../colorful_midnight_blue/style.qrc | 1 + dist/qt_themes/default/default.qrc | 1 + .../qt_themes/default/icons/16x16/refresh.png | Bin 0 -> 349 bytes .../default/icons/16x16/view-refresh.png | Bin 0 -> 349 bytes dist/qt_themes/default/style.qss | 62 +- .../qdarkstyle/icons/16x16/refresh.png | Bin 0 -> 362 bytes .../qdarkstyle/icons/16x16/view-refresh.png | Bin 0 -> 362 bytes dist/qt_themes/qdarkstyle/style.qrc | 1 + dist/qt_themes/qdarkstyle/style.qss | 105 +- .../icons/16x16/refresh.png | Bin 0 -> 362 bytes .../icons/16x16/view-refresh.png | Bin 0 -> 362 bytes .../qdarkstyle_midnight_blue/style.qrc | 1 + .../qdarkstyle_midnight_blue/style.qss | 140 +- src/common/param_package.h | 2 +- src/core/hle/service/hid/controllers/npad.cpp | 213 +- src/core/hle/service/hid/controllers/npad.h | 11 +- src/core/hle/service/hid/hid.cpp | 14 +- src/core/settings.cpp | 50 - src/core/settings.h | 339 +- src/input_common/CMakeLists.txt | 2 + src/input_common/gcadapter/gc_poller.cpp | 2 +- src/input_common/main.cpp | 50 +- src/input_common/main.h | 26 +- src/input_common/sdl/sdl.h | 19 +- src/input_common/sdl/sdl_impl.cpp | 403 +- src/input_common/sdl/sdl_impl.h | 8 + src/input_common/settings.cpp | 33 + src/input_common/settings.h | 335 ++ src/input_common/udp/udp.cpp | 15 +- src/input_common/udp/udp.h | 7 + src/yuzu/CMakeLists.txt | 9 +- src/yuzu/configuration/config.cpp | 58 +- src/yuzu/configuration/config.h | 5 +- src/yuzu/configuration/configure.ui | 59 +- .../configure_debug_controller.cpp | 39 + .../configure_debug_controller.h | 33 + .../configure_debug_controller.ui | 97 + src/yuzu/configuration/configure_dialog.cpp | 8 +- src/yuzu/configuration/configure_input.cpp | 265 +- src/yuzu/configuration/configure_input.h | 22 +- src/yuzu/configuration/configure_input.ui | 1039 ++--- .../configure_input_advanced.cpp | 169 + .../configuration/configure_input_advanced.h | 44 + .../configuration/configure_input_advanced.ui | 2688 +++++++++++ .../configuration/configure_input_player.cpp | 733 +-- .../configuration/configure_input_player.h | 106 +- .../configuration/configure_input_player.ui | 4019 ++++++++++++----- .../configuration/configure_input_simple.cpp | 152 - .../configuration/configure_input_simple.h | 43 - .../configuration/configure_input_simple.ui | 97 - .../configure_mouse_advanced.cpp | 8 +- .../configuration/configure_mouse_advanced.ui | 252 +- src/yuzu/uisettings.cpp | 1 + src/yuzu/uisettings.h | 5 +- src/yuzu_cmd/config.cpp | 2 + src/yuzu_tester/config.cpp | 1 + 84 files changed, 8629 insertions(+), 3194 deletions(-) create mode 100644 dist/icons/controller/controller.qrc create mode 100644 dist/icons/controller/dual_joycon.png create mode 100644 dist/icons/controller/dual_joycon_dark.png create mode 100644 dist/icons/controller/dual_joycon_midnight.png create mode 100644 dist/icons/controller/handheld.png create mode 100644 dist/icons/controller/handheld_dark.png create mode 100644 dist/icons/controller/handheld_midnight.png create mode 100644 dist/icons/controller/pro_controller.png create mode 100644 dist/icons/controller/pro_controller_dark.png create mode 100644 dist/icons/controller/pro_controller_midnight.png create mode 100644 dist/icons/controller/single_joycon_left.png create mode 100644 dist/icons/controller/single_joycon_left_dark.png create mode 100644 dist/icons/controller/single_joycon_left_midnight.png create mode 100644 dist/icons/controller/single_joycon_left_vertical.png create mode 100644 dist/icons/controller/single_joycon_left_vertical_dark.png create mode 100644 dist/icons/controller/single_joycon_left_vertical_midnight.png create mode 100644 dist/icons/controller/single_joycon_right.png create mode 100644 dist/icons/controller/single_joycon_right_dark.png create mode 100644 dist/icons/controller/single_joycon_right_midnight.png create mode 100644 dist/icons/controller/single_joycon_right_vertical.png create mode 100644 dist/icons/controller/single_joycon_right_vertical_dark.png create mode 100644 dist/icons/controller/single_joycon_right_vertical_midnight.png create mode 100644 dist/qt_themes/colorful_dark/icons/16x16/refresh.png create mode 100644 dist/qt_themes/colorful_dark/icons/16x16/view-refresh.png create mode 100644 dist/qt_themes/colorful_midnight_blue/icons/16x16/refresh.png create mode 100644 dist/qt_themes/colorful_midnight_blue/icons/16x16/view-refresh.png create mode 100644 dist/qt_themes/default/icons/16x16/refresh.png create mode 100644 dist/qt_themes/default/icons/16x16/view-refresh.png create mode 100644 dist/qt_themes/qdarkstyle/icons/16x16/refresh.png create mode 100644 dist/qt_themes/qdarkstyle/icons/16x16/view-refresh.png create mode 100644 dist/qt_themes/qdarkstyle_midnight_blue/icons/16x16/refresh.png create mode 100644 dist/qt_themes/qdarkstyle_midnight_blue/icons/16x16/view-refresh.png create mode 100644 src/input_common/settings.cpp create mode 100644 src/input_common/settings.h create mode 100644 src/yuzu/configuration/configure_debug_controller.cpp create mode 100644 src/yuzu/configuration/configure_debug_controller.h create mode 100644 src/yuzu/configuration/configure_debug_controller.ui create mode 100644 src/yuzu/configuration/configure_input_advanced.cpp create mode 100644 src/yuzu/configuration/configure_input_advanced.h create mode 100644 src/yuzu/configuration/configure_input_advanced.ui delete mode 100644 src/yuzu/configuration/configure_input_simple.cpp delete mode 100644 src/yuzu/configuration/configure_input_simple.h delete mode 100644 src/yuzu/configuration/configure_input_simple.ui diff --git a/dist/icons/controller/controller.qrc b/dist/icons/controller/controller.qrc new file mode 100644 index 0000000000..f44725d8ff --- /dev/null +++ b/dist/icons/controller/controller.qrc @@ -0,0 +1,25 @@ +<RCC> + <qresource prefix="controller"> + <file alias="dual_joycon">dual_joycon.png</file> + <file alias="dual_joycon_dark">dual_joycon_dark.png</file> + <file alias="dual_joycon_midnight">dual_joycon_midnight.png</file> + <file alias="handheld">handheld.png</file> + <file alias="handheld_dark">handheld_dark.png</file> + <file alias="handheld_midnight">handheld_midnight.png</file> + <file alias="pro_controller">pro_controller.png</file> + <file alias="pro_controller_dark">pro_controller_dark.png</file> + <file alias="pro_controller_midnight">pro_controller_midnight.png</file> + <file alias="single_joycon_left">single_joycon_left.png</file> + <file alias="single_joycon_left_dark">single_joycon_left_dark.png</file> + <file alias="single_joycon_left_midnight">single_joycon_left_midnight.png</file> + <file alias="single_joycon_right">single_joycon_right.png</file> + <file alias="single_joycon_right_dark">single_joycon_right_dark.png</file> + <file alias="single_joycon_right_midnight">single_joycon_right_midnight.png</file> + <file alias="single_joycon_left_vertical">single_joycon_left_vertical.png</file> + <file alias="single_joycon_left_vertical_dark">single_joycon_left_vertical_dark.png</file> + <file alias="single_joycon_left_vertical_midnight">single_joycon_left_vertical_midnight.png</file> + <file alias="single_joycon_right_vertical">single_joycon_right_vertical.png</file> + <file alias="single_joycon_right_vertical_dark">single_joycon_right_vertical_dark.png</file> + <file alias="single_joycon_right_vertical_midnight">single_joycon_right_vertical_midnight.png</file> + </qresource> +</RCC> diff --git a/dist/icons/controller/dual_joycon.png b/dist/icons/controller/dual_joycon.png new file mode 100644 index 0000000000000000000000000000000000000000..4230f5f7b9835e941084fac316f62000ac105c4d GIT binary patch literal 36466 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 literal 0 HcmV?d00001 diff --git a/dist/icons/controller/dual_joycon_dark.png b/dist/icons/controller/dual_joycon_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..4445db489551a5e498cd71d2004a4ac57c31083f GIT binary patch literal 36261 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%0Av~VzQ>%W}{zc!0ECxf#9<Z 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�My+;B6hv<4uGZb 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 literal 0 HcmV?d00001 diff --git a/dist/icons/controller/dual_joycon_midnight.png b/dist/icons/controller/dual_joycon_midnight.png new file mode 100644 index 0000000000000000000000000000000000000000..aac8e53211d9b8b4806f263a01a8b037de3f78cb GIT binary patch literal 34667 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 literal 0 HcmV?d00001 diff --git a/dist/icons/controller/handheld.png b/dist/icons/controller/handheld.png new file mode 100644 index 0000000000000000000000000000000000000000..d009b4a47a2b5695704bf2076c56c6cfe123a2f7 GIT binary patch literal 14108 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 ZS+17S*ce%!3O>mOc_XbXRVHZ|^nXRT6_o%0 literal 0 HcmV?d00001 diff --git a/dist/icons/controller/handheld_dark.png b/dist/icons/controller/handheld_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..c80ca9259b1daa21c01fa430d16503bb2d3483ea GIT binary patch literal 13731 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 Qzfc8{l~j}{g6sSK4+#hqv;Y7A literal 0 HcmV?d00001 diff --git a/dist/icons/controller/handheld_midnight.png b/dist/icons/controller/handheld_midnight.png new file mode 100644 index 0000000000000000000000000000000000000000..19de4629bc6b26401cb712e5cc252a248108628a GIT binary patch literal 13366 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�ptQSt~lcSIr+&!F`ZMzA@q7%^57 zuO${{c6Gkj*ZhIJ4s9|O=~hS%$S&4)01G^XY_`~d$@3+<fp|loAaC=NT_`?$5dzG| zg4nYxRci*qj(i9_e<%&qfb=x-{`>3&uv&|~4XOfbcZQUdtdEuwNz^*iNd856svqr* z)0BMXV4%Rxvk8{#GQH*32Y15qOB|d;wueHmVK!s?BQy-*MJ2oxkyYly|F(=b41tlG zPS`4{%zPCv`Aic0=#ueccs_(|6p4K=)6iEF=OPwXmOaxLsRo7;b5?$W5K*v2e17jW zc)B%?H+cPz2YePdq(j$w-pXcS-Z}>Y8E97r?%~j8;5&{f0VaroO&X_g1`<-j>vJM$ z)~osRlDyU~sE{P4q-3JmT`(-)<wvF28ot~9Ar`V?<GRt9pi+DyX-Nz<S15qR@e!+N z(=to?7QJ+(hO2OhpPjoF$5I<{oVN3*C#Pm5@~~!yH=O>K)4?3fDZc}OvW4t2W5bm- z$BN^xqY~lT%OoqByA0xF$#%5Ln%NyDG$U^+pY|+_2s29<UU$y`7f+zrP50LUSlmX( zwmkk6TeR_F=xrw{NMd8RJT!o*<`VZkuR@Pk)HpE>USB_Z@ey{<-R5Ptd$2!wk?+d8 z+8r@qjViWaiolRPxI4&)aqjq9`uEMRGohqkI|`1HBL7HYO9HPY20KV1IL$#XIzvK0 z>{=Mb<qnjEqzFecpXQSWf(XwhUMP|aqM;jFn!dmy?uBcF+Kc2@7xP)Ri?AeX?qF<k z_>r$G)#{19$1wDjKCB&<l7*j?nG#1OPh^4p%K}o%^Pnxfu+JaRWY5m1;C@X@kn&|A zvsL9W06NKP_~o_JM%;LwooN9Hv_6GG5D!$e5JYh%Pvo+$2ocsg>wZ6G+%c>}>QqG8 z{X$mPyF4WQNH3UQT#T=rkQ42!LIC=_Ej_Ng*5uZ<rU+vW<wqysAj3eG%y2QYv$+x# z<1l_#UN!rZ+Q&@a`qKpCfR&)9So5^Pg_#KD{CZuf<i&;?ICR%U;%`|ztBJ+bz52(` z)2+YE1~JJPA3eM$a7hM&RlR+CwRd_;s_`nt^`RtDwvflxSpF2I(jC`6Gc)e9ImB(U zu%7F=uI{?uj;IG_M&NzrV7IukgIntVMyI^C)$flY_xA)ZXazDP^%PG91zWWjrFvb> z*CkkgdMlOvr|fB866-(0gDoh`3w2LW&O0}a!1_}#cStA7nn?Ke!}iavy)nf%<~dDO zkw;r57RdRX5x`bB1WNaa3G2p72ZF&0$Gm=?TgDizJAX4H695Bh$4EP2YQ9m{aZiQg zkr<UCdpM?mLDmL8l6>2!RHP??Ay!+S2udB_GsQay(@@}`n)&D@NtmI*R8b+plN8j_ zC@<;}U6bst`zpWq(R)UU6XVrGfAk6YL-Ieuk82UbWIrXi9sseZbNWTIBh`H`wCEc+ zO1_GprpTUymZW{hYw=suUgz(AEMH(H1egB1o6FUh!Ck%DK;9Ghv}mFK()Rf)D`e;5 zhzLJTz6)3;kyKOm1T?~vQ0}_zx!dv2SNaZPCFF_$xT?Kv;m{Y#Ow{1p;Ih4$7-5%5 znAl62xTaR);>6_L{jEqE2-Gl~7JqZOJ=VT{bT0sKU_C=MzN3%cacnk*b_2mbTf}0X z9jacoZHk5k9XWq^f)LgzT*^2L4fKCwKA+n+@JCtir9D%*p>XNwzFf--=SI=MC#%;7 zihVU?1LCv>p}jlL9ULA3B4}ZNkr6TZgZ1j92e<8=_U6ivjmoK|f(VayblEHbO@KS5 zXNK8)dx(+#`l*VcHSd;@Ba&jg5WZxM<xtx=x$h`~=uBuK+7JJlhn!z)S-t*~RrJYs zbgNF=<oLfA)%I#nioV20QW=rr*3Sr>T?c*nQq;x<4pC1N?q;A>RCH5&bfv1QLc-Ne z7~?b@X|L~dbz|T<Ihp~1Gcuu32VXPh<i=p1zD=bqYb&LQ2?JFWENsopmrtY?B6y6d z=LlTV&+c!I#(o`0f1G5YMMtNRVr5rCQa5eVxEQ0`xIvu3rILa_AU=cej(F0MfR)2| zN(JoIIyx-U!28M_c2;-55uIA&BbO_JdDk*2xIxGcstHuQ=IhGtMvduD_K*IN##Z^R znZ_|PwqC#AbZ*t}VaWBfqmV$oC7*@8c`zxyw(r-X^75rp>KAUXFmW69m_xjQI3?@- z&3jGObZaOzv1QNugL-GJ+Y6FJ;Hp}FWYvYI`ERbzR7;<*Nrausnuc{MCt`c&g9v}t zAozO3pNKfWbCf!6T&(}xcea{JiA`7xr;1Th+cHR#h6}yl-OK-_=9K;ADgcW<OwvGi zJxv_!?i%LYd@2kF+mA6rlTx!NS4w`cYtM%4OhDl5tyN&ZNm_Ho^km<Mk`+SZ{(%s{ zVtm!?*l)i+nCn${6*=VKGQeG<wo=8l<VOX}yJqW8dIN^X?+o%HOZc8?V$;t~4rG$j zACwb_AN94@I(0<J^2k{}d4`L)_hoLvtl53bs-2N8>Ppw;db$q|(<KByZ;xmIkz<lP zW$QYTCQ3Hb0#AFf^HGzKk}kS63;~O29K#qTP@9x_^nd^{8)0QNNUu-@-x}@<rI#C$ zDkdK+ZUxIvtyAg$^kV^RGzJ^9#r38BHLufbjksZ*Q^JNdLDP#-xEOWl{95^NiZ5Wt z$B#Gv67;^z3DrZ)_)IL|fbp;FhRYrrXGQ`b0uRJL-4$Xwi)9=nZw=>*jr$UkmqG+Z zjtw34+gCa9p_T&18#Q<Zh(GJTTLog`Y~JjaIFC)1c-qVS<GrGn#pj#<GCwhHAR!|v zwT`pYuX<)f>FzV-+cTQ_ZnZcLR67$zQgv@1sUD-us~)|V14F-1spi255gCz*=@m#0 zG{|-#J3}A`Qm77P{oqTlM9xHes?Qq=fva#n1;`4lHki$6s+tJkCGxzqk@I`<^SQGy zhxIlly?}ITFcc{a$7!W})f3<I-nD><pOCSi8z3=!cLO2ENFD%n6!Zt27^uip%C!J2 z_5V3EGZcY@gO^w7*-M!0sP|u;djT=ig;2qLNF2G}A3HwL=r7B_z!f7eO2#Fs+Hn+P zDHNb}TmQF=2YAKXrCd3{_9NF!{qR5wBgWNFc4JGR)Z+)cz33|UTWG-X;w8Ju4_!{+ z4eg@C2qi6<Lk3%p2pO<iy5$|L>|`Mvd_bL%kR$cZTh@?qQ0wm0zt?joMWFTYK(vbA z_8Tj&CWtJxbm@#vw>!_@861#B0VSqHyA}gr-++D>!e`obtE0x52{;~w*{Rs~!@OkK zj~A4U-Md<*hgdf`2=%bL-`}d+ZJTKt#nMp&)8<ECQ&a6e|J-Rh5Y*s%o@8}Dg{vLq ztX~xIewmAmWr#?g=t%KWq<o1{eTG^^55a0>fXg@U+|7`CKEk;^`dzYTUWmH%uX8L5 zwgzd*GuXq&e3xf6Zio9fJb6nK{ZEsuh^aFmDr&fRTGV76dxtpiwkoHx`9{+FS#<?K z)5ynsRR;)}Cjvs<<)rEuau>aWe^{kNg;rB(5XdZO8K?f2Gua?RIAZ;P1h`(t@^PlR zCHlc@7M?+y4(y5Ct7m{uM7zHhJY5YD>Px}b7+r8}a24XCZ_T=WBxCS%^_TcDFM{}s z>VKdj>z*Kt4xOfqFwcoUz%*uL9Syg=EhOzy-qTjP05LgC1z-3>Kzhd)>WvYAQdY(G zI!{NsFi)V!zXqi6GMSy!OY66|@~yVs2slkwV9u8QMx<rah74ju?G2Kw?>Aa3ELH}7 z{dGvdOtw4y)N~PuxPrssk+g{)x3HN^Qr<ef0oV&9rv>2odR^I(;b9%{{hI4x69MnC zs3;-AKZT2D8}2@q?Qp5{wr#(6f)(GZiZs>2tqsmT6Y-!?0P#Vv$%y6t&+ArO?mf41 znxoLwwe0UivC!VT_qn(pe13l3*FT_ycuDck?Jy}THGI3wX?bm}puV1gAR?lghaz(1 zYjPlwZ0{zy(dOeGAi$F4i9W0Mdclr(OE!bPJCQb4VEHI#jVxZ=5e(f(`=y*){>YM& z>SK45a{(}dVt02R`cFjuR$781Lu2SwvlJ~I-RI(Bh9Y|$-au+?9dfqdM#grndefyi zM_h}z#f@Ipwvah#su<)aWlx~yM58P|aFfYLSsR{hcAn<HO+*}!0jz^DK5a`RgCZJT zSU{G5{Z#ygK~XUx8d>Unn5gubmzQ5owF)2g>Vk_y6=+{#u`8vU4+ae5L&f0cKtrV3 zaUQz7OfQ#g?Xf#_ua0~(5$H+jI?1Knxhl&J7S5_5^h;*hK*B}~js{gw_{CAz`l9?N z`^{(0U})84o5i+_4}ODhp|i)v1O+GIsq#A;4aZY^z-P4+L#rIF(@6?*fYPWVA9iH- z$EGARGSs{ZKcy>~mN)0imq#S1-I;fnwlf5Z71J=E`1wF6ACutE8-b2RUQmcT1y1N8 zy`aVT#bbt%R!Y`J+o@-vKLC}a9H^M%X#f4rz~|uDo9f}ErRx9=PIl{u2w)y8&prix zkmO@|GCsh8oUsCw1s`3#sHfhlKaC>qgi(<YI(oLK@RB8BNYS<Id`}oGwde@)^2CO> zG1MRs&DXoV0J>|rd5oSGCVjtp-rii0a8R)TWMfpAHx^e{JHLdnnU(T{<%U_X`NFGw zjoH@pcgNec*4SbTJ-a)@{?MM4(u+k5NpI%=b?N;xU<Dy&zPb|o;^w$cCa)|^U4AUB z3yMa<qt}Ng98r)7?|nNH`SKuKS7h6~X)t9CSH=KIF&Q9N<ZDmV^OPLaz@hYJ!9=nA z@+~Dnf77@bgcUo#xqsAevNwvKW=AF|q~~OrS*(^+WDUjJrLDb=s$i<(=R1*HW1jT& z^=#zU3dgUx-PgwNTvSU{UZdE71?-1R?8SaIKlt_ISrB}}eILxxh@;pr(o-wh+qre1 zBb6-F7aOLSXWeD(`2di*_st!+a-c~2HW;~BN2s&7XJe6bMg?6%fCe-q>~o4lui*}U z&1Ku7<IB^_0D#ab!){MymFosrEGyMh@L>x8Wn(1x?tcq4Zn3kv$e}q{y^?*ScacN) zs~w$!-%F*_o&j-tMMbgj>8R-KbOw#`>`z|OMUeUHiih~jUlFRr#m{m3`}sg?ul3+_ z;z49{0SA;H(qtM&;y+mlKwGPdmD+&-)>EO*Ah?o|I$ZAjaNCrZZ`maBdMe51|4va# zHvRwzz@Wf)kAC54cV>M+VuDHPQ!XBYO=ia*1tU6zaPQ$F=cfJ1sd(MLdQ^}?Pa_Ap zS9H;jo;bUzLeQA9-bpvjXSigUhUfakz^o|!`7ecUhDg_-VyN7VDfY8mN@c*XH*@IN zd+z_8^pPKymn4eKYGKcR2k$%%Sdo<NL7DjT<?`cyZVW}08;<dQ5MY@yd0J#)bWg^x z1~*aWP&%O2%6Ge3T@LV*we|+zMZi$5<m2@z;<A}PdgH=A&AD66*mu4&to37jX);_r zo7M+jKQN(WY-4O_y~-#KKJ%4WzZ`UPh;8sW5f{N#HO8Y;E(%o+*}rt4{p}o1WZpfc zp+!sATo!+O-o2--6R=~RXz^ivEdTM<inl0$N0cgnE~3l!2uDn|dmn%y)AJi@83noU zL5jMciXF<7Ro(}-?@bpt=2(`W(5Q^Q=dQQx(pqm!_(fu5^0R*$kf@pit%m=0#>boO zNdPkf?i{jAbV++aiLNovy0<zf{iDYjkaiBsIE$_!oND_zvXH?oMfN0}4WGkfmw{of zhxbh@dGwNoVdO_!v*jZs?9X%yl0S-%au+CLUPf>FMTmEUK-w3}`CEj!*^;Er4ikZ% zlh;po;dL)}@|F4Cb`FsP(kdwHL1|cLXIlC{Gx+C&RK?Ldw@H3}#q`Bvzoe8*T!RWz z>cwnM@dpHmL_XA22NebXXh+M2_h0qwXOFBq7&<Ym4U}2l+wHyR*HC5(dF|zqgXrSW zikvBI=*L%;-=aJ}A{YQPM9?XmynI?<eON@-*cmcHdHvhcz1sB>!EgMNF<Aw_hW|Ne zsDQB16Oq{9ty$=&51`g`47Mk(-(J7jjfHC$mjQ4*<_qQv;D|7w|EgON?(Q$Oe}28+ zXzbE3TaD4^l$$DEv@@i{TbFz6U?J24bC_Vi!^H*-z5sX%E9tYFY`)*j>Rq_k&&S&p z){U;d9RhF)Ne>8J165_-py_>cwNt07!WAbJ$11~65Jg$x#e{^oJ^d(VL;Etfzbl!B zCqJD$#4(e^ARUT+(kvtRq7!MKS;az>eNdC4Nn&N{*Bp@XS_d<XvL^kVD^Wf7rtH<j z9)Q#hf41NB929rG;5YR-HUn%Zg-^x<62*s)sZl=NhTBuY;Q5<>1zPVNJHNgBpCSF+ zcKM}F|7G1-_>z)PAwtz9z)VBnZNeJ*33#tCKpoAc8peU9!^B6A_!&M_#R<5MX}}y^ zj42wQ;yvW$?;)+cA&upbAFU-ZdV*W{&PX^TlGH%lXJ?+R`zbBppFFG#dQMwU?rQib z6=9N2Vawi$73o0}0ocHzYsT(JQyJe6MKRH=&j%4X``EWZ1c;2%AZ#h7)MN!{5w<;` zF!*`%Mpk3kWxr1d0FDM0g?Ig*O$JLJ7d;7}dX4dxF^o0m#SeL|{a(L@_jcSEj57+u z;r_%+!kU?r(0=XL`v6t{0D`WmT5F^7X(`+io)MsrB;Pe#%ns{#vn}g^Zw^|c{`+=P z_0Cj38ZI@Wzd9nCZ~G~qXSp>HD7JqNaA5ZSC&mbRfI00<RPi&-HhFaQLGgsX1n)^? zJa5RYe~`4@95%7~00fCq5_12=b+kA7)N4TS_Gl?h&Wf04FemY~7*J2FyY|4UG&RY# zM`;qUcjcO5_XEJ}E*|<N(e6VFRsUe#jY;JCm`uRpCLI2uS8oq@^dF{#=dpE8X&6;9 zTaiUtghAka^w{hIpx$oua7qL~0MLXvu}jZ%>r5en^x~%g4$dNzPK`5H%##qUR~`Yu zJv0j}?O?X)txnD~mUT}Bl(Nfgrm+erfrV8`*cr$9$Ufg5<`96RIK}*ybh<^sq0npW z(;<1lMBa3JGVYZ<q%r@f7ctTWoUPBsA8)>FTLW$e1|@P9+Cji+BF72<;|0CG{1m*m zJ5=D8)@1gvh}cB*;K-6vr!grB(3Ur`j<`4>y=))ig*YSGsbkt;9t=gq=qLG1gk<tW zYh?35n^Yb<V={99p#^_acD?;Ic)xS|TPn<^3+6QYgFY`$D&B5P&Owcu@OUGp{rXbw zXXtmryP*@A{@MZ?w}=4*qbSicSIm8Pb=oscRlvcS?7N~1{EaU21Zaa1ceyeHWfy&x z*EW2$+ex87+oze;V`GTIo--={?I41j<qg?gait0|5cfSpJHG9tBK!6yGv5(Y0f8*U zaWYe2<4@^71HFi|O-}dC7GZzqyYeduKPk&Bdj97bi6P2?ycgxVbmj_!xx}=ioPZVk zC5vQ!{g*qMqIoqK99Y<n8F=uUAsT4!M{w%i=%<elK>_q)42JF}*4@OfJ~sSRTnt`& z`gHNwXW{g6sL@&-9~XzWCeE@q0X{CQpU_66t|#m<5p#eKY|}wkc^!JeOpo>6!NGAX z;>@RmAKdUbIgv?ck^$RXv1(y<e}9K}e1@M%%Y@*3AKB}op`3e{ce6{dJ=4UNtuE%i zO6GUG9ibuV#TmH7fFJOa@Lf}To?KWy?631IajPt-b<k`@vu&;S;_);Ui87;v6)>5v zB~P}M0hlvjYtvEQ&?eTI!S<7FQ0g28BvsG>cJIyazQrUi3XSokoE)I;vI6$;l|9EI z_IZ+k<TprpGhLX-;>ol+keeV<ZnShXdFXREf7^aCdkN}cSAD`U%nJx-C!q$gMPmJ` z(5XHUXI+~mmzMJ9@fcPmPguaqINe(6a<;Pbl9KYCpjpJy(wkblNoxA<HB7Kgd>`D0 zZ#zCrAEfRD;+aTzhNzDYeFw7n-{hX<*#ZtZ3nLI5@z&EId<IKMLO1|q$UtX3i8pNA zvxi{QphM|pI@&jrzsO)cKy4znHpJvZ^AoAYo;WAFm5BiaXML`TiJcK}k3uP_xUk1e z=EYURrq%$>La&5<V*+w8Ae^JjINaO9gd6?D@Q0o0M)ira(fooP7`oiEF<(lg=R6bp zeoP0cruL@t_P9<q{@NSZ4+xSIeNp>%nlPj0`%tM-1{15JFLA0IKf0rEJ6kQa@0^sL ziJjwaR0PuuB~Xq~vq*TsErMhQa+^X75(CRS#5<^>6*#JYu>E<Ja@QM*1dDR#H&)G= z?z<LNwjSRoi;7VL&vym*NR*9c=f|hEL*@RW3gj%4lj41Yd~(m9L){MlC8y<(t0oUu zm>3z?yHF+0VfIZfi4XB{L41G9qOf8gB>f5Ra17A?SvWqG=>m)slLP>wVoLMzE<P7? zMJw|C{S<iV1;ORz<qfem*l(OwQGKbTlen}!`TcCO;56U!oeepQTPF`B4}&+2vY4h| zu+>kl#^HM+V(gyl!mN)X$is|+w1I@U(qNFr1$KjWU%pG{JbZI61sA7YhpxzeX>0>% ziI+0{JQ<Q!(Ljt0<>RV^;4gVKxD3|z>o;@YDb;R1v@iL*@N?tU!bmL>0}G%6`Z-f| z-HAVM9?;TdEX+ixgOv;R{ae<@erj~g-ZDysg4*h}JB1Kq`;ipk5ID8ce{G3hLR#}X z>no6q3IGim@%evYmJabXl=Cz>3jmgql;B_-*s6=_lAn$!qXa7eXyO&PO5~Hda@>13 z8=wCVt2tKiWXV1RXK+2Nt17O~#{%GHL<I@A=&RA`x^Elx-R+R+f1lY^m@NhCN!WMc zYTo+KD`9*HhYDClnFXxZ#1>UNMCnlzfk(?5TJl7IrhRc0^AvcxKJkXlwx;^##j0YR z;wxW30RwQL_yBw<Ac?44lYCvl|DW~w%*R7|MhOAn+=zh<aU%6yhhD)a{R9*MNVv8g z4DA%1H=f(t)6fJ%4?Jn+!YP==Z6p)UXnFap-%RvuF`@Qqko65R<rbM8C}#nEd1WA; z(qNzjYu8TUw-s5BLXM5RknzRm5?bkUUX_MkeXa^8F{5jY!c`aDPCfhbiPN67o`;e1 z7s(K}ExY07hf)X(F>rs#tT5hh0JLi{liimbjda5OMfXbh#bG6%s8jx={@r?<R&C!T zz;4>x>`S2~5L#@}Tzk8})+fmCP`?gnJl7YXCm28N9a~i)8+`s_A|1sf8uZ_jH~-3B z%NjLpl%5VY^Hqz?Ia@JURyj>eIxQWU%l862c)*L9(oz^=_}WqQZ5@}vjn#Z?#F}8M zo`t4|$waG3tMgh0PdrP+du~-xnT{+ZKN@^?{Q|t`ysi(>N1*|B^?&qvDkZce%KP>` zgq(~cYiYqP9cG@Vwt2=3GQO+sK=0&e+RT4BsPTL}lz&uKAKv$8F?Ge!Bc!FyaW<uM z#jMpvxr3LZRmNxegX_QFe}p;T0Sl$G)yk^HXu_-w7sJh7X`)H0+)24U)sx3t-!g7~ zuv=y7SSH_b3^=&?>Le^_WkPncCCFf4yq9m5Ca|}pn+@5KyaMdRp^6WV2Ih`>xMqB- zJiGY{Z(8<pIpSBs>r6QiJA?4gW{b;;p-|4=C3+x1l8_!3#@qmlWqSrcVb;-pU-%2Z zCb%;NceIx07P~``PilaXY5-Qo230yBgCbtfQEa52FPwOimNG*sp8)wYF#gW#W90c! zo>|aSU`jS+)$YQqTllfm?Y}H&XKhf6<MEOrM)I@~*uLdeW_qN@OMSid)->P&ZNf}| zDl$}lChoygVyG*pzI}UF)}NK-WHbF*7j$f5(7EDTum#{99;0P1_O8M@&RcKL==Q7~ z)h?`8yX)QhUZN>RA%*akkJ7GuG1}oS*h(eiy}0!2ugu2qX7g7=U_?}f{#ober6I@G z3$%Lv%vIQw@<($&?>$_!2$KXEKxN+;i1?kZj|^FiW!-I_$hlQp2Xx|{XgmYVzdej# zyoB9&2hhPRnd^Ncf(XU=+e!CeQZ{MdBCllb5B8}e=2;?k>Sk~iPkj_Qx)$dA#!x=$ zKfx!0HjB2wnQQ~U1_FH#qjB5?Ur&`MFg}2QCQc@Kf)kaFCxd-gb{2rmG^o)&(R_zF zVFFDl7^$C56oR3CQe>P1IYtS^Cz}mn9Y5%rF|Zrv|B)|W@|}FzOT6`bt294FYgs)j zBls#OlZ$ep#87|yhvT1=mGB<TohF}^snfdMIm{Z+&pH%Ym0kT5)Uq%8=heYMjjou- z5kB)`$alsyJ$RqS=0E9t?^A*L%L-z<+0VZ6Q93*k-4D*z`~fB|li@ozcI@wE#V@Xv zwKdkbG`~BpK4?DIoLuKTbv>IWds~;6z$Oj<C~-s4UHEK3ZNJ<|xEJVB5P%ds@kBiB zso=lvDCR3Bi8zU;FK9~tzD1>1n7);ZmUZx392Bv!8f&!ComJ}@$XatExEYe&sW|=X zH1V(L8B^V#558++7?#c`mH6|-9fz)Jpo=pOyun2*P2C+Ur3DF=m46FP>b$K3+?p#e z<r$gS%O~kMMEeUNuA`UyH%>cmWld2IS5?oiCxDiTv9sZi;zaH{$2bJ+q$r!LH<_<- zPfU7X{|d%@GrSvDD7m?HaolL%J@@P#1?~qCerE@CdDCf-^V%GqnYX=wv(~)nW{8Y* zEh0xkPTMYz3|RPx&^0dGV+Pxj9$gcj3(>3;QIFBCHxxP7&WDYOn}LZ5^)r9!Z24R8 z%~?Zy!+SKCs)D9Zj-35Z=IP@%TLNXgYdz7cFQZV-0XTWD-I|O6VlIVv-O`ivT5ACW z78-ynKB)c94_JqXj|6b=NO8a`t80=`i8*DMttd`yU_Akv@!jo7fhSkp=BtJ3QVenR z#sbGG!X?2AVE(xVzhQ)qHn>`5W@!A(ef4*8!fI5b3(<Ak5W2kH5FPuzgW*4B<*_Z+ zMqDwfM-+kT|1IaI{GNZR!Kamn;Xx*q03Ur=5*wJ|O+;w^hZ{^d)F4wiD9%Tnz+1)7 vqbYjyj-m@nJb;rIo!eL3`N>D)I+)1(yKy>EHYxBKACRizON9!!dD#B}JEFe( literal 0 HcmV?d00001 diff --git a/dist/icons/controller/pro_controller.png b/dist/icons/controller/pro_controller.png new file mode 100644 index 0000000000000000000000000000000000000000..07d65e94aabc668dd6d55c8dc737bfdf402c0b0e GIT binary patch literal 36710 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%0DD~H;whB7p@LZ+XtbxqYzp4jL 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 Id@lI^04f(M9RL6T literal 0 HcmV?d00001 diff --git a/dist/icons/controller/pro_controller_dark.png b/dist/icons/controller/pro_controller_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..73efe18f412bef5a5431c04f6d5823843802d659 GIT binary patch literal 34897 zcmXtA1yqz>w;mL52x*XRq(8d5LnTI}M7q1XyE~*?8l*+Ky97i;y1TpX;a}^z#=-&K zQ+q#k3{z5&d5uhn41qvi%gIW@AP~4%@DmS;2tFdK+KB{ygLe>@Q-OjXo>0S3@OLCz zSq%pW1g+=!CtMOE8WH#)fuoeV<3}4~M;ASNBZ!NO%YSCp77hk_wnqQi*qfvu3KBvf z<PbSYF%{R0{Y)3n^jWtfpDmI<M9VL(zRAib7Bg$qP|wG=G_KW|{o*d$``H*~^w~Lq zU4cm>evR7t7q?aXVkPH^?7G!pLyP`r58DV2Y-%wGHTR<3AsKP<2nCE13hTN$o0NfH zv?GmW8FLupKw4#@V_;xVVMt<#!_a>fD+`rFjAep~*D!rdr&ea9V8wp%5`r*XgDg)k z0aeBjcZCG%;UiE4B8Va=6UR%Iz)IG2Hr*bBY<%wKGua+|?JCXb3JsqgA1tJly+v_? zUNa4Ea-imu3NgKl$1%j0j;E$aoq!f%7|Fjx^^3vk8?1d#)=%#aH}?U$gRmS+UGlkX z=2G~4LSjYTyMY&*q8e{m({MaXNHthF5mKiV-=igm6;3bpU%y=m>hLaQoGcv%Dsrx9 z?Df6(;?`MN*9t2(W>=^rd|)@GB;^Z34S(`*2t+QCT#iZvB@e2REC%(H&X<PiQ?hgX z3eZSR4TLpiZQb}J8Qt9UllgeECbx(1s-b&aJ=z9Q2epa$z3R$kU7G$^e&}>=mqmdd z7|LpoMWIB81A!on2VfwgzROv5`_6<?2tz6qM=F#Tn_>7MTQ&pbuTc1Hs*)jIqB0zh zlSn-YmlL*i!;ox5L{~T}IL_m__jzeIdZDP@IgBxu4yLT!X~vlbgIG{v>eW*ZZV>lx zz^U+YuD?e6iFlK{q8By3N28rh)~(Ir-$_nas2mrfhhI=snD?E0DLXlBNM6PJb7x7G z+kSP3NaWD-5?mh47o`}TN-0NrzDwSyOZ&-h<nWGh>jYKGNU&ZLAyf5LfEap!nBoWN zj~#~WNYVk?ovf&m%I3Nnn?J-mvvU$vOJ{Z+PQJWz1kcC!yqtp&?yx+^O!CmrILK{u z7|>v1uZR7P4&UDgcHIXA{!2$O^~GRX2F8aAhvnaS$rpC@p8bQ1l0MTx7doG?EjNm& z{qDAzY7#DyJ3$r5dUbWlzrOod^NX5`;xwKxhgc!3)10kaznZ)=d0FwhhGeUDRkS4K z2f=ZY72ZQH`JJK|;agM1k-!#Y@I;I`d3oabuo7;$c+WEG!A1_Ignvs*WIH=f+qbv3 z1Y67GU}Kc`woud452|azRu$jXW6Pf~Cdr?Sbfb&>BOPU<FI?X#%I1!0<9wmZ8$A_9 zxuT(}iYY!FFX<W_=T!3^+O0G-;3SDKup4pIhY!b!+I`G4{5_tU5lTTA*-~<U|EGq@ z0trr_$uQ6e-#FaBm+9TqgIGWyYgcdf$7K2-h^R3>J1QiPE{MJ`5o0$$5ji_^7>X+4 zMYTrW!wQATBLwSt)-b)R8Hr|a>3j_l97jj-C)Z%YTjFWI8I9=6w2<~9;*q9|J9<G^ zRa)|CdWOr^PnSHcTN{(OzsvZYs5~q_!(8!_=Iz_l#4eP9Du;~I4W)r6YbmK9mf!aO z8LuK6CKL18k}Jm-cy#NnDB>cwjcnM5{QWC%{$=4yq{9S)MzR6(s!{%wnX)DfO9Q4t zH(Ya%HeQnTuk~&P8=|DFoIADSs4C_gwN^~vs~umQg;Dx4hc>X94b?yo|M&Y6OUl4) zIP-X;Qi{OiL|7J#jxLE$zQiAfoNOc!h|$Fw*};m69~_4t?28f1jw*pf!PIZZ-i?v9 z=8EJSZ$!X~`VNT#-WLl$l}=han$^9EUWB&a?oFnMnruAh!IBQ~g__r;CgJD$h(uT% zj3AE=6OzX?tP)SHkxZizZ%8>@!!(Tbj-FZ>2R9L>k!+L&L)J*fh2V>aibAO{Uc_Nw zAr=p?zW0T}Lr_1;hd_SN_2y8^1wdLLErAny@+Btc7qQfGV++kL0!S3+O<P$XgT-@2 zqM@tUxw;e1xBD7i9~~IusLjTFe9rvlEX6g=2}cKq&i`7fev%BGX231oqTkSVzdy0z z>CtTKmDchb@fGs8q{ir4WDJk1Vn<c`J2^wc#m#Nj?BV|QJ+j(M!SVd!@1ojmmS&-A zZrYt^s1%Z$y#I~ZW%Se#Z@5Jt3y#+?b=wh-$J~$jukqUc8+c+G_BY~VMJ33dCJ2Tb zR%q&oaX^TqXO*X?Hk0HF%Y&D@-Or{&#*jkFqZ7yJ{Z1F|PY#VIhvsjEQe$D_B*JJ! zsq*N$CV9v+%F3smoOHhYCW|)EQ>><9<Pb{COk&0sZ{~}>;|bP#yqc6DI|#4$jPU#M zBGo@U99cSl(h@y{Dux}kwymsL#?sVs+S%F3pt`cn7=;49iH}dc-ae>&rZ_GsNy^^A zK~4)!s}(*#Oy$#zQsevw{$~Edk457(|1}Ey)|Vm?hr;3$lw-4r#>R&H>4vtF<Tu87 zqwmKnzclL~)oJDQ;0|p4X?Cef#kefXqw}68J2o5tq`H&#`R~BYkEyTpff%6J>0J!j z4;r$w5)h<v3J65NLBue~huJCPpoXd981PEBa~5(~{c7!0RWwQr5jF2AhS_s*67}%G zZlN4zrwCM%7o$%KWBS;|3ZHKSsdd$+Pb%U~@r{)`k^r>;=B+D!>~=PLjXT8`homP8 zO+5`nVId(2!0N(~r^gRg635r=c`qg7;>c8pzpxNB(9KHqO)%N0qlQYLqnd=GJ8~b< z?Xh-&V*G5G7Y(&r6azkk-$|2{kkB|yGp&%rWUN|yseXr47a!5g%#7|ohU2-9FsQE% zJ<ffM^TFR4LW?;(LOTTZA#|VX?sHM{^Owm+hc*^RIiI+=(jFiE)FZgISW#aFiNj@W z<*Lwio(bY0qakOJJ!rrMiHm)bPbycTFA?v=MyT?I6_N|~V<*W=Nz;mpL*cqv6ZO7M zBE|R`5%BZJO=4o>30#U0oP1&>53~)$uqF10(|U8u%p2VwbjCS;R(l(nk9}CKtKsa) zo)ykU!~2;o$z+2JJ8;}{HStB>^_+!9+qJeq8xELOc_Z0)R6EW$rX%Gva##d$e(}oK zvwxl-td)|~a(RBbvC@<;UWZ78N>V~Yx}m{c<>XL|z&OEzxNIs6cuY(&QEFn+agm>C z6FYTu^#4UCGSSByYCNjvE?)`WZs#BMYE}kyaaD<;5%b34qsg?%K+lqP(+DeTeg>ll ziC5!U^nnRUf*~czBNW0AqNHEfYa%7VURS76?Ktw6!b<RyU~)LfS;vCt064H?kxN1) z2$GeeH#+Qy^OflE3t@24Ykg|PRLC-LLH;4~h5q7f_JU(G-NlOV-tA;@17H2|Z+M)U zaFD5pqX+V+VQ!8xNJ{KKlgXKe#WAELyD$lnL(J%K;=P2)PVQb>(h*Ct;!BfbNb(Yk z)8UBI5o>cIhpefuZ){HD4yW8CAxm+LJNTUaF^GAf_-)^tW})i0ztB9(BzJBneyp}d zL^L;LGR6?l8C1v%rBEuHnb>ohFsq+1uV*Dhjh{3P)Gnf8NQz(KMPn~iNv0lRMK#ih zE>)4wQ!Uc~*ds|E2~0x0CK&$9BzfGu7~Cy}xA>@(7*I;^D-JRxG3i1ld;p9N=UY5A zmPRsCcTFHgU}$`xEHCBVy|$a_ACwrA(6gKS<C~V_n}_4Omu#afH-do};Q1#mEN0=M z!=!4q`%A)?e+)iVCo`&QIUpNyJ}vLnM4F_1{@j#Mq)_tk_@}q#Ob|U`5*pEq+Nz*9 zYMf9oyBDTVW|Sz85NDJMlQ)W9Gt5*NHs#b*&7TylniZ>>m8ekFagXJ-!=vle#SqR$ z*RFcwCkpWs4ZVHPmcyWa;j4!)PU$cD($9DQ?8dOsB$R-ZP+v%*+t%Y>=uBRW9zG5W zeO}p+TA)!l&jtVJQxo2BiPlGC!=*N_ckp8Oqu*y!&K_Tp?IM1ubR+s)sM2M~-U(jj zZ11?!ao;9{t+-{$=20^yA<vm|)|l6)Z98giJM!bB2D=VeWLOYtB(Ge!KflgyFp&}1 zIM<T`a>?<<@#X1*gF|RihCgJEiH!-Z`}ME+jq`~3eH0uwkeXx9tt+7Js@XqOqC2h) z4-fCvOG$rOiG(0dPjh#9;31p1F4P~Ltu!-}ZIV~d{5G(|l$E^GSPBNqOZ@s3lHWPN zj*6m@Y*?@P;lo>O3r<4aYW1Aiz5MuTJle5(-`TyO`GdZR3D)3XL49%z>O>eG#M8Td zo!C)1BtOOhjh~HoJ6sdmHfY-Qn|byo3eg}zzOdy^GwjdLU6aaIkE=8UG4H{xt4g=K z1**R*dPf<HI=M>ZeDs*~gY@>LLP2To-{R#YuJI0<*V`M{nrSKbgkhU_L*ZZG6FYXU zopfy2BX#P=8fhe-+<C?4S7kdpUD=|^kZrQ7q+<C0iq|)r89F8JXZLw{-t1c$3!Z-V zpBQ6{vb}%4$JuBkBqSQmCKmdZ5%J|!znyG-5xJ1i2YJO0G=vq&6gly|`g-N6L~`=- zk#{t!JsQ4}l$fZfs2w|wLk}-sf|j2_JvhB$8%mP-#Zyh~DuWIuVlMK4XJJ{bERiKV z?>Y)hcaRRo5qpz4?!e>2or^U5NiVwaeZaTE`ipSkBGAZ<-4RCz$KpqgIo?4F0t4aS zva$J5)6yz_cA;0u;6=ffr$<CYoLCYOy}P}omW%&k%S+u@?=sPFsnAf=cvaIK>6X>s zz&!hEpMLN|pza;EqTnP?|0)Z#QXZkkWIRhGf%>M%hM3=TZqQe?4A+fs&fePkKjpH- zi5<t91#6R!9}jBf%_FdB$5us?jT~LBI#z6D0|Ej9F@hbPUBW+nVD>aoyDHyX#1#Kt z;~Dh5uCAwKx#>fU;Hj)bqGSw#TIP$ncAuwN|IP_TZMTEhQ6{F&QC6IUuTLEu%<Swi zry00LjIl=t26W>S67s06GQinl_%DU%;K0h>=Ltd+$Xa1#rEm2`XlYi2wd`LaO;FJ3 z&w7jCB>BhNFU`)Mq?Om*wn|~-ibC~Qic-qgbHi0_l>~%YZaM`j9>}UpED2cH*cuhm z%p2?LHO?OLI5bgUEc#tL#FFpcMQl4aYlva2JA9fcc=UY9G3717H>cq^y!oM9zEHm# zfNw1#BfG7rGHE{mPM7<X=<ZKD)wI(m#|)_RIa4aNs)-3Jf{l#}INaRaPOwPqR(n!G zxtd&DjNaVDQ%*K&XsZ_Ecc~0dms^z6w*GIS&MrWvWL-_0S+7kk=*3*4%@US!d`#=j zZwjv}19u%<3V87S)f<gp&zN%Bi;0n@$HlRU`1gfjZ<Xd&Rgt}Zy%nU(+B1`Flc<m_ z)cu8lqpjeFtY)kErxb-UjYk)sE0-)cEG}~<cLe+84mc}1%4zT0oyqgF*HKg6S@7wv zKQ~(Dxo2kKy<yS&_3PK>yAfWyRjoo)G_<_ZQt431u75kVTk8%<pY|OmKNHPXp>J(% zWic=fEZuj!L}%LF6pv_A=)0J;xr>R8j!vRg%*<lv4Bv9I)M{5<{O-*hj*K#x##I*9 zsryxtZLKHFAt`UtG&U(|(43R7tD2a3U_1fTpT4c^f8{d^Q{6`2iZuK?V^0U-T;4dD zT}xGn0v_n1#)|*vp)a>Pt%TFtU6aAO{Qxg5Db?>a5jSgCSlAhp5!fM>2<PrXH8t!6 zVxa?<i8y&Praf7U+Rg?04<<_Tlan(QblR}*x0~rUkIM&*ONWth18O6ATza2WR7_p9 zCog}mxL~=vd(aZAG2s6BZk?H!klBm#=1oFf-88-|0j)xY1!hctKmx5|M6Ob7i`Tl> z?-kqkytEutB=Zg0OI8zm4rK1zxwfc1E&6y?1DNAyir~a;zx_x$r;&PoJDRS`i9fhI z!zd?s!UB%yS=gXq*J~cjjorOH8UTONKWi3>c%IU`=&|d2$k4ib+>PX{H$$>QGwV{u z^Zxnm&o_?$7YbXm$?_3%(3=j>tmsPqkZ#y4gkWSe{I#IK^@T2&0{w{Dz21{G+Fo7O zftI_)yOE#>?F!Y1SBK5CIWUHBGVkk^OZ;#*4JLWAfn?^-j{pj{l~=R|AV`ZlL?EB; zjFHUCIjiDvTdI%ulr4cBW<rsp!Vs64*$crz;wCzGZ~X(7Xs8BN45Oo(xcV#e<<+9V zDXiQmlR3irRgKTnqoG)=ruReoQmMoWtEDPYgO*RGB|D+AcAI~-W<@m~8yLFX+up6S zmFtrPeL5UNk=twRU%&n$28sKzc%7h#Wo-?Sx~<3csSooK;bo#r;%u~Anp?v`EdTz{ zW*8VZ*>@KBsHur%Fu3|$(A^#RNgAx?yXx!f1J-yoHDOFX$17xihDy!7&CE`$AwHxQ z1SZ{i^L~OC)1+z+?;_}FX+yq#kT&ZL$1NAn4XsxPhck?Wky=jt)2I6B+1dVvx`siw zCO&`FGC9xf+z?~!0hT_dQj+H~%!BM-z{o_Gv$4S#I%lb!C=7<O+M}m|H=L4E-QC>{ zlmnGyBO_LPPt=aJ>SU{LOyMN5Qc?){Q#)A{fj7o>cGYhwI`J&x{`cq#J3BjKA3r+8 z!tQHl1?tN3@>WlOYK&5$v?Y-iCT=_a)Y);owJFzW|F2RIe1gL#{l@uf>jlkv)w0KL z3Pn#eg^ryp$8TDYWUFSMRPrai?RvvEe!7Z3Z-Yu>^<>bA<MnlQ$)7;IdN1U8eN0rH zY{rjQ_kz!MIb;b)WigeS^{_WbQ<%?N8!lKcHY1~8`@jjuX0FC+In!lPn8YIWn|`Nt z95{cC!A4D2YE{~Wzs>8b@xUkW+HEF@l7|}fN57Jcvz~iq+ttY??05y}|I@jWH?-;L z=~a7^WS*Z!ij$Bl`9Ef52Vyrbpn@U&@0}S)dpBFzCJ&Dtx##C~8Fh7aKNc9k7oKGz zj0%>G?|Bu_S+O@;_2hHZ{`BY{KB8%h?Py}MRm-30?PhIV$^N_Mc?0NChEoE$3@|8o zF<<dq$T(w;YFP&>%CGPCbL*R%bS;Z3FvvLMy1hDiOB^o|eZ9l)rHcdc)6(AWikTj& z%IBG-0H6)DetrP~%rHreXh{rIL`>wM+{xk`SZS`(F~G3{1F|wO7*=I618yGO>h`38 zpRDBlnGEU8rHujeI6jK>GYsYl*}_d?R7<v4OL7EdjzgN4xbNm{YsL0Fx1@<6>I3t( z6R#+JrY%tYWb5aZ)nj8KBOMKm3#fQ_-Y_*UmtWNO?Om)+mrM!EZx}T@ADBng3wFFv zCdb9ajnuZ`1&8oUa$H>7_0zA}XP61PA;6d`wot+-M9m63ya<F7l8t*xIV`RJX0MUI z6vD(RR68xX4cLNuuFlW%8XEApoSb-_Zc)2d1|q9w%(?!2cP6p7XRp@pMgBUvNhi-Q zQrGArYh`6+0w%2<h2o=^n4p|_{Vi!BOd~cc3r~$S0s|Dlv@}il7jV49Uban$n3$5q zpBSj$zU|Uy>o%{?D=x+`ujl{0syzeVGCecXd2rdm#~b?i=zaYFXIjq>5K4!BLx*|2 z{$M<1u}Z0WgaC6?RFtWuWglZzJ6hvB$KKw<BV<w79)6H33_}u0Dkx}RWF*wT;7mqZ znt#vs98WHO(;C8dL{>wN1MRo-I6FOc3}gy@t(-w1PA?@P@$&EAzjm7=8jg<63apIN z)4%-<G;o;d{f9Ti&CHNiGb!^WTwHj}E%t10_xV&*Kdp6LmKf0CAT#MSppJElB_=15 z)6noC#%rggr4dg5o>`fhU6kZyKl{>e$a{Nx()F&rf5GJ+vM(hEhl6!sBpe_Yo143( zWfoWZaCEU>tFE&_Yh}+;yFZAhkx~n3+#}4ZsX^Wv=UL5kSqd87NIMlwg`Hoa=QJ0+ zGEYJ#j3TrXnf(X4Zusu5`TgNCqp5{W2$Q1qLM%1Xf{>7@l|_JZRS2vkaMCox#H^^O ztc>X5;^KOtQw_68e1lDz8cXb*1yOtgmM(j0?j+M<=6C6QF*UUm`{86}o0hXN0k7&r zn#~hyrePm?8XB5PK|BHy5|Zuh?Vh-+#q^UDPg7Iq5vdz`eZ3Pt>7}$rmqkdY*c(DZ z!sFE=oxX|V5ly)t3#88vR$Nup&UB_!cYNbnTvpcIsiu?7vB4HRyVXr(L((@_YeKt_ z$^14xK0cAS|3SHYBedy-9{y=zK|#Tf5GPEEa7sd=^y3v7GO_pqjW2r_?sm851S)E3 zQgS~nP~_<u7#Z!ZGhHyD@NbEi8mt&e@4H_9(3}5_)ZZdZw&->AQbkqu1K}hNin+PD z-T5_=YwH^pR{Y>jpZhx&yWJk;41PPDr^jKRUc<LXCYK^Y-eV~3Hy451W!f@i;2Td) zd@ttjSI{*aqt*$lCuaLZ?r|kt8*ikMsa+LOh;L^sr>6Gi=g;Qlvz!0+ZW}J0QPI&2 zOifLrX__y$kH|WFr@{`i7Ug1mF2>vZ$pkh0Y&;*z5=eo#;XAzHKgEatfz2dv{-AR? z2c_QW0y}!JCbCuWC`2{iZ&J78+g@dN>(xJ}NxoUDf4<F!Eia`5;M_CO?$87|c3y04 zhplZN9!k^Ug#R@O<3<c1CGI!7I(%3OS0BRsh|p!X9s@A&D#2Dn<k;AMoIH(RE-w;c zoQ-u|E4Cw<O0#reJ&P+#TJt<qW~XzSn?0hbe|mybV0(JLL;t{Yu{FN7^>iC?G8-dQ zg954q1T=Kz6Z9nlk<0X@Hs6Gzw=DWZsKFC|{`qIoCm!lk@bSqF+J%-7Fn&{3N0oTI zHs{bmcma3)@OZ+G5*Nzq9l6GPEchx&90|x36{^j}`ltOs9<go8SgX=V?gfp5?SM-n zi=xG2ec*b}&kv3_Gk}gMGVSXuJdpm~-C0z7cotk=ma8&C$l2I1A+fseIs$ZDA&?0X zR$nTaMIw>*qFK1cc_BqC#VBxWKYQHOZQbu@KOqRXSjt#iqrHEN{rGs&e_Rnl)~Vxp zwl_c+RS7^;w;!3Xz=0Q7Y$eSWcs{;4hqq6j35kh4E-qL1NWNdH<0*`5XZ>EjN@hc? z-L4%A2?<$oMC)2R(XDG_tJ7pwVZg;fCgsmWGx(;dj6(sX^b{uh*(?FJyAlH~E8&Ol zn#>WDD+)lRlc$i&uE4@YMj-V#k29;XFg0zF^@9({jYzb}7!DY6^gmil*LfmLW?^aG zZUr^|et8fX(g9G}e=u_IcAwvE<xR%m*m?Uvyq_dR#)1Gl-1lA;xE`%~LP70bj-I!X z_~i7u?dGB?D*J35{qp^Bu4k5Zh=FHZqxx{>_JunuYQB)|vgi(w9!m`<Bt~$cg^niT z{#GZ<?QAu}+Xn|yHdQZ)`za_W;8IfwSX1BEGNg*`45Tap-n+6b;q~D5b@VMbm>tHo zA9krDxdLPP;v$UjSx36=JR@F<v#uPmeGcL6W@q#H{lX8D5x{ZQogwUi_;j(<-lx`f zPXp<|ZYCoUxdf8L>cmPTiyOK;eTy)Qr?3c9a&L(!1bkgPA)#mzNF_7azxS=GWmbAc zUEa|vD|&Se4SKGw_y8QJSL-9xX^t8##bCUsP(=YKb$VJQG%pnF7)M9Pyy|Ks0FY!q z)Uy=t<{7-@$=afTQVE1A(FHaiHQD^#6DEr<`CXg~>s`=ML+-}duH$zN7DnlP*b8}N zNgRq>I#BdErAkc1$*-&=^||nQ#Osi?DnXevcVw%=#YGNc6YRz?gt%_bnN(ZtUC1gb zlKHUUqvox8EM=bv1qZi4L*7(TkwD5-Bg}O>+|Yf=`t<L=(!~N%If+`%$hejsuX{XA zmo>Dn@2zXAwxO}H?#{1Y#qW2)tkcjSfZ>5^n%CM&a&T}kFghw`Z*M=M7G?lM8ERUZ z{Ms_?jsbJ)28BQ8b&k}uMUoON7RV93;pgYm5je6wK2O)<D+8f5KylpO-_JNF-PtLT zmHjTIHt`NXla;eO6FYBcRqNy1$5WOzw#UUIZy$^=wXSGXajcST4d0p>d(G>`<9m|E zh40F5KQG;?+P3w_4E|Crgna>hUjk*p?>)Vgg#{4+TS)nnp%;6z6wJ(4+RpHx_Pk3; z*5COB1B`wdAd!?h^zk=f3juTW$NrvMmW-w*Lwr2emQtw&phcWajLc2@y$Ic`bj<$+ zFJ$re$B&{tdx-X%-wITkz5WGq^$EEwIZZ~d!)%FPMMt=?MKk&vX_(gk1*Qd&0h{-G zW83I8n-8+G>Jx)x0L^f5aV@)%TFh1w@F0!wNate$IF;YrOjM+pE$!@#2il}Q<uJaS zoE$ievT_R2M@E6G|1mR*>Fam-vurlvgAcQ&j}D9uihXoA3tSU%HD@_@e@Il=$m<eU zXEN^jOPB*I(d8a}k0=h!x_!LLnbfirRxO+Pa~42*vLW(tMsVZj$p7Gvu9=F&o&M<! zDxx*Q@t9`}NdgI!VjZn)rbhSE)ABO8LMDII`Z^AiPMe_dkO8VV6g=5?^BMW`^Yff< z-;9UUZ*Jm?%F9s!ehsir7TTNo1&d2h56R2Rqmy$vP*zn9W=`knWS46?1x&^Bez2&x zJZ;;cUc>6o4{zq7q2$q!uTyz2dOgmu_kRC;mRf%t{)|ItWE#FcQGB%1(ks_##JgH@ zIf^_q;Ka|#+&F8-0OX2E^jl1R4Axnt=;hH;Hq)?uJYd{Mxh9eT@a*pHR$I=&3X1xj z3!mJk&AC)7G!cB4&v!W16!z5tc2LsNicGiu2}bQCJ-fcKp}+9gNxjv5Chv8oR%m3Z zz){;-1A*G?hj$-(zqtGhuc@g)U<(5p+t&|$?}Xog75Ve9ZDNN0beF!gTJ&^2etlsh zEL=G4@&8!>i(id*lV4;Nvf5T_XUzRzB|jMcqTokK57b!t?3R#?Hh;8R{Gguri$t|d z3i5q<|INVx3FwM_LrEJc7rH^>6h9WM&o9tB1Ox+RB_V|!L7QgcP*Ac#Gr+>Kd@gZ+ zr8!Uo;^Xx>xwzKA)}>?7!K@wR<(feQR&lh!gwWsX{<Wqbf=J!0;4JC&o^E_sXHu^> z-}rP=_{9_eQ?U}Q*U@VefB#0W6)AkU{tWT$we0)LRTdkU6`jO5{N_E4cCu0K%uZ}p za`<L)N&10T`)c!AQig}Sd-YRlTwtfyU3TY1dZmP>CLz!vypPwfj_YmidlRn)N5`b? zPrI0meE7bO8h7qEE<l#sw;cYtsgVngFPYWO;b~p!nwY$CcX$78Z*)`sUNue@Ug&?| zPllQ}xO+v^!sC@-R-C3H=1Q$B@D12%KJnn|)oR8jWFkcLg6bJjUd}{KLo@bAEITCy zC0Nh)a-T0Tr7BcIy17@sb8|F(^7rrPx@i@tzppN<udTYTW`)0IMKG*H5~zAG7@h+4 z+zg<!K*Z6BsjI^?G%=yTK{IeQg|_*UX-1*FO~8~7dO<)yFfcY2?zVlnH8?gTc@thk zk2{drxD;&l1}Er#@yZACWV)_Oj?r;Q+ZOP2@6-N*0{(O5Ql!UW8%q1#LnqP|pvt|y z?_$%;W5!;E!66|bxi`)`ys30Xpd9`~Y!R}swR3bN<Kb~vo+!ghENx(b?e0MW@UVo_ z2j<(`SKpi#qY}BpbY1^Mj8*=Z!Ka3lY!nAHAftCFlt6d}BVlL%Wl|t(Z(l<pM+pEW zU^d}jKa7Er%);`<&8-QF7yw0-h^5999GA$S>>2%Z1|6=UqZ^PB6B7o_UOacgwV__K zLK|bVv_w`xLE4`gj$mhJ`&w(D8qCdFGZ~T3!)aO7$^uHw4&3roe*f_)W7TTqWDWn4 zn?8^5&G|=O;x~;Wz^i|eJ`)~fF5OQ2o(c|{zUA@HEz|Dua3Q@=iO!;`-TTbHTJPFZ zID^mOSvnXk9-LG+wR!gr#e8?yc5|N(KENR%(y;z(we^7}@C^0mY6{mbBLAaN{PYPx z6sdn~Bqoz<j%a{~=3g&u>9iD^^vCCkCnkBRW^I6WOk1&J#Gd-yq5tw^c4mePU_%0* ziW&3c<(F4$Kck4=O4>0y3tumH=a5T=lX~n|N8b=SXuFUHeor4Yp7P&W2Nbfjv{YFs zR)lH;6BW_!blS|($!TTbO8AFiYvvsLw*A@#&yu)iDM_a;6tpHfdiqpn9&xCco!zs# z<JZ>q=xQyMAr&=hEF~?C=xp7NRMmd-`#QR<@=<VicU<Sx9ni?7`^y`-7(3#Sd7CDL z8@DF4%u@&?f07Ojjh_eZI{W#VqH+XW4*w;krTsL|wIm@TBFa^w11#8S&|$$EJ(^6! zPcfRbJA}+jFqgPTi+%qhuc49@a4O;KH-m%pQ*Q;?P+ukt1_HhcPB-%qa=YDXWL#{l zukR9iw87*Y7mv{<z^h{iJh{c+A@7p4G6kG~4KE=f@z@=LuIP9#8RqthT)=t%+Dt(q z+MD7}j}R&P-+6)Wo^EqA53e5{9(Wx#QMEnJm^rx`N6d-Ep^3-{_`#{44uhG7P0g+S zsNcoXAj!#vO-WnOC&>@g1TJdJc)r0hQI>!LJiu<KA?-gCp4`yDIOOrGc;?66<$P>* zcF4x?aOGc7G;#b@+j9+c68`giFcpi*rBpX$(=8Yot^oRTa#FIeT*b%H0l}Tu<B}My z?UoSn)t8i(#$HQlV`KjKgm^vf^qd(}j4(-2C|v)^vAfJr`xQU2sg+H8!PENmPAwE( zdTj2y-b0<j<H*Q+VgYC3|57YkCc*MWU}kN}V107p2N1F4X+@@XF$zOGHajI`kGovL z`cO8uUkgYsl$dZ#!=kxLJz8u#j+z5C8MezEemy{WztFi2XEYJEB1w;w{uqdXb#@=q z)+Wq~8c<NMlMvOS%`%q37csl&X`#6x1{HHweLIx=Uyyu-_{Wb_3faN|ono|}!cRX) zQuOfgqYwdBqM+iyE>o+JbWvm(%PRACnBd!Z*xTL9g_U&F5OZ5=i4^`az(;Iq;xo0j z2ALXO<z9esf$FezMuBlGfkRWQ!tg&Q%w4_WH)C`gcrTDkK?MrYu95*pf<h)=z*yyB z1o3{hOo<95&~nREle^8UpV1uOpv%dP=Qb!wCMG<Rb_Fca<WOCF<A0WxtoT3=K`fi$ zKQe+rDOmB(^<w&KkviU;v2C`{V+5~Q13JMr{*;rLS5ZNNfN(RFMJtE(j2W(kuQ9y5 zJ~BE0zvsiO6(osXSjZj6%Ie@_@F@^g8$H$|)YN=PLCE6A59qwjzu?0xQeq)z;+63v zA+oiRxmwxp8oI26-#ycQVFTIQ)WRZUYA0|MZyveKuJS+eT#PXu&JMoiK#^q`2M5OB zR&5}=$i~A1OEpR}s*Y0t27>_^I4&h6WPQDWQ8RPilG}2z1*x^Q6##8245;qJhB%-O z+S%yw)P4qhU*9AC`MA%D{~Fl014Bb;2@KufcobJwb{>C!Gs?_tYH95^wbLRShA9qI zx42|;8D%}Vcr0w0;mh^0GD?6+Zdde{qJI3vfl~Y!wB+vncfIY1=D+siUFAesnT2gz zu9;@GjDj;Bcco59jK~dqef>qP^*R;w#aL#UxRsR<xAik${_#2lC_>6+hbVlfk0G-1 z^5UgJ2%vj>T;$>4c$t}*X@`JiqJSZVxkW@cF|`ojkTg>)po5-mv-@jrtF#m(cz(eS z)Z49@EmawT3>oAWula=|2;)Wb0vdS9#V^}8NxO)^LH&6bkyNT?fwMX)*J~*k54xzv zIXdsjU{U|XpJ~nw7teA&EeQi`Lc;VMWsC3L3+9ea7dby%k@hcdO4#+;Q=t?jJfp+9 zUukJ?7h63>16dXE@bJD@H(+yfb9Y%Q`YG@@u`L4<1eCGo5}H;sV{#MDp2++qJVnP1 z*UCx_&zX6c9dLKdXi3|tsQG34W;Q`VHc9nlqw}k)ZcBCwA+KFSU^Yi=ZYJ}wQS~%6 z0N4Kdd|Np~*bC35#R;DzGn2zy>OFn$#4)S+-Y(m+qyH8!hWKVr9WdL$t{gGu0LGUL z76vvDj0kd7%eH#nfEs_YQ`E1d@hM16+vBCe*7V!WK@3T_3af+X4JK9<LM``wu3Y&l zfi6iN@V8y-rj5;PQhrCe-G!P>DZhV?Q)A$?cOR6LTz<V30cvbodb+Y!i{W39bwGOU z)*sMWS$idF3yPsZH#e>;y>Hk!InVwxPwCom%qwbqBVhd#^X1Ez36-aw-Xi6ADDS1a z6LqA;p`gZq3<KWqM%C@=2zm_@&|{$1jjtpmNCU+w2G}z{`9zw6rL#L-mutD|lmXJ_ zNS$}c&arFo#KZ)M@x&;x1|}v3EyyzAqpl_>Mz7|_i1eLc7a3b={MgpcHx|k71o0bV zt^HGbia=f4i5(Qgfc_=#yMw-Bv|u+FIcPrD5s5f=Z)@jprWVW5LS8ZrD-dn&IyX=L znGOVYtm&^cU^4-m3-KA=m^GfHM2v4qJas@CmRw(^X=>6|{18}nq#Vr(9~p_HccDNI zdcn-hTx<Rv7|}?G0pJ{oSy?d?5~eAssYRsyb$4`j%5ASg2OAm#9`0>|-Qqmq-Ges} z(6Or8PTu|%s1&T$z(APJw(%V`N6>>}6|r^pVadfG?-a?LgeVG2eXv@{`1di9nv;{e zGb;l%OHI;C`3-W=&C1G38)#`{(YvBwY0047-+6$-{#DJ|f&UeYhG<1@E?j?1_E*Q5 zTos0Dt6}4oo6TIl1vk$uAUA=`RgV+V@3murBL!Yz!F?$;7ajmpzo}sGXIlUJ&x6Z& z;XmiJ^v@H&e)-pKF(`le9HL~JSKn#Ms(Vpt4`74A&8ZOwgB8ac06np36;``rg#Fjp z34=cbQOmimO;BuKXnu{9F8J2hfU;`%42Xby1`tc;)SY~MpxTlvHc&|MBKS(>dkooY zzI@q#tqgL+d6lBxk7wCu-Q9~_>M2p*5`l`7Q&(p=<N$nt;8tPI#)c2>o};Dq88)UF zpO!X;H`WKIu7^@0;xaM>cT#?o{v-s3>eL}CI1Zq3M#%dCjjFh;Dug#en-+v02IKSG z(sip6!H6coz|?d+uybvp2yRUSV?%*+mVU58NmdL=9Ul?G^t6+)xU0CY>MxaX0EH4{ z5i%dkwh{I6dO60!{pH+SUw_q=6b3|E9i1h^lz_D#5hE(koz~o%m$;L$sucuYf&v2r z5jOJATm|uM`A;VMvq!e?bskoA`qS;4937VrJ;=UZ-iwm^KKBmudct%boA5M|9#c;7 z_yQVW4QNS8NvXV(k^182DwxHdBu}ER!Tn7!e0C2wgjo$E{j!lRvjq*>nF<m6<(BvT zK96dgy~HxfMu2rHmw#!+s%p9H3nWoita_QNgwd&MJM>6sT#NKy3Q9+pc_bGuIDsZ( z8KhB?>3@dx8Aje>gX}J-%Frm|&gq?uL_l`yI2)G>16aCEIhQX#+XVNoNq_pp<xb)S z)QbsI&H-7)?w?#`n9$_afjhG0pe2%?mxk+nE%Bz`-T{+kVtzg%pEg>Nx4~);?|(WO z72~eJ;m<dql)ufmsuy|U5WGKVe+h974*tHj`MDo=;ExB$83C_K@W9`?t)#NDmrVH4 zaHt~{1(1@iZ+qO)jDCfMh3c*5GzuAlTnA282PC#=Xh1BL9DUPM1ENq;Uty!{kfMC{ z0Xk)#axC%R>7$!p-<X`bx27;H{hOK+Fk<n~>v}OgGplHB9*PJ2iDf=CxiD-m?i!~2 z=6*Iasb6f;?s|85^s5=G_Dz$&{ssd+;@Y~1^h8&f(6%%=7na<>{bM1e5(nemy|;+w z=g%iYdsU!(uOySqpMXZ!*O{UtW$=*${3D1Rf@&C8x=VOJUiI__u)ZH>4W9vUJKoH7 zvE3Y*D{kNr_IVTp;3ut4yvrur2QHgb2vOHC{`QX6S&_HjxOSBVNQEb}9@&c`W>|-y zz^&NwVx&?YnY9s+Uh4l5;I!f>Luoo{^LV>YPU?A#!twJmA-{j(x@loS%YZxGO@8NR zF`B=d5;<}I5@-qr))FUo4=Gxi?ycJA=a&lZOgyx&oSYoiRMP1aVPIB(U*+*@t-`8e z`ylhLG+-8>fmG3j8w$r6xpf7`r=&z=3tt(iWD7*q7Dca(3>y4t-g<?tnT#9<rKWfG zS~U^>@<m7?gC9W*!*1&J=aWkTnThFXR9!>y#YP(zwAKrLQrBf~2vvKGqKHs<-?z7x zb1g_ht*zUKJ5nYlYSV^}{I8T<+Pr@mB*IiYkM7od@-Oy&uO_FvXgiKkq5F6UN<IQ| z_SR|}K62j?i29RDBCH|5bc8_#fBkxt<F?Y4IOLg>c7)Q~FijY3U8eWl+P{CNsK^3# zi3&;$kTtma?Uct~h5dYyn^+lB|MU{yO}FR_K~kDFN0gj(<*RnptMO`l{I6e_uC<;O z1J1kk=%-Gx@j99fB#LD>;Zk&SP7MG!yq{Lj{xlf~sFcP*ZCkZt?v7etRoy?*;Nao( zsCT7Og;NTWqMPrH<=6cHfy@O{D-w-^Q^A<*hjYIB6EZK5l3tl3Bkh=NznnR-5P3Mq zk3@V4%mBOHbB((CMj0vTl;PJ^<FDF%R$X)>H<R)1hua_LulL%0^sihQ1Hmy^8_fVE z@iBLG(2REd_U!fcz1CW>`sCD9#OCi*T=|6tCloB{1jm?`t4CJ@#zI(F^U=?<_}Sr_ zNPvoq$7rSV;UF6S1Y%#lLZcq4vDAVp{Hw0C{0M9s4Cs5(<aFKI+#(nI5WPCPCM_x} zJ=!=gQ`hbIOU)$tdOF<D&YXS+5pQStr)Z!;JpZY)-Y7G?`meG-IXMdtk;$0q3kcAn z9v_x`{N`=it?sqNp$rUd5&dLjI~}yc><ne4aVZI}WwKw!*{;_(uz%}5a2_xId)|J3 zzceA}uB|Wrg7h}M{Y5vc>#4^Q2|ADWVbN1y^6#Bdu`dfkApeJ=AHpO@nK9N$km>Q{ zbrt<|e;2^A)|=wZ^LQJ9F3d``<tk%Bi&#|R<5Fl^uc;(Iswi|ZeU9){8C%SNp^-dG zfEuh+UONsaia|N`y8sg&?orhCm%-ZvIP2LF(#j@dCU;9iDLXcQR@j6UKTTJSrOMlM zQ-}V8Mx9?88R_W(qv@6Dv|*KzN_6l=!wAVndaU>pOH1ehoxV>G7d{4i$;=7bXR|&R zDc6rz?XQCM0DO%KglD8HgoXq-{6;tv_Y_`=^fU%~kk8YC4}SJ_`#r5r7my-)fBk|% zL?3R>u6tR0oCfcp{t#uHt(hub0`T4%rtyKs#Kc6-$C0K5Yfs?1U2mh4#mE$F7@8Q2 z?#`sN#LVtR$&=0nftUftFvD+2he$BqV7)4i^wE#AsHrlBsS4?lG~ug>j828(VY;l& zW!IwQ@P+oL)ZQA&<l$3{v8McA@_TCv3px00c2LJ7xIjkx=uDyz285#k7`SKSeZH0r z0sM+TD&3~(HP4bgk#(z659%~1_&WFVES)t>FFGO9rEv@DyiB4Pn~OKZ&}&+*6@|XA zgrej5EgcB!Y2?FB$`gFYfb~xE)A4%b8)koeKk^=DKkP6`W0fof$YJx<;mMaHps2tB z!$uAZt?hL8nh)K3<&hwY;2<coSN}H$YS=C^V<~c=(Hs$;_=}bIIXE8`>Hu}k5Hr=O zi>0<3iVmznRpPJr&q?fSQS97c{g}EXAaQ5E;zkP8@D*EphC-}B3?T8JM<ZIHdW0xz zXmFiYl_EpP!?FGf@RLJds4#Geuf!$&lrIdIe+;CSt4*7}B)MJ*)QWw&J<?e_Pvxk^ z|Cn`olZlQG^6%QWe3XI9i_J%*J`Z3o#ys7xMr5Z}J0Je>9!%3g?e>?vnd2giLhY~S zkp_$6<-e8flZ7i)?V4LxWu$Q#|1GP;937<Qvtlwy*WF0FaC9t_jlNyHl#PcbN4eo# zl$T`c5rn1jjp0Y*0kptf1_BFRdl#cW6J<&lqTz}x?)fr@cpPbpr*}1Io=d#o*?vsF z4m#S;<NfVu^KZw3WM_CI@`d)&?3U{7XaodQVa+v6Yc`L&EGK}WVLqPFigX#o91^Ov z36AUhO0863$PKkmy_yW{iU+C1;s^iyZ=!&~Br_xp4S4c=N=1%d`}XCF9kGB>W4kCT zG?Ux8;ynoMyhxA)(PxgoJGQ%967dCQcO@(;&+Au!8^%(QpO1Y6ay)`^jz(YKg9Nbq zGx4Zv(BG*kd_%JI(+K5f^WVvZndq_Th|F=+Za~(tKzxLJCX4;AmgV8oH~tFe-(g=5 z4zgzkcaM(R>GY0ak@X&=5#J+lnTDf>*-75;j}ruUHduYOI~ybU;kJeL@4MBW)Ka&| z<7&XvVIDIc$NO*F(na>fud=p4Vwu5wE=_srec~@C>3q9RCNEs%-nvOy^Lk@J;uC<| zNSWvv!jny>x@wq!@EaUV`+M=%PTiWkAw$>7PX0I^gLNYjy2vfQ_iX~%2ZnZ#(0Y3K z-AK#K-GrfskI0?=nsF$3<$TWJ$5U2wTwEMl%5YHj!<2}k`)I5QHIdIuX%ZA(0(8G# zud9Dy`}^g^1E!pW&urW1latEflN%G>8I8-tS&(Xxl&0oxVp!nY1f+Qz!fHg|LLbr( z5daU~ca7K3u)yFTjf>ZP|4+dd?)sL({FF&05Y8=ibWDYO9VUPHOuuynZVXTQXm!jI ziB!Ha6@G@`5HhIHxUSLZ)1dRu##nu>eAUf*b{MN5rw}}RkT!j9%$}B$VSMpc4vShY zts&-Cd~+b~>Uf#V3u)=`_mbYiUoKq@JW!L4TA$$11kWs|Pbu<xK{f&(-!>2Efzd5b z!eH}9cZV!>W(g@Ox(idlZ!ivn+dTd$I$p2A9Szy{vXPpY;$<_)9`ZviLR(F9bKe!? z);O083rupp=jh5K*k5J3M6wu0lL|z$JndvFx-W9vWs{BvxgDciDVB;R%G02_OQ^j2 z6$w-^uK!Xz1bltM`X0bOHPl$#J^5i~Ug{<0YRg6VS}?0*k1>jRfj;)@S5}H<0phTZ zjZ1PWA+JT+ij056j!qxi{>r`kAO>5VF2ipZfz<PFGH;upjyp`4*1c&})A$rsbw8&D zShX(O=VfBz3`g3MNz*qiB?=`fc|ayOjQkhA)OIaE?0p5b{-MX{PJ*VQHk;Ep3nzy0 zte<3MMdJ<+i$Vc0XorhZ4XBv4kp>CU>GhA1X$i0c`t6L>)bw}AD9EuH#0!u39KFW1 z(dn;fQ5f3*xa;!~zCLCAxVUxmMu$+1eBS0KCSHV59qEDz4(?{RCHMF{Na*lJUOe?d z=<kR8JkczVLp}*Q996)4j_)2oL_ejCZU`S0(b4gJ_C;EJeB}9bo!oE$a8q(YxKJAx zI(|mSz|=8Z)hfJmvR}@mUh%Q9;=;XkVn=^5*t<`?g4@u@ILA|JE^$cMDgJj3UM+z} z>P|#n(2=a7jR+}N=9b%ABG<>lB?CD<ir-bAUzLp_C+mT@6=;Yt;1XS3Lp_xMBldiQ zR?Nn5ida>QwTh>=Hz|;YVwPHt^;P-@hemw0tC|hHe%^?Ks5h`#EmSMILcm=Usea(K z6IHompa$D+AJ2nH=m|?OwK)<sHb%rjMmTJ`Q@CGEdGem*EmNzMR94n=6dphT0z62# zV)-&W&qTKbx)A4<5M5rL=>6j{L%#ABM{4BH(o%-<&yD|WzI&EjKnqvKDRSherJ(^= z7RmY*vodVUb3sgESgix3pElBd`mSifwA+ZkEG#7OCtUE8)M*~nMe{b!*PF^`yz~W% z<?Y2@EST929J$PdT#$jy%&a%{6uP;&0jX*wI+--@%!+d9Paj@GBGY5=gZ+eP2wWEI z1VFf_8rVXK!atj+`S=L9(-A<R)YK|sOg~HyAH*UtfoJ<)F~-^bz2NyJzinj=vP5?_ zvu;bb_H(KLoIa2_pF%`dl0Vr#><8N4D~RdSKYs^s6A1*jMu+o$*3`%k4GeUEdyqb^ ze{|56ADT$17?1<?zW+63F98Ha9VGIdot^tyI7lfBTSWR)NI>+1s!sDYmSqFdfu)pk z&z!@jKP_$?XxbQ0B+MY}H#9V4d%U4WE2ORdH3kF?%-Vge8%^%Tw3$HV0-4%=&B)?} z_;`O1Tz?M0v9O?vQ~QHBp)ECPy*#)E^AgbFj0~oNZ{NoDBtL6vBKweswzZ{TKozpp z)jxiYsNjiKmo-lN_rv>uked4MW`W49R-O{wcSAYM!ygZL_m@E_eG$^!jdeLqM#fGx zkmdD~DPA{oecX$TeWt`@9Ki6mkA(U8`N8F@grp=nNoA#*hc>QI{}*9HW6Qrk+dM=s zShH~ApM&gQL3Op<*nli;wYC+IQd2B2!V(f?o=}m+Lf>m*n|AE<{EEl26%;AT{40#! z%?g@{0?=_3&Djk!@aAn=;K1T2?2wZY5`qYtw5qD=^m?R&5xDeIHWR+T&s0!YNGT-r zT0<lCIVIrjEey;nfDt#nk}6fpI$7b3YcWB9M<ThX@)Nk86dV!)^gzM<U&J7xs^0F* z{5u*^iir~yQ3#&m1rWUYzNLQJ%0%KWd(Ct7C%WEZR<hM3iY~mkygaY4kVX>RR>6QD zJ8+H&K_j`%ZX#u5&?c6PS0zNHnm_32kpz8KQ$qvy%$+bS3<;k&Lom-QGBOhN`PSO| zN0i*e)d_*4JWnZ&X>ocu-L<~g%dVtF3W`~ipH<W$5p$dsa@`;gP3J~xvXTc(cJ@@= z+BscL!lH_KZnE|Dbx=lMHZIu@Cn7b}7LtpgKc90h3)SBHvkx-BI6^)>vm5{7GA4&1 z4@`l>pKIJqI@)+nWOxt|{2IiIkRqL5AwWfx#rlF9RlVtnbUeZ_{)evj(BJ>w?(FNF zr7_6sfkbt<*)NRYn*7$0ox}u|Zq}Sc|1FJY5y(~x1OEIqs_tDBPfk_)Q~aQHt<lDi zJq|A3@@ONPqNcD^iPCa%=6toj)J>v}rAD%{np#X(SJzjQn?8+}$aT)|AhJ0*Ip;Pf zg$|HIu#*Ka=LpNcG#iV-&%A#{0q^XA4AMg&_hH*4gr6oAGQtK5&+m#a0T=n%^OkLn zRk4h{2bVed`2k>DeUV;QAWZT3Gf|_{UUGK(-C;8aqcgX}rl&KeR5>@H69r_g0XIoL zXk-Mn<l8qqA|C6|oi;9JX56T#4^s^ZBV%LYAPSop-ShYe*Ya@a0XXKXu`Gd*gcMT) zK5X^mUI1<4zM6LL*^r34hAUVR@mTr_aasLMdJoin!~lv-f;Kxm5uhBg;-e}tB$=98 zc2#538fzha#qcj5LA7kNerd@~G&DS1<tj!s%&zs{vo{Sc5cM<eV0DS+F6aC<)l-xc z6Zby|?+5P+=+*a=t_Ysm>7kX0$t{|-8zd$GPv7P5S<b)$g0qy#OtkN@BL6=NK%dqK ziAhT{=i}jdC0}?-xficph2kcdWe*A2v~S^4BWHRytI4#9^ez&3Qw>E$Dcn4b<UBkk zl_8mI2J=5bKC%4wV5TboejxD-qG#6!5iB3f=bg?kR+46yI--eeM8(Bl2;U#)Yb4qI zh)qm1w4DEmYaR27rTw-q@ofXB0XXYhdBwK7((;M0y2i%*g7sY&$^KL_5H82U!U8qg zzvUnCIX`i+$Wmx!WhD{{NwA)7y?ShVLezbWAbylPAXi$|-Ganu&+#IKB8P$^cZru; z*61%DA^y4KiO9Iqgt&mKgIyh$_!ZKs9kRN*${4O)tIh=KB(SwT;$n3{_Z0(jDnGx# z%Ec`PT1aONDj>rn#!~|(-1xfO=}PMAyj9H=!NG{O#EQSBrf7Lb-@i@h+d8Z0?NTG( z$7|IVS!qM<&iV1<YleVJ^tZyocy(i$t#!lvrX~Ws2simxg_EX|+S;Vn3r*N8B!awV zgN{|R5dl?g!5c>JP6|aHsiw25WSpEv3xsk+&?(@}%t}Bgix10^n^?fk{I4u}?OY%L zeEma7Q&p?PXs<xr0#E$S0QjE;o((Ejq|;M-HeTM)uC5o?Ey93+h+$9+pQ<0wd?$Y8 z5l%u+FQ=BV1#Yl{lQ}Ut8CIG`m?88zY=Szh0QkmPxp50F4>w?FA^!KCAYux75s+}t zYh2){-ZBe-g#bQ6h5{{kwFrw)%e{c}gAD?Wk&2>|-$u^=4HjAmP%+*O539ZB&jp1c zOYbW)Br9XsZcEE=pr*yMG^EdxyVJaW=+mbekn%7Zd9MK+BY+8fyH~#cPE1Njcn#*_ zv&&%*09$NklEHN0yl%Uw=H`3HPxH-3*RoZ&+V|OKf>X^urCTe0*8RHtQbokAiyFx5 z>lZlufudvY?Mcvud~<{kwY;@uRcqh9e%FT|)FR^6;vJ$Loj5$Uo%1suM_wvL;~&S4 z&=3CmY%I<3D^i*;^J=f&XP+~3Mt=N?Z_9K1>hmXMKN;^Us$<udS^j8dT_-18?JD#@ z4AXkTucH<fat<}Mz~z`+m=Douy>Xt1@&dal#&bIWRCUx_6#8&V#8<DBzqInS*g(4j zw{QKL_u6^D{X=jIF|iVt8r&GdY<9i%6xM3}8|v3daeq77IQxOVEtM{Od-qTpXxL~Z zyuKSrpNRQgm!;b;qhKKI4(tj|zSJmlGqa?rsi~5|^>(jdaC?(_kSp%-CuVD?$k_;o z264YnNpUfquCBc7ciVsfi429Jh#lj!PTl9c5j%Ui*c1|oJ%OSTmysCQnVaiNAC*U^ zZ*NWrZoPeNoXeRpi%U)pzQ6Ybcz{xb<>>Fva^$lH1T8CbX^YPSmJR<`(sjpU-F{&s zQHVq&Gm=e`y~!pcdvDo$uk7qiwj{|W*_$3S*?VNmCfWRs_xFC@Ki;=^p6|HtbDwiv z*SStmc7eZX{GI0GE(rx)RX8k*vadgbI1psy#-=t<XvkhD)8fMcee*AU;(ZzJe{OtS zzE>zE>>R&~tLG=}2K%b6mL90<>b_IT@#~DkO;kE5zv;T3oaEk`)#^vPJ13ooXJlmL zw(#!Q>-<LhqQ3fC%nWc)QuYrK0!YZNwkq@lP}Q2-+GeGL9=uW`wA(mv)Z&$`EekyZ zs%sThAkf~I@a?}WUb>yGHTw;}etWb@n+Nx|!xdU{|B)(#z}^+QqM~B?4(Y(+BHrri zs{M)G8(wub*%7I@K$&FbrCChE!MVXlu>&L|#Qwu8AexbgCc9I(+wCGw2Vaz>t*I$J zCPNI7x@l!44;2Z8@bIp(7~vn<rxJ`0d+QuK;E;d=7bJ|YjpaA26hO?9F0a-y)Hi-# zL_xWd@TF(res{Dl7L-zoq=X22E+>6Kfs=P3H;lb=KnO5aAbo})UhV9|-yZm}py1AI zW8-~Hvhn`DzJ-kWbOiJ?e4LYaDRgpiQOuAJ85v1%&iA=<=OOCAVF=af5fu-rBJGK% z9L;c@@OxZ;2nr?T<*{(1Kdhu{$G+s_!I=dYziGoqh>uS}M|X!l@$Q3oWw*m^SN&>< ze<YHo!34Xt*8-3xW}EKLIpf$v*%}pf4>Xma4?bJTc|?;6hmonN>HgSsbL|p0pp>HM zw){BHLZ4{M6VlSEs%_)GYPEenvRMal6+pL$2-&U4%F3RLnV&Y*?WUEnq9ON!zuB0x zeSrFQH+q@q$wML9yycnNwXY)mb*#kL@a&Qy%e4P%z7@u#TiQ4RoqFEq|B895UZ(Ze ztYy|eXJhmK`|V9c<m&|sWo5|^YVSZ35uXu66>{%JWDB|+N|mI%gpZ)k2N)=k(O^+T zLgLxnRe!zDfM$xUxYyeBb;FLCtgP(9hS^WFqSW)9Q%oR}8Wf+q=37`=CObMfWDjqM zXiBjWN5+`cT3o6HGaC}xM2ahaQYvUtP*A`<xR!)NjZ;8Cm|BWjYf$?sZiYN2G)-k@ z>Vmwbv>wZ;k=00E{vIA4V^^7`qN*kew3SQ6{dOqMVuIxn1460PKNfs;*WO=fONFer zb>F;62uaueH9n35YMeiRzB0XjY@8yQmQ|foU5&HGa<;peKm2w--*>S&b{Gzx2LgM) z&IhN)f(OgXc{7hsy+HOLDJ?srIQrF=gOwEtK#QK9yUZgUXmC;G<@Wnc=R4;+k8K;u zN#5IwS>0|syb!LOB;g_)z4lbl)fESf=&iW8xa>f%v9YnAQg%VXqn9r|Me9Nt@bBW| z<7a1QBlY(7PAI<#{V>TL>W>7`TBV*8kQAHaDFZ4{G=TRD5V#;WjT8@$z+wPAw0&x% zUiWJUaDksqSun|DwNp}3ggnjEBun!W7ICgmDv`!))+5BJ;2aY;oEL~}9Jl#$wdL!D zY}@R(rbL7U>dlWIi?BL7J)dw~6)*0)v4Rxd(!xTrrum#EUQt^c{~ij_`wn$jK3q|} z7945q@)h!ul0wqb70|&E3>52+Z+%iwbGl`UDl5OBr|)U!;kPVTht6jOs9`j8(}F<7 z82S-I5nmVs89J4e3bKdaayIM&4*<fVmP0;R3hI0M7eGbX)oR<-&ivQN9{6};k#9ga zM`31N=*#fN_g5C1i;GXh5hA<72e6D>`Nk$D0y%xFzB^Ur)7sgkR5NLxlhx+xl5!4d zYHH>|3J>i)Wu?gv!#m3w8ocmZaGpF*lDr+W1QfHVTIJ%R;nl?{rjwx|iiSq(0FRiK zhX)Tkaer0hMiI8k><ZVt+W`i{AxSpX6&3zK3Bx|!I>8pAsQ~H%_GMC1Qh7tecb=T_ z&79%4pv!?KZ=3YN7-}#(X|t&|vaulpGBJ)CR25HP^Mg`UD|5B(;kuWw^0Fx9@cd53 zt=^JP35FJ?4;dJGdFlON?~CBSD#^~)7e%*$w}r63n2jZVEr!xnh5ff8ax7hu7N3@d zg$ihLc7A^ES+7-dNUONq_9%FG>&t3tLMtkUQdT2@!WbM>gdO+s+c$hVx>(y;AnxHx zQ8eyZ5**x)6n_wpcdz~fwN%Q753M63_<Uq6z^ufirur`~@*|&j+*&+5ErUA_3POvB zj1(<+(`F$j;o)(X^eOn<OSh)I=$~h!REBPTfJhE305*Z+Nx|Cv3qjv=J^v<OAD?^o zLa4UNe}qwB5IuU7H#(|foZI-OBtw!VKLJmq>vOcC*s`?u&P**zkO-aiDmoJs_77$J zVHpt*vppLx7_}G~8`F1ixCx$JU1gy6vh7V<U}R*>hRq4OXsF<@&f9RqHa6Zu)0UyB z%WeO%@{5yO;UGQl=5pCu|89kk{~AP%KYsjxRUGu`lNde$fkCAdEks|aQY59MkdYW! zSd1(zh($#SLCzGMo}T`N+0mVEu8es#5clHD`Pv!zsZ`sfSyuaN-Mc=zKS5QsnO`#I zGCDK!B>&T=U%*>qU;7ulq2J>RDfKxj<VNC{t>jXA5u+L3T~n?#o|cfDyidriojp8U zS*B?;kM*{A!QdfCkXX660uR?%D0q1vgSK3;nE@2AtZZy3iuj7q**W?zOGjt+WFT3$ z4SJFBUcdo*OerWxuAwnqD6h~EL%s1s7G6B5L=;I>4>sD~G(Ue<Dei*@4{97%=!?dj zK)n2F!z}BGNdGnLD6-S8-R$!6`@jMVH&I8bBU;VVK70VD1Ij80?wN~^u{`WeOiakX z%OL&c>O_w3ZrEs3g|xu)-<GhiFS(qI%pKl#3Qb7N;fP#ts$=Eh3A?#=CMIln_GRi% z#;Kue&(PHLA!JGvffRy*IPiECt>1d^&-+xiq9W1ce}3Xq7N=2JR^|t>TAlGBiGUZa z#k(aJcoS%7XrQZV+uOrn)@=xco%ksa%@VUQwlp_*5clk9pi&s3$ql7tYLYQS9=%Z> zjE{(C9FOhc!T#o*zcTYWaTN@MV!b)5T(#Zu{J1Zc8nj%O-x?Yc#GbgN^*_8kI5<E? z5}eyIdqwTH$LAW|Z5+{67c^?|ba?oM64am2P4#_LGgP-!)ZP7&SCfdWoLnxfu#dD) z=-w6wR(2ZR+a%OVGASx4F|@b86CNH8aY<56?$z73QevpX9xgpP6E@VnY~WW_4m<DQ zphAvC#X3PcPee-UIlK#KBhZJAos|`n`&uP$zz@W{P3y^dC(9*^!R6BRl_%dxizi?N z`yXCk3uN+~7tN0YR^5Ut{wpjoDM@wG@Hy2}lS_xEIdDev4KPGYELJ|j1Jt%;LUuT5 zx|qpCC$QfXb3^Q(s&c`buHN2Py1LBi@`Miw37_-w23%bUbg>2LmWGJu221DN9&m)# zf;ei?IBJN%(FoM)X{Z1&q5lCuD17{7aP2CSGhe+8=gjx-E|7e~Ycki`V)`IUL&E2V zba{zd<8{jRwXl#%Nd?^9go<@#80O43XErr8r$Jh~i;M&=Be%VD#DkrukNZD>lC%By zLKGQ4UipAFZ!GhxWwEo*s9o`|efsZqeU+3i0Js^NN#3fdaq|0Il=wXjt43|qMQ_w~ z%^j&5SPOuzvKu#!wE*gF+*|uo!XgAE1OfqYGn&Owe-7{~9l0~)p%?6C57pKVGR-|= zj#^SsQi|Bvcm$AbZbgN|@MRNs6jbKoy7C+zXJ?#8+^(d&9!tBJ;a4(P&<ZG$t7^M> zwKaYZs~1kZP{>;*f)+K|0{?YC%aZk6eE-ap^H3x09))zCf+cH8BY5t4Q-SQi>+fHz z?X9h(!msq-ZEw{^O6N@t9yz1Xbqyf)x-hhMrceqCT|gxUfH%(2P}^%7d!7t+O-+W~ zT|2Iw^*muZG=x3qLL_Bn#T*W%@T_WHkQBZo1*!_#*dVM=J88re6<NUw55gD1p!~w? zzL<nyx4^zfE)Y5t7xy^&^6yI4skg7a;(aKIIbY6!K799+N8>%!!k3G#AH;K8>l+xy z^y8UqsLBJK0hpDzh`B|1D={%~22f>){|$MbD1F6lnTYwz=7FWO>oqO6Q!~NnBfG`a z;SDiMONO2v>2}SgBR4+C9y%r_xS+9#=2<=~hrl~n#zj+VzYp(l*6DtILvQ|)7<x)T zcArBbNPg$xiwJR}iT96TJA$xFL`#bo6zCjP5&&~Xj3nS2s~4xFX6havWnB*s-1fc- z5j=bTQ?JGiv7}jin_$JHs~5AOfxuEmMg|@h^?$JqFKEzwsJLk2m~sqREJtC^nmzSn z-0;`ow~*sfxjH!wEg^QpE>ZTFkGdrUqbi2*(n|#2bNU=v*39mx<Ipj?H|oL)0eFCG zdEvK1El6$9)B1y(u8^IM{<fHEVVsd=4OF|>**O#B8ZF%jmf<Ax(IvC^r%L&p5*gM+ z3`A!oisxzlP-==vNTC1QE}Y$~z(v@@dul&8xZ8ByP9DTRt)rn6L>;!ivE9x9(8Be} z-0@}8PFId7l#w$JSF|p25<ceUDl;=O28!pt@A(rxX{Ge@=g%4Jg^hl%pPx}N^1ks5 zJ>|7YN=`;V$<f2l-w0%0pf!=z^UCf(maBngq%zgjmDhsj2)Eyx^P&4+7NbF6ZD}b1 zn6xBaMI5z(zCJFLaprHWMYSYAKRh4Y+yvz<Igt=(@syO6?ZyXlA;oW>`|~H}A15Tp z(9U%8g6@&=`9-S6OUlSV&j$THQa(SK<kFdg8K~3#k!w%OCK<bn=64-BI4U;en`;p& zZtd)RhM)~#t)f<)-n3+XRoZ2`9QK~2-g)Y)Boi5S%WiGGp47}tnyrY|G0!cQtBWL) z_XFPlUdL3)hltU5Szd0vq_j@q&5(!A-1-{3{U=T5jpR^L9DepkY(vSkzm$B1+3dBV zqFv{72Ob1v|80n(u*5#r*PAKpT|=??Wl}5hW1GJgS$=|{i8BEMlpJ@--ru?7w#R>L zP2cir`p+MF_#`Pf)VfTjI7Ldw1C&xv+AvuH$6Dz8<h%*_$;y8i57pnHRGfXuL5$ti z-JNt(`y9_AT>FC0<nzZj0h_9&n!oy$6OeLZzsJ!cyM7Z<1#K}4vMzyS(A1jV8v`h~ z)OTr8I){ktQRm-2Mlz3GRCR6bj@AJ5G5#PZE&>_UN(?<bh*b-nMfKG3lz#teMa{0j z0$_h9vmcEbsqC}X{+{UWD;1TePu!O&;%M{Ct*zq^4-a$3L&m5rUO4e&Om8@CLHm`s zppi0i;8K@Q<z&NC2}8`gcWX|eVW7S~Eh#avJg<mp!HLIy(b&5v<o-B_>OsZ>TX?*Y zAu~N4R_!xgk5e-P*Oq0jd(guY#~3n-Gqbe6keBQmWh4;|fH(=a1GRY?m^y)3Ao#N+ z#iUlE8L|@D{awEgec|fE%KQIpf7*VD=0@0mDWYxv9e`f$d)<^m+JOaXq-QDsm-P2f z#-$loPJVLXO0No4K~kjcvWFDtX%!L#u&-Yinf03dp|-HT3}|7^fjAe?ZLC>6HVJ_g zvi`l?tcJkR(W7Js<+%9R_;@r+O=7?xfe)m_K;g<nAFx+%QgwH=@F1q5GTOVXfs&iB zID1IAaO5V8(K?tb;eY!!s7at156G;XZ{MgFHpjqk!tUZk2e@4@vh3{aRU4cg-mIS8 z-o~JW2A&^{h-gY^yoLN{+GUue<~in5(1uP`q#5N7eo~}ejYf4d$jvJ64ic&m93fke zg?t`Jqi5CCt_wT$(Gt#)F$N#|*A5N5yhv`c(6c(A763zCdM4=2ZN3M_ah_p!6;(8l zqo|;9x?_bw&7hJAoR8+*NCyrj%hY3%GJ|K*Nl3VzFmiA9tR>>$K)Pk1d1~Yq*nUCn zm@5%|tN#~0Z5JX4lMo(AV}UBh_~U$Tl6xt#rX>7c81c%=5Nrah4erb5ABqbNZa4u& zECkB)gF^=>K>%!d|LM~@!IQ{a;JGt6NJmIO5HvH-hc}jVV7^D*<ZQ*|$9H{ks3{dU zTwV8C9C8LuLBVGbPys7Uv=R)QEdPOc7L$~8JCbIP8thne3JTDg-Bzly(O3Y`vOg|2 zva3r!IVzn8&SZg~UMfysOWn`f068N=N1@;i1pl@W@++j<w?pjm%I|+%Z?1v$qbFo& z_ym;K0Y9067pSNlzssunCIQ_`=L^<t)F={etkQAxG;6ZFr%xfliZMA&68by_wuB#o z0BuS6w|7SZ!tdyY6TH5uq0JAi*&xZ*z{bW-4Gs>*9*v%~L%M$}M>>DFo-1m4$dGM3 zxq?}zE+QzX)7saymGw$8F0i}1+u4k~pQ#ue1#mpdN{YVSI=8gk12dc)UwziCa$rMm z5W=V^`5Dh${*yg)!B90l-&tE%A!#}=XmX~efj5`*kiC<WfdLcfW-{GUmh~nnE)WN> zy?7Dpu1u57*vtDp7=q`MhlI%=UG!N~EJrc4<HYEZ*lpHdaO@u)e~|sLUQK@}S~&U< zl3^Dor;=u(9@gn!TU#WI4`qH$A|SY|uC3bT4PNhZP~JjBk%+v~pwqo*jpo4TvsvAD z+v{N{g-D1_e!3SDL!5n>hgfP&vuzF-8~dKU(FpQt=on5(4YT<%Cyz}wo?Id=BV%5c z6#&4GEFY!Qy!d?c@7<d`GNnJ3#Q^W?)|S=BaZ6D6_V{<vh*f+im=(tMFtoO?xC^ar z!g|AlgFzt8Qf-l2@~(Ob2}?(~;0dLwD$1@-U?D*4whjB14cCoOO$$}@>~+zanwbUs zBSjzk8Qj;`CuU`}|Ea1<1tKgQJ<*e<C6iWT42fab$!D{Bcn=Y=qJw<z$ijeO-dXIF zNy*A;9t?A=R)-4w;^HD$>zD4D6HmMR9c*J4n|sR2!$`;&9EZHZ`mE~)RiACAQT5V* zGk~}kz})<^uTS6J9(nl1RdUH)%!Bg$GNk$QE1ZQR@g3aX&Qw%XZimILdrj!`0oPs| z`93)GSF0E9P{dQfUo9}|Gj#{I*i_q29}<?ca&m?wCaUaA$R!3C{hoU1b%`p8Y_(op znUnJ_p1Obn(vV_RBQS9JR$m`NLqp>*ouk*Lnv$6*3~AF8ZyiNg+nFs!+vcHxz8&q8 zCFlY`$gng={Qbsmm(~{p`btq@ALN~;^Agf}vHM*|0-UWCDNs4s{~j`F9(WWfKI8ls z!{;QIT%w9uLr;&K?L{${*B;WG`|$<oz(D^r)b@U-?pnVN7+^80tE(F$FB40}{hFPn zN={CG^-cC%99o7X<J86Io(9I0CF5}53yoMfLso-}f46h&?<m$2s&;8O8kfI+=O}<2 zUrj8g=}O?@V04_7zp_B-O7S@-XLN1tX}_<67O%j+u3ad3?6o)urXyBXR<hFu<nteZ z=SsZtl^HqW9=Vv2(Tj%<{R!nF0$t}D{RA&|ud%l?GJKT1(zK?*P?Uh(4=4>oCnsYq zwdPsr{(h#4ZetOsxB3Ps;au4Rsrd1XqdQV?yZ3dl%{Et5AqNrG)!~I<c2QA;o=(-_ z@Nm6Ru?oJ}1g8R~dA^3O#yimL9kD*KDdrbm2q=R^vA(%`Tz?#!kP!OmlQ9@Vh&hIG z-t6PrsnB-xf9Kvl#!mPEL#)%;hj)?;{YK2{!+9*9A7A)|cAjI{B6pBN8t*IT!Cd4O zl?5cPR^z2M;KT?}l?a%|t&8`Nvi7Ooe{~<kn(D|yQ0+!UM4fq;d@RBT?JuW?r&Z9{ z7zZq*7UMd{JJR^C7@3*S`E%P2`9>^`m_i=8QVHV%y7;=cN4i>Nm^;4PYQeq4lxlZY z0S?Fnge=X{cTHy4p;Q1R*H%?oPxnO-t-8qPzc6pc(nx~C&-9WJ6;C84IW1&oXU_cI z;BJb?`I(}+!ou-sPL9EZRckU6_H9&>s991W=s;Nh^og4LrSql3rB=5&`vF)kPj`88 z@}L%k9o?=Iglwo`cw-q7c|(5u;Qihe2XubQZHL;0eUD4#J9(c!x7g@Kc4u64bzxMn zU8;@isB5<v#yrA6GH17NYkbVJMM4ON!oraU;8*+K>-KMt$$wI&SF>JjG(e95hAx1y z_s(=V`1BTtX=prpL`0MwyA@rg4DF54S94Td+G`E1s%PuF{1t`g?=k#wzv1S9`(aPd z*ZDOtm3>Z->)ix}8}+kOTj%<Q3Y5}kZg#+G?71!43NqjWnFEb}-#&g!xBA9o&kn|* zU2Jj!t~=Tj#nkQhC_EaQqzgx9G?w(!0M!u(*Qc48nTEpTim!$A`;EI-dVGg};~(2R zC&qRqZ^kTbJaF_{dCy|R`_nL24mU7+bN<Gxk~sfEKMf<(tJOaF8Zc5qY`)X=U5m`^ zT?uaZiL8{VX0_4O?=l3y4?L=&BYI}UUCLX;kw2dHI=rgc#pd+`%8gT#{})wWQBeZn ztJudRGum%MGH74EBpBfLd?<L<dR$)WGEB;l3tr-j&AzL{ZbyVHOYvE5>^nc*Z;8^q zDx+eHqi!c%u+hy`YTb^S)oGaCey8be){QL{H^$G=b4X(BevB3a{0~?|B_`n8Zjw91 zcYn%Gn0~x--gYHHm)Ii;Hjn4Udb5FR?r&67V)ys&)J;z<_$)4wx3`nK(XLZgZ9jnv z%DM`8os&%=I3_yDme4~%y;n+_=g`9I+_oQ+H(~NfI__3bR(sue?|9LCzR~%$ta#k4 z4Fa0|i%UvqrY~bEyNyQ<`3PO!9+yGsvb-R#?s1c7b$5SeVk$nc`8x3T$o9gP?{6#4 z{9rKn2<mFI&I_Ef3mkMISj)Pf`0;j6DakKT05rvJalPjFR4U@_TS7>WT^+B_u-GPK zmGF&t{}luEBO_A?3Syb+!S^A4e?3s$G6QvnsEd%melw2xp>_VtBmINJL+(iN$bbK$ zbX4r@t*l6V_XV2+U;C~`{~E5ZqRZL@I0%k{aJSua@*m9?o7c0>n~QgYuEY2G2hgPz z?Cbe|A@)}LvpHKf>KxBsBq(ivq}~3CG&DBGTsWG_Wcj*Y!}6)zvZ3@__2G`PD+!4F zX{D-`pSDw^7Jx1u9UYy46b+(g$aa!1sWl;sP8(QaO?*G=yzJ4te5vijEK(n&S^VSA z*K0-w{bChi|4!fVjFpwaMj;qI@c$VBCZBH6mXle78xDnK-i)moTk6=h_s*ev&Y;zN zQbjD#bs>;n?sUbr^BU4UQlCy<cFz<5`f(EJhlsbH`ry9iop@5`5v^j?+=hk-7uVyh z9_2rA)YgR#6!qM0NS14q{sclJ8&1fTtEQ%FhDj(H9}?dS<@w_=ni7rC-Po*MnA&wd zhEO#;EDD5!;n<Q<F4)|)*lVjlm21PMcxhVcZdRl>Oa1a?A_VjvIk|e?s^s_l0LUfx z5|r77N#~&q9G0c*GJdatt$VlQle4ga0VNH}-z!)Y!hd*-9O?tevm*%Q<mA8wq@scJ z?$h92D~?UNrv`a8!H<OS5m>h`|7qad5!KM3+dcBA&B-allxLIe0MRR0WM#i7hddL+ zo9EsozWPXsiD|pf$?icr&rG@%7Ebhux4?_`u#S$FPD(UkKMIUr7E7LYEWu&LpCWE( zC~iB$fxxddTa7lcrz}+_sP;XxZ7&`T^iktOp86zr{A<XLabS#&y$dMnI#!y8tvJxO zDF6|F*AvFpJmBnnobC2{e=4)%A-BUaE}%#Y`<3{qsc~3UnxsxH<*MFXcBf}<kcT|y z;E)GIsM@>7hQjhvbGhuNf8fQm`_2qEe;)hWXRk%UsI;Q8($%ZA6X3RyH@ltkm%`Yu zlnhZS*os-xE^TRdjiI5nY!c=802(~~JFVUg4)mu^ZwtTHBj4fiQDYBr3+RmV``Gpb zz=2cmriLP{$;nA!K_k!(tz((w=OzGisqqtvS=WPsLiv2a%?cnvrqo*&)s2cXsg*9} ztihn<J?6cY4Y{Y5x_S&RFYgL)yQJ=(S{fRlz*NwzFdNPSmDOCM-F^N>@3bpM(6B^% zofxS1CCQm(;fg4zsy<BKT!rfdiyesgK4$792+$aOG~Ly0INYgs<%1au{?Ysg_d#MN zv3$*ho4K}sb<7|7IZ4&+awKW^%P2@F#avueTL!Wd41MN;r>3w~Fz4@s5UoHuPu$1n zDyk{>+*;~E0ZGfK!rTJ~B+9@y#8|<kwb%BQRU>osJ41QBWs?t~`w4%OGDr?$>93qJ zoX9ih#tKVnX0af&Q>ge5U{%O*sj)8$(+JGj+e|CbWSLkP8C#Z@seu}wi{)Vmd*XBY z=P@Mt<ZTB%cTGQzd^or|-whaE5m9rEo?k00q>qhDMRE2Eh(-eER%jotD*jXcY6#ME z=x6Qv-5%mH^SM?~JU7<0HeChdxnH0c`cHf9VgQ%Jr@?hD99%f2Mn|g{ls#=fk6KWD z9{|g#C5Iol*pD8m%F3bH@ZP9hV?VrGLO?>{<8JcEw(*cz;AF4;zTmtVMl1g@iG+nT z+nmQ5r_YNYpl*YcOi_u%>meUMf52a-YnWItdo;HSae-YI?^XoNeaKM=<kP{T^4mlI z>*1{}rh!zZS=?dxd^jm-jI@!wZA-SGprCA;)Q$($%qTG_0ir+7#@n|(S>%t&5w<_G z5W7Ch?X(O`@4IT=&_5OUn-g-Q#no##^Jq~%+^yZ!1$-F2zX)i#vPmoZ$B=HMJ*}LS z1;l@8weHLK<{iqM@s7LPa0<SuP<~N{LdU|g2J9Fo+hVgfZMzsI!X65@wh8rxEdI<j zMID{Ukh$wQzoYUWKc4MX>NWUNNkoGLVJ5ntM7OuUzjfF5k1~{jH-dt{o_|P?=zDr^ z$mWZSg;%VIA3tJZ4RnqZ&g9uSIBqBR_9rGMZ?AhtPj4J~bXAZX%t}fk-%N#&M+&8x z&|H)Mq(G~np&<-Z>$=VEc%M}xXsRZxFon%1fhhu~oL13YUsip?w#6a5tHWp4Xt)b6 zvQF8fNO|v8cH<8baYc!O2v^|DGkW3be5dm?JlXDQam5dv^rjTv>N41xZx&o10??>^ zWP}~!n<z0te$kGLm5)!hu(0sENx+wW&=zMW5dX~Nf2>sTMlub!Of`!tO&q_IFbX8b zhnNr+-a0zIXxuERugOrV51u>)!S+pC92b}0pFb@G)PUwdN88>U`dq;H+)3hmc>Tay zJ6s5;CW3mx9K04EkOS7<a?)|j>O0!Rw#$hZ3Rjd+?%)&3R)Afcz|6$J#2rnCzmbT9 z_%0C_5`e->qU3HE0Dx@nI3FD!Q!y|wd=d%g?LMNf=jP@fF)Z&G-CE))R^4=|*I7Yg zE;^oyK>?Vu4NP{`zBEdK!lJsNfwB7AH);3``%}?YtJeSurlh8}ft;lU?`a?|JQkd` zs>@KQA2<CPIk)biGi%pHgeR9$Fuf#zrPnnu5FnoqhV6cg%5MC+MMWhy${01`G?72$ zfLjIP`0g1%5(A8>+bT%M@Kn{*z%{6DXKjbQzrVjiv++>bCEz)6<lW?6jdzl0xIrSd z1LhIYSd6~^K~Bq1{>$DhmH7Avo0Qg=U=ayUimrS%t`pCBh#gwxX)plqQdJH6_wSxM zW0K!F8sEUudThG_9l@_nr<2aYQnZ;|q_Ld@GgGtYFX~V6=No3U`A#y=%Uo@b>K^HR zr2Uwmj}8#=;!gHvN5?Iad(Ys2u+wHyh7zo?|3^qdIQgI2C{*4Yx*k)oV1QeRgJK~y zAwg{Mr7b^+KgGh<uy6QKoYwJ3(_c4IOp5!)9BBqsnuC**L5-e;s5{Oe41=b#7IXGi z!}5jX(x#}54;x=1WpWnm|L)ySNKORx3M%Udf3+DjzmgIgfJni&j>BXvw{yh-@ZcDD zV6poA+e@ueRnfe-J(i+VV#y}8lKJ7+m|r^$g&~q#+t|#h=wP8jlH_~7JgG%yX=Bsc zD|qf6A&%dC7ZVet!GNy#H${OR_z>O=2h@C+gR|g`BY>2_Q4x;%pRN4DaPu`C39ko{ z>%2GLrv*3$fj|o2_Y8Z&lc^431ZqxB33*xBh$Fj?Kf!rNsemhCyyWqX_`cRyB$R%R zqaB5gwrlO1CMi($E-HlWLd?2#foi(m*e#j^o7YFn%EFwQA0i8jidtr7_-IfQ<eD`= zPr1{0Oh(eYNqe=R9KCqux%<u}-Z{lBQ$pBBz~}k_IRf%s42gT>ZB5=)lzG1aAu#mv zLV<kEUJa?Tw)W}HF~7}c)k0x9_M3LMIuo8Toi@B%ns3=QW<uLx4NdrTWn}uSl0btM z*~R#4J#j5hiK37P)gYX(u=sal&BixS>WLJ+<_<bYpghUJZ4Z<h81=L7cIL={b2qYo z`+ULl+?lwFSk;o}Mg<ABL;?S)Aj^`nVVi=Tfzf=^RJMtn%f~8j9Eq7-&l&mrVfS?T zT9OvtR^4hFIQmpmWIvyr6{w?6<J6AAD$_kV<J`*<ypk#k!8-;s15iu+nwde7ii`d5 zp?t>^t}ZM*9Ap|1ot>|?CY3{LYu#bELo^~XQH2-6af2?7n=UdaM;dj(-X96ZPypcu zGHifm%TQZDMRj(L4(r=_X0(1v?wqXp1u?dC{jB2q{@b{T(&h8!>>Uz0$*eQq$lHE~ zAf2pMU(t<;PP~MUAK*o9?9^s#2w~ZXme{1Hq=Z7w_U28|wn447jT@iMO?O@b%xrMW z1pW@Jg=gQy=f}q02euWSg17y6$-mFuIH@TqH4I55Hm2;v&h&}a*B+&ql$haL(bc@+ z3YY)9B*V3Vu+_t?@B9840N%X?<Zo3~xp{fe1HOWB%$&034tr0GCqN1J7WCZ<<BCBH zV%bS5_M5HVwdaL<7U`-(Hl7WK`7>zsFa5OVaqPL$jjbZ`irKVeaul+^f4}`O{82KC z-jA&<?V^ytQ}@RZMX(xm$*Wt90PMXN5&){XMoU{_sJf}8bU8Da*E!cg9w3*WK<_er zHs4>e8-j&X>7mg#Ms-7kldGtxfcQaJM#fU|8G@>R+a<TE3L8q<FJHb0DJl+rP7Ah{ zfSz2?4t}esFdX0ZoPm_(ozhn>sBM46=L(~CX+EI4%!rI}{ZQqhq4BMtfO|*D^A06N zpxE+AnPy&CZ%^SgOttxuBZ_{5f<QAmXw<BwD4-d2{m-8tAY3yjSGPOaqok(pF!OZ; zICy5J!t$qQkwodZJJ84&|5CF(DH4Y6=GwcO=%dADWeqSfGj~ITwXY%<!FUG_-QKR` z5{{PBksdO?rOQ$jbyObhuZs8C-WP%94QyCE@83%S$u`rKEiEq}EOP%ta1Iz%fac}J zi(yDOZs7KEBMGX1r_(BymW4%w<}TY!i0ugR_#e<|jB?_fJ$~!*{epWZazJa@{%utI zWe<j#a6*>O+0z){`pwx><uWK#=@Y?X>CQ$6TO~JOoM2=Hj6<zUPL{B(Ejb*Z04p1m zr$E<$h_2zsgf@tOK-Ghb{f+Rk+t?rEiq6i`Go)C5&77RD?uERt(Hs`{A2k2f*S{|; zlUn2`BW&Ta2^a}bTcA^cj)ch6epAD_<?i`ys0y;beq|eL*KZTU5C)PAR94{R3Rz(J zw{M}{-BRE=VEML=_{%8q9v@DS;r0(r{8ynLZ)FWYafAj8d!%>(<oocMKuxf3MU-Y( zfxH#0vcD7;PmaPK)3T)KLSy<$#16Sr0=ez!Y?=v(r4(XbYiUgb0~1?gN!z|9dpBrN zoE3R2DF?`X*u}7ysipjBOPp<0=~aGNxI>`?rkLO=sPnvcPXhlHR0usmK|$aISbvy? z>nER&n&+TfHhwF;1frcXopheX7NomIGU`6CT%=s;Z=@uqn|WB3qB=EpiU7lX`}#HR zlI(mR&~bNf0o&E&=8F|H-vRW9n!7<C-{cQ(pJ5dVL0aPO=b)pbQ&d6Gz9mFTnt_k> zzPf2O_S2yG%-x_T`etQ*$YM!S1+Ds_yWhg)fEfXMLt`JGOj&vH(r2jctg)OgU&3{w zDJfSbcW5mYO4dC@l}6zwX9cN-+FLNZzb%OiCpW}xBBJ$tK=Q`g4TxxN!Il9v0&E!v z<*F7J)PUCPHTNd^Ux&g;Wi{R&jZt~uim5=92r(IUj7AbQ-G9FZqO-w~5k`=Q4}YR| zQMcoVpS06nkS(H+QFj`!Sr;L?1C2=OorbN643UiftbH6HE2I6;Z<-3bf~`aZ<cSo$ z2bn?x=a)21du^B&QgLzLG?V-YzJly83bzLw*bzFl4}#yL7Z-1{<t4z8rJqJdIke#v zL(RPsM5w!`729Ep1X~l_DW?dcJBL25oP9n!IAD83MizNwM-*J!y}nMXs+uGPrYO_w zIH;7j=o5#w4^Qu2^6zr`*^#Jy9j&-Lw7bzpjf}*^#u_j(p2(${5}Ag>rZq4&PS}~% zl3Ogl@cOoKbXy~iy1AeMc?`Lht#Y#CN!M*qVJ0Lc{Q`mmbYMpOB*BxT;6^nyJ-w01 z?}^Kj7xFz7_QV4b5gZEXr+S6MZzmtcU{`1sQv+yRs%vfhK?CanRUGy2o<s%*@nDso zU1b$VC)jX%cY{PWs(Ewf0hys!zu(zUM^C>9vb9D~BZX67JwR0}(M|-CXSUJ|XZr6% zpk;ZBtzHZ-<dX@ZA5)5l%L$75YgDf?*0`eBIT3nP^ud!qK{0QP^y%x@Ftlj7q0J-Q zSI@`i9bIq5m}Pl$DCaD!xY?3b5<q5dZH>L=P%8-<lEM$2tXkR7Dp99xQ(>#egkUS- zc%7r*x8{Df9Isb7cQr!_6l#r9hWzeyYEGvhXlOy;dLQ%vvG<eadRYhA1q7ldCm-GX z?&kJ=VZinZ6;5_0B%7&VXKH^P-_$74y7jh7b7W-eDG&!KX_cKGTv!j1SJ&2_v$BSQ zIJ)fVNf#S2Hof$2Uq>C3Vhx6+x}|0WKc4g%v*iGI>Ei4>bYskc6JoH~1Fs#_dgdl3 zXeJwVv1Y79P9zAG`Ky}dr$zKh?+BoIfbLUG4G}nFjo4HpZoY{SS^|K1Hivp2BxLG! zHu&J{MT<{)3s?HBK;b(AeyA;#AaJCmrWOouK*B|2D&bhGZEj)lxwf`8A>$~N3|wZV z-(GD;&*KS!!8Lvy^-~LWMn5rS7Z;9Xm;m<paoU&h-c$j$K5^*x1~!b=%*?DC!fg?J z8Qi*LT>8OcILlnzm`g9GPO<75xVqsW%CE!C85kKCzyWkUPbS$UEBa~Ub6GBkQE+-P z=I7@R`un3K6+Sj0L4btQ4TwBP8~2OVW?YfGAOYg#ZhR#z9aan0w;mfqPd|+I8>ajM zk*Ic)mxjEYTwZ5qC!?Fy{S5hMNHux%yVlCsC0+WgWy>2(Z!|UA;QEGplS>uqGpagG zQuLukqeQz_dU&{)mWj!r)d&+VI+1#oSjdLk=I5bTfqcFZU4s^={-V(-AoS#bN_J9` z_#?Fx=M`(8OXuN5q~LE&kmf=z)8E^h=;-LEu{U7|J>tEGGfZZ}HkcIJ1mWc6kjo+V z8$@huY=otx?v!hS(C8;f;0z3qLHQHiZg5<q&73&!Y@I9W(4J(CGO!Grz;ya!!dGLB zv95|DrGf<J4EePeL=nV*-@=F-v1}hwWuSC-$+KbXANz|J@o3RRFitCQNpiG5dKM3) z+Gv_gm=xu4Fooi66*0tYgST(rgIwf35_o=r@NW_32lQ?p*$2j`i79%dE&b{|^g7-c z&ZjZrcL~0Oo|oXYZK>B=Hoa}a!0_(?R)gpH+43>Okx2`=aWhlX1JL^+{hFM7WzF#z zL_3n;^e;0SdB0c{U8IXiMxFEO1#RAP?OM~H#`B#eX;sPR-=QH2@^w1O^mNF70odye zT#$&P_I|;_vU`ymEzmPokWzC9Yvn*x)X0@CarrP|G4|UxCmVNnMJbF{@CM^{aeS-= z(FEp@>}T?w)+FJIyh}srIvfzplA=4iN$*v~XnxS<5s{K6LKSjH$VaHa31$N*E0>cI zwp%5FD}aD<+$Y~`d~$kbX6P%VNprVCwQV|0n%-Qwo8`7BGu$F4qb`u8ZO;BDZ~{9L zdF)_%dWt9Arn(Y6I}5zrA4eRe5SbQcz|0W5mR)EdD)G?Q-|IX*tt|pll3$DTJyWFk z(t}r?lzwj)KC|nJd=d$0ZQ;l_G<P12f<;%8E`P3<2?H?ny}kJ{$@)s5;u>GID^i`> z{^wigwjURtksQVpAUrVNfa9QyMA^xsipp&YLXx-2%JIr^9k0hmNBModBV!F*>VZJn zhhYwSe@`3oVFmv&43adG$RFMWHrw%XmlGvaB<Cv(o+t{I!YV2%$}TRReN}KF1S-+j zM*L*KlTqOQ-AozQM$Yl_W&MOKH3!rN2w2Tu8#vLh>OwM*Cq00>19+ZU5nn)4P0f{V zY{?*Hy9kUb(fuhht*opZDu^AlY?;Jk7B_vH?+d|1MdP;)S~79ekV<epmAa@L&VSvE zx4F;SCvSJ=bSW76aSvekdt*2T;l(N|i4`T+8K{0{neIO@6jqJ`c>Bh{x^^GK|L-u+ zo4)Ul)QL==*>jP=>=Mt-U%znEf~|5ay;oHLpS-<L{UQc%#_op%)i*r2j=FkE?wd2K zB19W2ubil8z}At6kFAqaU+uSVB%8mt=wT#j?x@9!cb3S3N~yVn<|`BTERVr142*+p zG?D}~)YK54e`8f5zvkQTV9Yzn=jGwiE(%>A8#HIfL)cHYR3V9AWI<op#GMSLq3P+h z&u^}h>+0$-%gHd?w~S%5fMBx8Mq*A5<=B*CIE*+$%VWo^0loV@4dTdDc#<f9k*8!; zbJOM>-TX=is`SPhuxeiS&^Pld3D}7vlW-5FA7LQqq}hpGZc|Uu=B>j(Q>25e$~=bP z_Yp8XXNp>iZ+3LF-6#LMpLp(X_sn_JnF+D{Q{qUPB%>*U&-rFw2G$<)xF0Oz81g?1 ze*es-`kZ{$X8dGkhNN%-*94@3fiYeSKgcl3zm68gTeCyE2+%^+6em}KiF5`jT^8o% zG4Rerpm#<lNkc$^9fF2J*!<2r$+(0bQ;NZt0s_p6((`=Ie?~^tqk{|<6}`PLwGw*N zXr4XOxb^-CREUcB%E*58E)-&|J=7A>v|&VKWc%+w+Odrp8Kk(a9-fjtCMNz@@ojEh zkv@?kkQV+AD_ym)-!udx*Ag1&Z*|G!%V+$Ff)`JdnIYg^m!Wh4OmM;xN7$1*rHw(0 zst+W7j8&TLpS=`8X3h#1q(JY@ee>zFLbwgl(UFniMH7a9zr3-yBlHlRLI#Ydj|yoa zQTnG8=35MsubYoH<pcxLKJcZU4-S#wD<_j_0N07TNYI#N{|IKlCH{^?fzA%-tGE+$ z{oj?(b}ZTZnpjw9{&Q2udVjlLb4=wnI)!qcQn~7PMOIeU_1k-{&fxU)-&&ygZv|0Y z&$hH=GmII%myiZH`LH2z$=#$*y0fQ70_2jQzI`xau`+q{6kVwDhffpW4>T}mx|Hb& zkhmDof4vFvM~ji%+}(AR#=A^Ika=3Y{O=~e<m9v>|7r%F)c94!lbfn<O^P0!!ksCV zHMXLzE)1&LWYxm6^Z!2hMM(Sp5fJL*ka0uhuLkfS?bB`&A-SRl2F5xJDQ<tt5oAVB zKR==ghGX3;p(h_KgeMrO{XuC%o5+~XsLV7_$^TapOnd=V{SNG?ZzMdvVB~c9HP;!N z<MjUTxSKg0*qLhph>+yH>9#M5^Q4A}QRCyg_^(dGVP-FFVO|UCv=Hn^MvS5NU}%b- zR}}S@T08s^eU#Ey>c9>UK6?W&DEFtp$`H^wR=U}~eYQ9M8Alr?S~TNn4F2cR1#!6v z^b>evtFU6BaW|i$%a?4koE6LQnIb;f=H{krxklG&F_VGfQ-mpb>~n5zx?VPGKJT;T z>6<sg>iV^`)E5RJe+G%E>NyJ=tpvt>b=0JO0I;B<BFlPxWq9+wvicQ_m#2Gsp&^N$ z^XZoJg6~iljOP3LACZ$2(&d$Aa38uk{{QFTU0YYk&J)3381W}%$R?TCk*qBtolIaE zFWnMuSzk{XSUW5?Rm7@9?W#CA>FWAI5ylv7mB83b5$MJpMOEZEP6Hj{XSAKi1L@o^ zaBuFVvI#<-kMw>3G+(&<at(ma&AdH_z`a67JlhCxJ^?)wtyJ6fgPWgyz?1n*kBmGk zrcrmy$%0Bu@fPAfuLK?Gv4;l5TqxipEJD|(|3CBK_H%e)*b;T#-)SnUqKy%8uw79I zdmg34(}f}lq6hLZ;xW6|2oFZA_P}VRQ(rig6<sbdv&J{k@(z%mNwvjHZyOxeutr8i zz@=aK!s^c3xLIB)d*Ev_pb)kTeJAA@cr?+7&3J126ska3NW=bNV+8=%yu6&i7`6yU zFI+|%C7^Q43CoA&p6hn-BRG`C{<#TYBx;j{cpMCO%|bcjIx&adzGVf`^aawDH*EY@ zF|0MS%+eT-ese`xy4KI~sFKsL`%~x}8cHv6U0DCOTvkuLX7tK6B-d&4?CSY>kVv(4 zbTZ;`D;6Be=MHlKNZG$Ha=i`5Wc>fH<GAC2UMkJ4c`!ycx=(!znruiA17P^f&5g9c zRnq@kAG?0c(Rx>Ok!#2HCXgCDk-+Z^2E0NFH&7kNWV&*ibb;#|3KBZZcW$V!voM>l zb%sutQ?4kl<bDAnnkJb2YJt+?Th<tJ1l;%CkF-sg+L(ZrV1h{53Y#IcsxkWJvx5J7 zid|H<tRCX|gG4%+v6m2zr;crx<|QYdmqj$H`czc8D3mABmag<z?HwO(CX|z8vs5(3 zv_Kg@yfFgg<RKhPL%)74Kqp}osBI>qY|`*<A;-tZKgmnj_GXnOdGKnV1%Y@*txEo@ z8HgV{l6jZKjys%oOnyjy)KY>P>gxKj<I(W=-{E>)FL%f1{`Zgu9nb!5JeS_5`cAkw zzqt7Eb=;>c?d$VMq$e0|CO&gN<Uh@?PR)hTVzlXX-Ygv}v=99vC@E=a$I^JZ^;gG_ zk(d8&AWHB0FF5mLls}r}sB(EGq6=H{ulj#m=r7df*bn^4VennW?B6sll6#VI%iP{) z`-S7=_4h%)o}hHG3B<_xXPu>^GuG$N>F$d_9&xizoG~bm9z2Lg;mx?xf@TbV#^GID z5t{_2-!?w)sPA0!@bmXK8I5CMV|&nca*kKLAPSyj8aoT>nkR#Cyq6*+8sXRnt~Nef zNk|TGkE+reZD6`F7G?F=p;kL3BjdrVK?GYVk*TW%=(Cb$Y+Q>F_Z`RCoYpq~{Nb_j zNw2>QiW6%V5D;kE<P<qOKi8>{&EkgR<o}^-jMx3(6L$6h_Pu*MXPdt#CTf(E@(68w zFQSk{3Qqa~8sy8I<#p83sRI7Bd((kCGx{c?zAtd(nD*DN-ksBYM;49FkroLAwr|sA zEiXz}fpY#9i9{3s^XKK3${^%9BdK8YuFWCBxfg(hgq|rSCj2JnU81W&iVifJ{G^jw zRD-K>vA*@_@#8}nFkF4(R6aVLRZj&kd|>VTPe;e6hQ~5#KxNtSkjg-gkoDgpHyki5 z_i}U|ZK^9PgQ#xBt%(2p<x3_->E=JX?#;-{eIH&>!F(bsH#cLoyuUpa5t*4}`P5Qb z*5>B=`JpgSXif0iT{tOEaC>LRzUN@aVvdK6?GIJpd8yEcFFvSU#Alrleg`*a`581o za}HqY?%4QvGx2}#)EfrKU2DgE>Rnn|s$cy9rMsbngVL?#I-$}#L_%P${agy;3fKud zwdFD}W&`^EtU-5R&FE%#ekYg0yLK`*9;w#Ci+~skFQl1li$ohlNWh+6d-(YHs2NiL zvdfJ;1ip|TV*lHA+xbmRJ_>Qm`So>mO9I7kd=p?|atJ4NJ_~4MHb-*bDo3b3eJ?OJ zIQTnst*W`8fbNeS7kEQgs!uVuvm)1OM^(C<|5*kpvd;A=Z#?MgZFlXY@vgQY?Ecd) z#U>U)f;k}Z^ZOo+gy2511T)tVOMp8zYvFojdHo%faMhc7)Xqu?GjMRd1-vRsO9x0x zWi-GgT0j_gUcmX!a&zhNlrt&@(uvocAQ5?%U2(}=?CpkJMQIpGutO1eu>ytK^i3LX z@V)tk8JTSo^=bF_?@={cJzz%C3U7IO)A?GFwiJiX&+D{TFB5$|3vh4Vr2@UZU%z4o zwp};{u1=CCh6vy)9BWC;W^L3q7Zwy|wBdTlp~+Myp~v@c$Ai~>!3UYZ;vuE;xgQ9= zQoMjF*HU{~1RSt=1O&?Idxvs4lb@Lq1#7&%Ipw7mB@hV2Hpg^ZRI^W4MMP2(M?Q5o z3m7+Fa*Z4Zk-%fwN4!pV;mK&;`SWLPFx(el#O>`28{upmh{64x9(-8sTYNVsKm}uC zb!Fx7irv<h?C9K_ZuRuG2jaK7_mlMFAOZ*xZ<1DCGc!*7fHr>D<<E8Fn>WgzaHWg= z4=<jTLSg}*qYa-U2iv8jwzjiM8Ak^P3+oJoj1pV_Mx!~vJ+!K!BjmhO*K_;jZ|_~t z`Qt4Y1mdaG&@&nu+P2FG^?eWT8jqu|G7ziJ&f>41LG?pqy5_lEH9ke|wbwYbwbeHW zL@B{Qh_^=M2gs%80bm1KyLOX7?^Jq1L+SBZa?{zL!V>T)Ij)z_U&<B8(g&5s)IZ@4 zkVlu74?YcRt9<r4(~JJ*qiK8^{!JC`3hcFbz63r0IWWbpVz@Bc;TRAN><1!IaNx4o zEWhBmDD_&3<eWL4_q}eepWT_)(9wBL^YkelH**m|In$C;-LHv>b^KSqXO^M`ug1&C zz+Pv6t!iBN@+bgDAUi8Fb22ME{i70nVmVoyUL18!V`KYELEFtGuALpQ8n&u=OE$Ts zuj}?3t!kX%A|A}hXH!!fZ)eC?Pew<4$;&f=byQ0Y#ohmlG&hJ}wlFehi~O)*antiy zbrVF%MInxu$-R-QtES1ccLiZ+VitrU1V@#9<pz?&tm6RxF`7tC>CU9`Czw?mI<aPh zpN9{8Miaz{WQwlnbZ+Hi(;`F%Yv0a|VGUo);YBp?-OkYWCoN*=Bh@i7@@)pHuvqHT z@ch@~-VAtIj|P25VVK%6J${ex@a9o1oT%c!!E{ICe1Jh95)vWshdN0n8}W=P$p$IK z|F$XzK0A^elWP{+_?no!>MIF>S~nwOR=#@rB{fEqV5sqEWN1hyl-TkxClW`bCcjv< zkPT?b;z9E#mnJv8#zZ6}P6Pe@m`KH*7yF3j&U<&*upTfZC^_uR9O^B&J3v|eN<%^6 zi%Ox2)<G3aK@gXaXoNEhMd&p*Nt7=Zr<^OlVwxKN>2myA;>gu+j7yF;+Jb?B;a3bO z)7vf)(XVU3u7;L!nfwiX=lsd$d@m$_m@sDeB?JD~W|Vb8pcP=SL-9)@EX7kzz_;7m zshHFH#kr%rl#^Cqy!71%M?tlfW&^42x~FS_3xP@nZ#0Wltu-~j8dkP;K$o$-y;Npq zrVHS9EO`f*x~0cjIb(JPaAsPJCshfc$25Zo;p^YO?4p3}R8Q*PC=>(*S>)yAYte-F z?)$H)(2veboQr$(y0}0M!4)a)C|2;sCrrsJ4)-HCf%$hEa{v-A4-QH>3PJ^MK*b35 z%a46QDhU$F;f)xQd-;y=^o8kkkoPL6-wQg`YL`lQSb)Xh1E%qkkX;q}L~`^lbmSDq zhvDYXIe$AKbKIf|j3XA@uYQmV<ART*m|`Gw{I&m%NlI2D0pY=&7Ad;ROzQXZ#V~m9 zn~Kcwa~W*6vyJ>ia4=@d`wLt$pEw;GT^@}_5_Scn<sHf=2zxS-(8n!zDc6&!H@;Hm zgfE#JL20XB^y4R7htzAqODCAa=S?C(@0Q6cghBT)A(bvqQzPkRf)d)mA+ty*WSi0$ rG-$$S*m+7+1Bd;vrAZ<?Yp#9Em)`5izePzyf`6o5$%~bU===W<Fk$7% literal 0 HcmV?d00001 diff --git a/dist/icons/controller/pro_controller_midnight.png b/dist/icons/controller/pro_controller_midnight.png new file mode 100644 index 0000000000000000000000000000000000000000..8d7e63f0dddd16057eb043aea3a59af5055a261b GIT binary patch literal 35893 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
y?*@E_R%RZRLdC>q05i^)B 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 literal 0 HcmV?d00001 diff --git a/dist/icons/controller/single_joycon_left.png b/dist/icons/controller/single_joycon_left.png new file mode 100644 index 0000000000000000000000000000000000000000..5471530340bf963323909422043f3876c6a7ffe0 GIT binary patch literal 25565 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 literal 0 HcmV?d00001 diff --git a/dist/icons/controller/single_joycon_left_dark.png b/dist/icons/controller/single_joycon_left_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..b6ee073cbfaebebeea14274bb75a6129d117b867 GIT binary patch literal 25682 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 E4?<E1$p8QV literal 0 HcmV?d00001 diff --git a/dist/icons/controller/single_joycon_left_midnight.png b/dist/icons/controller/single_joycon_left_midnight.png new file mode 100644 index 0000000000000000000000000000000000000000..34a485c81d103cfa2ca7516fe4267f6db708afda GIT binary patch literal 24405 zcmd3OWl$VV*e%XNkVS&q1`lolf-f2Z1b26LcPF@$;O-VYxCICh+}(l&cUk0{w{Cs+ z-~E578VZJ)?q|CnKc|UQRFK9*CqajUgTwqJBcTij2cH03v>+7V&dATk|NemF0{x^4 z0=|4freA^I(Hv#8T;Slae*JgBr!rxY0yl|WB{f}D9L!xkjGWEjJUl#Dt?X@FOpF}O zSRI@#GEW6b;NYm>K1qnFdS)H3dHCwirSqO|@V6+aG^|#xI`Og^R@hZI!6$zwfFeL> zAeqgXZLm|;;SvY*A~6Ecr$Cy`&^;*oKnX8zj8E_2TGE^pmkW&ljIutq_kH0M_wWR- zlkmfz)z<yi=>y?A*KjgoVT(8%mlOxbLHl5^IBi~|o1h8v08x&I&}}Lv8_Sa4(@g`b z_M{F^qrrVnx2TfWH1;n)^^w<y_FCr33AN);Fm!py*=c&Xp_b?mZGhHXN|Yl5*;drF zwb(@oUFaAXUoB{dFUV}^!_F~NWv+qqYYcHTv}!isE|_=*MbGyIW2~8+Ip9UoW~@CE zxyRoOaub5dq)y}Fg!$jl^XAo5)E=w7u<n3^8^uL3Tr_Enaj#6R5qC18aIA5DRkhu= znxmQ{{aKISWiMU-i26~myH4jxg$X`jB2LK=B@e|<jb{id)mGblS2iGhH9qU@za?Al zG;x`)4FN-CGV60h$N%PQp=*ec#!5gB$<Fw&Ts!%L;NbQ#!i^4c&SDc08l+>(qU1;f zw1pnHwh|)C@rJDXD^bEcPS*uW?>2G1X<(4t9w)A?WY+r$0Wxb3HuymqQ$JOdWE@hm zT}-8M4-&~5*L|&c-w7#RzN8OI6pz^S*|=A}PI_aWg{R(Btzt3pYPy$*2L&B|t)d4H zF49OUUAxAAQx0yzMc(gN6DAqw-_zq%dEO&*h*VGcw(58KmJ$YAOph)&l$HZQXz-T4 zP$l50&L^gEprwU%Jq10(w%ZL}l})$5E4h4@54f65cNubfEc#En)Egv(-|uURJhT}z zlTl5Uh%rj6-rKjHT3<beU7?hP-ws|cX|Vnoi9~~hX1%LKGkx-M8KwR1)FIv>6a+T3 zqFBM<Dv>kYc-*c|RQ%<6a6C%z0>@8M1ISU@P_^FahPhuBWnAjh0fxt?g;7Vs8ya>C z-`CdqK~@{2A2cSiU2c+9_9n3Ri>RO=et9#VAelkdDQ=z<EL$AV`MmdJLtZ0Ic);tW z-Ii0Klx~sFzhx^zU4C|pFdXP_E4oS#2Nd0!a_wccC{ZNE>0`Fxl#+^{H+YoT2Etbz z`LbWDvz>e2?zm`E0piouyWa`lts--vX%&|p@_u^g!dA0$%Rr@pqm9k)I5CPbIvpUi z&ee8R!(QXo&lI#-m&_KT2VOj_PZMPp`YEBNDzFA=Rh9)oR*n%9l}D1Mld1;z?56o{ z=O)(hF(YDVXV_XVU6www0WZbXySwZe@)EUCe7^In&0a=@V~B~?q{*7YQ3bT}m&eO) zL%z)K`vI+QdJk*1IhkOn0=*V7LX+jxyW;W7v*^%%sWz97WJ5s}40d#hqDYqoE)&~A z??>u!_Rs)Tw#emITKVAxo6SLth&xdu(RV(Wge1;EL6D-%QCUn=k65>^zH}Lnmk6Xy zZwl_}o3~#=6C8y!%1OAXNFg}|Gz0@4UDr#$C&dtJIDIhvt)~A})@K&~pVtu*$#U6U zsgq7Gy3RtJ*7rcnqs@PRS3rVFn%4fz5r^08jJEi5`kpopTZGHqo~A6hgzr|d0}5;Y zF<X>?MY{;jIkBcx#CO3>k0@jQ5gsZk8;SgFY-EhNKbd{daV(hsacEzE`OC~79u@O( z5w-<0T&Rr4<RMah107Ga%Q)YcGkvyVTLr4{sec@dD_DauM09|CZ*+9Ov5?y_c)E5g zZYvk&a+~kSyi{k0gt{ta`}dvk9><)8VYoz9R9M~Qti&OX^SgHLzQn7J;FgqM)vmeY zEi4lkr`iems2WZ$PA#{^X0jcr@K~4e8~^5V6YxOs!VCsO+rBDbCX%;XCfd)I{2P%S zd3QK|XJctA%1sio-1ii3%K0`_J|qA(nrpUOOly}@%CR2WiHc=3(S^9!YC)NS`)M%_ zbLC>wivmMW`ZqTiJ^esQKgviP#ppcHpJ=g`O|J0dMAmkw_c`D}+Ipo%$VX@+9d_$7 zy8iiS8wB~wJzb8(={3KKoKYaCsjNJGyY@n~;Ig%dWn72-h0sZt(0?<!_Zc=avE~_z z8{NE4+3f{m6}(=={k4Ne6dp$f-qeNP9~<rC8iX5!V}uli;^RU=fjkCPb}K~uwjkkv znI`rXODV)aLVZ6jPv0e%H2SA6wf^?QBGau>fCcKgR-oDROe($FWbEC$X4W!~2HO+S zTT^zO^*2|G$_^8Zb*AWf?7m&KEOe(T`gM2KK?)aQ6`n_yDP6#T&bPmrl`HcuhU46X zx>HpRP+diQ<hK06<}Uawrx>D-KgT>PQ7|`6q_Ac-mKxpkH!74uP;SZYo?f0apRWU; zq2Oshv(-pp_q~F$luKN_g&A22+`xSwc5ckLot}E-pq<6<Zl_DfL$5Ej$H5Jy^|y48 zwwgB^go<+?q#T<<$YB#({|c?hMNAC?eD6pN(Bp|Yu9K@~H~4o8S{pc7vw;0gjPWU# zPt(n_%orl#n&H>KhldMKv3sMkuxQ4`_IF<)7h{Iqxt+{`AXJ>L>%9D^kMx7Xo7ame z`n2(%zFX5NN6$wBY|KK62aABMD015O{S$G$u9fd6D{pRiwBLmNAk+DoGZc<-K<c~w z&uir7&3=7;2x|T9eBUF32<ZGzg~kdQLRK6VXtKQ?l`dYSP(1f&tpS(ILT*8DgR<_m zC!Y<A%t^}2E7z#9^6pf|2ag3XELP5nAh~W!BWwe2i<S@ggqEl5*uEm?i1}H5dq`eO zf37Ag>)-9;A-asQyXyK4&^}hVOibr`KDM&etp9kpCH`jctiiPVV*32~vj_f1VJK+$ zTMX`3LcVAWy*r|QMm6{?R7XMj1l*CVrTsd<$RY|DWN)UlZ37&>lm@#AVFw1DdDKt} zfDz;)O-pz9Js#8Z(M+VaZsv|eI-OR=GbgfP7k9ctj}dH3$?ub;Ke{;sQ{ZZ_OIO(U zhreY?S`u`S>h~-i&uRHUhW2G%q@Jk2thk606hq7}hmdq8;z?sEOP5LoGCXMeGySr^ zq`j_ZekfRK82E;rq*@Zhh%N^1aT3zoVlF>i-ZOoFlX87AyZkN9?(mP7fG<~$?@LyW z+zxDHbR=dcQ~DEQd~Ahtsv`}JADdzFU@R70ynuK)2_M|9nUy>qBov$^?uHq==yA^e z!FI{M*2lwzDs(YZR!hW8UYbI`!8~?h>dK8TD2x9p>dR61OQj_Z2_hULa?+>I>{t|N zVSj^1%}pNvUQ`vQ?*TD1DkKG$wB@wtl2BiPjL(&C*Rz**LGX1pcPeN;9g9ApykWlv z6h{4xXz1f4US#NI)>W8>F0;k>_xV#@EWlq6nC+i-dfwL+M=n2xpVTC`8QqKo*ni%4 zA#Yp3&gB|nXz~)*(n@D64&7ZeHr!Z0cH!0Um;F4wK9&ZgEQvVE+XD;hxUZToRlBfW z4Rw+3zc07KGx_c%y&=+HG`>4$7ci8Z@Lg_SjSsRc=#9xYxLk39AffmKCKzfVC_g^! zNFANoFZnCg_ELwBe;2f0+8fK%v77#<h(OHe`ge%P<SGpRDVfqBFnS`lw|qDXu%UQO z?qHYF+;WGNR*Tt}w!t^DbnyX==2v?JElmfC2!|>>|L7|URQ>kC<A;F+NokKNG{Ig* zP3=Er^_y5n^uv?>H-4l>;`MhjUwpf8s5o1+WUQkgzQ)GGf7|40sqs^aAYferJ6R?p zp&ZL`ck5>>_zcu{CyST&((#{|aG13lWtMV5>um?C4fJ|$5622D{s%u<(?srY=N;C= zQ_S4<Q~_sF9V&-tB852={Mj5rCTo+uoYg>1xY2!eYU<Z<D6;Om7ul}h&sL4(d~5b5 zfW0grx7PppO-ra3{iEPN((U_UhqDl3^!)mIdTy3(op~Teaa;*fy1BW19U{HBnb?RC z?tK4-92aiWQV+2UcC}HWTqE+Fo%;C$c|hlyt>d2L8@lfqkB@iVH@l9Xn3v0`{N3*m z&yglu95xiPBY<^m`1j9Rvz+GT$R=014nx&@x4LP2sx)VPN~9!Cufx*`uBa|wRda!& z!@PGlf1EBpB%;#kTn6*;_GG5~3fO#)g-Q)J8WjTfWB=~S{4B@yYc8)1eIZ!4hRufW zQ`3i)1iG=d?Ga68&g(3zWPxl1>;*DOZW6KEc_>Y2mVMm(yzy(-^AA1L1b!WC9tXaC zkaQo>$0GDC$9wTJ$#+I%<>dpv^TpBebl=n%@bNxg`B2;+p7Xm<tUg@NC}g717>E1U zTdtc;jbHna5h4{>Rv3pS)L6jc$jhoL#ot+pfu_hWQHfA-%keWZaEXLn8N6?gA9{Ua zJiL#hY)LtPhyZ@FcKNI`fF)3*WjU0`>UPydPW(*dB_`1eBOXYJ+!~t+n%vwhW9T<g z;X_jnuwHSXeNKMdv`LFM>pqUUrIRB6-1R=dIy7laeMv0~v1tlObF=-{wTvowz)*C% z*OzCRlB!j^Z56|y1V>%$IcaNja@qF5I5I5AZo+@5<c}t#zEH4+JOyuwii<FiK9d4D z7iAVFPMglf6Wp+=Ixof_v_T@eEDl-px!eWg;P37itMBC(8ue4(KE%ZWGD3=<CeKO3 zxJ(Nj)YVcH;*Yjs#I}|!%M%myicBnKe?Ybptj29Qf{=pc$rfwBINhv+p}#rWN+2X3 zj4ZA9&;mImpeO|;@M^;yb&@J-5`92IgQ+!4t=H4z?*}(n(#(e*Ep~gTq+il<O)*?U z1?F?UXSY5&+H7Mj`aOmRGQr5G$?xbO^MhRnRZPE!D{aT_@@aC^s~z>bQy!*KRTF16 z?Q!?>^pAcs*i7-wwq}VYBLmFDC`LtNI}~<c$rAX9FAW)<iUh0I-S4M<gh#}Q^7|3l zEttPqboVDlvsrGrw*J4G?^F8#&(Ql8IisSFTkfy*pWx6?5KSCKb#K0S1iSaOWy&v0 zydTg@A<7#}%pZ1dbd|udp-Rfi2!qZWH{WGTet3-%IF9FAy@!Se>H0my1>9L%XLS2m zWO0zxS?+iHh)u3q<Q;u1prxHud)s^j0h1pwIgz2BP8EW}`o2oNb3~+UKJu{4i3H<D zO5h!vqEBgJO#MJxaod8eHEht4ac;rHex}m&5^E?Vw`m65cg4$R^7c=<9eDe{_d!SH zmJh4&Tx@e=qEpC%6E7X>xs;cUyt_Lc0Hmi14Ly3;#F%s=k18<y`*n+fiD^{pq3g_K zCQY8*6|b#kw<;@{{Pol;CxS(%*?2lMax(VV_e^g=@_DL|T^u4|%yI7zw{r7wHkYbc z;(co9iRM>H69%;OAG+B3sQX6uLGj_?-bCR+mQ_g5)E|0;@1&dBp-O6Rp<l5VXz9l~ zDwxlOP$Cuc5d`$e_&mW;1x2ZXbTQ<yXeQ%<1?;vft)vb$S^?YfCZ2PKF_c{BOa@+v zn6Vd)BlFytVqn9wbw45wU(eDSYVx?Fcj+?Fk-bumLH>e78SMquB2g6;Jm0er5z~Hd zoY>Grg`Ji&n58VY7#U@6KT+Qn7;65}z$sGV9oo=?p>0=*_183sUal%y891G0dr3b( zL|n!r@iAJ)p|A>u#Wp+Aa7^;>93hv6g!LCh)VvDq_TfT{cy#70A7T{j<M<S_trIuW z^WzE)MJ=T`rhQ%K?VqAZW#!fVqz<+HQ*DnQCd#cyd~poVUi^rJZ8g<vP%U3twbPJS z+`*BOIBznEd1xa=^XlqwGD>(Btho`JleMY`ovguF5jc?&n-2(a`|i=h@$@S2hL=^N zY|7ss%R&j2Tv6aHTdlEa$E@S$`($<w&oY?yw;Oo%BHF^G07W1rWckI#))AWfe5()F z^B2v;X+?g)WM-b+iXNQzVAWDn!@6@nqo$(~ad&qjy@5lWcfPlu+H?2AVpLrflj7@T z{iV9d5e)u=!%DcN8Eru^C0WZ^kAIn*@vq7Ejj0kz!!*q&tC8#C;m~Mqwpf<po?E^4 z$p&fc>!X?Wxd~Y~0ryVSUcUE_n0y!BCgMWtBA#$2QgML=t{tg&zqk4=EiFX_)2%Q3 zL_m|@WsDYl+7*?x5vWm{W|o(=iKJF|zVuICjGn#H8&84eJKNEoAFl^_Uv@tL!;{u_ zcM>eHW<_|aAPlRb$8cO%90yITI%3+tT=K3wQ;@U;EiW%u(IxB@;miEm$+nlh6vV!9 zb7Pms1MH`_PFr3YCaqkKZ@VHzLn6s-+IJ!7sXuAA*HHFz2Wwp48%CLE*{CX@4zZG@ zfy?vxu>KZp$OVkm^os90_x79N^WfP1V8AOVhT~~}p*xg#W?bSEbCjpbyPZq^{RHK{ zJH#^Uhz}*l3D2n5+mC0@pw7y0|N9%3%!|Jh{)^@a<u&}l6^tqzcLrUz`3uG1pJz5L zg+NU;os^_567Zvqq`{#J6VKe>DSx5bldK!|G<GmkNzdodN{8cMi^MDEyZ5bI$P6uq z*5esN`u0?;8>{v`OP$AtFpaW%rZgI4^Ctxs1>e_-3J5uKp<m6>J2HD%y9SRXmG@o6 zud|nPFonS_29e4AdP{e>aHp`Q^-lgk{LY0L6C50&o+E45bLxc2V>(`)@$RTyP9_%$ zBTX<>V8P$L_HU^rG>k?%1Y|2>e7I6H_`yd&0*y^R3<m{q5A6Kl#;nssyG}q~x!FP` zKe}d<`WLF^aJ!?c#6yyrtfBn7F`SY@P&wAgBBrm~??S!fc3%7Guf|=E(`wbP9wLGH zs+4x5Bx~8cg@g(f{WCQle07235<wBsv;5KzbsXbUK9gX+xrmjgjw9~_9?##5wGpzi z;HZI3K2~V8?eY#E)_YWJE2rn?u6`-w(bH_Zv^Ct(W*nq<)qCKf8$}I+Z^=m0f~5r~ zY#UvO5eYIh{~3hQ$S)_)!={$=WP?|VND17+a9$CNgSI$JZUj9wC7!a@wD}Ynhj(N< z7|^d-v<W-)Qz<mXqMV6=c3NKtjlYJ;E!He-DH(L_=XcfIN>mSG<MZV#6vL!d!?+}a z-PV{6_WW-%eJ&hYHljw&^#VsN3_wFp7n_CgTZ!~(Z$CB$CslRo7}D=<KILTk`*ft> z>cd9_)2T4}UbTx1$}i~0mM0JHR52!R!i4?Z&T`M!b2{MybsRbfTGl;T;CkH21e>pO zJxy-ff(KU9RNo`7I4P>@hnHD5>%6i31V*y7wG6Z(`I?$0<|MdC{1j)q628O7z{n`c zjSuasZ?nbCFP4p3-TFu3yC2{mb>sj;_jlRIbvi%CS$!NnV(+ka%onF7FRD2F;%yQm zHkKDps{_>dD(@l%{JjYY)-ENV&cAg_%G;6Kckd43J#z*GSo8azM{m4Kmo?f568HRj zQ7kEttgWP$l9Cb}((Byu=aGsC$S)z<%IFhUTjoENS@+56G=X5wGa+zTFpQXoq&)kd znqGDb1+uOBQd=MWyZAdZvCa1Ci4Mp9BVb{1PKnEHF;WF)eJp`@?H&$x88qVMX}ZsO z8{e|>lwa}w_;0z{XUL|udZwR9R6&n*^>K-(RN)W6=kpPHlFX#?s7YFBSw)QgPFvca z=n3(7MIik1JzRn_EVZ^HC|0MrpBv-5`PEtVqa}-a=OfB#$38qz#UlaLw*hk-3n|eK zu<s0PY!L~#^3BOg8zCiD47FvVe7IsG&W2{3TVPQ>GAT(j+V2Grqa|Ycd}A?kN@Sq0 zbkT7o4RDmMh&P^TKKbskWSf#Ap`^1AsI{LRn_{+;Ew3ZudQ4xd_4WP}??2jCUkV+M zV{0xH2u%vvo!?E>aah39eE|DypB8<MnrtNIM73x<g<Wmad|?4u<u_q8HC{t0YI^-z z5m&JE`bs34$x!pdL)0|Ui`QK(hhH!BJh{f@u8rrb#JkDHdFkHNw3O|&vCJQry{L-o z`yr-wJhVT|mvCb!_zTABbp|I}3@ANew}p&WP5$^M?3kE{k2e!}F}KB6Yd*VUJU<`8 zCGYpX2}dmL=OXGYaCkitRq4O7lI&0_R8{KxAzCO9Me`F*{K|^9Fn(xYT8R|{CC>Dc z8dkN|LP)|WK{U+th08b^e8y8mu4}(7^?y6H)ljP|BcM^GJ5!n75fw_H6^RxkG6+sM zcrd?^i?qJU?J$SX#R?!&hhz1ok++|pZ{$ko`60sP?OBqquXVglbOa?POU;u7$lAv4 z!`S7inchq{nVt8%l-1PqwvXmM=G{mkD9wnPy*4`}Y&jB9M_~7l6XwDclMzw-7pDqW zs)Mepj?pBQ>JHPfAERmD^wii3{>{ccCzn?Qa}-MNY-Y6lcr98W4pgEJZxV<q=Rril z5Y@923QdtIK32(4=G*xyDNe-a2nQujo66Z6H^pw7e*|xpNFW%zjC)*MAiJ=;o{KKV zMMn^b1Py#)mHzYze>6uga?MBNet7k2C}QhD`0?h@&(=}uh}UN0&M3ot+<f&2a74@~ zfe^EH@|=EnZu$#Fz8IOGUgqAb^<2yFKrSU=OslB&Rsn_lY#<I-Cg}QTfl$EXG`OVP zP8bdFBL5An;}<Yj>0k(4u2qhVKvxX~i)68G!YnjjqgJ0d;3G*S6-i`cfFaZSkx?b3 z^+(06W}>#ZAVd`49;)LYhyN4b@nRj~jVv`;tydfZqTvCFs#@<RBxI_^BeyEer{4eh z(P*J2dy>0)Y)Uht(&ju9_ToEolxDXx?(=e<zo48JYp?+;y?yfyx7p5QGEa;=u3adq zfQm$DzGd@~c!2<;pRewNdS5-4b%k*ZHEwJVxBSnX_)s$s%L4}uF+deYMn{$O^~1vl zr9#E?)%U4Qb*_>y3HqiSOYM(oT!8fT`d~_?M7gZGT9Pw8w15F{aAIbX*k#)Gugpxq zr_xc6^E5$(<~#a#`=o`*a7XFWkI^484-)kyf}lftRy5jWOU2?q74liO=Ph#Dj(PK| zOj^cx8@enNGPmzNI~lOAuv^N|nsT^(VzuO%UN{ir7L3CC?q5i62<o0Y5wn#B4Ve@T z8LP}ve+2dr06x^cibA@4LM9L8`QkW$WVuiYDM)nMnX`h$aU3U7%7}!HY$0OTG%c`x z%5{ED5rL5*{N))n@5@G)WfX6(Th{8FGjT|b6$4|WStAnap*~Rt%;fR*DB4pHYr?60 z)q{<MDF}?fI3$^HXdf1nUr>*mvtKw|&pDoN&VWR1+UMl!DYihNHHYI$&xnAo;oSE4 z9#XCJb9&F2b6^A;0Z9z5MJ0QBESZO#_h7cHY_EhBJ8s`&)IY9S5dkR0_?L*rXy7#! z_AOwjLBBgtW(TGupir49mDFZwCU?}VtBw=Q6qXcG5Ja-Js)H;%F?XyMJs7?uzp$gg zhKF7m7z4jk3=y?w_9p8%UfB`@BQYV;k}o*wvSx~q1PPvRUyR9*s$M5vk1o`erLD$f zI}~lP*-n6Y6iU@TBoxJkGD!U1=elRIBLDaN`JQexebOX%lhUsKCKPrq_imhzd1d^c z!w~m1cJo`>&;%?_c|1J&IB8C^-ezrs&s9uDF%UqHERBqmAi?T)m5hypo_MNi)k+H; zPk*);3CAj%>{b-xSXgP`$@sN1=MYe_k0ZhdJ;yzIs6$;Xs`BvIuO!if9>b+nG5?$@ ze_V3jbmR#I>+r)JdL2VY>t7P(Xcy>I%A0b|x_ve`6JyNXnoDR%29{Ll4DU|wz^)<H zWM~i?!cg#Hrv>(43|Z8=kPrUHEP~F?mo>VTdJ4Oy-jfa{;oJ3-+^#O`zmpIxrdezR z!OOohp0MoLva+(kzH&OCPd0=s78pK=5<||9!Rv49uY^V7D1`m`xFOP<%-C&EiHF8A z)OwVzR{LTIjFHY3_J~tau!*NJ(T{BLWuU}PU@Ao}$DNB84N}AdxJZi_B5&jP2jlCf zQ3s@o3c=S?rZ4j?8KQy%oer>?HK09hXJL9=wxxynA7Vwc$mTJs20(JdU8W;_Gi)8l zG(s?gpbvXNwwiVC4n4;)1MZJZKCL)i5<(!M2?f{ZCZCzv1uw_1Mq3a?Gqb@F?q{oO z-PW^#u{s_x>B3$eHO&o(WWb}RRs+$skF_05_AR!mHLKkL4cLvzqHu;AH7uh{kC+rU zr)eksr3z$~HvH@207xX`<aHQ3w|!BX8{Hlhu&%=<<Zm1&t*sX2C(t6OweDf~N@!pp z<o>(IU)zjOr#1|D<G+RL7QSe_I{sWs?yLvv;F(}sak+$%XYh)c-9CNhk$)Kd#Zf5k z!q!E#TFYw}2>@JcQ*E(2=Pg6u=*cJi)|^R2y7pT4NkqKmA_(=<oi7H8Nw5RZ<Q}}| z0{wlL|6bH_P)8Kj7uYZ(NCAC2Gt~H5pfX_TJ*r$N-H!Z=Gt^{n@ceXXp(7x?liD6W zk#6#f%-xL!zias}<TH_>L_egZh=$IKfbjHNf}Cuq=I1(25Q_S2^tOx)3S+-ylMIOo z7Gm3VS0?Uss9Y`D2OXjidfLnO5<c-O1ZU1}CJQbUQp0S0&VsS-4Q3+@ik?;7?C$pD zgm;OJnkItwoP*m5$7eM=!foDrv)>$t$n97Szc(5D`+K#2t%|>{<2dyhJ*SDS9V!03 z9P@{<Nyg5*G&=$15wE59Od5Pc)NSUf=f}^QoaX%MR7f!NkX7{q&5t1*?k)L8{Z}_! zZn{Ia&zl@-N(3a~I3v>OQ1qX1?UZuX;r7?&%wHD%@ulH!cO(7iYS_n3DCxV$gUtN- zRF55sy>MfYqU<k1xG$o|9`2ob<g@Pma)HGX{JjaHcBJp$h9WB8Jnpf2f3=s!G@-OK z_P<<!kHLz+pA@T<Wfz-S=4-TXb(=^3G+Q<7`43?~8Kg+b)_<rJ!Ampq!8l&JsZ4um zPH-~qPg%Ok#1N0jC{+sb2lM%Fp6#J~Kp|XgXfz;%pEa2Xc}L+vzL<p`LKBH{Ra$pX z^{LrH3!$IcV%fjo<ty6be%<+bE_n8PIdvd_@*ocVRmPXZ(`UEdCk!-Ss;u5?ZtC5I zz2c+{-O6QA#Q?NA3|GcqW?{g0$f?3^W!z^&9E>DGgU1N@HMAfEo9*@e_62m96D1t< zwQGxp#)W(+?8xtY!bvZ1m^v(uP4BF$zG^+Wmp{#nvR=9QTdlL-hP2>R%680JN6j1V zyW(gu3W9e5q$!^mX?8~Z8O_$E#AO(%dP!(KWAPt!+*D<UztfXks#6`-NBL_%lng|# z4L9tu$SsxEat7h8xO@snVZ7LZ4$do)sta`nTt2vzEdF^ZrSvQ;n6jjaMx0kLT1j)z zs$qeMyxfiyPyDUQLja38dW^{G<uS-g3_EQE?!!P&qG(p9CULcXYxO5(RvEIaT#+fb zX?8kf&gpPIBI&ZvZ8QXtmt+n>02o*V<{YeMS>oIH4+~K-pIDhok-3(}qR^BCgV=Ai zn<qX`t4Nr9{z9ozA~&TteYU@O$(5+cS9Ij99)Rr+rb?8fE5bh#ieGEoDyD63@Om-k zu$y09p)nD`6-^0hje!^%CNX9?i5kVgV~`*s5+!4>!=s>~iOL4@C)9hDF@i;@z{($9 zHDp<fRcVW`eo%9QgxgOCN^^6ZFP_9e=j`9VV-5P!Y4s4{#c;8s4DwmXamI>qI<jhA ziD#grh$1NWA&OHK8^Tc)yA}t6m1P-ela=2G&K4zPId%P<I(JwC8p7l04SRke91pKF z--n4^h)v*oXiN;VT#6q^iU)gWGlu?T;PR;-U)UhiNL)3^5`*9&VF^j(?dlM>!F&JV zU-CA&2Di@5{$Kv%14M`Z{LYot=3qmQ2JxuXY4UaZZ;iy!iUR5MxC1iY4dfE-Aok}g zs?NB&mOycl;FZ%-ul*(ngPx|_2)~JZ@3f3wNQq`+y;)U6-WOxsVKCY(2G`?bjKOj^ zLyP&`ueOzUl2Cy@*)7|kAWFKWupAwcCnA{JTamQrnv`0h@%CncFqd<|@;-}S$_lC~ zI`x_O8?9l1s;oL)?+6uba*Pv5%lpZ5+z=Fr7s9|Ntt*R!drmwFC?T<FNI_oCr_Q>j zt(0VQeYKKu{V-QatGqJWKnCRGV!3(~>V8uR*%C@76+&G4J!y72y+B%cQO+f#-zaG7 zzrS08m93ZwBbU`G)t9m#%@StNX%pVDd);R7qtCvA!836}^6o#gp)x<^qC!nCBiz9+ z&n0Tnc&%Sk!O*xuBxQ+`@eB`Sm3sr~EyqvN!utRi<^E9!YQoE+FURGK2Juq5&ORu` zL-UF)x7vzRh}+5Pm(}Wg$X7*zqXnXcz9ME3-hVDSG}&52oG|;5A7v7g!jm_oE+A5( zFJCTg|A+0$g|5f9zNKo}_l;e}?mj?Rq?4s0{^&Bl${15eSbvF^vWW|F8TYbKpf5_m z5QLb5ga1HJlImDu8b%icTTC5FCnQ0K?qz69TrnKCrrfxUQ;koo<I7kmRB6@8TFpGu z&DlQix@pxexB%ExkQ=EVQ}QQAB%MRuc9{A|u3xn%r2(KBq%4@tph5HyX%jF&NQIY8 zoYoMI!5(6lmN}Y7f{z4HnTvd+BzQW-KIhI7i9|yTcoS<Ym^3a_fj32zvoA?GO5tpN z{w)Yz-dbV)&I?HO{DAxK+)?}~z6G;@8EI*fN6MzBu}+kwK>R|A2*aXiRX0H(ImWA& zU+xgk9Mr)@ooGTfVHRth(1bW(s-XY23|Ij2p~HFNUl*%I7{Su$<fxD$J|%=<aB}aR z?T~`of~?FY>|Af-=4LYpIs^qVDgcu<dhgEE%0|*B4;O{mr%4v2SjrYBC2i@Ds#nPn ze53%PenI*{_M|0JOUlPG+poOYcpt_XH2AcaCqv+W-_&?nCF54#zJ87b0MsRQWh76- zlZxWIJzhSjj0V)k$c-YC`zQ(-UBe#b?{9*IJYxnkLnHA8c|BfL$>D$jHV^_|vxz{> z8@Py`%@)`1NX?%k4XSlouO9>>WI%_;3_*W~XP2%@#Oo(y=xTRj-t=?J@~D}#%F+3Q zd#;4G7UPf^@eqDWU!=k|{11oy_?c3`&dYg7Nf!TkGgGUL(OyRuyr1}F5P7Banj;)Z zrM&aB%-&^MS_DWOJ?5y39?IYmWLFt<yU$aZ)`6bq<2DaqH&H+lC*Nkc4w6j##(w^g zWE7lIK&as<yNixLj>&G%KHfuwXd-&0u#NzQQ<nV#+CWDL68*}KSPP$gL~|Y*s#$j$ zwtGhS_y}Y(gn$Wgxlg?lQcWgd<R1qoVVYvl%GK)|79@S5NXBpyo&N-}>D43y`)CHT zxS#$0usjZcs{l&+|H-$6(}>;n4m7U)YhKlw{nphdXEnAt9g%vg3*(mR{{O5s<>xZP zSJ6=oOSm52*UgM?x%?^Pb$G0u-0xJh?_T`esMY0)+=ZVTlgI0lCvs<!%Y7AVOg^R~ zT_KLGwHggXnfeTkf3IWsYhzy=s>6sseuZOD2kNoo@ppt}@Yr-fho;jyXcOwV2qpU~ zu1HL5iA?17Dp#QiV345E`wC|n*^3`Lu<oTF{|=w&DY?AnpWYBBf95w4Hu-%tA&$gO zi{~(e>2xUV@BxT^-6>4R=5!of;CckO9Skwy9qROCW$Ppk>8&blnFk5*Z;={6`?9gg zU5ChhM@B1O;e$q7`>LJ>QR#|iiA{1fubz_V75p8J|41q&FYz+IZ<j)HZVR2oPZg-B z@Jd*N<y<H!BduQfeL>+17^|Swc|-oi<}yumJj-o>r?}YcE|#2&F0GdH4NJOQK}pH7 zkgnbd;&Ex^guqn*kR2kxmFRMxWy|mhim^@h`@Kt);qSUTabshK@xaOD_zf7!D^V(` zxyfw^`xTg(?fzlMIG;J{t<^dAqio*Et7#q=@%{Vb4P&m{<DgxpI*S5a4?vJ2WYp~x zQOAwmZAaVo^p%hN)yu=id=l`~#MnUSo8$D5d|A&~TrX`_)Yyn$Q9(e}w(WGVDOPvZ z^CG?OeOpe7PX5{E@{Tl#f!9@hSjS6}3OAApw|p9Qb5iTD(se?rVxYx4lhJDV@?R_f z6BWG=gCS0FvmC>Ex#7P5$ARP5&_CYj4*2xy|D5vFVw+^EtoBw(O_Cc|33hi@db-}} z1Nrx_MB(T4^wozdO(m8vvPu%`M#XM3H8n_(FkGO(>E?{S{uRC60zn)J&wE^~h&T9Z z7eGBfPDH7Az_$#I|K^oP`f)Ipl(4+2>^shURttTuNGUyB;M-d%7XH~tLOqV8%8}^) za4e>yjam`fczY=&d<;tA)#I6#GqB3{TDc4_wR9x>arC?0WH>4$#GaDQw%adTj;33o zk$4PVu41Jg<Q(xtCPc!%-}BFA!pVhQJx!<(#@zIZt~~zq_IU2Ut}oSH$-pV2ix$LV z-8AL*SI9CkF)_NhnuMTW%_4{psjBEbS1>IyK|x4Re44Z!gT_Nb7SCCBsLNoC5Ou-% zOoday%72~<cz#;en6?v(jPF1ohlz@|$hJK|Q5KE(>j#JP%c57iBf&sHr<@;FIb4>L zRD~TKf@|lW2-Vei7TLuIe}|xAVP5%S>lZj8`f}?@o5e@9hM;1jDT(MTNTL<Njf{*a zs;jGGi1-vv!YB9|AFPztF1LKyFup(KfXj!XD*XxWL4|9dbZRUn>XHF`P#li(rlnh~ z@7c2uBjb4kbZCY^mI|P;m|b|1p<+>3rr?tQv%K`n)nXilv#<#>ZK?I!D#vV%;vi)R z0z!Hke@%#|iEn$tc7VVo|Db6If?I#)gs>NlMx7ZR5c5I9@PjFcHaQ0MKPR33;$jB; zH#W|HGe9|~|E&fC$+Mm*(K3R(lJ_O^A7i|CL@0yfsyx-~4c`E~{EGzG5$CIT)|CdJ zqs?fHMJIeVM?9|!EOg;6tOlMMG`L-6dohQJ309LBW`Iwnukx}``Pb<O0~+Mc0LUbK zlFBnb@p6>uO(S>Z3;0~$#hSajEne&=vl&J|Dm;BnE<RkW*8dnGp^Xw-WC_Y5v_b61 zM)FGKxd35LCesq104Stm{%h9!U$LQRfbcR>|9yPWu*^42xr@z2YtNj3kt4{AMD0iv zf`kN6s2<>bJ>k1Qod}3<JSe<UrU@3^)Yy2v3;rbu&{x|FzEFu#<yD|#?DV(S$}$2u z_#6DUz#RV&|DO|0c@*GH&&e>>ncTq^8|?@y;wdEc#L3dks0pGA3aXHvVb^^?sSUIX zC!i6sGNpjbG@nU!<UKFbQ#Ct{sPSt=5exzL0EQviry~X|ikiU^yY?SX58rS&G5!d@ z+UmNlYbmNds?g|R``Mr!(oEddxemPVIA6}3RK+YY3ce!Hj(EHK>vhhJyz6Wym#rhl zLcKHisHOv9hCY76WH!{50@&}5kQ|xK8W;ss&yN~vUbg#d3SCVNfD3##hWg`K25#?e zH^akR1YEJ8=#jV}2yq2~-hT1-5eZEwm2*7-0naj^t2-=)hDcXjG_43D$7VFj5auBO zZtltf`Bw}4br`-b)EYT1I-$T^0L%X&ARs(pY)mP8fGEW3JHRPocmX;K7p<g(W)NAZ zbM%*Vp}Ws9JL8(%AF3J~naSd$<O1uUs8TW<u(jM5lp&{ln<c;bX-x9Wma|_`ga)Jk zywHY`vCdz=N*3U#sr3>gBJN^Am+S3!2#(hRK-vV>6qEx!0F@xEN;49GB9HdzX)=GN z6tp-`9{@^mRFvX*T^;~c6S(E&GCoLXj92@Kpf-2DcxfR(L=JiAjpI?Ca>RyyG+Y~G zaU?^n$nc+;`>xb~(Qx)60PrGaUSdjYG@r-mxM?j1tdtvxFmI@e5Z86v;ggDAR|kmt z3GKUZwj4pZZKo#pyFvjnM=n`Byk>Tb_2l~snORmpC3iLxNd%j1k#8vkW2itM{kkmq zVi@s;Hlw0hLuFYQki`M&$}~O_05@;U<wKgkjen#pl*T}W`_t-4Cxun{Pchx0+NVW) zh_FxyhP64=-A34cO94ld$6#IhO3Ol8sqaH7(hY+LF~0GOEM)=gxaiQ*4-vnnNN9?U zjMHfplM-XdEN1Ig$6j#Cf0aT_4G1&&F~%%(*e`x)+<GDTN1L)&6SWPms%l{+q<p$A z_($t&$_JkX?UeA;aiV!?6&EH!qwa=FABs|dmV0;&gd{T0LXsbY8b%!?GfG0Tqd0q= z+iHKmm|Dib2Ai}ok&gd`%vG`j5Y=q&uClK1y6;?*73y%Hn~rWg##5T}6Ju~P?8lxC zyd`o($v0QYw{DS0?*LLpE2X!5)Tx@Cd<paM;<NAv`<2L(c6WeJibDqAWI-H(99R$} zK8rwGdj)_S8=haNVTK(;DuiHxK^avc_AFNT&$+OUG4YoDuB+2$>z~)RmizU6VK<?5 z%?7Nvo#y+OVO2Fr0K!YsY!t5}cr$Sa$<#=-z2Y0^AB-ajs^~?;i40AYp{esZ6SiG% z#)E!U7a8iAOp!C=w@#`7{6l!Y$@Zes54-)8yN{d|#YC++5jUhQn*$3PCIBNCz}SO8 zc@^*9C4%myUk+&gMv{K7uws|PgUXOqJM_G%?T7?`HnfF105u~1xmm?XBy6hq&Ci)d z3IpR%A^CB&)FH5>>1ltip&pfh<tG9*i+{n|m5l4!vh+u8`GHgy)`2FCF-a|}VaBrs zUhZv&c(wtRS6{5IGeRopbQ&NZ&;h;5?P#7fGF5w*-Uryuz=+1iNB3l-F*RQlOG_`$ zGBd3oWTa-a#gx_|`&mIQC%+t&=eTWG+YkXxAePEP-Ddp~AM6iWqo@HvO6nlh%)yUr zZhwsNY~kWDlbUvKVf89s;yGy>9U&=%bHpG^n$;=A_Ry$HPTxBn10jyzd9=G`#rJ(< zxjn%CZ^h-VhXJi+3Tm2@{B~Ii{+j54&$+!V0rzh@F6TdfHwU%ZbJrHnj*FX9AyZAA zV#c^&iSrtg&^?J7UQAn@SD(F-In-`^A7J7aN*y#le{PP*a~^ksjqx`7u!=7@jndax zT@gVLB;*=&=0%|;k(AH-yeo1P^rQmbH2zPy8=*^)l1!g&-}+$|wQF`;F;P6iaAg>A zuyU6LQ)^sv0^?QG-oB4xBkV$A>v%*F_B(-I*BmD*EtR&9Q0&4X28)U+Y5U)jcnr$S z@(wC>8>zJKGcmD<O;EfA2rf1kej9JtZGQ(U4Cq$b!)9-YK6)BP2y<0gv)e!aZMq-x z3m8{YEh+@csqaT#o(E@NjGp&SCe<)Aa$dvY;?D$}irTOMaw3H;z^`62cGm848f3qS zN%ZtMQecoB{Q?k??FPc-MaC7p$oOn7L#whXzXJr2H!iGg?1dBKovt4UL|VzDt>eu3 z-zTA2_l@LJ16c5X!7X;h9by`u*F0UGft3~}X3>`4&n+kTI6HIy91^cwYKl@KPlEl| zXgdQRA@0Z+XnOOrF>SC4-W|tCqgO-)Us=daI7`r|q=-730$P1P<!~BiCNSyNX-V)~ z10UI(A+%b+W2dycoifdi@M96H+3Eq#*MWDAYqt@b?&14B|7kWT;!jqZ3dlq{_F#5@ zDE4%9|I;l{Q3sv0-)?^Ee#OI=Jh?U(hkiBTK}Jzi!$E=<+;DKQ_4Oela_twD*Q56L zTzG}#<eBx)01oy>W6Vx}f>HWyA{7XH55K1`$i<6{uW1pnaaYDLp-fZMzz}4*1cPC3 z14#sOMu|luixn88*&I9QN#=HQV`&*v$UzZdrUUQ+<s)gfFZf7ENR>1U;s-sc0lxc2 zFY-U43~2;f<q!V;6O=O<vr-w^9L5a)aR!G*Unb;a(T3cdPSjk$Xc6`PFUFhR`lZ4S z0;S_<)L~+1G|?6D^IPMuFfMMrGsOVl^hFyh2`T9m*g>L$G02lMti%*O7MS$Y8+k_3 z$ds^>lrYa}sL8u9&pxQ2QGOlcRF*0U$>yR$1Vs#{xb%PYf-@g>rplrmR{K_e$cSu# zmfc8F0uYygb2q>ERoc&}BKqgDkKk%+to%+fhS_APw6?tfg2YCMVU|bP-qr&J2?@zm ziVRgwJ@`veLOuDtf8edUO=7}%2wd7u0Y~D;G+o>>hqANDSosA^G5{mqrhS!zag_?F zsa*gyCfdyG7N0_?z<e0k(H6BZ9JAL=V|-XSW#ACtd40Tj;9aQs-z6Uo0hkG&MrGS4 z#APE(N{|4~rwm!8S|jhLY9W8B1eqn7BHLehXumSIt=QbE4^i|DuCV4ER+r0(6zGd- zIiBto?1wht{fq<@26^}vT#S|oSU<kn`o5IdwD11vP40Z$v!0#fHN9TSSpL}23JhKc zr0U23Kfhlfv$=0_CX<%*UKm*H#QIDdGV+sd%e$u_(RWsm^!lmEMbLyp_gFd?iu}Sw zPhmWDdVM{~7Y}oyk6pe;^iFfT4O?Cmf)nybcZ?9=C$beOKK#D!RbRwC1I~sOdhEPb z?47O%is6HXyO)PrM`uBVxT1JET=%5?hx@CI+~A6TCpCQNa9wA-3m<LiORv~z06O3% zGJ>+KM1P|DH-C+{Z-Xc|6Y0P0q#cQ*H7vG~juV;ZaFGL>*vG}z6{WGE9}Q4efLbdQ zX&)no>#L}!47{2Wz~}M4I}ZBH%7;2Lk(F>Uf}}UsP^sU0UeQ}!qq&+Soue5JgpkDk zG8t(lgu^1*iJDL_t~UwSpU$1({`#wVBXT5oTt?WUvJOW0lzSF{E<TsoEp~c{RG_%! znsFzU@Aaa@Uhv^didiv7)lcIRWs{lvarRHvZBA=xIvz5UmGei*uXt=(+6l$Y^8$V7 z{3`BneWCZ0u*FMQoh6NpSuS&W{UnhC)I<e96(s@kSACMEdMyv>ssE-CS#{;m*aDli z+pck*7iKGr(i=aX&4(_2D$x~SiH8DQ!7z;t3BK7E>vAzL)l`b;bUhd;ePZi(D0s|| z8V*sTz|Q@WYcQ|uJpr2^%0|aC*TWmm(a@B|W*6T1js_eXUi+XUFCYa$*MMWh0l_c0 zDFLT#tda*!{)N^ZY_xdHkDLK#D>{AD%};#oth(m!&Tk)MHM^adbYB;nIFWmX7qr6< z|9ia1>0qJVLf_bCVjI|_;)V6TA;Lestrqf<fODr`uN2mf*4WUE9rz*?oAE)Ng)R(e zMdRi89l9N~t)D6%4hj5WSqaMB|Ldeng{0h!JQ!F%J^f*28B@OhB}Dp%#j6+w@g!Tk zlKIeojE#k%Z`3(5!5k=RDmc$FuPG=!?DC6o5o)#7gDz~{aX8{AJIhRL6DzSIq#x|p zg1UuT$%a!f(a_}QaCj6t)n~Yk1X$I(Zq=`vu*hR<_6*|Ig<RTy&{>exX9w*90bsl3 zPUP#x`YTmmK3Mj%v1JS|#H@IRkiOTlGC0_3i=GWqEZ9k6$^{UqasqZS%dDynlk1uJ zx=>4dY`%DP1)j87T089Vn<%Oxf7YlP`K-HSEWqmT_uBt+e<J>!krt5Ggd1@$eAMol z6eL?<ca?w|9WModf!KBDX+1E4Rqd?{ird*9_o4jN8So&W+>F?7so&S#q!t{svtUg{ zhQ8C;iF*DlaMoMDZ}8`^$vPt{!3g^GI>S~aElgaxVn&Vvu7|zMA@>g=O?F@JVgyAb z|IWE(VyAocM&sLxg1{DMmyhGv2z+sfqwnJqshf{_ub$m45RWqASOnIOIH~Kck4Vo$ z+E05={ZPT2@(0?eD=>gUa0H5gdT#CVp0|s<G|h08xa|H%+`k)bue;lXg#J-PSy=8s z7h@nBj8d!J%0Z<ZJ`9X|V=fnV<fZjR)qj&3<SUoW&04undvfJRY4~Rg%*odpHOv=s z<gJQmHB_;nL7n|9pFB*%JY?5GlFN(x!<KYdwSMd?k<F>2!L!1JgT&h}H0L`88_}jC z{LTCtdj<xB{4oiU**>@18h0Y9t~`kVi&Nxr?v;madTHv{1x^-6s2tvk$4RdP#r@}H zm++6)FSJ}706Shri}Ah-b>mLpVIt(H7353Vvi7rV)WL4;tydQ|%3fIv2PN+Eg%4zZ zj0eovey9H@+eiRw-6w$3c*-(!=%Fi~3bg4xpjLS03y%Zx%vrgW|LWAy>`l&^#laHL z>!t`sx*wyYkfJgzC9DyQ3+iQ;BjZzzmCkvznEHcp=SS(Wen&-<&}4&b!tRRbb4&iq zWK?}~=ZbZ7-0KT)5KP!*ZH`ZSAy5c*OKs+6k8C+e<gIbrvl;XpWpBE4*oTcEDyxHR zQj@~zDyYTI&XCpXB=r5{4=JCX-9{5CWX6)WSGyUrU4~vrEAEYC(~2BbTZQpPFE!9& zvqpI%zSnOunky}DhZsX<>sE32QQyahd@!Cu2_NRntlx%kgBi;n!_0OuPK43lGwM*& zyQoC%IQTVxN$8a$^{rW16~pLo>nDG&9BfCvtWQhVQ`R5%ql(_L>9lwav3_+Ys7O-o zyXq{c^ds9xhL-?0b}|c^u)C3;b#{vc1i6X&nUJw{T@Y}y@U{y&59V2uyj<SbXYrgB zRRZVSYP*^UyfZ4vUGYsYq6)URhSKn#v_D;Z*7^{d(4@<$emBJyQ}CX1rpa0Xb;bPz z-ofHJ^$Z3M`ZKiWmYz6v@?Bqmd;p;b=z#3emtc7xAMWSboM0E)kN!4Nv+Jt0AxTOL zYngYqhwmAGgw<Q*+i15ptt<6&)d~SjP1BLV43FiFiR`TP3|ut6xRwaS%L8c}DmmGy zCE9Q84TViNCs-Rdf`s;o@#a^)Q>Sgv7>;8BSDG(4#S>S4RVzREcS@Q@qMUt?MstT= z*Dtc&<JG<gtJQX9EAcOFdI^89T}R=Gy?qI2e^!6Gj&mrqKJSScG0rlYJ903))^dIX zd`+uAm`s`W-2aN`1Umy>5OUv3&4bXmxXq}Xh76Hx{}Q}jhjndC@HKCZ=<T@ExuRRn zJK2rq?DqU4?Fbu6;B09{>$mOjc)du+-*T1W8Z+F-0-i*}DQXGwIUnpc&}JrQ^x14K z@9TcT0$x#HeYa=@&%X@-^A_u+mHb<5xT7K)vhz6Mc7Cjg=jAsn2p2c5Jl~C2=D;6( zSVxSAf}LtmNgt6+lL!-oBJ(U)YBSInGb75Iap*Phxqt0=#k?0f;<Y<+yxLq+q2K9h z_m2T6rp+ckv0Oden6@iT?Iy_P!;kVhQ&Z$IZzX$IKbvm_8NA}Z+1E#*jYX>!y#iUz z%+@uDF37fpKZXy&1(Pcmr}!WeFY=Y67g)cKn<bM!BlXCrvqQ~lxuWqrE@56-!Ks*x z3nK)fNm@N*5KY>Pe1ZURH{%wU061B`1C;5%?l}s%Sii^wEw}YuzqzlEHHU+vX#4N~ z0;n&{Hoa!sNHUWQoV2WdefTyuxP~p5HE*r}MQC!nAx@Q6z~+%Y;)ygY9Z6qh5$42~ zo^ky}O4_;)BR)A=%U+5@bhn+3Icj53;7%5;lOwhLhP3I!>iarNno>}q_!jx4j&>{B zN?%dDqkN4nJ4q9tmsR^KK<i&Ek8_7hKq#}bJf7v}oLj^{yY~Kq2)paYe%;_bAN=Qb zzeY*Xmrq^I`&kyExS;6Uq@YaZyCFT&9E&4l0#lt!(eV`kefDLq&48c86hB__2#hZy z(d|);j;BO|L-d`HewS{0K{TjI;xZc@nljdY*fc2xcotcJm&PA*hHA&!n(dHg*OHDu zBK!HglJc4N@%A(|^>Xpm;jF8_ux<P)C}845g?1_v9=^as33HH}u;)9NbcjyB<rnQO zox<_r_{YeFCHmpyHTul8;}>I#6Cz$+OL)16z&egGD##2DC=?zI4Q(!c<?P{^16MtF z%2JAJ^U90jx%W@D&jyp!-Kx(B3^%Xfy&P5@pOP9mG^XVJ7ZP5SeiVz%rGN)sT?PhQ zXVN~Wva%@O)zAlbM%GSrE!=30DorC77_VIg5+t>;7x`DST}GzIi+5|HJ#P{N0{86L z{*C9Rd+U~S>%Uh94*dh*+;-^YySd1X9rp--!F=zxapDlr@Lb`cQ>(Uaw2Hn`WT}BK z@~C=k{HGjxS;mh=_sbo*mOs~I|0q`gmID%be5lQ|6AYZhlhH>1jNQjweLtdhE|`m| z`*~kMLAzN<vcg4r$SG9BcRPj0;kNN_>xmpf6mx(1VV*T>HWIRSqCEEnjn@AJVH}?0 zX||7@QVLNJlB)X(08;%vR0mrA9amQe@VBMQuw}>Rc<RybW5U=`Q6G=v2s)%DW)*dc z-;c}1B@qvVH|6x%e7v^geH=ZJ8+Kcc=g=Y5AN8@A8(aRR0$bCKUBI<zx^$OqTlHpL zDUyr}1($_npNiVv+-?_Wn3^60p>C{b2R_>isTs{_DNe_sP?Y4G&e^?NXE-#nsYw?K z3h~R|{Shzy<`4M#VnI~LBZQz+$F!(E+g9DXc5XRiKnp4=tMJ;ArTFKU{xzb;0{{p` z!p@aRerL{|uQn|6OQ5C!p}-!~wCZ*6ay$=F6r2kMmlF|V((2qH4Vn=?%?ro#H5K8K z7sr#ZgR_ofqhng~T}(y~8{F!rqU^)R@Z@tZ<FzGA5eNn&{~)E%Gy{XftXhwkF~bJ8 zI>E4I+gQC}D;|3Kd92>BCE^B%QVPv5FtA_W)(6UbD_khJEIO2C0X1D%mSF6MB{uH3 zcPKrTcaHYGsb_NEO1C3X6yR1|upPVELPbDmtV9ran0E56M(24h>?}LSvC%7rrCwtt zBfSqy(}W<35ihU<YA>u?u>JGhcyQ4|+%|n`*v}ZIh4el>6SlB!(17$h=Nf)CR`%gz z_{&@GMfJ307$yd!-xM0_W0(fYDk@>ywtaZ#ri(z$6UgDMTZ;)ud86(sLil~zhZ9qS zHHmfY+$n5bb4e5-ipl*1A_+p+MUjLM+|(oaD!%bNkBMVP!HRN?N@Z0wUR&}$p8xf4 z!*1(1HfBzl7}arNLEw30jv5Xtg2bGE`19*gchyk<l-ig%Wl|JTGT#QddHIk8abNAf zuieg2!u`Xvta?*D6h%hyl~TTp%?Yn(#E^{8!hja=JP(c#@JU*)nbgD<E|ab8*h$-+ zvEYswFfB9Ua;Z%@d;UU;?;D1JRKE{nh7XDQ7_so(xwC7|wdL<!xbta=X&C6#Aq}I3 z4vKmo%#H0>?wMdvQ`gr1``XowIMznfH0q6m5W;~Mc<a!y6Kpzf9fJp?N3>E<mSjj$ za&`rTo<77D`_>(Y0uDj<uASR2uvYMSJ-Fl6DKL!qbQ3y`1Jg3`;63vbJ`2t7^<vi4 zNpZ^x;5ZH}%f#Y^^Ww69=EiXB)ES4`WP9zuuQebX#SY7~8(r-Pg|O#9HtWW!qff6M zuxu-AO%RtNLlXFeUwj%NfFg@fTrDRCG%XW@Gt!eU{yOH)z7>6Xb%$Zbws03k=;`Cm z=~FQvy?0Fa9jyg-%tX&_U17w!NExNj4IOi4O+&vZv-mPMzAL3yVd#dHwR7Fc+Sjf% zAP07CybKQK8s6b3E(L`}C46f#dfw<bjzi|i;V`Y1?*<9SL6&7GN%j;Xiz0-YG$kz| zl;W02ne7x+bT~rr)I;|{mc-aySSf|BYZ%nOFXqmg7Mp#>03ifFdiZ;g1R-YUN-2eI z7#Nz-A9H5h5|e#0H>R9przppB8|uDRzk{CAcMa31w>pau4m{6UImb`2Zmc?{P8<sw zLEpRE<$@#%Ni!BgI08iy;qkaz+|ITg*wn$$jQ;HuS@c|rf|q~%1Ujarz%cYS74dQ$ z8>*&a%&;MN;=x5p_w?m)yYTX}Paw_jt2x)`Pu8wE*Rdmq;_>g_8^b7>8`0jZLsdat z{h;n^^{#5B#Vt3CChn>^PWWuk0oILGN59^^;C8t}wSike2&qX8q9EZJvIyW+6u4xi z#VN=DU|SZZjvw3RB!un7=k?&FfBqpx4jBkl4TLR})exl=hM_}MHGF68ZFu;;1#MdS z9Z!Cr7r*$);}|wL1F9Nq^|?Bf!q5$9s)j}LZpS~}Gyl5ze`XS+sycw8;!?3n#*VtL z*ZT`8I-gtKqu;=XMPBI0@!x!*L_tJZc?B6UWFSfLdD|)E<VFaA&+Ep~6Q{t3SxX@Z zLQUZ&3e!s5%6>%_p~w=v-j@FlDW%YK4NrW35fnK-HMrw}<2Z~SJ_N%CW#HV`7jU(_ z0+c$S6ir_sDPUM8Y}<ye>li(3FrInzfzTw0B*$|c#tt8XAp-~CT>b@=S5#g*SHf|P zZdE8KOw)v8+t73kV}}pHGmkFD!2W#`5k7OB*`Ixw=H}&Z&e`<I(z>rVy2a|5KFAN? zW>Ko2deyK@YG}GWdiW4_t5Ty!w=UT6#eP_h6Sj*=5+&F*V<uJt(!<Dt0GA@e@ArkT zrf3=%KYAo4j2Y2R(ZyDZ--oFaGBJG60LZe0;*t_vEi1oPebKTkXu6J|rlCjIPM9%e z0v0d43zNr<zOEWfAe0mAmWi1dHfR7uQ9yA?3Cil6t7)0gbPcMeqi5I7m^pPK7B9RD zlQKuKii1qV-d(<?s<f>9mxcMK>*d2~bR`)*?XC=7z*niMsjj+j+E%E)^pF4g!gcpY z7Ejqnj^o|sYv58`2$yfdaU4`sRY5ZhXj+VC(zHO9M7U%LexDya-*Q7|*W980_Qjtd z#h;k$v++PFMMYILDk`fW@H|rdK6t~714YZB6z9%gz|m7@P*hTi^0G<<G!-dcFFK^9 zqDR-x7&Uw_x_0Uqm*dx-Yk5T_BvFLl=Z)LBGB>`Wl2ZKJpI)!9N-uQI%F3!Y#?j;z zFLUNyxjwHaLlElE9ts8n*1|cn`599tCfCSfg8lKYZ=>+?6^PAb=dFuUii*lA7>0>} zuEo9bluMSN$Rd2+@QnumXu5{GZ=aFSmDks+s_FpNZv7MovX7u{7cj?jARurkg+m<> z5ZIOlw_Cxisgp2c%EYiU;ut1TR&Lm8ezy0(|J%EH^>Yp1Yw}y$y>Eu@P-liL)qlpd z9LjxtsesPDWio3(>KM?s4?f+qA3Vp09gHM|KvpDBPzW3c%eG@y>!B{5Bk;OhP!t({ zpFg5OQo}Hjn&QJF_kAbnW*;Rp%eL{!)}8p<hbvKBaut#!L9CrBEeO}X7d+2H;6u}= zMNx!pJ2;hh4m-ZshYqPJ=+P}U#jhA9R&3kG-#%EW>#F%=VSa8&!}ptPKzfWAe8Sf4 z7iCG7>Rw1hK|nANME~?Yq+?oQY9k~gkK2V#X=%tgay*orFwDi5AXLOj;CX<A21Kne zxwRri2!SF=aJv+EJfXr+ku(ODWx+H}yzryP;BmLSz>xVyRdoP=`s+J5ar!J|S%%Px z+9@2zK@bEu4#lCP$5B>Zf#HKQSmVtkjRQGHarETr?ETx;{GqA$n`}S|b92oe>4R<} zl#CL^`laX$%O;l!3!SMGGTFDhj-K7S;!<G|3X4m?3qnK_c6pwMBFi9zgTRG;D5Y?s zcp~9A4vH+ot;le@6!^T}uz9X(IgSHe*YW863(=pgM2=X=)iV74&u<{0YLI0)>I;8u zLvo>@5XVmDVZzuEY+5ao6y99AqN=>2@+XD)r%yNaezV_F>Tv(58Ja~Kbkcj=E)*0N zliaiUv5oWw@W}lO(XC4-7<%}6A+<v5L|jNqO@ZI%h0pCmiq{RdB83(p@?8A~8uCpd zM5$(GRf@+AzsCi?*NfDY6nH(Jh%Z32CXK}%)2AjpVc_*d({=pU8}Gt)oMtOiwgw>t zvaH}zQ4!u<wk8G<GECd#p3O&DMP+5yt>ZT}w@tGncZK<<uJ%YDG@s+RUJVEM4Aa8J zg3Hb=6EoRuQXL$}Vce);_%i!2R84QyLNr1M1VMnJD3B#7ln!3tAo4sUNrECtP$UtG zBtn)%$g%{NBEju)!Ch0sTolDt-33!hq3b#(j2@1A=G`96DSvDI?~)HtT2>j8#-lEd z<8i5|2qMq3yi`m=y}M#<b<vg5Ul+dp#)0OxX|VyIp#QF`TB9Ub9=D4W78P^3XV1qX z&Krs%%Xs1G$B^RnM4hjQ<9W!k46oOR)YMdTNKJ)YlTXX<^Pxjp8q!iy;Pd+6Qk1A> z@HmbGO;eFMY8W0^cvn<$ep}@nJBjlb3u4}Q0HGTRNtCg6%crQS4#a%_3=@g`3zv}p z^+l~hw%=}PyA~Ue>}liH+SDnt8YT@S1e5?P)@^15)0^P)dhpVZA4j*&9ii)O%U2W+ zmSsWHG~9mclu#NAHfS3$N-37D-2|R*Ir~6c@O)@YWYvakaXSXXv}DElE!C!BzI<lW zrWX6-Tke8-^;L&Dcrh4In|KQGkjq!DaJhN;ZHx2<rN|PVf9erT95Vu{royt4qqMDI z=rD8x58t-{^Jd?g=y0w(hmM|rt{V|gP>7Z!NjUh`QB((7QM;XCV&L?-^Z5GG<!Yy* z@SSkmh8@Gmo<44c?KmY(6|y0OC(AzB<Rsf2cCz4k9`}D|E`IR9Juplo)TNc6-&JUZ zxemY2i&vii5i&;(OGq5oyDxK&#Cz>0fSRr>Ny6ddr`q9Y3=={r#Rsd_S6im>^M<R= zn-cyx{MA<-%$)a<s;WywQLLAR&*gIAN@*Dme07vg7(IgZgEV8*&_Ve9FMf*UpKL<T zv6B#l&<v|^>qY9KwVSr`x9m^{reVRhEiAZmCT32V$krJ|$#EPUKa~eXQJUQ*bJTGB z;gy#n+Mi*Xc<d)HqNuph`mAgA=N!h(<Hxi*R)&ej-h(-`yrS~lf$i%*jAZ+WW>IDB z*s#)eoZ^O0Ap`&~2;4_&HncjW^tX-I<HlnT+=HJ!{t&u#?tq}G!Z3`8$45x*W)a^0 zhSqjy2nK@495EQb`^B@EHFXkeJlf#O)iQ8|YjKKn)>lXIW%gGQ?Qi*-4J|evf*|6; z#mlXZlVPHv=?0ds+pKE3{zF7~rHOPJE~S*d5D2Q(4fiTb5^URXHg5l%)eDJ0zdkqN z#b<ti=bn5R>AicPI#3P6FkqTyi;YQbKBbl}UJj)&3<HL)L)Uan8ao=l|CgWQ!F%t9 z&+CcD>3pkHR8)Z%!vD$q<*oO_j(L?_EyJ?a>s#E0;|NquOS(xI%#CU7<{df()*alj z{>w-|6Y>1d!u-=GyQdHME=Ra-f*{npjpaCw%RQS<#ta|AE>sapP4Q#mn30%q^8|Q3 zZj@XtN6FPP5CWK{4cl=-<0T~Yq$i3Z6h#g-Ae6$PfMwaREEA4n!!%8prh$xpeQ@_3 zGx1ON&c}!$16j)M7|J{UHIALi3%kCjsyYCl*NdTp1~j|P|Ge=oPM<v&_L#P9W9o#l z?EjI8tNe=v_;~GxprKiJ7Ut(hJaeNpa}g<V@JKMIeJM$jt8P~a&+{OJqi=n*ivIH1 zCpp$l5;?cah3Pj>!1S9Zz%(tK$^RN>&tJgT1%)WQd<ErIRiQ#a4uv4_Fii`hAV8KR zbnK9Zp4~d5cds7ENbiH5-Mg|Wxp72D<m+bNTlRO%xMearq^2}_??mny?AWy@qWw@% z*6ql|mE$;g>!VfGmT5ngwR2tbeX31p)nxXAJ2xE7oHhT$psIe~<962@Np!p2q^R^N z-L*f9PMb82edD7biUNjY^uv&hevRIvltR^XxLwT;;4<-*;`bubL8zdr;{9cR$Fom9 zTJLpADPCK$G_r0fN@3X!tL4GO)w*pv&C06k0|$4k`>3^_ZFMRVL9(7RbVF-cRj;O- zg<G+13n{r;*4o`NVGu%C<B?#gem|^MlqBA;?Ngl2tKUtv?Xxd%@^oHApLZyQTT$2( z2opDX=PzK}=X=zkX+9Xu=Ud%??BBGhl5phb!9bw8;d_!G0vvH(e{UIE8^YXhI(19~ z0N74sjR>U_uf6@v(}t>PSn|P&h>vGl7W(z>+4?{kCIXsn;Enf}2TaR;_|Udb3ZmIZ zRLKwzZeO>=cI<PSt~Z)_<#M^X;*wHq{cI1LmBrjpI6^RDa7L@L3LHI=i(UIdx#&Jx z^$AK_@pR4+V8Ymut&WpnBJu9B)vBuN%d@txi#q*twApki9PU0<RW-XoAtVlfEGyi) zt)G(f7o%#_7$#{=7&D^P(`x_v&WFgqa0#o{ZI1Xep)~sjh7ZbUZHNpL){fo#?PIxl zmuNZvOk4I7bs^@${M?eB=@~)GvZl%n<`{Au2itbY!NW)CEfX_|D8w)E9K*DyE}c4J z@4+0Xx)E`@{$NnWXS??ysA>@($23h$9yglRXklV5FaK-2y=-;0VQRO0xod54TlUqa zdL9RNZ1}THog7Wm8|6%KxfGa&>HO`3l`LZ~bHgBn;Qj@3VOv(K@|smvH5xK(mTlXx zEDLwvK0S&E8K!w<<(2r~B_9MW%eXgd$EL_;bF`qX1)(Ts@{3hf)f>*r0szJ3;&acP zC!0Ur#l}OJ8^+Lq{V_PBAB-jvjJ8#6g~;#SeJ9*5R-2xQ9ZlEqpa1uEz%cFK9NfM! zCba^h?!u~7aQ;+ful|EC7^ZQDA}LbcWPhR3t2{ZLdj`F_cO_jrcWUe57$zx<9y%BY z4jo2N)ml|~vLzI?6(UDq-fb+^J`+2(ZR5Y+ct3EZv~0z`t*c**)qZ1AlJ>y%PnJ5A zZmteiH(CPE^E^aRByWDO5`{%qVsSWzNjOmy@az*0L6IaFdW$u8B0?#JuIb3=*BcKk zoEw7(8772MiX|WYUA=g@aCc81|HD}BJ2tmY0Qz<twa(;>`w1awf>1x>oWKjP9ETn_ zbOe(#M-e#=r9c^`y(zMcDHF!vWZpTHm6wB%mXlpJ$1p<)FlSAjga_}LAJsk>rYV$C zeE9eETK2J%r)W8U+m<aWVwyHRW(~;2i^r{Q=>yi=mh%Ha5EQ<_AAu+cMAbBUAm<1s zXO1SK$Yy3S*FQlJFgbG+L{Y@C+%uq*f&$?i0ZL(77EH^8$ED!02kybt31iu+b0(%% zZQQ2sK5*!Kb+tY%YtNcSm1Wy1=HJ%Lne%TapsW2UDek5c`vrmlyI1$F<oTx_<%AgZ z9WzWa&~zP}Ki!Sp2eM%pCOD1<1qDY42qADN1$7+o90$!X(6v(s%${~LCS{IdNidn1 zTeWeU`PsgM`BjzL#3Ns9h)aH{xO{6fXW#WJ9^6Ylzt2k=9D)K+)u5A+-UrV-@&Lyk z*O?npLD3bQ$jw7>NhwOp$`Mdir22j6)FBPsx^%|KAp=?I112sgrTBQwCVg*q&Usxm zr?fW1ZfnHrwufZSn73M##M`_cZ=+PA6hJT-bOxsPrq4XOm}iX$!!S(SQA+X7@-=Gq z;p2Hg@YcOswp@+p@#5Bp)T5(+l_Pp?a~!9OB#L6)_d=O_1yXdSl%BhA5#vS<BdqV2 zVHhTQrfK1??=1@+J(-sipw+i#ZQWWK?_<WT0Vymjbo%ueyi$jC9{|573iXafKp=<$ zS6Ea+&zw8&j2k(Ob!RaQ!$hH~I)MLpeM#U#!R1ZGL|t%V%NDggjvM#e{*kxe-bJ*e zLvEL=t1Qcn8Z1gFR5fUK>(Yt*?1_gtm%?gZFbu;)s^D@l{_Bl*f~scxY2Vg0uOQN@ zXED$&{YK+w&+F&d<e=N_PL*Y;(J?6iEf}=@J}>ve(~l9q&)XhhF$}|8*Rl>Dqwg$V zqZ*d=c-BAGec0Z|Z?}Pmant7w2ZztxZcmCNNlkX0slg!Sc^*G~;vv$zXZQ9BjbRw( zy5cwvmVdHY-+eHrOx3hGIXgGzBqEM>9l0JgYwke7;dZ-SN}8-FO*bN%2HUpq==T=V z%#p*`$U4I?OdX|V<#_$Qj{`+lN)J?58{duB8jnb{>q@?&bEiu?_a3y8I@V$kC=FAd z06?gA2tn52qX-05IwYeXo1w)p3<Kam&Qbb5Z!J|TtE+#zZ}R9Ti{E>*T?WgWlaMR( z_-PAna(H{MOHsNgE=6o=8{2lE8=BpvQwQ?Q!;87JRDXMi$uJC)6oRUXrK{GdM^BzE zF@oBHgP(6Yl<1g%1T`Q4Fn;>nZVtz97e%43$K!T4T(Mp&5DZd)k{>R<myQ}bh&_rh z4D+p$edIXaU-^k@+0OfhX#Ol~-MU6u&l4q~7v#y47rAtox{Txa8GfI~%aNwnff$Ak z!!YTnVS}B;3+M43H!HNmFwBjutfCShtXdb$J$Jq&sOt~p?AWj;(J?iY40rTo%&fb9 z#{<v$ygqkx#d&Jii*SVF9=U%ZMh_dD46!o|!^D(nS=jd39(&WLy9|K*_Z6c4=FFx| zZ7(_#2T5}g9yfFT0~GX4x7+QOrN(PTYH7L-+q7s#zuwN`@6P8tbx3W`Fd2qn;(}6& zLq|{GqtzP&hH37u3K&lv{(RlJM90;Vq-j6^VD$94qj{cNEAnDzkH_t5ZuS+W4%DD( z+tlG_-ZI&~Yt}TL6{%tv=6ZGV%vpTAW@F%LMP-4i>Q5iqx#1s)jwupJ)qns%=KT3? zR5^bE&n@zKJRU)4zVMV~TQCg6<~ff0&YanpGJXtUHAWbQxnAVv<zw~ce^g&8EUMHr z^SSJu>zAV)Q<1b)(lsEpM$eeLfG6C0vMjsYic4%MQeD^K*pAKf9Jk=knV2$RENe&@ zhDl14QXDyvi?v&J1g?~pRhWkHE2pAxX;xO2ndsPBD`^`L02p)I-90#){vSYRcsw4D zBsRHZ<Qm=3VcWJX@H}_NjHz_$_^}+DvBfY<GSGDcyAK|sTXyaasJdRLsp_w?Z=J9b zufFOeI<{yfbpujs?94ec3HY~pp6}>!dptbfa@u!8*J0a^Z8<hSVbn15w&_#E9$mY% zQ?v}jFyF|(a0$D<%+~g29flzA+k?9L@7dco>`HW8v2a~9AOMh=nJE%~_n$e0z9LC7 z=aLmyxQ0a2ROp78BXC^b4jodtTPKb4jT=3j_`NLKFT*hLQ*yN&2fsRE@7#MZs0P(4 z)3M&vE$7XzcC5dY=-6WEx@kaaO`J2wZ>qwN3863XqQJRbE>Cmg9lEX~psH{8@928` zY^gTOC5w-nmOZau?_SpUF(Z5<h73en3QLi~FihJO6kS2i(G&LGteikuc_raFZdJh0 z-%Q2@fU$DjH6XQyO<&|y_~4U-l9xG-6C_FUNs>hBRyEXg9jdCnnYCm66Sc2p&Y$n5 zRdl}FE#Gfh_UzOYpEG8}P}i`5{l&gF^@1X^>A(!bgjZ2nh1|2}apYuf@W_c=*tQb@ zuv*p44+nHozF4thg`Maa<L$a_Kx$=XW{OTqm)RVIM=9t$p64uClzbqBsG3&o*v{jJ zc5e8%sn0H2w1_`*Rh=Mm`~q1L=jw(rC@saW4eFmRW~BFVb?@34-MVyUjS9nj%LRfe zE?q9hrOQRg&C9PoeJ&qCRU@(_9SEq}Dw{Z4zuLYrH_>snx9h$EscXQTIkHdV?jVHB zB!GuH&Z_L48#hP#`OM5rk)(7VLmf<Zdt5Uq=x|*#Zc-G<=-RoH)uU@?sbgBI;`4e) zir)vH$Bj_+L;{y00|4AE1uXqM!z4dSDT1m7Ak<q?6$qlbI)Lgx5T)hiwD?MCu&}tq zEGaD$HC^XrS<16*CtKC^ogC%%WbIsc3fIw^jd);Jy70*8>38<w2tNpv4gg2GyA&mz zCtNQIbh9igl@P*Pw&fxq#I!60?DxtrNsj<j5Cn~aQl8^gLEx`)99QZ%PLXbyCvDR_ o;}Gr~rB+_f&dvFWjyD<ofA-30Lw(1aq5uE@07*qoM6N<$f(<F^pa1{> literal 0 HcmV?d00001 diff --git a/dist/icons/controller/single_joycon_left_vertical.png b/dist/icons/controller/single_joycon_left_vertical.png new file mode 100644 index 0000000000000000000000000000000000000000..1e6282ad8d167bbfb5dba865992cf4558981f2d0 GIT binary patch literal 24764 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�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 N!JxHN^Oa3M{2$nt#W4T? literal 0 HcmV?d00001 diff --git a/dist/icons/controller/single_joycon_left_vertical_dark.png b/dist/icons/controller/single_joycon_left_vertical_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..a615d995d51faab628cace5865e5b253d50459cc GIT binary patch literal 24938 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 literal 0 HcmV?d00001 diff --git a/dist/icons/controller/single_joycon_left_vertical_midnight.png b/dist/icons/controller/single_joycon_left_vertical_midnight.png new file mode 100644 index 0000000000000000000000000000000000000000..4cc578216da9e2790961e267cdb1ccbeaf7841cf GIT binary patch literal 23681 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 TnH(#iTsY{NqJ}~V!Yt%Jma!dM literal 0 HcmV?d00001 diff --git a/dist/icons/controller/single_joycon_right.png b/dist/icons/controller/single_joycon_right.png new file mode 100644 index 0000000000000000000000000000000000000000..8d29173f663d7f8217cda6f6b25b6ab9ff05d9df GIT binary patch literal 28320 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 X4OHE*d8+}p$sy#VlqAc=U;F<L@RTAg literal 0 HcmV?d00001 diff --git a/dist/icons/controller/single_joycon_right_dark.png b/dist/icons/controller/single_joycon_right_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..ead2c44e0467fd08389cdb271928f1310f36647d GIT binary patch literal 28157 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 TTn{gILqSnf)>f)kunhYjd+b09 literal 0 HcmV?d00001 diff --git a/dist/icons/controller/single_joycon_right_midnight.png b/dist/icons/controller/single_joycon_right_midnight.png new file mode 100644 index 0000000000000000000000000000000000000000..89afe022d9652aa256e045d18a6a5aaa48e3ff54 GIT binary patch literal 27006 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 literal 0 HcmV?d00001 diff --git a/dist/icons/controller/single_joycon_right_vertical.png b/dist/icons/controller/single_joycon_right_vertical.png new file mode 100644 index 0000000000000000000000000000000000000000..4d7d06547c669e52c3c7dfbce9171c94ad69b35c GIT binary patch literal 27655 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 H+l2og*)Nzu literal 0 HcmV?d00001 diff --git a/dist/icons/controller/single_joycon_right_vertical_dark.png b/dist/icons/controller/single_joycon_right_vertical_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..9a6eb3013f300055659a06ec911aca5695b79a23 GIT binary patch literal 27729 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�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 literal 0 HcmV?d00001 diff --git a/dist/icons/controller/single_joycon_right_vertical_midnight.png b/dist/icons/controller/single_joycon_right_vertical_midnight.png new file mode 100644 index 0000000000000000000000000000000000000000..685249b680cd62e2f363898aab2dd6b97388558e GIT binary patch literal 26354 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 MIpvoXGRC3*1G3)^k^lez literal 0 HcmV?d00001 diff --git a/dist/license.md b/dist/license.md index f1ff35c954..e9bc87656d 100644 --- a/dist/license.md +++ b/dist/license.md @@ -5,6 +5,7 @@ Icon Name | License | Origin/Author qt_themes/default/icons/16x16/checked.png | CC BY-ND 3.0 | https://icons8.com qt_themes/default/icons/16x16/failed.png | CC BY-ND 3.0 | https://icons8.com qt_themes/default/icons/16x16/lock.png | CC BY-ND 3.0 | https://icons8.com +qt_themes/default/icons/16x16/view-refresh.png | Apache 2.0 | https://material.io qt_themes/default/icons/256x256/plus_folder.png | CC BY-ND 3.0 | https://icons8.com qt_themes/default/icons/48x48/bad_folder.png | CC BY-ND 3.0 | https://icons8.com qt_themes/default/icons/48x48/chip.png | CC BY-ND 3.0 | https://icons8.com @@ -12,6 +13,7 @@ qt_themes/default/icons/48x48/folder.png | CC BY-ND 3.0 | https://icons8.com qt_themes/default/icons/48x48/plus.png | CC0 1.0 | Designed by BreadFish64 from the Citra team qt_themes/default/icons/48x48/sd_card.png | CC BY-ND 3.0 | https://icons8.com qt_themes/qdarkstyle/icons/16x16/lock.png | CC BY-ND 3.0 | https://icons8.com +qt_themes/qdarkstyle/icons/16x16/view-refresh.png | Apache 2.0 | https://material.io qt_themes/qdarkstyle/icons/256x256/plus_folder.png | CC BY-ND 3.0 | https://icons8.com qt_themes/qdarkstyle/icons/48x48/bad_folder.png | CC BY-ND 3.0 | https://icons8.com qt_themes/qdarkstyle/icons/48x48/chip.png | CC BY-ND 3.0 | https://icons8.com @@ -19,6 +21,7 @@ qt_themes/qdarkstyle/icons/48x48/folder.png | CC BY-ND 3.0 | https://icons8.com qt_themes/qdarkstyle/icons/48x48/plus.png | CC0 1.0 | Designed by BreadFish64 from the Citra team qt_themes/qdarkstyle/icons/48x48/sd_card.png | CC BY-ND 3.0 | https://icons8.com qt_themes/colorful/icons/16x16/lock.png | CC BY-ND 3.0 | https://icons8.com +qt_themes/colorful/icons/16x16/view-refresh.png | Apache 2.0 | https://material.io qt_themes/colorful/icons/256x256/plus_folder.png | CC BY-ND 3.0 | https://icons8.com qt_themes/colorful/icons/48x48/bad_folder.png | CC BY-ND 3.0 | https://icons8.com qt_themes/colorful/icons/48x48/chip.png | CC BY-ND 3.0 | https://icons8.com diff --git a/dist/qt_themes/colorful_dark/icons/16x16/refresh.png b/dist/qt_themes/colorful_dark/icons/16x16/refresh.png new file mode 100644 index 0000000000000000000000000000000000000000..d4afd76f949ff5c65e039b69ff999325bff5d7b8 GIT binary patch literal 362 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf<Z~8yL>2?p zD}XSgpwrRCKtah8*NBqf{Irtt#G+J&^73-M%)IR4<ivthz5Jr|+3#$mfQp`bx;Tbd z^d7xr=y%vbfb~LTi_27zh5(s&4G%<C28ukeSh<r$<VxVHm<A)!4kj)KCNGzKIaY0h zV`ZmmGH3m*|M&0a+>TP^t%4d#k2I8Aju<Wd687+y=F<Lc$7;`fd?~J)reSb&$=b?} z<uS=$isn9IeSdSq)r5Jow@dH%?6v4Wn`K;QA+z~caeKDeqIVr#a$Jrqx^}0(V|Itd zN||_bRf*K^agS?OH#o{Y+~I6|NOapR7UMfxZ63+V72KS<=z#J(Lr3}D7Kd%~Hg3+E zlIRz7P3$F8^R9i_Q`rRzCGOjA_R-v1c5jba4WsJ~&MW6R^YVdSX7F_Nb6Mw<&;$Ux C5{w)G literal 0 HcmV?d00001 diff --git a/dist/qt_themes/colorful_dark/icons/16x16/view-refresh.png b/dist/qt_themes/colorful_dark/icons/16x16/view-refresh.png new file mode 100644 index 0000000000000000000000000000000000000000..d4afd76f949ff5c65e039b69ff999325bff5d7b8 GIT binary patch literal 362 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf<Z~8yL>2?p zD}XSgpwrRCKtah8*NBqf{Irtt#G+J&^73-M%)IR4<ivthz5Jr|+3#$mfQp`bx;Tbd z^d7xr=y%vbfb~LTi_27zh5(s&4G%<C28ukeSh<r$<VxVHm<A)!4kj)KCNGzKIaY0h zV`ZmmGH3m*|M&0a+>TP^t%4d#k2I8Aju<Wd687+y=F<Lc$7;`fd?~J)reSb&$=b?} z<uS=$isn9IeSdSq)r5Jow@dH%?6v4Wn`K;QA+z~caeKDeqIVr#a$Jrqx^}0(V|Itd zN||_bRf*K^agS?OH#o{Y+~I6|NOapR7UMfxZ63+V72KS<=z#J(Lr3}D7Kd%~Hg3+E zlIRz7P3$F8^R9i_Q`rRzCGOjA_R-v1c5jba4WsJ~&MW6R^YVdSX7F_Nb6Mw<&;$Ux C5{w)G literal 0 HcmV?d00001 diff --git a/dist/qt_themes/colorful_dark/style.qrc b/dist/qt_themes/colorful_dark/style.qrc index 27a6cc87d3..0abcb4e83d 100644 --- a/dist/qt_themes/colorful_dark/style.qrc +++ b/dist/qt_themes/colorful_dark/style.qrc @@ -2,6 +2,7 @@ <qresource prefix="icons/colorful_dark"> <file alias="index.theme">icons/index.theme</file> <file alias="16x16/lock.png">icons/16x16/lock.png</file> + <file alias="16x16/view-refresh.png">icons/16x16/view-refresh.png</file> <file alias="48x48/bad_folder.png">../colorful/icons/48x48/bad_folder.png</file> <file alias="48x48/chip.png">../colorful/icons/48x48/chip.png</file> <file alias="48x48/folder.png">../colorful/icons/48x48/folder.png</file> diff --git a/dist/qt_themes/colorful_midnight_blue/icons/16x16/refresh.png b/dist/qt_themes/colorful_midnight_blue/icons/16x16/refresh.png new file mode 100644 index 0000000000000000000000000000000000000000..d4afd76f949ff5c65e039b69ff999325bff5d7b8 GIT binary patch literal 362 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf<Z~8yL>2?p zD}XSgpwrRCKtah8*NBqf{Irtt#G+J&^73-M%)IR4<ivthz5Jr|+3#$mfQp`bx;Tbd z^d7xr=y%vbfb~LTi_27zh5(s&4G%<C28ukeSh<r$<VxVHm<A)!4kj)KCNGzKIaY0h zV`ZmmGH3m*|M&0a+>TP^t%4d#k2I8Aju<Wd687+y=F<Lc$7;`fd?~J)reSb&$=b?} z<uS=$isn9IeSdSq)r5Jow@dH%?6v4Wn`K;QA+z~caeKDeqIVr#a$Jrqx^}0(V|Itd zN||_bRf*K^agS?OH#o{Y+~I6|NOapR7UMfxZ63+V72KS<=z#J(Lr3}D7Kd%~Hg3+E zlIRz7P3$F8^R9i_Q`rRzCGOjA_R-v1c5jba4WsJ~&MW6R^YVdSX7F_Nb6Mw<&;$Ux C5{w)G literal 0 HcmV?d00001 diff --git a/dist/qt_themes/colorful_midnight_blue/icons/16x16/view-refresh.png b/dist/qt_themes/colorful_midnight_blue/icons/16x16/view-refresh.png new file mode 100644 index 0000000000000000000000000000000000000000..d4afd76f949ff5c65e039b69ff999325bff5d7b8 GIT binary patch literal 362 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf<Z~8yL>2?p zD}XSgpwrRCKtah8*NBqf{Irtt#G+J&^73-M%)IR4<ivthz5Jr|+3#$mfQp`bx;Tbd z^d7xr=y%vbfb~LTi_27zh5(s&4G%<C28ukeSh<r$<VxVHm<A)!4kj)KCNGzKIaY0h zV`ZmmGH3m*|M&0a+>TP^t%4d#k2I8Aju<Wd687+y=F<Lc$7;`fd?~J)reSb&$=b?} z<uS=$isn9IeSdSq)r5Jow@dH%?6v4Wn`K;QA+z~caeKDeqIVr#a$Jrqx^}0(V|Itd zN||_bRf*K^agS?OH#o{Y+~I6|NOapR7UMfxZ63+V72KS<=z#J(Lr3}D7Kd%~Hg3+E zlIRz7P3$F8^R9i_Q`rRzCGOjA_R-v1c5jba4WsJ~&MW6R^YVdSX7F_Nb6Mw<&;$Ux C5{w)G literal 0 HcmV?d00001 diff --git a/dist/qt_themes/colorful_midnight_blue/style.qrc b/dist/qt_themes/colorful_midnight_blue/style.qrc index fd33bc8500..bf367099a4 100644 --- a/dist/qt_themes/colorful_midnight_blue/style.qrc +++ b/dist/qt_themes/colorful_midnight_blue/style.qrc @@ -2,6 +2,7 @@ <qresource prefix="icons/colorful_midnight_blue"> <file alias="index.theme">icons/index.theme</file> <file alias="16x16/lock.png">icons/16x16/lock.png</file> + <file alias="16x16/view-refresh.png">icons/16x16/view-refresh.png</file> <file alias="48x48/bad_folder.png">../colorful/icons/48x48/bad_folder.png</file> <file alias="48x48/chip.png">../colorful/icons/48x48/chip.png</file> <file alias="48x48/folder.png">../colorful/icons/48x48/folder.png</file> diff --git a/dist/qt_themes/default/default.qrc b/dist/qt_themes/default/default.qrc index c51fdb26cc..2182f33f3a 100644 --- a/dist/qt_themes/default/default.qrc +++ b/dist/qt_themes/default/default.qrc @@ -4,6 +4,7 @@ <file alias="16x16/checked.png">icons/16x16/checked.png</file> <file alias="16x16/failed.png">icons/16x16/failed.png</file> <file alias="16x16/lock.png">icons/16x16/lock.png</file> + <file alias="16x16/view-refresh.png">icons/16x16/view-refresh.png</file> <file alias="48x48/bad_folder.png">icons/48x48/bad_folder.png</file> <file alias="48x48/chip.png">icons/48x48/chip.png</file> <file alias="48x48/folder.png">icons/48x48/folder.png</file> diff --git a/dist/qt_themes/default/icons/16x16/refresh.png b/dist/qt_themes/default/icons/16x16/refresh.png new file mode 100644 index 0000000000000000000000000000000000000000..69f9474acabad4c5bbb4b8dd3f73b34b5d49d3f1 GIT binary patch literal 349 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf<Z~8yL>2?p z3xP1>)&}zuprB-lYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt;DaT^vI! zdXHXO?dResz;fZRvg2D(hZAudG7gC+giq$}KOcG4zro@DnrG}2G&q=8CN#Jv2-qAk zIjJ+#`oXqIX2G$hS8WgP*%<OL>P@0_exQBEhkNRG4vEbF(e=wge3`J!mrnDK5~jx# zUU8hS;5{7IoY@i1eaCa!ii`_xR|*?vr#zBue!3=;y?e(G)x3h<!*AYfnvx*$u36}( zJkL_WZ`!uXbCQ>?UwC-!Cn58K{>@QcV*C}8#I7dD9^Y}8_gWU)lKmGvA3u?Q86s88 o#x1&7v25w|org}xo1bUDudAldyso>n5$H<>Pgg&ebxsLQ00=gQyZ`_I literal 0 HcmV?d00001 diff --git a/dist/qt_themes/default/icons/16x16/view-refresh.png b/dist/qt_themes/default/icons/16x16/view-refresh.png new file mode 100644 index 0000000000000000000000000000000000000000..69f9474acabad4c5bbb4b8dd3f73b34b5d49d3f1 GIT binary patch literal 349 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf<Z~8yL>2?p z3xP1>)&}zuprB-lYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt;DaT^vI! zdXHXO?dResz;fZRvg2D(hZAudG7gC+giq$}KOcG4zro@DnrG}2G&q=8CN#Jv2-qAk zIjJ+#`oXqIX2G$hS8WgP*%<OL>P@0_exQBEhkNRG4vEbF(e=wge3`J!mrnDK5~jx# zUU8hS;5{7IoY@i1eaCa!ii`_xR|*?vr#zBue!3=;y?e(G)x3h<!*AYfnvx*$u36}( zJkL_WZ`!uXbCQ>?UwC-!Cn58K{>@QcV*C}8#I7dD9^Y}8_gWU)lKmGvA3u?Q86s88 o#x1&7v25w|org}xo1bUDudAldyso>n5$H<>Pgg&ebxsLQ00=gQyZ`_I literal 0 HcmV?d00001 diff --git a/dist/qt_themes/default/style.qss b/dist/qt_themes/default/style.qss index 6b5953e385..5da56520b0 100644 --- a/dist/qt_themes/default/style.qss +++ b/dist/qt_themes/default/style.qss @@ -30,6 +30,66 @@ QPushButton#RendererStatusBarButton:checked { color: #e85c00; } -QPushButton#RendererStatusBarButton:!checked{ +QPushButton#RendererStatusBarButton:!checked { color: #0066ff; } + +QPushButton#buttonRefreshDevices { + min-width: 20px; + min-height: 20px; + max-width: 20px; + max-height: 20px; +} + +QCheckBox#checkboxPlayer1Connected, +QCheckBox#checkboxPlayer2Connected, +QCheckBox#checkboxPlayer3Connected, +QCheckBox#checkboxPlayer4Connected, +QCheckBox#checkboxPlayer5Connected, +QCheckBox#checkboxPlayer6Connected, +QCheckBox#checkboxPlayer7Connected, +QCheckBox#checkboxPlayer8Connected { + spacing: 0px; +} + +QCheckBox#checkboxPlayer1Connected::indicator, +QCheckBox#checkboxPlayer2Connected::indicator, +QCheckBox#checkboxPlayer3Connected::indicator, +QCheckBox#checkboxPlayer4Connected::indicator, +QCheckBox#checkboxPlayer5Connected::indicator, +QCheckBox#checkboxPlayer6Connected::indicator, +QCheckBox#checkboxPlayer7Connected::indicator, +QCheckBox#checkboxPlayer8Connected::indicator { + width: 14px; + height: 14px; +} + +QCheckBox#checkboxPlayer1Connected::indicator:checked, +QCheckBox#checkboxPlayer2Connected::indicator:checked, +QCheckBox#checkboxPlayer3Connected::indicator:checked, +QCheckBox#checkboxPlayer4Connected::indicator:checked, +QCheckBox#checkboxPlayer5Connected::indicator:checked, +QCheckBox#checkboxPlayer6Connected::indicator:checked, +QCheckBox#checkboxPlayer7Connected::indicator:checked, +QCheckBox#checkboxPlayer8Connected::indicator:checked, +QGroupBox#groupConnectedController::indicator:checked { + border-radius: 2px; + border: 1px solid black; + background: #39ff14; + image: none; +} + +QCheckBox#checkboxPlayer1Connected::indicator:unchecked, +QCheckBox#checkboxPlayer2Connected::indicator:unchecked, +QCheckBox#checkboxPlayer3Connected::indicator:unchecked, +QCheckBox#checkboxPlayer4Connected::indicator:unchecked, +QCheckBox#checkboxPlayer5Connected::indicator:unchecked, +QCheckBox#checkboxPlayer6Connected::indicator:unchecked, +QCheckBox#checkboxPlayer7Connected::indicator:unchecked, +QCheckBox#checkboxPlayer8Connected::indicator:unchecked, +QGroupBox#groupConnectedController::indicator:unchecked { + border-radius: 2px; + border: 1px solid black; + background: transparent; + image: none; +} diff --git a/dist/qt_themes/qdarkstyle/icons/16x16/refresh.png b/dist/qt_themes/qdarkstyle/icons/16x16/refresh.png new file mode 100644 index 0000000000000000000000000000000000000000..d4afd76f949ff5c65e039b69ff999325bff5d7b8 GIT binary patch literal 362 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf<Z~8yL>2?p zD}XSgpwrRCKtah8*NBqf{Irtt#G+J&^73-M%)IR4<ivthz5Jr|+3#$mfQp`bx;Tbd z^d7xr=y%vbfb~LTi_27zh5(s&4G%<C28ukeSh<r$<VxVHm<A)!4kj)KCNGzKIaY0h zV`ZmmGH3m*|M&0a+>TP^t%4d#k2I8Aju<Wd687+y=F<Lc$7;`fd?~J)reSb&$=b?} z<uS=$isn9IeSdSq)r5Jow@dH%?6v4Wn`K;QA+z~caeKDeqIVr#a$Jrqx^}0(V|Itd zN||_bRf*K^agS?OH#o{Y+~I6|NOapR7UMfxZ63+V72KS<=z#J(Lr3}D7Kd%~Hg3+E zlIRz7P3$F8^R9i_Q`rRzCGOjA_R-v1c5jba4WsJ~&MW6R^YVdSX7F_Nb6Mw<&;$Ux C5{w)G literal 0 HcmV?d00001 diff --git a/dist/qt_themes/qdarkstyle/icons/16x16/view-refresh.png b/dist/qt_themes/qdarkstyle/icons/16x16/view-refresh.png new file mode 100644 index 0000000000000000000000000000000000000000..d4afd76f949ff5c65e039b69ff999325bff5d7b8 GIT binary patch literal 362 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf<Z~8yL>2?p zD}XSgpwrRCKtah8*NBqf{Irtt#G+J&^73-M%)IR4<ivthz5Jr|+3#$mfQp`bx;Tbd z^d7xr=y%vbfb~LTi_27zh5(s&4G%<C28ukeSh<r$<VxVHm<A)!4kj)KCNGzKIaY0h zV`ZmmGH3m*|M&0a+>TP^t%4d#k2I8Aju<Wd687+y=F<Lc$7;`fd?~J)reSb&$=b?} z<uS=$isn9IeSdSq)r5Jow@dH%?6v4Wn`K;QA+z~caeKDeqIVr#a$Jrqx^}0(V|Itd zN||_bRf*K^agS?OH#o{Y+~I6|NOapR7UMfxZ63+V72KS<=z#J(Lr3}D7Kd%~Hg3+E zlIRz7P3$F8^R9i_Q`rRzCGOjA_R-v1c5jba4WsJ~&MW6R^YVdSX7F_Nb6Mw<&;$Ux C5{w)G literal 0 HcmV?d00001 diff --git a/dist/qt_themes/qdarkstyle/style.qrc b/dist/qt_themes/qdarkstyle/style.qrc index c2c14c28a1..ec07ba160d 100644 --- a/dist/qt_themes/qdarkstyle/style.qrc +++ b/dist/qt_themes/qdarkstyle/style.qrc @@ -2,6 +2,7 @@ <qresource prefix="icons/qdarkstyle"> <file alias="index.theme">icons/index.theme</file> <file alias="16x16/lock.png">icons/16x16/lock.png</file> + <file alias="16x16/view-refresh.png">icons/16x16/view-refresh.png</file> <file alias="48x48/bad_folder.png">icons/48x48/bad_folder.png</file> <file alias="48x48/chip.png">icons/48x48/chip.png</file> <file alias="48x48/folder.png">icons/48x48/folder.png</file> diff --git a/dist/qt_themes/qdarkstyle/style.qss b/dist/qt_themes/qdarkstyle/style.qss index 2926a05fa9..7755426f83 100644 --- a/dist/qt_themes/qdarkstyle/style.qss +++ b/dist/qt_themes/qdarkstyle/style.qss @@ -40,8 +40,8 @@ QCheckBox:disabled { QCheckBox::indicator, QGroupBox::indicator { - width: 18px; - height: 18px; + width: 16px; + height: 16px; } QGroupBox::indicator { @@ -1237,6 +1237,7 @@ QPlainTextEdit:disabled { background-color: #2b2e31; } + QPushButton#TogglableStatusBarButton { min-width: 0px; color: #656565; @@ -1271,6 +1272,102 @@ QPushButton#RendererStatusBarButton:checked { color: #e85c00; } -QPushButton#RendererStatusBarButton:!checked{ - color: #00ccdd; +QPushButton#RendererStatusBarButton:!checked { + color: #00ccdd; +} + +QPushButton#buttonRefreshDevices { + min-width: 24px; + min-height: 24px; + max-width: 24px; + max-height: 24px; + padding: 0px 0px; +} + +QCheckBox#checkboxPlayer1Connected, +QCheckBox#checkboxPlayer2Connected, +QCheckBox#checkboxPlayer3Connected, +QCheckBox#checkboxPlayer4Connected, +QCheckBox#checkboxPlayer5Connected, +QCheckBox#checkboxPlayer6Connected, +QCheckBox#checkboxPlayer7Connected, +QCheckBox#checkboxPlayer8Connected { + spacing: 0px; +} + +QCheckBox#checkboxPlayer1Connected::indicator, +QCheckBox#checkboxPlayer2Connected::indicator, +QCheckBox#checkboxPlayer3Connected::indicator, +QCheckBox#checkboxPlayer4Connected::indicator, +QCheckBox#checkboxPlayer5Connected::indicator, +QCheckBox#checkboxPlayer6Connected::indicator, +QCheckBox#checkboxPlayer7Connected::indicator, +QCheckBox#checkboxPlayer8Connected::indicator { + width: 14px; + height: 14px; +} + +QCheckBox#checkboxPlayer1Connected::indicator:checked, +QCheckBox#checkboxPlayer2Connected::indicator:checked, +QCheckBox#checkboxPlayer3Connected::indicator:checked, +QCheckBox#checkboxPlayer4Connected::indicator:checked, +QCheckBox#checkboxPlayer5Connected::indicator:checked, +QCheckBox#checkboxPlayer6Connected::indicator:checked, +QCheckBox#checkboxPlayer7Connected::indicator:checked, +QCheckBox#checkboxPlayer8Connected::indicator:checked, +QGroupBox#groupConnectedController::indicator:checked { + border-radius: 2px; + border: 1px solid #929192; + background: #39ff14; + image: none; +} + +QCheckBox#checkboxPlayer1Connected::indicator:unchecked, +QCheckBox#checkboxPlayer2Connected::indicator:unchecked, +QCheckBox#checkboxPlayer3Connected::indicator:unchecked, +QCheckBox#checkboxPlayer4Connected::indicator:unchecked, +QCheckBox#checkboxPlayer5Connected::indicator:unchecked, +QCheckBox#checkboxPlayer6Connected::indicator:unchecked, +QCheckBox#checkboxPlayer7Connected::indicator:unchecked, +QCheckBox#checkboxPlayer8Connected::indicator:unchecked, +QGroupBox#groupConnectedController::indicator:unchecked { + border-radius: 2px; + border: 1px solid #929192; + background: transparent; + image: none; +} + +QSpinBox#spinboxLStickRange, +QSpinBox#spinboxRStickRange { + padding: 4px 0px 5px 0px; + min-width: 63px; +} + +QSpinBox#vibrationSpin { + padding: 4px 0px 5px 0px; + min-width: 63px; +} + +QSpinBox#spinboxLStickRange:up-button, +QSpinBox#spinboxRStickRange:up-button, +QSpinBox#vibrationSpin:up-button { + left: -2px; +} + +QSpinBox#spinboxLStickRange:down-button, +QSpinBox#spinboxRStickRange:down-button, +QSpinBox#vibrationSpin:down-button { + right: -1px; +} + +QGroupBox#motionGroup::indicator, +QGroupBox#vibrationGroup::indicator { + margin-left: 0px; +} + +QGroupBox#motionGroup::title, +QGroupBox#vibrationGroup::title { + spacing: 2px; + padding-left: 1px; + padding-right: 1px; } diff --git a/dist/qt_themes/qdarkstyle_midnight_blue/icons/16x16/refresh.png b/dist/qt_themes/qdarkstyle_midnight_blue/icons/16x16/refresh.png new file mode 100644 index 0000000000000000000000000000000000000000..d4afd76f949ff5c65e039b69ff999325bff5d7b8 GIT binary patch literal 362 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf<Z~8yL>2?p zD}XSgpwrRCKtah8*NBqf{Irtt#G+J&^73-M%)IR4<ivthz5Jr|+3#$mfQp`bx;Tbd z^d7xr=y%vbfb~LTi_27zh5(s&4G%<C28ukeSh<r$<VxVHm<A)!4kj)KCNGzKIaY0h zV`ZmmGH3m*|M&0a+>TP^t%4d#k2I8Aju<Wd687+y=F<Lc$7;`fd?~J)reSb&$=b?} z<uS=$isn9IeSdSq)r5Jow@dH%?6v4Wn`K;QA+z~caeKDeqIVr#a$Jrqx^}0(V|Itd zN||_bRf*K^agS?OH#o{Y+~I6|NOapR7UMfxZ63+V72KS<=z#J(Lr3}D7Kd%~Hg3+E zlIRz7P3$F8^R9i_Q`rRzCGOjA_R-v1c5jba4WsJ~&MW6R^YVdSX7F_Nb6Mw<&;$Ux C5{w)G literal 0 HcmV?d00001 diff --git a/dist/qt_themes/qdarkstyle_midnight_blue/icons/16x16/view-refresh.png b/dist/qt_themes/qdarkstyle_midnight_blue/icons/16x16/view-refresh.png new file mode 100644 index 0000000000000000000000000000000000000000..d4afd76f949ff5c65e039b69ff999325bff5d7b8 GIT binary patch literal 362 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf<Z~8yL>2?p zD}XSgpwrRCKtah8*NBqf{Irtt#G+J&^73-M%)IR4<ivthz5Jr|+3#$mfQp`bx;Tbd z^d7xr=y%vbfb~LTi_27zh5(s&4G%<C28ukeSh<r$<VxVHm<A)!4kj)KCNGzKIaY0h zV`ZmmGH3m*|M&0a+>TP^t%4d#k2I8Aju<Wd687+y=F<Lc$7;`fd?~J)reSb&$=b?} z<uS=$isn9IeSdSq)r5Jow@dH%?6v4Wn`K;QA+z~caeKDeqIVr#a$Jrqx^}0(V|Itd zN||_bRf*K^agS?OH#o{Y+~I6|NOapR7UMfxZ63+V72KS<=z#J(Lr3}D7Kd%~Hg3+E zlIRz7P3$F8^R9i_Q`rRzCGOjA_R-v1c5jba4WsJ~&MW6R^YVdSX7F_Nb6Mw<&;$Ux C5{w)G literal 0 HcmV?d00001 diff --git a/dist/qt_themes/qdarkstyle_midnight_blue/style.qrc b/dist/qt_themes/qdarkstyle_midnight_blue/style.qrc index 1b7686f15d..616aace739 100644 --- a/dist/qt_themes/qdarkstyle_midnight_blue/style.qrc +++ b/dist/qt_themes/qdarkstyle_midnight_blue/style.qrc @@ -2,6 +2,7 @@ <qresource prefix="icons/qdarkstyle_midnight_blue"> <file alias="index.theme">icons/index.theme</file> <file alias="16x16/lock.png">icons/16x16/lock.png</file> + <file alias="16x16/view-refresh.png">icons/16x16/view-refresh.png</file> <file alias="48x48/bad_folder.png">icons/48x48/bad_folder.png</file> <file alias="48x48/chip.png">icons/48x48/chip.png</file> <file alias="48x48/folder.png">icons/48x48/folder.png</file> diff --git a/dist/qt_themes/qdarkstyle_midnight_blue/style.qss b/dist/qt_themes/qdarkstyle_midnight_blue/style.qss index 9c24b0d076..0ecdf271e6 100644 --- a/dist/qt_themes/qdarkstyle_midnight_blue/style.qss +++ b/dist/qt_themes/qdarkstyle_midnight_blue/style.qss @@ -236,21 +236,19 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qgroupbox --------------------------------------------------------------------------- */ QGroupBox { - font-weight: bold; - border: 1px solid #32414B; - border-radius: 4px; - padding: 4px; - margin-top: 16px; + font-weight: bold; + border: 1px solid #32414B; + border-radius: 4px; + margin-top: 12px; + padding: 4px; } QGroupBox::title { - subcontrol-origin: margin; - subcontrol-position: top left; - left: 3px; - padding-left: 3px; - padding-right: 5px; - padding-top: 8px; - padding-bottom: 16px; + subcontrol-origin: margin; + subcontrol-position: top left; + padding-left: 3px; + padding-right: 5px; + padding-top: 4px; } QGroupBox::indicator { @@ -2172,3 +2170,121 @@ PlotWidget { /* Fix cut labels in plots #134 */ padding: 0px; } + + +QPushButton#TogglableStatusBarButton { + min-width: 0px; + color: #656565; + border: 1px solid transparent; + background-color: transparent; + padding: 0px 3px 0px 3px; + text-align: center; +} + +QPushButton#TogglableStatusBarButton:checked { + color: #ffffff; +} + +QPushButton#TogglableStatusBarButton:hover { + border: 1px solid #76797C; +} + +QPushButton#RendererStatusBarButton { + min-width: 0px; + color: #656565; + border: 1px solid transparent; + background-color: transparent; + padding: 0px 3px 0px 3px; + text-align: center; +} + +QPushButton#RendererStatusBarButton:hover { + border: 1px solid #76797C; +} + +QPushButton#RendererStatusBarButton:checked { + color: #e85c00; +} + +QPushButton#RendererStatusBarButton:!checked { + color: #00ccdd; +} + +QPushButton#buttonRefreshDevices { + min-width: 20px; + min-height: 20px; + max-width: 20px; + max-height: 20px; + padding: 0px 0px; +} + + +QCheckBox#checkboxPlayer1Connected, +QCheckBox#checkboxPlayer2Connected, +QCheckBox#checkboxPlayer3Connected, +QCheckBox#checkboxPlayer4Connected, +QCheckBox#checkboxPlayer5Connected, +QCheckBox#checkboxPlayer6Connected, +QCheckBox#checkboxPlayer7Connected, +QCheckBox#checkboxPlayer8Connected { + spacing: 0px; +} + +QCheckBox#checkboxPlayer1Connected::indicator, +QCheckBox#checkboxPlayer2Connected::indicator, +QCheckBox#checkboxPlayer3Connected::indicator, +QCheckBox#checkboxPlayer4Connected::indicator, +QCheckBox#checkboxPlayer5Connected::indicator, +QCheckBox#checkboxPlayer6Connected::indicator, +QCheckBox#checkboxPlayer7Connected::indicator, +QCheckBox#checkboxPlayer8Connected::indicator { + width: 14px; + height: 14px; +} + +QCheckBox#checkboxPlayer1Connected::indicator:checked, +QCheckBox#checkboxPlayer2Connected::indicator:checked, +QCheckBox#checkboxPlayer3Connected::indicator:checked, +QCheckBox#checkboxPlayer4Connected::indicator:checked, +QCheckBox#checkboxPlayer5Connected::indicator:checked, +QCheckBox#checkboxPlayer6Connected::indicator:checked, +QCheckBox#checkboxPlayer7Connected::indicator:checked, +QCheckBox#checkboxPlayer8Connected::indicator:checked, +QGroupBox#groupConnectedController::indicator:checked { + border-radius: 2px; + border: 1px solid #929192; + background: #39ff14; + image: none; +} + +QCheckBox#checkboxPlayer1Connected::indicator:unchecked, +QCheckBox#checkboxPlayer2Connected::indicator:unchecked, +QCheckBox#checkboxPlayer3Connected::indicator:unchecked, +QCheckBox#checkboxPlayer4Connected::indicator:unchecked, +QCheckBox#checkboxPlayer5Connected::indicator:unchecked, +QCheckBox#checkboxPlayer6Connected::indicator:unchecked, +QCheckBox#checkboxPlayer7Connected::indicator:unchecked, +QCheckBox#checkboxPlayer8Connected::indicator:unchecked, +QGroupBox#groupConnectedController::indicator:unchecked { + border-radius: 2px; + border: 1px solid #929192; + background: transparent; + image: none; +} + +QSpinBox#spinboxLStickRange, +QSpinBox#spinboxRStickRange { + min-width: 53px; +} + +QGroupBox#motionGroup::indicator, +QGroupBox#vibrationGroup::indicator { + margin-left: 0px; +} + +QGroupBox#motionGroup::title, +QGroupBox#vibrationGroup::title { +spacing: 2px; + padding-left: 1px; + padding-right: 1px; +} diff --git a/src/common/param_package.h b/src/common/param_package.h index c8a70bfa95..c13e454790 100644 --- a/src/common/param_package.h +++ b/src/common/param_package.h @@ -19,7 +19,7 @@ public: explicit ParamPackage(const std::string& serialized); ParamPackage(std::initializer_list<DataType::value_type> list); ParamPackage(const ParamPackage& other) = default; - ParamPackage(ParamPackage&& other) = default; + ParamPackage(ParamPackage&& other) noexcept = default; ParamPackage& operator=(const ParamPackage& other) = default; ParamPackage& operator=(ParamPackage&& other) = default; diff --git a/src/core/hle/service/hid/controllers/npad.cpp b/src/core/hle/service/hid/controllers/npad.cpp index 0e7794dc7b..82e11b1694 100644 --- a/src/core/hle/service/hid/controllers/npad.cpp +++ b/src/core/hle/service/hid/controllers/npad.cpp @@ -24,6 +24,7 @@ constexpr s32 HID_JOYSTICK_MAX = 0x7fff; constexpr std::size_t NPAD_OFFSET = 0x9A00; constexpr u32 BATTERY_FULL = 2; constexpr u32 MAX_NPAD_ID = 7; +constexpr std::size_t HANDHELD_INDEX = 8; constexpr std::array<u32, 10> npad_id_list{ 0, 1, 2, 3, 4, 5, 6, 7, NPAD_HANDHELD, NPAD_UNKNOWN, }; @@ -33,19 +34,41 @@ enum class JoystickId : std::size_t { Joystick_Right, }; -static Controller_NPad::NPadControllerType MapSettingsTypeToNPad(Settings::ControllerType type) { +Controller_NPad::NPadControllerType Controller_NPad::MapSettingsTypeToNPad( + Settings::ControllerType type) { switch (type) { case Settings::ControllerType::ProController: - return Controller_NPad::NPadControllerType::ProController; - case Settings::ControllerType::DualJoycon: - return Controller_NPad::NPadControllerType::JoyDual; + return NPadControllerType::ProController; + case Settings::ControllerType::DualJoyconDetached: + return NPadControllerType::JoyDual; case Settings::ControllerType::LeftJoycon: - return Controller_NPad::NPadControllerType::JoyLeft; + return NPadControllerType::JoyLeft; case Settings::ControllerType::RightJoycon: - return Controller_NPad::NPadControllerType::JoyRight; + return NPadControllerType::JoyRight; + case Settings::ControllerType::Handheld: + return NPadControllerType::Handheld; default: UNREACHABLE(); - return Controller_NPad::NPadControllerType::JoyDual; + return NPadControllerType::ProController; + } +} + +Settings::ControllerType Controller_NPad::MapNPadToSettingsType( + Controller_NPad::NPadControllerType type) { + switch (type) { + case NPadControllerType::ProController: + return Settings::ControllerType::ProController; + case NPadControllerType::JoyDual: + return Settings::ControllerType::DualJoyconDetached; + case NPadControllerType::JoyLeft: + return Settings::ControllerType::LeftJoycon; + case NPadControllerType::JoyRight: + return Settings::ControllerType::RightJoycon; + case NPadControllerType::Handheld: + return Settings::ControllerType::Handheld; + default: + UNREACHABLE(); + return Settings::ControllerType::ProController; } } @@ -60,9 +83,9 @@ std::size_t Controller_NPad::NPadIdToIndex(u32 npad_id) { case 6: case 7: return npad_id; - case 8: + case HANDHELD_INDEX: case NPAD_HANDHELD: - return 8; + return HANDHELD_INDEX; case 9: case NPAD_UNKNOWN: return 9; @@ -83,7 +106,7 @@ u32 Controller_NPad::IndexToNPad(std::size_t index) { case 6: case 7: return static_cast<u32>(index); - case 8: + case HANDHELD_INDEX: return NPAD_HANDHELD; case 9: return NPAD_UNKNOWN; @@ -96,25 +119,35 @@ u32 Controller_NPad::IndexToNPad(std::size_t index) { Controller_NPad::Controller_NPad(Core::System& system) : ControllerBase(system), system(system) {} Controller_NPad::~Controller_NPad() = default; -void Controller_NPad::InitNewlyAddedControler(std::size_t controller_idx) { +void Controller_NPad::InitNewlyAddedController(std::size_t controller_idx) { const auto controller_type = connected_controllers[controller_idx].type; auto& controller = shared_memory_entries[controller_idx]; if (controller_type == NPadControllerType::None) { + styleset_changed_events[controller_idx].writable->Signal(); return; } controller.joy_styles.raw = 0; // Zero out controller.device_type.raw = 0; + controller.properties.raw = 0; switch (controller_type) { case NPadControllerType::None: UNREACHABLE(); break; + case NPadControllerType::ProController: + controller.joy_styles.pro_controller.Assign(1); + controller.device_type.pro_controller.Assign(1); + controller.properties.is_vertical.Assign(1); + controller.properties.use_plus.Assign(1); + controller.properties.use_minus.Assign(1); + controller.pad_assignment = NPadAssignments::Single; + break; case NPadControllerType::Handheld: controller.joy_styles.handheld.Assign(1); controller.device_type.handheld.Assign(1); - controller.pad_assignment = NPadAssignments::Dual; controller.properties.is_vertical.Assign(1); controller.properties.use_plus.Assign(1); controller.properties.use_minus.Assign(1); + controller.pad_assignment = NPadAssignments::Dual; break; case NPadControllerType::JoyDual: controller.joy_styles.joycon_dual.Assign(1); @@ -144,14 +177,6 @@ void Controller_NPad::InitNewlyAddedControler(std::size_t controller_idx) { controller.device_type.pokeball.Assign(1); controller.pad_assignment = NPadAssignments::Single; break; - case NPadControllerType::ProController: - controller.joy_styles.pro_controller.Assign(1); - controller.device_type.pro_controller.Assign(1); - controller.properties.is_vertical.Assign(1); - controller.properties.use_plus.Assign(1); - controller.properties.use_minus.Assign(1); - controller.pad_assignment = NPadAssignments::Single; - break; } controller.single_color_error = ColorReadError::ReadOk; @@ -192,36 +217,25 @@ void Controller_NPad::OnInit() { style.pokeball.Assign(1); } - std::transform( - Settings::values.players.begin(), Settings::values.players.end(), - connected_controllers.begin(), [](const Settings::PlayerInput& player) { - return ControllerHolder{MapSettingsTypeToNPad(player.type), player.connected}; - }); - - std::stable_partition(connected_controllers.begin(), connected_controllers.begin() + 8, - [](const ControllerHolder& holder) { return holder.is_connected; }); + std::transform(Settings::values.players.begin(), Settings::values.players.end(), + connected_controllers.begin(), [](const Settings::PlayerInput& player) { + return ControllerHolder{MapSettingsTypeToNPad(player.controller_type), + player.connected}; + }); // Account for handheld - if (connected_controllers[8].is_connected) - connected_controllers[8].type = NPadControllerType::Handheld; + if (connected_controllers[HANDHELD_INDEX].is_connected) { + connected_controllers[HANDHELD_INDEX].type = NPadControllerType::Handheld; + } supported_npad_id_types.resize(npad_id_list.size()); std::memcpy(supported_npad_id_types.data(), npad_id_list.data(), npad_id_list.size() * sizeof(u32)); - // Add a default dual joycon controller if none are present. - if (std::none_of(connected_controllers.begin(), connected_controllers.end(), - [](const ControllerHolder& controller) { return controller.is_connected; })) { - supported_npad_id_types.resize(npad_id_list.size()); - std::memcpy(supported_npad_id_types.data(), npad_id_list.data(), - npad_id_list.size() * sizeof(u32)); - AddNewController(NPadControllerType::JoyDual); - } - for (std::size_t i = 0; i < connected_controllers.size(); ++i) { const auto& controller = connected_controllers[i]; if (controller.is_connected) { - AddNewControllerAt(controller.type, IndexToNPad(i)); + AddNewControllerAt(controller.type, i); } } } @@ -309,8 +323,9 @@ void Controller_NPad::RequestPadStateUpdate(u32 npad_id) { void Controller_NPad::OnUpdate(const Core::Timing::CoreTiming& core_timing, u8* data, std::size_t data_len) { - if (!IsControllerActivated()) + if (!IsControllerActivated()) { return; + } for (std::size_t i = 0; i < shared_memory_entries.size(); i++) { auto& npad = shared_memory_entries[i]; const std::array<NPadGeneric*, 7> controller_npads{&npad.main_controller_states, @@ -365,6 +380,14 @@ void Controller_NPad::OnUpdate(const Core::Timing::CoreTiming& core_timing, u8* case NPadControllerType::None: UNREACHABLE(); break; + case NPadControllerType::ProController: + main_controller.connection_status.raw = 0; + main_controller.connection_status.IsConnected.Assign(1); + main_controller.connection_status.IsWired.Assign(1); + main_controller.pad.pad_states.raw = pad_state.pad_states.raw; + main_controller.pad.l_stick = pad_state.l_stick; + main_controller.pad.r_stick = pad_state.r_stick; + break; case NPadControllerType::Handheld: handheld_entry.connection_status.raw = 0; handheld_entry.connection_status.IsWired.Assign(1); @@ -378,22 +401,19 @@ void Controller_NPad::OnUpdate(const Core::Timing::CoreTiming& core_timing, u8* break; case NPadControllerType::JoyDual: dual_entry.connection_status.raw = 0; - + dual_entry.connection_status.IsConnected.Assign(1); dual_entry.connection_status.IsLeftJoyConnected.Assign(1); dual_entry.connection_status.IsRightJoyConnected.Assign(1); - dual_entry.connection_status.IsConnected.Assign(1); - - libnx_entry.connection_status.IsLeftJoyConnected.Assign(1); - libnx_entry.connection_status.IsRightJoyConnected.Assign(1); - libnx_entry.connection_status.IsConnected.Assign(1); - dual_entry.pad.pad_states.raw = pad_state.pad_states.raw; dual_entry.pad.l_stick = pad_state.l_stick; dual_entry.pad.r_stick = pad_state.r_stick; + + libnx_entry.connection_status.IsConnected.Assign(1); + libnx_entry.connection_status.IsLeftJoyConnected.Assign(1); + libnx_entry.connection_status.IsRightJoyConnected.Assign(1); break; case NPadControllerType::JoyLeft: left_entry.connection_status.raw = 0; - left_entry.connection_status.IsConnected.Assign(1); left_entry.pad.pad_states.raw = pad_state.pad_states.raw; left_entry.pad.l_stick = pad_state.l_stick; @@ -401,7 +421,6 @@ void Controller_NPad::OnUpdate(const Core::Timing::CoreTiming& core_timing, u8* break; case NPadControllerType::JoyRight: right_entry.connection_status.raw = 0; - right_entry.connection_status.IsConnected.Assign(1); right_entry.pad.pad_states.raw = pad_state.pad_states.raw; right_entry.pad.l_stick = pad_state.l_stick; @@ -409,23 +428,12 @@ void Controller_NPad::OnUpdate(const Core::Timing::CoreTiming& core_timing, u8* break; case NPadControllerType::Pokeball: pokeball_entry.connection_status.raw = 0; - pokeball_entry.connection_status.IsConnected.Assign(1); pokeball_entry.connection_status.IsWired.Assign(1); - pokeball_entry.pad.pad_states.raw = pad_state.pad_states.raw; pokeball_entry.pad.l_stick = pad_state.l_stick; pokeball_entry.pad.r_stick = pad_state.r_stick; break; - case NPadControllerType::ProController: - main_controller.connection_status.raw = 0; - - main_controller.connection_status.IsConnected.Assign(1); - main_controller.connection_status.IsWired.Assign(1); - main_controller.pad.pad_states.raw = pad_state.pad_states.raw; - main_controller.pad.l_stick = pad_state.l_stick; - main_controller.pad.r_stick = pad_state.r_stick; - break; } // LibNX exclusively uses this section, so we always update it since LibNX doesn't activate @@ -453,26 +461,6 @@ void Controller_NPad::SetSupportedNPadIdTypes(u8* data, std::size_t length) { supported_npad_id_types.clear(); supported_npad_id_types.resize(length / sizeof(u32)); std::memcpy(supported_npad_id_types.data(), data, length); - for (std::size_t i = 0; i < connected_controllers.size(); i++) { - auto& controller = connected_controllers[i]; - if (!controller.is_connected) { - continue; - } - const auto requested_controller = - i <= MAX_NPAD_ID ? MapSettingsTypeToNPad(Settings::values.players[i].type) - : NPadControllerType::Handheld; - if (!IsControllerSupported(requested_controller)) { - const auto is_handheld = requested_controller == NPadControllerType::Handheld; - if (is_handheld) { - controller.type = NPadControllerType::None; - controller.is_connected = false; - AddNewController(requested_controller); - } else { - controller.type = requested_controller; - InitNewlyAddedControler(i); - } - } - } } void Controller_NPad::GetSupportedNpadIdTypes(u32* data, std::size_t max_length) { @@ -504,7 +492,7 @@ void Controller_NPad::VibrateController(const std::vector<u32>& controller_ids, const std::vector<Vibration>& vibrations) { LOG_DEBUG(Service_HID, "(STUBBED) called"); - if (!can_controllers_vibrate) { + if (!Settings::values.vibration_enabled || !can_controllers_vibrate) { return; } for (std::size_t i = 0; i < controller_ids.size(); i++) { @@ -517,8 +505,6 @@ void Controller_NPad::VibrateController(const std::vector<u32>& controller_ids, } std::shared_ptr<Kernel::ReadableEvent> Controller_NPad::GetStyleSetChangedEvent(u32 npad_id) const { - // TODO(ogniK): Figure out the best time to signal this event. This event seems that it should - // be signalled at least once, and signaled after a new controller is connected? const auto& styleset_event = styleset_changed_events[NPadIdToIndex(npad_id)]; return styleset_event.readable; } @@ -527,43 +513,43 @@ Controller_NPad::Vibration Controller_NPad::GetLastVibration() const { return last_processed_vibration; } -void Controller_NPad::AddNewController(NPadControllerType controller) { - controller = DecideBestController(controller); - if (controller == NPadControllerType::Handheld) { - connected_controllers[8] = {controller, true}; - InitNewlyAddedControler(8); - return; - } - const auto pos = - std::find_if(connected_controllers.begin(), connected_controllers.end() - 2, - [](const ControllerHolder& holder) { return !holder.is_connected; }); - if (pos == connected_controllers.end() - 2) { - LOG_ERROR(Service_HID, "Cannot connect any more controllers!"); +void Controller_NPad::AddNewControllerAt(NPadControllerType controller, std::size_t npad_index) { + UpdateControllerAt(controller, npad_index, true); +} + +void Controller_NPad::UpdateControllerAt(NPadControllerType controller, std::size_t npad_index, + bool connected) { + if (!connected) { + DisconnectNPad(IndexToNPad(npad_index)); return; } - const auto controller_id = std::distance(connected_controllers.begin(), pos); - connected_controllers[controller_id] = {controller, true}; - InitNewlyAddedControler(controller_id); -} -void Controller_NPad::AddNewControllerAt(NPadControllerType controller, u32 npad_id) { - controller = DecideBestController(controller); if (controller == NPadControllerType::Handheld) { - connected_controllers[NPadIdToIndex(NPAD_HANDHELD)] = {controller, true}; - InitNewlyAddedControler(NPadIdToIndex(NPAD_HANDHELD)); + Settings::values.players[HANDHELD_INDEX].controller_type = + MapNPadToSettingsType(controller); + Settings::values.players[HANDHELD_INDEX].connected = true; + connected_controllers[HANDHELD_INDEX] = {controller, true}; + InitNewlyAddedController(HANDHELD_INDEX); return; } - connected_controllers[NPadIdToIndex(npad_id)] = {controller, true}; - InitNewlyAddedControler(NPadIdToIndex(npad_id)); -} - -void Controller_NPad::ConnectNPad(u32 npad_id) { - connected_controllers[NPadIdToIndex(npad_id)].is_connected = true; + Settings::values.players[npad_index].controller_type = MapNPadToSettingsType(controller); + Settings::values.players[npad_index].connected = true; + connected_controllers[npad_index] = {controller, true}; + InitNewlyAddedController(npad_index); } void Controller_NPad::DisconnectNPad(u32 npad_id) { - connected_controllers[NPadIdToIndex(npad_id)].is_connected = false; + const auto npad_index = NPadIdToIndex(npad_id); + connected_controllers[npad_index].is_connected = false; + Settings::values.players[npad_index].connected = false; + + auto& controller = shared_memory_entries[npad_index]; + controller.joy_styles.raw = 0; // Zero out + controller.device_type.raw = 0; + controller.properties.raw = 0; + + styleset_changed_events[npad_index].writable->Signal(); } void Controller_NPad::SetGyroscopeZeroDriftMode(GyroscopeZeroDriftMode drift_mode) { @@ -599,8 +585,8 @@ bool Controller_NPad::SwapNpadAssignment(u32 npad_id_1, u32 npad_id_2) { std::swap(connected_controllers[npad_index_1].type, connected_controllers[npad_index_2].type); - InitNewlyAddedControler(npad_index_1); - InitNewlyAddedControler(npad_index_2); + AddNewControllerAt(connected_controllers[npad_index_1].type, npad_index_1); + AddNewControllerAt(connected_controllers[npad_index_2].type, npad_index_2); return true; } @@ -628,7 +614,6 @@ Controller_NPad::LedPattern Controller_NPad::GetLedPattern(u32 npad_id) { case 7: return LedPattern{0, 1, 1, 0}; default: - UNIMPLEMENTED_MSG("Unhandled npad_id {}", npad_id); return LedPattern{0, 0, 0, 0}; } } diff --git a/src/core/hle/service/hid/controllers/npad.h b/src/core/hle/service/hid/controllers/npad.h index 5d4c58a431..75ce5b7313 100644 --- a/src/core/hle/service/hid/controllers/npad.h +++ b/src/core/hle/service/hid/controllers/npad.h @@ -118,10 +118,11 @@ public: std::shared_ptr<Kernel::ReadableEvent> GetStyleSetChangedEvent(u32 npad_id) const; Vibration GetLastVibration() const; - void AddNewController(NPadControllerType controller); - void AddNewControllerAt(NPadControllerType controller, u32 npad_id); + // Adds a new controller at an index. + void AddNewControllerAt(NPadControllerType controller, std::size_t npad_index); + // Adds a new controller at an index with connection status. + void UpdateControllerAt(NPadControllerType controller, std::size_t npad_index, bool connected); - void ConnectNPad(u32 npad_id); void DisconnectNPad(u32 npad_id); void SetGyroscopeZeroDriftMode(GyroscopeZeroDriftMode drift_mode); GyroscopeZeroDriftMode GetGyroscopeZeroDriftMode() const; @@ -141,6 +142,8 @@ public: // Specifically for cheat engine and other features. u32 GetAndResetPressState(); + static Controller_NPad::NPadControllerType MapSettingsTypeToNPad(Settings::ControllerType type); + static Settings::ControllerType MapNPadToSettingsType(Controller_NPad::NPadControllerType type); static std::size_t NPadIdToIndex(u32 npad_id); static u32 IndexToNPad(std::size_t index); @@ -309,7 +312,7 @@ private: bool is_connected; }; - void InitNewlyAddedControler(std::size_t controller_idx); + void InitNewlyAddedController(std::size_t controller_idx); bool IsControllerSupported(NPadControllerType controller) const; NPadControllerType DecideBestController(NPadControllerType priority) const; void RequestPadStateUpdate(u32 npad_id); diff --git a/src/core/hle/service/hid/hid.cpp b/src/core/hle/service/hid/hid.cpp index 1e95b75806..33416b5dd3 100644 --- a/src/core/hle/service/hid/hid.cpp +++ b/src/core/hle/service/hid/hid.cpp @@ -38,11 +38,9 @@ namespace Service::HID { // Updating period for each HID device. -// TODO(ogniK): Find actual polling rate of hid -constexpr auto pad_update_ns = std::chrono::nanoseconds{1000000000 / 66}; -[[maybe_unused]] constexpr auto accelerometer_update_ns = - std::chrono::nanoseconds{1000000000 / 100}; -[[maybe_unused]] constexpr auto gyroscope_update_ticks = std::chrono::nanoseconds{1000000000 / 100}; +// HID is polled every 15ms, this value was derived from +// https://github.com/dekuNukem/Nintendo_Switch_Reverse_Engineering#joy-con-status-data-packet +constexpr auto pad_update_ns = std::chrono::nanoseconds{15 * 1000 * 1000}; // (15ms, 66.6Hz) constexpr std::size_t SHARED_MEMORY_SIZE = 0x40000; IAppletResource::IAppletResource(Core::System& system) @@ -845,8 +843,7 @@ void Hid::CreateActiveVibrationDeviceList(Kernel::HLERequestContext& ctx) { void Hid::PermitVibration(Kernel::HLERequestContext& ctx) { IPC::RequestParser rp{ctx}; const auto can_vibrate{rp.Pop<bool>()}; - applet_resource->GetController<Controller_NPad>(HidController::NPad) - .SetVibrationEnabled(can_vibrate); + Settings::values.vibration_enabled = can_vibrate; LOG_DEBUG(Service_HID, "called, can_vibrate={}", can_vibrate); @@ -859,8 +856,7 @@ void Hid::IsVibrationPermitted(Kernel::HLERequestContext& ctx) { IPC::ResponseBuilder rb{ctx, 3}; rb.Push(RESULT_SUCCESS); - rb.Push( - applet_resource->GetController<Controller_NPad>(HidController::NPad).IsVibrationEnabled()); + rb.Push(Settings::values.vibration_enabled); } void Hid::ActivateConsoleSixAxisSensor(Kernel::HLERequestContext& ctx) { diff --git a/src/core/settings.cpp b/src/core/settings.cpp index d328fb8b77..28d3f9099c 100644 --- a/src/core/settings.cpp +++ b/src/core/settings.cpp @@ -13,56 +13,6 @@ namespace Settings { -namespace NativeButton { -const std::array<const char*, NumButtons> mapping = {{ - "button_a", - "button_b", - "button_x", - "button_y", - "button_lstick", - "button_rstick", - "button_l", - "button_r", - "button_zl", - "button_zr", - "button_plus", - "button_minus", - "button_dleft", - "button_dup", - "button_dright", - "button_ddown", - "button_lstick_left", - "button_lstick_up", - "button_lstick_right", - "button_lstick_down", - "button_rstick_left", - "button_rstick_up", - "button_rstick_right", - "button_rstick_down", - "button_sl", - "button_sr", - "button_home", - "button_screenshot", -}}; -} - -namespace NativeAnalog { -const std::array<const char*, NumAnalogs> mapping = {{ - "lstick", - "rstick", -}}; -} - -namespace NativeMouseButton { -const std::array<const char*, NumMouseButtons> mapping = {{ - "left", - "right", - "middle", - "forward", - "back", -}}; -} - Values values = {}; bool configuring_global = true; diff --git a/src/core/settings.h b/src/core/settings.h index 3681b5e9df..732c6a8948 100644 --- a/src/core/settings.h +++ b/src/core/settings.h @@ -12,340 +12,10 @@ #include <string> #include <vector> #include "common/common_types.h" +#include "input_common/settings.h" namespace Settings { -namespace NativeButton { -enum Values { - A, - B, - X, - Y, - LStick, - RStick, - L, - R, - ZL, - ZR, - Plus, - Minus, - - DLeft, - DUp, - DRight, - DDown, - - LStick_Left, - LStick_Up, - LStick_Right, - LStick_Down, - - RStick_Left, - RStick_Up, - RStick_Right, - RStick_Down, - - SL, - SR, - - Home, - Screenshot, - - NumButtons, -}; - -constexpr int BUTTON_HID_BEGIN = A; -constexpr int BUTTON_NS_BEGIN = Home; - -constexpr int BUTTON_HID_END = BUTTON_NS_BEGIN; -constexpr int BUTTON_NS_END = NumButtons; - -constexpr int NUM_BUTTONS_HID = BUTTON_HID_END - BUTTON_HID_BEGIN; -constexpr int NUM_BUTTONS_NS = BUTTON_NS_END - BUTTON_NS_BEGIN; - -extern const std::array<const char*, NumButtons> mapping; - -} // namespace NativeButton - -namespace NativeAnalog { -enum Values { - LStick, - RStick, - - NumAnalogs, -}; - -constexpr int STICK_HID_BEGIN = LStick; -constexpr int STICK_HID_END = NumAnalogs; -constexpr int NUM_STICKS_HID = NumAnalogs; - -extern const std::array<const char*, NumAnalogs> mapping; -} // namespace NativeAnalog - -namespace NativeMouseButton { -enum Values { - Left, - Right, - Middle, - Forward, - Back, - - NumMouseButtons, -}; - -constexpr int MOUSE_HID_BEGIN = Left; -constexpr int MOUSE_HID_END = NumMouseButtons; -constexpr int NUM_MOUSE_HID = NumMouseButtons; - -extern const std::array<const char*, NumMouseButtons> mapping; -} // namespace NativeMouseButton - -namespace NativeKeyboard { -enum Keys { - None, - Error, - - A = 4, - B, - C, - D, - E, - F, - G, - H, - I, - J, - K, - L, - M, - N, - O, - P, - Q, - R, - S, - T, - U, - V, - W, - X, - Y, - Z, - N1, - N2, - N3, - N4, - N5, - N6, - N7, - N8, - N9, - N0, - Enter, - Escape, - Backspace, - Tab, - Space, - Minus, - Equal, - LeftBrace, - RightBrace, - Backslash, - Tilde, - Semicolon, - Apostrophe, - Grave, - Comma, - Dot, - Slash, - CapsLockKey, - - F1, - F2, - F3, - F4, - F5, - F6, - F7, - F8, - F9, - F10, - F11, - F12, - - SystemRequest, - ScrollLockKey, - Pause, - Insert, - Home, - PageUp, - Delete, - End, - PageDown, - Right, - Left, - Down, - Up, - - NumLockKey, - KPSlash, - KPAsterisk, - KPMinus, - KPPlus, - KPEnter, - KP1, - KP2, - KP3, - KP4, - KP5, - KP6, - KP7, - KP8, - KP9, - KP0, - KPDot, - - Key102, - Compose, - Power, - KPEqual, - - F13, - F14, - F15, - F16, - F17, - F18, - F19, - F20, - F21, - F22, - F23, - F24, - - Open, - Help, - Properties, - Front, - Stop, - Repeat, - Undo, - Cut, - Copy, - Paste, - Find, - Mute, - VolumeUp, - VolumeDown, - CapsLockActive, - NumLockActive, - ScrollLockActive, - KPComma, - - KPLeftParenthesis, - KPRightParenthesis, - - LeftControlKey = 0xE0, - LeftShiftKey, - LeftAltKey, - LeftMetaKey, - RightControlKey, - RightShiftKey, - RightAltKey, - RightMetaKey, - - MediaPlayPause, - MediaStopCD, - MediaPrevious, - MediaNext, - MediaEject, - MediaVolumeUp, - MediaVolumeDown, - MediaMute, - MediaWebsite, - MediaBack, - MediaForward, - MediaStop, - MediaFind, - MediaScrollUp, - MediaScrollDown, - MediaEdit, - MediaSleep, - MediaCoffee, - MediaRefresh, - MediaCalculator, - - NumKeyboardKeys, -}; - -static_assert(NumKeyboardKeys == 0xFC, "Incorrect number of keyboard keys."); - -enum Modifiers { - LeftControl, - LeftShift, - LeftAlt, - LeftMeta, - RightControl, - RightShift, - RightAlt, - RightMeta, - CapsLock, - ScrollLock, - NumLock, - - NumKeyboardMods, -}; - -constexpr int KEYBOARD_KEYS_HID_BEGIN = None; -constexpr int KEYBOARD_KEYS_HID_END = NumKeyboardKeys; -constexpr int NUM_KEYBOARD_KEYS_HID = NumKeyboardKeys; - -constexpr int KEYBOARD_MODS_HID_BEGIN = LeftControl; -constexpr int KEYBOARD_MODS_HID_END = NumKeyboardMods; -constexpr int NUM_KEYBOARD_MODS_HID = NumKeyboardMods; - -} // namespace NativeKeyboard - -using ButtonsRaw = std::array<std::string, NativeButton::NumButtons>; -using AnalogsRaw = std::array<std::string, NativeAnalog::NumAnalogs>; -using MouseButtonsRaw = std::array<std::string, NativeMouseButton::NumMouseButtons>; -using KeyboardKeysRaw = std::array<std::string, NativeKeyboard::NumKeyboardKeys>; -using KeyboardModsRaw = std::array<std::string, NativeKeyboard::NumKeyboardMods>; - -constexpr u32 JOYCON_BODY_NEON_RED = 0xFF3C28; -constexpr u32 JOYCON_BUTTONS_NEON_RED = 0x1E0A0A; -constexpr u32 JOYCON_BODY_NEON_BLUE = 0x0AB9E6; -constexpr u32 JOYCON_BUTTONS_NEON_BLUE = 0x001E1E; - -enum class ControllerType { - ProController, - DualJoycon, - RightJoycon, - LeftJoycon, -}; - -struct PlayerInput { - bool connected; - ControllerType type; - ButtonsRaw buttons; - AnalogsRaw analogs; - - u32 body_color_right; - u32 button_color_right; - u32 body_color_left; - u32 button_color_left; -}; - -struct TouchscreenInput { - bool enabled; - std::string device; - - u32 finger; - u32 diameter_x; - u32 diameter_y; - u32 rotation_angle; -}; - enum class RendererBackend { OpenGL = 0, Vulkan = 1, @@ -461,6 +131,8 @@ struct Values { // Controls std::array<PlayerInput, 10> players; + bool use_docked_mode; + bool mouse_enabled; std::string mouse_device; MouseButtonsRaw mouse_buttons; @@ -474,14 +146,15 @@ struct Values { AnalogsRaw debug_pad_analogs; std::string motion_device; + + bool vibration_enabled; + TouchscreenInput touchscreen; std::atomic_bool is_device_reload_pending{true}; std::string udp_input_address; u16 udp_input_port; u8 udp_pad_index; - bool use_docked_mode; - // Data Storage bool use_virtual_sd; bool gamecard_inserted; diff --git a/src/input_common/CMakeLists.txt b/src/input_common/CMakeLists.txt index 317c25bade..56267c8a81 100644 --- a/src/input_common/CMakeLists.txt +++ b/src/input_common/CMakeLists.txt @@ -7,6 +7,8 @@ add_library(input_common STATIC main.h motion_emu.cpp motion_emu.h + settings.cpp + settings.h gcadapter/gc_adapter.cpp gcadapter/gc_adapter.h gcadapter/gc_poller.cpp diff --git a/src/input_common/gcadapter/gc_poller.cpp b/src/input_common/gcadapter/gc_poller.cpp index b346fdf8e9..85342bbe79 100644 --- a/src/input_common/gcadapter/gc_poller.cpp +++ b/src/input_common/gcadapter/gc_poller.cpp @@ -232,7 +232,7 @@ std::unique_ptr<Input::AnalogDevice> GCAnalogFactory::Create(const Common::Param const int port = params.Get("port", 0); const int axis_x = params.Get("axis_x", 0); const int axis_y = params.Get("axis_y", 1); - const float deadzone = std::clamp(params.Get("deadzone", 0.0f), 0.0f, .99f); + const float deadzone = std::clamp(params.Get("deadzone", 0.0f), 0.0f, 1.0f); const float range = std::clamp(params.Get("range", 1.0f), 0.50f, 1.50f); return std::make_unique<GCAnalog>(port, axis_x, axis_y, deadzone, adapter.get(), range); diff --git a/src/input_common/main.cpp b/src/input_common/main.cpp index b9d5d0ec35..b8725e9af3 100644 --- a/src/input_common/main.cpp +++ b/src/input_common/main.cpp @@ -44,7 +44,6 @@ void Init() { #ifdef HAVE_SDL2 sdl = SDL::Init(); #endif - udp = CemuhookUDP::Init(); } @@ -103,6 +102,55 @@ std::string GenerateAnalogParamFromKeys(int key_up, int key_down, int key_left, return circle_pad_param.Serialize(); } +std::vector<Common::ParamPackage> GetInputDevices() { + std::vector<Common::ParamPackage> devices = { + Common::ParamPackage{{"display", "Any"}, {"class", "any"}}, + Common::ParamPackage{{"display", "Keyboard"}, {"class", "key"}}, + }; +#ifdef HAVE_SDL2 + auto sdl_devices = sdl->GetInputDevices(); + devices.insert(devices.end(), sdl_devices.begin(), sdl_devices.end()); +#endif + auto udp_devices = udp->GetInputDevices(); + devices.insert(devices.end(), udp_devices.begin(), udp_devices.end()); + return devices; +} + +std::unordered_map<Settings::NativeButton::Values, Common::ParamPackage> GetButtonMappingForDevice( + const Common::ParamPackage& params) { + std::unordered_map<Settings::NativeButton::Values, Common::ParamPackage> mappings{}; + if (!params.Has("class") || params.Get("class", "") == "any") { + return mappings; + } + if (params.Get("class", "") == "key") { + // TODO consider returning the SDL key codes for the default keybindings + } +#ifdef HAVE_SDL2 + if (params.Get("class", "") == "sdl") { + return sdl->GetButtonMappingForDevice(params); + } +#endif + return mappings; +} + +std::unordered_map<Settings::NativeAnalog::Values, Common::ParamPackage> GetAnalogMappingForDevice( + const Common::ParamPackage& params) { + std::unordered_map<Settings::NativeAnalog::Values, Common::ParamPackage> mappings{}; + if (!params.Has("class") || params.Get("class", "") == "any") { + return mappings; + } + if (params.Get("class", "") == "key") { + // TODO consider returning the SDL key codes for the default keybindings + return mappings; + } +#ifdef HAVE_SDL2 + if (params.Get("class", "") == "sdl") { + return sdl->GetAnalogMappingForDevice(params); + } +#endif + return mappings; +} + namespace Polling { std::vector<std::unique_ptr<DevicePoller>> GetPollers(DeviceType type) { diff --git a/src/input_common/main.h b/src/input_common/main.h index 0e32856f6d..ebc7f95333 100644 --- a/src/input_common/main.h +++ b/src/input_common/main.h @@ -6,8 +6,10 @@ #include <memory> #include <string> +#include <unordered_map> #include <vector> #include "input_common/gcadapter/gc_poller.h" +#include "input_common/settings.h" namespace Common { class ParamPackage; @@ -42,9 +44,27 @@ std::string GenerateKeyboardParam(int key_code); std::string GenerateAnalogParamFromKeys(int key_up, int key_down, int key_left, int key_right, int key_modifier, float modifier_scale); +/** + * Return a list of available input devices that this Factory can create a new device with. + * Each returned Parampackage should have a `display` field used for display, a class field for + * backends to determine if this backend is meant to service the request and any other information + * needed to identify this in the backend later. + */ +std::vector<Common::ParamPackage> GetInputDevices(); + +/** + * Given a ParamPackage for a Device returned from `GetInputDevices`, attempt to get the default + * mapping for the device. This is currently only implemented for the sdl backend devices. + */ +using ButtonMapping = std::unordered_map<Settings::NativeButton::Values, Common::ParamPackage>; +using AnalogMapping = std::unordered_map<Settings::NativeAnalog::Values, Common::ParamPackage>; + +ButtonMapping GetButtonMappingForDevice(const Common::ParamPackage&); +AnalogMapping GetAnalogMappingForDevice(const Common::ParamPackage&); + namespace Polling { -enum class DeviceType { Button, Analog }; +enum class DeviceType { Button, AnalogPreferred }; /** * A class that can be used to get inputs from an input device like controllers without having to @@ -54,7 +74,9 @@ class DevicePoller { public: virtual ~DevicePoller() = default; /// Setup and start polling for inputs, should be called before GetNextInput - virtual void Start() = 0; + /// If a device_id is provided, events should be filtered to only include events from this + /// device id + virtual void Start(std::string device_id = "") = 0; /// Stop polling virtual void Stop() = 0; /** diff --git a/src/input_common/sdl/sdl.h b/src/input_common/sdl/sdl.h index 5306daa700..f3554be9a3 100644 --- a/src/input_common/sdl/sdl.h +++ b/src/input_common/sdl/sdl.h @@ -6,6 +6,7 @@ #include <memory> #include <vector> +#include "common/param_package.h" #include "input_common/main.h" namespace InputCommon::Polling { @@ -22,14 +23,24 @@ public: /// Unregisters SDL device factories and shut them down. virtual ~State() = default; - virtual Pollers GetPollers(Polling::DeviceType type) = 0; + virtual Pollers GetPollers(Polling::DeviceType type) { + return {}; + } + + virtual std::vector<Common::ParamPackage> GetInputDevices() { + return {}; + } + + virtual ButtonMapping GetButtonMappingForDevice(const Common::ParamPackage&) { + return {}; + } + virtual AnalogMapping GetAnalogMappingForDevice(const Common::ParamPackage&) { + return {}; + } }; class NullState : public State { public: - Pollers GetPollers(Polling::DeviceType type) override { - return {}; - } }; std::unique_ptr<State> Init(); diff --git a/src/input_common/sdl/sdl_impl.cpp b/src/input_common/sdl/sdl_impl.cpp index d76c279d32..35a9d45ec7 100644 --- a/src/input_common/sdl/sdl_impl.cpp +++ b/src/input_common/sdl/sdl_impl.cpp @@ -7,6 +7,8 @@ #include <cmath> #include <functional> #include <mutex> +#include <optional> +#include <sstream> #include <string> #include <thread> #include <tuple> @@ -23,7 +25,8 @@ namespace InputCommon::SDL { -static std::string GetGUID(SDL_Joystick* joystick) { +namespace { +std::string GetGUID(SDL_Joystick* joystick) { const SDL_JoystickGUID guid = SDL_JoystickGetGUID(joystick); char guid_str[33]; SDL_JoystickGetGUIDString(guid, guid_str, sizeof(guid_str)); @@ -31,7 +34,8 @@ static std::string GetGUID(SDL_Joystick* joystick) { } /// Creates a ParamPackage from an SDL_Event that can directly be used to create a ButtonDevice -static Common::ParamPackage SDLEventToButtonParamPackage(SDLState& state, const SDL_Event& event); +Common::ParamPackage SDLEventToButtonParamPackage(SDLState& state, const SDL_Event& event); +} // Anonymous namespace static int SDLEventWatcher(void* user_data, SDL_Event* event) { auto* const sdl_state = static_cast<SDLState*>(user_data); @@ -48,8 +52,10 @@ static int SDLEventWatcher(void* user_data, SDL_Event* event) { class SDLJoystick { public: - SDLJoystick(std::string guid_, int port_, SDL_Joystick* joystick) - : guid{std::move(guid_)}, port{port_}, sdl_joystick{joystick, &SDL_JoystickClose} {} + SDLJoystick(std::string guid_, int port_, SDL_Joystick* joystick, + SDL_GameController* gamecontroller) + : guid{std::move(guid_)}, port{port_}, sdl_joystick{joystick, &SDL_JoystickClose}, + sdl_controller{gamecontroller, &SDL_GameControllerClose} {} void SetButton(int button, bool value) { std::lock_guard lock{mutex}; @@ -115,10 +121,15 @@ public: return sdl_joystick.get(); } - void SetSDLJoystick(SDL_Joystick* joystick) { + void SetSDLJoystick(SDL_Joystick* joystick, SDL_GameController* controller) { + sdl_controller.reset(controller); sdl_joystick.reset(joystick); } + SDL_GameController* GetSDLGameController() const { + return sdl_controller.get(); + } + private: struct State { std::unordered_map<int, bool> buttons; @@ -128,6 +139,7 @@ private: std::string guid; int port; std::unique_ptr<SDL_Joystick, decltype(&SDL_JoystickClose)> sdl_joystick; + std::unique_ptr<SDL_GameController, decltype(&SDL_GameControllerClose)> sdl_controller; mutable std::mutex mutex; }; @@ -136,18 +148,19 @@ std::shared_ptr<SDLJoystick> SDLState::GetSDLJoystickByGUID(const std::string& g const auto it = joystick_map.find(guid); if (it != joystick_map.end()) { while (it->second.size() <= static_cast<std::size_t>(port)) { - auto joystick = - std::make_shared<SDLJoystick>(guid, static_cast<int>(it->second.size()), nullptr); + auto joystick = std::make_shared<SDLJoystick>(guid, static_cast<int>(it->second.size()), + nullptr, nullptr); it->second.emplace_back(std::move(joystick)); } return it->second[port]; } - auto joystick = std::make_shared<SDLJoystick>(guid, 0, nullptr); + auto joystick = std::make_shared<SDLJoystick>(guid, 0, nullptr, nullptr); return joystick_map[guid].emplace_back(std::move(joystick)); } std::shared_ptr<SDLJoystick> SDLState::GetSDLJoystickBySDLID(SDL_JoystickID sdl_id) { auto sdl_joystick = SDL_JoystickFromInstanceID(sdl_id); + auto sdl_controller = SDL_GameControllerFromInstanceID(sdl_id); const std::string guid = GetGUID(sdl_joystick); std::lock_guard lock{joystick_map_mutex}; @@ -171,23 +184,27 @@ std::shared_ptr<SDLJoystick> SDLState::GetSDLJoystickBySDLID(SDL_JoystickID sdl_ }); if (nullptr_it != map_it->second.end()) { // ... and map it - (*nullptr_it)->SetSDLJoystick(sdl_joystick); + (*nullptr_it)->SetSDLJoystick(sdl_joystick, sdl_controller); return *nullptr_it; } // There is no SDLJoystick without a mapped SDL_Joystick // Create a new SDLJoystick const int port = static_cast<int>(map_it->second.size()); - auto joystick = std::make_shared<SDLJoystick>(guid, port, sdl_joystick); + auto joystick = std::make_shared<SDLJoystick>(guid, port, sdl_joystick, sdl_controller); return map_it->second.emplace_back(std::move(joystick)); } - auto joystick = std::make_shared<SDLJoystick>(guid, 0, sdl_joystick); + auto joystick = std::make_shared<SDLJoystick>(guid, 0, sdl_joystick, sdl_controller); return joystick_map[guid].emplace_back(std::move(joystick)); } void SDLState::InitJoystick(int joystick_index) { SDL_Joystick* sdl_joystick = SDL_JoystickOpen(joystick_index); + SDL_GameController* sdl_gamecontroller = nullptr; + if (SDL_IsGameController(joystick_index)) { + sdl_gamecontroller = SDL_GameControllerOpen(joystick_index); + } if (!sdl_joystick) { LOG_ERROR(Input, "failed to open joystick {}", joystick_index); return; @@ -196,7 +213,7 @@ void SDLState::InitJoystick(int joystick_index) { std::lock_guard lock{joystick_map_mutex}; if (joystick_map.find(guid) == joystick_map.end()) { - auto joystick = std::make_shared<SDLJoystick>(guid, 0, sdl_joystick); + auto joystick = std::make_shared<SDLJoystick>(guid, 0, sdl_joystick, sdl_gamecontroller); joystick_map[guid].emplace_back(std::move(joystick)); return; } @@ -205,11 +222,11 @@ void SDLState::InitJoystick(int joystick_index) { joystick_guid_list.begin(), joystick_guid_list.end(), [](const std::shared_ptr<SDLJoystick>& joystick) { return !joystick->GetSDLJoystick(); }); if (it != joystick_guid_list.end()) { - (*it)->SetSDLJoystick(sdl_joystick); + (*it)->SetSDLJoystick(sdl_joystick, sdl_gamecontroller); return; } const int port = static_cast<int>(joystick_guid_list.size()); - auto joystick = std::make_shared<SDLJoystick>(guid, port, sdl_joystick); + auto joystick = std::make_shared<SDLJoystick>(guid, port, sdl_joystick, sdl_gamecontroller); joystick_guid_list.emplace_back(std::move(joystick)); } @@ -231,7 +248,7 @@ void SDLState::CloseJoystick(SDL_Joystick* sdl_joystick) { // Destruct SDL_Joystick outside the lock guard because SDL can internally call the // event callback which locks the mutex again. - joystick->SetSDLJoystick(nullptr); + joystick->SetSDLJoystick(nullptr, nullptr); } void SDLState::HandleGameControllerEvent(const SDL_Event& event) { @@ -460,7 +477,7 @@ public: const int port = params.Get("port", 0); const int axis_x = params.Get("axis_x", 0); const int axis_y = params.Get("axis_y", 1); - const float deadzone = std::clamp(params.Get("deadzone", 0.0f), 0.0f, .99f); + const float deadzone = std::clamp(params.Get("deadzone", 0.0f), 0.0f, 1.0f); const float range = std::clamp(params.Get("range", 1.0f), 0.50f, 1.50f); auto joystick = state.GetSDLJoystickByGUID(guid, port); @@ -476,8 +493,10 @@ private: SDLState::SDLState() { using namespace Input; - RegisterFactory<ButtonDevice>("sdl", std::make_shared<SDLButtonFactory>(*this)); - RegisterFactory<AnalogDevice>("sdl", std::make_shared<SDLAnalogFactory>(*this)); + analog_factory = std::make_shared<SDLAnalogFactory>(*this); + button_factory = std::make_shared<SDLButtonFactory>(*this); + RegisterFactory<AnalogDevice>("sdl", analog_factory); + RegisterFactory<ButtonDevice>("sdl", button_factory); // If the frontend is going to manage the event loop, then we dont start one here start_thread = !SDL_WasInit(SDL_INIT_JOYSTICK); @@ -485,6 +504,7 @@ SDLState::SDLState() { LOG_CRITICAL(Input, "SDL_Init(SDL_INIT_JOYSTICK) failed with: {}", SDL_GetError()); return; } + has_gamecontroller = SDL_InitSubSystem(SDL_INIT_GAMECONTROLLER); if (SDL_SetHint(SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS, "1") == SDL_FALSE) { LOG_ERROR(Input, "Failed to set hint for background events with: {}", SDL_GetError()); } @@ -497,7 +517,7 @@ SDLState::SDLState() { using namespace std::chrono_literals; while (initialized) { SDL_PumpEvents(); - std::this_thread::sleep_for(10ms); + std::this_thread::sleep_for(5ms); } }); } @@ -523,65 +543,233 @@ SDLState::~SDLState() { } } -static Common::ParamPackage SDLEventToButtonParamPackage(SDLState& state, const SDL_Event& event) { +std::vector<Common::ParamPackage> SDLState::GetInputDevices() { + std::scoped_lock lock(joystick_map_mutex); + std::vector<Common::ParamPackage> devices = {}; + for (const auto& [key, value] : joystick_map) { + for (const auto& joystick : value) { + auto controller = joystick->GetSDLGameController(); + auto joy = joystick->GetSDLJoystick(); + if (controller) { + std::string name = + fmt::format("{} {}", SDL_GameControllerName(controller), joystick->GetPort()); + devices.emplace_back(Common::ParamPackage{ + {"class", "sdl"}, + {"display", name}, + {"guid", joystick->GetGUID()}, + {"port", std::to_string(joystick->GetPort())}, + }); + } else if (joy) { + std::string name = fmt::format("{} {}", SDL_JoystickName(joy), joystick->GetPort()); + devices.emplace_back(Common::ParamPackage{ + {"class", "sdl"}, + {"display", name}, + {"guid", joystick->GetGUID()}, + {"port", std::to_string(joystick->GetPort())}, + }); + } + } + } + return devices; +} + +namespace { +Common::ParamPackage BuildAnalogParamPackageForButton(int port, std::string guid, u8 axis, + float value = 0.1) { + Common::ParamPackage params({{"engine", "sdl"}}); + params.Set("port", port); + params.Set("guid", guid); + params.Set("axis", axis); + if (value > 0) { + params.Set("direction", "+"); + params.Set("threshold", "0.5"); + } else { + params.Set("direction", "-"); + params.Set("threshold", "-0.5"); + } + return params; +} + +Common::ParamPackage BuildButtonParamPackageForButton(int port, std::string guid, u8 button) { + Common::ParamPackage params({{"engine", "sdl"}}); + params.Set("port", port); + params.Set("guid", guid); + params.Set("button", button); + return params; +} + +Common::ParamPackage BuildHatParamPackageForButton(int port, std::string guid, u8 hat, u8 value) { Common::ParamPackage params({{"engine", "sdl"}}); + params.Set("port", port); + params.Set("guid", guid); + params.Set("hat", hat); + switch (value) { + case SDL_HAT_UP: + params.Set("direction", "up"); + break; + case SDL_HAT_DOWN: + params.Set("direction", "down"); + break; + case SDL_HAT_LEFT: + params.Set("direction", "left"); + break; + case SDL_HAT_RIGHT: + params.Set("direction", "right"); + break; + default: + return {}; + } + return params; +} + +Common::ParamPackage SDLEventToButtonParamPackage(SDLState& state, const SDL_Event& event) { + Common::ParamPackage params{}; + switch (event.type) { case SDL_JOYAXISMOTION: { const auto joystick = state.GetSDLJoystickBySDLID(event.jaxis.which); - params.Set("port", joystick->GetPort()); - params.Set("guid", joystick->GetGUID()); - params.Set("axis", event.jaxis.axis); - if (event.jaxis.value > 0) { - params.Set("direction", "+"); - params.Set("threshold", "0.5"); - } else { - params.Set("direction", "-"); - params.Set("threshold", "-0.5"); - } + params = BuildAnalogParamPackageForButton(joystick->GetPort(), joystick->GetGUID(), + event.jaxis.axis, event.jaxis.value); break; } case SDL_JOYBUTTONUP: { const auto joystick = state.GetSDLJoystickBySDLID(event.jbutton.which); - params.Set("port", joystick->GetPort()); - params.Set("guid", joystick->GetGUID()); - params.Set("button", event.jbutton.button); + params = BuildButtonParamPackageForButton(joystick->GetPort(), joystick->GetGUID(), + event.jbutton.button); break; } case SDL_JOYHATMOTION: { const auto joystick = state.GetSDLJoystickBySDLID(event.jhat.which); - params.Set("port", joystick->GetPort()); - params.Set("guid", joystick->GetGUID()); - params.Set("hat", event.jhat.hat); - switch (event.jhat.value) { - case SDL_HAT_UP: - params.Set("direction", "up"); - break; - case SDL_HAT_DOWN: - params.Set("direction", "down"); - break; - case SDL_HAT_LEFT: - params.Set("direction", "left"); - break; - case SDL_HAT_RIGHT: - params.Set("direction", "right"); - break; - default: - return {}; - } + params = BuildHatParamPackageForButton(joystick->GetPort(), joystick->GetGUID(), + event.jhat.hat, event.jhat.value); break; } } return params; } -namespace Polling { +Common::ParamPackage BuildParamPackageForBinding(int port, const std::string& guid, + const SDL_GameControllerButtonBind& binding) { + Common::ParamPackage out{}; + switch (binding.bindType) { + case SDL_CONTROLLER_BINDTYPE_AXIS: + out = BuildAnalogParamPackageForButton(port, guid, binding.value.axis); + break; + case SDL_CONTROLLER_BINDTYPE_BUTTON: + out = BuildButtonParamPackageForButton(port, guid, binding.value.button); + break; + case SDL_CONTROLLER_BINDTYPE_HAT: + out = BuildHatParamPackageForButton(port, guid, binding.value.hat.hat, + binding.value.hat.hat_mask); + break; + default: + break; + } + return out; +}; + +Common::ParamPackage BuildParamPackageForAnalog(int port, const std::string& guid, int axis_x, + int axis_y) { + Common::ParamPackage params{}; + params.Set("engine", "sdl"); + params.Set("port", port); + params.Set("guid", guid); + params.Set("axis_x", axis_x); + params.Set("axis_y", axis_y); + return params; +} +} // Anonymous namespace + +ButtonMapping SDLState::GetButtonMappingForDevice(const Common::ParamPackage& params) { + // This list is missing ZL/ZR since those are not considered buttons in SDL GameController. + // We will add those afterwards + // This list also excludes Screenshot since theres not really a mapping for that + std::unordered_map<Settings::NativeButton::Values, SDL_GameControllerButton> + switch_to_sdl_button = { + {Settings::NativeButton::A, SDL_CONTROLLER_BUTTON_B}, + {Settings::NativeButton::B, SDL_CONTROLLER_BUTTON_A}, + {Settings::NativeButton::X, SDL_CONTROLLER_BUTTON_Y}, + {Settings::NativeButton::Y, SDL_CONTROLLER_BUTTON_X}, + {Settings::NativeButton::LStick, SDL_CONTROLLER_BUTTON_LEFTSTICK}, + {Settings::NativeButton::RStick, SDL_CONTROLLER_BUTTON_RIGHTSTICK}, + {Settings::NativeButton::L, SDL_CONTROLLER_BUTTON_LEFTSHOULDER}, + {Settings::NativeButton::R, SDL_CONTROLLER_BUTTON_RIGHTSHOULDER}, + {Settings::NativeButton::Plus, SDL_CONTROLLER_BUTTON_START}, + {Settings::NativeButton::Minus, SDL_CONTROLLER_BUTTON_BACK}, + {Settings::NativeButton::DLeft, SDL_CONTROLLER_BUTTON_DPAD_LEFT}, + {Settings::NativeButton::DUp, SDL_CONTROLLER_BUTTON_DPAD_UP}, + {Settings::NativeButton::DRight, SDL_CONTROLLER_BUTTON_DPAD_RIGHT}, + {Settings::NativeButton::DDown, SDL_CONTROLLER_BUTTON_DPAD_DOWN}, + {Settings::NativeButton::SL, SDL_CONTROLLER_BUTTON_LEFTSHOULDER}, + {Settings::NativeButton::SR, SDL_CONTROLLER_BUTTON_RIGHTSHOULDER}, + {Settings::NativeButton::Home, SDL_CONTROLLER_BUTTON_GUIDE}, + }; + if (!params.Has("guid") || !params.Has("port")) { + return {}; + } + const auto joystick = GetSDLJoystickByGUID(params.Get("guid", ""), params.Get("port", 0)); + auto controller = joystick->GetSDLGameController(); + if (!controller) { + return {}; + } + + ButtonMapping mapping{}; + for (const auto& [switch_button, sdl_button] : switch_to_sdl_button) { + const auto& binding = SDL_GameControllerGetBindForButton(controller, sdl_button); + mapping[switch_button] = + BuildParamPackageForBinding(joystick->GetPort(), joystick->GetGUID(), binding); + } + + // Add the missing bindings for ZL/ZR + std::unordered_map<Settings::NativeButton::Values, SDL_GameControllerAxis> switch_to_sdl_axis = + { + {Settings::NativeButton::ZL, SDL_CONTROLLER_AXIS_TRIGGERLEFT}, + {Settings::NativeButton::ZR, SDL_CONTROLLER_AXIS_TRIGGERRIGHT}, + }; + for (const auto& [switch_button, sdl_axis] : switch_to_sdl_axis) { + const auto& binding = SDL_GameControllerGetBindForAxis(controller, sdl_axis); + mapping[switch_button] = + BuildParamPackageForBinding(joystick->GetPort(), joystick->GetGUID(), binding); + } + + return mapping; +} + +AnalogMapping SDLState::GetAnalogMappingForDevice(const Common::ParamPackage& params) { + if (!params.Has("guid") || !params.Has("port")) { + return {}; + } + const auto joystick = GetSDLJoystickByGUID(params.Get("guid", ""), params.Get("port", 0)); + auto controller = joystick->GetSDLGameController(); + if (!controller) { + return {}; + } + + AnalogMapping mapping = {}; + const auto& binding_left_x = + SDL_GameControllerGetBindForAxis(controller, SDL_CONTROLLER_AXIS_LEFTX); + const auto& binding_left_y = + SDL_GameControllerGetBindForAxis(controller, SDL_CONTROLLER_AXIS_LEFTY); + mapping[Settings::NativeAnalog::LStick] = + BuildParamPackageForAnalog(joystick->GetPort(), joystick->GetGUID(), + binding_left_x.value.axis, binding_left_y.value.axis); + const auto& binding_right_x = + SDL_GameControllerGetBindForAxis(controller, SDL_CONTROLLER_AXIS_RIGHTX); + const auto& binding_right_y = + SDL_GameControllerGetBindForAxis(controller, SDL_CONTROLLER_AXIS_RIGHTY); + mapping[Settings::NativeAnalog::RStick] = + BuildParamPackageForAnalog(joystick->GetPort(), joystick->GetGUID(), + binding_right_x.value.axis, binding_right_y.value.axis); + return mapping; +} +namespace Polling { class SDLPoller : public InputCommon::Polling::DevicePoller { public: explicit SDLPoller(SDLState& state_) : state(state_) {} - void Start() override { + void Start(std::string device_id) override { state.event_queue.Clear(); state.polling = true; } @@ -601,71 +789,106 @@ public: Common::ParamPackage GetNextInput() override { SDL_Event event; while (state.event_queue.Pop(event)) { - switch (event.type) { - case SDL_JOYAXISMOTION: - if (std::abs(event.jaxis.value / 32767.0) < 0.5) { - break; - } - [[fallthrough]]; - case SDL_JOYBUTTONUP: - case SDL_JOYHATMOTION: - return SDLEventToButtonParamPackage(state, event); + const auto package = FromEvent(event); + if (package) { + return *package; } } return {}; } + std::optional<Common::ParamPackage> FromEvent(const SDL_Event& event) { + switch (event.type) { + case SDL_JOYAXISMOTION: + if (std::abs(event.jaxis.value / 32767.0) < 0.5) { + break; + } + [[fallthrough]]; + case SDL_JOYBUTTONUP: + case SDL_JOYHATMOTION: + return {SDLEventToButtonParamPackage(state, event)}; + } + return {}; + } }; -class SDLAnalogPoller final : public SDLPoller { +/** + * Attempts to match the press to a controller joy axis (left/right stick) and if a match + * isn't found, checks if the event matches anything from SDLButtonPoller and uses that + * instead + */ +class SDLAnalogPreferredPoller final : public SDLPoller { public: - explicit SDLAnalogPoller(SDLState& state_) : SDLPoller(state_) {} - - void Start() override { - SDLPoller::Start(); + explicit SDLAnalogPreferredPoller(SDLState& state_) + : SDLPoller(state_), button_poller(state_) {} + void Start(std::string device_id) override { + SDLPoller::Start(device_id); + // Load the game controller // Reset stored axes analog_x_axis = -1; analog_y_axis = -1; - analog_axes_joystick = -1; } Common::ParamPackage GetNextInput() override { SDL_Event event; while (state.event_queue.Pop(event)) { - if (event.type != SDL_JOYAXISMOTION || std::abs(event.jaxis.value / 32767.0) < 0.5) { + // Filter out axis events that are below a threshold + if (event.type == SDL_JOYAXISMOTION && std::abs(event.jaxis.value / 32767.0) < 0.5) { continue; } - // An analog device needs two axes, so we need to store the axis for later and wait for - // a second SDL event. The axes also must be from the same joystick. - const int axis = event.jaxis.axis; - if (analog_x_axis == -1) { - analog_x_axis = axis; - analog_axes_joystick = event.jaxis.which; - } else if (analog_y_axis == -1 && analog_x_axis != axis && - analog_axes_joystick == event.jaxis.which) { - analog_y_axis = axis; + // Simplify controller config by testing if game controller support is enabled. + if (event.type == SDL_JOYAXISMOTION) { + const auto axis = event.jaxis.axis; + const auto joystick = state.GetSDLJoystickBySDLID(event.jaxis.which); + const auto controller = joystick->GetSDLGameController(); + if (controller) { + const auto axis_left_x = + SDL_GameControllerGetBindForAxis(controller, SDL_CONTROLLER_AXIS_LEFTX) + .value.axis; + const auto axis_left_y = + SDL_GameControllerGetBindForAxis(controller, SDL_CONTROLLER_AXIS_LEFTY) + .value.axis; + const auto axis_right_x = + SDL_GameControllerGetBindForAxis(controller, SDL_CONTROLLER_AXIS_RIGHTX) + .value.axis; + const auto axis_right_y = + SDL_GameControllerGetBindForAxis(controller, SDL_CONTROLLER_AXIS_RIGHTY) + .value.axis; + + if (axis == axis_left_x || axis == axis_left_y) { + analog_x_axis = axis_left_x; + analog_y_axis = axis_left_y; + break; + } else if (axis == axis_right_x || axis == axis_right_y) { + analog_x_axis = axis_right_x; + analog_y_axis = axis_right_y; + break; + } + } + } + + // If the press wasn't accepted as a joy axis, check for a button press + auto button_press = button_poller.FromEvent(event); + if (button_press) { + return *button_press; } } - Common::ParamPackage params; + if (analog_x_axis != -1 && analog_y_axis != -1) { const auto joystick = state.GetSDLJoystickBySDLID(event.jaxis.which); - params.Set("engine", "sdl"); - params.Set("port", joystick->GetPort()); - params.Set("guid", joystick->GetGUID()); - params.Set("axis_x", analog_x_axis); - params.Set("axis_y", analog_y_axis); + auto params = BuildParamPackageForAnalog(joystick->GetPort(), joystick->GetGUID(), + analog_x_axis, analog_y_axis); analog_x_axis = -1; analog_y_axis = -1; - analog_axes_joystick = -1; return params; } - return params; + return {}; } private: int analog_x_axis = -1; int analog_y_axis = -1; - SDL_JoystickID analog_axes_joystick = -1; + SDLButtonPoller button_poller; }; } // namespace Polling @@ -673,8 +896,8 @@ SDLState::Pollers SDLState::GetPollers(InputCommon::Polling::DeviceType type) { Pollers pollers; switch (type) { - case InputCommon::Polling::DeviceType::Analog: - pollers.emplace_back(std::make_unique<Polling::SDLAnalogPoller>(*this)); + case InputCommon::Polling::DeviceType::AnalogPreferred: + pollers.emplace_back(std::make_unique<Polling::SDLAnalogPreferredPoller>(*this)); break; case InputCommon::Polling::DeviceType::Button: pollers.emplace_back(std::make_unique<Polling::SDLButtonPoller>(*this)); diff --git a/src/input_common/sdl/sdl_impl.h b/src/input_common/sdl/sdl_impl.h index 606a32c5b4..bd19ba61de 100644 --- a/src/input_common/sdl/sdl_impl.h +++ b/src/input_common/sdl/sdl_impl.h @@ -50,6 +50,11 @@ public: std::atomic<bool> polling = false; Common::SPSCQueue<SDL_Event> event_queue; + std::vector<Common::ParamPackage> GetInputDevices() override; + + ButtonMapping GetButtonMappingForDevice(const Common::ParamPackage& params) override; + AnalogMapping GetAnalogMappingForDevice(const Common::ParamPackage& params) override; + private: void InitJoystick(int joystick_index); void CloseJoystick(SDL_Joystick* sdl_joystick); @@ -57,6 +62,9 @@ private: /// Needs to be called before SDL_QuitSubSystem. void CloseJoysticks(); + // Set to true if SDL supports game controller subsystem + bool has_gamecontroller = false; + /// Map of GUID of a list of corresponding virtual Joysticks std::unordered_map<std::string, std::vector<std::shared_ptr<SDLJoystick>>> joystick_map; std::mutex joystick_map_mutex; diff --git a/src/input_common/settings.cpp b/src/input_common/settings.cpp new file mode 100644 index 0000000000..80c719cf45 --- /dev/null +++ b/src/input_common/settings.cpp @@ -0,0 +1,33 @@ +// Copyright 2020 yuzu Emulator Project +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#include "input_common/settings.h" + +namespace Settings { +namespace NativeButton { +const std::array<const char*, NumButtons> mapping = {{ + "button_a", "button_b", "button_x", "button_y", "button_lstick", + "button_rstick", "button_l", "button_r", "button_zl", "button_zr", + "button_plus", "button_minus", "button_dleft", "button_dup", "button_dright", + "button_ddown", "button_sl", "button_sr", "button_home", "button_screenshot", +}}; +} + +namespace NativeAnalog { +const std::array<const char*, NumAnalogs> mapping = {{ + "lstick", + "rstick", +}}; +} + +namespace NativeMouseButton { +const std::array<const char*, NumMouseButtons> mapping = {{ + "left", + "right", + "middle", + "forward", + "back", +}}; +} +} // namespace Settings diff --git a/src/input_common/settings.h b/src/input_common/settings.h new file mode 100644 index 0000000000..8e481a7fe5 --- /dev/null +++ b/src/input_common/settings.h @@ -0,0 +1,335 @@ +// Copyright 2020 yuzu Emulator Project +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#pragma once + +#include <array> +#include <string> +#include "common/common_types.h" + +namespace Settings { +namespace NativeButton { +enum Values { + A, + B, + X, + Y, + LStick, + RStick, + L, + R, + ZL, + ZR, + Plus, + Minus, + + DLeft, + DUp, + DRight, + DDown, + + SL, + SR, + + Home, + Screenshot, + + NumButtons, +}; + +constexpr int BUTTON_HID_BEGIN = A; +constexpr int BUTTON_NS_BEGIN = Home; + +constexpr int BUTTON_HID_END = BUTTON_NS_BEGIN; +constexpr int BUTTON_NS_END = NumButtons; + +constexpr int NUM_BUTTONS_HID = BUTTON_HID_END - BUTTON_HID_BEGIN; +constexpr int NUM_BUTTONS_NS = BUTTON_NS_END - BUTTON_NS_BEGIN; + +extern const std::array<const char*, NumButtons> mapping; + +} // namespace NativeButton + +namespace NativeAnalog { +enum Values { + LStick, + RStick, + + NumAnalogs, +}; + +constexpr int STICK_HID_BEGIN = LStick; +constexpr int STICK_HID_END = NumAnalogs; +constexpr int NUM_STICKS_HID = NumAnalogs; + +extern const std::array<const char*, NumAnalogs> mapping; +} // namespace NativeAnalog + +namespace NativeMouseButton { +enum Values { + Left, + Right, + Middle, + Forward, + Back, + + NumMouseButtons, +}; + +constexpr int MOUSE_HID_BEGIN = Left; +constexpr int MOUSE_HID_END = NumMouseButtons; +constexpr int NUM_MOUSE_HID = NumMouseButtons; + +extern const std::array<const char*, NumMouseButtons> mapping; +} // namespace NativeMouseButton + +namespace NativeKeyboard { +enum Keys { + None, + Error, + + A = 4, + B, + C, + D, + E, + F, + G, + H, + I, + J, + K, + L, + M, + N, + O, + P, + Q, + R, + S, + T, + U, + V, + W, + X, + Y, + Z, + N1, + N2, + N3, + N4, + N5, + N6, + N7, + N8, + N9, + N0, + Enter, + Escape, + Backspace, + Tab, + Space, + Minus, + Equal, + LeftBrace, + RightBrace, + Backslash, + Tilde, + Semicolon, + Apostrophe, + Grave, + Comma, + Dot, + Slash, + CapsLockKey, + + F1, + F2, + F3, + F4, + F5, + F6, + F7, + F8, + F9, + F10, + F11, + F12, + + SystemRequest, + ScrollLockKey, + Pause, + Insert, + Home, + PageUp, + Delete, + End, + PageDown, + Right, + Left, + Down, + Up, + + NumLockKey, + KPSlash, + KPAsterisk, + KPMinus, + KPPlus, + KPEnter, + KP1, + KP2, + KP3, + KP4, + KP5, + KP6, + KP7, + KP8, + KP9, + KP0, + KPDot, + + Key102, + Compose, + Power, + KPEqual, + + F13, + F14, + F15, + F16, + F17, + F18, + F19, + F20, + F21, + F22, + F23, + F24, + + Open, + Help, + Properties, + Front, + Stop, + Repeat, + Undo, + Cut, + Copy, + Paste, + Find, + Mute, + VolumeUp, + VolumeDown, + CapsLockActive, + NumLockActive, + ScrollLockActive, + KPComma, + + KPLeftParenthesis, + KPRightParenthesis, + + LeftControlKey = 0xE0, + LeftShiftKey, + LeftAltKey, + LeftMetaKey, + RightControlKey, + RightShiftKey, + RightAltKey, + RightMetaKey, + + MediaPlayPause, + MediaStopCD, + MediaPrevious, + MediaNext, + MediaEject, + MediaVolumeUp, + MediaVolumeDown, + MediaMute, + MediaWebsite, + MediaBack, + MediaForward, + MediaStop, + MediaFind, + MediaScrollUp, + MediaScrollDown, + MediaEdit, + MediaSleep, + MediaCoffee, + MediaRefresh, + MediaCalculator, + + NumKeyboardKeys, +}; + +static_assert(NumKeyboardKeys == 0xFC, "Incorrect number of keyboard keys."); + +enum Modifiers { + LeftControl, + LeftShift, + LeftAlt, + LeftMeta, + RightControl, + RightShift, + RightAlt, + RightMeta, + CapsLock, + ScrollLock, + NumLock, + + NumKeyboardMods, +}; + +constexpr int KEYBOARD_KEYS_HID_BEGIN = None; +constexpr int KEYBOARD_KEYS_HID_END = NumKeyboardKeys; +constexpr int NUM_KEYBOARD_KEYS_HID = NumKeyboardKeys; + +constexpr int KEYBOARD_MODS_HID_BEGIN = LeftControl; +constexpr int KEYBOARD_MODS_HID_END = NumKeyboardMods; +constexpr int NUM_KEYBOARD_MODS_HID = NumKeyboardMods; + +} // namespace NativeKeyboard + +using ButtonsRaw = std::array<std::string, NativeButton::NumButtons>; +using AnalogsRaw = std::array<std::string, NativeAnalog::NumAnalogs>; +using MouseButtonsRaw = std::array<std::string, NativeMouseButton::NumMouseButtons>; +using KeyboardKeysRaw = std::array<std::string, NativeKeyboard::NumKeyboardKeys>; +using KeyboardModsRaw = std::array<std::string, NativeKeyboard::NumKeyboardMods>; + +constexpr u32 JOYCON_BODY_NEON_RED = 0xFF3C28; +constexpr u32 JOYCON_BUTTONS_NEON_RED = 0x1E0A0A; +constexpr u32 JOYCON_BODY_NEON_BLUE = 0x0AB9E6; +constexpr u32 JOYCON_BUTTONS_NEON_BLUE = 0x001E1E; + +enum class ControllerType { + ProController, + DualJoyconDetached, + LeftJoycon, + RightJoycon, + Handheld, +}; + +struct PlayerInput { + bool connected; + ControllerType controller_type; + ButtonsRaw buttons; + AnalogsRaw analogs; + std::string lstick_mod; + std::string rstick_mod; + + u32 body_color_left; + u32 body_color_right; + u32 button_color_left; + u32 button_color_right; +}; + +struct TouchscreenInput { + bool enabled; + std::string device; + + u32 finger; + u32 diameter_x; + u32 diameter_y; + u32 rotation_angle; +}; +} // namespace Settings diff --git a/src/input_common/udp/udp.cpp b/src/input_common/udp/udp.cpp index 8c6ef13949..60cf471236 100644 --- a/src/input_common/udp/udp.cpp +++ b/src/input_common/udp/udp.cpp @@ -77,10 +77,11 @@ State::State() { std::make_unique<Client>(status, Settings::values.udp_input_address, Settings::values.udp_input_port, Settings::values.udp_pad_index); - Input::RegisterFactory<Input::TouchDevice>("cemuhookudp", - std::make_shared<UDPTouchFactory>(status)); - Input::RegisterFactory<Input::MotionDevice>("cemuhookudp", - std::make_shared<UDPMotionFactory>(status)); + motion_factory = std::make_shared<UDPMotionFactory>(status); + touch_factory = std::make_shared<UDPTouchFactory>(status); + + Input::RegisterFactory<Input::MotionDevice>("cemuhookudp", motion_factory); + Input::RegisterFactory<Input::TouchDevice>("cemuhookudp", touch_factory); } State::~State() { @@ -88,6 +89,12 @@ State::~State() { Input::UnregisterFactory<Input::MotionDevice>("cemuhookudp"); } +std::vector<Common::ParamPackage> State::GetInputDevices() { + std::vector<Common::ParamPackage> devices = {}; + // TODO support binding udp devices + return devices; +} + void State::ReloadUDPClient() { client->ReloadSocket(Settings::values.udp_input_address, Settings::values.udp_input_port, Settings::values.udp_pad_index); diff --git a/src/input_common/udp/udp.h b/src/input_common/udp/udp.h index 4f83f0441f..24f6e0857a 100644 --- a/src/input_common/udp/udp.h +++ b/src/input_common/udp/udp.h @@ -5,19 +5,26 @@ #pragma once #include <memory> +#include <vector> +#include "common/param_package.h" namespace InputCommon::CemuhookUDP { class Client; +class UDPMotionFactory; +class UDPTouchFactory; class State { public: State(); ~State(); void ReloadUDPClient(); + std::vector<Common::ParamPackage> GetInputDevices(); private: std::unique_ptr<Client> client; + std::shared_ptr<UDPMotionFactory> motion_factory; + std::shared_ptr<UDPTouchFactory> touch_factory; }; std::unique_ptr<State> Init(); diff --git a/src/yuzu/CMakeLists.txt b/src/yuzu/CMakeLists.txt index 656096c9f8..6987e85e17 100644 --- a/src/yuzu/CMakeLists.txt +++ b/src/yuzu/CMakeLists.txt @@ -39,6 +39,9 @@ add_executable(yuzu configuration/configure_debug.cpp configuration/configure_debug.h configuration/configure_debug.ui + configuration/configure_debug_controller.cpp + configuration/configure_debug_controller.h + configuration/configure_debug_controller.ui configuration/configure_dialog.cpp configuration/configure_dialog.h configuration/configure_filesystem.cpp @@ -62,9 +65,9 @@ add_executable(yuzu configuration/configure_input_player.cpp configuration/configure_input_player.h configuration/configure_input_player.ui - configuration/configure_input_simple.cpp - configuration/configure_input_simple.h - configuration/configure_input_simple.ui + configuration/configure_input_advanced.cpp + configuration/configure_input_advanced.h + configuration/configure_input_advanced.ui configuration/configure_mouse_advanced.cpp configuration/configure_mouse_advanced.h configuration/configure_mouse_advanced.ui diff --git a/src/yuzu/configuration/config.cpp b/src/yuzu/configuration/config.cpp index 7af974d8d3..489877be9f 100644 --- a/src/yuzu/configuration/config.cpp +++ b/src/yuzu/configuration/config.cpp @@ -6,7 +6,6 @@ #include <QKeySequence> #include <QSettings> #include "common/file_util.h" -#include "configure_input_simple.h" #include "core/hle/service/acc/profile_manager.h" #include "core/hle/service/hid/controllers/npad.h" #include "input_common/main.h" @@ -32,29 +31,29 @@ Config::~Config() { } const std::array<int, Settings::NativeButton::NumButtons> Config::default_buttons = { - Qt::Key_A, Qt::Key_S, Qt::Key_Z, Qt::Key_X, Qt::Key_3, Qt::Key_4, Qt::Key_Q, - Qt::Key_W, Qt::Key_1, Qt::Key_2, Qt::Key_N, Qt::Key_M, Qt::Key_F, Qt::Key_T, - Qt::Key_H, Qt::Key_G, Qt::Key_Left, Qt::Key_Up, Qt::Key_Right, Qt::Key_Down, Qt::Key_J, - Qt::Key_I, Qt::Key_L, Qt::Key_K, Qt::Key_D, Qt::Key_C, Qt::Key_B, Qt::Key_V, + Qt::Key_A, Qt::Key_S, Qt::Key_Z, Qt::Key_X, Qt::Key_3, Qt::Key_4, Qt::Key_Q, + Qt::Key_W, Qt::Key_1, Qt::Key_2, Qt::Key_N, Qt::Key_M, Qt::Key_F, Qt::Key_T, + Qt::Key_H, Qt::Key_G, Qt::Key_D, Qt::Key_C, Qt::Key_B, Qt::Key_V, }; -const std::array<std::array<int, 5>, Settings::NativeAnalog::NumAnalogs> Config::default_analogs{{ +const std::array<std::array<int, 4>, Settings::NativeAnalog::NumAnalogs> Config::default_analogs{{ { Qt::Key_Up, Qt::Key_Down, Qt::Key_Left, Qt::Key_Right, - Qt::Key_E, }, { Qt::Key_I, Qt::Key_K, Qt::Key_J, Qt::Key_L, - Qt::Key_R, }, }}; +const int Config::default_lstick_mod = Qt::Key_E; +const int Config::default_rstick_mod = Qt::Key_R; + const std::array<int, Settings::NativeMouseButton::NumMouseButtons> Config::default_mouse_buttons = { Qt::Key_BracketLeft, Qt::Key_BracketRight, Qt::Key_Apostrophe, Qt::Key_Minus, Qt::Key_Equal, @@ -243,10 +242,10 @@ void Config::ReadPlayerValues() { player.connected = ReadSetting(QStringLiteral("player_%1_connected").arg(p), false).toBool(); - player.type = static_cast<Settings::ControllerType>( + player.controller_type = static_cast<Settings::ControllerType>( qt_config ->value(QStringLiteral("player_%1_type").arg(p), - static_cast<u8>(Settings::ControllerType::DualJoycon)) + static_cast<u8>(Settings::ControllerType::ProController)) .toUInt()); player.body_color_left = qt_config @@ -300,12 +299,6 @@ void Config::ReadPlayerValues() { } } } - - std::stable_partition( - Settings::values.players.begin(), - Settings::values.players.begin() + - Service::HID::Controller_NPad::NPadIdToIndex(Service::HID::NPAD_HANDHELD), - [](const auto& player) { return player.connected; }); } void Config::ReadDebugValues() { @@ -397,13 +390,6 @@ void Config::ReadTouchscreenValues() { ReadSetting(QStringLiteral("touchscreen_diameter_y"), 15).toUInt(); } -void Config::ApplyDefaultProfileIfInputInvalid() { - if (!std::any_of(Settings::values.players.begin(), Settings::values.players.end(), - [](const Settings::PlayerInput& in) { return in.connected; })) { - ApplyInputProfileConfiguration(UISettings::values.profile_index); - } -} - void Config::ReadAudioValues() { qt_config->beginGroup(QStringLiteral("Audio")); @@ -433,6 +419,8 @@ void Config::ReadControlValues() { ReadMouseValues(); ReadTouchscreenValues(); + Settings::values.vibration_enabled = + ReadSetting(QStringLiteral("vibration_enabled"), true).toBool(); Settings::values.motion_device = ReadSetting(QStringLiteral("motion_device"), QStringLiteral("engine:motion_emu,update_period:100,sensitivity:0.01")) @@ -501,7 +489,7 @@ void Config::ReadDataStorageValues() { Settings::values.gamecard_current_game = ReadSetting(QStringLiteral("gamecard_current_game"), false).toBool(); Settings::values.gamecard_path = - ReadSetting(QStringLiteral("gamecard_path"), QStringLiteral("")).toString().toStdString(); + ReadSetting(QStringLiteral("gamecard_path"), QString{}).toString().toStdString(); qt_config->endGroup(); } @@ -515,7 +503,7 @@ void Config::ReadDebuggingValues() { Settings::values.use_gdbstub = ReadSetting(QStringLiteral("use_gdbstub"), false).toBool(); Settings::values.gdbstub_port = ReadSetting(QStringLiteral("gdbstub_port"), 24689).toInt(); Settings::values.program_args = - ReadSetting(QStringLiteral("program_args"), QStringLiteral("")).toString().toStdString(); + ReadSetting(QStringLiteral("program_args"), QString{}).toString().toStdString(); Settings::values.dump_exefs = ReadSetting(QStringLiteral("dump_exefs"), false).toBool(); Settings::values.dump_nso = ReadSetting(QStringLiteral("dump_nso"), false).toBool(); Settings::values.reporting_services = @@ -548,8 +536,7 @@ void Config::ReadDisabledAddOnValues() { const auto d_size = qt_config->beginReadArray(QStringLiteral("disabled")); for (int j = 0; j < d_size; ++j) { qt_config->setArrayIndex(j); - out.push_back( - ReadSetting(QStringLiteral("d"), QStringLiteral("")).toString().toStdString()); + out.push_back(ReadSetting(QStringLiteral("d"), QString{}).toString().toStdString()); } qt_config->endArray(); Settings::values.disabled_addons.insert_or_assign(title_id, out); @@ -788,14 +775,11 @@ void Config::ReadUIValues() { UISettings::values.first_start = ReadSetting(QStringLiteral("firstStart"), true).toBool(); UISettings::values.callout_flags = ReadSetting(QStringLiteral("calloutFlags"), 0).toUInt(); UISettings::values.show_console = ReadSetting(QStringLiteral("showConsole"), false).toBool(); - UISettings::values.profile_index = ReadSetting(QStringLiteral("profileIndex"), 0).toUInt(); UISettings::values.pause_when_in_background = ReadSetting(QStringLiteral("pauseWhenInBackground"), false).toBool(); UISettings::values.hide_mouse = ReadSetting(QStringLiteral("hideInactiveMouse"), false).toBool(); - ApplyDefaultProfileIfInputInvalid(); - qt_config->endGroup(); } @@ -869,8 +853,9 @@ void Config::SavePlayerValues() { const auto& player = Settings::values.players[p]; WriteSetting(QStringLiteral("player_%1_connected").arg(p), player.connected, false); - WriteSetting(QStringLiteral("player_%1_type").arg(p), static_cast<u8>(player.type), - static_cast<u8>(Settings::ControllerType::DualJoycon)); + WriteSetting(QStringLiteral("player_%1_type").arg(p), + static_cast<u8>(player.controller_type), + static_cast<u8>(Settings::ControllerType::ProController)); WriteSetting(QStringLiteral("player_%1_body_color_left").arg(p), player.body_color_left, Settings::JOYCON_BODY_NEON_BLUE); @@ -990,6 +975,7 @@ void Config::SaveControlValues() { SaveMouseValues(); SaveTouchscreenValues(); + WriteSetting(QStringLiteral("vibration_enabled"), Settings::values.vibration_enabled, true); WriteSetting(QStringLiteral("motion_device"), QString::fromStdString(Settings::values.motion_device), QStringLiteral("engine:motion_emu,update_period:100,sensitivity:0.01")); @@ -1036,7 +1022,7 @@ void Config::SaveDataStorageValues() { WriteSetting(QStringLiteral("gamecard_current_game"), Settings::values.gamecard_current_game, false); WriteSetting(QStringLiteral("gamecard_path"), - QString::fromStdString(Settings::values.gamecard_path), QStringLiteral("")); + QString::fromStdString(Settings::values.gamecard_path), QString{}); qt_config->endGroup(); } @@ -1049,7 +1035,7 @@ void Config::SaveDebuggingValues() { WriteSetting(QStringLiteral("use_gdbstub"), Settings::values.use_gdbstub, false); WriteSetting(QStringLiteral("gdbstub_port"), Settings::values.gdbstub_port, 24689); WriteSetting(QStringLiteral("program_args"), - QString::fromStdString(Settings::values.program_args), QStringLiteral("")); + QString::fromStdString(Settings::values.program_args), QString{}); WriteSetting(QStringLiteral("dump_exefs"), Settings::values.dump_exefs, false); WriteSetting(QStringLiteral("dump_nso"), Settings::values.dump_nso, false); WriteSetting(QStringLiteral("quest_flag"), Settings::values.quest_flag, false); @@ -1076,8 +1062,7 @@ void Config::SaveDisabledAddOnValues() { qt_config->beginWriteArray(QStringLiteral("disabled")); for (std::size_t j = 0; j < elem.second.size(); ++j) { qt_config->setArrayIndex(static_cast<int>(j)); - WriteSetting(QStringLiteral("d"), QString::fromStdString(elem.second[j]), - QStringLiteral("")); + WriteSetting(QStringLiteral("d"), QString::fromStdString(elem.second[j]), QString{}); } qt_config->endArray(); ++i; @@ -1266,7 +1251,6 @@ void Config::SaveUIValues() { WriteSetting(QStringLiteral("firstStart"), UISettings::values.first_start, true); WriteSetting(QStringLiteral("calloutFlags"), UISettings::values.callout_flags, 0); WriteSetting(QStringLiteral("showConsole"), UISettings::values.show_console, false); - WriteSetting(QStringLiteral("profileIndex"), UISettings::values.profile_index, 0); WriteSetting(QStringLiteral("pauseWhenInBackground"), UISettings::values.pause_when_in_background, false); WriteSetting(QStringLiteral("hideInactiveMouse"), UISettings::values.hide_mouse, false); diff --git a/src/yuzu/configuration/config.h b/src/yuzu/configuration/config.h index e5f39b0406..9eeaf9d1e6 100644 --- a/src/yuzu/configuration/config.h +++ b/src/yuzu/configuration/config.h @@ -23,7 +23,9 @@ public: void Save(); static const std::array<int, Settings::NativeButton::NumButtons> default_buttons; - static const std::array<std::array<int, 5>, Settings::NativeAnalog::NumAnalogs> default_analogs; + static const std::array<std::array<int, 4>, Settings::NativeAnalog::NumAnalogs> default_analogs; + static const int default_lstick_mod; + static const int default_rstick_mod; static const std::array<int, Settings::NativeMouseButton::NumMouseButtons> default_mouse_buttons; static const std::array<int, Settings::NativeKeyboard::NumKeyboardKeys> default_keyboard_keys; @@ -37,7 +39,6 @@ private: void ReadKeyboardValues(); void ReadMouseValues(); void ReadTouchscreenValues(); - void ApplyDefaultProfileIfInputInvalid(); // Read functions bases off the respective config section names. void ReadAudioValues(); diff --git a/src/yuzu/configuration/configure.ui b/src/yuzu/configuration/configure.ui index 5f5d8e5710..fcf42cdcb3 100644 --- a/src/yuzu/configuration/configure.ui +++ b/src/yuzu/configuration/configure.ui @@ -6,7 +6,7 @@ <rect> <x>0</x> <y>0</y> - <width>382</width> + <width>650</width> <height>650</height> </rect> </property> @@ -26,13 +26,13 @@ <widget class="QListWidget" name="selectorList"> <property name="minimumSize"> <size> - <width>150</width> + <width>120</width> <height>0</height> </size> </property> <property name="maximumSize"> <size> - <width>150</width> + <width>120</width> <height>16777215</height> </size> </property> @@ -44,76 +44,121 @@ <number>0</number> </property> <widget class="ConfigureGeneral" name="generalTab"> + <property name="accessibleName"> + <string>General</string> + </property> <attribute name="title"> <string>General</string> </attribute> </widget> <widget class="ConfigureUi" name="uiTab"> + <property name="accessibleName"> + <string>UI</string> + </property> <attribute name="title"> <string>Game List</string> </attribute> </widget> <widget class="ConfigureSystem" name="systemTab"> + <property name="accessibleName"> + <string>System</string> + </property> <attribute name="title"> <string>System</string> </attribute> </widget> <widget class="ConfigureProfileManager" name="profileManagerTab"> + <property name="accessibleName"> + <string>Profiles</string> + </property> <attribute name="title"> <string>Profiles</string> </attribute> </widget> <widget class="ConfigureFilesystem" name="filesystemTab"> + <property name="accessibleName"> + <string>Filesystem</string> + </property> <attribute name="title"> <string>Filesystem</string> </attribute> </widget> - <widget class="ConfigureInputSimple" name="inputTab"> + <widget class="ConfigureInput" name="inputTab"> + <property name="accessibleName"> + <string>Controls</string> + </property> <attribute name="title"> - <string>Input</string> + <string>Controls</string> </attribute> </widget> <widget class="ConfigureHotkeys" name="hotkeysTab"> + <property name="accessibleName"> + <string>Hotkeys</string> + </property> <attribute name="title"> <string>Hotkeys</string> </attribute> </widget> <widget class="ConfigureCpu" name="cpuTab"> + <property name="accessibleName"> + <string>CPU</string> + </property> <attribute name="title"> <string>CPU</string> </attribute> </widget> <widget class="ConfigureCpuDebug" name="cpuDebugTab"> + <property name="accessibleName"> + <string>Debug</string> + </property> <attribute name="title"> <string>Debug</string> </attribute> </widget> <widget class="ConfigureGraphics" name="graphicsTab"> + <property name="accessibleName"> + <string>Graphics</string> + </property> <attribute name="title"> <string>Graphics</string> </attribute> </widget> <widget class="ConfigureGraphicsAdvanced" name="graphicsAdvancedTab"> + <property name="accessibleName"> + <string>Advanced</string> + </property> <attribute name="title"> <string>GraphicsAdvanced</string> </attribute> </widget> <widget class="ConfigureAudio" name="audioTab"> + <property name="accessibleName"> + <string>Audio</string> + </property> <attribute name="title"> <string>Audio</string> </attribute> </widget> <widget class="ConfigureDebug" name="debugTab"> + <property name="accessibleName"> + <string>Debug</string> + </property> <attribute name="title"> <string>Debug</string> </attribute> </widget> <widget class="ConfigureWeb" name="webTab"> + <property name="accessibleName"> + <string>Web</string> + </property> <attribute name="title"> <string>Web</string> </attribute> </widget> <widget class="ConfigureService" name="serviceTab"> + <property name="accessibleName"> + <string>Services</string> + </property> <attribute name="title"> <string>Services</string> </attribute> @@ -205,9 +250,9 @@ <container>1</container> </customwidget> <customwidget> - <class>ConfigureInputSimple</class> + <class>ConfigureInput</class> <extends>QWidget</extends> - <header>configuration/configure_input_simple.h</header> + <header>configuration/configure_input.h</header> <container>1</container> </customwidget> <customwidget> diff --git a/src/yuzu/configuration/configure_debug_controller.cpp b/src/yuzu/configuration/configure_debug_controller.cpp new file mode 100644 index 0000000000..45996b73f4 --- /dev/null +++ b/src/yuzu/configuration/configure_debug_controller.cpp @@ -0,0 +1,39 @@ +// Copyright 2020 yuzu Emulator Project +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#include "ui_configure_debug_controller.h" +#include "yuzu/configuration/configure_debug_controller.h" + +ConfigureDebugController::ConfigureDebugController(QWidget* parent) + : QDialog(parent), ui(std::make_unique<Ui::ConfigureDebugController>()) { + ui->setupUi(this); + + debug_controller = new ConfigureInputPlayer(this, 9, nullptr, true); + ui->controllerLayout->addWidget(debug_controller); + + connect(ui->clear_all_button, &QPushButton::clicked, this, + [this] { debug_controller->ClearAll(); }); + connect(ui->restore_defaults_button, &QPushButton::clicked, this, + [this] { debug_controller->RestoreDefaults(); }); + + RetranslateUI(); +} + +ConfigureDebugController::~ConfigureDebugController() = default; + +void ConfigureDebugController::ApplyConfiguration() { + debug_controller->ApplyConfiguration(); +} + +void ConfigureDebugController::changeEvent(QEvent* event) { + if (event->type() == QEvent::LanguageChange) { + RetranslateUI(); + } + + QDialog::changeEvent(event); +} + +void ConfigureDebugController::RetranslateUI() { + ui->retranslateUi(this); +} diff --git a/src/yuzu/configuration/configure_debug_controller.h b/src/yuzu/configuration/configure_debug_controller.h new file mode 100644 index 0000000000..df359a4f34 --- /dev/null +++ b/src/yuzu/configuration/configure_debug_controller.h @@ -0,0 +1,33 @@ +// Copyright 2020 yuzu Emulator Project +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#pragma once + +#include <memory> +#include <QDialog> +#include "yuzu/configuration/configure_input_player.h" + +class QPushButton; + +namespace Ui { +class ConfigureDebugController; +} + +class ConfigureDebugController : public QDialog { + Q_OBJECT + +public: + explicit ConfigureDebugController(QWidget* parent); + ~ConfigureDebugController() override; + + void ApplyConfiguration(); + +private: + void changeEvent(QEvent* event) override; + void RetranslateUI(); + + ConfigureInputPlayer* debug_controller; + + std::unique_ptr<Ui::ConfigureDebugController> ui; +}; diff --git a/src/yuzu/configuration/configure_debug_controller.ui b/src/yuzu/configuration/configure_debug_controller.ui new file mode 100644 index 0000000000..a95ed50ffd --- /dev/null +++ b/src/yuzu/configuration/configure_debug_controller.ui @@ -0,0 +1,97 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>ConfigureDebugController</class> + <widget class="QDialog" name="ConfigureDebugController"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>780</width> + <height>500</height> + </rect> + </property> + <property name="windowTitle"> + <string>Configure Debug Controller</string> + </property> + <layout class="QVBoxLayout" name="verticalLayout"> + <property name="spacing"> + <number>2</number> + </property> + <property name="leftMargin"> + <number>9</number> + </property> + <property name="topMargin"> + <number>9</number> + </property> + <property name="rightMargin"> + <number>9</number> + </property> + <property name="bottomMargin"> + <number>9</number> + </property> + <item> + <layout class="QHBoxLayout" name="controllerLayout"/> + </item> + <item> + <layout class="QHBoxLayout" name="horizontalLayout"> + <item> + <widget class="QPushButton" name="clear_all_button"> + <property name="text"> + <string>Clear</string> + </property> + </widget> + </item> + <item> + <widget class="QPushButton" name="restore_defaults_button"> + <property name="text"> + <string>Defaults</string> + </property> + </widget> + </item> + <item> + <widget class="QDialogButtonBox" name="buttonBox"> + <property name="standardButtons"> + <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set> + </property> + </widget> + </item> + </layout> + </item> + </layout> + </widget> + <resources/> + <connections> + <connection> + <sender>buttonBox</sender> + <signal>accepted()</signal> + <receiver>ConfigureDebugController</receiver> + <slot>accept()</slot> + <hints> + <hint type="sourcelabel"> + <x>140</x> + <y>318</y> + </hint> + <hint type="destinationlabel"> + <x>140</x> + <y>169</y> + </hint> + </hints> + </connection> + <connection> + <sender>buttonBox</sender> + <signal>rejected()</signal> + <receiver>ConfigureDebugController</receiver> + <slot>reject()</slot> + <hints> + <hint type="sourcelabel"> + <x>140</x> + <y>318</y> + </hint> + <hint type="destinationlabel"> + <x>140</x> + <y>169</y> + </hint> + </hints> + </connection> + </connections> +</ui> diff --git a/src/yuzu/configuration/configure_dialog.cpp b/src/yuzu/configuration/configure_dialog.cpp index 4e30dc51eb..857577591c 100644 --- a/src/yuzu/configuration/configure_dialog.cpp +++ b/src/yuzu/configuration/configure_dialog.cpp @@ -80,12 +80,12 @@ Q_DECLARE_METATYPE(QList<QWidget*>); void ConfigureDialog::PopulateSelectionList() { const std::array<std::pair<QString, QList<QWidget*>>, 6> items{ - {{tr("General"), {ui->generalTab, ui->webTab, ui->debugTab, ui->uiTab}}, + {{tr("General"), {ui->generalTab, ui->hotkeysTab, ui->uiTab, ui->webTab, ui->debugTab}}, {tr("System"), {ui->systemTab, ui->profileManagerTab, ui->serviceTab, ui->filesystemTab}}, {tr("CPU"), {ui->cpuTab, ui->cpuDebugTab}}, {tr("Graphics"), {ui->graphicsTab, ui->graphicsAdvancedTab}}, {tr("Audio"), {ui->audioTab}}, - {tr("Controls"), {ui->inputTab, ui->hotkeysTab}}}, + {tr("Controls"), ui->inputTab->GetSubTabs()}}, }; [[maybe_unused]] const QSignalBlocker blocker(ui->selectorList); @@ -117,7 +117,7 @@ void ConfigureDialog::UpdateVisibleTabs() { {ui->generalTab, tr("General")}, {ui->systemTab, tr("System")}, {ui->profileManagerTab, tr("Profiles")}, - {ui->inputTab, tr("Input")}, + {ui->inputTab, tr("Controls")}, {ui->hotkeysTab, tr("Hotkeys")}, {ui->cpuTab, tr("CPU")}, {ui->cpuDebugTab, tr("Debug")}, @@ -138,6 +138,6 @@ void ConfigureDialog::UpdateVisibleTabs() { const QList<QWidget*> tabs = qvariant_cast<QList<QWidget*>>(items[0]->data(Qt::UserRole)); for (const auto tab : tabs) { - ui->tabWidget->addTab(tab, widgets.at(tab)); + ui->tabWidget->addTab(tab, tab->accessibleName()); } } diff --git a/src/yuzu/configuration/configure_input.cpp b/src/yuzu/configuration/configure_input.cpp index f2977719ce..5200d2d0e3 100644 --- a/src/yuzu/configuration/configure_input.cpp +++ b/src/yuzu/configuration/configure_input.cpp @@ -8,18 +8,32 @@ #include <QSignalBlocker> #include <QTimer> -#include "configuration/configure_touchscreen_advanced.h" #include "core/core.h" #include "core/hle/service/am/am.h" #include "core/hle/service/am/applet_ae.h" #include "core/hle/service/am/applet_oe.h" -#include "core/hle/service/hid/controllers/npad.h" #include "core/hle/service/sm/sm.h" #include "ui_configure_input.h" +#include "ui_configure_input_advanced.h" #include "ui_configure_input_player.h" +#include "yuzu/configuration/configure_debug_controller.h" #include "yuzu/configuration/configure_input.h" +#include "yuzu/configuration/configure_input_advanced.h" #include "yuzu/configuration/configure_input_player.h" #include "yuzu/configuration/configure_mouse_advanced.h" +#include "yuzu/configuration/configure_touchscreen_advanced.h" + +namespace { +template <typename Dialog, typename... Args> +void CallConfigureDialog(ConfigureInput& parent, Args&&... args) { + Dialog dialog(&parent, std::forward<Args>(args)...); + + const auto res = dialog.exec(); + if (res == QDialog::Accepted) { + dialog.ApplyConfiguration(); + } +} +} // Anonymous namespace void OnDockedModeChanged(bool last_state, bool new_state) { if (last_state == new_state) { @@ -48,97 +62,93 @@ void OnDockedModeChanged(bool last_state, bool new_state) { } } -namespace { -template <typename Dialog, typename... Args> -void CallConfigureDialog(ConfigureInput& parent, Args&&... args) { - parent.ApplyConfiguration(); - Dialog dialog(&parent, std::forward<Args>(args)...); - - const auto res = dialog.exec(); - if (res == QDialog::Accepted) { - dialog.ApplyConfiguration(); - } -} -} // Anonymous namespace - ConfigureInput::ConfigureInput(QWidget* parent) - : QDialog(parent), ui(std::make_unique<Ui::ConfigureInput>()) { + : QWidget(parent), ui(std::make_unique<Ui::ConfigureInput>()) { ui->setupUi(this); - players_controller = { - ui->player1_combobox, ui->player2_combobox, ui->player3_combobox, ui->player4_combobox, - ui->player5_combobox, ui->player6_combobox, ui->player7_combobox, ui->player8_combobox, + player_controllers = { + new ConfigureInputPlayer(this, 0, ui->consoleInputSettings), + new ConfigureInputPlayer(this, 1, ui->consoleInputSettings), + new ConfigureInputPlayer(this, 2, ui->consoleInputSettings), + new ConfigureInputPlayer(this, 3, ui->consoleInputSettings), + new ConfigureInputPlayer(this, 4, ui->consoleInputSettings), + new ConfigureInputPlayer(this, 5, ui->consoleInputSettings), + new ConfigureInputPlayer(this, 6, ui->consoleInputSettings), + new ConfigureInputPlayer(this, 7, ui->consoleInputSettings), }; - players_configure = { - ui->player1_configure, ui->player2_configure, ui->player3_configure, ui->player4_configure, - ui->player5_configure, ui->player6_configure, ui->player7_configure, ui->player8_configure, + player_tabs = { + ui->tabPlayer1, ui->tabPlayer2, ui->tabPlayer3, ui->tabPlayer4, + ui->tabPlayer5, ui->tabPlayer6, ui->tabPlayer7, ui->tabPlayer8, }; - RetranslateUI(); - LoadConfiguration(); - UpdateUIEnabled(); - - connect(ui->restore_defaults_button, &QPushButton::clicked, this, - &ConfigureInput::RestoreDefaults); + player_connected = { + ui->checkboxPlayer1Connected, ui->checkboxPlayer2Connected, ui->checkboxPlayer3Connected, + ui->checkboxPlayer4Connected, ui->checkboxPlayer5Connected, ui->checkboxPlayer6Connected, + ui->checkboxPlayer7Connected, ui->checkboxPlayer8Connected, + }; - for (auto* enabled : players_controller) { - connect(enabled, QOverload<int>::of(&QComboBox::currentIndexChanged), this, - &ConfigureInput::UpdateUIEnabled); + for (std::size_t i = 0; i < player_tabs.size(); ++i) { + player_tabs[i]->setLayout(new QHBoxLayout(player_tabs[i])); + player_tabs[i]->layout()->addWidget(player_controllers[i]); + connect(player_controllers[i], &ConfigureInputPlayer::Connected, [&, i](bool is_connected) { + if (is_connected) { + for (std::size_t index = 0; index <= i; ++index) { + player_connected[index]->setChecked(is_connected); + } + } else { + for (std::size_t index = i; index < player_tabs.size(); ++index) { + player_connected[index]->setChecked(is_connected); + } + } + }); + connect(player_controllers[i], &ConfigureInputPlayer::RefreshInputDevices, + [&] { UpdateAllInputDevices(); }); + connect(player_connected[i], &QCheckBox::stateChanged, + [&, i](int state) { player_controllers[i]->ConnectPlayer(state == Qt::Checked); }); } - connect(ui->use_docked_mode, &QCheckBox::stateChanged, this, &ConfigureInput::UpdateUIEnabled); - connect(ui->handheld_connected, &QCheckBox::stateChanged, this, - &ConfigureInput::UpdateUIEnabled); - connect(ui->mouse_enabled, &QCheckBox::stateChanged, this, &ConfigureInput::UpdateUIEnabled); - connect(ui->keyboard_enabled, &QCheckBox::stateChanged, this, &ConfigureInput::UpdateUIEnabled); - connect(ui->debug_enabled, &QCheckBox::stateChanged, this, &ConfigureInput::UpdateUIEnabled); - connect(ui->touchscreen_enabled, &QCheckBox::stateChanged, this, - &ConfigureInput::UpdateUIEnabled); - - for (std::size_t i = 0; i < players_configure.size(); ++i) { - connect(players_configure[i], &QPushButton::clicked, this, - [this, i] { CallConfigureDialog<ConfigureInputPlayer>(*this, i, false); }); - } - - connect(ui->handheld_configure, &QPushButton::clicked, this, - [this] { CallConfigureDialog<ConfigureInputPlayer>(*this, 8, false); }); - - connect(ui->debug_configure, &QPushButton::clicked, this, - [this] { CallConfigureDialog<ConfigureInputPlayer>(*this, 9, true); }); - - connect(ui->mouse_advanced, &QPushButton::clicked, this, + // Only the first player can choose handheld mode so connect the signal just to player 1 + connect(player_controllers[0], &ConfigureInputPlayer::HandheldStateChanged, + [&](bool is_handheld) { UpdateDockedState(is_handheld); }); + + advanced = new ConfigureInputAdvanced(this); + ui->tabAdvanced->setLayout(new QHBoxLayout(ui->tabAdvanced)); + ui->tabAdvanced->layout()->addWidget(advanced); + connect(advanced, &ConfigureInputAdvanced::CallDebugControllerDialog, + [this] { CallConfigureDialog<ConfigureDebugController>(*this); }); + connect(advanced, &ConfigureInputAdvanced::CallMouseConfigDialog, [this] { CallConfigureDialog<ConfigureMouseAdvanced>(*this); }); - - connect(ui->touchscreen_advanced, &QPushButton::clicked, this, + connect(advanced, &ConfigureInputAdvanced::CallTouchscreenConfigDialog, [this] { CallConfigureDialog<ConfigureTouchscreenAdvanced>(*this); }); + + connect(ui->buttonClearAll, &QPushButton::clicked, [this] { ClearAll(); }); + connect(ui->buttonRestoreDefaults, &QPushButton::clicked, [this] { RestoreDefaults(); }); + + RetranslateUI(); + LoadConfiguration(); } ConfigureInput::~ConfigureInput() = default; -void ConfigureInput::ApplyConfiguration() { - for (std::size_t i = 0; i < players_controller.size(); ++i) { - const auto controller_type_index = players_controller[i]->currentIndex(); - - Settings::values.players[i].connected = controller_type_index != 0; +QList<QWidget*> ConfigureInput::GetSubTabs() const { + return { + ui->tabPlayer1, ui->tabPlayer2, ui->tabPlayer3, ui->tabPlayer4, ui->tabPlayer5, + ui->tabPlayer6, ui->tabPlayer7, ui->tabPlayer8, ui->tabAdvanced, + }; +} - if (controller_type_index > 0) { - Settings::values.players[i].type = - static_cast<Settings::ControllerType>(controller_type_index - 1); - } else { - Settings::values.players[i].type = Settings::ControllerType::DualJoycon; - } +void ConfigureInput::ApplyConfiguration() { + for (auto controller : player_controllers) { + controller->ApplyConfiguration(); } + advanced->ApplyConfiguration(); + const bool pre_docked_mode = Settings::values.use_docked_mode; - Settings::values.use_docked_mode = ui->use_docked_mode->isChecked(); + Settings::values.use_docked_mode = ui->radioDocked->isChecked(); OnDockedModeChanged(pre_docked_mode, Settings::values.use_docked_mode); - Settings::values - .players[Service::HID::Controller_NPad::NPadIdToIndex(Service::HID::NPAD_HANDHELD)] - .connected = ui->handheld_connected->isChecked(); - Settings::values.debug_pad_enabled = ui->debug_enabled->isChecked(); - Settings::values.mouse_enabled = ui->mouse_enabled->isChecked(); - Settings::values.keyboard_enabled = ui->keyboard_enabled->isChecked(); - Settings::values.touchscreen.enabled = ui->touchscreen_enabled->isChecked(); + + Settings::values.vibration_enabled = ui->vibrationGroup->isChecked(); } void ConfigureInput::changeEvent(QEvent* event) { @@ -146,94 +156,63 @@ void ConfigureInput::changeEvent(QEvent* event) { RetranslateUI(); } - QDialog::changeEvent(event); + QWidget::changeEvent(event); } void ConfigureInput::RetranslateUI() { ui->retranslateUi(this); - RetranslateControllerComboBoxes(); } -void ConfigureInput::RetranslateControllerComboBoxes() { - for (auto* controller_box : players_controller) { - [[maybe_unused]] const QSignalBlocker blocker(controller_box); - - controller_box->clear(); - controller_box->addItems({tr("None"), tr("Pro Controller"), tr("Dual Joycons"), - tr("Single Right Joycon"), tr("Single Left Joycon")}); - } - +void ConfigureInput::LoadConfiguration() { LoadPlayerControllerIndices(); -} + UpdateDockedState(Settings::values.players[0].controller_type == + Settings::ControllerType::Handheld); -void ConfigureInput::UpdateUIEnabled() { - bool hit_disabled = false; - for (auto* player : players_controller) { - player->setDisabled(hit_disabled); - if (hit_disabled) { - player->setCurrentIndex(0); - } - if (!hit_disabled && player->currentIndex() == 0) { - hit_disabled = true; - } - } + ui->vibrationGroup->setChecked(Settings::values.vibration_enabled); +} - for (std::size_t i = 0; i < players_controller.size(); ++i) { - players_configure[i]->setEnabled(players_controller[i]->currentIndex() != 0); +void ConfigureInput::LoadPlayerControllerIndices() { + for (std::size_t i = 0; i < player_connected.size(); ++i) { + const auto connected = Settings::values.players[i].connected || + (i == 0 && Settings::values.players[8].connected); + player_connected[i]->setChecked(connected); } +} - ui->handheld_connected->setChecked(ui->handheld_connected->isChecked() && - !ui->use_docked_mode->isChecked()); - ui->handheld_connected->setEnabled(!ui->use_docked_mode->isChecked()); - ui->handheld_configure->setEnabled(ui->handheld_connected->isChecked() && - !ui->use_docked_mode->isChecked()); - ui->mouse_advanced->setEnabled(ui->mouse_enabled->isChecked()); - ui->debug_configure->setEnabled(ui->debug_enabled->isChecked()); - ui->touchscreen_advanced->setEnabled(ui->touchscreen_enabled->isChecked()); +void ConfigureInput::ClearAll() { + // We don't have a good way to know what tab is active, but we can find out by getting the + // parent of the consoleInputSettings + auto player_tab = static_cast<ConfigureInputPlayer*>(ui->consoleInputSettings->parent()); + player_tab->ClearAll(); } -void ConfigureInput::LoadConfiguration() { - std::stable_partition( - Settings::values.players.begin(), - Settings::values.players.begin() + - Service::HID::Controller_NPad::NPadIdToIndex(Service::HID::NPAD_HANDHELD), - [](const auto& player) { return player.connected; }); +void ConfigureInput::RestoreDefaults() { + // We don't have a good way to know what tab is active, but we can find out by getting the + // parent of the consoleInputSettings + auto player_tab = static_cast<ConfigureInputPlayer*>(ui->consoleInputSettings->parent()); + player_tab->RestoreDefaults(); + + ui->radioDocked->setChecked(true); + ui->radioUndocked->setChecked(false); + ui->vibrationGroup->setChecked(true); +} - LoadPlayerControllerIndices(); +void ConfigureInput::UpdateDockedState(bool is_handheld) { + // If the controller type is handheld only, disallow changing docked mode + ui->radioDocked->setEnabled(!is_handheld); + ui->radioUndocked->setEnabled(!is_handheld); - ui->use_docked_mode->setChecked(Settings::values.use_docked_mode); - ui->handheld_connected->setChecked( - Settings::values - .players[Service::HID::Controller_NPad::NPadIdToIndex(Service::HID::NPAD_HANDHELD)] - .connected); - ui->debug_enabled->setChecked(Settings::values.debug_pad_enabled); - ui->mouse_enabled->setChecked(Settings::values.mouse_enabled); - ui->keyboard_enabled->setChecked(Settings::values.keyboard_enabled); - ui->touchscreen_enabled->setChecked(Settings::values.touchscreen.enabled); - - UpdateUIEnabled(); -} + ui->radioDocked->setChecked(Settings::values.use_docked_mode); + ui->radioUndocked->setChecked(!Settings::values.use_docked_mode); -void ConfigureInput::LoadPlayerControllerIndices() { - for (std::size_t i = 0; i < players_controller.size(); ++i) { - const auto connected = Settings::values.players[i].connected; - players_controller[i]->setCurrentIndex( - connected ? static_cast<u8>(Settings::values.players[i].type) + 1 : 0); + // If its handheld only, force docked mode off (since you can't play handheld in a dock) + if (is_handheld) { + ui->radioUndocked->setChecked(true); } } -void ConfigureInput::RestoreDefaults() { - players_controller[0]->setCurrentIndex(2); - - for (std::size_t i = 1; i < players_controller.size(); ++i) { - players_controller[i]->setCurrentIndex(0); +void ConfigureInput::UpdateAllInputDevices() { + for (const auto& player : player_controllers) { + player->UpdateInputDevices(); } - - ui->use_docked_mode->setCheckState(Qt::Unchecked); - ui->handheld_connected->setCheckState(Qt::Unchecked); - ui->mouse_enabled->setCheckState(Qt::Unchecked); - ui->keyboard_enabled->setCheckState(Qt::Unchecked); - ui->debug_enabled->setCheckState(Qt::Unchecked); - ui->touchscreen_enabled->setCheckState(Qt::Checked); - UpdateUIEnabled(); } diff --git a/src/yuzu/configuration/configure_input.h b/src/yuzu/configuration/configure_input.h index 2f70cb3ca4..8241d23efe 100644 --- a/src/yuzu/configuration/configure_input.h +++ b/src/yuzu/configuration/configure_input.h @@ -10,11 +10,14 @@ #include <QDialog> #include <QKeyEvent> +#include "yuzu/configuration/configure_input_advanced.h" +#include "yuzu/configuration/configure_input_player.h" + #include "ui_configure_input.h" -class QPushButton; class QString; class QTimer; +class QCheckBox; namespace Ui { class ConfigureInput; @@ -22,22 +25,25 @@ class ConfigureInput; void OnDockedModeChanged(bool last_state, bool new_state); -class ConfigureInput : public QDialog { +class ConfigureInput : public QWidget { Q_OBJECT public: explicit ConfigureInput(QWidget* parent = nullptr); ~ConfigureInput() override; - /// Save all button configurations to settings file + /// Save all button configurations to settings file. void ApplyConfiguration(); + QList<QWidget*> GetSubTabs() const; + private: void changeEvent(QEvent* event) override; void RetranslateUI(); - void RetranslateControllerComboBoxes(); + void ClearAll(); - void UpdateUIEnabled(); + void UpdateDockedState(bool is_handheld); + void UpdateAllInputDevices(); /// Load configuration settings. void LoadConfiguration(); @@ -48,6 +54,8 @@ private: std::unique_ptr<Ui::ConfigureInput> ui; - std::array<QComboBox*, 8> players_controller; - std::array<QPushButton*, 8> players_configure; + std::array<ConfigureInputPlayer*, 8> player_controllers; + std::array<QWidget*, 8> player_tabs; + std::array<QCheckBox*, 8> player_connected; + ConfigureInputAdvanced* advanced; }; diff --git a/src/yuzu/configuration/configure_input.ui b/src/yuzu/configuration/configure_input.ui index efffd8487c..1369552249 100644 --- a/src/yuzu/configuration/configure_input.ui +++ b/src/yuzu/configuration/configure_input.ui @@ -1,529 +1,554 @@ <?xml version="1.0" encoding="UTF-8"?> <ui version="4.0"> <class>ConfigureInput</class> - <widget class="QDialog" name="ConfigureInput"> + <widget class="QWidget" name="ConfigureInput"> <property name="geometry"> <rect> <x>0</x> <y>0</y> - <width>384</width> - <height>576</height> + <width>700</width> + <height>540</height> </rect> </property> <property name="windowTitle"> - <string>Custom Input Settings</string> + <string>ConfigureInput</string> </property> <layout class="QVBoxLayout" name="verticalLayout_5"> + <property name="spacing"> + <number>2</number> + </property> + <property name="leftMargin"> + <number>3</number> + </property> + <property name="topMargin"> + <number>3</number> + </property> + <property name="rightMargin"> + <number>3</number> + </property> + <property name="bottomMargin"> + <number>3</number> + </property> <item> - <layout class="QVBoxLayout" name="verticalLayout"> - <item> - <widget class="QGroupBox" name="gridGroupBox_1"> - <property name="title"> - <string>Players</string> - </property> - <layout class="QGridLayout" name="gridLayout"> - <item row="1" column="2"> - <widget class="QComboBox" name="player1_combobox"> - <property name="minimumSize"> - <size> - <width>110</width> - <height>0</height> - </size> - </property> - </widget> - </item> - <item row="1" column="3"> - <widget class="QPushButton" name="player1_configure"> - <property name="text"> - <string>Configure</string> - </property> - </widget> - </item> - <item row="0" column="2"> - <widget class="QLabel" name="label"> - <property name="text"> - <string>Controller Type</string> - </property> - <property name="alignment"> - <set>Qt::AlignCenter</set> - </property> - </widget> - </item> - <item row="2" column="2"> - <widget class="QComboBox" name="player2_combobox"> - <property name="minimumSize"> - <size> - <width>110</width> - <height>0</height> - </size> - </property> - </widget> - </item> - <item row="3" column="2"> - <widget class="QComboBox" name="player3_combobox"> - <property name="minimumSize"> - <size> - <width>110</width> - <height>0</height> - </size> - </property> - </widget> - </item> - <item row="4" column="2"> - <widget class="QComboBox" name="player4_combobox"> - <property name="minimumSize"> - <size> - <width>110</width> - <height>0</height> - </size> - </property> - </widget> - </item> - <item row="5" column="2"> - <widget class="QComboBox" name="player5_combobox"> - <property name="minimumSize"> - <size> - <width>110</width> - <height>0</height> - </size> - </property> - </widget> - </item> - <item row="6" column="2"> - <widget class="QComboBox" name="player6_combobox"> - <property name="minimumSize"> - <size> - <width>110</width> - <height>0</height> - </size> - </property> - </widget> - </item> - <item row="7" column="2"> - <widget class="QComboBox" name="player7_combobox"> - <property name="minimumSize"> - <size> - <width>110</width> - <height>0</height> - </size> - </property> - </widget> - </item> - <item row="8" column="2"> - <widget class="QComboBox" name="player8_combobox"> - <property name="minimumSize"> - <size> - <width>110</width> - <height>0</height> - </size> - </property> - </widget> - </item> - <item row="2" column="3"> - <widget class="QPushButton" name="player2_configure"> - <property name="text"> - <string>Configure</string> - </property> - </widget> - </item> - <item row="3" column="3"> - <widget class="QPushButton" name="player3_configure"> - <property name="text"> - <string>Configure</string> - </property> - </widget> - </item> - <item row="4" column="3"> - <widget class="QPushButton" name="player4_configure"> - <property name="text"> - <string>Configure</string> - </property> - </widget> - </item> - <item row="5" column="3"> - <widget class="QPushButton" name="player5_configure"> - <property name="text"> - <string>Configure</string> - </property> - </widget> - </item> - <item row="6" column="3"> - <widget class="QPushButton" name="player6_configure"> - <property name="text"> - <string>Configure</string> - </property> - </widget> - </item> - <item row="7" column="3"> - <widget class="QPushButton" name="player7_configure"> - <property name="text"> - <string>Configure</string> - </property> - </widget> - </item> - <item row="8" column="3"> - <widget class="QPushButton" name="player8_configure"> - <property name="text"> - <string>Configure</string> - </property> - </widget> - </item> - <item row="0" column="0"> - <spacer name="horizontalSpacer"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>40</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - <item row="0" column="4"> - <spacer name="horizontalSpacer_2"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>40</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - <item row="1" column="1"> - <widget class="QLabel" name="label_3"> - <property name="minimumSize"> - <size> - <width>55</width> - <height>0</height> - </size> - </property> - <property name="text"> - <string>Player 1</string> - </property> - </widget> - </item> - <item row="2" column="1"> - <widget class="QLabel" name="label_4"> - <property name="text"> - <string>Player 2</string> - </property> - </widget> - </item> - <item row="3" column="1"> - <widget class="QLabel" name="label_5"> - <property name="text"> - <string>Player 3</string> - </property> - </widget> - </item> - <item row="4" column="1"> - <widget class="QLabel" name="label_6"> - <property name="text"> - <string>Player 4</string> - </property> - </widget> - </item> - <item row="5" column="1"> - <widget class="QLabel" name="label_7"> - <property name="text"> - <string>Player 5</string> - </property> - </widget> - </item> - <item row="6" column="1"> - <widget class="QLabel" name="label_8"> - <property name="text"> - <string>Player 6</string> - </property> - </widget> - </item> - <item row="7" column="1"> - <widget class="QLabel" name="label_9"> - <property name="text"> - <string>Player 7</string> - </property> - </widget> - </item> - <item row="8" column="1"> - <widget class="QLabel" name="label_10"> - <property name="text"> - <string>Player 8</string> - </property> - </widget> - </item> - </layout> - </widget> - </item> - <item> - <widget class="QGroupBox" name="gridGroupBox_2"> - <property name="title"> - <string>Handheld</string> - </property> - <layout class="QGridLayout" name="gridLayout_2"> - <item row="1" column="2"> - <spacer name="horizontalSpacer_5"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeType"> - <enum>QSizePolicy::Fixed</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>72</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - <item row="1" column="4"> - <spacer name="horizontalSpacer_4"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>40</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - <item row="1" column="3"> - <widget class="QPushButton" name="handheld_configure"> - <property name="text"> - <string>Configure</string> - </property> - </widget> - </item> - <item row="1" column="0"> - <spacer name="horizontalSpacer_3"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>40</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - <item row="1" column="1"> - <widget class="QCheckBox" name="handheld_connected"> - <property name="text"> - <string>Joycons Docked</string> - </property> - </widget> - </item> - <item row="0" column="1"> - <widget class="QCheckBox" name="use_docked_mode"> - <property name="text"> - <string>Use Docked Mode</string> - </property> - </widget> - </item> - </layout> - </widget> - </item> - <item> - <widget class="QGroupBox" name="gridGroupBox_3"> - <property name="title"> - <string>Other</string> - </property> - <layout class="QGridLayout" name="gridLayout_3"> - <item row="1" column="1"> - <widget class="QCheckBox" name="keyboard_enabled"> - <property name="minimumSize"> - <size> - <width>0</width> - <height>23</height> - </size> - </property> - <property name="text"> - <string>Keyboard</string> - </property> - </widget> - </item> - <item row="2" column="1"> - <widget class="QCheckBox" name="debug_enabled"> - <property name="text"> - <string>Debug Controller</string> - </property> - </widget> - </item> - <item row="3" column="1"> - <widget class="QCheckBox" name="touchscreen_enabled"> - <property name="text"> - <string>Touchscreen</string> - </property> - </widget> - </item> - <item row="0" column="1"> - <widget class="QCheckBox" name="mouse_enabled"> - <property name="minimumSize"> - <size> - <width>0</width> - <height>23</height> - </size> - </property> - <property name="text"> - <string>Mouse</string> - </property> - </widget> - </item> - <item row="0" column="4"> - <spacer name="horizontalSpacer_7"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>40</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - <item row="0" column="2"> - <spacer name="horizontalSpacer_8"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeType"> - <enum>QSizePolicy::Fixed</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>76</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - <item row="0" column="0"> - <spacer name="horizontalSpacer_6"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>40</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - <item row="3" column="3"> - <widget class="QPushButton" name="touchscreen_advanced"> - <property name="text"> - <string>Advanced</string> - </property> - </widget> - </item> - <item row="2" column="3"> - <widget class="QPushButton" name="debug_configure"> - <property name="text"> - <string>Configure</string> - </property> - </widget> - </item> - <item row="0" column="3"> - <widget class="QPushButton" name="mouse_advanced"> - <property name="text"> - <string>Advanced</string> - </property> - </widget> - </item> - </layout> - </widget> - </item> - <item> - <spacer name="verticalSpacer"> - <property name="orientation"> - <enum>Qt::Vertical</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>20</width> - <height>40</height> - </size> - </property> - </spacer> - </item> - <item> - <layout class="QHBoxLayout" name="horizontalLayout"> - <item> - <widget class="QPushButton" name="restore_defaults_button"> - <property name="text"> - <string>Restore Defaults</string> + <widget class="QTabWidget" name="tabWidget"> + <property name="currentIndex"> + <number>0</number> + </property> + <widget class="QWidget" name="tabPlayer1"> + <property name="accessibleName"> + <string>Player 1</string> + </property> + <attribute name="title"> + <string>Player 1</string> + </attribute> + </widget> + <widget class="QWidget" name="tabPlayer2"> + <property name="accessibleName"> + <string>Player 2</string> + </property> + <attribute name="title"> + <string>Player 2</string> + </attribute> + </widget> + <widget class="QWidget" name="tabPlayer3"> + <property name="accessibleName"> + <string>Player 3</string> + </property> + <attribute name="title"> + <string>Player 3</string> + </attribute> + </widget> + <widget class="QWidget" name="tabPlayer4"> + <property name="accessibleName"> + <string>Player 4</string> + </property> + <attribute name="title"> + <string>Player 4</string> + </attribute> + </widget> + <widget class="QWidget" name="tabPlayer5"> + <property name="accessibleName"> + <string>Player 5</string> + </property> + <attribute name="title"> + <string>Player 5</string> + </attribute> + </widget> + <widget class="QWidget" name="tabPlayer6"> + <property name="accessibleName"> + <string>Player 6</string> + </property> + <attribute name="title"> + <string>Player 6</string> + </attribute> + </widget> + <widget class="QWidget" name="tabPlayer7"> + <property name="accessibleName"> + <string>Player 7</string> + </property> + <attribute name="title"> + <string>Player 7</string> + </attribute> + </widget> + <widget class="QWidget" name="tabPlayer8"> + <property name="accessibleName"> + <string>Player 8</string> + </property> + <attribute name="title"> + <string>Player 8</string> + </attribute> + </widget> + <widget class="QWidget" name="tabAdvanced"> + <property name="accessibleName"> + <string>Advanced</string> + </property> + <attribute name="title"> + <string>Advanced</string> + </attribute> + </widget> + </widget> + </item> + <item alignment="Qt::AlignVCenter"> + <widget class="QWidget" name="consoleInputSettings" native="true"> + <layout class="QHBoxLayout" name="buttonsBottomRightHorizontalLayout"> + <property name="spacing"> + <number>3</number> + </property> + <property name="leftMargin"> + <number>0</number> + </property> + <property name="topMargin"> + <number>3</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> + <item alignment="Qt::AlignVCenter"> + <widget class="QGroupBox" name="handheldGroup"> + <property name="maximumSize"> + <size> + <width>16777215</width> + <height>16777215</height> + </size> + </property> + <property name="title"> + <string>Console Mode</string> + </property> + <layout class="QHBoxLayout" name="horizontalLayout"> + <property name="spacing"> + <number>6</number> + </property> + <property name="leftMargin"> + <number>3</number> + </property> + <property name="topMargin"> + <number>6</number> + </property> + <property name="rightMargin"> + <number>3</number> + </property> + <property name="bottomMargin"> + <number>6</number> + </property> + <item> + <widget class="QRadioButton" name="radioDocked"> + <property name="text"> + <string>Docked</string> + </property> + <property name="checked"> + <bool>true</bool> + </property> + </widget> + </item> + <item> + <widget class="QRadioButton" name="radioUndocked"> + <property name="text"> + <string>Undocked</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QGroupBox" name="vibrationGroup"> + <property name="title"> + <string>Vibration</string> + </property> + <property name="checkable"> + <bool>true</bool> + </property> + <layout class="QHBoxLayout" name="horizontalLayout_2"> + <property name="leftMargin"> + <number>3</number> + </property> + <property name="topMargin"> + <number>3</number> + </property> + <property name="rightMargin"> + <number>3</number> + </property> + <property name="bottomMargin"> + <number>3</number> + </property> + <item> + <widget class="QSpinBox" name="vibrationSpin"> + <property name="minimumSize"> + <size> + <width>65</width> + <height>21</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>65</width> + <height>16777215</height> + </size> + </property> + <property name="suffix"> + <string>%</string> + </property> + <property name="minimum"> + <number>1</number> + </property> + <property name="maximum"> + <number>200</number> + </property> + <property name="value"> + <number>100</number> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QGroupBox" name="motionGroup"> + <property name="title"> + <string>Motion</string> + </property> + <property name="checkable"> + <bool>true</bool> + </property> + <layout class="QHBoxLayout" name="horizontalLayout_3"> + <property name="leftMargin"> + <number>3</number> + </property> + <property name="topMargin"> + <number>3</number> + </property> + <property name="rightMargin"> + <number>3</number> + </property> + <property name="bottomMargin"> + <number>3</number> + </property> + <item> + <widget class="QPushButton" name="motionButton"> + <property name="minimumSize"> + <size> + <width>57</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>55</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">min-width: 55px;</string> + </property> + <property name="text"> + <string>Configure</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item alignment="Qt::AlignVCenter"> + <widget class="QWidget" name="widget" native="true"> + <layout class="QGridLayout" name="gridLayout_2"> + <property name="leftMargin"> + <number>5</number> + </property> + <property name="topMargin"> + <number>0</number> </property> - </widget> - </item> - <item> - <spacer name="horizontalSpacer_9"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> + <property name="rightMargin"> + <number>0</number> </property> - <property name="sizeHint" stdset="0"> - <size> - <width>40</width> - <height>20</height> - </size> + <property name="bottomMargin"> + <number>0</number> </property> - </spacer> - </item> - <item> - <widget class="QDialogButtonBox" name="buttonBox"> - <property name="standardButtons"> - <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set> + <property name="spacing"> + <number>3</number> </property> - </widget> - </item> - </layout> - </item> - </layout> + <item row="1" column="2"> + <widget class="QCheckBox" name="checkboxPlayer2Connected"> + <property name="text"> + <string/> + </property> + </widget> + </item> + <item row="1" column="0"> + <widget class="QLabel" name="label_2"> + <property name="text"> + <string>Controllers</string> + </property> + </widget> + </item> + <item row="1" column="4"> + <widget class="QCheckBox" name="checkboxPlayer4Connected"> + <property name="text"> + <string/> + </property> + </widget> + </item> + <item row="1" column="3"> + <widget class="QCheckBox" name="checkboxPlayer3Connected"> + <property name="text"> + <string/> + </property> + </widget> + </item> + <item row="1" column="5"> + <widget class="QCheckBox" name="checkboxPlayer5Connected"> + <property name="text"> + <string/> + </property> + </widget> + </item> + <item row="0" column="1"> + <widget class="QLabel" name="label"> + <property name="text"> + <string>1</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + </widget> + </item> + <item row="1" column="7"> + <widget class="QCheckBox" name="checkboxPlayer7Connected"> + <property name="text"> + <string/> + </property> + </widget> + </item> + <item row="1" column="6"> + <widget class="QCheckBox" name="checkboxPlayer6Connected"> + <property name="text"> + <string/> + </property> + </widget> + </item> + <item row="1" column="1"> + <widget class="QCheckBox" name="checkboxPlayer1Connected"> + <property name="layoutDirection"> + <enum>Qt::LeftToRight</enum> + </property> + <property name="checked"> + <bool>true</bool> + </property> + </widget> + </item> + <item row="1" column="8"> + <widget class="QCheckBox" name="checkboxPlayer8Connected"> + <property name="text"> + <string/> + </property> + </widget> + </item> + <item row="0" column="2"> + <widget class="QLabel" name="label_3"> + <property name="text"> + <string>2</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + </widget> + </item> + <item row="0" column="3"> + <widget class="QLabel" name="label_4"> + <property name="text"> + <string>3</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + </widget> + </item> + <item row="0" column="4"> + <widget class="QLabel" name="label_5"> + <property name="text"> + <string>4</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + </widget> + </item> + <item row="0" column="5"> + <widget class="QLabel" name="label_6"> + <property name="text"> + <string>5</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + </widget> + </item> + <item row="0" column="6"> + <widget class="QLabel" name="label_7"> + <property name="text"> + <string>6</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + </widget> + </item> + <item row="0" column="7"> + <widget class="QLabel" name="label_8"> + <property name="text"> + <string>7</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + </widget> + </item> + <item row="0" column="8"> + <widget class="QLabel" name="label_9"> + <property name="text"> + <string>8</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + </widget> + </item> + <item row="0" column="0"> + <widget class="QLabel" name="label_10"> + <property name="text"> + <string>Connected</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <spacer name="horizontalSpacer"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item alignment="Qt::AlignBottom"> + <widget class="QPushButton" name="buttonRestoreDefaults"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Minimum" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>57</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>55</width> + <height>16777215</height> + </size> + </property> + <property name="sizeIncrement"> + <size> + <width>0</width> + <height>0</height> + </size> + </property> + <property name="baseSize"> + <size> + <width>0</width> + <height>0</height> + </size> + </property> + <property name="layoutDirection"> + <enum>Qt::LeftToRight</enum> + </property> + <property name="styleSheet"> + <string notr="true">min-width: 55px;</string> + </property> + <property name="text"> + <string>Defaults</string> + </property> + </widget> + </item> + <item alignment="Qt::AlignBottom"> + <widget class="QPushButton" name="buttonClearAll"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Minimum" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>57</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>55</width> + <height>16777215</height> + </size> + </property> + <property name="sizeIncrement"> + <size> + <width>0</width> + <height>0</height> + </size> + </property> + <property name="baseSize"> + <size> + <width>0</width> + <height>0</height> + </size> + </property> + <property name="layoutDirection"> + <enum>Qt::LeftToRight</enum> + </property> + <property name="styleSheet"> + <string notr="true">min-width: 55px;</string> + </property> + <property name="text"> + <string>Clear</string> + </property> + </widget> + </item> + </layout> + </widget> </item> </layout> </widget> <resources/> - <connections> - <connection> - <sender>buttonBox</sender> - <signal>accepted()</signal> - <receiver>ConfigureInput</receiver> - <slot>accept()</slot> - <hints> - <hint type="sourcelabel"> - <x>294</x> - <y>553</y> - </hint> - <hint type="destinationlabel"> - <x>191</x> - <y>287</y> - </hint> - </hints> - </connection> - <connection> - <sender>buttonBox</sender> - <signal>rejected()</signal> - <receiver>ConfigureInput</receiver> - <slot>reject()</slot> - <hints> - <hint type="sourcelabel"> - <x>294</x> - <y>553</y> - </hint> - <hint type="destinationlabel"> - <x>191</x> - <y>287</y> - </hint> - </hints> - </connection> - </connections> + <connections/> </ui> diff --git a/src/yuzu/configuration/configure_input_advanced.cpp b/src/yuzu/configuration/configure_input_advanced.cpp new file mode 100644 index 0000000000..18db04e7ea --- /dev/null +++ b/src/yuzu/configuration/configure_input_advanced.cpp @@ -0,0 +1,169 @@ +// Copyright 2020 yuzu Emulator Project +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#include <QColorDialog> +#include "core/core.h" +#include "core/settings.h" +#include "ui_configure_input_advanced.h" +#include "yuzu/configuration/configure_input_advanced.h" + +ConfigureInputAdvanced::ConfigureInputAdvanced(QWidget* parent) + : QWidget(parent), ui(new Ui::ConfigureInputAdvanced) { + ui->setupUi(this); + + controllers_color_buttons = {{ + { + ui->player1_left_body_button, + ui->player1_left_buttons_button, + ui->player1_right_body_button, + ui->player1_right_buttons_button, + }, + { + ui->player2_left_body_button, + ui->player2_left_buttons_button, + ui->player2_right_body_button, + ui->player2_right_buttons_button, + }, + { + ui->player3_left_body_button, + ui->player3_left_buttons_button, + ui->player3_right_body_button, + ui->player3_right_buttons_button, + }, + { + ui->player4_left_body_button, + ui->player4_left_buttons_button, + ui->player4_right_body_button, + ui->player4_right_buttons_button, + }, + { + ui->player5_left_body_button, + ui->player5_left_buttons_button, + ui->player5_right_body_button, + ui->player5_right_buttons_button, + }, + { + ui->player6_left_body_button, + ui->player6_left_buttons_button, + ui->player6_right_body_button, + ui->player6_right_buttons_button, + }, + { + ui->player7_left_body_button, + ui->player7_left_buttons_button, + ui->player7_right_body_button, + ui->player7_right_buttons_button, + }, + { + ui->player8_left_body_button, + ui->player8_left_buttons_button, + ui->player8_right_body_button, + ui->player8_right_buttons_button, + }, + }}; + + for (std::size_t player_idx = 0; player_idx < controllers_color_buttons.size(); ++player_idx) { + auto& color_buttons = controllers_color_buttons[player_idx]; + for (std::size_t button_idx = 0; button_idx < color_buttons.size(); ++button_idx) { + connect(color_buttons[button_idx], &QPushButton::clicked, this, + [this, player_idx, button_idx] { + OnControllerButtonClick(static_cast<int>(player_idx), + static_cast<int>(button_idx)); + }); + } + } + + connect(ui->mouse_enabled, &QCheckBox::stateChanged, this, + &ConfigureInputAdvanced::UpdateUIEnabled); + connect(ui->debug_enabled, &QCheckBox::stateChanged, this, + &ConfigureInputAdvanced::UpdateUIEnabled); + connect(ui->touchscreen_enabled, &QCheckBox::stateChanged, this, + &ConfigureInputAdvanced::UpdateUIEnabled); + + connect(ui->debug_configure, &QPushButton::clicked, this, + [this] { CallDebugControllerDialog(); }); + connect(ui->mouse_advanced, &QPushButton::clicked, this, [this] { CallMouseConfigDialog(); }); + connect(ui->touchscreen_advanced, &QPushButton::clicked, this, + [this] { CallTouchscreenConfigDialog(); }); + + LoadConfiguration(); +} + +ConfigureInputAdvanced::~ConfigureInputAdvanced() = default; + +void ConfigureInputAdvanced::OnControllerButtonClick(int player_idx, int button_idx) { + const QColor new_bg_color = QColorDialog::getColor(controllers_colors[player_idx][button_idx]); + if (!new_bg_color.isValid()) { + return; + } + controllers_colors[player_idx][button_idx] = new_bg_color; + controllers_color_buttons[player_idx][button_idx]->setStyleSheet( + QStringLiteral("background-color: %1; min-width: 55px;") + .arg(controllers_colors[player_idx][button_idx].name())); +} + +void ConfigureInputAdvanced::ApplyConfiguration() { + for (std::size_t player_idx = 0; player_idx < controllers_color_buttons.size(); ++player_idx) { + auto& player = Settings::values.players[player_idx]; + std::array<u32, 4> colors{}; + std::transform(controllers_colors[player_idx].begin(), controllers_colors[player_idx].end(), + colors.begin(), [](QColor color) { return color.rgb(); }); + + player.body_color_left = colors[0]; + player.button_color_left = colors[1]; + player.body_color_right = colors[2]; + player.button_color_right = colors[3]; + } + + Settings::values.debug_pad_enabled = ui->debug_enabled->isChecked(); + Settings::values.mouse_enabled = ui->mouse_enabled->isChecked(); + Settings::values.keyboard_enabled = ui->keyboard_enabled->isChecked(); + Settings::values.touchscreen.enabled = ui->touchscreen_enabled->isChecked(); +} + +void ConfigureInputAdvanced::LoadConfiguration() { + for (std::size_t player_idx = 0; player_idx < controllers_color_buttons.size(); ++player_idx) { + auto& player = Settings::values.players[player_idx]; + std::array<u32, 4> colors = { + player.body_color_left, + player.button_color_left, + player.body_color_right, + player.button_color_right, + }; + + std::transform(colors.begin(), colors.end(), controllers_colors[player_idx].begin(), + [](u32 rgb) { return QColor::fromRgb(rgb); }); + + for (std::size_t button_idx = 0; button_idx < colors.size(); ++button_idx) { + controllers_color_buttons[player_idx][button_idx]->setStyleSheet( + QStringLiteral("background-color: %1; min-width: 55px;") + .arg(controllers_colors[player_idx][button_idx].name())); + } + } + + ui->debug_enabled->setChecked(Settings::values.debug_pad_enabled); + ui->mouse_enabled->setChecked(Settings::values.mouse_enabled); + ui->keyboard_enabled->setChecked(Settings::values.keyboard_enabled); + ui->touchscreen_enabled->setChecked(Settings::values.touchscreen.enabled); + + UpdateUIEnabled(); +} + +void ConfigureInputAdvanced::changeEvent(QEvent* event) { + if (event->type() == QEvent::LanguageChange) { + RetranslateUI(); + } + + QWidget::changeEvent(event); +} + +void ConfigureInputAdvanced::RetranslateUI() { + ui->retranslateUi(this); +} + +void ConfigureInputAdvanced::UpdateUIEnabled() { + ui->mouse_advanced->setEnabled(ui->mouse_enabled->isChecked()); + ui->debug_configure->setEnabled(ui->debug_enabled->isChecked()); + ui->touchscreen_advanced->setEnabled(ui->touchscreen_enabled->isChecked()); +} diff --git a/src/yuzu/configuration/configure_input_advanced.h b/src/yuzu/configuration/configure_input_advanced.h new file mode 100644 index 0000000000..d6e913675d --- /dev/null +++ b/src/yuzu/configuration/configure_input_advanced.h @@ -0,0 +1,44 @@ +// Copyright 2020 yuzu Emulator Project +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#pragma once + +#include <memory> +#include <QWidget> + +class QColor; +class QPushButton; + +namespace Ui { +class ConfigureInputAdvanced; +} + +class ConfigureInputAdvanced : public QWidget { + Q_OBJECT + +public: + explicit ConfigureInputAdvanced(QWidget* parent = nullptr); + ~ConfigureInputAdvanced() override; + + void ApplyConfiguration(); + +signals: + void CallDebugControllerDialog(); + void CallMouseConfigDialog(); + void CallTouchscreenConfigDialog(); + +private: + void changeEvent(QEvent* event) override; + void RetranslateUI(); + void UpdateUIEnabled(); + + void OnControllerButtonClick(int player_idx, int button_idx); + + void LoadConfiguration(); + + std::unique_ptr<Ui::ConfigureInputAdvanced> ui; + + std::array<std::array<QColor, 4>, 8> controllers_colors; + std::array<std::array<QPushButton*, 4>, 8> controllers_color_buttons; +}; diff --git a/src/yuzu/configuration/configure_input_advanced.ui b/src/yuzu/configuration/configure_input_advanced.ui new file mode 100644 index 0000000000..5958435fce --- /dev/null +++ b/src/yuzu/configuration/configure_input_advanced.ui @@ -0,0 +1,2688 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>ConfigureInputAdvanced</class> + <widget class="QWidget" name="ConfigureInputAdvanced"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>710</width> + <height>580</height> + </rect> + </property> + <property name="windowTitle"> + <string>Configure Input</string> + </property> + <property name="styleSheet"> + <string notr="true"/> + </property> + <layout class="QHBoxLayout" name="horizontalLayout"> + <property name="spacing"> + <number>0</number> + </property> + <property name="leftMargin"> + <number>0</number> + </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> + <item> + <widget class="QWidget" name="mainInputAdvanced" native="true"> + <layout class="QHBoxLayout" name="main" stretch="1,1"> + <property name="spacing"> + <number>9</number> + </property> + <property name="leftMargin"> + <number>0</number> + </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> + <item> + <widget class="QWidget" name="leftInputAdvanced" native="true"> + <layout class="QVBoxLayout" name="leftLayout" stretch="0"> + <property name="spacing"> + <number>3</number> + </property> + <property name="leftMargin"> + <number>0</number> + </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> + <item> + <widget class="QGroupBox" name="joyconColorsGroup"> + <property name="title"> + <string>Joycon Colors</string> + </property> + <layout class="QVBoxLayout" name="verticalLayout_3" stretch="1,1"> + <property name="leftMargin"> + <number>9</number> + </property> + <property name="topMargin"> + <number>9</number> + </property> + <property name="rightMargin"> + <number>9</number> + </property> + <property name="bottomMargin"> + <number>9</number> + </property> + <item> + <widget class="QWidget" name="topLeftInputAdvanced" native="true"> + <layout class="QVBoxLayout" name="verticalLayout_4"> + <property name="spacing"> + <number>6</number> + </property> + <property name="leftMargin"> + <number>0</number> + </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> + <item> + <widget class="QWidget" name="player12Widget" native="true"> + <layout class="QHBoxLayout" name="horizontalLayout_4"> + <property name="leftMargin"> + <number>0</number> + </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> + <item> + <widget class="QGroupBox" name="player1Group"> + <property name="title"> + <string>Player 1</string> + </property> + <layout class="QHBoxLayout" name="horizontalLayout_2"> + <property name="spacing"> + <number>6</number> + </property> + <property name="leftMargin"> + <number>6</number> + </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>6</number> + </property> + <property name="bottomMargin"> + <number>6</number> + </property> + <item> + <widget class="QWidget" name="player1LeftJoycon" native="true"> + <layout class="QVBoxLayout" name="buttonMiscButtonsLeftJoyconVerticalLayout_14"> + <property name="spacing"> + <number>0</number> + </property> + <property name="leftMargin"> + <number>0</number> + </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> + <item alignment="Qt::AlignHCenter"> + <widget class="QGroupBox" name="player1LeftBodyGroup"> + <property name="title"> + <string>L Body</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <layout class="QVBoxLayout" name="verticalLayout_66"> + <property name="spacing"> + <number>3</number> + </property> + <property name="leftMargin"> + <number>3</number> + </property> + <property name="topMargin"> + <number>3</number> + </property> + <property name="rightMargin"> + <number>3</number> + </property> + <property name="bottomMargin"> + <number>3</number> + </property> + <item> + <widget class="QPushButton" name="player1_left_body_button"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>57</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>55</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">min-width: 55px;</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item alignment="Qt::AlignHCenter"> + <widget class="QGroupBox" name="player1LeftButtonsGroup"> + <property name="title"> + <string>L Button</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <layout class="QVBoxLayout" name="verticalLayout_67"> + <property name="spacing"> + <number>3</number> + </property> + <property name="leftMargin"> + <number>3</number> + </property> + <property name="topMargin"> + <number>3</number> + </property> + <property name="rightMargin"> + <number>3</number> + </property> + <property name="bottomMargin"> + <number>3</number> + </property> + <item> + <widget class="QPushButton" name="player1_left_buttons_button"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>57</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>55</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">min-width: 55px;</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + </item> + </layout> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QWidget" name="player1RightJoycon" native="true"> + <layout class="QVBoxLayout" name="buttonMiscButtonsRightJoyconVerticalLayout_14"> + <property name="spacing"> + <number>0</number> + </property> + <property name="leftMargin"> + <number>0</number> + </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> + <item alignment="Qt::AlignHCenter"> + <widget class="QGroupBox" name="player1RightBodyGroup"> + <property name="title"> + <string>R Body</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <layout class="QVBoxLayout" name="verticalLayout_64"> + <property name="spacing"> + <number>3</number> + </property> + <property name="leftMargin"> + <number>3</number> + </property> + <property name="topMargin"> + <number>3</number> + </property> + <property name="rightMargin"> + <number>3</number> + </property> + <property name="bottomMargin"> + <number>3</number> + </property> + <item> + <widget class="QPushButton" name="player1_right_body_button"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>57</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>55</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">min-width: 55px;</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item alignment="Qt::AlignHCenter"> + <widget class="QGroupBox" name="player1RightButtonsGroup"> + <property name="title"> + <string>R Button</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <layout class="QVBoxLayout" name="verticalLayout_65"> + <property name="spacing"> + <number>3</number> + </property> + <property name="leftMargin"> + <number>3</number> + </property> + <property name="topMargin"> + <number>3</number> + </property> + <property name="rightMargin"> + <number>3</number> + </property> + <property name="bottomMargin"> + <number>3</number> + </property> + <item> + <widget class="QPushButton" name="player1_right_buttons_button"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>57</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>55</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">min-width: 55px;</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + </item> + </layout> + </widget> + </item> + </layout> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QGroupBox" name="player2Group"> + <property name="title"> + <string>Player 2</string> + </property> + <layout class="QHBoxLayout" name="horizontalLayout_14"> + <property name="spacing"> + <number>6</number> + </property> + <property name="leftMargin"> + <number>6</number> + </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>6</number> + </property> + <property name="bottomMargin"> + <number>6</number> + </property> + <item> + <widget class="QWidget" name="player2LeftJoycon" native="true"> + <layout class="QVBoxLayout" name="buttonMiscButtonsLeftJoyconVerticalLayout_15"> + <property name="spacing"> + <number>0</number> + </property> + <property name="leftMargin"> + <number>0</number> + </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> + <item alignment="Qt::AlignHCenter"> + <widget class="QGroupBox" name="player2LeftBodyGroup"> + <property name="title"> + <string>L Body</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <layout class="QVBoxLayout" name="verticalLayout_70"> + <property name="spacing"> + <number>3</number> + </property> + <property name="leftMargin"> + <number>3</number> + </property> + <property name="topMargin"> + <number>3</number> + </property> + <property name="rightMargin"> + <number>3</number> + </property> + <property name="bottomMargin"> + <number>3</number> + </property> + <item> + <widget class="QPushButton" name="player2_left_body_button"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>57</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>55</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">min-width: 55px;</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item alignment="Qt::AlignHCenter"> + <widget class="QGroupBox" name="player2LeftButtonsGroup"> + <property name="title"> + <string>L Button</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <layout class="QVBoxLayout" name="verticalLayout_71"> + <property name="spacing"> + <number>3</number> + </property> + <property name="leftMargin"> + <number>3</number> + </property> + <property name="topMargin"> + <number>3</number> + </property> + <property name="rightMargin"> + <number>3</number> + </property> + <property name="bottomMargin"> + <number>3</number> + </property> + <item> + <widget class="QPushButton" name="player2_left_buttons_button"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>57</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>55</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">min-width: 55px;</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + </item> + </layout> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QWidget" name="player2RightJoycon" native="true"> + <layout class="QVBoxLayout" name="buttonMiscButtonsRightJoyconVerticalLayout_15"> + <property name="spacing"> + <number>0</number> + </property> + <property name="leftMargin"> + <number>0</number> + </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> + <item alignment="Qt::AlignHCenter"> + <widget class="QGroupBox" name="player2RightBodyGroup"> + <property name="title"> + <string>R Body</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <layout class="QVBoxLayout" name="verticalLayout_68"> + <property name="spacing"> + <number>3</number> + </property> + <property name="leftMargin"> + <number>3</number> + </property> + <property name="topMargin"> + <number>3</number> + </property> + <property name="rightMargin"> + <number>3</number> + </property> + <property name="bottomMargin"> + <number>3</number> + </property> + <item> + <widget class="QPushButton" name="player2_right_body_button"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>57</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>55</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">min-width: 55px;</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item alignment="Qt::AlignHCenter"> + <widget class="QGroupBox" name="player2RightButtonsGroup"> + <property name="title"> + <string>R Button</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <layout class="QVBoxLayout" name="verticalLayout_69"> + <property name="spacing"> + <number>3</number> + </property> + <property name="leftMargin"> + <number>3</number> + </property> + <property name="topMargin"> + <number>3</number> + </property> + <property name="rightMargin"> + <number>3</number> + </property> + <property name="bottomMargin"> + <number>3</number> + </property> + <item> + <widget class="QPushButton" name="player2_right_buttons_button"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>57</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>55</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">min-width: 55px;</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + </item> + </layout> + </widget> + </item> + </layout> + </widget> + </item> + </layout> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QWidget" name="player34Widget" native="true"> + <layout class="QHBoxLayout" name="horizontalLayout_5"> + <property name="leftMargin"> + <number>0</number> + </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> + <item> + <widget class="QGroupBox" name="player3Group"> + <property name="title"> + <string>Player 3</string> + </property> + <layout class="QHBoxLayout" name="horizontalLayout_15"> + <property name="spacing"> + <number>6</number> + </property> + <property name="leftMargin"> + <number>6</number> + </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>6</number> + </property> + <property name="bottomMargin"> + <number>6</number> + </property> + <item> + <widget class="QWidget" name="player3LeftJoycon" native="true"> + <layout class="QVBoxLayout" name="buttonMiscButtonsLeftJoyconVerticalLayout_16"> + <property name="spacing"> + <number>0</number> + </property> + <property name="leftMargin"> + <number>0</number> + </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> + <item alignment="Qt::AlignHCenter"> + <widget class="QGroupBox" name="player3LeftBodyGroup"> + <property name="title"> + <string>L Body</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <layout class="QVBoxLayout" name="verticalLayout_74"> + <property name="spacing"> + <number>3</number> + </property> + <property name="leftMargin"> + <number>3</number> + </property> + <property name="topMargin"> + <number>3</number> + </property> + <property name="rightMargin"> + <number>3</number> + </property> + <property name="bottomMargin"> + <number>3</number> + </property> + <item> + <widget class="QPushButton" name="player3_left_body_button"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>57</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>55</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">min-width: 55px;</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item alignment="Qt::AlignHCenter"> + <widget class="QGroupBox" name="player3LeftButtonsGroup"> + <property name="title"> + <string>L Button</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <layout class="QVBoxLayout" name="verticalLayout_75"> + <property name="spacing"> + <number>3</number> + </property> + <property name="leftMargin"> + <number>3</number> + </property> + <property name="topMargin"> + <number>3</number> + </property> + <property name="rightMargin"> + <number>3</number> + </property> + <property name="bottomMargin"> + <number>3</number> + </property> + <item> + <widget class="QPushButton" name="player3_left_buttons_button"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>57</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>55</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">min-width: 55px;</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + </item> + </layout> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QWidget" name="player3RightJoycon" native="true"> + <layout class="QVBoxLayout" name="buttonMiscButtonsRightJoyconVerticalLayout_16"> + <property name="spacing"> + <number>0</number> + </property> + <property name="leftMargin"> + <number>0</number> + </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> + <item alignment="Qt::AlignHCenter"> + <widget class="QGroupBox" name="player3RightBodyGroup"> + <property name="title"> + <string>R Body</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <layout class="QVBoxLayout" name="verticalLayout_72"> + <property name="spacing"> + <number>3</number> + </property> + <property name="leftMargin"> + <number>3</number> + </property> + <property name="topMargin"> + <number>3</number> + </property> + <property name="rightMargin"> + <number>3</number> + </property> + <property name="bottomMargin"> + <number>3</number> + </property> + <item> + <widget class="QPushButton" name="player3_right_body_button"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>57</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>55</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">min-width: 55px;</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item alignment="Qt::AlignHCenter"> + <widget class="QGroupBox" name="player3RightButtonsGroup"> + <property name="title"> + <string>R Button</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <layout class="QVBoxLayout" name="verticalLayout_73"> + <property name="spacing"> + <number>3</number> + </property> + <property name="leftMargin"> + <number>3</number> + </property> + <property name="topMargin"> + <number>3</number> + </property> + <property name="rightMargin"> + <number>3</number> + </property> + <property name="bottomMargin"> + <number>3</number> + </property> + <item> + <widget class="QPushButton" name="player3_right_buttons_button"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>57</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>55</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">min-width: 55px;</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + </item> + </layout> + </widget> + </item> + </layout> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QGroupBox" name="player4Group"> + <property name="title"> + <string>Player 4</string> + </property> + <layout class="QHBoxLayout" name="horizontalLayout_16"> + <property name="spacing"> + <number>6</number> + </property> + <property name="leftMargin"> + <number>6</number> + </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>6</number> + </property> + <property name="bottomMargin"> + <number>6</number> + </property> + <item> + <widget class="QWidget" name="player4LeftJoycon" native="true"> + <layout class="QVBoxLayout" name="buttonMiscButtonsLeftJoyconVerticalLayout_17"> + <property name="spacing"> + <number>0</number> + </property> + <property name="leftMargin"> + <number>0</number> + </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> + <item alignment="Qt::AlignHCenter"> + <widget class="QGroupBox" name="player4LeftBodyGroup"> + <property name="title"> + <string>L Body</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <layout class="QVBoxLayout" name="verticalLayout_78"> + <property name="spacing"> + <number>3</number> + </property> + <property name="leftMargin"> + <number>3</number> + </property> + <property name="topMargin"> + <number>3</number> + </property> + <property name="rightMargin"> + <number>3</number> + </property> + <property name="bottomMargin"> + <number>3</number> + </property> + <item> + <widget class="QPushButton" name="player4_left_body_button"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>57</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>55</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">min-width: 55px;</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item alignment="Qt::AlignHCenter"> + <widget class="QGroupBox" name="player4LeftButtonsGroup"> + <property name="title"> + <string>L Button</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <layout class="QVBoxLayout" name="verticalLayout_79"> + <property name="spacing"> + <number>3</number> + </property> + <property name="leftMargin"> + <number>3</number> + </property> + <property name="topMargin"> + <number>3</number> + </property> + <property name="rightMargin"> + <number>3</number> + </property> + <property name="bottomMargin"> + <number>3</number> + </property> + <item> + <widget class="QPushButton" name="player4_left_buttons_button"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>57</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>55</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">min-width: 55px;</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + </item> + </layout> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QWidget" name="player4RightJoycon" native="true"> + <layout class="QVBoxLayout" name="buttonMiscButtonsRightJoyconVerticalLayout_17"> + <property name="spacing"> + <number>0</number> + </property> + <property name="leftMargin"> + <number>0</number> + </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> + <item alignment="Qt::AlignHCenter"> + <widget class="QGroupBox" name="player4RightBodyGroup"> + <property name="title"> + <string>R Body</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <layout class="QVBoxLayout" name="verticalLayout_76"> + <property name="spacing"> + <number>3</number> + </property> + <property name="leftMargin"> + <number>3</number> + </property> + <property name="topMargin"> + <number>3</number> + </property> + <property name="rightMargin"> + <number>3</number> + </property> + <property name="bottomMargin"> + <number>3</number> + </property> + <item> + <widget class="QPushButton" name="player4_right_body_button"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>57</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>55</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">min-width: 55px;</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item alignment="Qt::AlignHCenter"> + <widget class="QGroupBox" name="player4RightButtonsGroup"> + <property name="title"> + <string>R Button</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <layout class="QVBoxLayout" name="verticalLayout_77"> + <property name="spacing"> + <number>3</number> + </property> + <property name="leftMargin"> + <number>3</number> + </property> + <property name="topMargin"> + <number>3</number> + </property> + <property name="rightMargin"> + <number>3</number> + </property> + <property name="bottomMargin"> + <number>3</number> + </property> + <item> + <widget class="QPushButton" name="player4_right_buttons_button"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>57</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>55</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">min-width: 55px;</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + </item> + </layout> + </widget> + </item> + </layout> + </widget> + </item> + </layout> + </widget> + </item> + </layout> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QWidget" name="bottomLeftInputAdvanced" native="true"> + <layout class="QVBoxLayout" name="verticalLayout_5"> + <property name="spacing"> + <number>6</number> + </property> + <property name="leftMargin"> + <number>0</number> + </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> + <item> + <widget class="QWidget" name="player56Widget" native="true"> + <layout class="QHBoxLayout" name="horizontalLayout_6"> + <property name="leftMargin"> + <number>0</number> + </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> + <item> + <widget class="QGroupBox" name="player5Group"> + <property name="title"> + <string>Player 5</string> + </property> + <layout class="QHBoxLayout" name="horizontalLayout_10"> + <property name="spacing"> + <number>6</number> + </property> + <property name="leftMargin"> + <number>6</number> + </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>6</number> + </property> + <property name="bottomMargin"> + <number>6</number> + </property> + <item> + <widget class="QWidget" name="player5LeftJoycon" native="true"> + <layout class="QVBoxLayout" name="buttonMiscButtonsLeftJoyconVerticalLayout_10"> + <property name="spacing"> + <number>0</number> + </property> + <property name="leftMargin"> + <number>0</number> + </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> + <item alignment="Qt::AlignHCenter"> + <widget class="QGroupBox" name="player5LeftBodyGroup"> + <property name="title"> + <string>L Body</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <layout class="QVBoxLayout" name="verticalLayout_50"> + <property name="spacing"> + <number>3</number> + </property> + <property name="leftMargin"> + <number>3</number> + </property> + <property name="topMargin"> + <number>3</number> + </property> + <property name="rightMargin"> + <number>3</number> + </property> + <property name="bottomMargin"> + <number>3</number> + </property> + <item> + <widget class="QPushButton" name="player5_left_body_button"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>57</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>55</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">min-width: 55px;</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item alignment="Qt::AlignHCenter"> + <widget class="QGroupBox" name="player5LeftButtonsGroup"> + <property name="title"> + <string>L Button</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <layout class="QVBoxLayout" name="verticalLayout_51"> + <property name="spacing"> + <number>3</number> + </property> + <property name="leftMargin"> + <number>3</number> + </property> + <property name="topMargin"> + <number>3</number> + </property> + <property name="rightMargin"> + <number>3</number> + </property> + <property name="bottomMargin"> + <number>3</number> + </property> + <item> + <widget class="QPushButton" name="player5_left_buttons_button"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>57</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>55</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">min-width: 55px;</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + </item> + </layout> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QWidget" name="player5RightJoycon" native="true"> + <layout class="QVBoxLayout" name="buttonMiscButtonsRightJoyconVerticalLayout_10"> + <property name="spacing"> + <number>0</number> + </property> + <property name="leftMargin"> + <number>0</number> + </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> + <item alignment="Qt::AlignHCenter"> + <widget class="QGroupBox" name="player5RightBodyGroup"> + <property name="title"> + <string>R Body</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <layout class="QVBoxLayout" name="verticalLayout_48"> + <property name="spacing"> + <number>3</number> + </property> + <property name="leftMargin"> + <number>3</number> + </property> + <property name="topMargin"> + <number>3</number> + </property> + <property name="rightMargin"> + <number>3</number> + </property> + <property name="bottomMargin"> + <number>3</number> + </property> + <item> + <widget class="QPushButton" name="player5_right_body_button"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>57</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>55</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">min-width: 55px;</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item alignment="Qt::AlignHCenter"> + <widget class="QGroupBox" name="player5RightButtonsGroup"> + <property name="title"> + <string>R Button</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <layout class="QVBoxLayout" name="verticalLayout_49"> + <property name="spacing"> + <number>3</number> + </property> + <property name="leftMargin"> + <number>3</number> + </property> + <property name="topMargin"> + <number>3</number> + </property> + <property name="rightMargin"> + <number>3</number> + </property> + <property name="bottomMargin"> + <number>3</number> + </property> + <item> + <widget class="QPushButton" name="player5_right_buttons_button"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>57</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>55</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">min-width: 55px;</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + </item> + </layout> + </widget> + </item> + </layout> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QGroupBox" name="player6Group"> + <property name="title"> + <string>Player 6</string> + </property> + <layout class="QHBoxLayout" name="horizontalLayout_11"> + <property name="spacing"> + <number>6</number> + </property> + <property name="leftMargin"> + <number>6</number> + </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>6</number> + </property> + <property name="bottomMargin"> + <number>6</number> + </property> + <item> + <widget class="QWidget" name="player6LeftJoycon" native="true"> + <layout class="QVBoxLayout" name="buttonMiscButtonsLeftJoyconVerticalLayout_11"> + <property name="spacing"> + <number>0</number> + </property> + <property name="leftMargin"> + <number>0</number> + </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> + <item alignment="Qt::AlignHCenter"> + <widget class="QGroupBox" name="player6LeftBodyGroup"> + <property name="title"> + <string>L Body</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <layout class="QVBoxLayout" name="verticalLayout_54"> + <property name="spacing"> + <number>3</number> + </property> + <property name="leftMargin"> + <number>3</number> + </property> + <property name="topMargin"> + <number>3</number> + </property> + <property name="rightMargin"> + <number>3</number> + </property> + <property name="bottomMargin"> + <number>3</number> + </property> + <item> + <widget class="QPushButton" name="player6_left_body_button"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>57</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>55</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">min-width: 55px;</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item alignment="Qt::AlignHCenter"> + <widget class="QGroupBox" name="player6LeftButtonsGroup"> + <property name="title"> + <string>L Button</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <layout class="QVBoxLayout" name="verticalLayout_55"> + <property name="spacing"> + <number>3</number> + </property> + <property name="leftMargin"> + <number>3</number> + </property> + <property name="topMargin"> + <number>3</number> + </property> + <property name="rightMargin"> + <number>3</number> + </property> + <property name="bottomMargin"> + <number>3</number> + </property> + <item> + <widget class="QPushButton" name="player6_left_buttons_button"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>57</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>55</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">min-width: 55px;</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + </item> + </layout> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QWidget" name="player6RightJoycon" native="true"> + <layout class="QVBoxLayout" name="buttonMiscButtonsRightJoyconVerticalLayout_11"> + <property name="spacing"> + <number>0</number> + </property> + <property name="leftMargin"> + <number>0</number> + </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> + <item alignment="Qt::AlignHCenter"> + <widget class="QGroupBox" name="player6RightBodyGroup"> + <property name="title"> + <string>R Body</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <layout class="QVBoxLayout" name="verticalLayout_52"> + <property name="spacing"> + <number>3</number> + </property> + <property name="leftMargin"> + <number>3</number> + </property> + <property name="topMargin"> + <number>3</number> + </property> + <property name="rightMargin"> + <number>3</number> + </property> + <property name="bottomMargin"> + <number>3</number> + </property> + <item> + <widget class="QPushButton" name="player6_right_body_button"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>57</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>55</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">min-width: 55px;</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item alignment="Qt::AlignHCenter"> + <widget class="QGroupBox" name="player6RightButtonsGroup"> + <property name="title"> + <string>R Button</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <layout class="QVBoxLayout" name="verticalLayout_53"> + <property name="spacing"> + <number>3</number> + </property> + <property name="leftMargin"> + <number>3</number> + </property> + <property name="topMargin"> + <number>3</number> + </property> + <property name="rightMargin"> + <number>3</number> + </property> + <property name="bottomMargin"> + <number>3</number> + </property> + <item> + <widget class="QPushButton" name="player6_right_buttons_button"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>57</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>55</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">min-width: 55px;</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + </item> + </layout> + </widget> + </item> + </layout> + </widget> + </item> + </layout> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QWidget" name="player78Widget" native="true"> + <layout class="QHBoxLayout" name="horizontalLayout_7"> + <property name="leftMargin"> + <number>0</number> + </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> + <item> + <widget class="QGroupBox" name="player7Group"> + <property name="title"> + <string>Player 7</string> + </property> + <layout class="QHBoxLayout" name="horizontalLayout_12"> + <property name="spacing"> + <number>6</number> + </property> + <property name="leftMargin"> + <number>6</number> + </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>6</number> + </property> + <property name="bottomMargin"> + <number>6</number> + </property> + <item> + <widget class="QWidget" name="player7LeftJoycon" native="true"> + <layout class="QVBoxLayout" name="buttonMiscButtonsLeftJoyconVerticalLayout_12"> + <property name="spacing"> + <number>0</number> + </property> + <property name="leftMargin"> + <number>0</number> + </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> + <item alignment="Qt::AlignHCenter"> + <widget class="QGroupBox" name="player7LeftBodyGroup"> + <property name="title"> + <string>L Body</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <layout class="QVBoxLayout" name="verticalLayout_58"> + <property name="spacing"> + <number>3</number> + </property> + <property name="leftMargin"> + <number>3</number> + </property> + <property name="topMargin"> + <number>3</number> + </property> + <property name="rightMargin"> + <number>3</number> + </property> + <property name="bottomMargin"> + <number>3</number> + </property> + <item> + <widget class="QPushButton" name="player7_left_body_button"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>57</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>55</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">min-width: 55px;</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item alignment="Qt::AlignHCenter"> + <widget class="QGroupBox" name="player7LeftButtonsGroup"> + <property name="title"> + <string>L Button</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <layout class="QVBoxLayout" name="verticalLayout_59"> + <property name="spacing"> + <number>3</number> + </property> + <property name="leftMargin"> + <number>3</number> + </property> + <property name="topMargin"> + <number>3</number> + </property> + <property name="rightMargin"> + <number>3</number> + </property> + <property name="bottomMargin"> + <number>3</number> + </property> + <item> + <widget class="QPushButton" name="player7_left_buttons_button"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>57</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>55</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">min-width: 55px;</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + </item> + </layout> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QWidget" name="player7RightJoycon" native="true"> + <layout class="QVBoxLayout" name="buttonMiscButtonsRightJoyconVerticalLayout_12"> + <property name="spacing"> + <number>0</number> + </property> + <property name="leftMargin"> + <number>0</number> + </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> + <item alignment="Qt::AlignHCenter"> + <widget class="QGroupBox" name="player7RightBodyGroup"> + <property name="title"> + <string>R Body</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <layout class="QVBoxLayout" name="verticalLayout_56"> + <property name="spacing"> + <number>3</number> + </property> + <property name="leftMargin"> + <number>3</number> + </property> + <property name="topMargin"> + <number>3</number> + </property> + <property name="rightMargin"> + <number>3</number> + </property> + <property name="bottomMargin"> + <number>3</number> + </property> + <item> + <widget class="QPushButton" name="player7_right_body_button"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>57</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>55</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">min-width: 55px;</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item alignment="Qt::AlignHCenter"> + <widget class="QGroupBox" name="player7RightButtonsGroup"> + <property name="title"> + <string>R Button</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <layout class="QVBoxLayout" name="verticalLayout_57"> + <property name="spacing"> + <number>3</number> + </property> + <property name="leftMargin"> + <number>3</number> + </property> + <property name="topMargin"> + <number>3</number> + </property> + <property name="rightMargin"> + <number>3</number> + </property> + <property name="bottomMargin"> + <number>3</number> + </property> + <item> + <widget class="QPushButton" name="player7_right_buttons_button"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>57</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>55</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">min-width: 55px;</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + </item> + </layout> + </widget> + </item> + </layout> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QGroupBox" name="player8Group"> + <property name="title"> + <string>Player 8</string> + </property> + <layout class="QHBoxLayout" name="horizontalLayout_13"> + <property name="spacing"> + <number>6</number> + </property> + <property name="leftMargin"> + <number>6</number> + </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>6</number> + </property> + <property name="bottomMargin"> + <number>6</number> + </property> + <item> + <widget class="QWidget" name="player8LeftJoycon" native="true"> + <layout class="QVBoxLayout" name="buttonMiscButtonsLeftJoyconVerticalLayout_13"> + <property name="spacing"> + <number>0</number> + </property> + <property name="leftMargin"> + <number>0</number> + </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> + <item alignment="Qt::AlignHCenter"> + <widget class="QGroupBox" name="player8LeftBodyGroup"> + <property name="title"> + <string>L Body</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <layout class="QVBoxLayout" name="verticalLayout_62"> + <property name="spacing"> + <number>3</number> + </property> + <property name="leftMargin"> + <number>3</number> + </property> + <property name="topMargin"> + <number>3</number> + </property> + <property name="rightMargin"> + <number>3</number> + </property> + <property name="bottomMargin"> + <number>3</number> + </property> + <item> + <widget class="QPushButton" name="player8_left_body_button"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>57</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>55</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">min-width: 55px;</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item alignment="Qt::AlignHCenter"> + <widget class="QGroupBox" name="player8LeftButtonsGroup"> + <property name="title"> + <string>L Button</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <layout class="QVBoxLayout" name="verticalLayout_63"> + <property name="spacing"> + <number>3</number> + </property> + <property name="leftMargin"> + <number>3</number> + </property> + <property name="topMargin"> + <number>3</number> + </property> + <property name="rightMargin"> + <number>3</number> + </property> + <property name="bottomMargin"> + <number>3</number> + </property> + <item> + <widget class="QPushButton" name="player8_left_buttons_button"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>57</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>55</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">min-width: 55px;</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + </item> + </layout> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QWidget" name="player8RightJoycon" native="true"> + <layout class="QVBoxLayout" name="buttonMiscButtonsRightJoyconVerticalLayout_13"> + <property name="spacing"> + <number>0</number> + </property> + <property name="leftMargin"> + <number>0</number> + </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> + <item alignment="Qt::AlignHCenter"> + <widget class="QGroupBox" name="player8RightBodyGroup"> + <property name="title"> + <string>R Body</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <layout class="QVBoxLayout" name="verticalLayout_60"> + <property name="spacing"> + <number>3</number> + </property> + <property name="leftMargin"> + <number>3</number> + </property> + <property name="topMargin"> + <number>3</number> + </property> + <property name="rightMargin"> + <number>3</number> + </property> + <property name="bottomMargin"> + <number>3</number> + </property> + <item> + <widget class="QPushButton" name="player8_right_body_button"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>57</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>55</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">min-width: 55px;</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item alignment="Qt::AlignHCenter"> + <widget class="QGroupBox" name="player8RightButtonsGroup"> + <property name="title"> + <string>R Button</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <layout class="QVBoxLayout" name="verticalLayout_61"> + <property name="spacing"> + <number>3</number> + </property> + <property name="leftMargin"> + <number>3</number> + </property> + <property name="topMargin"> + <number>3</number> + </property> + <property name="rightMargin"> + <number>3</number> + </property> + <property name="bottomMargin"> + <number>3</number> + </property> + <item> + <widget class="QPushButton" name="player8_right_buttons_button"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>57</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>55</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">min-width: 55px;</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + </item> + </layout> + </widget> + </item> + </layout> + </widget> + </item> + </layout> + </widget> + </item> + </layout> + </widget> + </item> + </layout> + </widget> + </item> + </layout> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QWidget" name="rightInputAdvanced" native="true"> + <layout class="QVBoxLayout" name="rightLayout" stretch="1,1"> + <property name="spacing"> + <number>3</number> + </property> + <property name="leftMargin"> + <number>0</number> + </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> + <item> + <widget class="QWidget" name="topRightInputAdvanced" native="true"> + <layout class="QVBoxLayout" name="verticalLayout"> + <property name="leftMargin"> + <number>0</number> + </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> + <item> + <widget class="QGroupBox" name="gridGroupBox_3"> + <property name="title"> + <string>Other</string> + </property> + <layout class="QGridLayout" name="gridLayout_3"> + <item row="0" column="0"> + <widget class="QCheckBox" name="keyboard_enabled"> + <property name="minimumSize"> + <size> + <width>0</width> + <height>23</height> + </size> + </property> + <property name="text"> + <string>Keyboard</string> + </property> + </widget> + </item> + <item row="4" column="2"> + <widget class="QPushButton" name="touchscreen_advanced"> + <property name="text"> + <string>Advanced</string> + </property> + </widget> + </item> + <item row="1" column="1"> + <spacer name="horizontalSpacer_8"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType"> + <enum>QSizePolicy::Fixed</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>76</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item row="1" column="2"> + <widget class="QPushButton" name="mouse_advanced"> + <property name="text"> + <string>Advanced</string> + </property> + </widget> + </item> + <item row="4" column="0"> + <widget class="QCheckBox" name="touchscreen_enabled"> + <property name="text"> + <string>Touchscreen</string> + </property> + </widget> + </item> + <item row="1" column="0"> + <widget class="QCheckBox" name="mouse_enabled"> + <property name="minimumSize"> + <size> + <width>0</width> + <height>23</height> + </size> + </property> + <property name="text"> + <string>Mouse</string> + </property> + </widget> + </item> + <item row="6" column="0"> + <widget class="QLabel" name="motion_touch"> + <property name="text"> + <string>Motion / Touch</string> + </property> + </widget> + </item> + <item row="6" column="2"> + <widget class="QPushButton" name="buttonMotionTouch"> + <property name="text"> + <string>Configure</string> + </property> + </widget> + </item> + <item row="5" column="0"> + <widget class="QCheckBox" name="debug_enabled"> + <property name="text"> + <string>Debug Controller</string> + </property> + </widget> + </item> + <item row="5" column="2"> + <widget class="QPushButton" name="debug_configure"> + <property name="text"> + <string>Configure</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <spacer name="verticalSpacer"> + <property name="orientation"> + <enum>Qt::Vertical</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>40</height> + </size> + </property> + </spacer> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QWidget" name="bottomRightInputAdvanced" native="true"> + <layout class="QVBoxLayout" name="verticalLayout_2"> + <property name="leftMargin"> + <number>0</number> + </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> + <item> + <spacer name="mainVerticalSpacer"> + <property name="orientation"> + <enum>Qt::Vertical</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>40</height> + </size> + </property> + </spacer> + </item> + </layout> + </widget> + </item> + </layout> + </widget> + </item> + </layout> + </widget> + </item> + </layout> + </widget> + <resources> + </resources> + <connections/> +</ui> diff --git a/src/yuzu/configuration/configure_input_player.cpp b/src/yuzu/configuration/configure_input_player.cpp index 597defe8c6..4d79a51f3c 100644 --- a/src/yuzu/configuration/configure_input_player.cpp +++ b/src/yuzu/configuration/configure_input_player.cpp @@ -5,38 +5,86 @@ #include <algorithm> #include <memory> #include <utility> -#include <QColorDialog> #include <QGridLayout> +#include <QInputDialog> #include <QKeyEvent> #include <QMenu> #include <QMessageBox> #include <QTimer> #include "common/assert.h" #include "common/param_package.h" +#include "core/core.h" +#include "core/hle/service/hid/controllers/npad.h" +#include "core/hle/service/hid/hid.h" +#include "core/hle/service/sm/sm.h" #include "input_common/main.h" #include "ui_configure_input_player.h" #include "yuzu/configuration/config.h" #include "yuzu/configuration/configure_input_player.h" +constexpr std::size_t HANDHELD_INDEX = 8; + const std::array<std::string, ConfigureInputPlayer::ANALOG_SUB_BUTTONS_NUM> ConfigureInputPlayer::analog_sub_buttons{{ "up", "down", "left", "right", - "modifier", }}; -static void LayerGridElements(QGridLayout* grid, QWidget* item, QWidget* onTopOf) { - const int index1 = grid->indexOf(item); - const int index2 = grid->indexOf(onTopOf); - int row, column, rowSpan, columnSpan; - grid->getItemPosition(index2, &row, &column, &rowSpan, &columnSpan); - grid->takeAt(index1); - grid->addWidget(item, row, column, rowSpan, columnSpan); +namespace { + +void UpdateController(Settings::ControllerType controller_type, std::size_t npad_index, + bool connected) { + Core::System& system{Core::System::GetInstance()}; + if (!system.IsPoweredOn()) { + return; + } + Service::SM::ServiceManager& sm = system.ServiceManager(); + + auto& npad = + sm.GetService<Service::HID::Hid>("hid") + ->GetAppletResource() + ->GetController<Service::HID::Controller_NPad>(Service::HID::HidController::NPad); + + npad.UpdateControllerAt(npad.MapSettingsTypeToNPad(controller_type), npad_index, connected); +} + +/// Maps the controller type combobox index to Controller Type enum +constexpr Settings::ControllerType GetControllerTypeFromIndex(int index) { + switch (index) { + case 0: + default: + return Settings::ControllerType::ProController; + case 1: + return Settings::ControllerType::DualJoyconDetached; + case 2: + return Settings::ControllerType::LeftJoycon; + case 3: + return Settings::ControllerType::RightJoycon; + case 4: + return Settings::ControllerType::Handheld; + } +} + +/// Maps the Controller Type enum to controller type combobox index +constexpr int GetIndexFromControllerType(Settings::ControllerType type) { + switch (type) { + case Settings::ControllerType::ProController: + default: + return 0; + case Settings::ControllerType::DualJoyconDetached: + return 1; + case Settings::ControllerType::LeftJoycon: + return 2; + case Settings::ControllerType::RightJoycon: + return 3; + case Settings::ControllerType::Handheld: + return 4; + } } -static QString GetKeyName(int key_code) { +QString GetKeyName(int key_code) { switch (key_code) { case Qt::Key_Shift: return QObject::tr("Shift"); @@ -51,9 +99,16 @@ static QString GetKeyName(int key_code) { } } -static void SetAnalogButton(const Common::ParamPackage& input_param, - Common::ParamPackage& analog_param, const std::string& button_name) { - if (analog_param.Get("engine", "") != "analog_from_button") { +void SetAnalogParam(const Common::ParamPackage& input_param, Common::ParamPackage& analog_param, + const std::string& button_name) { + // The poller returned a complete axis, so set all the buttons + if (input_param.Has("axis_x") && input_param.Has("axis_y")) { + analog_param = input_param; + return; + } + // Check if the current configuration has either no engine or an axis binding. + // Clears out the old binding and adds one with analog_from_button. + if (!analog_param.Has("engine") || analog_param.Has("axis_x") || analog_param.Has("axis_y")) { analog_param = { {"engine", "analog_from_button"}, }; @@ -61,7 +116,7 @@ static void SetAnalogButton(const Common::ParamPackage& input_param, analog_param.Set(button_name, input_param.Serialize()); } -static QString ButtonToText(const Common::ParamPackage& param) { +QString ButtonToText(const Common::ParamPackage& param) { if (!param.Has("engine")) { return QObject::tr("[not set]"); } @@ -111,7 +166,7 @@ static QString ButtonToText(const Common::ParamPackage& param) { return QObject::tr("[unknown]"); } -static QString AnalogToText(const Common::ParamPackage& param, const std::string& dir) { +QString AnalogToText(const Common::ParamPackage& param, const std::string& dir) { if (!param.Has("engine")) { return QObject::tr("[not set]"); } @@ -161,22 +216,24 @@ static QString AnalogToText(const Common::ParamPackage& param, const std::string } return QObject::tr("[unknown]"); } +} // namespace -ConfigureInputPlayer::ConfigureInputPlayer(QWidget* parent, std::size_t player_index, bool debug) - : QDialog(parent), ui(std::make_unique<Ui::ConfigureInputPlayer>()), player_index(player_index), +ConfigureInputPlayer::ConfigureInputPlayer(QWidget* parent, std::size_t player_index, + QWidget* bottom_row, bool debug) + : QWidget(parent), ui(std::make_unique<Ui::ConfigureInputPlayer>()), player_index(player_index), debug(debug), timeout_timer(std::make_unique<QTimer>()), - poll_timer(std::make_unique<QTimer>()) { + poll_timer(std::make_unique<QTimer>()), bottom_row(bottom_row) { ui->setupUi(this); + setFocusPolicy(Qt::ClickFocus); button_map = { - ui->buttonA, ui->buttonB, ui->buttonX, ui->buttonY, - ui->buttonLStick, ui->buttonRStick, ui->buttonL, ui->buttonR, - ui->buttonZL, ui->buttonZR, ui->buttonPlus, ui->buttonMinus, - ui->buttonDpadLeft, ui->buttonDpadUp, ui->buttonDpadRight, ui->buttonDpadDown, - ui->buttonLStickLeft, ui->buttonLStickUp, ui->buttonLStickRight, ui->buttonLStickDown, - ui->buttonRStickLeft, ui->buttonRStickUp, ui->buttonRStickRight, ui->buttonRStickDown, - ui->buttonSL, ui->buttonSR, ui->buttonHome, ui->buttonScreenshot, + ui->buttonA, ui->buttonB, ui->buttonX, ui->buttonY, + ui->buttonLStick, ui->buttonRStick, ui->buttonL, ui->buttonR, + ui->buttonZL, ui->buttonZR, ui->buttonPlus, ui->buttonMinus, + ui->buttonDpadLeft, ui->buttonDpadUp, ui->buttonDpadRight, ui->buttonDpadDown, + ui->buttonSL, ui->buttonSR, ui->buttonHome, ui->buttonScreenshot, + ui->buttonLStickMod, ui->buttonRStickMod, }; analog_map_buttons = {{ @@ -185,208 +242,159 @@ ConfigureInputPlayer::ConfigureInputPlayer(QWidget* parent, std::size_t player_i ui->buttonLStickDown, ui->buttonLStickLeft, ui->buttonLStickRight, - ui->buttonLStickMod, }, { ui->buttonRStickUp, ui->buttonRStickDown, ui->buttonRStickLeft, ui->buttonRStickRight, - ui->buttonRStickMod, }, }}; - debug_hidden = { - ui->buttonSL, ui->labelSL, - ui->buttonSR, ui->labelSR, - ui->buttonLStick, ui->labelLStickPressed, - ui->buttonRStick, ui->labelRStickPressed, - ui->buttonHome, ui->labelHome, - ui->buttonScreenshot, ui->labelScreenshot, - }; - - auto layout = Settings::values.players[player_index].type; - if (debug) - layout = Settings::ControllerType::DualJoycon; - - switch (layout) { - case Settings::ControllerType::ProController: - case Settings::ControllerType::DualJoycon: - layout_hidden = { - ui->buttonSL, - ui->labelSL, - ui->buttonSR, - ui->labelSR, - }; - break; - case Settings::ControllerType::LeftJoycon: - layout_hidden = { - ui->right_body_button, - ui->right_buttons_button, - ui->right_body_label, - ui->right_buttons_label, - ui->buttonR, - ui->labelR, - ui->buttonZR, - ui->labelZR, - ui->labelHome, - ui->buttonHome, - ui->buttonPlus, - ui->labelPlus, - ui->RStick, - ui->faceButtons, - }; - break; - case Settings::ControllerType::RightJoycon: - layout_hidden = { - ui->left_body_button, ui->left_buttons_button, - ui->left_body_label, ui->left_buttons_label, - ui->buttonL, ui->labelL, - ui->buttonZL, ui->labelZL, - ui->labelScreenshot, ui->buttonScreenshot, - ui->buttonMinus, ui->labelMinus, - ui->LStick, ui->Dpad, - }; - break; - } - - if (debug || layout == Settings::ControllerType::ProController) { - ui->controller_color->hide(); - } else { - if (layout == Settings::ControllerType::LeftJoycon || - layout == Settings::ControllerType::RightJoycon) { - ui->horizontalSpacer_4->setGeometry({0, 0, 0, 0}); - - LayerGridElements(ui->buttons, ui->shoulderButtons, ui->Dpad); - LayerGridElements(ui->buttons, ui->misc, ui->RStick); - LayerGridElements(ui->buttons, ui->Dpad, ui->faceButtons); - LayerGridElements(ui->buttons, ui->RStick, ui->LStick); - } - } - - for (auto* widget : layout_hidden) - widget->setVisible(false); - - analog_map_stick = {ui->buttonLStickAnalog, ui->buttonRStickAnalog}; - analog_map_deadzone_and_modifier_slider = {ui->sliderLStickDeadzoneAndModifier, - ui->sliderRStickDeadzoneAndModifier}; - analog_map_deadzone_and_modifier_slider_label = {ui->labelLStickDeadzoneAndModifier, - ui->labelRStickDeadzoneAndModifier}; - - for (int button_id = 0; button_id < Settings::NativeButton::NumButtons; button_id++) { - auto* const button = button_map[button_id]; - if (button == nullptr) { - continue; - } - - button->setContextMenuPolicy(Qt::CustomContextMenu); + analog_map_deadzone_label = {ui->labelLStickDeadzone, ui->labelRStickDeadzone}; + analog_map_deadzone_slider = {ui->sliderLStickDeadzone, ui->sliderRStickDeadzone}; + analog_map_modifier_groupbox = {ui->buttonLStickModGroup, ui->buttonRStickModGroup}; + analog_map_modifier_button = {ui->buttonLStickMod, ui->buttonRStickMod}; + analog_map_modifier_label = {ui->labelLStickModifierRange, ui->labelRStickModifierRange}; + analog_map_modifier_slider = {ui->sliderLStickModifierRange, ui->sliderRStickModifierRange}; + analog_map_range_groupbox = {ui->buttonLStickRangeGroup, ui->buttonRStickRangeGroup}; + analog_map_range_spinbox = {ui->spinboxLStickRange, ui->spinboxRStickRange}; + + const auto ConfigureButtonClick = [&](QPushButton* button, Common::ParamPackage* param, + int default_val) { connect(button, &QPushButton::clicked, [=, this] { HandleClick( - button_map[button_id], + button, [=, this](Common::ParamPackage params) { - // Workaround for ZL & ZR for analog triggers like on XBOX controllors. - // Analog triggers (from controllers like the XBOX controller) would not - // work due to a different range of their signals (from 0 to 255 on - // analog triggers instead of -32768 to 32768 on analog joysticks). The - // SDL driver misinterprets analog triggers as analog joysticks. + // Workaround for ZL & ZR for analog triggers like on XBOX + // controllers. Analog triggers (from controllers like the XBOX + // controller) would not work due to a different range of their + // signals (from 0 to 255 on analog triggers instead of -32768 to + // 32768 on analog joysticks). The SDL driver misinterprets analog + // triggers as analog joysticks. // TODO: reinterpret the signal range for analog triggers to map the - // values correctly. This is required for the correct emulation of the - // analog triggers of the GameCube controller. - if (button_id == Settings::NativeButton::ZL || - button_id == Settings::NativeButton::ZR) { + // values correctly. This is required for the correct emulation of + // the analog triggers of the GameCube controller. + if (button == ui->buttonZL || button == ui->buttonZR) { params.Set("direction", "+"); params.Set("threshold", "0.5"); } - buttons_param[button_id] = std::move(params); + (*param) = std::move(params); }, InputCommon::Polling::DeviceType::Button); }); - connect(button, &QPushButton::customContextMenuRequested, - [=, this](const QPoint& menu_location) { - QMenu context_menu; - context_menu.addAction(tr("Clear"), [&] { - buttons_param[button_id].Clear(); - button_map[button_id]->setText(tr("[not set]")); - }); - context_menu.addAction(tr("Restore Default"), [&] { - buttons_param[button_id] = Common::ParamPackage{ - InputCommon::GenerateKeyboardParam(Config::default_buttons[button_id])}; - button_map[button_id]->setText(ButtonToText(buttons_param[button_id])); - }); - context_menu.exec(button_map[button_id]->mapToGlobal(menu_location)); - }); + }; + + for (int button_id = 0; button_id < Settings::NativeButton::NumButtons; ++button_id) { + auto* const button = button_map[button_id]; + if (button == nullptr) { + continue; + } + ConfigureButtonClick(button_map[button_id], &buttons_param[button_id], + Config::default_buttons[button_id]); } - for (int analog_id = 0; analog_id < Settings::NativeAnalog::NumAnalogs; analog_id++) { - for (int sub_button_id = 0; sub_button_id < ANALOG_SUB_BUTTONS_NUM; sub_button_id++) { + // Handle clicks for the modifier buttons as well. + ConfigureButtonClick(ui->buttonLStickMod, &lstick_mod, Config::default_lstick_mod); + ConfigureButtonClick(ui->buttonRStickMod, &rstick_mod, Config::default_rstick_mod); + + for (int analog_id = 0; analog_id < Settings::NativeAnalog::NumAnalogs; ++analog_id) { + for (int sub_button_id = 0; sub_button_id < ANALOG_SUB_BUTTONS_NUM; ++sub_button_id) { auto* const analog_button = analog_map_buttons[analog_id][sub_button_id]; + if (analog_button == nullptr) { continue; } - analog_button->setContextMenuPolicy(Qt::CustomContextMenu); connect(analog_button, &QPushButton::clicked, [=, this] { HandleClick( analog_map_buttons[analog_id][sub_button_id], [=, this](const Common::ParamPackage& params) { - SetAnalogButton(params, analogs_param[analog_id], - analog_sub_buttons[sub_button_id]); + SetAnalogParam(params, analogs_param[analog_id], + analog_sub_buttons[sub_button_id]); }, - InputCommon::Polling::DeviceType::Button); + InputCommon::Polling::DeviceType::AnalogPreferred); }); - connect(analog_button, &QPushButton::customContextMenuRequested, - [=, this](const QPoint& menu_location) { - QMenu context_menu; - context_menu.addAction(tr("Clear"), [&] { - analogs_param[analog_id].Erase(analog_sub_buttons[sub_button_id]); - analog_map_buttons[analog_id][sub_button_id]->setText(tr("[not set]")); - }); - context_menu.addAction(tr("Restore Default"), [&] { - Common::ParamPackage params{InputCommon::GenerateKeyboardParam( - Config::default_analogs[analog_id][sub_button_id])}; - SetAnalogButton(params, analogs_param[analog_id], - analog_sub_buttons[sub_button_id]); - analog_map_buttons[analog_id][sub_button_id]->setText(AnalogToText( - analogs_param[analog_id], analog_sub_buttons[sub_button_id])); - }); - context_menu.exec(analog_map_buttons[analog_id][sub_button_id]->mapToGlobal( - menu_location)); - }); } - connect(analog_map_stick[analog_id], &QPushButton::clicked, [=, this] { - if (QMessageBox::information( - this, tr("Information"), - tr("After pressing OK, first move your joystick horizontally, " - "and then vertically."), - QMessageBox::Ok | QMessageBox::Cancel) == QMessageBox::Ok) { - HandleClick( - analog_map_stick[analog_id], - [=, this](const Common::ParamPackage& params) { - analogs_param[analog_id] = params; - }, - InputCommon::Polling::DeviceType::Analog); - } + + connect(analog_map_modifier_button[analog_id], &QPushButton::clicked, [=, this] { + HandleClick( + analog_map_modifier_button[analog_id], + [=, this](const Common::ParamPackage& params) { + SetAnalogParam(params, analogs_param[analog_id], "modifier"); + }, + InputCommon::Polling::DeviceType::AnalogPreferred); }); - connect(analog_map_deadzone_and_modifier_slider[analog_id], &QSlider::valueChanged, + connect(analog_map_range_spinbox[analog_id], qOverload<int>(&QSpinBox::valueChanged), [=, this] { - const float slider_value = - analog_map_deadzone_and_modifier_slider[analog_id]->value(); - if (analogs_param[analog_id].Get("engine", "") == "sdl" || - analogs_param[analog_id].Get("engine", "") == "gcpad") { - analog_map_deadzone_and_modifier_slider_label[analog_id]->setText( - tr("Deadzone: %1%").arg(slider_value)); - analogs_param[analog_id].Set("deadzone", slider_value / 100.0f); - } else { - analog_map_deadzone_and_modifier_slider_label[analog_id]->setText( - tr("Modifier Scale: %1%").arg(slider_value)); - analogs_param[analog_id].Set("modifier_scale", slider_value / 100.0f); - } + const auto spinbox_value = analog_map_range_spinbox[analog_id]->value(); + analogs_param[analog_id].Set("range", spinbox_value / 100.0f); }); + + connect(analog_map_deadzone_slider[analog_id], &QSlider::valueChanged, [=, this] { + const auto slider_value = analog_map_deadzone_slider[analog_id]->value(); + analog_map_deadzone_label[analog_id]->setText(tr("Deadzone: %1%").arg(slider_value)); + analogs_param[analog_id].Set("deadzone", slider_value / 100.0f); + }); + + connect(analog_map_modifier_slider[analog_id], &QSlider::valueChanged, [=, this] { + const auto slider_value = analog_map_modifier_slider[analog_id]->value(); + analog_map_modifier_label[analog_id]->setText( + tr("Modifier Range: %1%").arg(slider_value)); + analogs_param[analog_id].Set("modifier_scale", slider_value / 100.0f); + }); } - connect(ui->buttonClearAll, &QPushButton::clicked, [this] { ClearAll(); }); - connect(ui->buttonRestoreDefaults, &QPushButton::clicked, [this] { RestoreDefaults(); }); + // Player Connected checkbox + connect(ui->groupConnectedController, &QGroupBox::toggled, + [&](bool checked) { emit Connected(checked); }); + + // Set up controller type. Only Player 1 can choose Handheld. + ui->comboControllerType->clear(); + + QStringList controller_types = { + QStringLiteral("Pro Controller"), + QStringLiteral("Dual Joycons"), + QStringLiteral("Left Joycon"), + QStringLiteral("Right Joycon"), + }; + + if (player_index == 0) { + controller_types.append(QStringLiteral("Handheld")); + connect(ui->comboControllerType, qOverload<int>(&QComboBox::currentIndexChanged), + [&](int index) { + emit HandheldStateChanged(GetControllerTypeFromIndex(index) == + Settings::ControllerType::Handheld); + }); + } + + // The Debug Controller can only choose the Pro Controller. + if (debug) { + ui->buttonScreenshot->setEnabled(false); + ui->buttonHome->setEnabled(false); + ui->groupConnectedController->setCheckable(false); + QStringList debug_controller_types = { + QStringLiteral("Pro Controller"), + }; + ui->comboControllerType->addItems(debug_controller_types); + } else { + ui->comboControllerType->addItems(controller_types); + } + + UpdateControllerIcon(); + UpdateControllerAvailableButtons(); + connect(ui->comboControllerType, qOverload<int>(&QComboBox::currentIndexChanged), [&](int) { + UpdateControllerIcon(); + UpdateControllerAvailableButtons(); + }); + + connect(ui->comboDevices, qOverload<int>(&QComboBox::currentIndexChanged), + [&] { UpdateMappingWithDefaults(); }); + + ui->buttonRefreshDevices->setIcon(QIcon::fromTheme(QStringLiteral("view-refresh"))); + UpdateInputDevices(); + connect(ui->buttonRefreshDevices, &QPushButton::clicked, [&] { emit RefreshInputDevices(); }); timeout_timer->setSingleShot(true); connect(timeout_timer.get(), &QTimer::timeout, [this] { SetPollingResult({}, true); }); @@ -416,20 +424,7 @@ ConfigureInputPlayer::ConfigureInputPlayer(QWidget* parent, std::size_t player_i } }); - controller_color_buttons = { - ui->left_body_button, - ui->left_buttons_button, - ui->right_body_button, - ui->right_buttons_button, - }; - - for (std::size_t i = 0; i < controller_color_buttons.size(); ++i) { - connect(controller_color_buttons[i], &QPushButton::clicked, this, - [this, i] { OnControllerButtonClick(static_cast<int>(i)); }); - } - LoadConfiguration(); - resize(0, 0); // TODO(wwylele): enable this when we actually emulate it ui->buttonHome->setEnabled(false); @@ -438,27 +433,43 @@ ConfigureInputPlayer::ConfigureInputPlayer(QWidget* parent, std::size_t player_i ConfigureInputPlayer::~ConfigureInputPlayer() = default; void ConfigureInputPlayer::ApplyConfiguration() { - auto& buttons = - debug ? Settings::values.debug_pad_buttons : Settings::values.players[player_index].buttons; - auto& analogs = - debug ? Settings::values.debug_pad_analogs : Settings::values.players[player_index].analogs; + auto& player = Settings::values.players[player_index]; + auto& buttons = debug ? Settings::values.debug_pad_buttons : player.buttons; + auto& analogs = debug ? Settings::values.debug_pad_analogs : player.analogs; std::transform(buttons_param.begin(), buttons_param.end(), buttons.begin(), [](const Common::ParamPackage& param) { return param.Serialize(); }); std::transform(analogs_param.begin(), analogs_param.end(), analogs.begin(), [](const Common::ParamPackage& param) { return param.Serialize(); }); - if (debug) + if (debug) { return; + } - std::array<u32, 4> colors{}; - std::transform(controller_colors.begin(), controller_colors.end(), colors.begin(), - [](QColor color) { return color.rgb(); }); + player.controller_type = + static_cast<Settings::ControllerType>(ui->comboControllerType->currentIndex()); + player.connected = ui->groupConnectedController->isChecked(); - Settings::values.players[player_index].body_color_left = colors[0]; - Settings::values.players[player_index].button_color_left = colors[1]; - Settings::values.players[player_index].body_color_right = colors[2]; - Settings::values.players[player_index].button_color_right = colors[3]; + // Player 2-8 + if (player_index != 0) { + UpdateController(player.controller_type, player_index, player.connected); + return; + } + + // Player 1 and Handheld + auto& handheld = Settings::values.players[HANDHELD_INDEX]; + // If Handheld is selected, copy all the settings from Player 1 to Handheld. + if (player.controller_type == Settings::ControllerType::Handheld) { + handheld = player; + handheld.connected = ui->groupConnectedController->isChecked(); + player.connected = false; // Disconnect Player 1 + } else { + player.connected = ui->groupConnectedController->isChecked(); + handheld.connected = false; // Disconnect Handheld + } + + UpdateController(player.controller_type, player_index, player.connected); + UpdateController(Settings::ControllerType::Handheld, HANDHELD_INDEX, handheld.connected); } void ConfigureInputPlayer::changeEvent(QEvent* event) { @@ -466,24 +477,16 @@ void ConfigureInputPlayer::changeEvent(QEvent* event) { RetranslateUI(); } - QDialog::changeEvent(event); + QWidget::changeEvent(event); } void ConfigureInputPlayer::RetranslateUI() { ui->retranslateUi(this); - UpdateButtonLabels(); -} - -void ConfigureInputPlayer::OnControllerButtonClick(int i) { - const QColor new_bg_color = QColorDialog::getColor(controller_colors[i]); - if (!new_bg_color.isValid()) - return; - controller_colors[i] = new_bg_color; - controller_color_buttons[i]->setStyleSheet( - QStringLiteral("QPushButton { background-color: %1 }").arg(controller_colors[i].name())); + UpdateUI(); } void ConfigureInputPlayer::LoadConfiguration() { + auto& player = Settings::values.players[player_index]; if (debug) { std::transform(Settings::values.debug_pad_buttons.begin(), Settings::values.debug_pad_buttons.end(), buttons_param.begin(), @@ -492,56 +495,53 @@ void ConfigureInputPlayer::LoadConfiguration() { Settings::values.debug_pad_analogs.end(), analogs_param.begin(), [](const std::string& str) { return Common::ParamPackage(str); }); } else { - std::transform(Settings::values.players[player_index].buttons.begin(), - Settings::values.players[player_index].buttons.end(), buttons_param.begin(), + std::transform(player.buttons.begin(), player.buttons.end(), buttons_param.begin(), [](const std::string& str) { return Common::ParamPackage(str); }); - std::transform(Settings::values.players[player_index].analogs.begin(), - Settings::values.players[player_index].analogs.end(), analogs_param.begin(), + std::transform(player.analogs.begin(), player.analogs.end(), analogs_param.begin(), [](const std::string& str) { return Common::ParamPackage(str); }); } - UpdateButtonLabels(); + UpdateUI(); - if (debug) + if (debug) { return; + } - std::array<u32, 4> colors = { - Settings::values.players[player_index].body_color_left, - Settings::values.players[player_index].button_color_left, - Settings::values.players[player_index].body_color_right, - Settings::values.players[player_index].button_color_right, - }; - - std::transform(colors.begin(), colors.end(), controller_colors.begin(), - [](u32 rgb) { return QColor::fromRgb(rgb); }); + ui->comboControllerType->setCurrentIndex(static_cast<int>(player.controller_type)); + ui->groupConnectedController->setChecked( + player.connected || + (player_index == 0 && Settings::values.players[HANDHELD_INDEX].connected)); +} - for (std::size_t i = 0; i < colors.size(); ++i) { - controller_color_buttons[i]->setStyleSheet( - QStringLiteral("QPushButton { background-color: %1 }") - .arg(controller_colors[i].name())); +void ConfigureInputPlayer::UpdateInputDevices() { + input_devices = InputCommon::GetInputDevices(); + ui->comboDevices->clear(); + for (auto device : input_devices) { + ui->comboDevices->addItem(QString::fromStdString(device.Get("display", "Unknown")), {}); } } void ConfigureInputPlayer::RestoreDefaults() { - for (int button_id = 0; button_id < Settings::NativeButton::NumButtons; button_id++) { + // Reset Buttons + for (int button_id = 0; button_id < Settings::NativeButton::NumButtons; ++button_id) { buttons_param[button_id] = Common::ParamPackage{ InputCommon::GenerateKeyboardParam(Config::default_buttons[button_id])}; } - - for (int analog_id = 0; analog_id < Settings::NativeAnalog::NumAnalogs; analog_id++) { - for (int sub_button_id = 0; sub_button_id < ANALOG_SUB_BUTTONS_NUM; sub_button_id++) { + // Reset Analogs + for (int analog_id = 0; analog_id < Settings::NativeAnalog::NumAnalogs; ++analog_id) { + for (int sub_button_id = 0; sub_button_id < ANALOG_SUB_BUTTONS_NUM; ++sub_button_id) { Common::ParamPackage params{InputCommon::GenerateKeyboardParam( Config::default_analogs[analog_id][sub_button_id])}; - SetAnalogButton(params, analogs_param[analog_id], analog_sub_buttons[sub_button_id]); + SetAnalogParam(params, analogs_param[analog_id], analog_sub_buttons[sub_button_id]); } } - - UpdateButtonLabels(); - ApplyConfiguration(); + UpdateUI(); + UpdateInputDevices(); + ui->comboControllerType->setCurrentIndex(0); } void ConfigureInputPlayer::ClearAll() { - for (int button_id = 0; button_id < Settings::NativeButton::NumButtons; button_id++) { + for (int button_id = 0; button_id < Settings::NativeButton::NumButtons; ++button_id) { const auto* const button = button_map[button_id]; if (button == nullptr || !button->isEnabled()) { continue; @@ -550,8 +550,8 @@ void ConfigureInputPlayer::ClearAll() { buttons_param[button_id].Clear(); } - for (int analog_id = 0; analog_id < Settings::NativeAnalog::NumAnalogs; analog_id++) { - for (int sub_button_id = 0; sub_button_id < ANALOG_SUB_BUTTONS_NUM; sub_button_id++) { + for (int analog_id = 0; analog_id < Settings::NativeAnalog::NumAnalogs; ++analog_id) { + for (int sub_button_id = 0; sub_button_id < ANALOG_SUB_BUTTONS_NUM; ++sub_button_id) { const auto* const analog_button = analog_map_buttons[analog_id][sub_button_id]; if (analog_button == nullptr || !analog_button->isEnabled()) { continue; @@ -561,17 +561,17 @@ void ConfigureInputPlayer::ClearAll() { } } - UpdateButtonLabels(); - ApplyConfiguration(); + UpdateUI(); + UpdateInputDevices(); } -void ConfigureInputPlayer::UpdateButtonLabels() { - for (int button = 0; button < Settings::NativeButton::NumButtons; button++) { +void ConfigureInputPlayer::UpdateUI() { + for (int button = 0; button < Settings::NativeButton::NumButtons; ++button) { button_map[button]->setText(ButtonToText(buttons_param[button])); } - for (int analog_id = 0; analog_id < Settings::NativeAnalog::NumAnalogs; analog_id++) { - for (int sub_button_id = 0; sub_button_id < ANALOG_SUB_BUTTONS_NUM; sub_button_id++) { + for (int analog_id = 0; analog_id < Settings::NativeAnalog::NumAnalogs; ++analog_id) { + for (int sub_button_id = 0; sub_button_id < ANALOG_SUB_BUTTONS_NUM; ++sub_button_id) { auto* const analog_button = analog_map_buttons[analog_id][sub_button_id]; if (analog_button == nullptr) { @@ -581,52 +581,75 @@ void ConfigureInputPlayer::UpdateButtonLabels() { analog_button->setText( AnalogToText(analogs_param[analog_id], analog_sub_buttons[sub_button_id])); } - analog_map_stick[analog_id]->setText(tr("Set Analog Stick")); + const auto deadzone_label = analog_map_deadzone_label[analog_id]; + const auto deadzone_slider = analog_map_deadzone_slider[analog_id]; + const auto modifier_groupbox = analog_map_modifier_groupbox[analog_id]; + const auto modifier_label = analog_map_modifier_label[analog_id]; + const auto modifier_slider = analog_map_modifier_slider[analog_id]; + const auto range_groupbox = analog_map_range_groupbox[analog_id]; + const auto range_spinbox = analog_map_range_spinbox[analog_id]; + + int slider_value; auto& param = analogs_param[analog_id]; - auto* const analog_stick_slider = analog_map_deadzone_and_modifier_slider[analog_id]; - auto* const analog_stick_slider_label = - analog_map_deadzone_and_modifier_slider_label[analog_id]; - - if (param.Has("engine")) { - if (param.Get("engine", "") == "sdl" || param.Get("engine", "") == "gcpad") { - if (!param.Has("deadzone")) { - param.Set("deadzone", 0.1f); - } - - analog_stick_slider->setValue(static_cast<int>(param.Get("deadzone", 0.1f) * 100)); - if (analog_stick_slider->value() == 0) { - analog_stick_slider_label->setText(tr("Deadzone: 0%")); - } - } else { - if (!param.Has("modifier_scale")) { - param.Set("modifier_scale", 0.5f); - } - - analog_stick_slider->setValue( - static_cast<int>(param.Get("modifier_scale", 0.5f) * 100)); - if (analog_stick_slider->value() == 0) { - analog_stick_slider_label->setText(tr("Modifier Scale: 0%")); - } + const bool is_controller = + param.Get("engine", "") == "sdl" || param.Get("engine", "") == "gcpad"; + + if (is_controller) { + if (!param.Has("deadzone")) { + param.Set("deadzone", 0.1f); } + slider_value = static_cast<int>(param.Get("deadzone", 0.1f) * 100); + deadzone_label->setText(tr("Deadzone: %1%").arg(slider_value)); + deadzone_slider->setValue(slider_value); + if (!param.Has("range")) { + param.Set("range", 1.0f); + } + range_spinbox->setValue(static_cast<int>(param.Get("range", 1.0f) * 100)); + } else { + if (!param.Has("modifier_scale")) { + param.Set("modifier_scale", 0.5f); + } + slider_value = static_cast<int>(param.Get("modifier_scale", 0.5f) * 100); + modifier_label->setText(tr("Modifier Range: %1%").arg(slider_value)); + modifier_slider->setValue(slider_value); } + + deadzone_label->setVisible(is_controller); + deadzone_slider->setVisible(is_controller); + modifier_groupbox->setVisible(!is_controller); + modifier_label->setVisible(!is_controller); + modifier_slider->setVisible(!is_controller); + range_groupbox->setVisible(is_controller); } } +void ConfigureInputPlayer::UpdateMappingWithDefaults() { + if (ui->comboDevices->currentIndex() < 2) { + return; + } + const auto& device = input_devices[ui->comboDevices->currentIndex()]; + auto button_mapping = InputCommon::GetButtonMappingForDevice(device); + auto analog_mapping = InputCommon::GetAnalogMappingForDevice(device); + for (int i = 0; i < buttons_param.size(); ++i) { + buttons_param[i] = button_mapping[static_cast<Settings::NativeButton::Values>(i)]; + } + for (int i = 0; i < analogs_param.size(); ++i) { + analogs_param[i] = analog_mapping[static_cast<Settings::NativeAnalog::Values>(i)]; + } + + UpdateUI(); +} + void ConfigureInputPlayer::HandleClick( QPushButton* button, std::function<void(const Common::ParamPackage&)> new_input_setter, InputCommon::Polling::DeviceType type) { - button->setText(tr("[press key]")); + button->setText(tr("[waiting]")); button->setFocus(); - // Keyboard keys can only be used as button devices - want_keyboard_keys = type == InputCommon::Polling::DeviceType::Button; - if (want_keyboard_keys) { - const auto iter = std::find(button_map.begin(), button_map.end(), button); - ASSERT(iter != button_map.end()); - const auto index = std::distance(button_map.begin(), iter); - ASSERT(index < Settings::NativeButton::NumButtons && index >= 0); - } + // The first two input devices are always Any and Keyboard. If the user filtered to a + // controller, then they don't want keyboard input + want_keyboard_keys = ui->comboDevices->currentIndex() < 2; input_setter = new_input_setter; @@ -636,20 +659,17 @@ void ConfigureInputPlayer::HandleClick( poller->Start(); } - grabKeyboard(); - grabMouse(); if (type == InputCommon::Polling::DeviceType::Button) { InputCommon::GetGCButtons()->BeginConfiguration(); } else { InputCommon::GetGCAnalogs()->BeginConfiguration(); } - timeout_timer->start(5000); // Cancel after 5 seconds - poll_timer->start(200); // Check for new inputs every 200ms + + timeout_timer->start(2500); // Cancel after 2.5 seconds + poll_timer->start(50); // Check for new inputs every 50ms } void ConfigureInputPlayer::SetPollingResult(const Common::ParamPackage& params, bool abort) { - releaseKeyboard(); - releaseMouse(); timeout_timer->stop(); poll_timer->stop(); for (auto& poller : device_pollers) { @@ -663,7 +683,7 @@ void ConfigureInputPlayer::SetPollingResult(const Common::ParamPackage& params, (*input_setter)(params); } - UpdateButtonLabels(); + UpdateUI(); input_setter = std::nullopt; } @@ -683,3 +703,114 @@ void ConfigureInputPlayer::keyPressEvent(QKeyEvent* event) { } SetPollingResult({}, true); } + +void ConfigureInputPlayer::UpdateControllerIcon() { + // We aren't using Qt's built in theme support here since we aren't drawing an icon (and its + // "nonstandard" to use an image through the icon support) + QString stylesheet{}; + switch (GetControllerTypeFromIndex(ui->comboControllerType->currentIndex())) { + case Settings::ControllerType::ProController: + stylesheet = QStringLiteral("image: url(:/controller/pro_controller%0)"); + break; + case Settings::ControllerType::DualJoyconDetached: + stylesheet = QStringLiteral("image: url(:/controller/dual_joycon%0)"); + break; + case Settings::ControllerType::LeftJoycon: + stylesheet = QStringLiteral("image: url(:/controller/single_joycon_left_vertical%0)"); + break; + case Settings::ControllerType::RightJoycon: + stylesheet = QStringLiteral("image: url(:/controller/single_joycon_right_vertical%0)"); + break; + case Settings::ControllerType::Handheld: + stylesheet = QStringLiteral("image: url(:/controller/handheld%0)"); + break; + default: + break; + } + + const QString theme = [this] { + if (QIcon::themeName().contains(QStringLiteral("dark"))) { + return QStringLiteral("_dark"); + } else if (QIcon::themeName().contains(QStringLiteral("midnight"))) { + return QStringLiteral("_midnight"); + } else { + return QString{}; + } + }(); + + ui->controllerFrame->setStyleSheet(stylesheet.arg(theme)); +} + +void ConfigureInputPlayer::UpdateControllerAvailableButtons() { + auto layout = GetControllerTypeFromIndex(ui->comboControllerType->currentIndex()); + if (debug) { + layout = Settings::ControllerType::DualJoyconDetached; + } + + // List of all the widgets that will be hidden by any of the following layouts that need + // "unhidden" after the controller type changes + const std::vector<QWidget*> layout_show = { + ui->buttonShoulderButtonsSLSR, + ui->horizontalSpacerShoulderButtonsWidget, + ui->horizontalSpacerShoulderButtonsWidget2, + ui->buttonShoulderButtonsLeft, + ui->buttonMiscButtonsMinusScreenshot, + ui->bottomLeft, + ui->buttonShoulderButtonsRight, + ui->buttonMiscButtonsPlusHome, + ui->bottomRight, + }; + + for (auto* widget : layout_show) { + widget->show(); + } + + std::vector<QWidget*> layout_hidden; + switch (layout) { + case Settings::ControllerType::ProController: + layout_hidden = { + ui->buttonShoulderButtonsSLSR, + ui->horizontalSpacerShoulderButtonsWidget2, + }; + break; + case Settings::ControllerType::DualJoyconDetached: + case Settings::ControllerType::Handheld: + layout_hidden = { + ui->buttonShoulderButtonsSLSR, + ui->horizontalSpacerShoulderButtonsWidget2, + }; + break; + case Settings::ControllerType::LeftJoycon: + layout_hidden = { + ui->horizontalSpacerShoulderButtonsWidget2, + ui->buttonShoulderButtonsRight, + ui->buttonMiscButtonsPlusHome, + ui->bottomRight, + }; + break; + case Settings::ControllerType::RightJoycon: + layout_hidden = { + ui->horizontalSpacerShoulderButtonsWidget, + ui->buttonShoulderButtonsLeft, + ui->buttonMiscButtonsMinusScreenshot, + ui->bottomLeft, + }; + break; + } + + for (auto* widget : layout_hidden) { + widget->hide(); + } +} + +void ConfigureInputPlayer::showEvent(QShowEvent* event) { + if (bottom_row == nullptr) { + return; + } + QWidget::showEvent(event); + ui->main->addWidget(bottom_row); +} + +void ConfigureInputPlayer::ConnectPlayer(bool connected) { + ui->groupConnectedController->setChecked(connected); +} diff --git a/src/yuzu/configuration/configure_input_player.h b/src/yuzu/configuration/configure_input_player.h index 95afa53752..a86db82006 100644 --- a/src/yuzu/configuration/configure_input_player.h +++ b/src/yuzu/configuration/configure_input_player.h @@ -15,11 +15,17 @@ #include "common/param_package.h" #include "core/settings.h" #include "ui_configure_input.h" +#include "yuzu/uisettings.h" +class QCheckBox; class QKeyEvent; +class QLabel; class QPushButton; +class QSlider; +class QSpinBox; class QString; class QTimer; +class QWidget; namespace InputCommon::Polling { class DevicePoller; @@ -30,43 +36,73 @@ namespace Ui { class ConfigureInputPlayer; } -class ConfigureInputPlayer : public QDialog { +class ConfigureInputPlayer : public QWidget { Q_OBJECT public: - explicit ConfigureInputPlayer(QWidget* parent, std::size_t player_index, bool debug = false); + explicit ConfigureInputPlayer(QWidget* parent, std::size_t player_index, QWidget* bottom_row, + bool debug = false); ~ConfigureInputPlayer() override; - /// Save all button configurations to settings file + /// Save all button configurations to settings file. void ApplyConfiguration(); + /// Update the input devices combobox. + void UpdateInputDevices(); + + /// Restore all buttons to their default values. + void RestoreDefaults(); + + /// Clear all input configuration. + void ClearAll(); + + /// Set the connection state checkbox (used to sync state). + void ConnectPlayer(bool connected); + +signals: + /// Emitted when this controller is connected by the user. + void Connected(bool connected); + /// Emitted when the Handheld mode is selected (undocked with dual joycons attached). + void HandheldStateChanged(bool is_handheld); + /// Emitted when the input devices combobox is being refreshed. + void RefreshInputDevices(); + +protected: + void showEvent(QShowEvent* event) override; + private: void changeEvent(QEvent* event) override; void RetranslateUI(); - void OnControllerButtonClick(int i); - /// Load configuration settings. void LoadConfiguration(); - /// Restore all buttons to their default values. - void RestoreDefaults(); - /// Clear all input configuration - void ClearAll(); - - /// Update UI to reflect current configuration. - void UpdateButtonLabels(); /// Called when the button was pressed. void HandleClick(QPushButton* button, std::function<void(const Common::ParamPackage&)> new_input_setter, InputCommon::Polling::DeviceType type); - /// Finish polling and configure input using the input_setter + /// Finish polling and configure input using the input_setter. void SetPollingResult(const Common::ParamPackage& params, bool abort); /// Handle key press events. void keyPressEvent(QKeyEvent* event) override; + /// Update UI to reflect current configuration. + void UpdateUI(); + + /// Update the controller selection combobox + void UpdateControllerCombobox(); + + /// Update the current controller icon. + void UpdateControllerIcon(); + + /// Hides and disables controller settings based on the current controller type. + void UpdateControllerAvailableButtons(); + + /// Gets the default controller mapping for this device and auto configures the input to match. + void UpdateMappingWithDefaults(); + std::unique_ptr<Ui::ConfigureInputPlayer> ui; std::size_t player_index; @@ -75,32 +111,38 @@ private: std::unique_ptr<QTimer> timeout_timer; std::unique_ptr<QTimer> poll_timer; + static constexpr int PLAYER_COUNT = 8; + std::array<QCheckBox*, PLAYER_COUNT> player_connected_checkbox; + /// This will be the the setting function when an input is awaiting configuration. std::optional<std::function<void(const Common::ParamPackage&)>> input_setter; std::array<Common::ParamPackage, Settings::NativeButton::NumButtons> buttons_param; std::array<Common::ParamPackage, Settings::NativeAnalog::NumAnalogs> analogs_param; - static constexpr int ANALOG_SUB_BUTTONS_NUM = 5; + static constexpr int ANALOG_SUB_BUTTONS_NUM = 4; + // Adds room for two extra push buttons LStick Modifier and RStick Modifier. + static constexpr int BUTTON_MAP_COUNT = Settings::NativeButton::NumButtons + 2; /// Each button input is represented by a QPushButton. - std::array<QPushButton*, Settings::NativeButton::NumButtons> button_map; - - std::vector<QWidget*> debug_hidden; - std::vector<QWidget*> layout_hidden; + std::array<QPushButton*, BUTTON_MAP_COUNT> button_map; + /// Extra buttons for the modifiers. + Common::ParamPackage lstick_mod; + Common::ParamPackage rstick_mod; - /// A group of five QPushButtons represent one analog input. The buttons each represent up, - /// down, left, right, and modifier, respectively. + /// A group of four QPushButtons represent one analog input. The buttons each represent up, + /// down, left, right, respectively. std::array<std::array<QPushButton*, ANALOG_SUB_BUTTONS_NUM>, Settings::NativeAnalog::NumAnalogs> analog_map_buttons; - /// Analog inputs are also represented each with a single button, used to configure with an - /// actual analog stick - std::array<QPushButton*, Settings::NativeAnalog::NumAnalogs> analog_map_stick; - std::array<QSlider*, Settings::NativeAnalog::NumAnalogs> - analog_map_deadzone_and_modifier_slider; - std::array<QLabel*, Settings::NativeAnalog::NumAnalogs> - analog_map_deadzone_and_modifier_slider_label; + std::array<QLabel*, Settings::NativeAnalog::NumAnalogs> analog_map_deadzone_label; + std::array<QSlider*, Settings::NativeAnalog::NumAnalogs> analog_map_deadzone_slider; + std::array<QGroupBox*, Settings::NativeAnalog::NumAnalogs> analog_map_modifier_groupbox; + std::array<QPushButton*, Settings::NativeAnalog::NumAnalogs> analog_map_modifier_button; + std::array<QLabel*, Settings::NativeAnalog::NumAnalogs> analog_map_modifier_label; + std::array<QSlider*, Settings::NativeAnalog::NumAnalogs> analog_map_modifier_slider; + std::array<QGroupBox*, Settings::NativeAnalog::NumAnalogs> analog_map_range_groupbox; + std::array<QSpinBox*, Settings::NativeAnalog::NumAnalogs> analog_map_range_spinbox; static const std::array<std::string, ANALOG_SUB_BUTTONS_NUM> analog_sub_buttons; @@ -110,6 +152,12 @@ private: /// keyboard events are ignored. bool want_keyboard_keys = false; - std::array<QPushButton*, 4> controller_color_buttons; - std::array<QColor, 4> controller_colors; + /// List of physical devices users can map with. If a SDL backed device is selected, then you + /// can usue this device to get a default mapping. + std::vector<Common::ParamPackage> input_devices; + + /// Bottom row is where console wide settings are held, and its "owned" by the parent + /// ConfigureInput widget. On show, add this widget to the main layout. This will change the + /// parent of the widget to this widget (but thats fine). + QWidget* bottom_row; }; diff --git a/src/yuzu/configuration/configure_input_player.ui b/src/yuzu/configuration/configure_input_player.ui index f27a77180a..eb826a9359 100644 --- a/src/yuzu/configuration/configure_input_player.ui +++ b/src/yuzu/configuration/configure_input_player.ui @@ -1,1243 +1,2974 @@ <?xml version="1.0" encoding="UTF-8"?> <ui version="4.0"> <class>ConfigureInputPlayer</class> - <widget class="QDialog" name="ConfigureInputPlayer"> + <widget class="QWidget" name="ConfigureInputPlayer"> <property name="geometry"> <rect> <x>0</x> <y>0</y> - <width>408</width> - <height>731</height> + <width>780</width> + <height>487</height> </rect> </property> <property name="windowTitle"> <string>Configure Input</string> </property> - <layout class="QVBoxLayout" name="verticalLayout_5"> + <layout class="QHBoxLayout" name="horizontalLayout_2"> + <property name="spacing"> + <number>0</number> + </property> + <property name="leftMargin"> + <number>0</number> + </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> <item> - <layout class="QGridLayout" name="buttons"> - <item row="1" column="1"> - <widget class="QGroupBox" name="RStick"> - <property name="title"> - <string>Right Stick</string> - </property> - <property name="alignment"> - <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set> - </property> - <property name="flat"> - <bool>false</bool> + <layout class="QVBoxLayout" name="main"> + <property name="spacing"> + <number>0</number> + </property> + <property name="leftMargin"> + <number>0</number> + </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> + <item> + <layout class="QHBoxLayout" name="top" stretch="0,1,2"> + <property name="spacing"> + <number>3</number> </property> - <property name="checkable"> - <bool>false</bool> + <property name="topMargin"> + <number>0</number> </property> - <layout class="QGridLayout" name="gridLayout_5"> - <item row="1" column="1"> - <layout class="QVBoxLayout" name="buttonRStickDownVerticalLayout"> + <item> + <widget class="QGroupBox" name="groupConnectedController"> + <property name="layoutDirection"> + <enum>Qt::LeftToRight</enum> + </property> + <property name="title"> + <string>Connect Controller</string> + </property> + <property name="flat"> + <bool>false</bool> + </property> + <property name="checkable"> + <bool>true</bool> + </property> + <layout class="QHBoxLayout" name="horizontalLayout_3"> + <property name="leftMargin"> + <number>5</number> + </property> + <property name="topMargin"> + <number>5</number> + </property> + <property name="rightMargin"> + <number>5</number> + </property> + <property name="bottomMargin"> + <number>5</number> + </property> <item> - <layout class="QHBoxLayout" name="buttonRStickDownHorizontalLayout"> + <widget class="QComboBox" name="comboControllerType"> <item> - <widget class="QLabel" name="labelRStickDown"> - <property name="text"> - <string>Down:</string> - </property> - </widget> + <property name="text"> + <string>Pro Controller</string> + </property> </item> - </layout> - </item> - <item> - <widget class="QPushButton" name="buttonRStickDown"> - <property name="text"> - <string/> - </property> - </widget> - </item> - </layout> - </item> - <item row="0" column="1"> - <layout class="QVBoxLayout" name="buttonRStickRightVerticalLayout"> - <item> - <layout class="QHBoxLayout" name="buttonRStickRightHorizontalLayout"> <item> - <widget class="QLabel" name="labelRStickRight"> - <property name="text"> - <string>Right:</string> - </property> - </widget> + <property name="text"> + <string>Dual Joycons</string> + </property> </item> - </layout> - </item> - <item> - <widget class="QPushButton" name="buttonRStickRight"> - <property name="text"> - <string/> - </property> - </widget> - </item> - </layout> - </item> - <item row="3" column="0" colspan="2"> - <widget class="QPushButton" name="buttonRStickAnalog"> - <property name="text"> - <string>Set Analog Stick</string> - </property> - </widget> - </item> - <item row="0" column="0"> - <layout class="QVBoxLayout" name="buttonRStickLeftVerticalLayout"> - <item> - <layout class="QHBoxLayout" name="buttonRStickLeftHorizontalLayout"> <item> - <widget class="QLabel" name="labelRStickLeft"> - <property name="text"> - <string>Left:</string> - </property> - </widget> + <property name="text"> + <string>Left Joycon</string> + </property> </item> - </layout> - </item> - <item> - <widget class="QPushButton" name="buttonRStickLeft"> - <property name="text"> - <string/> - </property> - </widget> - </item> - </layout> - </item> - <item row="1" column="0"> - <layout class="QVBoxLayout" name="buttonRStickUpVerticalLayout"> - <item> - <layout class="QHBoxLayout" name="buttonRStickUpHorizontalLayout"> <item> - <widget class="QLabel" name="labelRStickUp"> - <property name="text"> - <string>Up:</string> - </property> - </widget> + <property name="text"> + <string>Right Joycon</string> + </property> </item> - </layout> - </item> - <item> - <widget class="QPushButton" name="buttonRStickUp"> - <property name="text"> - <string/> - </property> - </widget> - </item> - </layout> - </item> - <item row="2" column="0"> - <layout class="QVBoxLayout" name="buttonRStickPressedVerticalLayout"> - <item> - <layout class="QHBoxLayout" name="buttonRStickPressedHorizontalLayout"> <item> - <widget class="QLabel" name="labelRStickPressed"> - <property name="text"> - <string>Pressed:</string> - </property> - </widget> + <property name="text"> + <string>Handheld</string> + </property> </item> - </layout> - </item> - <item> - <widget class="QPushButton" name="buttonRStick"> - <property name="text"> - <string/> - </property> </widget> </item> </layout> - </item> - <item row="2" column="1"> - <layout class="QVBoxLayout" name="buttonRStickModVerticalLayout"> + </widget> + </item> + <item> + <widget class="QGroupBox" name="devicesGroup"> + <property name="title"> + <string>Input Device</string> + </property> + <layout class="QHBoxLayout" name="horizontalLayout_5"> + <property name="spacing"> + <number>3</number> + </property> + <property name="leftMargin"> + <number>5</number> + </property> + <property name="topMargin"> + <number>5</number> + </property> + <property name="rightMargin"> + <number>5</number> + </property> + <property name="bottomMargin"> + <number>5</number> + </property> <item> - <layout class="QHBoxLayout" name="buttonRStickModHorizontalLayout"> + <widget class="QComboBox" name="comboDevices"> <item> - <widget class="QLabel" name="labelRStickMod"> - <property name="text"> - <string>Modifier:</string> - </property> - </widget> + <property name="text"> + <string>Any</string> + </property> </item> - </layout> - </item> - <item> - <widget class="QPushButton" name="buttonRStickMod"> - <property name="text"> - <string/> - </property> - </widget> - </item> - </layout> - </item> - <item row="4" column="0" colspan="2"> - <layout class="QVBoxLayout" name="sliderRStickDeadzoneAndModifierVerticalLayout"> - <item> - <layout class="QHBoxLayout" name="sliderRStickDeadzoneAndModifierHorizontalLayout"> <item> - <widget class="QLabel" name="labelRStickDeadzoneAndModifier"> - <property name="text"> - <string>Deadzone: 0</string> - </property> - <property name="alignment"> - <enum>Qt::AlignHCenter</enum> - </property> - </widget> + <property name="text"> + <string>Keyboard</string> + </property> </item> - </layout> + </widget> </item> <item> - <widget class="QSlider" name="sliderRStickDeadzoneAndModifier"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> + <widget class="QPushButton" name="buttonRefreshDevices"> + <property name="minimumSize"> + <size> + <width>24</width> + <height>22</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>24</width> + <height>22</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true"/> </property> </widget> </item> </layout> - </item> - <item row="5" column="0"> - <spacer name="RStick_verticalSpacer"> - <property name="orientation"> - <enum>Qt::Vertical</enum> + </widget> + </item> + <item> + <widget class="QGroupBox" name="profilesGroup"> + <property name="minimumSize"> + <size> + <width>0</width> + <height>0</height> + </size> + </property> + <property name="title"> + <string>Profile</string> + </property> + <layout class="QHBoxLayout" name="horizontalLayout_4" stretch="2,0,0,0"> + <property name="spacing"> + <number>3</number> </property> - <property name="sizeHint" stdset="0"> - <size> - <width>0</width> - <height>0</height> - </size> + <property name="leftMargin"> + <number>5</number> + </property> + <property name="topMargin"> + <number>5</number> + </property> + <property name="rightMargin"> + <number>5</number> + </property> + <property name="bottomMargin"> + <number>5</number> </property> - </spacer> - </item> - </layout> - </widget> - </item> - <item row="0" column="1"> - <widget class="QGroupBox" name="Dpad"> - <property name="title"> - <string>Directional Pad</string> - </property> - <property name="flat"> - <bool>false</bool> - </property> - <property name="checkable"> - <bool>false</bool> - </property> - <layout class="QGridLayout" name="gridLayout_2"> - <item row="1" column="0"> - <layout class="QVBoxLayout" name="buttonDpadUpVerticalLayout"> <item> - <layout class="QHBoxLayout" name="buttonDpadUpHorizontalLayout"> - <item> - <widget class="QLabel" name="labelDpadUp"> - <property name="text"> - <string>Up:</string> - </property> - </widget> - </item> - </layout> + <widget class="QComboBox" name="comboProfiles"/> </item> <item> - <widget class="QPushButton" name="buttonDpadUp"> - <property name="text"> - <string/> + <widget class="QPushButton" name="buttonProfilesSave"> + <property name="maximumSize"> + <size> + <width>55</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">min-width: 55px;</string> </property> - </widget> - </item> - </layout> - </item> - <item row="1" column="1"> - <layout class="QVBoxLayout" name="buttonDpadDownVerticalLayout"> - <item> - <layout class="QHBoxLayout" name="buttonDpadDownHorizontalLayout"> - <item> - <widget class="QLabel" name="labelDpadDown"> - <property name="text"> - <string>Down:</string> - </property> - </widget> - </item> - </layout> - </item> - <item> - <widget class="QPushButton" name="buttonDpadDown"> <property name="text"> - <string/> + <string>Save</string> </property> </widget> </item> - </layout> - </item> - <item row="0" column="0"> - <layout class="QVBoxLayout" name="buttonDpadLeftVerticalLayout"> - <item> - <layout class="QHBoxLayout" name="buttonDpadLeftHorizontalLayout"> - <item> - <widget class="QLabel" name="labelDpadLeft"> - <property name="minimumSize"> - <size> - <width>80</width> - <height>0</height> - </size> - </property> - <property name="text"> - <string>Left:</string> - </property> - </widget> - </item> - </layout> - </item> <item> - <widget class="QPushButton" name="buttonDpadLeft"> + <widget class="QPushButton" name="buttonProfilesNew"> + <property name="maximumSize"> + <size> + <width>55</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">min-width: 55px;</string> + </property> <property name="text"> - <string/> + <string>New</string> </property> </widget> </item> - </layout> - </item> - <item row="0" column="1"> - <layout class="QVBoxLayout" name="buttonDpadRightVerticalLayout"> - <item> - <layout class="QHBoxLayout" name="buttonDpadRightHorizontalLayout"> - <item> - <widget class="QLabel" name="labelDpadRight"> - <property name="minimumSize"> - <size> - <width>80</width> - <height>0</height> - </size> - </property> - <property name="text"> - <string>Right:</string> - </property> - </widget> - </item> - </layout> - </item> <item> - <widget class="QPushButton" name="buttonDpadRight"> + <widget class="QPushButton" name="buttonProfilesDelete"> + <property name="maximumSize"> + <size> + <width>55</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">min-width: 55px;</string> + </property> <property name="text"> - <string/> + <string>Delete</string> </property> </widget> </item> </layout> - </item> - </layout> - </widget> + </widget> + </item> + </layout> </item> - <item row="0" column="0"> - <widget class="QGroupBox" name="faceButtons"> - <property name="title"> - <string>Face Buttons</string> - </property> - <property name="flat"> - <bool>false</bool> - </property> - <property name="checkable"> - <bool>false</bool> + <item> + <widget class="QFrame" name="bottom"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="MinimumExpanding"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> </property> - <layout class="QGridLayout" name="gridLayout"> - <item row="0" column="0"> - <layout class="QVBoxLayout" name="buttonFaceButtonsAVerticalLayout"> - <item> - <layout class="QHBoxLayout" name="buttonFaceButtonsAHorizontalLayout"> - <item> - <widget class="QLabel" name="labelA"> - <property name="minimumSize"> - <size> - <width>80</width> - <height>0</height> - </size> + <layout class="QHBoxLayout" name="_2"> + <property name="sizeConstraint"> + <enum>QLayout::SetMinimumSize</enum> + </property> + <property name="leftMargin"> + <number>0</number> + </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> + <item> + <widget class="QWidget" name="bottomLeft" native="true"> + <layout class="QVBoxLayout" name="bottomLeftLayout" stretch="0,0,0,0"> + <property name="spacing"> + <number>0</number> + </property> + <property name="sizeConstraint"> + <enum>QLayout::SetDefaultConstraint</enum> + </property> + <property name="leftMargin"> + <number>0</number> + </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> + <item> + <widget class="QGroupBox" name="LStick"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="title"> + <string>Left Stick</string> + </property> + <property name="alignment"> + <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set> + </property> + <layout class="QVBoxLayout" name="verticalLayout_3"> + <property name="spacing"> + <number>0</number> </property> - <property name="text"> - <string>A:</string> + <property name="sizeConstraint"> + <enum>QLayout::SetDefaultConstraint</enum> </property> - </widget> - </item> - </layout> - </item> - <item> - <widget class="QPushButton" name="buttonA"> - <property name="text"> - <string/> - </property> - </widget> - </item> - </layout> - </item> - <item row="0" column="1"> - <layout class="QVBoxLayout" name="buttonFaceButtonsBVerticalLayout"> - <item> - <layout class="QHBoxLayout" name="buttonFaceButtonsBHorizontalLayout"> - <item> - <widget class="QLabel" name="labelB"> - <property name="minimumSize"> - <size> - <width>80</width> - <height>0</height> - </size> + <property name="leftMargin"> + <number>3</number> </property> - <property name="text"> - <string>B:</string> + <property name="topMargin"> + <number>0</number> </property> - </widget> - </item> - </layout> - </item> - <item> - <widget class="QPushButton" name="buttonB"> - <property name="text"> - <string/> - </property> - </widget> - </item> - </layout> - </item> - <item row="1" column="0"> - <layout class="QVBoxLayout" name="buttonFaceButtonsXVerticalLayout"> - <item> - <layout class="QHBoxLayout" name="buttonFaceButtonsXHorizontalLayout"> - <item> - <widget class="QLabel" name="labelX"> - <property name="text"> - <string>X:</string> + <property name="rightMargin"> + <number>3</number> </property> - </widget> - </item> - </layout> - </item> - <item> - <widget class="QPushButton" name="buttonX"> - <property name="text"> - <string/> - </property> - </widget> - </item> - </layout> - </item> - <item row="1" column="1"> - <layout class="QVBoxLayout" name="buttonFaceButtonsYVerticalLayout"> - <item> - <layout class="QHBoxLayout" name="buttonFaceButtonsYHorizontalLayout"> - <item> - <widget class="QLabel" name="labelY"> - <property name="text"> - <string>Y:</string> + <property name="bottomMargin"> + <number>0</number> </property> - </widget> - </item> - </layout> - </item> - <item> - <widget class="QPushButton" name="buttonY"> - <property name="text"> - <string/> - </property> - </widget> - </item> - </layout> - </item> - </layout> - </widget> - </item> - <item row="5" column="0" colspan="2"> - <widget class="QGroupBox" name="controller_color"> - <property name="title"> - <string>Controller Color</string> - </property> - <layout class="QGridLayout" name="gridLayout_10" columnstretch="0,0,0,0,0,0,0"> - <item row="0" column="0"> - <spacer name="horizontalSpacer_2"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>40</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - <item row="0" column="1"> - <widget class="QLabel" name="left_body_label"> - <property name="text"> - <string>Left Body</string> - </property> - </widget> - </item> - <item row="0" column="6"> - <spacer name="horizontalSpacer_3"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>40</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - <item row="1" column="1"> - <widget class="QLabel" name="left_buttons_label"> - <property name="minimumSize"> - <size> - <width>90</width> - <height>0</height> - </size> - </property> - <property name="text"> - <string>Left Buttons</string> - </property> - </widget> - </item> - <item row="1" column="5"> - <widget class="QPushButton" name="right_buttons_button"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="minimumSize"> - <size> - <width>32</width> - <height>0</height> - </size> - </property> - <property name="maximumSize"> - <size> - <width>40</width> - <height>16777215</height> - </size> - </property> - <property name="text"> - <string/> - </property> - </widget> - </item> - <item row="0" column="4"> - <widget class="QLabel" name="right_body_label"> - <property name="text"> - <string>Right Body</string> - </property> - </widget> - </item> - <item row="1" column="4"> - <widget class="QLabel" name="right_buttons_label"> - <property name="minimumSize"> - <size> - <width>90</width> - <height>0</height> - </size> - </property> - <property name="text"> - <string>Right Buttons</string> - </property> - </widget> - </item> - <item row="1" column="2"> - <widget class="QPushButton" name="left_buttons_button"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="minimumSize"> - <size> - <width>32</width> - <height>0</height> - </size> - </property> - <property name="maximumSize"> - <size> - <width>40</width> - <height>16777215</height> - </size> - </property> - <property name="text"> - <string/> - </property> - </widget> - </item> - <item row="0" column="2"> - <widget class="QPushButton" name="left_body_button"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="minimumSize"> - <size> - <width>32</width> - <height>0</height> - </size> - </property> - <property name="maximumSize"> - <size> - <width>40</width> - <height>16777215</height> - </size> - </property> - <property name="text"> - <string/> - </property> - </widget> - </item> - <item row="0" column="5"> - <widget class="QPushButton" name="right_body_button"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="minimumSize"> - <size> - <width>32</width> - <height>0</height> - </size> - </property> - <property name="maximumSize"> - <size> - <width>40</width> - <height>16777215</height> - </size> - </property> - <property name="text"> - <string/> - </property> - </widget> - </item> - <item row="0" column="3"> - <spacer name="horizontalSpacer_4"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeType"> - <enum>QSizePolicy::Fixed</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>20</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - </layout> - </widget> - </item> - <item row="1" column="0"> - <widget class="QGroupBox" name="LStick"> - <property name="title"> - <string>Left Stick</string> - </property> - <property name="flat"> - <bool>false</bool> - </property> - <property name="checkable"> - <bool>false</bool> - </property> - <layout class="QGridLayout" name="gridLayout_4"> - <item row="1" column="1"> - <layout class="QVBoxLayout" name="buttonLStickUpVerticalLayout"> - <item> - <layout class="QHBoxLayout" name="buttonLStickUpHorizontalLayout"> - <item> - <widget class="QLabel" name="labelLStickUp"> - <property name="text"> - <string>Up:</string> + <item> + <widget class="QWidget" name="buttonLStickUpWidget" native="true"> + <layout class="QHBoxLayout" name="horizontalLayout_20"> + <property name="spacing"> + <number>0</number> + </property> + <property name="leftMargin"> + <number>0</number> + </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> + <item> + <spacer name="horizontalSpacerLStickUpLeft"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item alignment="Qt::AlignHCenter"> + <widget class="QGroupBox" name="buttonLStickUpGroup"> + <property name="title"> + <string>Up</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <property name="flat"> + <bool>false</bool> + </property> + <layout class="QVBoxLayout" name="buttonLStickUpVerticalLayout"> + <property name="spacing"> + <number>3</number> + </property> + <property name="leftMargin"> + <number>3</number> + </property> + <property name="topMargin"> + <number>3</number> + </property> + <property name="rightMargin"> + <number>3</number> + </property> + <property name="bottomMargin"> + <number>3</number> + </property> + <item> + <widget class="QPushButton" name="buttonLStickUp"> + <property name="minimumSize"> + <size> + <width>57</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>55</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">min-width: 55px;</string> + </property> + <property name="text"> + <string>Up</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <spacer name="horizontalSpacerLStickUpRight"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </widget> + </item> + <item> + <layout class="QHBoxLayout" name="buttonLStickLeftRightHorizontaLayout"> + <property name="spacing"> + <number>3</number> + </property> + <item alignment="Qt::AlignHCenter"> + <widget class="QGroupBox" name="buttonLStickLeftGroup"> + <property name="title"> + <string>Left</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <layout class="QVBoxLayout" name="buttonLStickLeftVerticalLayout"> + <property name="spacing"> + <number>3</number> + </property> + <property name="leftMargin"> + <number>3</number> + </property> + <property name="topMargin"> + <number>3</number> + </property> + <property name="rightMargin"> + <number>3</number> + </property> + <property name="bottomMargin"> + <number>3</number> + </property> + <item> + <widget class="QPushButton" name="buttonLStickLeft"> + <property name="minimumSize"> + <size> + <width>57</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>55</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">min-width: 55px;</string> + </property> + <property name="text"> + <string>Left</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item alignment="Qt::AlignHCenter"> + <widget class="QGroupBox" name="buttonLStickRightGroup"> + <property name="title"> + <string>Right</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <layout class="QVBoxLayout" name="buttonLStickRightVerticalLayout"> + <property name="spacing"> + <number>3</number> + </property> + <property name="leftMargin"> + <number>3</number> + </property> + <property name="topMargin"> + <number>3</number> + </property> + <property name="rightMargin"> + <number>3</number> + </property> + <property name="bottomMargin"> + <number>3</number> + </property> + <item> + <widget class="QPushButton" name="buttonLStickRight"> + <property name="minimumSize"> + <size> + <width>57</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>55</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">min-width: 55px;</string> + </property> + <property name="text"> + <string>Right</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + </layout> + </item> + <item> + <widget class="QWidget" name="buttonLStickDownWidget" native="true"> + <layout class="QHBoxLayout" name="horizontalLayout_22"> + <property name="spacing"> + <number>0</number> + </property> + <property name="leftMargin"> + <number>0</number> + </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> + <item> + <spacer name="horizontalSpacerLStickDownLeft"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item alignment="Qt::AlignHCenter"> + <widget class="QGroupBox" name="buttonLStickDownGroup"> + <property name="title"> + <string>Down</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <layout class="QVBoxLayout" name="buttonLStickDownVerticalLayout"> + <property name="spacing"> + <number>3</number> + </property> + <property name="leftMargin"> + <number>3</number> + </property> + <property name="topMargin"> + <number>3</number> + </property> + <property name="rightMargin"> + <number>3</number> + </property> + <property name="bottomMargin"> + <number>3</number> + </property> + <item> + <widget class="QPushButton" name="buttonLStickDown"> + <property name="minimumSize"> + <size> + <width>57</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>55</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">min-width: 55px;</string> + </property> + <property name="text"> + <string>Down</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <spacer name="horizontalSpacerLStickDownRight"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </widget> + </item> + <item> + <layout class="QHBoxLayout" name="buttonLStickPressedModifierHorizontalLayout"> + <property name="spacing"> + <number>3</number> + </property> + <item alignment="Qt::AlignHCenter"> + <widget class="QGroupBox" name="buttonLStickPressedGroup"> + <property name="title"> + <string>Pressed</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <layout class="QVBoxLayout" name="buttonLStickPressedVerticalLayout" stretch="0"> + <property name="spacing"> + <number>3</number> + </property> + <property name="leftMargin"> + <number>3</number> + </property> + <property name="topMargin"> + <number>3</number> + </property> + <property name="rightMargin"> + <number>3</number> + </property> + <property name="bottomMargin"> + <number>3</number> + </property> + <item> + <widget class="QPushButton" name="buttonLStick"> + <property name="minimumSize"> + <size> + <width>57</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>55</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">min-width: 55px;</string> + </property> + <property name="text"> + <string>Pressed</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item alignment="Qt::AlignHCenter"> + <widget class="QGroupBox" name="buttonLStickModGroup"> + <property name="title"> + <string>Modifier</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <layout class="QVBoxLayout" name="buttonLStickModVerticalLayout"> + <property name="spacing"> + <number>3</number> + </property> + <property name="leftMargin"> + <number>3</number> + </property> + <property name="topMargin"> + <number>3</number> + </property> + <property name="rightMargin"> + <number>3</number> + </property> + <property name="bottomMargin"> + <number>3</number> + </property> + <item> + <widget class="QPushButton" name="buttonLStickMod"> + <property name="minimumSize"> + <size> + <width>57</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>55</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">min-width: 55px;</string> + </property> + <property name="text"> + <string>Modifier</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QGroupBox" name="buttonLStickRangeGroup"> + <property name="title"> + <string>Range</string> + </property> + <layout class="QHBoxLayout" name="buttonLStickRangeGroupHorizontalLayout"> + <property name="spacing"> + <number>3</number> + </property> + <property name="leftMargin"> + <number>3</number> + </property> + <property name="topMargin"> + <number>3</number> + </property> + <property name="rightMargin"> + <number>3</number> + </property> + <property name="bottomMargin"> + <number>3</number> + </property> + <item> + <widget class="QSpinBox" name="spinboxLStickRange"> + <property name="minimumSize"> + <size> + <width>55</width> + <height>21</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>55</width> + <height>16777215</height> + </size> + </property> + <property name="suffix"> + <string>%</string> + </property> + <property name="minimum"> + <number>50</number> + </property> + <property name="maximum"> + <number>150</number> + </property> + <property name="value"> + <number>100</number> + </property> + </widget> + </item> + </layout> + </widget> + </item> + </layout> + </item> + <item> + <layout class="QVBoxLayout" name="sliderLStickDeadzoneModifierRangeVerticalLayout"> + <property name="spacing"> + <number>3</number> + </property> + <property name="sizeConstraint"> + <enum>QLayout::SetDefaultConstraint</enum> + </property> + <property name="leftMargin"> + <number>0</number> + </property> + <property name="topMargin"> + <number>2</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>3</number> + </property> + <item> + <layout class="QHBoxLayout" name="sliderLStickDeadzoneHorizontalLayout"> + <item> + <widget class="QLabel" name="labelLStickDeadzone"> + <property name="text"> + <string>Deadzone: 0%</string> + </property> + <property name="alignment"> + <set>Qt::AlignHCenter</set> + </property> + </widget> + </item> + </layout> + </item> + <item> + <widget class="QSlider" name="sliderLStickDeadzone"> + <property name="maximum"> + <number>100</number> + </property> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + </widget> + </item> + <item> + <layout class="QHBoxLayout" name="sliderLStickModifierRangeHorizontalLayout"> + <item> + <widget class="QLabel" name="labelLStickModifierRange"> + <property name="text"> + <string>Modifier Range: 0%</string> + </property> + <property name="alignment"> + <set>Qt::AlignHCenter</set> + </property> + </widget> + </item> + </layout> + </item> + <item> + <widget class="QSlider" name="sliderLStickModifierRange"> + <property name="maximum"> + <number>100</number> + </property> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + </widget> + </item> + </layout> + </item> + </layout> + </widget> + </item> + <item> + <spacer name="verticalSpacerBottomLeft"> + <property name="orientation"> + <enum>Qt::Vertical</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>0</height> + </size> + </property> + </spacer> + </item> + <item> + <widget class="QGroupBox" name="Dpad"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="title"> + <string>D-Pad</string> + </property> + <property name="flat"> + <bool>false</bool> + </property> + <property name="checkable"> + <bool>false</bool> + </property> + <layout class="QVBoxLayout" name="verticalLayout_5"> + <property name="spacing"> + <number>0</number> </property> - </widget> - </item> - </layout> - </item> - <item> - <widget class="QPushButton" name="buttonLStickUp"> - <property name="text"> - <string/> - </property> - </widget> - </item> - </layout> - </item> - <item row="0" column="2"> - <layout class="QVBoxLayout" name="buttonLStickRightVerticalLayout"> - <item> - <layout class="QHBoxLayout" name="buttonLStickRightHorizontalLayout"> - <item> - <widget class="QLabel" name="labelLStickRight"> - <property name="text"> - <string>Right:</string> + <property name="leftMargin"> + <number>3</number> </property> - </widget> - </item> - </layout> - </item> - <item> - <widget class="QPushButton" name="buttonLStickRight"> - <property name="text"> - <string/> - </property> - </widget> - </item> - </layout> - </item> - <item row="4" column="1" colspan="2"> - <widget class="QPushButton" name="buttonLStickAnalog"> - <property name="text"> - <string>Set Analog Stick</string> - </property> - </widget> - </item> - <item row="0" column="1"> - <layout class="QVBoxLayout" name="buttonLStickLeftVerticalLayout"> - <item> - <layout class="QHBoxLayout" name="buttonLStickLeftHorizontalLayout_2"> - <item> - <widget class="QLabel" name="labelLStickLeft"> - <property name="text"> - <string>Left:</string> + <property name="topMargin"> + <number>0</number> </property> - </widget> - </item> - </layout> - </item> - <item> - <widget class="QPushButton" name="buttonLStickLeft"> - <property name="text"> - <string/> - </property> - </widget> - </item> - </layout> - </item> - <item row="1" column="2"> - <layout class="QVBoxLayout" name="buttonLStickDownVerticalLayout"> - <item> - <layout class="QHBoxLayout" name="buttonLStickDownHorizontalLayout"> - <item> - <widget class="QLabel" name="labelLStickDown"> - <property name="text"> - <string>Down:</string> + <property name="rightMargin"> + <number>3</number> </property> - </widget> - </item> - </layout> - </item> - <item> - <widget class="QPushButton" name="buttonLStickDown"> - <property name="text"> - <string/> - </property> - </widget> - </item> - </layout> - </item> - <item row="3" column="2"> - <layout class="QVBoxLayout" name="buttonLStickModVerticalLayout"> - <item> - <layout class="QHBoxLayout" name="buttonLStickModHorizontalLayout"> - <item> - <widget class="QLabel" name="labelLStickMod"> - <property name="text"> - <string>Modifier:</string> + <property name="bottomMargin"> + <number>3</number> </property> - </widget> - </item> - </layout> - </item> - <item> - <widget class="QPushButton" name="buttonLStickMod"> - <property name="text"> - <string/> - </property> - </widget> - </item> - </layout> + <item> + <widget class="QWidget" name="buttonDpadUpWidget" native="true"> + <layout class="QHBoxLayout" name="horizontalLayout_23"> + <property name="spacing"> + <number>0</number> + </property> + <property name="leftMargin"> + <number>0</number> + </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> + <item> + <spacer name="horizontalSpacerDpadUpLeft"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item alignment="Qt::AlignHCenter"> + <widget class="QGroupBox" name="buttonDpadUpGroup"> + <property name="title"> + <string>Up</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <layout class="QVBoxLayout" name="buttonDpadUpVerticalLayout"> + <property name="spacing"> + <number>3</number> + </property> + <property name="leftMargin"> + <number>3</number> + </property> + <property name="topMargin"> + <number>3</number> + </property> + <property name="rightMargin"> + <number>3</number> + </property> + <property name="bottomMargin"> + <number>3</number> + </property> + <item> + <widget class="QPushButton" name="buttonDpadUp"> + <property name="minimumSize"> + <size> + <width>57</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>55</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">min-width: 55px;</string> + </property> + <property name="text"> + <string>Up</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <spacer name="horizontalSpacerDpadUpRight"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </widget> + </item> + <item> + <layout class="QHBoxLayout" name="buttonDpadLeftRightHorizontalLayout"> + <property name="spacing"> + <number>3</number> + </property> + <item alignment="Qt::AlignHCenter"> + <widget class="QGroupBox" name="buttonDpadLeftGroup"> + <property name="title"> + <string>Left</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <layout class="QVBoxLayout" name="buttonDpadLeftVerticalLayout"> + <property name="spacing"> + <number>3</number> + </property> + <property name="leftMargin"> + <number>3</number> + </property> + <property name="topMargin"> + <number>3</number> + </property> + <property name="rightMargin"> + <number>3</number> + </property> + <property name="bottomMargin"> + <number>3</number> + </property> + <item> + <widget class="QPushButton" name="buttonDpadLeft"> + <property name="minimumSize"> + <size> + <width>57</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>55</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">min-width: 55px;</string> + </property> + <property name="text"> + <string>Left</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item alignment="Qt::AlignHCenter"> + <widget class="QGroupBox" name="buttonDpadRightGroup"> + <property name="title"> + <string>Right</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <layout class="QVBoxLayout" name="buttonDpadRightVerticalLayout"> + <property name="spacing"> + <number>3</number> + </property> + <property name="leftMargin"> + <number>3</number> + </property> + <property name="topMargin"> + <number>3</number> + </property> + <property name="rightMargin"> + <number>3</number> + </property> + <property name="bottomMargin"> + <number>3</number> + </property> + <item> + <widget class="QPushButton" name="buttonDpadRight"> + <property name="minimumSize"> + <size> + <width>57</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>55</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">min-width: 55px;</string> + </property> + <property name="text"> + <string>Right</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + </layout> + </item> + <item> + <widget class="QWidget" name="buttonDpadDownWidget" native="true"> + <layout class="QHBoxLayout" name="horizontalLayout_24"> + <property name="spacing"> + <number>0</number> + </property> + <property name="leftMargin"> + <number>0</number> + </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> + <item> + <spacer name="horizontalSpacerDpadDownLeft"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item alignment="Qt::AlignHCenter"> + <widget class="QGroupBox" name="buttonDpadDownGroup"> + <property name="title"> + <string>Down</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <layout class="QVBoxLayout" name="buttonDpadDownVerticalLayout"> + <property name="spacing"> + <number>3</number> + </property> + <property name="leftMargin"> + <number>3</number> + </property> + <property name="topMargin"> + <number>3</number> + </property> + <property name="rightMargin"> + <number>3</number> + </property> + <property name="bottomMargin"> + <number>3</number> + </property> + <item> + <widget class="QPushButton" name="buttonDpadDown"> + <property name="minimumSize"> + <size> + <width>57</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>55</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">min-width: 55px;</string> + </property> + <property name="text"> + <string>Down</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <spacer name="horizontalSpacerDpadDownRight"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <spacer name="verticalSpacerBottomLeft_2"> + <property name="orientation"> + <enum>Qt::Vertical</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>0</height> + </size> + </property> + </spacer> + </item> + </layout> + </widget> </item> - <item row="3" column="1"> - <layout class="QVBoxLayout" name="buttonLStickPressedVerticalLayout" stretch="0,0"> - <item> - <layout class="QHBoxLayout" name="buttonLStickPressedHorizontalLayout"> - <item> - <widget class="QLabel" name="labelLStickPressed"> - <property name="text"> - <string>Pressed:</string> + <item> + <widget class="QWidget" name="bottomMiddle" native="true"> + <layout class="QVBoxLayout" stretch="0,0,0"> + <property name="spacing"> + <number>6</number> + </property> + <property name="leftMargin"> + <number>0</number> + </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> + <item> + <layout class="QHBoxLayout" name="shoulderButtons"> + <property name="spacing"> + <number>3</number> + </property> + <item> + <widget class="QWidget" name="buttonShoulderButtonsLeft" native="true"> + <layout class="QVBoxLayout" name="buttonShoulderButtonsLeftVerticalLayout"> + <property name="spacing"> + <number>0</number> + </property> + <property name="leftMargin"> + <number>0</number> + </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> + <item> + <widget class="QGroupBox" name="buttonShoulderButtonsButtonLGroup"> + <property name="title"> + <string>L</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <layout class="QVBoxLayout" name="buttonShoulderButtonsLVerticalLayout"> + <property name="spacing"> + <number>3</number> + </property> + <property name="leftMargin"> + <number>3</number> + </property> + <property name="topMargin"> + <number>3</number> + </property> + <property name="rightMargin"> + <number>3</number> + </property> + <property name="bottomMargin"> + <number>3</number> + </property> + <item> + <widget class="QPushButton" name="buttonL"> + <property name="minimumSize"> + <size> + <width>57</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>55</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">min-width: 55px;</string> + </property> + <property name="text"> + <string>L</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QGroupBox" name="buttonShoulderButtonsButtonZLGroup"> + <property name="title"> + <string>ZL</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <layout class="QVBoxLayout" name="buttonShoulderButtonsZLVerticalLayout"> + <property name="spacing"> + <number>3</number> + </property> + <property name="leftMargin"> + <number>3</number> + </property> + <property name="topMargin"> + <number>3</number> + </property> + <property name="rightMargin"> + <number>3</number> + </property> + <property name="bottomMargin"> + <number>3</number> + </property> + <item> + <widget class="QPushButton" name="buttonZL"> + <property name="minimumSize"> + <size> + <width>57</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>55</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">min-width: 55px;</string> + </property> + <property name="text"> + <string>ZL</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QWidget" name="horizontalSpacerShoulderButtonsWidget" native="true"> + <layout class="QHBoxLayout" name="horizontalSpacerShoulderButtonsWidgetLayout"> + <property name="spacing"> + <number>0</number> + </property> + <property name="leftMargin"> + <number>0</number> + </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> + <item> + <spacer name="horizontalSpacerShoulderButtons1"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>0</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QWidget" name="buttonMiscButtonsMinusScreenshot" native="true"> + <layout class="QVBoxLayout" name="buttonMiscButtonsMinusScreenshotVerticalLayout"> + <property name="spacing"> + <number>0</number> + </property> + <property name="leftMargin"> + <number>0</number> + </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> + <item alignment="Qt::AlignHCenter"> + <widget class="QGroupBox" name="buttonMiscButtonsMinusGroup"> + <property name="title"> + <string>Minus</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <layout class="QVBoxLayout" name="buttonMiscMinusVerticalLayout"> + <property name="spacing"> + <number>3</number> + </property> + <property name="leftMargin"> + <number>3</number> + </property> + <property name="topMargin"> + <number>3</number> + </property> + <property name="rightMargin"> + <number>3</number> + </property> + <property name="bottomMargin"> + <number>3</number> + </property> + <item> + <widget class="QPushButton" name="buttonMinus"> + <property name="minimumSize"> + <size> + <width>57</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>55</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">min-width: 55px;</string> + </property> + <property name="text"> + <string>Minus</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item alignment="Qt::AlignHCenter"> + <widget class="QGroupBox" name="buttonMiscButtonsScreenshotGroup"> + <property name="title"> + <string>Capture</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <layout class="QVBoxLayout" name="buttonMiscScrCapVerticalLayout"> + <property name="spacing"> + <number>3</number> + </property> + <property name="leftMargin"> + <number>3</number> + </property> + <property name="topMargin"> + <number>3</number> + </property> + <property name="rightMargin"> + <number>3</number> + </property> + <property name="bottomMargin"> + <number>3</number> + </property> + <item> + <widget class="QPushButton" name="buttonScreenshot"> + <property name="minimumSize"> + <size> + <width>57</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>55</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">min-width: 55px;</string> + </property> + <property name="text"> + <string>Capture</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QWidget" name="buttonMiscButtonsPlusHome" native="true"> + <layout class="QVBoxLayout" name="buttonMiscButtonsPlusHomeVerticalLayout"> + <property name="spacing"> + <number>0</number> + </property> + <property name="leftMargin"> + <number>0</number> + </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> + <item alignment="Qt::AlignHCenter"> + <widget class="QGroupBox" name="buttonMiscButtonsPlusGroup"> + <property name="title"> + <string>Plus</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <layout class="QVBoxLayout" name="buttonMiscPlusVerticalLayout"> + <property name="spacing"> + <number>3</number> + </property> + <property name="leftMargin"> + <number>3</number> + </property> + <property name="topMargin"> + <number>3</number> + </property> + <property name="rightMargin"> + <number>3</number> + </property> + <property name="bottomMargin"> + <number>3</number> + </property> + <item> + <widget class="QPushButton" name="buttonPlus"> + <property name="minimumSize"> + <size> + <width>57</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>55</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">min-width: 55px;</string> + </property> + <property name="text"> + <string>Plus</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item alignment="Qt::AlignHCenter"> + <widget class="QGroupBox" name="buttonMiscButtonsHomeGroup"> + <property name="title"> + <string>Home</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <layout class="QVBoxLayout" name="buttonMiscHomeVerticalLayout"> + <property name="spacing"> + <number>3</number> + </property> + <property name="leftMargin"> + <number>3</number> + </property> + <property name="topMargin"> + <number>3</number> + </property> + <property name="rightMargin"> + <number>3</number> + </property> + <property name="bottomMargin"> + <number>3</number> + </property> + <item> + <widget class="QPushButton" name="buttonHome"> + <property name="minimumSize"> + <size> + <width>57</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>55</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">min-width: 55px;</string> + </property> + <property name="text"> + <string>Home</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QWidget" name="horizontalSpacerShoulderButtonsWidget3" native="true"> + <layout class="QHBoxLayout" name="horizontalSpacerShoulderButtonsWidget3Layout"> + <property name="spacing"> + <number>0</number> + </property> + <property name="leftMargin"> + <number>0</number> + </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> + <item> + <spacer name="horizontalSpacerShoulderButtons2"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>0</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QWidget" name="buttonShoulderButtonsRight" native="true"> + <layout class="QVBoxLayout" name="buttonShoulderButtonsRightVerticalLayout"> + <property name="spacing"> + <number>0</number> + </property> + <property name="leftMargin"> + <number>0</number> + </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> + <item> + <widget class="QGroupBox" name="buttonShoulderButtonsRGroup"> + <property name="title"> + <string>R</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <layout class="QVBoxLayout" name="buttonShoulderButtonsRVerticalLayout"> + <property name="spacing"> + <number>3</number> + </property> + <property name="leftMargin"> + <number>3</number> + </property> + <property name="topMargin"> + <number>3</number> + </property> + <property name="rightMargin"> + <number>3</number> + </property> + <property name="bottomMargin"> + <number>3</number> + </property> + <item> + <widget class="QPushButton" name="buttonR"> + <property name="minimumSize"> + <size> + <width>57</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>55</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">min-width: 55px;</string> + </property> + <property name="text"> + <string>R</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QGroupBox" name="buttonShoulderButtonsZRGroup"> + <property name="title"> + <string>ZR</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <layout class="QVBoxLayout" name="buttonShoulderButtonsZRVerticalLayout"> + <property name="spacing"> + <number>3</number> + </property> + <property name="leftMargin"> + <number>3</number> + </property> + <property name="topMargin"> + <number>3</number> + </property> + <property name="rightMargin"> + <number>3</number> + </property> + <property name="bottomMargin"> + <number>3</number> + </property> + <item> + <widget class="QPushButton" name="buttonZR"> + <property name="minimumSize"> + <size> + <width>57</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>55</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">min-width: 55px;</string> + </property> + <property name="text"> + <string>ZR</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QWidget" name="horizontalSpacerShoulderButtonsWidget2" native="true"> + <layout class="QHBoxLayout" name="horizontalSpacerShoulderButtonsWidget2Layout"> + <property name="spacing"> + <number>0</number> + </property> + <property name="leftMargin"> + <number>0</number> + </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> + <item> + <spacer name="horizontalSpacerShoulderButtons3"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>0</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QWidget" name="buttonShoulderButtonsSLSR" native="true"> + <layout class="QVBoxLayout" name="buttonShoulderButtonsSLSRVerticalLayout"> + <property name="spacing"> + <number>0</number> + </property> + <property name="leftMargin"> + <number>0</number> + </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> + <item alignment="Qt::AlignHCenter"> + <widget class="QGroupBox" name="buttonShoulderButtonsSLGroup"> + <property name="title"> + <string>SL</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <layout class="QVBoxLayout" name="buttonShoulderButtonsSLVerticalLayout"> + <property name="spacing"> + <number>3</number> + </property> + <property name="leftMargin"> + <number>3</number> + </property> + <property name="topMargin"> + <number>3</number> + </property> + <property name="rightMargin"> + <number>3</number> + </property> + <property name="bottomMargin"> + <number>3</number> + </property> + <item> + <widget class="QPushButton" name="buttonSL"> + <property name="minimumSize"> + <size> + <width>57</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>55</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">min-width: 55px;</string> + </property> + <property name="text"> + <string>SL</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item alignment="Qt::AlignHCenter"> + <widget class="QGroupBox" name="buttonShoulderButtonsSRGroup"> + <property name="title"> + <string>SR</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <layout class="QVBoxLayout" name="buttonShoulderButtonsSRVerticalLayout"> + <property name="spacing"> + <number>3</number> + </property> + <property name="leftMargin"> + <number>3</number> + </property> + <property name="topMargin"> + <number>3</number> + </property> + <property name="rightMargin"> + <number>3</number> + </property> + <property name="bottomMargin"> + <number>3</number> + </property> + <item> + <widget class="QPushButton" name="buttonSR"> + <property name="minimumSize"> + <size> + <width>57</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>55</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">min-width: 55px;</string> + </property> + <property name="text"> + <string>SR</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + </layout> + </widget> + </item> + </layout> + </item> + <item> + <widget class="QFrame" name="controllerFrame"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Expanding"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="font"> + <font> + <weight>75</weight> + <bold>true</bold> + </font> + </property> + <property name="styleSheet"> + <string notr="true">image: url(:/controller/pro);</string> + </property> + <layout class="QVBoxLayout" name="verticalLayout_4"> + <property name="leftMargin"> + <number>0</number> </property> - </widget> - </item> - </layout> - </item> - <item> - <widget class="QPushButton" name="buttonLStick"> - <property name="text"> - <string/> - </property> - </widget> - </item> - </layout> - </item> - <item row="5" column="1" colspan="2"> - <layout class="QVBoxLayout" name="sliderLStickDeadzoneAndModifierVerticalLayout"> - <property name="sizeConstraint"> - <enum>QLayout::SetDefaultConstraint</enum> - </property> - <item> - <layout class="QHBoxLayout" name="sliderLStickDeadzoneAndModifierHorizontalLayout"> - <item> - <widget class="QLabel" name="labelLStickDeadzoneAndModifier"> - <property name="text"> - <string>Deadzone: 0</string> + <property name="topMargin"> + <number>0</number> </property> - <property name="alignment"> - <enum>Qt::AlignHCenter</enum> + <property name="rightMargin"> + <number>0</number> </property> - </widget> - </item> - </layout> - </item> - <item> - <widget class="QSlider" name="sliderLStickDeadzoneAndModifier"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - </widget> - </item> - </layout> - </item> - <item row="6" column="1"> - <spacer name="LStick_verticalSpacer"> - <property name="orientation"> - <enum>Qt::Vertical</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>0</width> - <height>0</height> - </size> - </property> - </spacer> - </item> - </layout> - </widget> - </item> - <item row="3" column="0"> - <widget class="QGroupBox" name="shoulderButtons"> - <property name="title"> - <string>Shoulder Buttons</string> - </property> - <property name="flat"> - <bool>false</bool> - </property> - <property name="checkable"> - <bool>false</bool> - </property> - <layout class="QGridLayout" name="gridLayout_3"> - <item row="0" column="0"> - <layout class="QVBoxLayout" name="buttonShoulderButtonsLVerticalLayout"> - <item> - <layout class="QHBoxLayout" name="buttonShoulderButtonsLHorizontalLayout"> - <item> - <widget class="QLabel" name="labelL"> - <property name="text"> - <string>L:</string> + <property name="bottomMargin"> + <number>0</number> </property> - </widget> - </item> - </layout> - </item> - <item> - <widget class="QPushButton" name="buttonL"> - <property name="text"> - <string/> - </property> - </widget> - </item> - </layout> + </layout> + </widget> + </item> + <item> + <layout class="QHBoxLayout" name="miscButtons"> + <property name="spacing"> + <number>3</number> + </property> + <item> + <spacer name="horizontalSpacerMiscButtons1"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>0</height> + </size> + </property> + </spacer> + </item> + <item> + <spacer name="horizontalSpacerMiscButtons4"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>0</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + </layout> + </widget> </item> - <item row="0" column="1"> - <layout class="QVBoxLayout" name="buttonShoulderButtonsRVerticalLayout"> - <item> - <layout class="QHBoxLayout" name="buttonShoulderButtonsRHorizontalLayout"> - <item> - <widget class="QLabel" name="labelR"> - <property name="text"> - <string>R:</string> + <item> + <widget class="QWidget" name="bottomRight" native="true"> + <layout class="QVBoxLayout" name="bottomRightLayout"> + <property name="spacing"> + <number>0</number> + </property> + <property name="leftMargin"> + <number>0</number> + </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> + <item> + <widget class="QGroupBox" name="faceButtons"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="title"> + <string>Face Buttons</string> + </property> + <property name="flat"> + <bool>false</bool> + </property> + <property name="checkable"> + <bool>false</bool> + </property> + <layout class="QVBoxLayout" name="verticalLayout"> + <property name="spacing"> + <number>0</number> </property> - </widget> - </item> - </layout> - </item> - <item> - <widget class="QPushButton" name="buttonR"> - <property name="text"> - <string/> - </property> - </widget> - </item> - </layout> - </item> - <item row="1" column="0"> - <layout class="QVBoxLayout" name="buttonShoulderButtonsZLVerticalLayout"> - <item> - <layout class="QHBoxLayout" name="buttonShoulderButtonsZLHorizontalLayout"> - <item> - <widget class="QLabel" name="labelZL"> - <property name="text"> - <string>ZL:</string> + <property name="leftMargin"> + <number>3</number> </property> - </widget> - </item> - </layout> - </item> - <item> - <widget class="QPushButton" name="buttonZL"> - <property name="text"> - <string/> - </property> - </widget> - </item> - </layout> - </item> - <item row="1" column="1"> - <layout class="QVBoxLayout" name="buttonShoulderButtonsZRVerticalLayout"> - <item> - <layout class="QHBoxLayout" name="buttonShoulderButtonsZRHorizontalLayout"> - <item> - <widget class="QLabel" name="labelZR"> - <property name="text"> - <string>ZR:</string> + <property name="topMargin"> + <number>0</number> </property> - </widget> - </item> - </layout> - </item> - <item> - <widget class="QPushButton" name="buttonZR"> - <property name="text"> - <string/> - </property> - </widget> - </item> - </layout> - </item> - <item row="0" column="2"> - <layout class="QVBoxLayout" name="buttonShoulderButtonsSLVerticalLayout"> - <item> - <layout class="QHBoxLayout" name="buttonShoulderButtonsSLHorizontalLayout"> - <item> - <widget class="QLabel" name="labelSL"> - <property name="text"> - <string>SL:</string> + <property name="rightMargin"> + <number>3</number> </property> - </widget> - </item> - </layout> - </item> - <item> - <widget class="QPushButton" name="buttonSL"> - <property name="text"> - <string/> - </property> - </widget> - </item> - </layout> - </item> - <item row="1" column="2"> - <layout class="QVBoxLayout" name="buttonShoulderButtonsSRVerticalLayout"> - <item> - <layout class="QHBoxLayout" name="buttonShoulderButtonsSRHorizontalLayout"> - <item> - <widget class="QLabel" name="labelSR"> - <property name="text"> - <string>SR:</string> + <property name="bottomMargin"> + <number>3</number> </property> - </widget> - </item> - </layout> - </item> - <item> - <widget class="QPushButton" name="buttonSR"> - <property name="text"> - <string/> - </property> - </widget> - </item> - </layout> - </item> - </layout> - </widget> - </item> - <item row="3" column="1"> - <widget class="QGroupBox" name="misc"> - <property name="title"> - <string>Misc.</string> - </property> - <property name="flat"> - <bool>false</bool> - </property> - <property name="checkable"> - <bool>false</bool> - </property> - <layout class="QGridLayout" name="gridLayout_6"> - <item row="1" column="0"> - <layout class="QVBoxLayout" name="buttonMiscMinusVerticalLayout"> - <item> - <layout class="QHBoxLayout" name="buttonMiscMinusHorizontalLayout"> - <item> - <widget class="QLabel" name="labelMinus"> - <property name="text"> - <string>Minus:</string> + <item> + <widget class="QWidget" name="buttonFaceButtonsBWidget" native="true"> + <layout class="QHBoxLayout" name="horizontalLayout_6"> + <property name="spacing"> + <number>0</number> + </property> + <property name="leftMargin"> + <number>0</number> + </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> + <item> + <spacer name="horizontalSpacerBLeft"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item alignment="Qt::AlignHCenter"> + <widget class="QGroupBox" name="buttonFaceButtonsXGroup"> + <property name="title"> + <string>X</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <layout class="QVBoxLayout" name="buttonFaceButtonsXVerticalLayout"> + <property name="spacing"> + <number>3</number> + </property> + <property name="leftMargin"> + <number>3</number> + </property> + <property name="topMargin"> + <number>3</number> + </property> + <property name="rightMargin"> + <number>3</number> + </property> + <property name="bottomMargin"> + <number>3</number> + </property> + <item> + <widget class="QPushButton" name="buttonX"> + <property name="minimumSize"> + <size> + <width>57</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>55</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">min-width: 55px;</string> + </property> + <property name="text"> + <string>X</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <spacer name="horizontalSpacerBRight"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </widget> + </item> + <item> + <layout class="QHBoxLayout" name="buttonFaceButtonsYAHorizontalLayout"> + <property name="spacing"> + <number>3</number> + </property> + <item alignment="Qt::AlignHCenter"> + <widget class="QGroupBox" name="buttonFaceButtonsYGroup"> + <property name="title"> + <string>Y</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <layout class="QVBoxLayout" name="buttonFaceButtonsYVerticalLayout"> + <property name="spacing"> + <number>3</number> + </property> + <property name="leftMargin"> + <number>3</number> + </property> + <property name="topMargin"> + <number>3</number> + </property> + <property name="rightMargin"> + <number>3</number> + </property> + <property name="bottomMargin"> + <number>3</number> + </property> + <item> + <widget class="QPushButton" name="buttonY"> + <property name="minimumSize"> + <size> + <width>57</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>55</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">min-width: 55px;</string> + </property> + <property name="text"> + <string>Y</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item alignment="Qt::AlignHCenter"> + <widget class="QGroupBox" name="buttonFaceButtonsAGroup"> + <property name="title"> + <string>A</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <layout class="QVBoxLayout" name="buttonFaceButtonsAVerticalLayout"> + <property name="spacing"> + <number>3</number> + </property> + <property name="leftMargin"> + <number>3</number> + </property> + <property name="topMargin"> + <number>3</number> + </property> + <property name="rightMargin"> + <number>3</number> + </property> + <property name="bottomMargin"> + <number>3</number> + </property> + <item> + <widget class="QPushButton" name="buttonA"> + <property name="minimumSize"> + <size> + <width>57</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>55</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">min-width: 55px;</string> + </property> + <property name="text"> + <string>A</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + </layout> + </item> + <item> + <widget class="QWidget" name="buttonFaceButtonsXWidget" native="true"> + <layout class="QHBoxLayout" name="horizontalLayout_10"> + <property name="spacing"> + <number>0</number> + </property> + <property name="leftMargin"> + <number>0</number> + </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> + <item> + <spacer name="horizontalSpacerXLeft"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item alignment="Qt::AlignHCenter"> + <widget class="QGroupBox" name="buttonFaceButtonsBWidget_2"> + <property name="title"> + <string>B</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <layout class="QVBoxLayout" name="buttonFaceButtonsBVerticalLayout"> + <property name="spacing"> + <number>3</number> + </property> + <property name="leftMargin"> + <number>3</number> + </property> + <property name="topMargin"> + <number>3</number> + </property> + <property name="rightMargin"> + <number>3</number> + </property> + <property name="bottomMargin"> + <number>3</number> + </property> + <item> + <widget class="QPushButton" name="buttonB"> + <property name="minimumSize"> + <size> + <width>57</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>55</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">min-width: 55px;</string> + </property> + <property name="text"> + <string>B</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <spacer name="horizontalSpacerXRight"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <spacer name="verticalSpacerBottomRight"> + <property name="orientation"> + <enum>Qt::Vertical</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>0</height> + </size> + </property> + </spacer> + </item> + <item> + <widget class="QGroupBox" name="RStick"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="title"> + <string>Right Stick</string> + </property> + <property name="alignment"> + <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set> + </property> + <property name="flat"> + <bool>false</bool> + </property> + <property name="checkable"> + <bool>false</bool> + </property> + <layout class="QVBoxLayout" name="verticalLayout_2"> + <property name="spacing"> + <number>0</number> </property> - </widget> - </item> - </layout> - </item> - <item> - <widget class="QPushButton" name="buttonMinus"> - <property name="text"> - <string/> - </property> - </widget> - </item> - </layout> - </item> - <item row="3" column="1"> - <spacer name="verticalSpacer_2"> - <property name="orientation"> - <enum>Qt::Vertical</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>20</width> - <height>40</height> - </size> - </property> - </spacer> - </item> - <item row="0" column="0"> - <layout class="QVBoxLayout" name="buttonMiscPlusVerticalLayout"> - <item> - <layout class="QHBoxLayout" name="buttonMiscPlusHorizontalLayout"> - <item> - <widget class="QLabel" name="labelPlus"> - <property name="text"> - <string>Plus:</string> + <property name="leftMargin"> + <number>3</number> </property> - </widget> - </item> - </layout> - </item> - <item> - <widget class="QPushButton" name="buttonPlus"> - <property name="text"> - <string/> - </property> - </widget> - </item> - </layout> - </item> - <item row="0" column="1"> - <layout class="QVBoxLayout" name="buttonMiscHomeVerticalLayout"> - <item> - <layout class="QHBoxLayout" name="buttonMiscHomeHorizontalLayout"> - <item> - <widget class="QLabel" name="labelHome"> - <property name="text"> - <string>Home:</string> + <property name="topMargin"> + <number>0</number> </property> - </widget> - </item> - </layout> - </item> - <item> - <widget class="QPushButton" name="buttonHome"> - <property name="text"> - <string/> - </property> - </widget> - </item> - </layout> - </item> - <item row="1" column="1"> - <layout class="QVBoxLayout" name="buttonMiscScrCapVerticalLayout"> - <item> - <layout class="QHBoxLayout" name="buttonMiscScrCapHorizontalLayout"> - <item> - <widget class="QLabel" name="labelScreenshot"> - <property name="text"> - <string>Screen Capture:</string> + <property name="rightMargin"> + <number>3</number> </property> - <property name="wordWrap"> - <bool>false</bool> + <property name="bottomMargin"> + <number>0</number> </property> - </widget> - </item> - </layout> - </item> - <item> - <widget class="QPushButton" name="buttonScreenshot"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="maximumSize"> - <size> - <width>80</width> - <height>16777215</height> - </size> - </property> - <property name="text"> - <string/> - </property> - </widget> - </item> - </layout> + <item> + <widget class="QWidget" name="buttonRStickUpWidget" native="true"> + <property name="minimumSize"> + <size> + <width>0</width> + <height>0</height> + </size> + </property> + <layout class="QHBoxLayout" name="horizontalLayout_9"> + <property name="spacing"> + <number>0</number> + </property> + <property name="leftMargin"> + <number>0</number> + </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> + <item> + <spacer name="horizontalSpacerRStickUpLeft"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item alignment="Qt::AlignHCenter"> + <widget class="QGroupBox" name="buttonRStickUpGroup"> + <property name="title"> + <string>Up</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <layout class="QVBoxLayout" name="buttonRStickUpVerticalLayout"> + <property name="spacing"> + <number>3</number> + </property> + <property name="leftMargin"> + <number>3</number> + </property> + <property name="topMargin"> + <number>3</number> + </property> + <property name="rightMargin"> + <number>3</number> + </property> + <property name="bottomMargin"> + <number>3</number> + </property> + <item> + <widget class="QPushButton" name="buttonRStickUp"> + <property name="minimumSize"> + <size> + <width>57</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>55</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">min-width: 55px;</string> + </property> + <property name="text"> + <string>Up</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <spacer name="horizontalSpacerRStickUpRight"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </widget> + </item> + <item> + <layout class="QHBoxLayout" name="buttonRStickLeftRightHorizontalLayout"> + <property name="spacing"> + <number>3</number> + </property> + <item alignment="Qt::AlignHCenter"> + <widget class="QGroupBox" name="buttonRStickLeftGroup"> + <property name="title"> + <string>Left</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <layout class="QVBoxLayout" name="buttonRStickLeftVerticalLayout"> + <property name="spacing"> + <number>3</number> + </property> + <property name="leftMargin"> + <number>3</number> + </property> + <property name="topMargin"> + <number>3</number> + </property> + <property name="rightMargin"> + <number>3</number> + </property> + <property name="bottomMargin"> + <number>3</number> + </property> + <item> + <widget class="QPushButton" name="buttonRStickLeft"> + <property name="minimumSize"> + <size> + <width>57</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>55</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">min-width: 55px;</string> + </property> + <property name="text"> + <string>Left</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item alignment="Qt::AlignHCenter"> + <widget class="QGroupBox" name="buttonRStickRightGroup"> + <property name="title"> + <string>Right</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <layout class="QVBoxLayout" name="buttonRStickRightVerticalLayout"> + <property name="spacing"> + <number>3</number> + </property> + <property name="leftMargin"> + <number>3</number> + </property> + <property name="topMargin"> + <number>3</number> + </property> + <property name="rightMargin"> + <number>3</number> + </property> + <property name="bottomMargin"> + <number>3</number> + </property> + <item> + <widget class="QPushButton" name="buttonRStickRight"> + <property name="minimumSize"> + <size> + <width>57</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>55</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">min-width: 55px;</string> + </property> + <property name="text"> + <string>Right</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + </layout> + </item> + <item> + <widget class="QWidget" name="buttonRStickDownWidget" native="true"> + <layout class="QHBoxLayout" name="horizontalLayout_11"> + <property name="spacing"> + <number>0</number> + </property> + <property name="leftMargin"> + <number>0</number> + </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> + <item> + <spacer name="horizontalSpacerRStickDownLeft"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item> + <widget class="QGroupBox" name="buttonRStickDownGroup"> + <property name="title"> + <string>Down</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <layout class="QVBoxLayout" name="buttonRStickDownVerticalLayout"> + <property name="spacing"> + <number>3</number> + </property> + <property name="leftMargin"> + <number>3</number> + </property> + <property name="topMargin"> + <number>3</number> + </property> + <property name="rightMargin"> + <number>3</number> + </property> + <property name="bottomMargin"> + <number>3</number> + </property> + <item> + <widget class="QPushButton" name="buttonRStickDown"> + <property name="minimumSize"> + <size> + <width>57</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>55</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">min-width: 55px;</string> + </property> + <property name="text"> + <string>Down</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <spacer name="horizontalSpacerRStickDownRight"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </widget> + </item> + <item> + <layout class="QHBoxLayout" name="buttonRStickPressedModifierHorizontalLayout"> + <property name="spacing"> + <number>3</number> + </property> + <item alignment="Qt::AlignHCenter"> + <widget class="QGroupBox" name="groupRStickPressed"> + <property name="title"> + <string>Pressed</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <layout class="QVBoxLayout" name="buttonRStickPressedVerticalLayout"> + <property name="spacing"> + <number>3</number> + </property> + <property name="leftMargin"> + <number>3</number> + </property> + <property name="topMargin"> + <number>3</number> + </property> + <property name="rightMargin"> + <number>3</number> + </property> + <property name="bottomMargin"> + <number>3</number> + </property> + <item> + <widget class="QPushButton" name="buttonRStick"> + <property name="minimumSize"> + <size> + <width>57</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>55</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">min-width: 55px;</string> + </property> + <property name="text"> + <string>Pressed</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item alignment="Qt::AlignHCenter"> + <widget class="QGroupBox" name="buttonRStickModGroup"> + <property name="title"> + <string>Modifier</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <layout class="QVBoxLayout" name="buttonRStickModVerticalLayout"> + <property name="spacing"> + <number>3</number> + </property> + <property name="leftMargin"> + <number>3</number> + </property> + <property name="topMargin"> + <number>3</number> + </property> + <property name="rightMargin"> + <number>3</number> + </property> + <property name="bottomMargin"> + <number>3</number> + </property> + <item> + <widget class="QPushButton" name="buttonRStickMod"> + <property name="minimumSize"> + <size> + <width>57</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>55</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">min-width: 55px;</string> + </property> + <property name="text"> + <string>Modifier</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QGroupBox" name="buttonRStickRangeGroup"> + <property name="title"> + <string>Range</string> + </property> + <layout class="QHBoxLayout" name="buttonRStickRangeGroupHorizontalLayout"> + <property name="spacing"> + <number>3</number> + </property> + <property name="leftMargin"> + <number>3</number> + </property> + <property name="topMargin"> + <number>3</number> + </property> + <property name="rightMargin"> + <number>3</number> + </property> + <property name="bottomMargin"> + <number>3</number> + </property> + <item> + <widget class="QSpinBox" name="spinboxRStickRange"> + <property name="minimumSize"> + <size> + <width>55</width> + <height>21</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>55</width> + <height>16777215</height> + </size> + </property> + <property name="suffix"> + <string>%</string> + </property> + <property name="minimum"> + <number>50</number> + </property> + <property name="maximum"> + <number>150</number> + </property> + <property name="value"> + <number>100</number> + </property> + </widget> + </item> + </layout> + </widget> + </item> + </layout> + </item> + <item> + <layout class="QVBoxLayout" name="sliderRStickDeadzoneModifierRangeVerticalLayout"> + <property name="spacing"> + <number>3</number> + </property> + <property name="leftMargin"> + <number>0</number> + </property> + <property name="topMargin"> + <number>2</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>3</number> + </property> + <item> + <layout class="QHBoxLayout" name="sliderRStickDeadzoneHorizontalLayout"> + <item> + <widget class="QLabel" name="labelRStickDeadzone"> + <property name="text"> + <string>Deadzone: 0%</string> + </property> + <property name="alignment"> + <set>Qt::AlignHCenter</set> + </property> + </widget> + </item> + </layout> + </item> + <item> + <widget class="QSlider" name="sliderRStickDeadzone"> + <property name="maximum"> + <number>100</number> + </property> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + </widget> + </item> + <item> + <layout class="QHBoxLayout" name="sliderRStickModifierRangeHorizontalLayout"> + <item> + <widget class="QLabel" name="labelRStickModifierRange"> + <property name="text"> + <string>Modifier Range: 0%</string> + </property> + <property name="alignment"> + <set>Qt::AlignHCenter</set> + </property> + </widget> + </item> + </layout> + </item> + <item> + <widget class="QSlider" name="sliderRStickModifierRange"> + <property name="maximum"> + <number>100</number> + </property> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + </widget> + </item> + </layout> + </item> + </layout> + </widget> + </item> + <item> + <spacer name="verticalSpacerBottomRight_2"> + <property name="orientation"> + <enum>Qt::Vertical</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>0</height> + </size> + </property> + </spacer> + </item> + </layout> + </widget> </item> </layout> </widget> </item> </layout> </item> - <item> - <spacer name="verticalSpacer"> - <property name="orientation"> - <enum>Qt::Vertical</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>20</width> - <height>40</height> - </size> - </property> - </spacer> - </item> - <item> - <layout class="QHBoxLayout" name="horizontalLayout"/> - </item> - <item> - <layout class="QHBoxLayout" name="horizontalLayout_2"> - <item> - <widget class="QPushButton" name="buttonClearAll"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Minimum" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="sizeIncrement"> - <size> - <width>0</width> - <height>0</height> - </size> - </property> - <property name="baseSize"> - <size> - <width>0</width> - <height>0</height> - </size> - </property> - <property name="layoutDirection"> - <enum>Qt::LeftToRight</enum> - </property> - <property name="text"> - <string>Clear All</string> - </property> - </widget> - </item> - <item> - <widget class="QPushButton" name="buttonRestoreDefaults"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Minimum" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="sizeIncrement"> - <size> - <width>0</width> - <height>0</height> - </size> - </property> - <property name="baseSize"> - <size> - <width>0</width> - <height>0</height> - </size> - </property> - <property name="layoutDirection"> - <enum>Qt::LeftToRight</enum> - </property> - <property name="text"> - <string>Restore Defaults</string> - </property> - </widget> - </item> - <item> - <spacer name="horizontalSpacer"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>40</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - <item> - <widget class="QDialogButtonBox" name="buttonBox"> - <property name="standardButtons"> - <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set> - </property> - </widget> - </item> - </layout> - </item> </layout> </widget> - <resources/> - <connections> - <connection> - <sender>buttonBox</sender> - <signal>accepted()</signal> - <receiver>ConfigureInputPlayer</receiver> - <slot>accept()</slot> - <hints> - <hint type="sourcelabel"> - <x>371</x> - <y>730</y> - </hint> - <hint type="destinationlabel"> - <x>229</x> - <y>375</y> - </hint> - </hints> - </connection> - <connection> - <sender>buttonBox</sender> - <signal>rejected()</signal> - <receiver>ConfigureInputPlayer</receiver> - <slot>reject()</slot> - <hints> - <hint type="sourcelabel"> - <x>371</x> - <y>730</y> - </hint> - <hint type="destinationlabel"> - <x>229</x> - <y>375</y> - </hint> - </hints> - </connection> - </connections> + <resources> + <include location="../../../dist/icons/controller/controller.qrc"/> + </resources> + <connections/> </ui> diff --git a/src/yuzu/configuration/configure_input_simple.cpp b/src/yuzu/configuration/configure_input_simple.cpp deleted file mode 100644 index 0e0e8f1139..0000000000 --- a/src/yuzu/configuration/configure_input_simple.cpp +++ /dev/null @@ -1,152 +0,0 @@ -// Copyright 2016 Citra Emulator Project -// Licensed under GPLv2 or any later version -// Refer to the license.txt file included. - -#include <array> -#include <tuple> - -#include "ui_configure_input_simple.h" -#include "yuzu/configuration/configure_input.h" -#include "yuzu/configuration/configure_input_player.h" -#include "yuzu/configuration/configure_input_simple.h" -#include "yuzu/uisettings.h" - -namespace { - -template <typename Dialog, typename... Args> -void CallConfigureDialog(ConfigureInputSimple* caller, Args&&... args) { - caller->ApplyConfiguration(); - Dialog dialog(caller, std::forward<Args>(args)...); - - const auto res = dialog.exec(); - if (res == QDialog::Accepted) { - dialog.ApplyConfiguration(); - } -} - -// OnProfileSelect functions should (when applicable): -// - Set controller types -// - Set controller enabled -// - Set docked mode -// - Set advanced controller config/enabled (i.e. debug, kbd, mouse, touch) -// -// OnProfileSelect function should NOT however: -// - Reset any button mappings -// - Open any dialogs -// - Block in any way - -constexpr std::size_t PLAYER_0_INDEX = 0; -constexpr std::size_t HANDHELD_INDEX = 8; - -void HandheldOnProfileSelect() { - Settings::values.players[HANDHELD_INDEX].connected = true; - Settings::values.players[HANDHELD_INDEX].type = Settings::ControllerType::DualJoycon; - - for (std::size_t player = 0; player < HANDHELD_INDEX; ++player) { - Settings::values.players[player].connected = false; - } - - Settings::values.use_docked_mode = false; - Settings::values.keyboard_enabled = false; - Settings::values.mouse_enabled = false; - Settings::values.debug_pad_enabled = false; - Settings::values.touchscreen.enabled = true; -} - -void DualJoyconsDockedOnProfileSelect() { - Settings::values.players[PLAYER_0_INDEX].connected = true; - Settings::values.players[PLAYER_0_INDEX].type = Settings::ControllerType::DualJoycon; - - for (std::size_t player = 1; player <= HANDHELD_INDEX; ++player) { - Settings::values.players[player].connected = false; - } - - Settings::values.use_docked_mode = true; - Settings::values.keyboard_enabled = false; - Settings::values.mouse_enabled = false; - Settings::values.debug_pad_enabled = false; - Settings::values.touchscreen.enabled = true; -} - -// Name, OnProfileSelect (called when selected in drop down), OnConfigure (called when configure -// is clicked) -using InputProfile = std::tuple<const char*, void (*)(), void (*)(ConfigureInputSimple*)>; - -constexpr std::array<InputProfile, 3> INPUT_PROFILES{{ - {QT_TR_NOOP("Single Player - Handheld - Undocked"), HandheldOnProfileSelect, - [](ConfigureInputSimple* caller) { - CallConfigureDialog<ConfigureInputPlayer>(caller, HANDHELD_INDEX, false); - }}, - {QT_TR_NOOP("Single Player - Dual Joycons - Docked"), DualJoyconsDockedOnProfileSelect, - [](ConfigureInputSimple* caller) { - CallConfigureDialog<ConfigureInputPlayer>(caller, PLAYER_0_INDEX, false); - }}, - {QT_TR_NOOP("Custom"), [] {}, CallConfigureDialog<ConfigureInput>}, -}}; - -} // namespace - -void ApplyInputProfileConfiguration(int profile_index) { - std::get<1>( - INPUT_PROFILES.at(std::min(profile_index, static_cast<int>(INPUT_PROFILES.size() - 1))))(); -} - -ConfigureInputSimple::ConfigureInputSimple(QWidget* parent) - : QWidget(parent), ui(std::make_unique<Ui::ConfigureInputSimple>()) { - ui->setupUi(this); - - for (const auto& profile : INPUT_PROFILES) { - const QString label = tr(std::get<0>(profile)); - ui->profile_combobox->addItem(label, label); - } - - connect(ui->profile_combobox, QOverload<int>::of(&QComboBox::currentIndexChanged), this, - &ConfigureInputSimple::OnSelectProfile); - connect(ui->profile_configure, &QPushButton::clicked, this, &ConfigureInputSimple::OnConfigure); - - LoadConfiguration(); -} - -ConfigureInputSimple::~ConfigureInputSimple() = default; - -void ConfigureInputSimple::ApplyConfiguration() { - auto index = ui->profile_combobox->currentIndex(); - // Make the stored index for "Custom" very large so that if new profiles are added it - // doesn't change. - if (index >= static_cast<int>(INPUT_PROFILES.size() - 1)) { - index = std::numeric_limits<int>::max(); - } - - UISettings::values.profile_index = index; -} - -void ConfigureInputSimple::changeEvent(QEvent* event) { - if (event->type() == QEvent::LanguageChange) { - RetranslateUI(); - } - - QWidget::changeEvent(event); -} - -void ConfigureInputSimple::RetranslateUI() { - ui->retranslateUi(this); -} - -void ConfigureInputSimple::LoadConfiguration() { - const auto index = UISettings::values.profile_index; - if (index >= static_cast<int>(INPUT_PROFILES.size()) || index < 0) { - ui->profile_combobox->setCurrentIndex(static_cast<int>(INPUT_PROFILES.size() - 1)); - } else { - ui->profile_combobox->setCurrentIndex(index); - } -} - -void ConfigureInputSimple::OnSelectProfile(int index) { - const auto old_docked = Settings::values.use_docked_mode; - ApplyInputProfileConfiguration(index); - OnDockedModeChanged(old_docked, Settings::values.use_docked_mode); -} - -void ConfigureInputSimple::OnConfigure() { - std::get<2>(INPUT_PROFILES.at(ui->profile_combobox->currentIndex()))(this); -} diff --git a/src/yuzu/configuration/configure_input_simple.h b/src/yuzu/configuration/configure_input_simple.h deleted file mode 100644 index bb50502243..0000000000 --- a/src/yuzu/configuration/configure_input_simple.h +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright 2016 Citra Emulator Project -// Licensed under GPLv2 or any later version -// Refer to the license.txt file included. - -#pragma once - -#include <memory> - -#include <QWidget> - -class QPushButton; -class QString; -class QTimer; - -namespace Ui { -class ConfigureInputSimple; -} - -// Used by configuration loader to apply a profile if the input is invalid. -void ApplyInputProfileConfiguration(int profile_index); - -class ConfigureInputSimple : public QWidget { - Q_OBJECT - -public: - explicit ConfigureInputSimple(QWidget* parent = nullptr); - ~ConfigureInputSimple() override; - - /// Save all button configurations to settings file - void ApplyConfiguration(); - -private: - void changeEvent(QEvent* event) override; - void RetranslateUI(); - - /// Load configuration settings. - void LoadConfiguration(); - - void OnSelectProfile(int index); - void OnConfigure(); - - std::unique_ptr<Ui::ConfigureInputSimple> ui; -}; diff --git a/src/yuzu/configuration/configure_input_simple.ui b/src/yuzu/configuration/configure_input_simple.ui deleted file mode 100644 index c4889caa99..0000000000 --- a/src/yuzu/configuration/configure_input_simple.ui +++ /dev/null @@ -1,97 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<ui version="4.0"> - <class>ConfigureInputSimple</class> - <widget class="QWidget" name="ConfigureInputSimple"> - <property name="geometry"> - <rect> - <x>0</x> - <y>0</y> - <width>473</width> - <height>685</height> - </rect> - </property> - <property name="windowTitle"> - <string>ConfigureInputSimple</string> - </property> - <layout class="QVBoxLayout" name="verticalLayout_5"> - <item> - <layout class="QVBoxLayout" name="verticalLayout"> - <item> - <widget class="QGroupBox" name="gridGroupBox"> - <property name="title"> - <string>Profile</string> - </property> - <layout class="QGridLayout" name="gridLayout"> - <item row="1" column="2"> - <widget class="QPushButton" name="profile_configure"> - <property name="text"> - <string>Configure</string> - </property> - </widget> - </item> - <item row="1" column="0"> - <spacer name="horizontalSpacer"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>40</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - <item row="1" column="3"> - <spacer name="horizontalSpacer_2"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>40</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - <item row="1" column="1"> - <widget class="QComboBox" name="profile_combobox"> - <property name="minimumSize"> - <size> - <width>250</width> - <height>0</height> - </size> - </property> - </widget> - </item> - <item row="0" column="1" colspan="2"> - <widget class="QLabel" name="label"> - <property name="text"> - <string>Choose a controller configuration:</string> - </property> - </widget> - </item> - </layout> - </widget> - </item> - </layout> - </item> - <item> - <spacer name="verticalSpacer"> - <property name="orientation"> - <enum>Qt::Vertical</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>20</width> - <height>40</height> - </size> - </property> - </spacer> - </item> - </layout> - </widget> - <resources/> - <connections/> -</ui> diff --git a/src/yuzu/configuration/configure_mouse_advanced.cpp b/src/yuzu/configuration/configure_mouse_advanced.cpp index 5bcf5ffa88..95e1ae8733 100644 --- a/src/yuzu/configuration/configure_mouse_advanced.cpp +++ b/src/yuzu/configuration/configure_mouse_advanced.cpp @@ -205,15 +205,11 @@ void ConfigureMouseAdvanced::HandleClick( poller->Start(); } - grabKeyboard(); - grabMouse(); - timeout_timer->start(5000); // Cancel after 5 seconds - poll_timer->start(200); // Check for new inputs every 200ms + timeout_timer->start(2500); // Cancel after 2.5 seconds + poll_timer->start(50); // Check for new inputs every 50ms } void ConfigureMouseAdvanced::SetPollingResult(const Common::ParamPackage& params, bool abort) { - releaseKeyboard(); - releaseMouse(); timeout_timer->stop(); poll_timer->stop(); for (auto& poller : device_pollers) { diff --git a/src/yuzu/configuration/configure_mouse_advanced.ui b/src/yuzu/configuration/configure_mouse_advanced.ui index 08245ecf0b..74552fdbd7 100644 --- a/src/yuzu/configuration/configure_mouse_advanced.ui +++ b/src/yuzu/configuration/configure_mouse_advanced.ui @@ -6,13 +6,18 @@ <rect> <x>0</x> <y>0</y> - <width>250</width> - <height>261</height> + <width>310</width> + <height>193</height> </rect> </property> <property name="windowTitle"> <string>Configure Mouse</string> </property> + <property name="styleSheet"> + <string notr="true">QPushButton { + min-width: 55px; +}</string> + </property> <layout class="QVBoxLayout" name="verticalLayout"> <item> <widget class="QGroupBox" name="gridGroupBox"> @@ -20,81 +25,33 @@ <string>Mouse Buttons</string> </property> <layout class="QGridLayout" name="gridLayout"> - <item row="0" column="4"> - <spacer name="horizontalSpacer_2"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeType"> - <enum>QSizePolicy::Fixed</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>20</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - <item row="0" column="3"> - <layout class="QVBoxLayout" name="verticalLayout_4"> + <item row="3" column="5"> + <layout class="QVBoxLayout" name="verticalLayout_6"> <item> - <layout class="QHBoxLayout" name="horizontalLayout_3"> + <layout class="QHBoxLayout" name="horizontalLayout_5"> <item> - <widget class="QLabel" name="label_3"> + <widget class="QLabel" name="label_5"> <property name="text"> - <string>Right:</string> + <string>Forward:</string> </property> </widget> </item> </layout> </item> <item> - <widget class="QPushButton" name="right_button"> + <widget class="QPushButton" name="forward_button"> <property name="minimumSize"> <size> - <width>75</width> + <width>57</width> <height>0</height> </size> </property> - <property name="text"> - <string/> + <property name="maximumSize"> + <size> + <width>16777215</width> + <height>16777215</height> + </size> </property> - </widget> - </item> - </layout> - </item> - <item row="0" column="0"> - <spacer name="horizontalSpacer"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeType"> - <enum>QSizePolicy::Fixed</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>20</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - <item row="2" column="1"> - <layout class="QVBoxLayout" name="verticalLayout_3"> - <item> - <layout class="QHBoxLayout" name="horizontalLayout_2"> - <item> - <widget class="QLabel" name="label_2"> - <property name="text"> - <string>Middle:</string> - </property> - </widget> - </item> - </layout> - </item> - <item> - <widget class="QPushButton" name="middle_button"> <property name="text"> <string/> </property> @@ -123,6 +80,12 @@ </item> <item> <widget class="QPushButton" name="back_button"> + <property name="minimumSize"> + <size> + <width>57</width> + <height>0</height> + </size> + </property> <property name="text"> <string/> </property> @@ -147,7 +110,7 @@ <widget class="QPushButton" name="left_button"> <property name="minimumSize"> <size> - <width>75</width> + <width>57</width> <height>0</height> </size> </property> @@ -158,21 +121,99 @@ </item> </layout> </item> - <item row="3" column="3"> - <layout class="QVBoxLayout" name="verticalLayout_6"> + <item row="0" column="3"> + <layout class="QVBoxLayout" name="verticalLayout_3"> <item> - <layout class="QHBoxLayout" name="horizontalLayout_5"> + <layout class="QHBoxLayout" name="horizontalLayout_2"> <item> - <widget class="QLabel" name="label_5"> + <widget class="QLabel" name="label_2"> <property name="text"> - <string>Forward:</string> + <string>Middle:</string> </property> </widget> </item> </layout> </item> <item> - <widget class="QPushButton" name="forward_button"> + <widget class="QPushButton" name="middle_button"> + <property name="minimumSize"> + <size> + <width>57</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>16777215</width> + <height>16777215</height> + </size> + </property> + <property name="text"> + <string/> + </property> + </widget> + </item> + </layout> + </item> + <item row="0" column="6"> + <spacer name="horizontalSpacer_2"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType"> + <enum>QSizePolicy::Fixed</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>0</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item row="0" column="0"> + <spacer name="horizontalSpacer"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType"> + <enum>QSizePolicy::Fixed</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>0</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item row="0" column="5"> + <layout class="QVBoxLayout" name="verticalLayout_4"> + <item> + <layout class="QHBoxLayout" name="horizontalLayout_3"> + <item> + <widget class="QLabel" name="label_3"> + <property name="text"> + <string>Right:</string> + </property> + </widget> + </item> + </layout> + </item> + <item> + <widget class="QPushButton" name="right_button"> + <property name="minimumSize"> + <size> + <width>57</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>16777215</width> + <height>16777215</height> + </size> + </property> <property name="text"> <string/> </property> @@ -180,6 +221,32 @@ </item> </layout> </item> + <item row="0" column="2"> + <spacer name="horizontalSpacer_4"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>0</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item row="0" column="4"> + <spacer name="horizontalSpacer_5"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>0</width> + <height>20</height> + </size> + </property> + </spacer> + </item> </layout> </widget> </item> @@ -187,15 +254,39 @@ <layout class="QHBoxLayout" name="horizontalLayout_6"> <item> <widget class="QPushButton" name="buttonClearAll"> + <property name="minimumSize"> + <size> + <width>57</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>16777215</width> + <height>16777215</height> + </size> + </property> <property name="text"> - <string>Clear All</string> + <string>Clear</string> </property> </widget> </item> <item> <widget class="QPushButton" name="buttonRestoreDefaults"> + <property name="minimumSize"> + <size> + <width>57</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>16777215</width> + <height>16777215</height> + </size> + </property> <property name="text"> - <string>Restore Defaults</string> + <string>Defaults</string> </property> </widget> </item> @@ -206,21 +297,24 @@ </property> <property name="sizeHint" stdset="0"> <size> - <width>40</width> + <width>0</width> <height>20</height> </size> </property> </spacer> </item> + <item> + <widget class="QDialogButtonBox" name="buttonBox"> + <property name="styleSheet"> + <string notr="true"/> + </property> + <property name="standardButtons"> + <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set> + </property> + </widget> + </item> </layout> </item> - <item> - <widget class="QDialogButtonBox" name="buttonBox"> - <property name="standardButtons"> - <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set> - </property> - </widget> - </item> </layout> </widget> <resources/> diff --git a/src/yuzu/uisettings.cpp b/src/yuzu/uisettings.cpp index a51175f36b..37499fc854 100644 --- a/src/yuzu/uisettings.cpp +++ b/src/yuzu/uisettings.cpp @@ -16,4 +16,5 @@ const Themes themes{{ }}; Values values = {}; + } // namespace UISettings diff --git a/src/yuzu/uisettings.h b/src/yuzu/uisettings.h index 2d2e82f15f..533815098d 100644 --- a/src/yuzu/uisettings.h +++ b/src/yuzu/uisettings.h @@ -13,6 +13,7 @@ #include <QStringList> #include <QVector> #include "common/common_types.h" +#include "core/settings.h" namespace UISettings { @@ -87,9 +88,6 @@ struct Values { // logging bool show_console; - // Controllers - int profile_index; - // Game List bool show_add_ons; uint32_t icon_size; @@ -100,6 +98,7 @@ struct Values { }; extern Values values; + } // namespace UISettings Q_DECLARE_METATYPE(UISettings::GameDir*); diff --git a/src/yuzu_cmd/config.cpp b/src/yuzu_cmd/config.cpp index 8a63fd1913..e9f1c65007 100644 --- a/src/yuzu_cmd/config.cpp +++ b/src/yuzu_cmd/config.cpp @@ -288,6 +288,8 @@ void Config::ReadValues() { Settings::values.debug_pad_analogs[i] = default_param; } + Settings::values.vibration_enabled = + sdl2_config->GetBoolean("ControlsGeneral", "vibration_enabled", true); Settings::values.touchscreen.enabled = sdl2_config->GetBoolean("ControlsGeneral", "touch_enabled", true); Settings::values.touchscreen.device = diff --git a/src/yuzu_tester/config.cpp b/src/yuzu_tester/config.cpp index 74022af236..aaf59129a6 100644 --- a/src/yuzu_tester/config.cpp +++ b/src/yuzu_tester/config.cpp @@ -75,6 +75,7 @@ void Config::ReadValues() { Settings::values.debug_pad_analogs[i] = ""; } + Settings::values.vibration_enabled = true; Settings::values.touchscreen.enabled = ""; Settings::values.touchscreen.device = ""; Settings::values.touchscreen.finger = 0; -- GitLab