mirror of
https://github.com/Artemis-RGB/Artemis
synced 2025-12-13 05:48:35 +00:00
Nearly fully implemented surface rearranging
This commit is contained in:
parent
5106195450
commit
8951e61bd9
@ -23,8 +23,13 @@ namespace Artemis.Core.RGB.NET
|
||||
public Color ManipulateColor(Rectangle rectangle, BrushRenderTarget renderTarget, Color color)
|
||||
{
|
||||
var point = renderTarget.Point;
|
||||
var pixel = _bitmap.GetPixel((int) point.X, (int) point.Y);
|
||||
return new Color(pixel.A, pixel.R, pixel.G, pixel.B);
|
||||
if (_bitmap.Width - 1 >= point.X && _bitmap.Height - 1 >= point.Y)
|
||||
{
|
||||
var pixel = _bitmap.GetPixel((int) point.X, (int) point.Y);
|
||||
return new Color(pixel.A, pixel.R, pixel.G, pixel.B);
|
||||
}
|
||||
|
||||
return new Color(0, 0, 0);
|
||||
}
|
||||
|
||||
public Graphics GetGraphics()
|
||||
|
||||
@ -72,421 +72,6 @@
|
||||
</None>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="Images\Corsair\Customs\LEDSTRIP.png">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Images\Corsair\Customs\LLFAN.png">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Images\Corsair\Customs\PUMP.png">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Images\Corsair\empty.png">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Images\Corsair\Keyboards\K70RGB.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K95RGB.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K95RGBPLATINUM.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\0_BracketRight.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\0_Equals_CurlyBracketRight.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\1_ExclamationMark.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\2_At.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\2_QuotationMark_Exponent2.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\3_Hash.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\3_SectionSign_Exponent3.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\4_Dollar.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\5_Percent.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\5_Percent_Euro.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\6_Ampersand.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\6_Circumflex.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\7_Ampersand.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\7_Slash_CurlyBracketLeft.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\8_Asterisk.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\8_BracketLeft_SquareBracketLeft.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\9_BracketRight.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\9_BracketRight_SquareBracketRight.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\A.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\AccentGrave_AccentAcute.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\AccentGrave_Tilde.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\AE.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\Alt.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\AltGr.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\Apostrophe_QuotationMark.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\Asterisk.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\B.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\Backspace.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\BildDown.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\BildUp.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\Blackslash_Pipe.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\Brightness.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\C.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\CapsLock.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\CapsLockText.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\CaretDown.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\CaretLeft.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\CaretRight.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\CaretUp.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\Circumflex_Degree.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\Comma_Del.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\Comma_Entf.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\Comma_Semicolon.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\Ctrl.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\D.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\Delete.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\Dot_Colon.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\Drucken.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\E.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\Einfg.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\End.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\Ende.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\Enter.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\EnterWText.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\Entf.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\Equals_Plus.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\Escape.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\E_Euro.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\F.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\F1.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\F10.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\F11.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\F12.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\F2.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\F3.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\F4.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\F5.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\F6.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\F7.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\F8.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\F9.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\G.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\G1.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\G10.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\G11.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\G12.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\G13.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\G14.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\G15.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\G16.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\G17.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\G18.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\G2.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\G3.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\G4.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\G5.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\G6.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\G7.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\G8.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\G9.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\GreaterThan_Dot.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\H.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\Hash_Apostrophe.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\Home.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\Hyphen_Underscore.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\I.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\Insert.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\J.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\K.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\L.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\LessThan_Comma.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\LessThan_GreaterThan_Pipe.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\M.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\M1.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\M2.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\M3.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\Menu.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\Minus.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\MR.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\Mute.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\M_Mu.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\N.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\NextTrack.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\Num.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\Num0_Einfg.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\Num0_Ins.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\Num1_End.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\Num1_Ende.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\Num2_ArrowDown.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\Num3_BildDown.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\Num3_PgDn.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\Num4_ArrowLeft.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\Num5.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\Num6_ArrowRight.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\Num7_Home.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\Num7_Pos1.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\Num8_ArrowUp.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\Num9_BildUp.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\Num9_PgUp.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\NumEnter.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\NumLock.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\NumPlus.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\O.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\OE.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\P.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\PageDown.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\PageUp.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\PauseBreak.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\PauseUntbr.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\PlayPause.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\Plus_Asterisk_Tilde.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\Pos1.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\PreviousTrack.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\PrtScnSysRq.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\Q.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\QuestionMark_SharpS_Backslash.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\QuestionMark_Slash.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\Q_At.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\R.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\Rollen.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\S.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\ScrollLock.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\Semicolon_Colon.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\Shift.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\ShiftBig.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\ShiftWText.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\ShiftWTextBig.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\Slash.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\Space.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\SquareBracketLeft_CurlyBracketLeft.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\SquareBracketRight_CurlyBracketRight.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\Stop.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\Strg.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\T.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\Tab.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\TabWText.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\U.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\UE.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\V.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\W.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\windows.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\WinLock.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\X.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\Y.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\K_Keys\Z.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Missing.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\0_BracketRight.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\0_Equals_CurlyBracketRight.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\1_ExclamationMark.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\2_At.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\2_QuotationMark_Exponent2.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\3_Hash.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\3_SectionSign_Exponent3.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\4_Dollar.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\5.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\5_Percent.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\5_Percent_Euro.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\6_Ampersand.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\6_Circumflex.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\7_Ampersand.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\7_Slash_CurlyBracketLeft.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\8_Asterisk.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\8_BracketLeft_SquareBracketLeft.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\9_BracketRight.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\9_BracketRight_SquareBracketRight.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\A.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\AccentGrave_AccentAcute.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\AccentGrave_Tilde.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\AE.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\Alt.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\AltGr.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\Apostrophe_QuotationMark.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\Asterisk.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\B.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\Backspace.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\BildDown.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\BildUp.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\Blackslash_Pipe.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\Brightness.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\C.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\CapsLock.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\CaretDown.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\CaretLeft.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\CaretRight.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\CaretUp.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\Circumflex_Degree.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\Comma_Entf.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\Comma_Semicolon.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\Ctrl.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\D.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\Delete.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\Dot_Colon.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\Dot_Del.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\Drucken.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\E.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\Einfg.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\End.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\Ende.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\Enter.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\Entf.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\Equals_Plus.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\Escape.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\E_Euro.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\F.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\F1.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\F10.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\F11.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\F12.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\F2.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\F3.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\F4.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\F5.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\F6.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\F7.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\F8.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\F9.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\G.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\G1.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\G2.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\G3.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\G4.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\G5.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\G6.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\GreaterThan_Dot.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\H.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\Hash_Apostrophe.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\Home.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\Hyphen_Underscore.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\I.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\Insert.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\J.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\K.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\L.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\LessThan_Comma.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\LessThan_GreaterThan_Pipe.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\M.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\Menu.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\Minus.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\Mute.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\M_Mu.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\N.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\NextTrack.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\Num.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\Num0_Einfg.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\Num0_Ins.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\Num1_End.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\Num1_Ende.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\Num2_ArrowDown.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\Num3_BildDown.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\Num3_PgDwn.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\Num4_ArrowLeft.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\Num5.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\Num6_ArrowRight.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\Num7_Home.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\Num7_Pos1.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\Num8_ArrowUp.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\Num9_BildUp.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\Num9_PgUp.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\NumEnter.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\NumLock.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\NumPlus.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\O.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\OE.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\P.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\PageDown.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\PageUp.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\PauseBreak.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\PauseUntbr.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\PlayPause.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\Plus_Asterisk_Tilde.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\Pos1.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\PreviousTrack.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\PrintScreen.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\Q.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\QuestionMark_SharpS_Backslash.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\QuestionMark_Slash.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\Q_At.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\R.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\Rollen.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\S.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\ScrollLock.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\Semicolon_Colon.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\Shift.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\ShiftBig.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\Slash.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\Space.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\SquareBracketLeft_CurlyBracketLeft.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\SquareBracketRight_CurlyBracketRight.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\Stop.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\Strg.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\T.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\Tab.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\U.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\UE.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\V.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\W.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\Windows.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\WinLock.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\X.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\Y.png" />
|
||||
<Content Include="Images\Corsair\Keyboards\Strafe_Keys\Z.png" />
|
||||
<Content Include="Images\Corsair\Mice\DARKCORERGB.png">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Images\Corsair\Mice\GLAIVERGB.png" />
|
||||
<Content Include="Images\Corsair\Mice\HARPOONRGB.png">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Images\Corsair\Mice\IRONCLAWRGB.png">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Images\Corsair\Mice\M55RGB.png">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Images\Corsair\Mice\M65RGB.png">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Images\Corsair\Mice\NIGHTSWORDRGB.png">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Images\Corsair\Mice\SABRERGB.png">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Images\Corsair\Mice\SCIMITARRGB.png">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Images\Corsair\Mousepads\MM800RGB.png">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Layouts\Corsair\Customs\LLFAN.xml">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Layouts\Corsair\Customs\LEDSTRIP.xml">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Layouts\Corsair\Customs\PUMP.xml">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Layouts\Corsair\Keyboards\K70RGB\UK.xml" />
|
||||
<Content Include="Layouts\Corsair\Keyboards\K95RGBPLATINUM\UK.xml" />
|
||||
<Content Include="Layouts\Corsair\Keyboards\K95RGBPLATINUM\US.xml" />
|
||||
<Content Include="Layouts\Corsair\Keyboards\K95RGB\UK.xml" />
|
||||
<Content Include="Layouts\Corsair\Mice\DARKCORERGB.xml">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Layouts\Corsair\Mice\GLAIVERGB.xml" />
|
||||
<Content Include="Layouts\Corsair\Mice\HARPOONRGB.xml">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Layouts\Corsair\Mice\IRONCLAWRGB.xml">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Layouts\Corsair\Mice\M55RGB.xml">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Layouts\Corsair\Mice\M65RGB.xml">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Layouts\Corsair\Mice\NIGHTSWORDRGB.xml">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Layouts\Corsair\Mice\SABRERGB.xml">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Layouts\Corsair\Mice\SCIMITARPRORGB.xml">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Layouts\Corsair\Mousepads\MM800RGB.xml">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="x64\CUESDK.dll">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
@ -496,6 +81,14 @@
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<PropertyGroup>
|
||||
<PostBuildEvent>(robocopy $(TargetDir) $(SolutionDir)\Artemis.UI\$(OutDir)\Plugins\$(ProjectName) /E /NFL /NDL /NJH /NJS /nc /ns /np) ^& IF %25ERRORLEVEL%25 LEQ 4 exit /B 0</PostBuildEvent>
|
||||
<PostBuildEvent>echo Copying resources to plugin output directory
|
||||
XCOPY "$(ProjectDir)Images" "$(TargetDir)Images" /s /q /i /y
|
||||
XCOPY "$(ProjectDir)Layouts" "$(TargetDir)Layouts" /s /q /i /y
|
||||
echo Copying plugin to Artemis.UI output directory
|
||||
XCOPY "$(TargetDir.TrimEnd('\'))" "$(SolutionDir)\Artemis.UI\$(OutDir)Plugins\$(ProjectName)" /s /q /i /y</PostBuildEvent>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<PreBuildEvent>
|
||||
</PreBuildEvent>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
@ -86,6 +86,7 @@
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<PropertyGroup>
|
||||
<PostBuildEvent>(robocopy $(TargetDir) $(SolutionDir)\Artemis.UI\$(OutDir)\Plugins\$(ProjectName) /E /NFL /NDL /NJH /NJS /nc /ns /np) ^& IF %25ERRORLEVEL%25 LEQ 4 exit /B 0</PostBuildEvent>
|
||||
<PostBuildEvent>echo Copying plugin to Artemis.UI output directory
|
||||
XCOPY "$(TargetDir.TrimEnd('\'))" "$(SolutionDir)\Artemis.UI\$(OutDir)Plugins\$(ProjectName)" /s /q /i /y</PostBuildEvent>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
@ -95,6 +95,7 @@
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<PropertyGroup>
|
||||
<PostBuildEvent>(robocopy $(TargetDir) $(SolutionDir)\Artemis.UI\$(OutDir)\Plugins\$(ProjectName) /E /NFL /NDL /NJH /NJS /nc /ns /np) ^& IF %25ERRORLEVEL%25 LEQ 4 exit /B 0</PostBuildEvent>
|
||||
<PostBuildEvent>echo Copying plugin to Artemis.UI output directory
|
||||
XCOPY "$(TargetDir.TrimEnd('\'))" "$(SolutionDir)\Artemis.UI\$(OutDir)Plugins\$(ProjectName)" /s /q /i /y</PostBuildEvent>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
@ -1,18 +1,13 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using Artemis.Core;
|
||||
using Artemis.Core.Extensions;
|
||||
using Artemis.Core.Plugins.Abstract;
|
||||
using Artemis.Core.Plugins.Models;
|
||||
using Artemis.Core.Services.Interfaces;
|
||||
using Artemis.Plugins.Modules.General.ViewModels;
|
||||
using QRCoder;
|
||||
using RGB.NET.Core;
|
||||
using Stylet;
|
||||
using Color = System.Drawing.Color;
|
||||
using Rectangle = System.Drawing.Rectangle;
|
||||
|
||||
namespace Artemis.Plugins.Modules.General
|
||||
{
|
||||
@ -20,8 +15,6 @@ namespace Artemis.Plugins.Modules.General
|
||||
{
|
||||
private readonly PluginSettings _settings;
|
||||
private readonly RGBSurface _surface;
|
||||
private Dictionary<Led, Color> _colors;
|
||||
private double _circlePosition;
|
||||
private Color _color;
|
||||
|
||||
public GeneralModule(PluginInfo pluginInfo, IRgbService rgbService, PluginSettings settings) : base(pluginInfo)
|
||||
@ -31,10 +24,6 @@ namespace Artemis.Plugins.Modules.General
|
||||
ExpandsMainDataModel = true;
|
||||
|
||||
_surface = rgbService.Surface;
|
||||
_colors = new Dictionary<Led, Color>();
|
||||
|
||||
rgbService.DeviceLoaded += (sender, args) => PopulateColors();
|
||||
rgbService.DeviceReloaded += (sender, args) => PopulateColors();
|
||||
|
||||
var testSetting = _settings.GetSetting("TestSetting", DateTime.Now);
|
||||
_color = ColorHelpers.GetRandomRainbowColor();
|
||||
@ -42,8 +31,6 @@ namespace Artemis.Plugins.Modules.General
|
||||
|
||||
public override void EnablePlugin()
|
||||
{
|
||||
var qrGenerator = new QRCodeGenerator();
|
||||
PopulateColors();
|
||||
}
|
||||
|
||||
public override void DisablePlugin()
|
||||
@ -52,56 +39,16 @@ namespace Artemis.Plugins.Modules.General
|
||||
|
||||
public override void Update(double deltaTime)
|
||||
{
|
||||
if (_colors == null)
|
||||
return;
|
||||
|
||||
foreach (var surfaceLed in _surface.Leds)
|
||||
UpdateLedColor(surfaceLed, deltaTime);
|
||||
_color = ColorHelpers.ShiftColor(_color, (int) (deltaTime * 200));
|
||||
}
|
||||
|
||||
public override void Render(double deltaTime, RGBSurface surface, Graphics graphics)
|
||||
{
|
||||
_circlePosition += deltaTime * 50;
|
||||
if (_circlePosition > 600)
|
||||
{
|
||||
_circlePosition = -200;
|
||||
_color = ColorHelpers.GetRandomRainbowColor();
|
||||
}
|
||||
|
||||
var rect = new Rectangle((int) _circlePosition * 4, 0, 200, (int) surface.Leds.Max(l => l.AbsoluteLedRectangle.Y + l.AbsoluteLedRectangle.Height));
|
||||
graphics.FillRectangle(new SolidBrush(_color), rect);
|
||||
|
||||
// // Lets do this in the least performant way possible
|
||||
// foreach (var surfaceLed in _surface.Leds)
|
||||
// {
|
||||
// var rectangle = surfaceLed.AbsoluteLedRectangle.ToDrawingRectangle();
|
||||
// if (surfaceLed.Id == LedId.Fan1)
|
||||
// {
|
||||
// graphics.FillRectangle(new SolidBrush(Color.Red), rectangle);
|
||||
// }
|
||||
// if (surfaceLed.Id == LedId.Fan2)
|
||||
// {
|
||||
// graphics.FillRectangle(new SolidBrush(Color.Blue), rectangle);
|
||||
// }
|
||||
// if (surfaceLed.Id == LedId.Fan3)
|
||||
// {
|
||||
// graphics.FillRectangle(new SolidBrush(Color.Green), rectangle);
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
return;
|
||||
|
||||
// Lets do this in the least performant way possible
|
||||
foreach (var surfaceLed in _surface.Leds)
|
||||
{
|
||||
if (!_colors.ContainsKey(surfaceLed))
|
||||
continue;
|
||||
|
||||
var brush = new SolidBrush(_colors[surfaceLed]);
|
||||
var rectangle = surfaceLed.AbsoluteLedRectangle.ToDrawingRectangle();
|
||||
graphics.FillRectangle(brush, rectangle);
|
||||
UpdateLedColor(surfaceLed, deltaTime);
|
||||
graphics.FillRectangle(new SolidBrush(_color), rectangle);
|
||||
}
|
||||
}
|
||||
|
||||
@ -112,25 +59,6 @@ namespace Artemis.Plugins.Modules.General
|
||||
|
||||
public override void Dispose()
|
||||
{
|
||||
_colors = null;
|
||||
}
|
||||
|
||||
private void UpdateLedColor(Led led, double deltaTime)
|
||||
{
|
||||
if (_colors.ContainsKey(led))
|
||||
_colors[led] = ColorHelpers.ShiftColor(_colors[led], (int) (deltaTime * 200));
|
||||
else
|
||||
_colors[led] = ColorHelpers.GetRandomRainbowColor();
|
||||
}
|
||||
|
||||
private void PopulateColors()
|
||||
{
|
||||
lock (_colors)
|
||||
{
|
||||
_colors = new Dictionary<Led, Color>();
|
||||
foreach (var surfaceLed in _surface.Leds)
|
||||
_colors.Add(surfaceLed, ColorHelpers.GetRandomRainbowColor());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -4,12 +4,15 @@ using System.Windows;
|
||||
using System.Windows.Input;
|
||||
using RGB.NET.Core;
|
||||
using Stylet;
|
||||
using Point = System.Windows.Point;
|
||||
|
||||
namespace Artemis.UI.ViewModels.Controls.RgbDevice
|
||||
{
|
||||
public class RgbDeviceViewModel : PropertyChangedBase
|
||||
{
|
||||
private readonly List<RgbLedViewModel> _leds;
|
||||
private double _dragOffsetX;
|
||||
private double _dragOffsetY;
|
||||
|
||||
public RgbDeviceViewModel(IRGBDevice device)
|
||||
{
|
||||
@ -38,6 +41,44 @@ namespace Artemis.UI.ViewModels.Controls.RgbDevice
|
||||
rgbLedViewModel.ColorsEnabled = enabled;
|
||||
}
|
||||
|
||||
public void StartMouseDrag(Point mouseStartPosition)
|
||||
{
|
||||
_dragOffsetX = Device.Location.X - mouseStartPosition.X;
|
||||
_dragOffsetY = Device.Location.Y - mouseStartPosition.Y;
|
||||
}
|
||||
|
||||
public void UpdateMouseDrag(Point mousePosition)
|
||||
{
|
||||
var roundedX = Math.Round((mousePosition.X + _dragOffsetX) / 10, 0, MidpointRounding.AwayFromZero) * 10;
|
||||
var roundedY = Math.Round((mousePosition.Y + _dragOffsetY) / 10, 0, MidpointRounding.AwayFromZero) * 10;
|
||||
this.Device.Location = new RGB.NET.Core.Point(roundedX, roundedY);
|
||||
}
|
||||
|
||||
public void FinishMouseDrag(Point mouseEndPosition)
|
||||
{
|
||||
// TODO: Save and update
|
||||
}
|
||||
|
||||
// ReSharper disable once UnusedMember.Global - Called from view
|
||||
public void MouseEnter()
|
||||
{
|
||||
if (SelectionStatus == SelectionStatus.None)
|
||||
{
|
||||
SelectionStatus = SelectionStatus.Hover;
|
||||
Cursor = Cursors.Hand;
|
||||
}
|
||||
}
|
||||
|
||||
// ReSharper disable once UnusedMember.Global - Called from view
|
||||
public void MouseLeave()
|
||||
{
|
||||
if (SelectionStatus == SelectionStatus.Hover)
|
||||
{
|
||||
SelectionStatus = SelectionStatus.None;
|
||||
Cursor = Cursors.Arrow;
|
||||
}
|
||||
}
|
||||
|
||||
public Rect DeviceRectangle => new Rect(Device.Location.X, Device.Location.Y, Device.Size.Width, Device.Size.Height);
|
||||
}
|
||||
|
||||
|
||||
@ -20,7 +20,6 @@ namespace Artemis.UI.ViewModels.Controls.RgbDevice
|
||||
Update();
|
||||
}
|
||||
|
||||
[DoNotNotify]
|
||||
public Led Led { get; }
|
||||
|
||||
public double X { get; private set; }
|
||||
@ -97,6 +96,8 @@ namespace Artemis.UI.ViewModels.Controls.RgbDevice
|
||||
{
|
||||
if (ColorsEnabled)
|
||||
{
|
||||
if (Led.Id == LedId.Keyboard_Y)
|
||||
Console.WriteLine();
|
||||
var newColor = Led.Color.ToMediaColor();
|
||||
SetColor(newColor);
|
||||
}
|
||||
|
||||
@ -30,7 +30,7 @@ namespace Artemis.UI.ViewModels.Screens
|
||||
foreach (var surfaceDevice in _rgbService.Surface.Devices)
|
||||
{
|
||||
var device = new RgbDeviceViewModel(surfaceDevice) {Cursor = Cursors.Hand};
|
||||
device.SetColorsEnabled(false);
|
||||
// device.SetColorsEnabled(false);
|
||||
|
||||
Devices.Add(device);
|
||||
}
|
||||
@ -48,7 +48,7 @@ namespace Artemis.UI.ViewModels.Screens
|
||||
if (Devices.All(d => d.Device != e.Device))
|
||||
{
|
||||
var device = new RgbDeviceViewModel(e.Device) {Cursor = Cursors.Hand};
|
||||
device.SetColorsEnabled(false);
|
||||
// device.SetColorsEnabled(false);
|
||||
Devices.Add(device);
|
||||
}
|
||||
});
|
||||
@ -60,67 +60,112 @@ namespace Artemis.UI.ViewModels.Screens
|
||||
rgbDeviceViewModel.Update();
|
||||
}
|
||||
|
||||
#region Selection
|
||||
#region Mouse actions
|
||||
|
||||
private bool _editorSelecting;
|
||||
private Point _selectionStartPoint;
|
||||
private MouseDragStatus _mouseDragStatus;
|
||||
private Point _mouseDragStartPoint;
|
||||
|
||||
private void StartSelection(Point position)
|
||||
private void StartMouseDrag(Point position)
|
||||
{
|
||||
_selectionStartPoint = position;
|
||||
_editorSelecting = true;
|
||||
// If drag started on top of a device, initialise dragging
|
||||
var device = Devices.LastOrDefault(d => d.DeviceRectangle.Contains(position));
|
||||
if (device != null)
|
||||
{
|
||||
_mouseDragStatus = MouseDragStatus.Dragging;
|
||||
// If the device is not selected, deselect others and select only this one
|
||||
if (device.SelectionStatus != SelectionStatus.Selected)
|
||||
{
|
||||
foreach (var others in Devices)
|
||||
others.SelectionStatus = SelectionStatus.None;
|
||||
device.SelectionStatus = SelectionStatus.Selected;
|
||||
}
|
||||
foreach (var selectedDevice in Devices.Where(d => d.SelectionStatus == SelectionStatus.Selected))
|
||||
selectedDevice.StartMouseDrag(position);
|
||||
}
|
||||
// Start multi-selection
|
||||
else
|
||||
{
|
||||
_mouseDragStatus = MouseDragStatus.Selecting;
|
||||
_mouseDragStartPoint = position;
|
||||
}
|
||||
|
||||
SelectionRectangle.Rect = new Rect();
|
||||
// While dragging always show an arrow to avoid cursor flicker
|
||||
Mouse.OverrideCursor = Cursors.Arrow;
|
||||
// Any time dragging starts, start with a new rect
|
||||
SelectionRectangle.Rect = new Rect();
|
||||
}
|
||||
|
||||
private void StopSelection(Point position)
|
||||
private void StopMouseDrag(Point position)
|
||||
{
|
||||
_editorSelecting = false;
|
||||
Mouse.OverrideCursor = null;
|
||||
|
||||
var selectedRect = new Rect(_selectionStartPoint, position);
|
||||
foreach (var device in Devices)
|
||||
if (_mouseDragStatus == MouseDragStatus.Dragging)
|
||||
{
|
||||
if (device.DeviceRectangle.IntersectsWith(selectedRect))
|
||||
device.SelectionStatus = SelectionStatus.Selected;
|
||||
else
|
||||
device.SelectionStatus = SelectionStatus.None;
|
||||
}
|
||||
else
|
||||
{
|
||||
var selectedRect = new Rect(_mouseDragStartPoint, position);
|
||||
foreach (var device in Devices)
|
||||
{
|
||||
if (device.DeviceRectangle.IntersectsWith(selectedRect))
|
||||
device.SelectionStatus = SelectionStatus.Selected;
|
||||
else
|
||||
device.SelectionStatus = SelectionStatus.None;
|
||||
}
|
||||
}
|
||||
|
||||
Mouse.OverrideCursor = null;
|
||||
_mouseDragStatus = MouseDragStatus.None;
|
||||
}
|
||||
|
||||
private void UpdateSelection(Point position)
|
||||
{
|
||||
var selectedRect = new Rect(_selectionStartPoint, position);
|
||||
SelectionRectangle.Rect = selectedRect;
|
||||
|
||||
foreach (var device in Devices)
|
||||
lock (Devices)
|
||||
{
|
||||
if (device.DeviceRectangle.IntersectsWith(selectedRect))
|
||||
device.SelectionStatus = SelectionStatus.Selected;
|
||||
else
|
||||
device.SelectionStatus = SelectionStatus.None;
|
||||
var selectedRect = new Rect(_mouseDragStartPoint, position);
|
||||
SelectionRectangle.Rect = selectedRect;
|
||||
|
||||
foreach (var device in Devices)
|
||||
{
|
||||
if (device.DeviceRectangle.IntersectsWith(selectedRect))
|
||||
device.SelectionStatus = SelectionStatus.Selected;
|
||||
else
|
||||
device.SelectionStatus = SelectionStatus.None;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void MoveSelected(Point position)
|
||||
{
|
||||
foreach (var device in Devices.Where(d => d.SelectionStatus == SelectionStatus.Selected))
|
||||
device.UpdateMouseDrag(position);
|
||||
}
|
||||
|
||||
// ReSharper disable once UnusedMember.Global - Called from view
|
||||
public void EditorGridMouseClick(object sender, MouseEventArgs e)
|
||||
{
|
||||
var position = e.GetPosition((IInputElement) sender);
|
||||
if (e.LeftButton == MouseButtonState.Pressed)
|
||||
StartSelection(position);
|
||||
StartMouseDrag(position);
|
||||
else
|
||||
StopSelection(position);
|
||||
StopMouseDrag(position);
|
||||
}
|
||||
|
||||
// ReSharper disable once UnusedMember.Global - Called from view
|
||||
public void EditorGridMouseMove(object sender, MouseEventArgs e)
|
||||
{
|
||||
if (!_editorSelecting)
|
||||
return;
|
||||
|
||||
var position = e.GetPosition((IInputElement) sender);
|
||||
UpdateSelection(position);
|
||||
if (_mouseDragStatus == MouseDragStatus.Dragging)
|
||||
MoveSelected(position);
|
||||
else if (_mouseDragStatus == MouseDragStatus.Selecting)
|
||||
UpdateSelection(position);
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
internal enum MouseDragStatus
|
||||
{
|
||||
None,
|
||||
Selecting,
|
||||
Dragging
|
||||
}
|
||||
}
|
||||
@ -4,12 +4,13 @@
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:rgbDevice="clr-namespace:Artemis.UI.ViewModels.Controls.RgbDevice"
|
||||
xmlns:xaml="https://github.com/canton7/Stylet"
|
||||
xmlns:s="https://github.com/canton7/Stylet"
|
||||
mc:Ignorable="d"
|
||||
d:DataContext="{d:DesignInstance rgbDevice:RgbDeviceViewModel}"
|
||||
d:DesignHeight="450" d:DesignWidth="800"
|
||||
Cursor="{Binding Cursor}">
|
||||
<UserControl.Resources></UserControl.Resources>
|
||||
Cursor="{Binding Cursor}"
|
||||
MouseEnter="{s:Action MouseEnter}"
|
||||
MouseLeave="{s:Action MouseLeave}">
|
||||
<Grid>
|
||||
<Image Source="{Binding Device.DeviceInfo.Image}" />
|
||||
<ItemsControl ItemsSource="{Binding Leds}">
|
||||
@ -26,42 +27,54 @@
|
||||
</ItemsControl.ItemContainerStyle>
|
||||
<ItemsControl.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<ContentControl Width="{Binding Width}" Height="{Binding Height}" xaml:View.Model="{Binding}" />
|
||||
<ContentControl Width="{Binding Width}" Height="{Binding Height}" s:View.Model="{Binding}" />
|
||||
</DataTemplate>
|
||||
</ItemsControl.ItemTemplate>
|
||||
</ItemsControl>
|
||||
<Rectangle Width="Auto" Height="Auto" StrokeThickness="1">
|
||||
<Rectangle Width="Auto" Height="Auto" StrokeThickness="2">
|
||||
<Rectangle.Stroke>
|
||||
<SolidColorBrush Color="{StaticResource IdealForegroundColor}"/>
|
||||
</Rectangle.Stroke>
|
||||
<Rectangle.Fill>
|
||||
<SolidColorBrush Color="{StaticResource IdealForegroundColor}" Opacity="0.25"/>
|
||||
</Rectangle.Fill>
|
||||
<Rectangle.Style>
|
||||
<Style TargetType="Rectangle">
|
||||
<Style.Triggers>
|
||||
<DataTrigger Binding="{Binding SelectionStatus}" Value="{x:Static rgbDevice:SelectionStatus.Hover}">
|
||||
<Setter Property="Rectangle.Fill">
|
||||
<Setter.Value>
|
||||
<SolidColorBrush Color="{DynamicResource IdealForegroundColor}" Opacity="0.25" />
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
<Setter Property="Rectangle.Stroke" Value="{DynamicResource IdealForegroundColorBrush}"/>
|
||||
<DataTrigger.EnterActions>
|
||||
<StopStoryboard BeginStoryboardName="ToSelected"></StopStoryboard>
|
||||
<BeginStoryboard x:Name="ToHover">
|
||||
<Storyboard>
|
||||
<ColorAnimation Storyboard.TargetProperty="(Rectangle.Fill).(SolidColorBrush.Color)" To="{StaticResource IdealForegroundColor}" Duration="0:0:0.25" />
|
||||
<ColorAnimation Storyboard.TargetProperty="(Rectangle.Stroke).(SolidColorBrush.Color)" To="{StaticResource IdealForegroundColor}" Duration="0:0:0.25" />
|
||||
</Storyboard>
|
||||
</BeginStoryboard>
|
||||
</DataTrigger.EnterActions>
|
||||
</DataTrigger>
|
||||
<DataTrigger Binding="{Binding SelectionStatus}" Value="{x:Static rgbDevice:SelectionStatus.Selected}">
|
||||
<Setter Property="Rectangle.Fill">
|
||||
<Setter.Value>
|
||||
<SolidColorBrush Color="{DynamicResource Primary400}" Opacity="0.25" />
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
<Setter Property="Rectangle.Stroke" Value="{DynamicResource PrimaryHueLightBrush}" />
|
||||
<DataTrigger.EnterActions>
|
||||
<StopStoryboard BeginStoryboardName="ToHover"></StopStoryboard>
|
||||
<BeginStoryboard x:Name="ToSelected">
|
||||
<Storyboard>
|
||||
<ColorAnimation Storyboard.TargetProperty="(Rectangle.Fill).(SolidColorBrush.Color)" To="{StaticResource Primary400}" Duration="0:0:0.25" />
|
||||
<ColorAnimation Storyboard.TargetProperty="(Rectangle.Stroke).(SolidColorBrush.Color)" To="{StaticResource Primary400}" Duration="0:0:0.25" />
|
||||
</Storyboard>
|
||||
</BeginStoryboard>
|
||||
</DataTrigger.EnterActions>
|
||||
</DataTrigger>
|
||||
<DataTrigger Binding="{Binding SelectionStatus}" Value="{x:Static rgbDevice:SelectionStatus.None}">
|
||||
<DataTrigger.EnterActions>
|
||||
<BeginStoryboard>
|
||||
<Storyboard>
|
||||
<DoubleAnimation Storyboard.TargetProperty="Opacity" From="1" To="0" Duration="0:0:0.25" />
|
||||
<DoubleAnimation Storyboard.TargetProperty="Opacity" To="0" Duration="0:0:0.25" />
|
||||
</Storyboard>
|
||||
</BeginStoryboard>
|
||||
</DataTrigger.EnterActions>
|
||||
<DataTrigger.ExitActions>
|
||||
<BeginStoryboard>
|
||||
<Storyboard>
|
||||
<DoubleAnimation Storyboard.TargetProperty="Opacity" From="0" To="1" Duration="0:0:0.25" />
|
||||
<DoubleAnimation Storyboard.TargetProperty="Opacity" To="1" Duration="0:0:0.25" />
|
||||
</Storyboard>
|
||||
</BeginStoryboard>
|
||||
</DataTrigger.ExitActions>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user