From b1f4461b75f7c723562fe87a821aafaa5c7f2af3 Mon Sep 17 00:00:00 2001 From: SpoinkyNL Date: Sun, 13 Nov 2016 00:16:10 +0100 Subject: [PATCH] Throttling GTA V updates to improve performance --- .../Logitech/LogitechKeyboard.cs | 3 +- .../Artemis/Profiles/Lua/LuaLayerWrapper.cs | 2 +- Artemis/Artemis/Resources/LogitechLED.dll | Bin 165376 -> 43520 bytes Artemis/LogiLed2Artemis/LogiLed2Artemis.def | 48 +++++++++--------- Artemis/LogiLed2Artemis/main.cpp | 45 +++++++++++----- 5 files changed, 59 insertions(+), 39 deletions(-) diff --git a/Artemis/Artemis/DeviceProviders/Logitech/LogitechKeyboard.cs b/Artemis/Artemis/DeviceProviders/Logitech/LogitechKeyboard.cs index 3fb2bfd0f..80491a1b1 100644 --- a/Artemis/Artemis/DeviceProviders/Logitech/LogitechKeyboard.cs +++ b/Artemis/Artemis/DeviceProviders/Logitech/LogitechKeyboard.cs @@ -2,7 +2,6 @@ using System.Threading; using System.Windows; using Artemis.DeviceProviders.Logitech.Utilities; -using Artemis.Utilities; using Artemis.Utilities.DataReaders; using Microsoft.Win32; @@ -14,7 +13,7 @@ namespace Artemis.DeviceProviders.Logitech { // Check to see if VC++ 2012 x64 is installed. if (Registry.LocalMachine.OpenSubKey( - @"SOFTWARE\Classes\Installer\Dependencies\{ca67548a-5ebe-413a-b50c-4b9ceb6d66c6}") == null) + @"SOFTWARE\Classes\Installer\Dependencies\{ca67548a-5ebe-413a-b50c-4b9ceb6d66c6}") == null) { CantEnableText = "Couldn't connect to your Logitech keyboard.\n" + "The Visual C++ 2012 Redistributable v11.0.61030.0 could not be found, which is required.\n" + diff --git a/Artemis/Artemis/Profiles/Lua/LuaLayerWrapper.cs b/Artemis/Artemis/Profiles/Lua/LuaLayerWrapper.cs index 0ac4cd5af..661bf928f 100644 --- a/Artemis/Artemis/Profiles/Lua/LuaLayerWrapper.cs +++ b/Artemis/Artemis/Profiles/Lua/LuaLayerWrapper.cs @@ -127,7 +127,7 @@ namespace Artemis.Profiles.Lua return new LuaRadialGradientBrush(_layerModel.AppliedProperties.Brush); return null; } - set { _layerModel.AppliedProperties.Brush = value.Brush; } + set { _layerModel.AppliedProperties.Brush = value?.Brush; } } #endregion diff --git a/Artemis/Artemis/Resources/LogitechLED.dll b/Artemis/Artemis/Resources/LogitechLED.dll index 7fb78369bd2117e1f7f1bcaa78d3e3f2d01f2571..47ade51fcb5dfdeb20ec73fda624ca6454151a50 100644 GIT binary patch literal 43520 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 Blf3`{ literal 165376 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

C^1;Lv26F(09VnI0YVqOL86uS#% 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 diff --git a/Artemis/LogiLed2Artemis/LogiLed2Artemis.def b/Artemis/LogiLed2Artemis/LogiLed2Artemis.def index ef38be3f1..890fbfc44 100644 --- a/Artemis/LogiLed2Artemis/LogiLed2Artemis.def +++ b/Artemis/LogiLed2Artemis/LogiLed2Artemis.def @@ -1,27 +1,27 @@ -// Original work by VRocker https://github.com/VRocker/LogiLed2Corsair -// I'm mainly a C# developer, and these modification aren't a piece of art, but it suits our needs. - -// The MIT License (MIT) -// -// Copyright (c) 2015 VRocker -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. +; Original work by VRocker https://github.com/VRocker/LogiLed2Corsair +; I'm mainly a C# developer, and these modification aren't a piece of art, but it suits our needs. +; +; The MIT License (MIT) +; +; Copyright (c) 2015 VRocker +; +; Permission is hereby granted, free of charge, to any person obtaining a copy +; of this software and associated documentation files (the "Software"), to deal +; in the Software without restriction, including without limitation the rights +; to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +; copies of the Software, and to permit persons to whom the Software is +; furnished to do so, subject to the following conditions: +; +; The above copyright notice and this permission notice shall be included in all +; copies or substantial portions of the Software. +; +; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +; IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +; FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +; AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +; LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +; OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +; SOFTWARE. LIBRARY LogiLed2Artemis.dll diff --git a/Artemis/LogiLed2Artemis/main.cpp b/Artemis/LogiLed2Artemis/main.cpp index 23e25b587..8181302bf 100644 --- a/Artemis/LogiLed2Artemis/main.cpp +++ b/Artemis/LogiLed2Artemis/main.cpp @@ -37,29 +37,40 @@ using namespace std; static bool g_hasInitialised = false; static bool mustLog = false; +static int throttle = 0; const char* game = ""; +const char* GetGame() +{ + CHAR divisionFind[] = ("Division"); + CHAR gtaFind[] = ("GTA"); + CHAR szPath[MAX_PATH]; + + GetModuleFileNameA(NULL, szPath, MAX_PATH); + char *output; + + output = strstr(szPath, divisionFind); + if (output) + return "division"; + output = strstr(szPath, gtaFind); + if (output) + return "gta"; + + return "bf1"; +}; + BOOL WINAPI DllMain(HINSTANCE hInst, DWORD fdwReason, LPVOID) { if (fdwReason == DLL_PROCESS_ATTACH) - { - // Get the process that loaded the DLL - TCHAR divisionFind[] = _T("Division"); - TCHAR gtaFind[] = _T("GTA"); - TCHAR szPath[MAX_PATH]; - GetModuleFileName(NULL, szPath, MAX_PATH); - - if (_tcscmp(szPath, divisionFind) != 0) - game = "division"; - else if (_tcscmp(szPath, gtaFind) != 0) - game = "gta"; + { + game = GetGame(); if (mustLog) { ofstream myfile; myfile.open("log.txt", ios::out | ios::app); - myfile << "Main called, DLL loaded into " << szPath << "\n"; + myfile << "Main called, DLL loaded into " << game << "\n"; myfile.close(); } } @@ -120,6 +131,16 @@ void Transmit(const char* msg) // LogiLedSetLighting appears to have an undocumented extra argument bool LogiLedSetLighting(int redPercentage, int greenPercentage, int bluePercentage, int custom = 0) { + // GTA goes mental on the SetLighting calls, lets only send one in every 20 + if (game == "gta") + { + throttle++; + if (throttle > 20) + throttle = 0; + else + return true; + } + if (mustLog) { ofstream myfile;