1
0
mirror of https://github.com/Artemis-RGB/Artemis synced 2025-12-31 09:43:46 +00:00

Referencing to own CUE build for now

Fixed mousemat color processing
This commit is contained in:
SpoinkyNL 2016-09-09 11:48:12 +02:00
parent 4b994ee061
commit 694ab834bd
5 changed files with 29 additions and 14 deletions

View File

@ -153,7 +153,7 @@
</Reference> </Reference>
<Reference Include="CUE.NET, Version=1.0.3.0, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="CUE.NET, Version=1.0.3.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\CUE.NET\bin\CUE.NET.dll</HintPath> <HintPath>lib\CUE.NET.dll</HintPath>
</Reference> </Reference>
<Reference Include="DeltaCompressionDotNet, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1d14d6e5194e7f4a, processorArchitecture=MSIL"> <Reference Include="DeltaCompressionDotNet, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1d14d6e5194e7f4a, processorArchitecture=MSIL">
<HintPath>..\packages\DeltaCompressionDotNet.1.0.0\lib\net45\DeltaCompressionDotNet.dll</HintPath> <HintPath>..\packages\DeltaCompressionDotNet.1.0.0\lib\net45\DeltaCompressionDotNet.dll</HintPath>

View File

@ -45,38 +45,38 @@ namespace Artemis.DeviceProviders.Corsair
if (bitmap.Width != bitmap.Height) if (bitmap.Width != bitmap.Height)
throw new ArgumentException("Bitmap must be a perfect square"); throw new ArgumentException("Bitmap must be a perfect square");
var yStep = (double) bitmap.Width/5; var yStep = (double) bitmap.Width/4;
var xStep = (double) bitmap.Width/7; var xStep = (double) bitmap.Width/6;
// This approach will break if any mousemats with different LED amounts are released, for now it will do. // This approach will break if any mousemats with different LED amounts are released, for now it will do.
using (bitmap) using (bitmap)
{ {
var ledIndex = 1; var ledIndex = 0;
// Color each LED according to one of the pixels // Color each LED according to one of the pixels
foreach (var corsairLed in CueSDK.MousematSDK.Leds.OrderBy(l => l.ToString())) foreach (var corsairLed in CueSDK.MousematSDK.Leds.OrderBy(l => l.ToString()))
{ {
Color col; Color col;
// Left side // Left side
if (ledIndex < 6) if (ledIndex < 5)
{ {
col = ledIndex != 5 col = ledIndex == 0
? bitmap.GetPixel(0, (int) (ledIndex*yStep + yStep/2)) ? bitmap.GetPixel(0, (int) (ledIndex*yStep))
: bitmap.GetPixel(0, (int) (ledIndex*yStep) - 1); : bitmap.GetPixel(0, (int) (ledIndex*yStep) - 1);
} }
// Bottom // Bottom
else if (ledIndex < 11) else if (ledIndex < 10)
{ {
// Start at index 2 because the corner belongs to the left side // Start at index 1 because the corner belongs to the left side
var zoneIndex = ledIndex - 4; var zoneIndex = ledIndex - 4;
col = bitmap.GetPixel((int) (zoneIndex*xStep + xStep/2), 0); col = bitmap.GetPixel((int) (zoneIndex*xStep), 39);
} }
// Right side // Right side
else else
{ {
var zoneIndex = ledIndex - 10; var zoneIndex = ledIndex - 10;
col = zoneIndex != 5 col = zoneIndex == 4
? bitmap.GetPixel(0, bitmap.Height - ((int) (zoneIndex*yStep + yStep/2))) ? bitmap.GetPixel(39, 40 - (int) (zoneIndex*yStep))
: bitmap.GetPixel(0, bitmap.Height - ((int) (zoneIndex*yStep) - 1)); : bitmap.GetPixel(39, 39 - (int) (zoneIndex*yStep));
} }
corsairLed.Color = col; corsairLed.Color = col;

View File

@ -6,6 +6,7 @@ using Artemis.Managers;
using Artemis.Models; using Artemis.Models;
using Artemis.Modules.Games.WoW.Data; using Artemis.Modules.Games.WoW.Data;
using Artemis.Profiles.Layers.Models; using Artemis.Profiles.Layers.Models;
using Artemis.Settings;
using Artemis.Utilities.Memory; using Artemis.Utilities.Memory;
using Process.NET; using Process.NET;
@ -22,7 +23,12 @@ namespace Artemis.Modules.Games.WoW
Name = "WoW"; Name = "WoW";
ProcessName = "Wow-64"; ProcessName = "Wow-64";
Scale = 4; Scale = 4;
Enabled = Settings.Enabled;
// Currently WoW is locked behind a hidden trigger (obviously not that hidden if you're reading this)
// It is using memory reading and lets first try to contact Blizzard
var settings = SettingsProvider.Load<GeneralSettings>();
Enabled = settings.GamestatePort == 62575 && Settings.Enabled;
Initialized = false; Initialized = false;
// TODO: Retrieve from GitHub // TODO: Retrieve from GitHub

View File

@ -1,6 +1,9 @@
using System.Linq; using System.Linq;
using Artemis.DAL;
using Artemis.Managers; using Artemis.Managers;
using Artemis.Modules.Effects.ProfilePreview; using Artemis.Modules.Effects.ProfilePreview;
using Artemis.Modules.Games.WoW;
using Artemis.Settings;
using Artemis.ViewModels.Abstract; using Artemis.ViewModels.Abstract;
namespace Artemis.ViewModels namespace Artemis.ViewModels
@ -23,8 +26,14 @@ namespace Artemis.ViewModels
{ {
base.OnActivate(); base.OnActivate();
var settings = SettingsProvider.Load<GeneralSettings>();
foreach (var gameViewModel in _gameViewModels.OrderBy(g => g.DisplayName)) foreach (var gameViewModel in _gameViewModels.OrderBy(g => g.DisplayName))
{
if (settings.GamestatePort != 62575 && gameViewModel is WoWViewModel)
continue;
ActivateItem(gameViewModel); ActivateItem(gameViewModel);
}
} }
} }
} }

Binary file not shown.