diff options
author | Anuskuss | 2022-09-11 01:36:49 +0200 |
---|---|---|
committer | Anuskuss | 2022-09-11 01:36:49 +0200 |
commit | 2233bd4934677add244b0c8a0f1ceb5fc886a199 (patch) | |
tree | eda0cbe65779cea1508fe47ed3fb187c813d9a21 | |
parent | 67956e6b69dc08d9c5041a32427ada56d2efcad2 (diff) | |
download | aur-2233bd4934677add244b0c8a0f1ceb5fc886a199.tar.gz |
Fixed DSUController patch and added patch which fixes dark themes
-rw-r--r-- | .SRCINFO | 6 | ||||
-rw-r--r-- | PKGBUILD | 14 | ||||
-rw-r--r-- | dark.diff | 25 | ||||
-rw-r--r-- | dsu.diff | 61 |
4 files changed, 97 insertions, 9 deletions
@@ -1,7 +1,7 @@ pkgbase = cemu pkgdesc = Software to emulate Wii U games and applications on PC (with cutting edge Linux patches) pkgver = 2.0.116 - pkgrel = 1 + pkgrel = 2 url = https://cemu.info install = cemu.install arch = x86_64 @@ -34,6 +34,7 @@ pkgbase = cemu source = xdg.diff source = overlay.diff source = dsu.diff + source = dark.diff sha256sums = SKIP sha256sums = 9f14c788aee15b777051e48f868c5d4d959bd679fc5050e3d2a29de80d8fd32e sha256sums = 262faed507149c89aab7572fd2c2a968f843ca2900043e30a9c339735ed08a8f @@ -44,6 +45,7 @@ pkgbase = cemu sha256sums = SKIP sha256sums = 4061e28533d391ebc4745cdc47470438b20c64dd11f7308e5acf35d0fbc54326 sha256sums = f25d13fe76cc6a0b475f0131211a951288160ddae92cd7a815f5aea61d7cfc0f - sha256sums = 19a8fbc50dd1fe5beab3c3fc08ea1a0b767fa388b80c9d5d1a98b565855603a0 + sha256sums = 9af0cb88f07acad70aa5b7133ccbbaddacca542edea5817e622b4571cc26046d + sha256sums = 15243ffa555559ade19cdb99d42dc10a6b4d1402c9cee045a623dd4b30827a1d pkgname = cemu @@ -1,7 +1,7 @@ # Maintainer: Anuskuss <anuskuss@googlemail.com> pkgname=cemu pkgver=2.0.116 -pkgrel=1 +pkgrel=2 pkgdesc='Software to emulate Wii U games and applications on PC (with cutting edge Linux patches)' arch=(x86_64) url=https://cemu.info @@ -41,7 +41,8 @@ source=( # patches xdg.diff # 963f9b38349c5d03b26ab2a50ead2ee4e743ca41 overlay.diff # edeb14d4c68ee8bf500b990b13079177e01c25f1 - dsu.diff # b0e523a44ee7d69e6d2453325dcc669e2bcb719d + dsu.diff # dbe8c94dd427585fc2f0c49947fa2d8051d8f218 + 56b140f159f3322cce00bb87f34274d1f62c314b + dark.diff # 557d25c0525fd0dd662f41529c60fb9d722e5a0e ) sha256sums=( SKIP @@ -54,7 +55,8 @@ sha256sums=( SKIP 4061e28533d391ebc4745cdc47470438b20c64dd11f7308e5acf35d0fbc54326 f25d13fe76cc6a0b475f0131211a951288160ddae92cd7a815f5aea61d7cfc0f - 19a8fbc50dd1fe5beab3c3fc08ea1a0b767fa388b80c9d5d1a98b565855603a0 + 9af0cb88f07acad70aa5b7133ccbbaddacca542edea5817e622b4571cc26046d + 15243ffa555559ade19cdb99d42dc10a6b4d1402c9cee045a623dd4b30827a1d ) pkgver() { @@ -104,7 +106,11 @@ prepare() { git apply "$srcdir/overlay.diff" # experimental: dsu controller (https://github.com/cemu-project/Cemu/pull/234) + rm -f src/input/api/DSU/ReceiveTimeoutSocketOption.h git apply "$srcdir/dsu.diff" + + # experimental: dark mode fix (https://github.com/cemu-project/Cemu/pull/241) + git apply "$srcdir/dark.diff" } build() { @@ -145,6 +151,6 @@ package() { # install -Dm644 bin/shaderCache/info.txt "$pkgdir/opt/cemu/shaderCache/info.txt" install -Dm644 src/resource/logo_icon.png "$pkgdir/usr/share/icons/hicolor/128x128/apps/cemu.png" - sed -i "s|^Icon=info.cemu.Cemu$|Icon=cemu|;s|^Exec=cemu$|Exec=env GDK_BACKEND=x11 /usr/bin/cemu|" dist/linux/info.cemu.Cemu.desktop + sed -i -e '/^Icon=/cIcon=cemu' -e '/^Exec=/cExec=env GDK_BACKEND=x11 cemu' dist/linux/info.cemu.Cemu.desktop install -Dm644 dist/linux/info.cemu.Cemu.desktop "$pkgdir/usr/share/applications/cemu.desktop" } diff --git a/dark.diff b/dark.diff new file mode 100644 index 000000000000..ac6baba6b11d --- /dev/null +++ b/dark.diff @@ -0,0 +1,25 @@ +--- a/src/gui/components/wxGameList.cpp ++++ b/src/gui/components/wxGameList.cpp +@@ -274,11 +274,20 @@ void wxGameList::UpdateItemColors(sint32 startIndex) + { + const auto titleId = (uint64)GetItemData(i); + if (GetConfig().IsGameListFavorite(titleId))//entry->favorite) ++ { + SetItemBackgroundColour(i, kFavoriteColor); ++ SetItemTextColour(i, 0x000000UL); ++ } + else if ((i&1) != 0) +- SetItemBackgroundColour(i, kSecondColor); ++ { ++ SetItemBackgroundColour(i, wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOW)); ++ SetItemTextColour(i, wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOWTEXT)); ++ } + else +- SetItemBackgroundColour(i, 0xFFFFFFUL); ++ { ++ SetItemBackgroundColour(i, wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOWFRAME)); ++ SetItemTextColour(i, wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOWTEXT)); ++ } + } + } + @@ -4,16 +4,28 @@ api/DSU/DSUControllerProvider.h api/DSU/DSUMessages.h api/DSU/DSUMessages.cpp -+ api/DSU/TimeoutSocketOption.h ++ api/DSU/ReceiveTimeoutSocketOption.h ) # Keyboard controller +--- a/src/input/api/DSU/DSUController.cpp ++++ b/src/input/api/DSU/DSUController.cpp +@@ -164,5 +164,8 @@ ControllerState DSUController::raw_state() + result.rotation.y = (float)state.data.ry / std::numeric_limits<uint8>::max(); + result.rotation.y = (result.rotation.y * 2.0f) - 1.0f; + +- return result; ++ result.trigger.x = (float)state.data.l2 / std::numeric_limits<uint8>::max(); ++ result.trigger.y = (float)state.data.r2 / std::numeric_limits<uint8>::max(); ++ ++ return result; + } --- a/src/input/api/DSU/DSUControllerProvider.cpp +++ b/src/input/api/DSU/DSUControllerProvider.cpp @@ -1,5 +1,6 @@ #include "input/api/DSU/DSUControllerProvider.h" #include "input/api/DSU/DSUController.h" -+#include "input/api/DSU/TimeoutSocketOption.h" ++#include "input/api/DSU/ReceiveTimeoutSocketOption.h" DSUControllerProvider::DSUControllerProvider() : base_type(), m_uid(rand()), m_socket(m_io_service) @@ -24,7 +36,50 @@ + // set timeout for our threads to give a chance to exit - m_socket.set_option(boost::asio::detail::socket_option::integer<SOL_SOCKET, SO_RCVTIMEO>{200}); -+ m_socket.set_option(TimeoutSocketOption{200}); ++ m_socket.set_option(ReceiveTimeoutSocketOption{200}); // reset data m_state = {}; +--- /dev/null ++++ b/src/input/api/DSU/ReceiveTimeoutSocketOption.h +@@ -0,0 +1,39 @@ ++#pragma once ++ ++#if BOOST_OS_WINDOWS ++#include <boost/asio/detail/socket_option.hpp> ++#include <winsock2.h> // For SOL_SOCKET, SO_RCVTIMEO ++using ReceiveTimeoutSocketOption = boost::asio::detail::socket_option::integer<SOL_SOCKET, SO_RCVTIMEO>; ++#elif BOOST_OS_LINUX || BOOST_OS_MACOS ++ ++class ReceiveTimeoutSocketOption { ++ timeval m_data; // POSIX only allows timeeval to be parameter to option SO_RCVTIMEO ++public: ++ constexpr explicit ReceiveTimeoutSocketOption(int time_ms) ++ : m_data(timeval{.tv_usec = time_ms * 1000}){ ++ } ++ ReceiveTimeoutSocketOption& operator=(int time_ms){ ++ m_data = timeval{.tv_usec = time_ms * 1000}; ++ return *this; ++ } ++ template <typename Protocol> ++ int level(const Protocol&) const { ++ return SOL_SOCKET; ++ } ++ ++ template <typename Protocol> ++ int name(const Protocol&) const { ++ return SO_RCVTIMEO; ++ } ++ ++ template <typename Protocol> ++ const timeval* data(Protocol&) const { ++ return &m_data; ++ } ++ ++ template <typename Protocol> ++ std::size_t size(const Protocol&) const { ++ return sizeof(timeval); ++ } ++}; ++#endif +\ No newline at end of file |