summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authora1xd <[email protected]>2021-09-09 17:28:10 -0400
committera1xd <[email protected]>2021-09-09 17:28:10 -0400
commit1964548acbc56edb346d2e396eb0108010d869e1 (patch)
tree1f709352d4ff564df385afd3cb8a341d52134644
parentrename driver_settings (diff)
downloadrawaccel-1964548acbc56edb346d2e396eb0108010d869e1.tar.xz
rawaccel-1964548acbc56edb346d2e396eb0108010d869e1.zip
port to .NET 5
dependency changes - Newtonsoft.JSON + System.Windows.Forms.DataVisualization + System.Data.SqlClient (indirect, but was not added automatically by NuGet) added ARM64 target
-rw-r--r--converter/converter.vcxproj78
-rw-r--r--driver/driver.vcxproj115
-rw-r--r--grapher/AboutBox.cs6
-rw-r--r--grapher/App.config6
-rw-r--r--grapher/Form1.cs13
-rw-r--r--grapher/Models/Devices/DeviceIDManager.cs5
-rw-r--r--grapher/Models/Serialized/GUISettings.cs21
-rw-r--r--grapher/Models/Serialized/SettingsManager.cs7
-rw-r--r--grapher/grapher.csproj246
-rw-r--r--grapher/packages.config4
-rw-r--r--installer/installer.vcxproj89
-rw-r--r--rawaccel.sln63
-rw-r--r--uninstaller/uninstaller.vcxproj75
-rw-r--r--wrapper-deps/Class1.cs12
-rw-r--r--wrapper-deps/Properties/AssemblyInfo.cs36
-rw-r--r--wrapper-deps/packages.config4
-rw-r--r--wrapper-deps/wrapper-deps.csproj57
-rw-r--r--wrapper/wrapper.cpp356
-rw-r--r--wrapper/wrapper.vcxproj84
-rw-r--r--writer/App.config6
-rw-r--r--writer/Program.cs9
-rw-r--r--writer/Properties/AssemblyInfo.cs2
-rw-r--r--writer/packages.config4
-rw-r--r--writer/writer.csproj92
24 files changed, 769 insertions, 621 deletions
diff --git a/converter/converter.vcxproj b/converter/converter.vcxproj
index 049dec7..56e94ef 100644
--- a/converter/converter.vcxproj
+++ b/converter/converter.vcxproj
@@ -1,10 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|ARM64">
+ <Configuration>Debug</Configuration>
+ <Platform>ARM64</Platform>
+ </ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
+ <ProjectConfiguration Include="Release|ARM64">
+ <Configuration>Release</Configuration>
+ <Platform>ARM64</Platform>
+ </ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
@@ -26,6 +34,13 @@
<CharacterSet>Unicode</CharacterSet>
<CLRSupport>true</CLRSupport>
</PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>v142</PlatformToolset>
+ <CharacterSet>Unicode</CharacterSet>
+ <CLRSupport>true</CLRSupport>
+ </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
@@ -34,6 +49,14 @@
<CharacterSet>Unicode</CharacterSet>
<CLRSupport>true</CLRSupport>
</PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>v142</PlatformToolset>
+ <WholeProgramOptimization>false</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ <CLRSupport>true</CLRSupport>
+ </PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
@@ -43,16 +66,28 @@
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
+ <LinkIncremental>false</LinkIncremental>
+ </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
+ <LinkIncremental>false</LinkIncremental>
+ </PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
@@ -71,6 +106,24 @@
<AdditionalIncludeDirectories>$(SolutionDir)/common;</AdditionalIncludeDirectories>
</ResourceCompile>
</ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <SDLCheck>true</SDLCheck>
+ <PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ConformanceMode>true</ConformanceMode>
+ <LanguageStandard>stdcpp17</LanguageStandard>
+ <AdditionalOptions>/Zc:twoPhase- %(AdditionalOptions)</AdditionalOptions>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>DebugFull</GenerateDebugInformation>
+ </Link>
+ <ResourceCompile>
+ <AdditionalIncludeDirectories>$(SolutionDir)/common;</AdditionalIncludeDirectories>
+ </ResourceCompile>
+ </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
@@ -89,9 +142,28 @@
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
- <PostBuildEvent>
- <Command>copy /Y "$(TargetPath)" "$(SolutionDir)signed\$(TargetFileName)"</Command>
- </PostBuildEvent>
+ <ResourceCompile>
+ <AdditionalIncludeDirectories>$(SolutionDir)/common;</AdditionalIncludeDirectories>
+ </ResourceCompile>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <SDLCheck>true</SDLCheck>
+ <PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ConformanceMode>true</ConformanceMode>
+ <LanguageStandard>stdcpp17</LanguageStandard>
+ <AdditionalOptions>/Zc:twoPhase- %(AdditionalOptions)</AdditionalOptions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
<ResourceCompile>
<AdditionalIncludeDirectories>$(SolutionDir)/common;</AdditionalIncludeDirectories>
</ResourceCompile>
diff --git a/driver/driver.vcxproj b/driver/driver.vcxproj
index c2e4629..c87ec50 100644
--- a/driver/driver.vcxproj
+++ b/driver/driver.vcxproj
@@ -1,10 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|ARM64">
+ <Configuration>Debug</Configuration>
+ <Platform>ARM64</Platform>
+ </ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
+ <ProjectConfiguration Include="Release|ARM64">
+ <Configuration>Release</Configuration>
+ <Platform>ARM64</Platform>
+ </ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
@@ -32,6 +40,17 @@
<SpectreMitigation>Spectre</SpectreMitigation>
<Driver_SpectreMitigation>Spectre</Driver_SpectreMitigation>
</PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration">
+ <TargetVersion>Windows7</TargetVersion>
+ <UseDebugLibraries>False</UseDebugLibraries>
+ <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <DriverType>KMDF</DriverType>
+ <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
+ <ConfigurationType>Driver</ConfigurationType>
+ <OverrideDefaultRuntimeLibrary>true</OverrideDefaultRuntimeLibrary>
+ <SpectreMitigation>Spectre</SpectreMitigation>
+ <Driver_SpectreMitigation>Spectre</Driver_SpectreMitigation>
+ </PropertyGroup>
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetVersion>Windows7</TargetVersion>
<UseDebugLibraries>True</UseDebugLibraries>
@@ -41,6 +60,15 @@
<ConfigurationType>Driver</ConfigurationType>
<Driver_SpectreMitigation>Spectre</Driver_SpectreMitigation>
</PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration">
+ <TargetVersion>Windows7</TargetVersion>
+ <UseDebugLibraries>True</UseDebugLibraries>
+ <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <DriverType>KMDF</DriverType>
+ <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
+ <ConfigurationType>Driver</ConfigurationType>
+ <Driver_SpectreMitigation>Spectre</Driver_SpectreMitigation>
+ </PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<PropertyGroup>
<OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
@@ -51,19 +79,35 @@
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
+ </ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
+ </ImportGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<TargetName>rawaccel</TargetName>
<EnableInf2cat>false</EnableInf2cat>
<TimeStampServer>http://timestamp.globalsign.com/scripts/timstamp.dll</TimeStampServer>
</PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
+ <TargetName>rawaccel</TargetName>
+ <EnableInf2cat>false</EnableInf2cat>
+ <TimeStampServer>http://timestamp.globalsign.com/scripts/timstamp.dll</TimeStampServer>
+ </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetName>rawaccel</TargetName>
<EnableInf2cat>false</EnableInf2cat>
<TimeStampServer>http://timestamp.globalsign.com/scripts/timstamp.dll</TimeStampServer>
</PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
+ <TargetName>rawaccel</TargetName>
+ <EnableInf2cat>false</EnableInf2cat>
+ <TimeStampServer>http://timestamp.globalsign.com/scripts/timstamp.dll</TimeStampServer>
+ </PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<TreatWarningAsError>false</TreatWarningAsError>
@@ -104,6 +148,46 @@
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
</ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
+ <ClCompile>
+ <TreatWarningAsError>false</TreatWarningAsError>
+ <WarningLevel>Level4</WarningLevel>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <LanguageStandard>stdcpp17</LanguageStandard>
+ <AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories);$(SolutionDir)\external;$(MSBuildThisFileDirectory)</AdditionalIncludeDirectories>
+ <RuntimeLibrary>
+ </RuntimeLibrary>
+ <TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
+ <CallingConvention>StdCall</CallingConvention>
+ <AssemblerOutput>AssemblyCode</AssemblerOutput>
+ <ExpandAttributedSource>false</ExpandAttributedSource>
+ <UseUnicodeForAssemblerListing>false</UseUnicodeForAssemblerListing>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <Optimization>MaxSpeed</Optimization>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <FavorSizeOrSpeed>Neither</FavorSizeOrSpeed>
+ <WholeProgramOptimization>false</WholeProgramOptimization>
+ <BufferSecurityCheck>true</BufferSecurityCheck>
+ <ControlFlowGuard>Guard</ControlFlowGuard>
+ <FloatingPointModel>Fast</FloatingPointModel>
+ </ClCompile>
+ <Link>
+ <LinkTimeCodeGeneration>
+ </LinkTimeCodeGeneration>
+ <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <IgnoreAllDefaultLibraries>
+ </IgnoreAllDefaultLibraries>
+ <AdditionalDependencies>%(AdditionalDependencies);$(KernelBufferOverflowLib);$(DDK_LIB_PATH)ntoskrnl.lib;$(DDK_LIB_PATH)hal.lib;$(DDK_LIB_PATH)wmilib.lib;$(KMDF_LIB_PATH)$(KMDF_VER_PATH)\WdfLdr.lib;$(KMDF_LIB_PATH)$(KMDF_VER_PATH)\WdfDriverEntry.lib;$(DDK_LIB_PATH)wdmsec.lib;$(DDK_LIB_PATH)libcntpr.lib</AdditionalDependencies>
+ </Link>
+ <ResourceCompile>
+ <AdditionalIncludeDirectories>$(SolutionDir)/common;$(UM_IncludePath);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ResourceCompile>
+ <DriverSign>
+ <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
+ </DriverSign>
+ </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<TreatWarningAsError>false</TreatWarningAsError>
@@ -135,6 +219,37 @@
<AdditionalIncludeDirectories>$(SolutionDir)/common;$(UM_IncludePath);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
</ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
+ <ClCompile>
+ <TreatWarningAsError>false</TreatWarningAsError>
+ <WarningLevel>Level4</WarningLevel>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <AdditionalOptions>/Kernel %(AdditionalOptions)</AdditionalOptions>
+ <LanguageStandard>stdcpp17</LanguageStandard>
+ <AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories);$(SolutionDir)\external;$(MSBuildThisFileDirectory)</AdditionalIncludeDirectories>
+ <RuntimeLibrary>
+ </RuntimeLibrary>
+ <TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
+ <FloatingPointModel>Fast</FloatingPointModel>
+ <CallingConvention>StdCall</CallingConvention>
+ <Optimization>MaxSpeed</Optimization>
+ <ControlFlowGuard>Guard</ControlFlowGuard>
+ <BufferSecurityCheck>true</BufferSecurityCheck>
+ </ClCompile>
+ <Link>
+ <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <IgnoreAllDefaultLibraries>
+ </IgnoreAllDefaultLibraries>
+ <AdditionalDependencies>%(AdditionalDependencies);$(KernelBufferOverflowLib);$(DDK_LIB_PATH)ntoskrnl.lib;$(DDK_LIB_PATH)hal.lib;$(DDK_LIB_PATH)wmilib.lib;$(KMDF_LIB_PATH)$(KMDF_VER_PATH)\WdfLdr.lib;$(KMDF_LIB_PATH)$(KMDF_VER_PATH)\WdfDriverEntry.lib;$(DDK_LIB_PATH)wdmsec.lib;$(DDK_LIB_PATH)libcntpr.lib</AdditionalDependencies>
+ </Link>
+ <DriverSign>
+ <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
+ </DriverSign>
+ <ResourceCompile>
+ <AdditionalIncludeDirectories>$(SolutionDir)/common;$(UM_IncludePath);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ResourceCompile>
+ </ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="driver.cpp" />
</ItemGroup>
diff --git a/grapher/AboutBox.cs b/grapher/AboutBox.cs
index 5547c59..5a22329 100644
--- a/grapher/AboutBox.cs
+++ b/grapher/AboutBox.cs
@@ -21,7 +21,7 @@ namespace grapher
#region Assembly Attribute Accessors
- public string AssemblyTitle
+ public static string AssemblyTitle
{
get
{
@@ -34,11 +34,11 @@ namespace grapher
return titleAttribute.Title;
}
}
- return System.IO.Path.GetFileNameWithoutExtension(Assembly.GetExecutingAssembly().CodeBase);
+ return System.IO.Path.GetFileNameWithoutExtension(Assembly.GetExecutingAssembly().Location);
}
}
- public string AssemblyVersion
+ public static string AssemblyVersion
{
get
{
diff --git a/grapher/App.config b/grapher/App.config
deleted file mode 100644
index 56efbc7..0000000
--- a/grapher/App.config
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8" ?>
-<configuration>
- <startup>
- <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
- </startup>
-</configuration> \ No newline at end of file
diff --git a/grapher/Form1.cs b/grapher/Form1.cs
index c492a9b..66f4ce2 100644
--- a/grapher/Form1.cs
+++ b/grapher/Form1.cs
@@ -1,20 +1,7 @@
using System;
-using System.Collections.Generic;
-using System.Collections.ObjectModel;
-using System.ComponentModel;
-using System.Data;
using System.Drawing;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
using System.Windows.Forms;
-using System.Runtime.InteropServices;
-using grapher.Models.Calculations;
-using grapher.Models.Options;
-using grapher.Models.Serialized;
using grapher.Models;
-using System.Reflection;
-using System.Diagnostics;
namespace grapher
{
diff --git a/grapher/Models/Devices/DeviceIDManager.cs b/grapher/Models/Devices/DeviceIDManager.cs
index e0ee686..ff18718 100644
--- a/grapher/Models/Devices/DeviceIDManager.cs
+++ b/grapher/Models/Devices/DeviceIDManager.cs
@@ -1,10 +1,5 @@
using System;
using System.Collections.Generic;
-using System.Drawing;
-using System.Linq;
-using System.Management;
-using System.Text;
-using System.Threading.Tasks;
using System.Windows.Forms;
namespace grapher.Models.Devices
diff --git a/grapher/Models/Serialized/GUISettings.cs b/grapher/Models/Serialized/GUISettings.cs
index e7b67ba..b7fe4de 100644
--- a/grapher/Models/Serialized/GUISettings.cs
+++ b/grapher/Models/Serialized/GUISettings.cs
@@ -1,11 +1,10 @@
-using Newtonsoft.Json;
-using System;
+using System;
using System.IO;
-
+using System.Text.Json;
+using System.Text.Json.Serialization;
namespace grapher.Models.Serialized
{
[Serializable]
- [JsonObject(ItemRequired = Required.Always)]
public class GUISettings
{
#region Constructors
@@ -17,22 +16,16 @@ namespace grapher.Models.Serialized
#region Properties
- [JsonProperty(Order = 1)]
public int DPI { get; set; }
- [JsonProperty(Order = 2)]
public int PollRate { get; set; }
- [JsonProperty(Order = 3)]
public bool ShowLastMouseMove { get; set; }
- [JsonProperty(Order = 4)]
public bool ShowVelocityAndGain { get; set; }
- [JsonProperty(Order = 5)]
public bool AutoWriteToDriverOnStartup { get; set; }
- [JsonProperty(Order = 6)]
public bool StreamingMode { get; set; }
#endregion Properties
@@ -41,9 +34,7 @@ namespace grapher.Models.Serialized
public override bool Equals(object obj)
{
- var other = obj as GUISettings;
-
- if (other == null)
+ if (obj is not GUISettings other)
{
return false;
}
@@ -73,7 +64,7 @@ namespace grapher.Models.Serialized
public void Save()
{
- File.WriteAllText(Constants.GuiConfigFileName, JsonConvert.SerializeObject(this));
+ File.WriteAllText(Constants.GuiConfigFileName, JsonSerializer.Serialize(this));
}
public static GUISettings MaybeLoad()
@@ -82,7 +73,7 @@ namespace grapher.Models.Serialized
try
{
- settings = JsonConvert.DeserializeObject<GUISettings>(
+ settings = JsonSerializer.Deserialize<GUISettings>(
File.ReadAllText(Constants.GuiConfigFileName));
}
catch (Exception ex)
diff --git a/grapher/Models/Serialized/SettingsManager.cs b/grapher/Models/Serialized/SettingsManager.cs
index 3789c05..6db211f 100644
--- a/grapher/Models/Serialized/SettingsManager.cs
+++ b/grapher/Models/Serialized/SettingsManager.cs
@@ -1,11 +1,8 @@
-using Newtonsoft.Json;
-using System;
+using System;
using System.IO;
using System.Windows.Forms;
using System.Threading;
-using System.Text;
-using System.Drawing;
-using grapher.Models.Devices;
+using System.Text.Json;
using System.Collections.Generic;
using System.Linq;
diff --git a/grapher/grapher.csproj b/grapher/grapher.csproj
index 9a9412b..f96fea7 100644
--- a/grapher/grapher.csproj
+++ b/grapher/grapher.csproj
@@ -1,217 +1,37 @@
-<?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>{EF67F71F-ABF5-4760-B50D-D1B9836DF01C}</ProjectGuid>
+<Project Sdk="Microsoft.NET.Sdk">
+
+<PropertyGroup>
<OutputType>WinExe</OutputType>
- <RootNamespace>grapher</RootNamespace>
- <AssemblyName>rawaccel</AssemblyName>
- <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
- <FileAlignment>512</FileAlignment>
- <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
- <Deterministic>true</Deterministic>
- <PublishUrl>publish\</PublishUrl>
- <Install>true</Install>
- <InstallFrom>Disk</InstallFrom>
- <UpdateEnabled>false</UpdateEnabled>
- <UpdateMode>Foreground</UpdateMode>
- <UpdateInterval>7</UpdateInterval>
- <UpdateIntervalUnits>Days</UpdateIntervalUnits>
- <UpdatePeriodically>false</UpdatePeriodically>
- <UpdateRequired>false</UpdateRequired>
- <MapFileExtensions>true</MapFileExtensions>
- <ApplicationRevision>0</ApplicationRevision>
- <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
- <IsWebBootstrapper>false</IsWebBootstrapper>
- <UseApplicationTrust>false</UseApplicationTrust>
- <BootstrapperEnabled>true</BootstrapperEnabled>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
- <DebugSymbols>true</DebugSymbols>
- <OutputPath>$(SolutionDir)$(Platform)\$(Configuration)\</OutputPath>
- <DefineConstants>DEBUG;TRACE</DefineConstants>
- <DebugType>full</DebugType>
- <PlatformTarget>x64</PlatformTarget>
- <LangVersion>7.3</LangVersion>
- <ErrorReport>prompt</ErrorReport>
- <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
- <Prefer32Bit>true</Prefer32Bit>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
+ <TargetFramework>net5.0-windows</TargetFramework>
+ <Platforms>ARM64;x64</Platforms>
+ <UseWindowsForms>true</UseWindowsForms>
+ <AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
+ <AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
<OutputPath>$(SolutionDir)$(Platform)\$(Configuration)\</OutputPath>
- <DefineConstants>TRACE</DefineConstants>
- <Optimize>true</Optimize>
- <DebugType>pdbonly</DebugType>
- <PlatformTarget>x64</PlatformTarget>
- <LangVersion>7.3</LangVersion>
- <ErrorReport>prompt</ErrorReport>
- <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
- <Prefer32Bit>true</Prefer32Bit>
- </PropertyGroup>
- <PropertyGroup>
+ <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
<ApplicationIcon>mouse.ico</ApplicationIcon>
- </PropertyGroup>
- <ItemGroup>
- <Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
- <HintPath>..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
- </Reference>
- <Reference Include="System" />
- <Reference Include="System.Core" />
- <Reference Include="System.Windows.Forms.DataVisualization" />
- <Reference Include="System.Xml.Linq" />
- <Reference Include="System.Data.DataSetExtensions" />
- <Reference Include="Microsoft.CSharp" />
- <Reference Include="System.Data" />
- <Reference Include="System.Deployment" />
- <Reference Include="System.Drawing" />
- <Reference Include="System.Net.Http" />
- <Reference Include="System.Windows.Forms" />
- <Reference Include="System.Xml" />
- </ItemGroup>
- <ItemGroup>
- <Compile Include="AboutBox.cs">
- <SubType>Form</SubType>
- </Compile>
- <Compile Include="AboutBox.Designer.cs">
- <DependentUpon>AboutBox.cs</DependentUpon>
- </Compile>
- <Compile Include="Constants\Constants.cs" />
- <Compile Include="DeviceMenuForm.cs">
- <SubType>Form</SubType>
- </Compile>
- <Compile Include="DeviceMenuForm.Designer.cs">
- <DependentUpon>DeviceMenuForm.cs</DependentUpon>
- </Compile>
- <Compile Include="Layouts\LUTLayout.cs" />
- <Compile Include="Layouts\MotivityLayout.cs" />
- <Compile Include="Layouts\JumpLayout.cs" />
- <Compile Include="Layouts\UnsupportedLayout.cs" />
- <Compile Include="MessageDialog.cs">
- <SubType>Form</SubType>
- </Compile>
- <Compile Include="MessageDialog.Designer.cs">
- <DependentUpon>MessageDialog.cs</DependentUpon>
- </Compile>
- <Compile Include="Models\AccelGUIFactory.cs" />
- <Compile Include="Models\Calculations\AccelCalculator.cs" />
- <Compile Include="Models\Calculations\AccelChartData.cs" />
- <Compile Include="Models\Calculations\Data\AccelDataCombined.cs" />
- <Compile Include="Models\Calculations\Data\AccelDataXYComponential.cs" />
- <Compile Include="Models\Calculations\Data\AccelDataXYDirectional.cs" />
- <Compile Include="Models\Calculations\Data\IAccelData.cs" />
- <Compile Include="Models\Charts\AccelCharts.cs" />
- <Compile Include="Models\AccelGUI.cs" />
- <Compile Include="Models\Charts\ChartState\ChartState.cs" />
- <Compile Include="Models\Charts\ChartState\ChartStateManager.cs" />
- <Compile Include="Models\Charts\ChartState\CombinedState.cs" />
- <Compile Include="Models\Charts\EstimatedPoints.cs" />
- <Compile Include="Models\Charts\ChartState\XYOneGraphState.cs" />
- <Compile Include="Models\Charts\ChartState\XYTwoGraphState.cs" />
- <Compile Include="Models\Devices\DeviceIDItem.cs" />
- <Compile Include="Models\Devices\DeviceIDManager.cs" />
- <Compile Include="Models\Mouse\MouseData.cs" />
- <Compile Include="Models\Mouse\MouseWatcher.cs" />
- <Compile Include="Models\Mouse\PointData.cs" />
- <Compile Include="Models\Options\AccelTypeOptions.cs" />
- <Compile Include="Models\Options\AccelOptionSet.cs" />
- <Compile Include="Models\Options\ActiveValueLabel.cs" />
- <Compile Include="Models\Options\ActiveValueLabelXY.cs" />
- <Compile Include="Models\Options\ApplyOptions.cs" />
- <Compile Include="Models\Charts\ChartXY.cs" />
- <Compile Include="Models\Fields\Field.cs" />
- <Compile Include="Models\Fields\FieldXY.cs" />
- <Compile Include="Form1.cs">
- <SubType>Form</SubType>
- </Compile>
- <Compile Include="Form1.Designer.cs">
- <DependentUpon>Form1.cs</DependentUpon>
- </Compile>
- <Compile Include="Layouts\ClassicLayout.cs" />
- <Compile Include="Layouts\DefaultLayout.cs" />
- <Compile Include="Layouts\LayoutBase.cs" />
- <Compile Include="Layouts\LinearLayout.cs" />
- <Compile Include="Layouts\NaturalLayout.cs" />
- <Compile Include="Layouts\OffLayout.cs" />
- <Compile Include="Layouts\PowerLayout.cs" />
- <Compile Include="Models\Options\CheckBoxOption.cs" />
- <Compile Include="Models\Options\Directionality\DirectionalityOptions.cs" />
- <Compile Include="Models\Options\LUT\LutApplyOptions.cs" />
- <Compile Include="Models\Options\IOption.cs" />
- <Compile Include="Models\Options\LUT\LUTPanelOptions.cs" />
- <Compile Include="Models\Options\OffsetOptions.cs" />
- <Compile Include="Models\Options\Option.cs" />
- <Compile Include="Layouts\OptionLayout.cs" />
- <Compile Include="Models\Options\OptionBase.cs" />
- <Compile Include="Models\Options\OptionXY.cs" />
- <Compile Include="Models\Options\TextOption.cs" />
- <Compile Include="Models\Serialized\GUISettings.cs" />
- <Compile Include="Models\Serialized\SettingsManager.cs" />
- <Compile Include="Program.cs" />
- <Compile Include="Properties\AssemblyInfo.cs" />
- <EmbeddedResource Include="AboutBox.resx">
- <DependentUpon>AboutBox.cs</DependentUpon>
- <SubType>Designer</SubType>
- </EmbeddedResource>
- <EmbeddedResource Include="DeviceMenuForm.resx">
- <DependentUpon>DeviceMenuForm.cs</DependentUpon>
- </EmbeddedResource>
- <EmbeddedResource Include="Form1.resx">
- <DependentUpon>Form1.cs</DependentUpon>
- </EmbeddedResource>
- <EmbeddedResource Include="Properties\Resources.resx">
- <Generator>ResXFileCodeGenerator</Generator>
- <LastGenOutput>Resources.Designer.cs</LastGenOutput>
- <SubType>Designer</SubType>
- </EmbeddedResource>
- <Compile Include="Properties\Resources.Designer.cs">
- <AutoGen>True</AutoGen>
- <DependentUpon>Resources.resx</DependentUpon>
- </Compile>
- <None Include="packages.config" />
- <None Include="Properties\Settings.settings">
- <Generator>SettingsSingleFileGenerator</Generator>
- <LastGenOutput>Settings.Designer.cs</LastGenOutput>
- </None>
- <Compile Include="Properties\Settings.Designer.cs">
- <AutoGen>True</AutoGen>
- <DependentUpon>Settings.settings</DependentUpon>
- <DesignTimeSharedInput>True</DesignTimeSharedInput>
- </Compile>
- </ItemGroup>
- <ItemGroup>
- <None Include="App.config" />
- </ItemGroup>
- <ItemGroup>
- <ProjectReference Include="..\wrapper\wrapper.vcxproj">
- <Project>{28a3656f-a1de-405c-b547-191c32ec555f}</Project>
- <Name>wrapper</Name>
- </ProjectReference>
- </ItemGroup>
- <ItemGroup>
- <Folder Include="Icon\" />
- <Folder Include="ReadMe\" />
- </ItemGroup>
- <ItemGroup>
- <BootstrapperPackage Include=".NETFramework,Version=v4.7.2">
- <Visible>False</Visible>
- <ProductName>Microsoft .NET Framework 4.7.2 %28x86 and x64%29</ProductName>
- <Install>true</Install>
- </BootstrapperPackage>
- <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
- <Visible>False</Visible>
- <ProductName>.NET Framework 3.5 SP1</ProductName>
- <Install>false</Install>
- </BootstrapperPackage>
- </ItemGroup>
- <ItemGroup>
- <Content Include="mouse.ico" />
- </ItemGroup>
- <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
- <PropertyGroup>
- <PostBuildEvent>IF ($(ConfigurationName)) == (Debug) GOTO END
-copy /Y "$(TargetPath)" "$(SolutionDir)signed\$(TargetFileName)"
-:END</PostBuildEvent>
- </PropertyGroup>
+ <ProduceReferenceAssembly>false</ProduceReferenceAssembly>
+ <AssemblyName>rawaccel</AssemblyName>
+</PropertyGroup>
+
+<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
+ <PlatformTarget>ARM64</PlatformTarget>
+</PropertyGroup>
+<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
+ <PlatformTarget>ARM64</PlatformTarget>
+</PropertyGroup>
+
+<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <PlatformTarget>x64</PlatformTarget>
+</PropertyGroup>
+<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <PlatformTarget>x64</PlatformTarget>
+</PropertyGroup>
+
+<ItemGroup>
+ <PackageReference Include="System.Data.SqlClient" Version="4.8.2" />
+ <PackageReference Include="System.Windows.Forms.DataVisualization" Version="1.0.0-prerelease.20110.1" />
+ <ProjectReference Include="..\wrapper\wrapper.vcxproj" />
+</ItemGroup>
+
</Project> \ No newline at end of file
diff --git a/grapher/packages.config b/grapher/packages.config
deleted file mode 100644
index a9de8b5..0000000
--- a/grapher/packages.config
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<packages>
- <package id="Newtonsoft.Json" version="12.0.3" targetFramework="net472" />
-</packages> \ No newline at end of file
diff --git a/installer/installer.vcxproj b/installer/installer.vcxproj
index fa18344..392afca 100644
--- a/installer/installer.vcxproj
+++ b/installer/installer.vcxproj
@@ -1,10 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|ARM64">
+ <Configuration>Debug</Configuration>
+ <Platform>ARM64</Platform>
+ </ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
+ <ProjectConfiguration Include="Release|ARM64">
+ <Configuration>Release</Configuration>
+ <Platform>ARM64</Platform>
+ </ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
@@ -24,6 +32,12 @@
<PlatformToolset>v142</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>v142</PlatformToolset>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
@@ -31,6 +45,13 @@
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>v142</PlatformToolset>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
@@ -40,17 +61,30 @@
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
+ <LinkIncremental>true</LinkIncremental>
+ </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental>
<EmbedManifest>true</EmbedManifest>
</PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
+ <LinkIncremental>false</LinkIncremental>
+ <EmbedManifest>true</EmbedManifest>
+ </PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<PrecompiledHeader>
@@ -74,6 +108,29 @@
<AdditionalIncludeDirectories>$(SolutionDir)/common;</AdditionalIncludeDirectories>
</ResourceCompile>
</ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
+ <ClCompile>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <SDLCheck>true</SDLCheck>
+ <PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ConformanceMode>true</ConformanceMode>
+ <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(MSBuildThisFileDirectory)</AdditionalIncludeDirectories>
+ <LanguageStandard>stdcpplatest</LanguageStandard>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <UACExecutionLevel>RequireAdministrator</UACExecutionLevel>
+ </Link>
+ <Manifest>
+ <AdditionalManifestFiles>install.manifest</AdditionalManifestFiles>
+ </Manifest>
+ <ResourceCompile>
+ <AdditionalIncludeDirectories>$(SolutionDir)/common;</AdditionalIncludeDirectories>
+ </ResourceCompile>
+ </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<PrecompiledHeader>
@@ -98,10 +155,34 @@
<Manifest>
<AdditionalManifestFiles>install.manifest</AdditionalManifestFiles>
</Manifest>
- <PostBuildEvent>
- <Command>
- </Command>
- </PostBuildEvent>
+ <ResourceCompile>
+ <AdditionalIncludeDirectories>$(SolutionDir)/common;</AdditionalIncludeDirectories>
+ </ResourceCompile>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
+ <ClCompile>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <SDLCheck>true</SDLCheck>
+ <PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ConformanceMode>true</ConformanceMode>
+ <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <LanguageStandard>stdcpplatest</LanguageStandard>
+ <InlineFunctionExpansion>Default</InlineFunctionExpansion>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <UACExecutionLevel>RequireAdministrator</UACExecutionLevel>
+ </Link>
+ <Manifest>
+ <AdditionalManifestFiles>install.manifest</AdditionalManifestFiles>
+ </Manifest>
<ResourceCompile>
<AdditionalIncludeDirectories>$(SolutionDir)/common;</AdditionalIncludeDirectories>
</ResourceCompile>
diff --git a/rawaccel.sln b/rawaccel.sln
index 9b3978c..2300191 100644
--- a/rawaccel.sln
+++ b/rawaccel.sln
@@ -12,21 +12,16 @@ EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "uninstaller", "uninstaller\uninstaller.vcxproj", "{A4097FF6-A6F0-44E8-B8D0-538D0FB75936}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wrapper", "wrapper\wrapper.vcxproj", "{28A3656F-A1DE-405C-B547-191C32EC555F}"
- ProjectSection(ProjectDependencies) = postProject
- {0695A19E-8B14-4DE7-AADF-97E5912B197C} = {0695A19E-8B14-4DE7-AADF-97E5912B197C}
- EndProjectSection
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "grapher", "grapher\grapher.csproj", "{EF67F71F-ABF5-4760-B50D-D1B9836DF01C}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "writer", "writer\writer.csproj", "{28ACF254-E4EF-4A0E-9761-0FE22048D6FD}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "wrapper-deps", "wrapper-deps\wrapper-deps.csproj", "{0695A19E-8B14-4DE7-AADF-97E5912B197C}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "converter", "converter\converter.vcxproj", "{4C421992-9A27-4860-A40C-ADD76FBACE55}"
ProjectSection(ProjectDependencies) = postProject
{28A3656F-A1DE-405C-B547-191C32EC555F} = {28A3656F-A1DE-405C-B547-191C32EC555F}
EndProjectSection
EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "writer", "writer\writer.csproj", "{65CC7900-14C9-4A23-93DC-CD72659BDB63}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "grapher", "grapher\grapher.csproj", "{3325A504-5ED8-47B4-BE34-BA14D841C503}"
+EndProject
Global
GlobalSection(SharedMSBuildProjectFiles) = preSolution
common\common.vcxitems*{24b4226f-1461-408f-a1a4-1371c97153ea}*SharedItemsImports = 9
@@ -37,42 +32,68 @@ Global
common\common.vcxitems*{a4097ff6-a6f0-44e8-b8d0-538d0fb75936}*SharedItemsImports = 4
EndGlobalSection
GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|ARM64 = Debug|ARM64
Debug|x64 = Debug|x64
+ Release|ARM64 = Release|ARM64
Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {60D6C942-AC20-4C05-A2BE-54B5C966534D}.Debug|ARM64.ActiveCfg = Debug|ARM64
+ {60D6C942-AC20-4C05-A2BE-54B5C966534D}.Debug|ARM64.Build.0 = Debug|ARM64
{60D6C942-AC20-4C05-A2BE-54B5C966534D}.Debug|x64.ActiveCfg = Debug|x64
{60D6C942-AC20-4C05-A2BE-54B5C966534D}.Debug|x64.Build.0 = Debug|x64
+ {60D6C942-AC20-4C05-A2BE-54B5C966534D}.Release|ARM64.ActiveCfg = Release|ARM64
+ {60D6C942-AC20-4C05-A2BE-54B5C966534D}.Release|ARM64.Build.0 = Release|ARM64
{60D6C942-AC20-4C05-A2BE-54B5C966534D}.Release|x64.ActiveCfg = Release|x64
{60D6C942-AC20-4C05-A2BE-54B5C966534D}.Release|x64.Build.0 = Release|x64
+ {896950D1-520A-420A-B6B1-73014B92A68C}.Debug|ARM64.ActiveCfg = Debug|ARM64
+ {896950D1-520A-420A-B6B1-73014B92A68C}.Debug|ARM64.Build.0 = Debug|ARM64
{896950D1-520A-420A-B6B1-73014B92A68C}.Debug|x64.ActiveCfg = Debug|x64
{896950D1-520A-420A-B6B1-73014B92A68C}.Debug|x64.Build.0 = Debug|x64
+ {896950D1-520A-420A-B6B1-73014B92A68C}.Release|ARM64.ActiveCfg = Release|ARM64
+ {896950D1-520A-420A-B6B1-73014B92A68C}.Release|ARM64.Build.0 = Release|ARM64
{896950D1-520A-420A-B6B1-73014B92A68C}.Release|x64.ActiveCfg = Release|x64
{896950D1-520A-420A-B6B1-73014B92A68C}.Release|x64.Build.0 = Release|x64
+ {A4097FF6-A6F0-44E8-B8D0-538D0FB75936}.Debug|ARM64.ActiveCfg = Debug|ARM64
+ {A4097FF6-A6F0-44E8-B8D0-538D0FB75936}.Debug|ARM64.Build.0 = Debug|ARM64
{A4097FF6-A6F0-44E8-B8D0-538D0FB75936}.Debug|x64.ActiveCfg = Debug|x64
{A4097FF6-A6F0-44E8-B8D0-538D0FB75936}.Debug|x64.Build.0 = Debug|x64
+ {A4097FF6-A6F0-44E8-B8D0-538D0FB75936}.Release|ARM64.ActiveCfg = Release|ARM64
+ {A4097FF6-A6F0-44E8-B8D0-538D0FB75936}.Release|ARM64.Build.0 = Release|ARM64
{A4097FF6-A6F0-44E8-B8D0-538D0FB75936}.Release|x64.ActiveCfg = Release|x64
{A4097FF6-A6F0-44E8-B8D0-538D0FB75936}.Release|x64.Build.0 = Release|x64
+ {28A3656F-A1DE-405C-B547-191C32EC555F}.Debug|ARM64.ActiveCfg = Debug|ARM64
+ {28A3656F-A1DE-405C-B547-191C32EC555F}.Debug|ARM64.Build.0 = Debug|ARM64
{28A3656F-A1DE-405C-B547-191C32EC555F}.Debug|x64.ActiveCfg = Debug|x64
{28A3656F-A1DE-405C-B547-191C32EC555F}.Debug|x64.Build.0 = Debug|x64
+ {28A3656F-A1DE-405C-B547-191C32EC555F}.Release|ARM64.ActiveCfg = Release|ARM64
+ {28A3656F-A1DE-405C-B547-191C32EC555F}.Release|ARM64.Build.0 = Release|ARM64
{28A3656F-A1DE-405C-B547-191C32EC555F}.Release|x64.ActiveCfg = Release|x64
{28A3656F-A1DE-405C-B547-191C32EC555F}.Release|x64.Build.0 = Release|x64
- {EF67F71F-ABF5-4760-B50D-D1B9836DF01C}.Debug|x64.ActiveCfg = Debug|x64
- {EF67F71F-ABF5-4760-B50D-D1B9836DF01C}.Debug|x64.Build.0 = Debug|x64
- {EF67F71F-ABF5-4760-B50D-D1B9836DF01C}.Release|x64.ActiveCfg = Release|x64
- {EF67F71F-ABF5-4760-B50D-D1B9836DF01C}.Release|x64.Build.0 = Release|x64
- {28ACF254-E4EF-4A0E-9761-0FE22048D6FD}.Debug|x64.ActiveCfg = Debug|x64
- {28ACF254-E4EF-4A0E-9761-0FE22048D6FD}.Debug|x64.Build.0 = Debug|x64
- {28ACF254-E4EF-4A0E-9761-0FE22048D6FD}.Release|x64.ActiveCfg = Release|x64
- {28ACF254-E4EF-4A0E-9761-0FE22048D6FD}.Release|x64.Build.0 = Release|x64
- {0695A19E-8B14-4DE7-AADF-97E5912B197C}.Debug|x64.ActiveCfg = Debug|x64
- {0695A19E-8B14-4DE7-AADF-97E5912B197C}.Debug|x64.Build.0 = Debug|x64
- {0695A19E-8B14-4DE7-AADF-97E5912B197C}.Release|x64.ActiveCfg = Release|x64
- {0695A19E-8B14-4DE7-AADF-97E5912B197C}.Release|x64.Build.0 = Release|x64
+ {4C421992-9A27-4860-A40C-ADD76FBACE55}.Debug|ARM64.ActiveCfg = Debug|ARM64
+ {4C421992-9A27-4860-A40C-ADD76FBACE55}.Debug|ARM64.Build.0 = Debug|ARM64
{4C421992-9A27-4860-A40C-ADD76FBACE55}.Debug|x64.ActiveCfg = Debug|x64
{4C421992-9A27-4860-A40C-ADD76FBACE55}.Debug|x64.Build.0 = Debug|x64
+ {4C421992-9A27-4860-A40C-ADD76FBACE55}.Release|ARM64.ActiveCfg = Release|ARM64
+ {4C421992-9A27-4860-A40C-ADD76FBACE55}.Release|ARM64.Build.0 = Release|ARM64
{4C421992-9A27-4860-A40C-ADD76FBACE55}.Release|x64.ActiveCfg = Release|x64
{4C421992-9A27-4860-A40C-ADD76FBACE55}.Release|x64.Build.0 = Release|x64
+ {65CC7900-14C9-4A23-93DC-CD72659BDB63}.Debug|ARM64.ActiveCfg = Debug|ARM64
+ {65CC7900-14C9-4A23-93DC-CD72659BDB63}.Debug|ARM64.Build.0 = Debug|ARM64
+ {65CC7900-14C9-4A23-93DC-CD72659BDB63}.Debug|x64.ActiveCfg = Debug|x64
+ {65CC7900-14C9-4A23-93DC-CD72659BDB63}.Debug|x64.Build.0 = Debug|x64
+ {65CC7900-14C9-4A23-93DC-CD72659BDB63}.Release|ARM64.ActiveCfg = Release|ARM64
+ {65CC7900-14C9-4A23-93DC-CD72659BDB63}.Release|ARM64.Build.0 = Release|ARM64
+ {65CC7900-14C9-4A23-93DC-CD72659BDB63}.Release|x64.ActiveCfg = Release|x64
+ {65CC7900-14C9-4A23-93DC-CD72659BDB63}.Release|x64.Build.0 = Release|x64
+ {3325A504-5ED8-47B4-BE34-BA14D841C503}.Debug|ARM64.ActiveCfg = Debug|ARM64
+ {3325A504-5ED8-47B4-BE34-BA14D841C503}.Debug|ARM64.Build.0 = Debug|ARM64
+ {3325A504-5ED8-47B4-BE34-BA14D841C503}.Debug|x64.ActiveCfg = Debug|x64
+ {3325A504-5ED8-47B4-BE34-BA14D841C503}.Debug|x64.Build.0 = Debug|x64
+ {3325A504-5ED8-47B4-BE34-BA14D841C503}.Release|ARM64.ActiveCfg = Release|ARM64
+ {3325A504-5ED8-47B4-BE34-BA14D841C503}.Release|ARM64.Build.0 = Release|ARM64
+ {3325A504-5ED8-47B4-BE34-BA14D841C503}.Release|x64.ActiveCfg = Release|x64
+ {3325A504-5ED8-47B4-BE34-BA14D841C503}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/uninstaller/uninstaller.vcxproj b/uninstaller/uninstaller.vcxproj
index 52e5583..47fdd30 100644
--- a/uninstaller/uninstaller.vcxproj
+++ b/uninstaller/uninstaller.vcxproj
@@ -1,10 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|ARM64">
+ <Configuration>Debug</Configuration>
+ <Platform>ARM64</Platform>
+ </ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
+ <ProjectConfiguration Include="Release|ARM64">
+ <Configuration>Release</Configuration>
+ <Platform>ARM64</Platform>
+ </ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
@@ -24,6 +32,12 @@
<PlatformToolset>v142</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>v142</PlatformToolset>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
@@ -31,6 +45,13 @@
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>v142</PlatformToolset>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
@@ -40,16 +61,28 @@
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
+ <LinkIncremental>true</LinkIncremental>
+ </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
+ <LinkIncremental>false</LinkIncremental>
+ </PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
@@ -67,6 +100,23 @@
<AdditionalIncludeDirectories>$(SolutionDir)/common;</AdditionalIncludeDirectories>
</ResourceCompile>
</ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
+ <ClCompile>
+ <WarningLevel>Level4</WarningLevel>
+ <SDLCheck>true</SDLCheck>
+ <PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ConformanceMode>true</ConformanceMode>
+ <LanguageStandard>stdcpplatest</LanguageStandard>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <UACExecutionLevel>RequireAdministrator</UACExecutionLevel>
+ </Link>
+ <ResourceCompile>
+ <AdditionalIncludeDirectories>$(SolutionDir)/common;</AdditionalIncludeDirectories>
+ </ResourceCompile>
+ </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
@@ -84,10 +134,27 @@
<GenerateDebugInformation>true</GenerateDebugInformation>
<UACExecutionLevel>RequireAdministrator</UACExecutionLevel>
</Link>
- <PostBuildEvent>
- <Command>
- </Command>
- </PostBuildEvent>
+ <ResourceCompile>
+ <AdditionalIncludeDirectories>$(SolutionDir)/common;</AdditionalIncludeDirectories>
+ </ResourceCompile>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <SDLCheck>true</SDLCheck>
+ <PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ConformanceMode>true</ConformanceMode>
+ <LanguageStandard>stdcpplatest</LanguageStandard>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <UACExecutionLevel>RequireAdministrator</UACExecutionLevel>
+ </Link>
<ResourceCompile>
<AdditionalIncludeDirectories>$(SolutionDir)/common;</AdditionalIncludeDirectories>
</ResourceCompile>
diff --git a/wrapper-deps/Class1.cs b/wrapper-deps/Class1.cs
deleted file mode 100644
index 397bd8f..0000000
--- a/wrapper-deps/Class1.cs
+++ /dev/null
@@ -1,12 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace wrapper_deps
-{
- public class Class1
- {
- }
-}
diff --git a/wrapper-deps/Properties/AssemblyInfo.cs b/wrapper-deps/Properties/AssemblyInfo.cs
deleted file mode 100644
index 4e2bc26..0000000
--- a/wrapper-deps/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,36 +0,0 @@
-using System.Reflection;
-using System.Runtime.CompilerServices;
-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("wrapper-deps")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("wrapper-deps")]
-[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("0695a19e-8b14-4de7-aadf-97e5912b197c")]
-
-// 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")]
diff --git a/wrapper-deps/packages.config b/wrapper-deps/packages.config
deleted file mode 100644
index a9de8b5..0000000
--- a/wrapper-deps/packages.config
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<packages>
- <package id="Newtonsoft.Json" version="12.0.3" targetFramework="net472" />
-</packages> \ No newline at end of file
diff --git a/wrapper-deps/wrapper-deps.csproj b/wrapper-deps/wrapper-deps.csproj
deleted file mode 100644
index 35391b5..0000000
--- a/wrapper-deps/wrapper-deps.csproj
+++ /dev/null
@@ -1,57 +0,0 @@
-<?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>{0695A19E-8B14-4DE7-AADF-97E5912B197C}</ProjectGuid>
- <OutputType>Library</OutputType>
- <AppDesignerFolder>Properties</AppDesignerFolder>
- <RootNamespace>wrapper_deps</RootNamespace>
- <AssemblyName>wrapper-deps</AssemblyName>
- <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
- <FileAlignment>512</FileAlignment>
- <Deterministic>true</Deterministic>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
- <DebugSymbols>true</DebugSymbols>
- <OutputPath>bin\x64\Debug\</OutputPath>
- <DefineConstants>DEBUG;TRACE</DefineConstants>
- <DebugType>full</DebugType>
- <PlatformTarget>x64</PlatformTarget>
- <LangVersion>7.3</LangVersion>
- <ErrorReport>prompt</ErrorReport>
- <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
- <OutputPath>bin\x64\Release\</OutputPath>
- <DefineConstants>TRACE</DefineConstants>
- <Optimize>true</Optimize>
- <DebugType>pdbonly</DebugType>
- <PlatformTarget>x64</PlatformTarget>
- <LangVersion>7.3</LangVersion>
- <ErrorReport>prompt</ErrorReport>
- <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
- </PropertyGroup>
- <ItemGroup>
- <Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
- <HintPath>..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
- </Reference>
- <Reference Include="System" />
- <Reference Include="System.Core" />
- <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="Class1.cs" />
- <Compile Include="Properties\AssemblyInfo.cs" />
- </ItemGroup>
- <ItemGroup>
- <None Include="packages.config" />
- </ItemGroup>
- <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-</Project> \ No newline at end of file
diff --git a/wrapper/wrapper.cpp b/wrapper/wrapper.cpp
index c0b3b22..9a7b5f7 100644
--- a/wrapper/wrapper.cpp
+++ b/wrapper/wrapper.cpp
@@ -10,9 +10,8 @@ using namespace System::Collections::Generic;
using namespace System::Runtime::InteropServices;
using namespace System::Reflection;
using namespace System::Runtime::Serialization;
-using namespace Newtonsoft::Json;
-using namespace Newtonsoft::Json::Linq;
-
+using namespace System::Text::Json;
+using namespace System::Text::Json::Serialization;
namespace ra = rawaccel;
ra::modifier_settings default_modifier_settings;
@@ -34,13 +33,13 @@ public ref struct VersionHelper
}
};
-[JsonConverter(Converters::StringEnumConverter::typeid)]
+[JsonConverter(JsonStringEnumConverter::typeid)]
public enum class AccelMode
{
classic, jump, natural, motivity, power, lut, noaccel
};
-[JsonConverter(Converters::StringEnumConverter::typeid)]
+[JsonConverter(JsonStringEnumConverter::typeid)]
public enum class ClassicCapMode {
in_out, input, output
};
@@ -49,7 +48,10 @@ generic <typename T>
[StructLayout(LayoutKind::Sequential)]
public value struct Vec2
{
+ [JsonInclude]
T x;
+
+ [JsonInclude]
T y;
};
@@ -58,87 +60,201 @@ public value struct AccelArgs
{
literal int MaxLutPoints = ra::LUT_POINTS_CAPACITY;
+ [JsonInclude]
AccelMode mode;
- [JsonProperty("Gain / Velocity")]
+ [JsonPropertyName("Gain / Velocity")]
[MarshalAs(UnmanagedType::U1)]
+ [JsonInclude]
bool gain;
+ [JsonInclude]
double offset;
+
+ [JsonInclude]
double acceleration;
+
+ [JsonInclude]
double decayRate;
+
+ [JsonInclude]
double growthRate;
+
+ [JsonInclude]
double motivity;
+
+ [JsonInclude]
double exponentClassic;
+
+ [JsonInclude]
double scale;
+
+ [JsonInclude]
double weight;
+
+ [JsonInclude]
double exponentPower;
+
+ [JsonInclude]
double limit;
+
+ [JsonInclude]
double midpoint;
+
+ [JsonInclude]
double smooth;
- [JsonProperty("Cap / Jump")]
+ [JsonInclude]
+ [JsonPropertyName("Cap / Jump")]
Vec2<double> cap;
- [JsonProperty("Cap mode")]
+ [JsonInclude]
+ [JsonPropertyName("Cap mode")]
ClassicCapMode capMode;
[JsonIgnore]
int length;
+ [JsonInclude]
[MarshalAs(UnmanagedType::ByValArray, SizeConst = ra::LUT_RAW_DATA_CAPACITY)]
array<float>^ data;
+};
+
+public ref struct AccelArgsConverter : JsonConverter<AccelArgs>
+{
+ virtual void Write(Utf8JsonWriter^ writer, AccelArgs args, JsonSerializerOptions^ options) override
+ {
+ if (args.mode == AccelMode::lut) {
+ // data->Length must be fixed for interop,
+ // temporary resize avoids serializing a bunch of zeros
+ Array::Resize(args.data, args.length);
+ JsonSerializer::Serialize(writer, args, options);
+ Array::Resize(args.data, ra::LUT_RAW_DATA_CAPACITY);
+ }
+ else {
+ // data may be used internally in any mode,
+ // so hide it when it's not needed for deserialization
+ auto tmp = args.data;
+ args.data = Array::Empty<float>();
+ JsonSerializer::Serialize(writer, args, options);
+ args.data = tmp;
+ }
+ }
+
+ virtual AccelArgs Read(Utf8JsonReader% reader, Type^ type, JsonSerializerOptions^ options) override
+ {
+ AccelArgs args = JsonSerializer::Deserialize<AccelArgs>(reader, options);
+
+ if (args.data == nullptr) args.data = Array::Empty<float>();
+
+ args.length = args.data->Length;
+ array<float>::Resize(args.data, ra::LUT_RAW_DATA_CAPACITY);
+
+ return args;
+ }
+};
+
+public ref struct NullToEmptyStringConverter : JsonConverter<String^>
+{
+ virtual String^ Read(Utf8JsonReader% reader, Type^ type, JsonSerializerOptions^ options) override
+ {
+ String^ s = JsonSerializer::Deserialize<String^>(reader, options);
+ return s ? s : String::Empty;
+ }
+
+ virtual void Write(Utf8JsonWriter^ writer, String^ s, JsonSerializerOptions^ options) override
+ {
+ JsonSerializer::Serialize(writer, s, options);
+ }
- [OnDeserialized]
- void OnDeserializedMethod(StreamingContext context)
+ property bool HandleNull
{
- // data->Length must match SizeConst when marshalling
- length = data->Length;
- array<float>::Resize(data, ra::LUT_RAW_DATA_CAPACITY);
+ virtual bool get() override { return true; }
}
};
-[JsonObject(ItemRequired = Required::Always)]
+template <typename T>
+public ref struct NullToDefaultRefClassConverter : JsonConverter<T^>
+{
+ virtual T^ Read(Utf8JsonReader% reader, Type^ type, JsonSerializerOptions^ options) override
+ {
+ T^ val = JsonSerializer::Deserialize<T^>(reader, options);
+ return val ? val : gcnew T();
+ }
+
+ virtual void Write(Utf8JsonWriter^ writer, T^ val, JsonSerializerOptions^ options) override
+ {
+ JsonSerializer::Serialize(writer, val, options);
+ }
+
+ property bool HandleNull
+ {
+ virtual bool get() override { return true; }
+ }
+};
+
+template <typename T>
+using NullToEmptyListConverter = NullToDefaultRefClassConverter<List<T>>;
+
[StructLayout(LayoutKind::Sequential, CharSet = CharSet::Unicode)]
public ref struct Profile
{
+ [JsonInclude]
+ [JsonConverter(NullToEmptyStringConverter::typeid)]
[MarshalAs(UnmanagedType::ByValTStr, SizeConst = ra::MAX_NAME_LEN)]
System::String^ name;
- [JsonProperty("Whole/combined accel (set false for 'by component' mode)")]
+ [JsonInclude]
+ [JsonPropertyName("Whole/combined accel (set false for By-component mode)")]
[MarshalAs(UnmanagedType::U1)]
bool combineMagnitudes;
+ [JsonInclude]
double lpNorm;
- [JsonProperty("Stretches domain for horizontal vs vertical inputs")]
+ [JsonInclude]
+ [JsonPropertyName("Stretches domain for horizontal vs vertical inputs")]
Vec2<double> domainXY;
- [JsonProperty("Stretches accel range for horizontal vs vertical inputs")]
+
+ [JsonInclude]
+ [JsonPropertyName("Stretches accel range for horizontal vs vertical inputs")]
Vec2<double> rangeXY;
- [JsonProperty("Sensitivity multiplier")]
+ [JsonInclude]
+ [JsonPropertyName("Sensitivity multiplier")]
double sensitivity;
- [JsonProperty("Y/X sensitivity ratio (vertical sens multiplier)")]
+ [JsonInclude]
+ [JsonPropertyName("Y/X sensitivity ratio (vertical sens multiplier)")]
double yxSensRatio;
- [JsonProperty("Whole or horizontal accel parameters")]
+ [JsonConverter(AccelArgsConverter::typeid)]
+ [JsonInclude]
+ [JsonPropertyName("Whole or horizontal accel parameters")]
AccelArgs argsX;
- [JsonProperty("Vertical accel parameters")]
+
+ [JsonConverter(AccelArgsConverter::typeid)]
+ [JsonInclude]
+ [JsonPropertyName("Vertical accel parameters")]
AccelArgs argsY;
[JsonIgnore]
double minimumSpeed;
- [JsonProperty("Input Speed Cap")]
+
+ [JsonInclude]
+ [JsonPropertyName("Input Speed Cap")]
double maximumSpeed;
- [JsonProperty("Negative directional multipliers")]
+ [JsonInclude]
+ [JsonPropertyName("Negative directional multipliers")]
Vec2<double> directionalMultipliers;
- [JsonProperty("Degrees of rotation")]
+ [JsonInclude]
+ [JsonPropertyName("Degrees of rotation")]
double rotation;
- [JsonProperty("Degrees of angle snapping")]
+ [JsonInclude]
+ [JsonPropertyName("Degrees of angle snapping")]
double snap;
Profile(ra::profile& args)
@@ -150,45 +266,36 @@ public ref struct Profile
Profile(default_modifier_settings.prof) {}
};
-[JsonObject(ItemRequired = Required::Always)]
[StructLayout(LayoutKind::Sequential)]
public value struct DeviceConfig {
+ literal String^ dpiProperty =
+ "DPI (normalizes sens to 1000dpi and converts input speed unit (counts/ms to in/s)";
+ literal String^ pollingRateProperty =
+ "Polling rate Hz (keep at 0 for automatic adjustment)";
+
+ [JsonInclude]
[MarshalAs(UnmanagedType::U1)]
bool disable;
+
[MarshalAs(UnmanagedType::U1)]
- [JsonProperty(Required = Required::Default)]
+ [JsonInclude]
bool setExtraInfo;
- [JsonProperty("DPI (normalizes sens to 1000dpi and converts input speed unit: counts/ms -> in/s)")]
+ [JsonInclude]
+ [JsonPropertyName(dpiProperty)]
int dpi;
- [JsonProperty("Polling rate Hz (keep at 0 for automatic adjustment)")]
+ [JsonInclude]
+ [JsonPropertyName(pollingRateProperty)]
int pollingRate;
-
- [ComponentModel::DefaultValue(ra::DEFAULT_TIME_MIN)]
- [JsonProperty(Required = Required::Default)]
+
+ [JsonInclude]
double minimumTime;
- [ComponentModel::DefaultValue(ra::DEFAULT_TIME_MAX)]
- [JsonProperty(Required = Required::Default)]
+ [JsonInclude]
double maximumTime;
- bool ShouldSerializesetExtraInfo()
- {
- return setExtraInfo == true;
- }
-
- bool ShouldSerializeminimumTime()
- {
- return minimumTime != ra::DEFAULT_TIME_MIN;
- }
-
- bool ShouldSerializemaximumTime()
- {
- return maximumTime != ra::DEFAULT_TIME_MAX;
- }
-
void Init(const ra::device_config& cfg)
{
disable = cfg.disable;
@@ -200,19 +307,64 @@ public value struct DeviceConfig {
}
};
-[JsonObject(ItemRequired = Required::Always)]
+public ref struct DeviceConfigConverter : JsonConverter<DeviceConfig>
+{
+ virtual DeviceConfig Read(Utf8JsonReader% reader, Type^ type, JsonSerializerOptions^ options) override
+ {
+ DeviceConfig cfg = JsonSerializer::Deserialize<DeviceConfig>(reader, options);
+
+ if (cfg.maximumTime == 0) cfg.maximumTime = ra::DEFAULT_TIME_MAX;
+ if (cfg.minimumTime == 0) cfg.minimumTime = ra::DEFAULT_TIME_MIN;
+
+ return cfg;
+ }
+
+ virtual void Write(Utf8JsonWriter^ writer, DeviceConfig cfg, JsonSerializerOptions^ options) override
+ {
+ writer->WriteStartObject();
+
+ writer->WriteBoolean("disable", cfg.disable);
+
+ if (cfg.setExtraInfo) {
+ writer->WriteBoolean("setExtraInfo", cfg.setExtraInfo);
+ }
+
+ writer->WriteNumber(DeviceConfig::dpiProperty, cfg.dpi);
+ writer->WriteNumber(DeviceConfig::pollingRateProperty, cfg.pollingRate);
+
+ if (cfg.minimumTime != ra::DEFAULT_TIME_MIN) {
+ writer->WriteNumber("minimumTime", cfg.minimumTime);
+ }
+
+ if (cfg.maximumTime != ra::DEFAULT_TIME_MAX) {
+ writer->WriteNumber("maximumTime", cfg.maximumTime);
+ }
+
+ writer->WriteEndObject();
+ }
+};
+
+
[StructLayout(LayoutKind::Sequential, CharSet = CharSet::Unicode)]
public ref struct DeviceSettings
{
+ [JsonInclude]
+ [JsonConverter(NullToEmptyStringConverter::typeid)]
[MarshalAs(UnmanagedType::ByValTStr, SizeConst = ra::MAX_NAME_LEN)]
String^ name;
+ [JsonInclude]
+ [JsonConverter(NullToEmptyStringConverter::typeid)]
[MarshalAs(UnmanagedType::ByValTStr, SizeConst = ra::MAX_NAME_LEN)]
String^ profile;
+ [JsonInclude]
+ [JsonConverter(NullToEmptyStringConverter::typeid)]
[MarshalAs(UnmanagedType::ByValTStr, SizeConst = ra::MAX_DEV_ID_LEN)]
String^ id;
+ [JsonInclude]
+ [JsonConverter(DeviceConfigConverter::typeid)]
DeviceConfig config;
DeviceSettings(ra::device_settings& args)
@@ -470,21 +622,28 @@ public:
};
-[JsonObject(ItemRequired = Required::Always)]
public ref class DriverConfig {
public:
literal double WriteDelayMs = ra::WRITE_DELAY;
- literal String^ Key = "Driver settings";
+ initonly static JsonSerializerOptions^ DefaultOptions = DefaultSerializerOptions();
+ [JsonInclude]
+ [JsonConverter(NullToEmptyStringConverter::typeid)]
String^ version = RA_VER_STRING;
+ [JsonInclude]
+ [JsonConverter(DeviceConfigConverter::typeid)]
DeviceConfig defaultDeviceConfig;
+ [JsonInclude]
+ [JsonConverter(NullToEmptyListConverter<Profile^>::typeid)]
List<Profile^>^ profiles;
- [NonSerialized]
+ [JsonIgnore]
List<ManagedAccel^>^ accels;
+ [JsonInclude]
+ [JsonConverter(NullToEmptyListConverter<DeviceSettings^>::typeid)]
List<DeviceSettings^>^ devices;
void Activate()
@@ -579,69 +738,22 @@ public:
}
}
- JObject^ ToJObject()
- {
- auto dataQueue = gcnew Queue<array<float>^>();
- auto empty = Array::Empty<float>();
-
- for each (auto prof in profiles) {
- if (prof->argsX.mode == AccelMode::lut) {
- // data->Length is fixed for interop,
- // temporary resize avoids serializing a bunch of zeros
- Array::Resize(prof->argsX.data, prof->argsX.length);
- }
- else {
- // table data may be used internally in any mode,
- // so hide it when it's not needed for deserialization
- dataQueue->Enqueue(prof->argsX.data);
- prof->argsX.data = empty;
- }
-
- if (prof->argsY.mode == AccelMode::lut) {
- Array::Resize(prof->argsY.data, prof->argsY.length);
- }
- else {
- dataQueue->Enqueue(prof->argsY.data);
- prof->argsY.data = empty;
- }
- }
-
- JObject^ jObject = JObject::FromObject(this);
- String^ capModes = String::Join(" | ", Enum::GetNames(ClassicCapMode::typeid));
- String^ accelModes = String::Join(" | ", Enum::GetNames(AccelMode::typeid));
- jObject->AddFirst(gcnew JProperty("### Cap modes (applies to classic only) ###", capModes));
- jObject->AddFirst(gcnew JProperty("### Accel modes ###", accelModes));
-
- for each (auto prof in profiles) {
- if (prof->argsX.mode == AccelMode::lut) {
- Array::Resize(prof->argsX.data, ra::LUT_RAW_DATA_CAPACITY);
- }
- else {
- prof->argsX.data = dataQueue->Dequeue();
- }
-
- if (prof->argsY.mode == AccelMode::lut) {
- Array::Resize(prof->argsY.data, ra::LUT_RAW_DATA_CAPACITY);
- }
- else {
- prof->argsY.data = dataQueue->Dequeue();
- }
- }
-
- return jObject;
- }
-
String^ ToJSON()
{
- return ToJObject()->ToString();
+ using namespace System::Text;
+ StringBuilder^ sb = gcnew StringBuilder();
+ sb->AppendFormat(
+ "/*\n* Accel modes: {0}\n* Cap modes (classic only): {1}\n*/\n",
+ String::Join(" | ", Enum::GetNames(AccelMode::typeid)),
+ String::Join(" | ", Enum::GetNames(ClassicCapMode::typeid)));
+ sb->Append(JsonSerializer::Serialize(this, DefaultOptions));
+ return sb->ToString();
}
// returns (config, null) or (null, error message)
static Tuple<DriverConfig^, String^>^ Convert(String^ json)
{
- auto jss = gcnew JsonSerializerSettings();
- jss->DefaultValueHandling = DefaultValueHandling::Populate;
- auto cfg = JsonConvert::DeserializeObject<DriverConfig^>(json, jss);
+ auto cfg = JsonSerializer::Deserialize<DriverConfig^>(json, DefaultOptions);
if (cfg == nullptr) throw gcnew JsonException("invalid JSON");
auto message = cfg->Errors();
@@ -673,9 +785,6 @@ public:
}
auto cfg = gcnew DriverConfig();
- cfg->profiles = gcnew List<Profile^>();
- cfg->accels = gcnew List<ManagedAccel^>();
- cfg->devices = gcnew List<DeviceSettings^>();
auto* byte_ptr = bytes.get();
ra::io_base* base_data = reinterpret_cast<ra::io_base*>(byte_ptr);
@@ -704,9 +813,6 @@ public:
static DriverConfig^ FromProfile(Profile^ prof)
{
auto cfg = gcnew DriverConfig();
- cfg->profiles = gcnew List<Profile^>();
- cfg->accels = gcnew List<ManagedAccel^>();
- cfg->devices = gcnew List<DeviceSettings^>();
cfg->profiles->Add(prof);
cfg->accels->Add(gcnew ManagedAccel(prof));
@@ -729,7 +835,21 @@ public:
}
}
-private:
- DriverConfig() {}
-};
+ DriverConfig()
+ {
+ profiles = gcnew List<Profile^>();
+ accels = gcnew List<ManagedAccel^>();
+ devices = gcnew List<DeviceSettings^>();
+ defaultDeviceConfig.Init(default_device_settings.config);
+ }
+private:
+ static JsonSerializerOptions^ DefaultSerializerOptions()
+ {
+ JsonSerializerOptions^ options = gcnew JsonSerializerOptions();
+ options->WriteIndented = true;
+ options->ReadCommentHandling = JsonCommentHandling::Skip;
+ options->AllowTrailingCommas = true;
+ return options;
+ }
+};
diff --git a/wrapper/wrapper.vcxproj b/wrapper/wrapper.vcxproj
index 256b978..2f59336 100644
--- a/wrapper/wrapper.vcxproj
+++ b/wrapper/wrapper.vcxproj
@@ -1,10 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|ARM64">
+ <Configuration>Debug</Configuration>
+ <Platform>ARM64</Platform>
+ </ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
+ <ProjectConfiguration Include="Release|ARM64">
+ <Configuration>Release</Configuration>
+ <Platform>ARM64</Platform>
+ </ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
@@ -13,24 +21,38 @@
<PropertyGroup Label="Globals">
<VCProjectVersion>16.0</VCProjectVersion>
<ProjectGuid>{28A3656F-A1DE-405C-B547-191C32EC555F}</ProjectGuid>
- <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
<Keyword>ManagedCProj</Keyword>
<RootNamespace>wrapper</RootNamespace>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
+ <TargetFramework>net5.0</TargetFramework>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
- <CLRSupport>true</CLRSupport>
+ <CLRSupport>NetCore</CLRSupport>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>v142</PlatformToolset>
+ <CLRSupport>NetCore</CLRSupport>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
- <CLRSupport>true</CLRSupport>
+ <CLRSupport>NetCore</CLRSupport>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>v142</PlatformToolset>
+ <CLRSupport>NetCore</CLRSupport>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
@@ -42,22 +64,51 @@
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
+ <LinkIncremental>false</LinkIncremental>
+ </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
+ <LinkIncremental>false</LinkIncremental>
+ </PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<LanguageStandard>stdcpp17</LanguageStandard>
<FloatingPointModel>Fast</FloatingPointModel>
+ <DisableSpecificWarnings>4950;</DisableSpecificWarnings>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>
+ </AdditionalDependencies>
+ </Link>
+ <ResourceCompile>
+ <AdditionalIncludeDirectories>$(SolutionDir)/common;</AdditionalIncludeDirectories>
+ </ResourceCompile>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <LanguageStandard>stdcpp17</LanguageStandard>
+ <FloatingPointModel>Fast</FloatingPointModel>
+ <DisableSpecificWarnings>4950;</DisableSpecificWarnings>
</ClCompile>
<Link>
<AdditionalDependencies>
@@ -73,15 +124,28 @@
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<LanguageStandard>stdcpp17</LanguageStandard>
<FloatingPointModel>Fast</FloatingPointModel>
+ <DisableSpecificWarnings>4950;</DisableSpecificWarnings>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>
+ </AdditionalDependencies>
+ </Link>
+ <ResourceCompile>
+ <AdditionalIncludeDirectories>$(SolutionDir)/common;</AdditionalIncludeDirectories>
+ </ResourceCompile>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <LanguageStandard>stdcpp17</LanguageStandard>
+ <FloatingPointModel>Fast</FloatingPointModel>
+ <DisableSpecificWarnings>4950;</DisableSpecificWarnings>
</ClCompile>
<Link>
<AdditionalDependencies>
</AdditionalDependencies>
</Link>
- <PostBuildEvent>
- <Command>copy /Y "$(TargetPath)" "$(SolutionDir)signed\$(TargetFileName)" &amp;
-copy /Y "$(TargetDir)Newtonsoft.Json.dll" "$(SolutionDir)signed\Newtonsoft.Json.dll"</Command>
- </PostBuildEvent>
<ResourceCompile>
<AdditionalIncludeDirectories>$(SolutionDir)/common;</AdditionalIncludeDirectories>
</ResourceCompile>
@@ -97,12 +161,6 @@ copy /Y "$(TargetDir)Newtonsoft.Json.dll" "$(SolutionDir)signed\Newtonsoft.Json.
<ClCompile Include="wrapper.cpp" />
</ItemGroup>
<ItemGroup>
- <Reference Include="Newtonsoft.Json">
- <HintPath>..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
- </Reference>
- <Reference Include="System" />
- </ItemGroup>
- <ItemGroup>
<ResourceCompile Include="wrapper.rc" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
diff --git a/writer/App.config b/writer/App.config
deleted file mode 100644
index 56efbc7..0000000
--- a/writer/App.config
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8" ?>
-<configuration>
- <startup>
- <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
- </startup>
-</configuration> \ No newline at end of file
diff --git a/writer/Program.cs b/writer/Program.cs
index 83daed1..1a27a11 100644
--- a/writer/Program.cs
+++ b/writer/Program.cs
@@ -1,9 +1,6 @@
-using Newtonsoft.Json;
-
-using System;
-using System.Collections.Generic;
+using System;
using System.IO;
-using System.Linq;
+using System.Text.Json;
using System.Windows.Forms;
namespace writer
@@ -12,7 +9,7 @@ namespace writer
class Program
{
static readonly string DefaultPath = "settings.json";
- static readonly string Usage =
+ static readonly string Usage =
$"Usage: {AppDomain.CurrentDomain.FriendlyName} <settings file path>\n";
static void Exit(string msg)
diff --git a/writer/Properties/AssemblyInfo.cs b/writer/Properties/AssemblyInfo.cs
index 7f47c6d..3fd84d1 100644
--- a/writer/Properties/AssemblyInfo.cs
+++ b/writer/Properties/AssemblyInfo.cs
@@ -1,4 +1,4 @@
-using System.Reflection;
+using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
diff --git a/writer/packages.config b/writer/packages.config
deleted file mode 100644
index a9de8b5..0000000
--- a/writer/packages.config
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<packages>
- <package id="Newtonsoft.Json" version="12.0.3" targetFramework="net472" />
-</packages> \ No newline at end of file
diff --git a/writer/writer.csproj b/writer/writer.csproj
index 1c4cca5..49768fd 100644
--- a/writer/writer.csproj
+++ b/writer/writer.csproj
@@ -1,75 +1,31 @@
-<?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')" />
+<Project Sdk="Microsoft.NET.Sdk">
+
<PropertyGroup>
- <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
- <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
- <ProjectGuid>{28ACF254-E4EF-4A0E-9761-0FE22048D6FD}</ProjectGuid>
<OutputType>WinExe</OutputType>
- <RootNamespace>writer</RootNamespace>
- <AssemblyName>writer</AssemblyName>
- <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
- <FileAlignment>512</FileAlignment>
- <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
- <Deterministic>true</Deterministic>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
- <DebugSymbols>true</DebugSymbols>
- <OutputPath>$(SolutionDir)$(Platform)\$(Configuration)\</OutputPath>
- <DefineConstants>DEBUG;TRACE</DefineConstants>
- <DebugType>full</DebugType>
- <PlatformTarget>x64</PlatformTarget>
- <LangVersion>7.3</LangVersion>
- <ErrorReport>prompt</ErrorReport>
- <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
- <Prefer32Bit>true</Prefer32Bit>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
+ <TargetFramework>net5.0-windows</TargetFramework>
+ <UseWindowsForms>true</UseWindowsForms>
+ <Platforms>ARM64;x64</Platforms>
+ <AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
+ <AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
<OutputPath>$(SolutionDir)$(Platform)\$(Configuration)\</OutputPath>
- <DefineConstants>TRACE</DefineConstants>
- <Optimize>true</Optimize>
- <DebugType>pdbonly</DebugType>
- <PlatformTarget>x64</PlatformTarget>
- <LangVersion>7.3</LangVersion>
- <ErrorReport>prompt</ErrorReport>
- <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
- <Prefer32Bit>true</Prefer32Bit>
+ <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
+ <ProduceReferenceAssembly>false</ProduceReferenceAssembly>
</PropertyGroup>
- <PropertyGroup>
- <StartupObject />
- </PropertyGroup>
- <ItemGroup>
- <Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
- <HintPath>..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
- </Reference>
- <Reference Include="System" />
- <Reference Include="System.Core" />
- <Reference Include="System.Windows.Forms" />
- <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>
+
+<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
+ <PlatformTarget>ARM64</PlatformTarget>
+</PropertyGroup>
+<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
+ <PlatformTarget>ARM64</PlatformTarget>
+</PropertyGroup>
+
+<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <PlatformTarget>x64</PlatformTarget>
+</PropertyGroup>
+<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <PlatformTarget>x64</PlatformTarget>
+</PropertyGroup>
<ItemGroup>
- <Compile Include="Program.cs" />
- <Compile Include="Properties\AssemblyInfo.cs" />
+ <ProjectReference Include="..\wrapper\wrapper.vcxproj" />
</ItemGroup>
- <ItemGroup>
- <None Include="App.config" />
- <None Include="packages.config" />
- </ItemGroup>
- <ItemGroup>
- <ProjectReference Include="..\wrapper\wrapper.vcxproj">
- <Project>{28a3656f-a1de-405c-b547-191c32ec555f}</Project>
- <Name>wrapper</Name>
- </ProjectReference>
- </ItemGroup>
- <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
- <PropertyGroup>
- <PostBuildEvent>IF ($(ConfigurationName)) == (Debug) GOTO END
-copy /Y "$(TargetPath)" "$(SolutionDir)signed\$(TargetFileName)"
-:END</PostBuildEvent>
- </PropertyGroup>
</Project> \ No newline at end of file