commit
					e00adcc37f
				
				 11 changed files with 1940 additions and 0 deletions
			
			
		| @ -0,0 +1,225 @@@@ -0,0 +1,225 @@ | ||||
| # The following command works for downloading when using Git for Windows: | ||||
| # curl -LOf http://gist.githubusercontent.com/kmorcinek/2710267/raw/.gitignore | ||||
| # | ||||
| # Download this file using PowerShell v3 under Windows with the following comand: | ||||
| # Invoke-WebRequest https://gist.githubusercontent.com/kmorcinek/2710267/raw/ -OutFile .gitignore | ||||
| # | ||||
| # or wget: | ||||
| # wget --no-check-certificate http://gist.githubusercontent.com/kmorcinek/2710267/raw/.gitignore | ||||
| 
 | ||||
| # User-specific files | ||||
| *.suo | ||||
| *.user | ||||
| *.sln.docstates | ||||
| 
 | ||||
| # Build results | ||||
| [Dd]ebug/ | ||||
| [Rr]elease/ | ||||
| x64/ | ||||
| [Bb]in/ | ||||
| [Oo]bj/ | ||||
| # build folder is nowadays used for build scripts and should not be ignored | ||||
| #build/ | ||||
| 
 | ||||
| # NuGet Packages | ||||
| *.nupkg | ||||
| # The packages folder can be ignored because of Package Restore | ||||
| **/packages/* | ||||
| # except build/, which is used as an MSBuild target. | ||||
| !**/packages/build/ | ||||
| # Uncomment if necessary however generally it will be regenerated when needed | ||||
| #!**/packages/repositories.config | ||||
| 
 | ||||
| # MSTest test Results | ||||
| [Tt]est[Rr]esult*/ | ||||
| [Bb]uild[Ll]og.* | ||||
| 
 | ||||
| *_i.c | ||||
| *_p.c | ||||
| *.ilk | ||||
| *.meta | ||||
| *.obj | ||||
| *.pch | ||||
| *.pdb | ||||
| *.pgc | ||||
| *.pgd | ||||
| *.rsp | ||||
| *.sbr | ||||
| *.tlb | ||||
| *.tli | ||||
| *.tlh | ||||
| *.tmp | ||||
| *.tmp_proj | ||||
| *.log | ||||
| *.vspscc | ||||
| *.vssscc | ||||
| .builds | ||||
| *.pidb | ||||
| *.log | ||||
| *.scc | ||||
| 
 | ||||
| # OS generated files # | ||||
| .DS_Store* | ||||
| Icon? | ||||
| 
 | ||||
| # Visual C++ cache files | ||||
| ipch/ | ||||
| *.aps | ||||
| *.ncb | ||||
| *.opensdf | ||||
| *.sdf | ||||
| *.cachefile | ||||
| 
 | ||||
| # Visual Studio profiler | ||||
| *.psess | ||||
| *.vsp | ||||
| *.vspx | ||||
| 
 | ||||
| # Guidance Automation Toolkit | ||||
| *.gpState | ||||
| 
 | ||||
| # ReSharper is a .NET coding add-in | ||||
| _ReSharper*/ | ||||
| *.[Rr]e[Ss]harper | ||||
| 
 | ||||
| # TeamCity is a build add-in | ||||
| _TeamCity* | ||||
| 
 | ||||
| # DotCover is a Code Coverage Tool | ||||
| *.dotCover | ||||
| 
 | ||||
| # NCrunch | ||||
| *.ncrunch* | ||||
| .*crunch*.local.xml | ||||
| 
 | ||||
| # Installshield output folder | ||||
| [Ee]xpress/ | ||||
| 
 | ||||
| # DocProject is a documentation generator add-in | ||||
| DocProject/buildhelp/ | ||||
| DocProject/Help/*.HxT | ||||
| DocProject/Help/*.HxC | ||||
| DocProject/Help/*.hhc | ||||
| DocProject/Help/*.hhk | ||||
| DocProject/Help/*.hhp | ||||
| DocProject/Help/Html2 | ||||
| DocProject/Help/html | ||||
| 
 | ||||
| # Click-Once directory | ||||
| publish/ | ||||
| 
 | ||||
| # Publish Web Output | ||||
| *.Publish.xml | ||||
| 
 | ||||
| # Windows Azure Build Output | ||||
| csx | ||||
| *.build.csdef | ||||
| 
 | ||||
| # Windows Store app package directory | ||||
| AppPackages/ | ||||
| 
 | ||||
| # Others | ||||
| *.Cache | ||||
| ClientBin/ | ||||
| [Ss]tyle[Cc]op.* | ||||
| ~$* | ||||
| *~ | ||||
| *.dbmdl | ||||
| *.[Pp]ublish.xml | ||||
| *.pfx | ||||
| *.publishsettings | ||||
| modulesbin/ | ||||
| tempbin/ | ||||
| 
 | ||||
| # EPiServer Site file (VPP) | ||||
| AppData/ | ||||
| 
 | ||||
| # RIA/Silverlight projects | ||||
| Generated_Code/ | ||||
| 
 | ||||
| # Backup & report files from converting an old project file to a newer | ||||
| # Visual Studio version. Backup files are not needed, because we have git ;-) | ||||
| _UpgradeReport_Files/ | ||||
| Backup*/ | ||||
| UpgradeLog*.XML | ||||
| UpgradeLog*.htm | ||||
| 
 | ||||
| # vim | ||||
| *.txt~ | ||||
| *.swp | ||||
| *.swo | ||||
| 
 | ||||
| # Temp files when opening LibreOffice on ubuntu | ||||
| .~lock.* | ||||
|   | ||||
| # svn | ||||
| .svn | ||||
| 
 | ||||
| # CVS - Source Control | ||||
| **/CVS/ | ||||
| 
 | ||||
| # Remainings from resolving conflicts in Source Control | ||||
| *.orig | ||||
| 
 | ||||
| # SQL Server files | ||||
| **/App_Data/*.mdf | ||||
| **/App_Data/*.ldf | ||||
| **/App_Data/*.sdf | ||||
| 
 | ||||
| 
 | ||||
| #LightSwitch generated files | ||||
| GeneratedArtifacts/ | ||||
| _Pvt_Extensions/ | ||||
| ModelManifest.xml | ||||
| 
 | ||||
| # ========================= | ||||
| # Windows detritus | ||||
| # ========================= | ||||
| 
 | ||||
| # Windows image file caches | ||||
| Thumbs.db | ||||
| ehthumbs.db | ||||
| 
 | ||||
| # Folder config file | ||||
| Desktop.ini | ||||
| 
 | ||||
| # Recycle Bin used on file shares | ||||
| $RECYCLE.BIN/ | ||||
| 
 | ||||
| # Mac desktop service store files | ||||
| .DS_Store | ||||
| 
 | ||||
| # SASS Compiler cache | ||||
| .sass-cache | ||||
| 
 | ||||
| # Visual Studio 2014 CTP | ||||
| **/*.sln.ide | ||||
| 
 | ||||
| # Visual Studio temp something | ||||
| .vs/ | ||||
| 
 | ||||
| # dotnet stuff | ||||
| project.lock.json | ||||
| 
 | ||||
| # VS 2015+ | ||||
| *.vc.vc.opendb | ||||
| *.vc.db | ||||
| 
 | ||||
| # Rider | ||||
| .idea/ | ||||
| 
 | ||||
| # Visual Studio Code | ||||
| .vscode/ | ||||
| 
 | ||||
| # Output folder used by Webpack or other FE stuff | ||||
| **/node_modules/* | ||||
| **/wwwroot/* | ||||
| 
 | ||||
| # SpecFlow specific | ||||
| *.feature.cs | ||||
| *.feature.xlsx.* | ||||
| *.Specs_*.html | ||||
| 
 | ||||
| ##### | ||||
| # End of core ignore list, below put you custom 'per project' settings (patterns or path) | ||||
| ##### | ||||
| @ -0,0 +1,25 @@@@ -0,0 +1,25 @@ | ||||
|  | ||||
| Microsoft Visual Studio Solution File, Format Version 12.00 | ||||
| # Visual Studio Version 16 | ||||
| VisualStudioVersion = 16.0.30011.22 | ||||
| MinimumVisualStudioVersion = 10.0.40219.1 | ||||
| Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ChromaEffectsImporter", "ChromaEffectsImporter\ChromaEffectsImporter.csproj", "{E3050745-702E-4143-A41D-FD549C8C46F9}" | ||||
| EndProject | ||||
| Global | ||||
| 	GlobalSection(SolutionConfigurationPlatforms) = preSolution | ||||
| 		Debug|Any CPU = Debug|Any CPU | ||||
| 		Release|Any CPU = Release|Any CPU | ||||
| 	EndGlobalSection | ||||
| 	GlobalSection(ProjectConfigurationPlatforms) = postSolution | ||||
| 		{E3050745-702E-4143-A41D-FD549C8C46F9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | ||||
| 		{E3050745-702E-4143-A41D-FD549C8C46F9}.Debug|Any CPU.Build.0 = Debug|Any CPU | ||||
| 		{E3050745-702E-4143-A41D-FD549C8C46F9}.Release|Any CPU.ActiveCfg = Release|Any CPU | ||||
| 		{E3050745-702E-4143-A41D-FD549C8C46F9}.Release|Any CPU.Build.0 = Release|Any CPU | ||||
| 	EndGlobalSection | ||||
| 	GlobalSection(SolutionProperties) = preSolution | ||||
| 		HideSolutionNode = FALSE | ||||
| 	EndGlobalSection | ||||
| 	GlobalSection(ExtensibilityGlobals) = postSolution | ||||
| 		SolutionGuid = {C6D4C95F-CE6C-4DE5-99DA-A1DCB951EC84} | ||||
| 	EndGlobalSection | ||||
| EndGlobal | ||||
| @ -0,0 +1,6 @@@@ -0,0 +1,6 @@ | ||||
| <?xml version="1.0" encoding="utf-8" ?> | ||||
| <configuration> | ||||
|     <startup>  | ||||
|         <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" /> | ||||
|     </startup> | ||||
| </configuration> | ||||
| @ -0,0 +1,86 @@@@ -0,0 +1,86 @@ | ||||
| <?xml version="1.0" encoding="utf-8"?> | ||||
| <Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | ||||
|   <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> | ||||
|   <PropertyGroup> | ||||
|     <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> | ||||
|     <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> | ||||
|     <ProjectGuid>{E3050745-702E-4143-A41D-FD549C8C46F9}</ProjectGuid> | ||||
|     <OutputType>Exe</OutputType> | ||||
|     <RootNamespace>ChromaEffectsImporter</RootNamespace> | ||||
|     <AssemblyName>ChromaEffectsImporter</AssemblyName> | ||||
|     <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion> | ||||
|     <FileAlignment>512</FileAlignment> | ||||
|     <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects> | ||||
|     <Deterministic>true</Deterministic> | ||||
|   </PropertyGroup> | ||||
|   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> | ||||
|     <PlatformTarget>AnyCPU</PlatformTarget> | ||||
|     <DebugSymbols>true</DebugSymbols> | ||||
|     <DebugType>full</DebugType> | ||||
|     <Optimize>false</Optimize> | ||||
|     <OutputPath>bin\Debug\</OutputPath> | ||||
|     <DefineConstants>DEBUG;TRACE</DefineConstants> | ||||
|     <ErrorReport>prompt</ErrorReport> | ||||
|     <WarningLevel>4</WarningLevel> | ||||
|   </PropertyGroup> | ||||
|   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> | ||||
|     <PlatformTarget>AnyCPU</PlatformTarget> | ||||
|     <DebugType>pdbonly</DebugType> | ||||
|     <Optimize>true</Optimize> | ||||
|     <OutputPath>bin\Release\</OutputPath> | ||||
|     <DefineConstants>TRACE</DefineConstants> | ||||
|     <ErrorReport>prompt</ErrorReport> | ||||
|     <WarningLevel>4</WarningLevel> | ||||
|   </PropertyGroup> | ||||
|   <ItemGroup> | ||||
|     <Reference Include="Colore, Version=6.0.0.5, Culture=neutral, processorArchitecture=MSIL"> | ||||
|       <HintPath>..\packages\Colore.6.0.0-rc0005\lib\net451\Colore.dll</HintPath> | ||||
|     </Reference> | ||||
|     <Reference Include="JetBrains.Annotations, Version=11.1.0.0, Culture=neutral, PublicKeyToken=1010a0d8d6380325, processorArchitecture=MSIL"> | ||||
|       <HintPath>..\packages\JetBrains.Annotations.11.1.0\lib\net20\JetBrains.Annotations.dll</HintPath> | ||||
|     </Reference> | ||||
|     <Reference Include="Newtonsoft.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL"> | ||||
|       <HintPath>..\packages\Newtonsoft.Json.10.0.3\lib\net45\Newtonsoft.Json.dll</HintPath> | ||||
|     </Reference> | ||||
|     <Reference Include="System" /> | ||||
|     <Reference Include="System.Core" /> | ||||
|     <Reference Include="System.Net.Http.Extensions, Version=2.2.29.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> | ||||
|       <HintPath>..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Extensions.dll</HintPath> | ||||
|     </Reference> | ||||
|     <Reference Include="System.Net.Http.Primitives, Version=4.2.29.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> | ||||
|       <HintPath>..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Primitives.dll</HintPath> | ||||
|     </Reference> | ||||
|     <Reference Include="System.Net.Http.WebRequest" /> | ||||
|     <Reference Include="System.Runtime.InteropServices.RuntimeInformation, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> | ||||
|       <HintPath>..\packages\System.Runtime.InteropServices.RuntimeInformation.4.3.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll</HintPath> | ||||
|       <Private>True</Private> | ||||
|       <Private>True</Private> | ||||
|     </Reference> | ||||
|     <Reference Include="System.ValueTuple, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL"> | ||||
|       <HintPath>..\packages\System.ValueTuple.4.4.0\lib\net47\System.ValueTuple.dll</HintPath> | ||||
|     </Reference> | ||||
|     <Reference Include="System.Xml.Linq" /> | ||||
|     <Reference Include="System.Data.DataSetExtensions" /> | ||||
|     <Reference Include="Microsoft.CSharp" /> | ||||
|     <Reference Include="System.Data" /> | ||||
|     <Reference Include="System.Net.Http" /> | ||||
|     <Reference Include="System.Xml" /> | ||||
|   </ItemGroup> | ||||
|   <ItemGroup> | ||||
|     <Compile Include="ChromaEffectsReader.cs" /> | ||||
|     <Compile Include="ColoreOutput.cs" /> | ||||
|     <Compile Include="EffectRegion.cs" /> | ||||
|     <Compile Include="Program.cs" /> | ||||
|     <Compile Include="Properties\AssemblyInfo.cs" /> | ||||
|   </ItemGroup> | ||||
|   <ItemGroup> | ||||
|     <None Include="App.config" /> | ||||
|     <None Include="packages.config" /> | ||||
|   </ItemGroup> | ||||
|   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> | ||||
|   <Import Project="..\packages\Microsoft.Bcl.Build.1.0.14\tools\Microsoft.Bcl.Build.targets" Condition="Exists('..\packages\Microsoft.Bcl.Build.1.0.14\tools\Microsoft.Bcl.Build.targets')" /> | ||||
|   <Target Name="EnsureBclBuildImported" BeforeTargets="BeforeBuild" Condition="'$(BclBuildImported)' == ''"> | ||||
|     <Error Condition="!Exists('..\packages\Microsoft.Bcl.Build.1.0.14\tools\Microsoft.Bcl.Build.targets')" Text="This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=317567." HelpKeyword="BCLBUILD2001" /> | ||||
|     <Error Condition="Exists('..\packages\Microsoft.Bcl.Build.1.0.14\tools\Microsoft.Bcl.Build.targets')" Text="The build restored NuGet packages. Build the project again to include these packages in the build. For more information, see http://go.microsoft.com/fwlink/?LinkID=317568." HelpKeyword="BCLBUILD2002" /> | ||||
|   </Target> | ||||
| </Project> | ||||
| @ -0,0 +1,209 @@@@ -0,0 +1,209 @@ | ||||
| using System; | ||||
| using System.Collections.Generic; | ||||
| using System.Linq; | ||||
| using System.Xml.Linq; | ||||
| using Colore.Data; | ||||
| using Colore.Effects.Keyboard; | ||||
| 
 | ||||
| namespace ChromaEffectsImporter | ||||
| { | ||||
|     internal class ChromaEffectsReader | ||||
|     { | ||||
|         public EffectRegion[] ReadFirstStatic(string filePath) | ||||
|         { | ||||
|             XDocument root = XDocument.Load(filePath); | ||||
|             IEnumerable<XElement> effectLayers = root.Descendants("EffectLayer").Where(x => x.Descendants("Effect").First().Value == "static"); | ||||
|             return effectLayers.SelectMany(layer => layer.Descendants("EffectRegion").Select(region => | ||||
|                         { | ||||
|                             return new EffectRegion( | ||||
|                                 GetKeys(region), | ||||
|                                 GetColor(region)); | ||||
|                         })).ToArray(); | ||||
|         } | ||||
| 
 | ||||
|         private Key[] GetKeys(XElement region) | ||||
|         { | ||||
|             IEnumerable<XElement> deviceCells = region.Descendants("DeviceCell"); | ||||
|             List<RazerKey> keys = new List<RazerKey>(); | ||||
|             foreach (XElement cell in deviceCells) | ||||
|             { | ||||
|                 int row = Convert.ToInt32(cell.Descendants("Row").First().Value); | ||||
|                 int column = Convert.ToInt32(cell.Descendants("Col").First().Value); | ||||
|                 keys.Add((RazerKey)column + row * 256); | ||||
|             } | ||||
|             return keys.Select(razerKey => (Key)Enum.Parse(typeof(Key), razerKey.ToString())).ToArray(); | ||||
|         } | ||||
| 
 | ||||
|         private Color GetColor(XElement region) | ||||
|         { | ||||
|             XElement rzColor = region.Descendants("RzColor").First(); | ||||
|             int red = 0, green = 0, blue = 0; | ||||
|             foreach (XElement element in rzColor.Descendants()) | ||||
|             { | ||||
|                 switch (element.Name.ToString()) | ||||
|                 { | ||||
|                     case "Red": | ||||
|                         red = Convert.ToInt32(element.Value); | ||||
|                         break; | ||||
| 
 | ||||
|                     case "Green": | ||||
|                         green = Convert.ToInt32(element.Value); | ||||
|                         break; | ||||
| 
 | ||||
|                     case "Blue": | ||||
|                         blue = Convert.ToInt32(element.Value); | ||||
|                         break; | ||||
| 
 | ||||
|                     default: | ||||
|                         throw new ArgumentException("Argument value not expected", "element"); | ||||
|                 } | ||||
|             } | ||||
|             return Color.FromRgb((uint)((red << 16) | (green << 8) | blue)); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     /// <summary> | ||||
|     /// Definition of almost all keyboard keys, with id's matching the Razer Synapse Grid. | ||||
|     /// Keys not present on the US-International are not tested, and so commented out. If you need these, just test where they should be using a known ChromaEffects map. | ||||
|     /// </summary> | ||||
|     internal enum RazerKey | ||||
|     { | ||||
|         Escape = 1, | ||||
|         F1 = 4, | ||||
|         F2 = 5, | ||||
|         F3 = 6, | ||||
|         F4 = 7, | ||||
|         F5 = 8, | ||||
|         F6 = 9, | ||||
|         F7 = 10, | ||||
|         F8 = 11, | ||||
|         F9 = 12, | ||||
|         F10 = 13, | ||||
|         F11 = 14, | ||||
|         F12 = 15, | ||||
|         PrintScreen = 16, | ||||
|         Scroll = 17, | ||||
|         Pause = 18, | ||||
| 
 | ||||
|         //JpnYen = 21, | ||||
|         //KorPipe = 21, | ||||
| 
 | ||||
|         Macro1 = 256, | ||||
|         OemTilde = 257, | ||||
|         D1 = 258, | ||||
|         D2 = 259, | ||||
|         D3 = 260, | ||||
|         D4 = 261, | ||||
|         D5 = 262, | ||||
|         D6 = 263, | ||||
|         D7 = 264, | ||||
|         D8 = 265, | ||||
|         D9 = 266, | ||||
|         D0 = 267, | ||||
|         OemMinus = 268, | ||||
|         OemEquals = 269, | ||||
|         Backspace = 270, | ||||
|         Insert = 272, | ||||
|         Home = 273, | ||||
|         PageUp = 274, | ||||
|         NumLock = 275, | ||||
|         NumDivide = 276, | ||||
|         NumMultiply = 277, | ||||
|         NumSubtract = 278, | ||||
|         Macro2 = 512, | ||||
|         Tab = 513, | ||||
|         Q = 514, | ||||
|         W = 515, | ||||
|         E = 516, | ||||
|         R = 517, | ||||
|         T = 518, | ||||
|         Y = 519, | ||||
|         U = 520, | ||||
|         I = 521, | ||||
|         O = 522, | ||||
|         P = 523, | ||||
|         OemLeftBracket = 524, | ||||
|         OemRightBracket = 525, | ||||
|         OemBackslash = 526, | ||||
|         Delete = 528, | ||||
|         End = 529, | ||||
|         PageDown = 530, | ||||
|         Num7 = 531, | ||||
|         Num8 = 532, | ||||
|         Num9 = 533, | ||||
|         NumAdd = 534, | ||||
|         Macro3 = 768, | ||||
|         CapsLock = 770, | ||||
|         A = 771, | ||||
|         S = 772, | ||||
|         D = 773, | ||||
|         F = 774, | ||||
|         G = 775, | ||||
|         H = 776, | ||||
|         J = 777, | ||||
|         K = 778, | ||||
|         L = 779, | ||||
|         OemSemicolon = 780, | ||||
|         OemApostrophe = 781, | ||||
| 
 | ||||
|         //EurPound = 782, | ||||
|         //Kor2 = 782, | ||||
| 
 | ||||
|         Enter = 782, | ||||
|         Num4 = 787, | ||||
|         Num5 = 788, | ||||
|         Num6 = 789, | ||||
|         Macro4 = 1024, | ||||
| 
 | ||||
|         //EurBackslash = 1025, | ||||
|         //Kor3 = 1025, | ||||
| 
 | ||||
|         LeftShift = 1026, | ||||
|         Z = 1027, | ||||
|         X = 1028, | ||||
|         C = 1029, | ||||
|         V = 1039, | ||||
|         B = 1031, | ||||
|         N = 1032, | ||||
|         M = 1033, | ||||
|         OemComma = 1034, | ||||
|         OemPeriod = 1035, | ||||
|         OemSlash = 1036, | ||||
| 
 | ||||
|         //JpnSlash = 1037, | ||||
|         //Kor4 = 1037, | ||||
| 
 | ||||
|         RightShift = 1038, | ||||
|         Up = 1041, | ||||
|         Num1 = 1043, | ||||
|         Num2 = 1044, | ||||
|         Num3 = 1045, | ||||
|         Macro5 = 1280, | ||||
|         LeftControl = 1281, | ||||
|         LeftWindows = 1282, | ||||
|         LeftAlt = 1283, | ||||
| 
 | ||||
|         //Jpn3 = 1284, | ||||
|         //Kor5 = 1284, | ||||
| 
 | ||||
|         Space = 1287, | ||||
| 
 | ||||
|         //Jpn4 = 1289, | ||||
|         //Kor6 = 1289, | ||||
|         //Jpn5 = 1290, | ||||
|         //Kor7 = 1290, | ||||
| 
 | ||||
|         RightAlt = 1292, | ||||
|         Function = 1293, | ||||
|         RightMenu = 1294, | ||||
|         RightControl = 1295, | ||||
|         Left = 1296, | ||||
|         Down = 1297, | ||||
|         Right = 1298, | ||||
|         Num0 = 1300, | ||||
|         NumDecimal = 1301, | ||||
|         NumEnter = 1302, | ||||
|         Logo = 1548, | ||||
|         Invalid = 65535 | ||||
|     } | ||||
| } | ||||
| @ -0,0 +1,50 @@@@ -0,0 +1,50 @@ | ||||
| using Colore; | ||||
| using Colore.Data; | ||||
| using Colore.Effects.Keyboard; | ||||
| using System; | ||||
| using System.Threading; | ||||
| 
 | ||||
| namespace ChromaEffectsImporter | ||||
| { | ||||
|     internal class ColoreOutput | ||||
|     { | ||||
|         private IChroma chroma; | ||||
| 
 | ||||
|         private string ChromaEffectPath; | ||||
| 
 | ||||
|         public ColoreOutput(string chromaEffectPath) | ||||
|         { | ||||
|             ChromaEffectPath = chromaEffectPath; | ||||
|         } | ||||
| 
 | ||||
|         public void Start() | ||||
|         { | ||||
|             Setup(); | ||||
|             LoadChromaEffect(ChromaEffectPath); | ||||
|             Thread.Sleep(1000); | ||||
|             chroma.Keyboard.SetKeyAsync(Key.End, Color.Red, false); | ||||
|             Loop(); | ||||
|         } | ||||
| 
 | ||||
|         private void LoadChromaEffect(string path) | ||||
|         { | ||||
|             ChromaEffectsReader reader = new ChromaEffectsReader(); | ||||
|             EffectRegion[] regions = reader.ReadFirstStatic(path); | ||||
|             Array.ForEach(regions, x => x.Show(chroma)); | ||||
|         } | ||||
| 
 | ||||
|         private async void Setup() | ||||
|         { | ||||
|             chroma = await ColoreProvider.CreateNativeAsync(); | ||||
|         } | ||||
| 
 | ||||
|         private void Loop() | ||||
|         { | ||||
|             while (true) | ||||
|             { | ||||
|                 Thread.Sleep(100); | ||||
|             } | ||||
|             chroma.UninitializeAsync(); | ||||
|         } | ||||
|     } | ||||
| } | ||||
| @ -0,0 +1,30 @@@@ -0,0 +1,30 @@ | ||||
| using Colore; | ||||
| using Colore.Data; | ||||
| using Colore.Effects.Keyboard; | ||||
| using System; | ||||
| 
 | ||||
| namespace ChromaEffectsImporter | ||||
| { | ||||
|     internal class EffectRegion | ||||
|     { | ||||
|         public Key[] Keys { get; private set; } | ||||
|         public Color Color { get; private set; } | ||||
| 
 | ||||
|         public EffectRegion(Key[] keys, Color color) | ||||
|         { | ||||
|             Keys = keys; | ||||
|             Color = color; | ||||
|         } | ||||
| 
 | ||||
|         public EffectRegion(Key keys, Color color) | ||||
|         { | ||||
|             Keys = new Key[] { keys }; | ||||
|             Color = color; | ||||
|         } | ||||
| 
 | ||||
|         internal void Show(IChroma chroma) | ||||
|         { | ||||
|             Array.ForEach(Keys, x => chroma.Keyboard.SetKeyAsync(x, Color, false)); | ||||
|         } | ||||
|     } | ||||
| } | ||||
| @ -0,0 +1,20 @@@@ -0,0 +1,20 @@ | ||||
| using System; | ||||
| using System.IO; | ||||
| 
 | ||||
| namespace ChromaEffectsImporter | ||||
| { | ||||
|     internal class Program | ||||
|     { | ||||
|         private static void Main(string[] args) | ||||
|         { | ||||
|             ColoreOutput coloreOutput = new ColoreOutput(ChromaEffects()); | ||||
|             coloreOutput.Start(); | ||||
|         } | ||||
| 
 | ||||
|         private static string ChromaEffects() | ||||
|         { | ||||
|             string root = Path.GetFullPath(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "..\\..\\")); | ||||
|             return Path.Combine(root, "Resources\\ChromaEffects.xml"); | ||||
|         } | ||||
|     } | ||||
| } | ||||
| @ -0,0 +1,35 @@@@ -0,0 +1,35 @@ | ||||
| using System.Reflection; | ||||
| using System.Runtime.InteropServices; | ||||
| 
 | ||||
| // General Information about an assembly is controlled through the following | ||||
| // set of attributes. Change these attribute values to modify the information | ||||
| // associated with an assembly. | ||||
| [assembly: AssemblyTitle("ChromaEffectsImporter")] | ||||
| [assembly: AssemblyDescription("")] | ||||
| [assembly: AssemblyConfiguration("")] | ||||
| [assembly: AssemblyCompany("")] | ||||
| [assembly: AssemblyProduct("ChromaEffectsImporter")] | ||||
| [assembly: AssemblyCopyright("Copyright ©  2020")] | ||||
| [assembly: AssemblyTrademark("")] | ||||
| [assembly: AssemblyCulture("")] | ||||
| 
 | ||||
| // Setting ComVisible to false makes the types in this assembly not visible | ||||
| // to COM components.  If you need to access a type in this assembly from | ||||
| // COM, set the ComVisible attribute to true on that type. | ||||
| [assembly: ComVisible(false)] | ||||
| 
 | ||||
| // The following GUID is for the ID of the typelib if this project is exposed to COM | ||||
| [assembly: Guid("e3050745-702e-4143-a41d-fd549c8c46f9")] | ||||
| 
 | ||||
| // Version information for an assembly consists of the following four values: | ||||
| // | ||||
| //      Major Version | ||||
| //      Minor Version | ||||
| //      Build Number | ||||
| //      Revision | ||||
| // | ||||
| // You can specify all the values or you can default the Build and Revision Numbers | ||||
| // by using the '*' as shown below: | ||||
| // [assembly: AssemblyVersion("1.0.*")] | ||||
| [assembly: AssemblyVersion("1.0.0.0")] | ||||
| [assembly: AssemblyFileVersion("1.0.0.0")] | ||||
									
										
											File diff suppressed because it is too large
											Load Diff
										
									
								
							
						| @ -0,0 +1,11 @@@@ -0,0 +1,11 @@ | ||||
| <?xml version="1.0" encoding="utf-8"?> | ||||
| <packages> | ||||
|   <package id="Colore" version="6.0.0-rc0005" targetFramework="net472" /> | ||||
|   <package id="JetBrains.Annotations" version="11.1.0" targetFramework="net472" /> | ||||
|   <package id="Microsoft.Bcl" version="1.1.10" targetFramework="net472" /> | ||||
|   <package id="Microsoft.Bcl.Build" version="1.0.14" targetFramework="net472" /> | ||||
|   <package id="Microsoft.Net.Http" version="2.2.29" targetFramework="net472" /> | ||||
|   <package id="Newtonsoft.Json" version="10.0.3" targetFramework="net472" /> | ||||
|   <package id="System.Runtime.InteropServices.RuntimeInformation" version="4.3.0" targetFramework="net472" /> | ||||
|   <package id="System.ValueTuple" version="4.4.0" targetFramework="net472" /> | ||||
| </packages> | ||||
					Loading…
					
					
				
		Reference in new issue