mirror of
https://github.com/Artemis-RGB/Artemis
synced 2026-01-01 10:13:30 +00:00
Finalized client-side storage
This commit is contained in:
parent
0c47b9a2fb
commit
4781524139
@ -68,6 +68,42 @@
|
|||||||
<Reference Include="Ninject.Extensions.Factory, Version=3.3.2.0, Culture=neutral, PublicKeyToken=c7192dc5380945e7, processorArchitecture=MSIL">
|
<Reference Include="Ninject.Extensions.Factory, Version=3.3.2.0, Culture=neutral, PublicKeyToken=c7192dc5380945e7, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\Ninject.Extensions.Factory.3.3.2\lib\net45\Ninject.Extensions.Factory.dll</HintPath>
|
<HintPath>..\packages\Ninject.Extensions.Factory.3.3.2\lib\net45\Ninject.Extensions.Factory.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
|
<Reference Include="RGB.NET.Brushes, Version=0.0.1.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\RGB.NET.Brushes.0.0.1.26\lib\net45\RGB.NET.Brushes.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="RGB.NET.Core, Version=0.0.1.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\RGB.NET.Core.0.0.1.26\lib\net45\RGB.NET.Core.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="RGB.NET.Decorators, Version=0.0.1.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\RGB.NET.Decorators.0.0.1.26\lib\net45\RGB.NET.Decorators.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="RGB.NET.Devices.Asus, Version=0.0.1.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\RGB.NET.Devices.Asus.0.0.1.26\lib\net45\RGB.NET.Devices.Asus.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="RGB.NET.Devices.CoolerMaster, Version=0.0.1.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\RGB.NET.Devices.CoolerMaster.0.0.1.26\lib\net45\RGB.NET.Devices.CoolerMaster.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="RGB.NET.Devices.Corsair, Version=0.0.1.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\RGB.NET.Devices.Corsair.0.0.1.26\lib\net45\RGB.NET.Devices.Corsair.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="RGB.NET.Devices.Logitech, Version=0.0.1.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\RGB.NET.Devices.Logitech.0.0.1.26\lib\net45\RGB.NET.Devices.Logitech.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="RGB.NET.Devices.Msi, Version=0.0.1.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\RGB.NET.Devices.Msi.0.0.1.26\lib\net45\RGB.NET.Devices.Msi.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="RGB.NET.Devices.Novation, Version=0.0.1.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\RGB.NET.Devices.Novation.0.0.1.26\lib\net45\RGB.NET.Devices.Novation.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="RGB.NET.Devices.Razer, Version=0.0.1.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\RGB.NET.Devices.Razer.0.0.1.26\lib\net45\RGB.NET.Devices.Razer.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="RGB.NET.Groups, Version=0.0.1.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\RGB.NET.Groups.0.0.1.26\lib\net45\RGB.NET.Groups.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="RGB.NET.Input, Version=0.0.1.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\RGB.NET.Input.0.0.1.26\lib\net45\RGB.NET.Input.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
<Reference Include="Sanford.Multimedia.Midi, Version=6.4.2.0, Culture=neutral, processorArchitecture=MSIL">
|
<Reference Include="Sanford.Multimedia.Midi, Version=6.4.2.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\Sanford.Multimedia.Midi.6.4.2\lib\net20\Sanford.Multimedia.Midi.dll</HintPath>
|
<HintPath>..\packages\Sanford.Multimedia.Midi.6.4.2\lib\net20\Sanford.Multimedia.Midi.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
@ -138,7 +174,7 @@
|
|||||||
<Reference Include="System.Net.Http" />
|
<Reference Include="System.Net.Http" />
|
||||||
<Reference Include="System.Xml" />
|
<Reference Include="System.Xml" />
|
||||||
<Reference Include="System.Xml.ReaderWriter, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
<Reference Include="System.Xml.ReaderWriter, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\System.Xml.ReaderWriter.4.3.0\lib\net46\System.Xml.ReaderWriter.dll</HintPath>
|
<HintPath>..\packages\System.Xml.ReaderWriter.4.3.1\lib\net46\System.Xml.ReaderWriter.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System.Xml.XmlDocument, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
<Reference Include="System.Xml.XmlDocument, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\System.Xml.XmlDocument.4.3.0\lib\net46\System.Xml.XmlDocument.dll</HintPath>
|
<HintPath>..\packages\System.Xml.XmlDocument.4.3.0\lib\net46\System.Xml.XmlDocument.dll</HintPath>
|
||||||
@ -178,58 +214,6 @@
|
|||||||
<Analyzer Include="..\packages\Microsoft.CodeAnalysis.Analyzers.1.1.0\analyzers\dotnet\cs\Microsoft.CodeAnalysis.CSharp.Analyzers.dll" />
|
<Analyzer Include="..\packages\Microsoft.CodeAnalysis.Analyzers.1.1.0\analyzers\dotnet\cs\Microsoft.CodeAnalysis.CSharp.Analyzers.dll" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\..\..\RGB.NET\RGB.NET.Brushes\RGB.NET.Brushes.csproj">
|
|
||||||
<Project>{347c5f0f-f490-4dec-9c1c-6e84750d838d}</Project>
|
|
||||||
<Name>RGB.NET.Brushes</Name>
|
|
||||||
</ProjectReference>
|
|
||||||
<ProjectReference Include="..\..\..\RGB.NET\RGB.NET.Core\RGB.NET.Core.csproj">
|
|
||||||
<Project>{5a4f9a75-75fe-47cd-90e5-914d5b20d232}</Project>
|
|
||||||
<Name>RGB.NET.Core</Name>
|
|
||||||
</ProjectReference>
|
|
||||||
<ProjectReference Include="..\..\..\RGB.NET\RGB.NET.Decorators\RGB.NET.Decorators.csproj">
|
|
||||||
<Project>{7012c431-244a-453f-b7fd-59e030cdbc44}</Project>
|
|
||||||
<Name>RGB.NET.Decorators</Name>
|
|
||||||
</ProjectReference>
|
|
||||||
<ProjectReference Include="..\..\..\RGB.NET\RGB.NET.Devices.Asus\RGB.NET.Devices.Asus.csproj">
|
|
||||||
<Project>{4f2f3fbd-a1e4-4968-a2ad-0514959e5e59}</Project>
|
|
||||||
<Name>RGB.NET.Devices.Asus</Name>
|
|
||||||
</ProjectReference>
|
|
||||||
<ProjectReference Include="..\..\..\RGB.NET\RGB.NET.Devices.CoolerMaster\RGB.NET.Devices.CoolerMaster.csproj">
|
|
||||||
<Project>{85609427-d433-44e2-a249-ce890b66d845}</Project>
|
|
||||||
<Name>RGB.NET.Devices.CoolerMaster</Name>
|
|
||||||
</ProjectReference>
|
|
||||||
<ProjectReference Include="..\..\..\RGB.NET\RGB.NET.Devices.Corsair\RGB.NET.Devices.Corsair.csproj">
|
|
||||||
<Project>{dda8c4c2-8abf-4fa0-9af9-c47ad0bfe47d}</Project>
|
|
||||||
<Name>RGB.NET.Devices.Corsair</Name>
|
|
||||||
</ProjectReference>
|
|
||||||
<ProjectReference Include="..\..\..\RGB.NET\RGB.NET.Devices.Logitech\RGB.NET.Devices.Logitech.csproj">
|
|
||||||
<Project>{e7b2f174-fcc6-4fc7-9970-3138b5f4c921}</Project>
|
|
||||||
<Name>RGB.NET.Devices.Logitech</Name>
|
|
||||||
</ProjectReference>
|
|
||||||
<ProjectReference Include="..\..\..\RGB.NET\RGB.NET.Devices.Msi\RGB.NET.Devices.Msi.csproj">
|
|
||||||
<Project>{4efd77c7-fdb4-4c6b-970c-0ef66d24be09}</Project>
|
|
||||||
<Name>RGB.NET.Devices.Msi</Name>
|
|
||||||
</ProjectReference>
|
|
||||||
<ProjectReference Include="..\..\..\RGB.NET\RGB.NET.Devices.Novation\RGB.NET.Devices.Novation.csproj">
|
|
||||||
<Project>{db2911f6-404c-4bc8-b35f-232a7450755f}</Project>
|
|
||||||
<Name>RGB.NET.Devices.Novation</Name>
|
|
||||||
</ProjectReference>
|
|
||||||
<ProjectReference Include="..\..\..\RGB.NET\RGB.NET.Devices.Razer\RGB.NET.Devices.Razer.csproj">
|
|
||||||
<Project>{24ff4acb-d679-4b2d-86d4-50ab6c02d816}</Project>
|
|
||||||
<Name>RGB.NET.Devices.Razer</Name>
|
|
||||||
</ProjectReference>
|
|
||||||
<ProjectReference Include="..\..\..\RGB.NET\RGB.NET.Groups\RGB.NET.Groups.csproj">
|
|
||||||
<Project>{2a39f859-aad0-4c16-94f8-78057820b376}</Project>
|
|
||||||
<Name>RGB.NET.Groups</Name>
|
|
||||||
</ProjectReference>
|
|
||||||
<ProjectReference Include="..\..\..\RGB.NET\RGB.NET.Input.Corsair\RGB.NET.Input.Corsair.csproj">
|
|
||||||
<Project>{f905c418-76bb-4ba6-88ab-0793bc2681d3}</Project>
|
|
||||||
<Name>RGB.NET.Input.Corsair</Name>
|
|
||||||
</ProjectReference>
|
|
||||||
<ProjectReference Include="..\..\..\RGB.NET\RGB.NET.Input\RGB.NET.Input.csproj">
|
|
||||||
<Project>{e60c3c6f-903f-4d80-99d0-7a1e50af5a9d}</Project>
|
|
||||||
<Name>RGB.NET.Input</Name>
|
|
||||||
</ProjectReference>
|
|
||||||
<ProjectReference Include="..\Artemis.Plugins\Artemis.Plugins.csproj">
|
<ProjectReference Include="..\Artemis.Plugins\Artemis.Plugins.csproj">
|
||||||
<Project>{cd23bc5e-57f0-46ce-a007-24d031146219}</Project>
|
<Project>{cd23bc5e-57f0-46ce-a007-24d031146219}</Project>
|
||||||
<Name>Artemis.Plugins</Name>
|
<Name>Artemis.Plugins</Name>
|
||||||
@ -239,4 +223,21 @@
|
|||||||
<Folder Include="Models\" />
|
<Folder Include="Models\" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
|
<Import Project="..\packages\RGB.NET.Devices.Asus.0.0.1.26\build\net45\RGB.NET.Devices.Asus.targets" Condition="Exists('..\packages\RGB.NET.Devices.Asus.0.0.1.26\build\net45\RGB.NET.Devices.Asus.targets')" />
|
||||||
|
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||||
|
<PropertyGroup>
|
||||||
|
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Error Condition="!Exists('..\packages\RGB.NET.Devices.Asus.0.0.1.26\build\net45\RGB.NET.Devices.Asus.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\RGB.NET.Devices.Asus.0.0.1.26\build\net45\RGB.NET.Devices.Asus.targets'))" />
|
||||||
|
<Error Condition="!Exists('..\packages\RGB.NET.Devices.CoolerMaster.0.0.1.26\build\net45\RGB.NET.Devices.CoolerMaster.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\RGB.NET.Devices.CoolerMaster.0.0.1.26\build\net45\RGB.NET.Devices.CoolerMaster.targets'))" />
|
||||||
|
<Error Condition="!Exists('..\packages\RGB.NET.Devices.Corsair.0.0.1.26\build\net45\RGB.NET.Devices.Corsair.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\RGB.NET.Devices.Corsair.0.0.1.26\build\net45\RGB.NET.Devices.Corsair.targets'))" />
|
||||||
|
<Error Condition="!Exists('..\packages\RGB.NET.Devices.Logitech.0.0.1.26\build\net45\RGB.NET.Devices.Logitech.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\RGB.NET.Devices.Logitech.0.0.1.26\build\net45\RGB.NET.Devices.Logitech.targets'))" />
|
||||||
|
<Error Condition="!Exists('..\packages\RGB.NET.Devices.Msi.0.0.1.26\build\net45\RGB.NET.Devices.Msi.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\RGB.NET.Devices.Msi.0.0.1.26\build\net45\RGB.NET.Devices.Msi.targets'))" />
|
||||||
|
<Error Condition="!Exists('..\packages\RGB.NET.Devices.Razer.0.0.1.26\build\net45\RGB.NET.Devices.Razer.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\RGB.NET.Devices.Razer.0.0.1.26\build\net45\RGB.NET.Devices.Razer.targets'))" />
|
||||||
|
</Target>
|
||||||
|
<Import Project="..\packages\RGB.NET.Devices.CoolerMaster.0.0.1.26\build\net45\RGB.NET.Devices.CoolerMaster.targets" Condition="Exists('..\packages\RGB.NET.Devices.CoolerMaster.0.0.1.26\build\net45\RGB.NET.Devices.CoolerMaster.targets')" />
|
||||||
|
<Import Project="..\packages\RGB.NET.Devices.Corsair.0.0.1.26\build\net45\RGB.NET.Devices.Corsair.targets" Condition="Exists('..\packages\RGB.NET.Devices.Corsair.0.0.1.26\build\net45\RGB.NET.Devices.Corsair.targets')" />
|
||||||
|
<Import Project="..\packages\RGB.NET.Devices.Logitech.0.0.1.26\build\net45\RGB.NET.Devices.Logitech.targets" Condition="Exists('..\packages\RGB.NET.Devices.Logitech.0.0.1.26\build\net45\RGB.NET.Devices.Logitech.targets')" />
|
||||||
|
<Import Project="..\packages\RGB.NET.Devices.Msi.0.0.1.26\build\net45\RGB.NET.Devices.Msi.targets" Condition="Exists('..\packages\RGB.NET.Devices.Msi.0.0.1.26\build\net45\RGB.NET.Devices.Msi.targets')" />
|
||||||
|
<Import Project="..\packages\RGB.NET.Devices.Razer.0.0.1.26\build\net45\RGB.NET.Devices.Razer.targets" Condition="Exists('..\packages\RGB.NET.Devices.Razer.0.0.1.26\build\net45\RGB.NET.Devices.Razer.targets')" />
|
||||||
</Project>
|
</Project>
|
||||||
@ -1,4 +1,5 @@
|
|||||||
using System;
|
using System;
|
||||||
|
using System.Linq;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Artemis.Core.Events;
|
using Artemis.Core.Events;
|
||||||
using Artemis.Core.Services.Interfaces;
|
using Artemis.Core.Services.Interfaces;
|
||||||
@ -47,10 +48,14 @@ namespace Artemis.Core.Services
|
|||||||
Surface.AlignDevies();
|
Surface.AlignDevies();
|
||||||
|
|
||||||
// Do some testing, why does this work, how does it know I want to target the surface? Check source!
|
// Do some testing, why does this work, how does it know I want to target the surface? Check source!
|
||||||
var ledGroup = new RectangleLedGroup(Surface.SurfaceRectangle)
|
var mouse1 = Surface.Leds.First(l => l.Id == LedId.Mouse1);
|
||||||
{
|
mouse1.Color = new Color(255, 0, 0);
|
||||||
Brush = new SolidColorBrush(new Color(255, 0, 0)) { BrushCalculationMode = BrushCalculationMode.Absolute }
|
var mouse2 = Surface.Leds.First(l => l.Id == LedId.Mouse2);
|
||||||
};
|
mouse2.Color = new Color(255, 255, 0);
|
||||||
|
var mouse3 = Surface.Leds.First(l => l.Id == LedId.Mouse3);
|
||||||
|
mouse3.Color = new Color(255, 255, 255);
|
||||||
|
var mouse4 = Surface.Leds.First(l => l.Id == LedId.Mouse4);
|
||||||
|
mouse4.Color = new Color(255, 0, 255);
|
||||||
Surface.UpdateMode = UpdateMode.Continuous;
|
Surface.UpdateMode = UpdateMode.Continuous;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -13,6 +13,21 @@
|
|||||||
<package id="Ninject" version="3.3.4" targetFramework="net46" />
|
<package id="Ninject" version="3.3.4" targetFramework="net46" />
|
||||||
<package id="Ninject.Extensions.Conventions" version="3.3.0" targetFramework="net46" />
|
<package id="Ninject.Extensions.Conventions" version="3.3.0" targetFramework="net46" />
|
||||||
<package id="Ninject.Extensions.Factory" version="3.3.2" targetFramework="net46" />
|
<package id="Ninject.Extensions.Factory" version="3.3.2" targetFramework="net46" />
|
||||||
|
<package id="RGB.NET" version="0.0.1.26" targetFramework="net46" />
|
||||||
|
<package id="RGB.NET.Brushes" version="0.0.1.26" targetFramework="net46" />
|
||||||
|
<package id="RGB.NET.Core" version="0.0.1.26" targetFramework="net46" />
|
||||||
|
<package id="RGB.NET.Decorators" version="0.0.1.26" targetFramework="net46" />
|
||||||
|
<package id="RGB.NET.Devices" version="0.0.1.26" targetFramework="net46" />
|
||||||
|
<package id="RGB.NET.Devices.Asus" version="0.0.1.26" targetFramework="net46" />
|
||||||
|
<package id="RGB.NET.Devices.CoolerMaster" version="0.0.1.26" targetFramework="net46" />
|
||||||
|
<package id="RGB.NET.Devices.Corsair" version="0.0.1.26" targetFramework="net46" />
|
||||||
|
<package id="RGB.NET.Devices.Logitech" version="0.0.1.26" targetFramework="net46" />
|
||||||
|
<package id="RGB.NET.Devices.Msi" version="0.0.1.26" targetFramework="net46" />
|
||||||
|
<package id="RGB.NET.Devices.Novation" version="0.0.1.26" targetFramework="net46" />
|
||||||
|
<package id="RGB.NET.Devices.Razer" version="0.0.1.26" targetFramework="net46" />
|
||||||
|
<package id="RGB.NET.Groups" version="0.0.1.26" targetFramework="net46" />
|
||||||
|
<package id="RGB.NET.Input" version="0.0.1.26" targetFramework="net46" />
|
||||||
|
<package id="RGB.NET.Presets" version="0.0.1.26" targetFramework="net46" />
|
||||||
<package id="Sanford.Multimedia.Midi" version="6.4.2" targetFramework="net46" />
|
<package id="Sanford.Multimedia.Midi" version="6.4.2" targetFramework="net46" />
|
||||||
<package id="Stylet" version="1.1.21" targetFramework="net46" />
|
<package id="Stylet" version="1.1.21" targetFramework="net46" />
|
||||||
<package id="System.AppContext" version="4.3.0" targetFramework="net46" />
|
<package id="System.AppContext" version="4.3.0" targetFramework="net46" />
|
||||||
@ -52,7 +67,7 @@
|
|||||||
<package id="System.Threading.Tasks.Parallel" version="4.3.0" targetFramework="net46" />
|
<package id="System.Threading.Tasks.Parallel" version="4.3.0" targetFramework="net46" />
|
||||||
<package id="System.Threading.Thread" version="4.3.0" targetFramework="net46" />
|
<package id="System.Threading.Thread" version="4.3.0" targetFramework="net46" />
|
||||||
<package id="System.ValueTuple" version="4.4.0" targetFramework="net46" />
|
<package id="System.ValueTuple" version="4.4.0" targetFramework="net46" />
|
||||||
<package id="System.Xml.ReaderWriter" version="4.3.0" targetFramework="net46" />
|
<package id="System.Xml.ReaderWriter" version="4.3.1" targetFramework="net46" />
|
||||||
<package id="System.Xml.XDocument" version="4.3.0" targetFramework="net46" />
|
<package id="System.Xml.XDocument" version="4.3.0" targetFramework="net46" />
|
||||||
<package id="System.Xml.XmlDocument" version="4.3.0" targetFramework="net46" />
|
<package id="System.Xml.XmlDocument" version="4.3.0" targetFramework="net46" />
|
||||||
<package id="System.Xml.XPath" version="4.3.0" targetFramework="net46" />
|
<package id="System.Xml.XPath" version="4.3.0" targetFramework="net46" />
|
||||||
|
|||||||
@ -3,6 +3,7 @@
|
|||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>net461</TargetFramework>
|
<TargetFramework>net461</TargetFramework>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.1" />
|
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.1" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
@ -10,5 +11,8 @@
|
|||||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="2.0.1" />
|
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="2.0.1" />
|
||||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="2.0.1" />
|
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="2.0.1" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Folder Include="Migrations\" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
19
src/Artemis.Storage/Entities/FolderEntity.cs
Normal file
19
src/Artemis.Storage/Entities/FolderEntity.cs
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
|
||||||
|
namespace Artemis.Storage.Entities
|
||||||
|
{
|
||||||
|
[Table("Folders")]
|
||||||
|
internal class FolderEntity
|
||||||
|
{
|
||||||
|
[Key]
|
||||||
|
public int Id { get; set; }
|
||||||
|
|
||||||
|
public int Order { get; set; }
|
||||||
|
public string Name { get; set; }
|
||||||
|
|
||||||
|
public virtual ICollection<FolderEntity> Folders { get; set; }
|
||||||
|
public virtual ICollection<LayerEntity> Layers { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
15
src/Artemis.Storage/Entities/KeypointEntity.cs
Normal file
15
src/Artemis.Storage/Entities/KeypointEntity.cs
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
|
||||||
|
namespace Artemis.Storage.Entities
|
||||||
|
{
|
||||||
|
[Table("Keypoints")]
|
||||||
|
internal class KeypointEntity
|
||||||
|
{
|
||||||
|
[Key]
|
||||||
|
public int Id { get; set; }
|
||||||
|
|
||||||
|
public int Time { get; set; }
|
||||||
|
public string Value { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,18 +0,0 @@
|
|||||||
using System.Collections.Generic;
|
|
||||||
|
|
||||||
namespace Artemis.Storage.Entities
|
|
||||||
{
|
|
||||||
internal class Layer
|
|
||||||
{
|
|
||||||
public int ProfileId { get; set; }
|
|
||||||
public string Name { get; set; }
|
|
||||||
public LayerType LayerType { get; set; }
|
|
||||||
|
|
||||||
public virtual Profile Profile { get; set; }
|
|
||||||
public virtual ICollection<Layer> Layers { get; set; }
|
|
||||||
}
|
|
||||||
|
|
||||||
internal enum LayerType
|
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
|
||||||
21
src/Artemis.Storage/Entities/LayerEntity.cs
Normal file
21
src/Artemis.Storage/Entities/LayerEntity.cs
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
|
||||||
|
namespace Artemis.Storage.Entities
|
||||||
|
{
|
||||||
|
[Table("Layers")]
|
||||||
|
internal class LayerEntity
|
||||||
|
{
|
||||||
|
[Key]
|
||||||
|
public int Id { get; set; }
|
||||||
|
|
||||||
|
public string Type { get; set; }
|
||||||
|
|
||||||
|
public virtual ICollection<LedEntity> Leds { get; set; }
|
||||||
|
public virtual ICollection<LayerSettingEntity> Settings { get; set; }
|
||||||
|
|
||||||
|
public int Order { get; set; }
|
||||||
|
public string Name { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
18
src/Artemis.Storage/Entities/LayerSettingEntity.cs
Normal file
18
src/Artemis.Storage/Entities/LayerSettingEntity.cs
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
|
||||||
|
namespace Artemis.Storage.Entities
|
||||||
|
{
|
||||||
|
[Table("LayerSettings")]
|
||||||
|
internal class LayerSettingEntity
|
||||||
|
{
|
||||||
|
[Key]
|
||||||
|
public int Id { get; set; }
|
||||||
|
|
||||||
|
public string Name { get; set; }
|
||||||
|
public string Value { get; set; }
|
||||||
|
|
||||||
|
public ICollection<KeypointEntity> Keypoints { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
18
src/Artemis.Storage/Entities/LedEntity.cs
Normal file
18
src/Artemis.Storage/Entities/LedEntity.cs
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
|
||||||
|
namespace Artemis.Storage.Entities
|
||||||
|
{
|
||||||
|
[Table("Leds")]
|
||||||
|
internal class LedEntity
|
||||||
|
{
|
||||||
|
[Key]
|
||||||
|
public int Id { get; set; }
|
||||||
|
|
||||||
|
public string LedName { get; set; }
|
||||||
|
public string LimitedToDevice { get; set; }
|
||||||
|
|
||||||
|
public int LayerId { get; set; }
|
||||||
|
public virtual LayerEntity Layer { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,14 +0,0 @@
|
|||||||
using System.Collections.Generic;
|
|
||||||
using System.ComponentModel.DataAnnotations;
|
|
||||||
|
|
||||||
namespace Artemis.Storage.Entities
|
|
||||||
{
|
|
||||||
internal class Profile
|
|
||||||
{
|
|
||||||
[Key]
|
|
||||||
public int Id { get; set; }
|
|
||||||
|
|
||||||
public string Name { get; set; }
|
|
||||||
public virtual ICollection<Layer> Layers { get; set; }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
16
src/Artemis.Storage/Entities/ProfileEntity.cs
Normal file
16
src/Artemis.Storage/Entities/ProfileEntity.cs
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
|
namespace Artemis.Storage.Entities
|
||||||
|
{
|
||||||
|
internal class ProfileEntity
|
||||||
|
{
|
||||||
|
[Key]
|
||||||
|
public int Id { get; set; }
|
||||||
|
|
||||||
|
public string Name { get; set; }
|
||||||
|
public string Module { get; set; }
|
||||||
|
|
||||||
|
public int RootFolderId { get; set; }
|
||||||
|
public virtual FolderEntity RootFolder { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
namespace Artemis.Storage.Entities
|
namespace Artemis.Storage.Entities
|
||||||
{
|
{
|
||||||
internal class Setting
|
internal class SettingEntity
|
||||||
{
|
{
|
||||||
[Key]
|
[Key]
|
||||||
public string Name { get; set; }
|
public string Name { get; set; }
|
||||||
@ -1,67 +0,0 @@
|
|||||||
// <auto-generated />
|
|
||||||
using Artemis.Storage;
|
|
||||||
using Microsoft.EntityFrameworkCore;
|
|
||||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
|
||||||
using Microsoft.EntityFrameworkCore.Metadata;
|
|
||||||
using Microsoft.EntityFrameworkCore.Migrations;
|
|
||||||
using Microsoft.EntityFrameworkCore.Storage;
|
|
||||||
using System;
|
|
||||||
|
|
||||||
namespace Artemis.Storage.Migrations
|
|
||||||
{
|
|
||||||
[DbContext(typeof(StorageContext))]
|
|
||||||
[Migration("20171208203331_InitialCreate")]
|
|
||||||
partial class InitialCreate
|
|
||||||
{
|
|
||||||
protected override void BuildTargetModel(ModelBuilder modelBuilder)
|
|
||||||
{
|
|
||||||
#pragma warning disable 612, 618
|
|
||||||
modelBuilder
|
|
||||||
.HasAnnotation("ProductVersion", "2.0.1-rtm-125");
|
|
||||||
|
|
||||||
modelBuilder.Entity("Artemis.Storage.Entities.Layer", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("ProfileId");
|
|
||||||
|
|
||||||
b.Property<string>("Name");
|
|
||||||
|
|
||||||
b.HasKey("ProfileId", "Name");
|
|
||||||
|
|
||||||
b.ToTable("Layer");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Artemis.Storage.Entities.Profile", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<string>("Name");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.ToTable("Profiles");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Artemis.Storage.Entities.Setting", b =>
|
|
||||||
{
|
|
||||||
b.Property<string>("Name")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<string>("Value");
|
|
||||||
|
|
||||||
b.HasKey("Name");
|
|
||||||
|
|
||||||
b.ToTable("Settings");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Artemis.Storage.Entities.Layer", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("Artemis.Storage.Entities.Profile", "Profile")
|
|
||||||
.WithMany("Layers")
|
|
||||||
.HasForeignKey("ProfileId")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
|
||||||
});
|
|
||||||
#pragma warning restore 612, 618
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,59 +0,0 @@
|
|||||||
using Microsoft.EntityFrameworkCore.Migrations;
|
|
||||||
|
|
||||||
namespace Artemis.Storage.Migrations
|
|
||||||
{
|
|
||||||
public partial class InitialCreate : Migration
|
|
||||||
{
|
|
||||||
protected override void Up(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.CreateTable(
|
|
||||||
"Profiles",
|
|
||||||
table => new
|
|
||||||
{
|
|
||||||
Id = table.Column<int>(nullable: false)
|
|
||||||
.Annotation("Sqlite:Autoincrement", true),
|
|
||||||
Name = table.Column<string>(nullable: true)
|
|
||||||
},
|
|
||||||
constraints: table => { table.PrimaryKey("PK_Profiles", x => x.Id); });
|
|
||||||
|
|
||||||
migrationBuilder.CreateTable(
|
|
||||||
"Settings",
|
|
||||||
table => new
|
|
||||||
{
|
|
||||||
Name = table.Column<string>(nullable: false),
|
|
||||||
Value = table.Column<string>(nullable: true)
|
|
||||||
},
|
|
||||||
constraints: table => { table.PrimaryKey("PK_Settings", x => x.Name); });
|
|
||||||
|
|
||||||
migrationBuilder.CreateTable(
|
|
||||||
"Layer",
|
|
||||||
table => new
|
|
||||||
{
|
|
||||||
ProfileId = table.Column<int>(nullable: false),
|
|
||||||
Name = table.Column<string>(nullable: false)
|
|
||||||
},
|
|
||||||
constraints: table =>
|
|
||||||
{
|
|
||||||
table.PrimaryKey("PK_Layer", x => new {x.ProfileId, x.Name});
|
|
||||||
table.ForeignKey(
|
|
||||||
"FK_Layer_Profiles_ProfileId",
|
|
||||||
x => x.ProfileId,
|
|
||||||
"Profiles",
|
|
||||||
"Id",
|
|
||||||
onDelete: ReferentialAction.Cascade);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override void Down(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.DropTable(
|
|
||||||
"Layer");
|
|
||||||
|
|
||||||
migrationBuilder.DropTable(
|
|
||||||
"Settings");
|
|
||||||
|
|
||||||
migrationBuilder.DropTable(
|
|
||||||
"Profiles");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
190
src/Artemis.Storage/Migrations/20180124134310_InitialCreate.Designer.cs
generated
Normal file
190
src/Artemis.Storage/Migrations/20180124134310_InitialCreate.Designer.cs
generated
Normal file
@ -0,0 +1,190 @@
|
|||||||
|
// <auto-generated />
|
||||||
|
using Artemis.Storage;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||||
|
using Microsoft.EntityFrameworkCore.Metadata;
|
||||||
|
using Microsoft.EntityFrameworkCore.Migrations;
|
||||||
|
using Microsoft.EntityFrameworkCore.Storage;
|
||||||
|
using System;
|
||||||
|
|
||||||
|
namespace Artemis.Storage.Migrations
|
||||||
|
{
|
||||||
|
[DbContext(typeof(StorageContext))]
|
||||||
|
[Migration("20180124134310_InitialCreate")]
|
||||||
|
partial class InitialCreate
|
||||||
|
{
|
||||||
|
protected override void BuildTargetModel(ModelBuilder modelBuilder)
|
||||||
|
{
|
||||||
|
#pragma warning disable 612, 618
|
||||||
|
modelBuilder
|
||||||
|
.HasAnnotation("ProductVersion", "2.0.1-rtm-125");
|
||||||
|
|
||||||
|
modelBuilder.Entity("Artemis.Storage.Entities.FolderEntity", b =>
|
||||||
|
{
|
||||||
|
b.Property<int>("Id")
|
||||||
|
.ValueGeneratedOnAdd();
|
||||||
|
|
||||||
|
b.Property<int?>("FolderEntityId");
|
||||||
|
|
||||||
|
b.Property<string>("Name");
|
||||||
|
|
||||||
|
b.Property<int>("Order");
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
|
||||||
|
b.HasIndex("FolderEntityId");
|
||||||
|
|
||||||
|
b.ToTable("Folders");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Artemis.Storage.Entities.KeypointEntity", b =>
|
||||||
|
{
|
||||||
|
b.Property<int>("Id")
|
||||||
|
.ValueGeneratedOnAdd();
|
||||||
|
|
||||||
|
b.Property<int?>("LayerSettingEntityId");
|
||||||
|
|
||||||
|
b.Property<int>("Time");
|
||||||
|
|
||||||
|
b.Property<string>("Value");
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
|
||||||
|
b.HasIndex("LayerSettingEntityId");
|
||||||
|
|
||||||
|
b.ToTable("Keypoints");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Artemis.Storage.Entities.LayerEntity", b =>
|
||||||
|
{
|
||||||
|
b.Property<int>("Id")
|
||||||
|
.ValueGeneratedOnAdd();
|
||||||
|
|
||||||
|
b.Property<int?>("FolderEntityId");
|
||||||
|
|
||||||
|
b.Property<string>("Name");
|
||||||
|
|
||||||
|
b.Property<int>("Order");
|
||||||
|
|
||||||
|
b.Property<string>("Type");
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
|
||||||
|
b.HasIndex("FolderEntityId");
|
||||||
|
|
||||||
|
b.ToTable("Layers");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Artemis.Storage.Entities.LayerSettingEntity", b =>
|
||||||
|
{
|
||||||
|
b.Property<int>("Id")
|
||||||
|
.ValueGeneratedOnAdd();
|
||||||
|
|
||||||
|
b.Property<int?>("LayerEntityId");
|
||||||
|
|
||||||
|
b.Property<string>("Name");
|
||||||
|
|
||||||
|
b.Property<string>("Value");
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
|
||||||
|
b.HasIndex("LayerEntityId");
|
||||||
|
|
||||||
|
b.ToTable("LayerSettings");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Artemis.Storage.Entities.LedEntity", b =>
|
||||||
|
{
|
||||||
|
b.Property<int>("Id")
|
||||||
|
.ValueGeneratedOnAdd();
|
||||||
|
|
||||||
|
b.Property<int>("LayerId");
|
||||||
|
|
||||||
|
b.Property<string>("LedName");
|
||||||
|
|
||||||
|
b.Property<string>("LimitedToDevice");
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
|
||||||
|
b.HasIndex("LayerId");
|
||||||
|
|
||||||
|
b.ToTable("Leds");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Artemis.Storage.Entities.ProfileEntity", b =>
|
||||||
|
{
|
||||||
|
b.Property<int>("Id")
|
||||||
|
.ValueGeneratedOnAdd();
|
||||||
|
|
||||||
|
b.Property<string>("Module");
|
||||||
|
|
||||||
|
b.Property<string>("Name");
|
||||||
|
|
||||||
|
b.Property<int>("RootFolderId");
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
|
||||||
|
b.HasIndex("RootFolderId");
|
||||||
|
|
||||||
|
b.ToTable("Profiles");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Artemis.Storage.Entities.SettingEntity", b =>
|
||||||
|
{
|
||||||
|
b.Property<string>("Name")
|
||||||
|
.ValueGeneratedOnAdd();
|
||||||
|
|
||||||
|
b.Property<string>("Value");
|
||||||
|
|
||||||
|
b.HasKey("Name");
|
||||||
|
|
||||||
|
b.ToTable("Settings");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Artemis.Storage.Entities.FolderEntity", b =>
|
||||||
|
{
|
||||||
|
b.HasOne("Artemis.Storage.Entities.FolderEntity")
|
||||||
|
.WithMany("Folders")
|
||||||
|
.HasForeignKey("FolderEntityId");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Artemis.Storage.Entities.KeypointEntity", b =>
|
||||||
|
{
|
||||||
|
b.HasOne("Artemis.Storage.Entities.LayerSettingEntity")
|
||||||
|
.WithMany("Keypoints")
|
||||||
|
.HasForeignKey("LayerSettingEntityId");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Artemis.Storage.Entities.LayerEntity", b =>
|
||||||
|
{
|
||||||
|
b.HasOne("Artemis.Storage.Entities.FolderEntity")
|
||||||
|
.WithMany("Layers")
|
||||||
|
.HasForeignKey("FolderEntityId");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Artemis.Storage.Entities.LayerSettingEntity", b =>
|
||||||
|
{
|
||||||
|
b.HasOne("Artemis.Storage.Entities.LayerEntity")
|
||||||
|
.WithMany("Settings")
|
||||||
|
.HasForeignKey("LayerEntityId");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Artemis.Storage.Entities.LedEntity", b =>
|
||||||
|
{
|
||||||
|
b.HasOne("Artemis.Storage.Entities.LayerEntity", "Layer")
|
||||||
|
.WithMany("Leds")
|
||||||
|
.HasForeignKey("LayerId")
|
||||||
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Artemis.Storage.Entities.ProfileEntity", b =>
|
||||||
|
{
|
||||||
|
b.HasOne("Artemis.Storage.Entities.FolderEntity", "RootFolder")
|
||||||
|
.WithMany()
|
||||||
|
.HasForeignKey("RootFolderId")
|
||||||
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
|
});
|
||||||
|
#pragma warning restore 612, 618
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
205
src/Artemis.Storage/Migrations/20180124134310_InitialCreate.cs
Normal file
205
src/Artemis.Storage/Migrations/20180124134310_InitialCreate.cs
Normal file
@ -0,0 +1,205 @@
|
|||||||
|
using Microsoft.EntityFrameworkCore.Migrations;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Artemis.Storage.Migrations
|
||||||
|
{
|
||||||
|
public partial class InitialCreate : Migration
|
||||||
|
{
|
||||||
|
protected override void Up(MigrationBuilder migrationBuilder)
|
||||||
|
{
|
||||||
|
migrationBuilder.CreateTable(
|
||||||
|
name: "Folders",
|
||||||
|
columns: table => new
|
||||||
|
{
|
||||||
|
Id = table.Column<int>(nullable: false)
|
||||||
|
.Annotation("Sqlite:Autoincrement", true),
|
||||||
|
FolderEntityId = table.Column<int>(nullable: true),
|
||||||
|
Name = table.Column<string>(nullable: true),
|
||||||
|
Order = table.Column<int>(nullable: false)
|
||||||
|
},
|
||||||
|
constraints: table =>
|
||||||
|
{
|
||||||
|
table.PrimaryKey("PK_Folders", x => x.Id);
|
||||||
|
table.ForeignKey(
|
||||||
|
name: "FK_Folders_Folders_FolderEntityId",
|
||||||
|
column: x => x.FolderEntityId,
|
||||||
|
principalTable: "Folders",
|
||||||
|
principalColumn: "Id",
|
||||||
|
onDelete: ReferentialAction.Restrict);
|
||||||
|
});
|
||||||
|
|
||||||
|
migrationBuilder.CreateTable(
|
||||||
|
name: "Settings",
|
||||||
|
columns: table => new
|
||||||
|
{
|
||||||
|
Name = table.Column<string>(nullable: false),
|
||||||
|
Value = table.Column<string>(nullable: true)
|
||||||
|
},
|
||||||
|
constraints: table =>
|
||||||
|
{
|
||||||
|
table.PrimaryKey("PK_Settings", x => x.Name);
|
||||||
|
});
|
||||||
|
|
||||||
|
migrationBuilder.CreateTable(
|
||||||
|
name: "Layers",
|
||||||
|
columns: table => new
|
||||||
|
{
|
||||||
|
Id = table.Column<int>(nullable: false)
|
||||||
|
.Annotation("Sqlite:Autoincrement", true),
|
||||||
|
FolderEntityId = table.Column<int>(nullable: true),
|
||||||
|
Name = table.Column<string>(nullable: true),
|
||||||
|
Order = table.Column<int>(nullable: false),
|
||||||
|
Type = table.Column<string>(nullable: true)
|
||||||
|
},
|
||||||
|
constraints: table =>
|
||||||
|
{
|
||||||
|
table.PrimaryKey("PK_Layers", x => x.Id);
|
||||||
|
table.ForeignKey(
|
||||||
|
name: "FK_Layers_Folders_FolderEntityId",
|
||||||
|
column: x => x.FolderEntityId,
|
||||||
|
principalTable: "Folders",
|
||||||
|
principalColumn: "Id",
|
||||||
|
onDelete: ReferentialAction.Restrict);
|
||||||
|
});
|
||||||
|
|
||||||
|
migrationBuilder.CreateTable(
|
||||||
|
name: "Profiles",
|
||||||
|
columns: table => new
|
||||||
|
{
|
||||||
|
Id = table.Column<int>(nullable: false)
|
||||||
|
.Annotation("Sqlite:Autoincrement", true),
|
||||||
|
Module = table.Column<string>(nullable: true),
|
||||||
|
Name = table.Column<string>(nullable: true),
|
||||||
|
RootFolderId = table.Column<int>(nullable: false)
|
||||||
|
},
|
||||||
|
constraints: table =>
|
||||||
|
{
|
||||||
|
table.PrimaryKey("PK_Profiles", x => x.Id);
|
||||||
|
table.ForeignKey(
|
||||||
|
name: "FK_Profiles_Folders_RootFolderId",
|
||||||
|
column: x => x.RootFolderId,
|
||||||
|
principalTable: "Folders",
|
||||||
|
principalColumn: "Id",
|
||||||
|
onDelete: ReferentialAction.Cascade);
|
||||||
|
});
|
||||||
|
|
||||||
|
migrationBuilder.CreateTable(
|
||||||
|
name: "LayerSettings",
|
||||||
|
columns: table => new
|
||||||
|
{
|
||||||
|
Id = table.Column<int>(nullable: false)
|
||||||
|
.Annotation("Sqlite:Autoincrement", true),
|
||||||
|
LayerEntityId = table.Column<int>(nullable: true),
|
||||||
|
Name = table.Column<string>(nullable: true),
|
||||||
|
Value = table.Column<string>(nullable: true)
|
||||||
|
},
|
||||||
|
constraints: table =>
|
||||||
|
{
|
||||||
|
table.PrimaryKey("PK_LayerSettings", x => x.Id);
|
||||||
|
table.ForeignKey(
|
||||||
|
name: "FK_LayerSettings_Layers_LayerEntityId",
|
||||||
|
column: x => x.LayerEntityId,
|
||||||
|
principalTable: "Layers",
|
||||||
|
principalColumn: "Id",
|
||||||
|
onDelete: ReferentialAction.Restrict);
|
||||||
|
});
|
||||||
|
|
||||||
|
migrationBuilder.CreateTable(
|
||||||
|
name: "Leds",
|
||||||
|
columns: table => new
|
||||||
|
{
|
||||||
|
Id = table.Column<int>(nullable: false)
|
||||||
|
.Annotation("Sqlite:Autoincrement", true),
|
||||||
|
LayerId = table.Column<int>(nullable: false),
|
||||||
|
LedName = table.Column<string>(nullable: true),
|
||||||
|
LimitedToDevice = table.Column<string>(nullable: true)
|
||||||
|
},
|
||||||
|
constraints: table =>
|
||||||
|
{
|
||||||
|
table.PrimaryKey("PK_Leds", x => x.Id);
|
||||||
|
table.ForeignKey(
|
||||||
|
name: "FK_Leds_Layers_LayerId",
|
||||||
|
column: x => x.LayerId,
|
||||||
|
principalTable: "Layers",
|
||||||
|
principalColumn: "Id",
|
||||||
|
onDelete: ReferentialAction.Cascade);
|
||||||
|
});
|
||||||
|
|
||||||
|
migrationBuilder.CreateTable(
|
||||||
|
name: "Keypoints",
|
||||||
|
columns: table => new
|
||||||
|
{
|
||||||
|
Id = table.Column<int>(nullable: false)
|
||||||
|
.Annotation("Sqlite:Autoincrement", true),
|
||||||
|
LayerSettingEntityId = table.Column<int>(nullable: true),
|
||||||
|
Time = table.Column<int>(nullable: false),
|
||||||
|
Value = table.Column<string>(nullable: true)
|
||||||
|
},
|
||||||
|
constraints: table =>
|
||||||
|
{
|
||||||
|
table.PrimaryKey("PK_Keypoints", x => x.Id);
|
||||||
|
table.ForeignKey(
|
||||||
|
name: "FK_Keypoints_LayerSettings_LayerSettingEntityId",
|
||||||
|
column: x => x.LayerSettingEntityId,
|
||||||
|
principalTable: "LayerSettings",
|
||||||
|
principalColumn: "Id",
|
||||||
|
onDelete: ReferentialAction.Restrict);
|
||||||
|
});
|
||||||
|
|
||||||
|
migrationBuilder.CreateIndex(
|
||||||
|
name: "IX_Folders_FolderEntityId",
|
||||||
|
table: "Folders",
|
||||||
|
column: "FolderEntityId");
|
||||||
|
|
||||||
|
migrationBuilder.CreateIndex(
|
||||||
|
name: "IX_Keypoints_LayerSettingEntityId",
|
||||||
|
table: "Keypoints",
|
||||||
|
column: "LayerSettingEntityId");
|
||||||
|
|
||||||
|
migrationBuilder.CreateIndex(
|
||||||
|
name: "IX_Layers_FolderEntityId",
|
||||||
|
table: "Layers",
|
||||||
|
column: "FolderEntityId");
|
||||||
|
|
||||||
|
migrationBuilder.CreateIndex(
|
||||||
|
name: "IX_LayerSettings_LayerEntityId",
|
||||||
|
table: "LayerSettings",
|
||||||
|
column: "LayerEntityId");
|
||||||
|
|
||||||
|
migrationBuilder.CreateIndex(
|
||||||
|
name: "IX_Leds_LayerId",
|
||||||
|
table: "Leds",
|
||||||
|
column: "LayerId");
|
||||||
|
|
||||||
|
migrationBuilder.CreateIndex(
|
||||||
|
name: "IX_Profiles_RootFolderId",
|
||||||
|
table: "Profiles",
|
||||||
|
column: "RootFolderId");
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void Down(MigrationBuilder migrationBuilder)
|
||||||
|
{
|
||||||
|
migrationBuilder.DropTable(
|
||||||
|
name: "Keypoints");
|
||||||
|
|
||||||
|
migrationBuilder.DropTable(
|
||||||
|
name: "Leds");
|
||||||
|
|
||||||
|
migrationBuilder.DropTable(
|
||||||
|
name: "Profiles");
|
||||||
|
|
||||||
|
migrationBuilder.DropTable(
|
||||||
|
name: "Settings");
|
||||||
|
|
||||||
|
migrationBuilder.DropTable(
|
||||||
|
name: "LayerSettings");
|
||||||
|
|
||||||
|
migrationBuilder.DropTable(
|
||||||
|
name: "Layers");
|
||||||
|
|
||||||
|
migrationBuilder.DropTable(
|
||||||
|
name: "Folders");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,12 +1,16 @@
|
|||||||
// <auto-generated />
|
// <auto-generated />
|
||||||
|
using Artemis.Storage;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||||
|
using Microsoft.EntityFrameworkCore.Metadata;
|
||||||
|
using Microsoft.EntityFrameworkCore.Migrations;
|
||||||
|
using Microsoft.EntityFrameworkCore.Storage;
|
||||||
|
using System;
|
||||||
|
|
||||||
namespace Artemis.Storage.Migrations
|
namespace Artemis.Storage.Migrations
|
||||||
{
|
{
|
||||||
[DbContext(typeof(StorageContext))]
|
[DbContext(typeof(StorageContext))]
|
||||||
internal class StorageContextModelSnapshot : ModelSnapshot
|
partial class StorageContextModelSnapshot : ModelSnapshot
|
||||||
{
|
{
|
||||||
protected override void BuildModel(ModelBuilder modelBuilder)
|
protected override void BuildModel(ModelBuilder modelBuilder)
|
||||||
{
|
{
|
||||||
@ -14,48 +18,171 @@ namespace Artemis.Storage.Migrations
|
|||||||
modelBuilder
|
modelBuilder
|
||||||
.HasAnnotation("ProductVersion", "2.0.1-rtm-125");
|
.HasAnnotation("ProductVersion", "2.0.1-rtm-125");
|
||||||
|
|
||||||
modelBuilder.Entity("Artemis.Storage.Entities.Layer", b =>
|
modelBuilder.Entity("Artemis.Storage.Entities.FolderEntity", b =>
|
||||||
{
|
{
|
||||||
b.Property<int>("ProfileId");
|
b.Property<int>("Id")
|
||||||
|
.ValueGeneratedOnAdd();
|
||||||
|
|
||||||
b.Property<string>("Name");
|
b.Property<int?>("FolderEntityId");
|
||||||
|
|
||||||
b.HasKey("ProfileId", "Name");
|
b.Property<string>("Name");
|
||||||
|
|
||||||
b.ToTable("Layer");
|
b.Property<int>("Order");
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Artemis.Storage.Entities.Profile", b =>
|
b.HasKey("Id");
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<string>("Name");
|
b.HasIndex("FolderEntityId");
|
||||||
|
|
||||||
b.HasKey("Id");
|
b.ToTable("Folders");
|
||||||
|
});
|
||||||
|
|
||||||
b.ToTable("Profiles");
|
modelBuilder.Entity("Artemis.Storage.Entities.KeypointEntity", b =>
|
||||||
});
|
{
|
||||||
|
b.Property<int>("Id")
|
||||||
|
.ValueGeneratedOnAdd();
|
||||||
|
|
||||||
modelBuilder.Entity("Artemis.Storage.Entities.Setting", b =>
|
b.Property<int?>("LayerSettingEntityId");
|
||||||
{
|
|
||||||
b.Property<string>("Name")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<string>("Value");
|
b.Property<int>("Time");
|
||||||
|
|
||||||
b.HasKey("Name");
|
b.Property<string>("Value");
|
||||||
|
|
||||||
b.ToTable("Settings");
|
b.HasKey("Id");
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Artemis.Storage.Entities.Layer", b =>
|
b.HasIndex("LayerSettingEntityId");
|
||||||
{
|
|
||||||
b.HasOne("Artemis.Storage.Entities.Profile", "Profile")
|
b.ToTable("Keypoints");
|
||||||
.WithMany("Layers")
|
});
|
||||||
.HasForeignKey("ProfileId")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
modelBuilder.Entity("Artemis.Storage.Entities.LayerEntity", b =>
|
||||||
});
|
{
|
||||||
|
b.Property<int>("Id")
|
||||||
|
.ValueGeneratedOnAdd();
|
||||||
|
|
||||||
|
b.Property<int?>("FolderEntityId");
|
||||||
|
|
||||||
|
b.Property<string>("Name");
|
||||||
|
|
||||||
|
b.Property<int>("Order");
|
||||||
|
|
||||||
|
b.Property<string>("Type");
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
|
||||||
|
b.HasIndex("FolderEntityId");
|
||||||
|
|
||||||
|
b.ToTable("Layers");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Artemis.Storage.Entities.LayerSettingEntity", b =>
|
||||||
|
{
|
||||||
|
b.Property<int>("Id")
|
||||||
|
.ValueGeneratedOnAdd();
|
||||||
|
|
||||||
|
b.Property<int?>("LayerEntityId");
|
||||||
|
|
||||||
|
b.Property<string>("Name");
|
||||||
|
|
||||||
|
b.Property<string>("Value");
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
|
||||||
|
b.HasIndex("LayerEntityId");
|
||||||
|
|
||||||
|
b.ToTable("LayerSettings");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Artemis.Storage.Entities.LedEntity", b =>
|
||||||
|
{
|
||||||
|
b.Property<int>("Id")
|
||||||
|
.ValueGeneratedOnAdd();
|
||||||
|
|
||||||
|
b.Property<int>("LayerId");
|
||||||
|
|
||||||
|
b.Property<string>("LedName");
|
||||||
|
|
||||||
|
b.Property<string>("LimitedToDevice");
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
|
||||||
|
b.HasIndex("LayerId");
|
||||||
|
|
||||||
|
b.ToTable("Leds");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Artemis.Storage.Entities.ProfileEntity", b =>
|
||||||
|
{
|
||||||
|
b.Property<int>("Id")
|
||||||
|
.ValueGeneratedOnAdd();
|
||||||
|
|
||||||
|
b.Property<string>("Module");
|
||||||
|
|
||||||
|
b.Property<string>("Name");
|
||||||
|
|
||||||
|
b.Property<int>("RootFolderId");
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
|
||||||
|
b.HasIndex("RootFolderId");
|
||||||
|
|
||||||
|
b.ToTable("Profiles");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Artemis.Storage.Entities.SettingEntity", b =>
|
||||||
|
{
|
||||||
|
b.Property<string>("Name")
|
||||||
|
.ValueGeneratedOnAdd();
|
||||||
|
|
||||||
|
b.Property<string>("Value");
|
||||||
|
|
||||||
|
b.HasKey("Name");
|
||||||
|
|
||||||
|
b.ToTable("Settings");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Artemis.Storage.Entities.FolderEntity", b =>
|
||||||
|
{
|
||||||
|
b.HasOne("Artemis.Storage.Entities.FolderEntity")
|
||||||
|
.WithMany("Folders")
|
||||||
|
.HasForeignKey("FolderEntityId");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Artemis.Storage.Entities.KeypointEntity", b =>
|
||||||
|
{
|
||||||
|
b.HasOne("Artemis.Storage.Entities.LayerSettingEntity")
|
||||||
|
.WithMany("Keypoints")
|
||||||
|
.HasForeignKey("LayerSettingEntityId");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Artemis.Storage.Entities.LayerEntity", b =>
|
||||||
|
{
|
||||||
|
b.HasOne("Artemis.Storage.Entities.FolderEntity")
|
||||||
|
.WithMany("Layers")
|
||||||
|
.HasForeignKey("FolderEntityId");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Artemis.Storage.Entities.LayerSettingEntity", b =>
|
||||||
|
{
|
||||||
|
b.HasOne("Artemis.Storage.Entities.LayerEntity")
|
||||||
|
.WithMany("Settings")
|
||||||
|
.HasForeignKey("LayerEntityId");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Artemis.Storage.Entities.LedEntity", b =>
|
||||||
|
{
|
||||||
|
b.HasOne("Artemis.Storage.Entities.LayerEntity", "Layer")
|
||||||
|
.WithMany("Leds")
|
||||||
|
.HasForeignKey("LayerId")
|
||||||
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Artemis.Storage.Entities.ProfileEntity", b =>
|
||||||
|
{
|
||||||
|
b.HasOne("Artemis.Storage.Entities.FolderEntity", "RootFolder")
|
||||||
|
.WithMany()
|
||||||
|
.HasForeignKey("RootFolderId")
|
||||||
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
|
});
|
||||||
#pragma warning restore 612, 618
|
#pragma warning restore 612, 618
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Binary file not shown.
@ -5,24 +5,12 @@ namespace Artemis.Storage
|
|||||||
{
|
{
|
||||||
internal class StorageContext : DbContext
|
internal class StorageContext : DbContext
|
||||||
{
|
{
|
||||||
internal DbSet<Profile> Profiles { get; set; }
|
internal DbSet<ProfileEntity> Profiles { get; set; }
|
||||||
internal DbSet<Setting> Settings { get; set; }
|
internal DbSet<SettingEntity> Settings { get; set; }
|
||||||
|
|
||||||
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
|
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
|
||||||
{
|
{
|
||||||
optionsBuilder.UseSqlite("Data Source=Storage.db");
|
optionsBuilder.UseSqlite("Data Source=Storage.db");
|
||||||
}
|
}
|
||||||
|
|
||||||
#region Overrides of DbContext
|
|
||||||
|
|
||||||
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
|
||||||
{
|
|
||||||
// Composite keys must be configured with fluent API in Core
|
|
||||||
modelBuilder.Entity<Layer>().HasKey(l => new {l.ProfileId, l.Name});
|
|
||||||
|
|
||||||
base.OnModelCreating(modelBuilder);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
44
src/Artemis.UI/Adorners/BoundingBoxAdorner.cs
Normal file
44
src/Artemis.UI/Adorners/BoundingBoxAdorner.cs
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
using System.Windows;
|
||||||
|
using System.Windows.Documents;
|
||||||
|
using System.Windows.Media;
|
||||||
|
|
||||||
|
namespace Artemis.UI.Adorners
|
||||||
|
{
|
||||||
|
public class BoundingBoxAdorner : Adorner
|
||||||
|
{
|
||||||
|
private Color _boundingBoxColor;
|
||||||
|
private Rect _boundingBoxRect;
|
||||||
|
|
||||||
|
public BoundingBoxAdorner(UIElement adornedElement, Color boundingBoxColor) : base(adornedElement)
|
||||||
|
{
|
||||||
|
_boundingBoxRect = new Rect(new Size(0, 0));
|
||||||
|
BoundingBoxColor = boundingBoxColor;
|
||||||
|
|
||||||
|
IsHitTestVisible = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Color BoundingBoxColor
|
||||||
|
{
|
||||||
|
get => _boundingBoxColor;
|
||||||
|
set
|
||||||
|
{
|
||||||
|
_boundingBoxColor = value;
|
||||||
|
InvalidateVisual();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnRender(DrawingContext drawingContext)
|
||||||
|
{
|
||||||
|
var renderBrush = new SolidColorBrush(BoundingBoxColor) {Opacity = 0.2};
|
||||||
|
var renderPen = new Pen(new SolidColorBrush(BoundingBoxColor), 1.5);
|
||||||
|
|
||||||
|
drawingContext.DrawRectangle(renderBrush, renderPen, _boundingBoxRect);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Update(Point startingPoint, Point currentPoint)
|
||||||
|
{
|
||||||
|
_boundingBoxRect = new Rect(startingPoint, currentPoint);
|
||||||
|
InvalidateVisual();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -39,6 +39,9 @@
|
|||||||
<Reference Include="Castle.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc, processorArchitecture=MSIL">
|
<Reference Include="Castle.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\Castle.Core.4.2.1\lib\net45\Castle.Core.dll</HintPath>
|
<HintPath>..\packages\Castle.Core.4.2.1\lib\net45\Castle.Core.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
|
<Reference Include="HidSharp, Version=1.5.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\HidSharp.1.5\lib\net35\HidSharp.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
<Reference Include="MahApps.Metro, Version=1.5.0.23, Culture=neutral, PublicKeyToken=f4fb5a3c4d1e5b4f, processorArchitecture=MSIL">
|
<Reference Include="MahApps.Metro, Version=1.5.0.23, Culture=neutral, PublicKeyToken=f4fb5a3c4d1e5b4f, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\MahApps.Metro.1.5.0\lib\net45\MahApps.Metro.dll</HintPath>
|
<HintPath>..\packages\MahApps.Metro.1.5.0\lib\net45\MahApps.Metro.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
@ -63,6 +66,42 @@
|
|||||||
<Reference Include="PropertyChanged, Version=2.2.4.0, Culture=neutral, PublicKeyToken=ee3ee20bcf148ddd, processorArchitecture=MSIL">
|
<Reference Include="PropertyChanged, Version=2.2.4.0, Culture=neutral, PublicKeyToken=ee3ee20bcf148ddd, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\PropertyChanged.Fody.2.2.4.0\lib\net452\PropertyChanged.dll</HintPath>
|
<HintPath>..\packages\PropertyChanged.Fody.2.2.4.0\lib\net452\PropertyChanged.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
|
<Reference Include="RGB.NET.Brushes, Version=0.0.1.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\RGB.NET.Brushes.0.0.1.26\lib\net45\RGB.NET.Brushes.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="RGB.NET.Core, Version=0.0.1.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\RGB.NET.Core.0.0.1.26\lib\net45\RGB.NET.Core.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="RGB.NET.Decorators, Version=0.0.1.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\RGB.NET.Decorators.0.0.1.26\lib\net45\RGB.NET.Decorators.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="RGB.NET.Devices.Asus, Version=0.0.1.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\RGB.NET.Devices.Asus.0.0.1.26\lib\net45\RGB.NET.Devices.Asus.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="RGB.NET.Devices.CoolerMaster, Version=0.0.1.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\RGB.NET.Devices.CoolerMaster.0.0.1.26\lib\net45\RGB.NET.Devices.CoolerMaster.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="RGB.NET.Devices.Corsair, Version=0.0.1.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\RGB.NET.Devices.Corsair.0.0.1.26\lib\net45\RGB.NET.Devices.Corsair.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="RGB.NET.Devices.Logitech, Version=0.0.1.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\RGB.NET.Devices.Logitech.0.0.1.26\lib\net45\RGB.NET.Devices.Logitech.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="RGB.NET.Devices.Msi, Version=0.0.1.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\RGB.NET.Devices.Msi.0.0.1.26\lib\net45\RGB.NET.Devices.Msi.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="RGB.NET.Devices.Novation, Version=0.0.1.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\RGB.NET.Devices.Novation.0.0.1.26\lib\net45\RGB.NET.Devices.Novation.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="RGB.NET.Devices.Razer, Version=0.0.1.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\RGB.NET.Devices.Razer.0.0.1.26\lib\net45\RGB.NET.Devices.Razer.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="RGB.NET.Groups, Version=0.0.1.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\RGB.NET.Groups.0.0.1.26\lib\net45\RGB.NET.Groups.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Sanford.Multimedia.Midi, Version=6.4.1.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\Sanford.Multimedia.Midi.6.4.1\lib\net20\Sanford.Multimedia.Midi.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
<Reference Include="Stylet, Version=1.1.21.0, Culture=neutral, processorArchitecture=MSIL">
|
<Reference Include="Stylet, Version=1.1.21.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\Stylet.1.1.21\lib\net45\Stylet.dll</HintPath>
|
<HintPath>..\packages\Stylet.1.1.21\lib\net45\Stylet.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
@ -70,6 +109,9 @@
|
|||||||
<Reference Include="System.Configuration" />
|
<Reference Include="System.Configuration" />
|
||||||
<Reference Include="System.Data" />
|
<Reference Include="System.Data" />
|
||||||
<Reference Include="System.Drawing" />
|
<Reference Include="System.Drawing" />
|
||||||
|
<Reference Include="System.ValueTuple, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\System.ValueTuple.4.4.0\lib\net461\System.ValueTuple.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
<Reference Include="System.Windows.Interactivity, Version=4.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
<Reference Include="System.Windows.Interactivity, Version=4.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\MahApps.Metro.1.5.0\lib\net45\System.Windows.Interactivity.dll</HintPath>
|
<HintPath>..\packages\MahApps.Metro.1.5.0\lib\net45\System.Windows.Interactivity.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
@ -91,6 +133,7 @@
|
|||||||
<Generator>MSBuild:Compile</Generator>
|
<Generator>MSBuild:Compile</Generator>
|
||||||
<SubType>Designer</SubType>
|
<SubType>Designer</SubType>
|
||||||
</ApplicationDefinition>
|
</ApplicationDefinition>
|
||||||
|
<Compile Include="Adorners\BoundingBoxAdorner.cs" />
|
||||||
<Compile Include="Bootstrapper.cs" />
|
<Compile Include="Bootstrapper.cs" />
|
||||||
<Compile Include="Controls\Visualizers\LedVisualizer.cs" />
|
<Compile Include="Controls\Visualizers\LedVisualizer.cs" />
|
||||||
<Compile Include="Controls\Visualizers\RGBDeviceVisualizer.cs" />
|
<Compile Include="Controls\Visualizers\RGBDeviceVisualizer.cs" />
|
||||||
@ -165,58 +208,6 @@
|
|||||||
</None>
|
</None>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\..\..\RGB.NET\RGB.NET.Brushes\RGB.NET.Brushes.csproj">
|
|
||||||
<Project>{347c5f0f-f490-4dec-9c1c-6e84750d838d}</Project>
|
|
||||||
<Name>RGB.NET.Brushes</Name>
|
|
||||||
</ProjectReference>
|
|
||||||
<ProjectReference Include="..\..\..\RGB.NET\RGB.NET.Core\RGB.NET.Core.csproj">
|
|
||||||
<Project>{5a4f9a75-75fe-47cd-90e5-914d5b20d232}</Project>
|
|
||||||
<Name>RGB.NET.Core</Name>
|
|
||||||
</ProjectReference>
|
|
||||||
<ProjectReference Include="..\..\..\RGB.NET\RGB.NET.Decorators\RGB.NET.Decorators.csproj">
|
|
||||||
<Project>{7012c431-244a-453f-b7fd-59e030cdbc44}</Project>
|
|
||||||
<Name>RGB.NET.Decorators</Name>
|
|
||||||
</ProjectReference>
|
|
||||||
<ProjectReference Include="..\..\..\RGB.NET\RGB.NET.Devices.Asus\RGB.NET.Devices.Asus.csproj">
|
|
||||||
<Project>{4f2f3fbd-a1e4-4968-a2ad-0514959e5e59}</Project>
|
|
||||||
<Name>RGB.NET.Devices.Asus</Name>
|
|
||||||
</ProjectReference>
|
|
||||||
<ProjectReference Include="..\..\..\RGB.NET\RGB.NET.Devices.CoolerMaster\RGB.NET.Devices.CoolerMaster.csproj">
|
|
||||||
<Project>{85609427-d433-44e2-a249-ce890b66d845}</Project>
|
|
||||||
<Name>RGB.NET.Devices.CoolerMaster</Name>
|
|
||||||
</ProjectReference>
|
|
||||||
<ProjectReference Include="..\..\..\RGB.NET\RGB.NET.Devices.Corsair\RGB.NET.Devices.Corsair.csproj">
|
|
||||||
<Project>{dda8c4c2-8abf-4fa0-9af9-c47ad0bfe47d}</Project>
|
|
||||||
<Name>RGB.NET.Devices.Corsair</Name>
|
|
||||||
</ProjectReference>
|
|
||||||
<ProjectReference Include="..\..\..\RGB.NET\RGB.NET.Devices.Logitech\RGB.NET.Devices.Logitech.csproj">
|
|
||||||
<Project>{e7b2f174-fcc6-4fc7-9970-3138b5f4c921}</Project>
|
|
||||||
<Name>RGB.NET.Devices.Logitech</Name>
|
|
||||||
</ProjectReference>
|
|
||||||
<ProjectReference Include="..\..\..\RGB.NET\RGB.NET.Devices.Msi\RGB.NET.Devices.Msi.csproj">
|
|
||||||
<Project>{4efd77c7-fdb4-4c6b-970c-0ef66d24be09}</Project>
|
|
||||||
<Name>RGB.NET.Devices.Msi</Name>
|
|
||||||
</ProjectReference>
|
|
||||||
<ProjectReference Include="..\..\..\RGB.NET\RGB.NET.Devices.Novation\RGB.NET.Devices.Novation.csproj">
|
|
||||||
<Project>{db2911f6-404c-4bc8-b35f-232a7450755f}</Project>
|
|
||||||
<Name>RGB.NET.Devices.Novation</Name>
|
|
||||||
</ProjectReference>
|
|
||||||
<ProjectReference Include="..\..\..\RGB.NET\RGB.NET.Devices.Razer\RGB.NET.Devices.Razer.csproj">
|
|
||||||
<Project>{24ff4acb-d679-4b2d-86d4-50ab6c02d816}</Project>
|
|
||||||
<Name>RGB.NET.Devices.Razer</Name>
|
|
||||||
</ProjectReference>
|
|
||||||
<ProjectReference Include="..\..\..\RGB.NET\RGB.NET.Groups\RGB.NET.Groups.csproj">
|
|
||||||
<Project>{2a39f859-aad0-4c16-94f8-78057820b376}</Project>
|
|
||||||
<Name>RGB.NET.Groups</Name>
|
|
||||||
</ProjectReference>
|
|
||||||
<ProjectReference Include="..\..\..\RGB.NET\RGB.NET.Input.Corsair\RGB.NET.Input.Corsair.csproj">
|
|
||||||
<Project>{f905c418-76bb-4ba6-88ab-0793bc2681d3}</Project>
|
|
||||||
<Name>RGB.NET.Input.Corsair</Name>
|
|
||||||
</ProjectReference>
|
|
||||||
<ProjectReference Include="..\..\..\RGB.NET\RGB.NET.Input\RGB.NET.Input.csproj">
|
|
||||||
<Project>{e60c3c6f-903f-4d80-99d0-7a1e50af5a9d}</Project>
|
|
||||||
<Name>RGB.NET.Input</Name>
|
|
||||||
</ProjectReference>
|
|
||||||
<ProjectReference Include="..\Artemis.Core\Artemis.Core.csproj">
|
<ProjectReference Include="..\Artemis.Core\Artemis.Core.csproj">
|
||||||
<Project>{9b811f9b-86b9-4771-87af-72bae7078a36}</Project>
|
<Project>{9b811f9b-86b9-4771-87af-72bae7078a36}</Project>
|
||||||
<Name>Artemis.Core</Name>
|
<Name>Artemis.Core</Name>
|
||||||
@ -250,5 +241,17 @@
|
|||||||
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
|
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Error Condition="!Exists('..\packages\Fody.2.3.17\build\net452\Fody.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Fody.2.3.17\build\net452\Fody.targets'))" />
|
<Error Condition="!Exists('..\packages\Fody.2.3.17\build\net452\Fody.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Fody.2.3.17\build\net452\Fody.targets'))" />
|
||||||
|
<Error Condition="!Exists('..\packages\RGB.NET.Devices.Asus.0.0.1.26\build\net45\RGB.NET.Devices.Asus.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\RGB.NET.Devices.Asus.0.0.1.26\build\net45\RGB.NET.Devices.Asus.targets'))" />
|
||||||
|
<Error Condition="!Exists('..\packages\RGB.NET.Devices.CoolerMaster.0.0.1.26\build\net45\RGB.NET.Devices.CoolerMaster.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\RGB.NET.Devices.CoolerMaster.0.0.1.26\build\net45\RGB.NET.Devices.CoolerMaster.targets'))" />
|
||||||
|
<Error Condition="!Exists('..\packages\RGB.NET.Devices.Corsair.0.0.1.26\build\net45\RGB.NET.Devices.Corsair.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\RGB.NET.Devices.Corsair.0.0.1.26\build\net45\RGB.NET.Devices.Corsair.targets'))" />
|
||||||
|
<Error Condition="!Exists('..\packages\RGB.NET.Devices.Logitech.0.0.1.26\build\net45\RGB.NET.Devices.Logitech.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\RGB.NET.Devices.Logitech.0.0.1.26\build\net45\RGB.NET.Devices.Logitech.targets'))" />
|
||||||
|
<Error Condition="!Exists('..\packages\RGB.NET.Devices.Msi.0.0.1.26\build\net45\RGB.NET.Devices.Msi.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\RGB.NET.Devices.Msi.0.0.1.26\build\net45\RGB.NET.Devices.Msi.targets'))" />
|
||||||
|
<Error Condition="!Exists('..\packages\RGB.NET.Devices.Razer.0.0.1.26\build\net45\RGB.NET.Devices.Razer.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\RGB.NET.Devices.Razer.0.0.1.26\build\net45\RGB.NET.Devices.Razer.targets'))" />
|
||||||
</Target>
|
</Target>
|
||||||
|
<Import Project="..\packages\RGB.NET.Devices.Asus.0.0.1.26\build\net45\RGB.NET.Devices.Asus.targets" Condition="Exists('..\packages\RGB.NET.Devices.Asus.0.0.1.26\build\net45\RGB.NET.Devices.Asus.targets')" />
|
||||||
|
<Import Project="..\packages\RGB.NET.Devices.CoolerMaster.0.0.1.26\build\net45\RGB.NET.Devices.CoolerMaster.targets" Condition="Exists('..\packages\RGB.NET.Devices.CoolerMaster.0.0.1.26\build\net45\RGB.NET.Devices.CoolerMaster.targets')" />
|
||||||
|
<Import Project="..\packages\RGB.NET.Devices.Corsair.0.0.1.26\build\net45\RGB.NET.Devices.Corsair.targets" Condition="Exists('..\packages\RGB.NET.Devices.Corsair.0.0.1.26\build\net45\RGB.NET.Devices.Corsair.targets')" />
|
||||||
|
<Import Project="..\packages\RGB.NET.Devices.Logitech.0.0.1.26\build\net45\RGB.NET.Devices.Logitech.targets" Condition="Exists('..\packages\RGB.NET.Devices.Logitech.0.0.1.26\build\net45\RGB.NET.Devices.Logitech.targets')" />
|
||||||
|
<Import Project="..\packages\RGB.NET.Devices.Msi.0.0.1.26\build\net45\RGB.NET.Devices.Msi.targets" Condition="Exists('..\packages\RGB.NET.Devices.Msi.0.0.1.26\build\net45\RGB.NET.Devices.Msi.targets')" />
|
||||||
|
<Import Project="..\packages\RGB.NET.Devices.Razer.0.0.1.26\build\net45\RGB.NET.Devices.Razer.targets" Condition="Exists('..\packages\RGB.NET.Devices.Razer.0.0.1.26\build\net45\RGB.NET.Devices.Razer.targets')" />
|
||||||
</Project>
|
</Project>
|
||||||
@ -1,5 +1,6 @@
|
|||||||
using System.Windows;
|
using System.Windows;
|
||||||
using System.Windows.Controls;
|
using System.Windows.Controls;
|
||||||
|
using System.Windows.Media;
|
||||||
using RGB.NET.Core;
|
using RGB.NET.Core;
|
||||||
|
|
||||||
namespace Artemis.UI.Controls.Visualizers
|
namespace Artemis.UI.Controls.Visualizers
|
||||||
@ -32,5 +33,15 @@ namespace Artemis.UI.Controls.Visualizers
|
|||||||
// ReSharper restore InconsistentNaming
|
// ReSharper restore InconsistentNaming
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
public void Select()
|
||||||
|
{
|
||||||
|
BorderBrush = new SolidColorBrush(Colors.RoyalBlue);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Deselect()
|
||||||
|
{
|
||||||
|
BorderBrush = new SolidColorBrush(Colors.Black);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -19,7 +19,7 @@ namespace Artemis.UI.Controls.Visualizers
|
|||||||
|
|
||||||
#region Properties & Fields
|
#region Properties & Fields
|
||||||
|
|
||||||
private Canvas _canvas;
|
public Canvas Canvas { get; private set; }
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
@ -51,7 +51,7 @@ namespace Artemis.UI.Controls.Visualizers
|
|||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public override void OnApplyTemplate()
|
public override void OnApplyTemplate()
|
||||||
{
|
{
|
||||||
_canvas = (Canvas) GetTemplateChild(PART_CANVAS);
|
Canvas = (Canvas) GetTemplateChild(PART_CANVAS);
|
||||||
|
|
||||||
LayoutLeds();
|
LayoutLeds();
|
||||||
}
|
}
|
||||||
@ -63,14 +63,14 @@ namespace Artemis.UI.Controls.Visualizers
|
|||||||
|
|
||||||
private void LayoutLeds()
|
private void LayoutLeds()
|
||||||
{
|
{
|
||||||
if (_canvas == null) return;
|
if (Canvas == null) return;
|
||||||
|
|
||||||
_canvas.Children.Clear();
|
Canvas.Children.Clear();
|
||||||
|
|
||||||
if (Device == null) return;
|
if (Device == null) return;
|
||||||
|
|
||||||
foreach (Led led in Device)
|
foreach (Led led in Device)
|
||||||
_canvas.Children.Add(new LedVisualizer {Led = led});
|
Canvas.Children.Add(new LedVisualizer {Led = led});
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|||||||
@ -1,7 +1,14 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
using System.Windows;
|
using System.Windows;
|
||||||
using System.Windows.Controls;
|
using System.Windows.Controls;
|
||||||
|
using System.Windows.Documents;
|
||||||
|
using System.Windows.Input;
|
||||||
|
using System.Windows.Media;
|
||||||
|
using Artemis.UI.Adorners;
|
||||||
using RGB.NET.Core;
|
using RGB.NET.Core;
|
||||||
|
using RGB.NET.Groups;
|
||||||
|
using Point = System.Windows.Point;
|
||||||
|
|
||||||
namespace Artemis.UI.Controls.Visualizers
|
namespace Artemis.UI.Controls.Visualizers
|
||||||
{
|
{
|
||||||
@ -22,6 +29,8 @@ namespace Artemis.UI.Controls.Visualizers
|
|||||||
|
|
||||||
private RGBSurface _surface;
|
private RGBSurface _surface;
|
||||||
private Canvas _canvas;
|
private Canvas _canvas;
|
||||||
|
private BoundingBoxAdorner _boundingBox;
|
||||||
|
private Point _startingPoint;
|
||||||
|
|
||||||
//TODO DarthAffe 17.06.2017: This is ugly - redesign how device connect/disconnect is generally handled!
|
//TODO DarthAffe 17.06.2017: This is ugly - redesign how device connect/disconnect is generally handled!
|
||||||
private readonly List<IRGBDevice> _newDevices = new List<IRGBDevice>();
|
private readonly List<IRGBDevice> _newDevices = new List<IRGBDevice>();
|
||||||
@ -74,9 +83,70 @@ namespace Artemis.UI.Controls.Visualizers
|
|||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public override void OnApplyTemplate()
|
public override void OnApplyTemplate()
|
||||||
{
|
{
|
||||||
|
// Detach any existing event handlers
|
||||||
|
if (_canvas != null)
|
||||||
|
{
|
||||||
|
_canvas.MouseLeftButtonDown -= ScrollViewerOnMouseLeftButtonDown;
|
||||||
|
_canvas.MouseLeftButtonUp -= ScrollViewerOnMouseLeftButtonUp;
|
||||||
|
}
|
||||||
_canvas?.Children.Clear();
|
_canvas?.Children.Clear();
|
||||||
_canvas = (Canvas)GetTemplateChild(PART_CANVAS);
|
_canvas = (Canvas) GetTemplateChild(PART_CANVAS);
|
||||||
|
|
||||||
UpdateSurface();
|
UpdateSurface();
|
||||||
|
|
||||||
|
if (_canvas == null) return;
|
||||||
|
_canvas.MouseLeftButtonDown += ScrollViewerOnMouseLeftButtonDown;
|
||||||
|
_canvas.MouseLeftButtonUp += ScrollViewerOnMouseLeftButtonUp;
|
||||||
|
_canvas.MouseMove += ScrollViewerOnMouseMove;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void ScrollViewerOnMouseLeftButtonDown(object sender, MouseButtonEventArgs mouseButtonEventArgs)
|
||||||
|
{
|
||||||
|
_canvas.CaptureMouse();
|
||||||
|
_startingPoint = mouseButtonEventArgs.GetPosition(_canvas);
|
||||||
|
_boundingBox = new BoundingBoxAdorner(_canvas, Colors.RoyalBlue);
|
||||||
|
|
||||||
|
var adornerLayer = AdornerLayer.GetAdornerLayer(_canvas);
|
||||||
|
adornerLayer.Add(_boundingBox);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ScrollViewerOnMouseLeftButtonUp(object sender, MouseButtonEventArgs mouseButtonEventArgs)
|
||||||
|
{
|
||||||
|
_canvas.ReleaseMouseCapture();
|
||||||
|
var adornerLayer = AdornerLayer.GetAdornerLayer(_canvas);
|
||||||
|
var adorners = adornerLayer.GetAdorners(_canvas);
|
||||||
|
if (adorners == null) return;
|
||||||
|
foreach (var adorner in adorners)
|
||||||
|
adornerLayer.Remove(adorner);
|
||||||
|
|
||||||
|
_boundingBox = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ScrollViewerOnMouseMove(object sender, MouseEventArgs mouseEventArgs)
|
||||||
|
{
|
||||||
|
if (_boundingBox == null) return;
|
||||||
|
var currentPoint = mouseEventArgs.GetPosition(_canvas);
|
||||||
|
_boundingBox.Update(_startingPoint, currentPoint);
|
||||||
|
|
||||||
|
var ledStart = new RGB.NET.Core.Point(_startingPoint.X, _startingPoint.Y);
|
||||||
|
var ledEnd = new RGB.NET.Core.Point(currentPoint.X, currentPoint.Y);
|
||||||
|
var selection = new RectangleLedGroup(ledStart, ledEnd, 0.1);
|
||||||
|
|
||||||
|
// Deselect all LED of each device
|
||||||
|
var deviceLeds = new List<LedVisualizer>();
|
||||||
|
foreach (var rgbDeviceVisualizer in _canvas.Children.Cast<RGBDeviceVisualizer>())
|
||||||
|
deviceLeds.AddRange(rgbDeviceVisualizer.Canvas.Children.Cast<LedVisualizer>());
|
||||||
|
|
||||||
|
foreach (var ledVisualizer in deviceLeds)
|
||||||
|
ledVisualizer?.Deselect();
|
||||||
|
|
||||||
|
// Select all LEDs in the bounding box
|
||||||
|
foreach (var led in selection.GetLeds())
|
||||||
|
{
|
||||||
|
var ledVisualizer = deviceLeds.FirstOrDefault(l => l.Led == led);
|
||||||
|
ledVisualizer?.Select();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void UpdateSurface()
|
private void UpdateSurface()
|
||||||
@ -86,7 +156,7 @@ namespace Artemis.UI.Controls.Visualizers
|
|||||||
if (_newDevices.Count > 0)
|
if (_newDevices.Count > 0)
|
||||||
{
|
{
|
||||||
foreach (IRGBDevice device in _newDevices)
|
foreach (IRGBDevice device in _newDevices)
|
||||||
_canvas.Children.Add(new RGBDeviceVisualizer { Device = device });
|
_canvas.Children.Add(new RGBDeviceVisualizer {Device = device});
|
||||||
_newDevices.Clear();
|
_newDevices.Clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -22,10 +22,12 @@
|
|||||||
<Setter Property="Template">
|
<Setter Property="Template">
|
||||||
<Setter.Value>
|
<Setter.Value>
|
||||||
<ControlTemplate TargetType="{x:Type visualizers:RGBSurfaceVisualizer}">
|
<ControlTemplate TargetType="{x:Type visualizers:RGBSurfaceVisualizer}">
|
||||||
<ScrollViewer VerticalAlignment="{TemplateBinding VerticalAlignment}"
|
<ScrollViewer x:Name="PART_ScrollViewer"
|
||||||
|
VerticalAlignment="{TemplateBinding VerticalAlignment}"
|
||||||
HorizontalAlignment="{TemplateBinding HorizontalAlignment}"
|
HorizontalAlignment="{TemplateBinding HorizontalAlignment}"
|
||||||
VerticalScrollBarVisibility="Auto"
|
VerticalScrollBarVisibility="Auto"
|
||||||
HorizontalScrollBarVisibility="Auto">
|
HorizontalScrollBarVisibility="Auto"
|
||||||
|
Background="Transparent">
|
||||||
<Border VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
|
<Border VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
|
||||||
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
|
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
|
||||||
BorderBrush="{TemplateBinding BorderBrush}"
|
BorderBrush="{TemplateBinding BorderBrush}"
|
||||||
|
|||||||
@ -2,6 +2,7 @@
|
|||||||
<packages>
|
<packages>
|
||||||
<package id="Castle.Core" version="4.2.1" targetFramework="net461" />
|
<package id="Castle.Core" version="4.2.1" targetFramework="net461" />
|
||||||
<package id="Fody" version="2.3.17" targetFramework="net461" developmentDependency="true" />
|
<package id="Fody" version="2.3.17" targetFramework="net461" developmentDependency="true" />
|
||||||
|
<package id="HidSharp" version="1.5" targetFramework="net461" />
|
||||||
<package id="MahApps.Metro" version="1.5.0" targetFramework="net461" />
|
<package id="MahApps.Metro" version="1.5.0" targetFramework="net461" />
|
||||||
<package id="MaterialDesignColors" version="1.1.3" targetFramework="net461" />
|
<package id="MaterialDesignColors" version="1.1.3" targetFramework="net461" />
|
||||||
<package id="MaterialDesignThemes" version="2.3.1.953" targetFramework="net461" />
|
<package id="MaterialDesignThemes" version="2.3.1.953" targetFramework="net461" />
|
||||||
@ -10,5 +11,21 @@
|
|||||||
<package id="Ninject.Extensions.Conventions" version="3.3.0" targetFramework="net461" />
|
<package id="Ninject.Extensions.Conventions" version="3.3.0" targetFramework="net461" />
|
||||||
<package id="Ninject.Extensions.Factory" version="3.3.2" targetFramework="net461" />
|
<package id="Ninject.Extensions.Factory" version="3.3.2" targetFramework="net461" />
|
||||||
<package id="PropertyChanged.Fody" version="2.2.4.0" targetFramework="net461" developmentDependency="true" />
|
<package id="PropertyChanged.Fody" version="2.2.4.0" targetFramework="net461" developmentDependency="true" />
|
||||||
|
<package id="RGB.NET" version="0.0.1.26" targetFramework="net461" />
|
||||||
|
<package id="RGB.NET.Brushes" version="0.0.1.26" targetFramework="net461" />
|
||||||
|
<package id="RGB.NET.Core" version="0.0.1.26" targetFramework="net461" />
|
||||||
|
<package id="RGB.NET.Decorators" version="0.0.1.26" targetFramework="net461" />
|
||||||
|
<package id="RGB.NET.Devices" version="0.0.1.26" targetFramework="net461" />
|
||||||
|
<package id="RGB.NET.Devices.Asus" version="0.0.1.26" targetFramework="net461" />
|
||||||
|
<package id="RGB.NET.Devices.CoolerMaster" version="0.0.1.26" targetFramework="net461" />
|
||||||
|
<package id="RGB.NET.Devices.Corsair" version="0.0.1.26" targetFramework="net461" />
|
||||||
|
<package id="RGB.NET.Devices.Logitech" version="0.0.1.26" targetFramework="net461" />
|
||||||
|
<package id="RGB.NET.Devices.Msi" version="0.0.1.26" targetFramework="net461" />
|
||||||
|
<package id="RGB.NET.Devices.Novation" version="0.0.1.26" targetFramework="net461" />
|
||||||
|
<package id="RGB.NET.Devices.Razer" version="0.0.1.26" targetFramework="net461" />
|
||||||
|
<package id="RGB.NET.Groups" version="0.0.1.26" targetFramework="net461" />
|
||||||
|
<package id="RGB.NET.Presets" version="0.0.1.26" targetFramework="net461" />
|
||||||
|
<package id="Sanford.Multimedia.Midi" version="6.4.1" targetFramework="net461" />
|
||||||
<package id="Stylet" version="1.1.21" targetFramework="net461" />
|
<package id="Stylet" version="1.1.21" targetFramework="net461" />
|
||||||
|
<package id="System.ValueTuple" version="4.4.0" targetFramework="net461" />
|
||||||
</packages>
|
</packages>
|
||||||
104
src/Artemis.sln
104
src/Artemis.sln
@ -11,40 +11,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Artemis.Core", "Artemis.Cor
|
|||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Artemis.Plugins", "Artemis.Plugins\Artemis.Plugins.csproj", "{CD23BC5E-57F0-46CE-A007-24D031146219}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Artemis.Plugins", "Artemis.Plugins\Artemis.Plugins.csproj", "{CD23BC5E-57F0-46CE-A007-24D031146219}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "RGB.NET", "RGB.NET", "{9E919613-35F5-410D-80B3-F4FB69BE327B}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RGB.NET.Core", "..\..\RGB.NET\RGB.NET.Core\RGB.NET.Core.csproj", "{5A4F9A75-75FE-47CD-90E5-914D5B20D232}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RGB.NET.Input", "..\..\RGB.NET\RGB.NET.Input\RGB.NET.Input.csproj", "{E60C3C6F-903F-4D80-99D0-7A1E50AF5A9D}"
|
|
||||||
EndProject
|
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Devices", "Devices", "{03DD6C1C-B39B-4D1E-A905-EBDA94FCEBFA}"
|
|
||||||
EndProject
|
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Presets", "Presets", "{87F6ED2F-10C1-43BB-B5CE-E95DF6C8ADCE}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RGB.NET.Devices.Asus", "..\..\RGB.NET\RGB.NET.Devices.Asus\RGB.NET.Devices.Asus.csproj", "{4F2F3FBD-A1E4-4968-A2AD-0514959E5E59}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RGB.NET.Devices.CoolerMaster", "..\..\RGB.NET\RGB.NET.Devices.CoolerMaster\RGB.NET.Devices.CoolerMaster.csproj", "{85609427-D433-44E2-A249-CE890B66D845}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RGB.NET.Devices.Corsair", "..\..\RGB.NET\RGB.NET.Devices.Corsair\RGB.NET.Devices.Corsair.csproj", "{DDA8C4C2-8ABF-4FA0-9AF9-C47AD0BFE47D}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RGB.NET.Devices.Logitech", "..\..\RGB.NET\RGB.NET.Devices.Logitech\RGB.NET.Devices.Logitech.csproj", "{E7B2F174-FCC6-4FC7-9970-3138B5F4C921}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RGB.NET.Devices.Msi", "..\..\RGB.NET\RGB.NET.Devices.Msi\RGB.NET.Devices.Msi.csproj", "{4EFD77C7-FDB4-4C6B-970C-0EF66D24BE09}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RGB.NET.Devices.Novation", "..\..\RGB.NET\RGB.NET.Devices.Novation\RGB.NET.Devices.Novation.csproj", "{DB2911F6-404C-4BC8-B35F-232A7450755F}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RGB.NET.Devices.Razer", "..\..\RGB.NET\RGB.NET.Devices.Razer\RGB.NET.Devices.Razer.csproj", "{24FF4ACB-D679-4B2D-86D4-50AB6C02D816}"
|
|
||||||
EndProject
|
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Input", "Input", "{F1DE1C8B-E8B1-45EF-9FE8-47EF3B2E4D6E}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RGB.NET.Input.Corsair", "..\..\RGB.NET\RGB.NET.Input.Corsair\RGB.NET.Input.Corsair.csproj", "{F905C418-76BB-4BA6-88AB-0793BC2681D3}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RGB.NET.Brushes", "..\..\RGB.NET\RGB.NET.Brushes\RGB.NET.Brushes.csproj", "{347C5F0F-F490-4DEC-9C1C-6E84750D838D}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RGB.NET.Decorators", "..\..\RGB.NET\RGB.NET.Decorators\RGB.NET.Decorators.csproj", "{7012C431-244A-453F-B7FD-59E030CDBC44}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RGB.NET.Groups", "..\..\RGB.NET\RGB.NET.Groups\RGB.NET.Groups.csproj", "{2A39F859-AAD0-4C16-94F8-78057820B376}"
|
|
||||||
EndProject
|
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Debug|Any CPU = Debug|Any CPU
|
Debug|Any CPU = Debug|Any CPU
|
||||||
@ -67,80 +33,10 @@ Global
|
|||||||
{CD23BC5E-57F0-46CE-A007-24D031146219}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{CD23BC5E-57F0-46CE-A007-24D031146219}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{CD23BC5E-57F0-46CE-A007-24D031146219}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{CD23BC5E-57F0-46CE-A007-24D031146219}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{CD23BC5E-57F0-46CE-A007-24D031146219}.Release|Any CPU.Build.0 = Release|Any CPU
|
{CD23BC5E-57F0-46CE-A007-24D031146219}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{5A4F9A75-75FE-47CD-90E5-914D5B20D232}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{5A4F9A75-75FE-47CD-90E5-914D5B20D232}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{5A4F9A75-75FE-47CD-90E5-914D5B20D232}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{5A4F9A75-75FE-47CD-90E5-914D5B20D232}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{E60C3C6F-903F-4D80-99D0-7A1E50AF5A9D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{E60C3C6F-903F-4D80-99D0-7A1E50AF5A9D}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{E60C3C6F-903F-4D80-99D0-7A1E50AF5A9D}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{E60C3C6F-903F-4D80-99D0-7A1E50AF5A9D}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{4F2F3FBD-A1E4-4968-A2AD-0514959E5E59}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{4F2F3FBD-A1E4-4968-A2AD-0514959E5E59}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{4F2F3FBD-A1E4-4968-A2AD-0514959E5E59}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{4F2F3FBD-A1E4-4968-A2AD-0514959E5E59}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{85609427-D433-44E2-A249-CE890B66D845}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{85609427-D433-44E2-A249-CE890B66D845}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{85609427-D433-44E2-A249-CE890B66D845}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{85609427-D433-44E2-A249-CE890B66D845}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{DDA8C4C2-8ABF-4FA0-9AF9-C47AD0BFE47D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{DDA8C4C2-8ABF-4FA0-9AF9-C47AD0BFE47D}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{DDA8C4C2-8ABF-4FA0-9AF9-C47AD0BFE47D}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{DDA8C4C2-8ABF-4FA0-9AF9-C47AD0BFE47D}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{E7B2F174-FCC6-4FC7-9970-3138B5F4C921}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{E7B2F174-FCC6-4FC7-9970-3138B5F4C921}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{E7B2F174-FCC6-4FC7-9970-3138B5F4C921}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{E7B2F174-FCC6-4FC7-9970-3138B5F4C921}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{4EFD77C7-FDB4-4C6B-970C-0EF66D24BE09}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{4EFD77C7-FDB4-4C6B-970C-0EF66D24BE09}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{4EFD77C7-FDB4-4C6B-970C-0EF66D24BE09}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{4EFD77C7-FDB4-4C6B-970C-0EF66D24BE09}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{DB2911F6-404C-4BC8-B35F-232A7450755F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{DB2911F6-404C-4BC8-B35F-232A7450755F}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{DB2911F6-404C-4BC8-B35F-232A7450755F}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{DB2911F6-404C-4BC8-B35F-232A7450755F}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{24FF4ACB-D679-4B2D-86D4-50AB6C02D816}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{24FF4ACB-D679-4B2D-86D4-50AB6C02D816}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{24FF4ACB-D679-4B2D-86D4-50AB6C02D816}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{24FF4ACB-D679-4B2D-86D4-50AB6C02D816}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{F905C418-76BB-4BA6-88AB-0793BC2681D3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{F905C418-76BB-4BA6-88AB-0793BC2681D3}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{F905C418-76BB-4BA6-88AB-0793BC2681D3}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{F905C418-76BB-4BA6-88AB-0793BC2681D3}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{347C5F0F-F490-4DEC-9C1C-6E84750D838D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{347C5F0F-F490-4DEC-9C1C-6E84750D838D}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{347C5F0F-F490-4DEC-9C1C-6E84750D838D}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{347C5F0F-F490-4DEC-9C1C-6E84750D838D}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{7012C431-244A-453F-B7FD-59E030CDBC44}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{7012C431-244A-453F-B7FD-59E030CDBC44}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{7012C431-244A-453F-B7FD-59E030CDBC44}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{7012C431-244A-453F-B7FD-59E030CDBC44}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{2A39F859-AAD0-4C16-94F8-78057820B376}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{2A39F859-AAD0-4C16-94F8-78057820B376}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{2A39F859-AAD0-4C16-94F8-78057820B376}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{2A39F859-AAD0-4C16-94F8-78057820B376}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(NestedProjects) = preSolution
|
|
||||||
{5A4F9A75-75FE-47CD-90E5-914D5B20D232} = {9E919613-35F5-410D-80B3-F4FB69BE327B}
|
|
||||||
{E60C3C6F-903F-4D80-99D0-7A1E50AF5A9D} = {9E919613-35F5-410D-80B3-F4FB69BE327B}
|
|
||||||
{03DD6C1C-B39B-4D1E-A905-EBDA94FCEBFA} = {9E919613-35F5-410D-80B3-F4FB69BE327B}
|
|
||||||
{87F6ED2F-10C1-43BB-B5CE-E95DF6C8ADCE} = {9E919613-35F5-410D-80B3-F4FB69BE327B}
|
|
||||||
{4F2F3FBD-A1E4-4968-A2AD-0514959E5E59} = {03DD6C1C-B39B-4D1E-A905-EBDA94FCEBFA}
|
|
||||||
{85609427-D433-44E2-A249-CE890B66D845} = {03DD6C1C-B39B-4D1E-A905-EBDA94FCEBFA}
|
|
||||||
{DDA8C4C2-8ABF-4FA0-9AF9-C47AD0BFE47D} = {03DD6C1C-B39B-4D1E-A905-EBDA94FCEBFA}
|
|
||||||
{E7B2F174-FCC6-4FC7-9970-3138B5F4C921} = {03DD6C1C-B39B-4D1E-A905-EBDA94FCEBFA}
|
|
||||||
{4EFD77C7-FDB4-4C6B-970C-0EF66D24BE09} = {03DD6C1C-B39B-4D1E-A905-EBDA94FCEBFA}
|
|
||||||
{DB2911F6-404C-4BC8-B35F-232A7450755F} = {03DD6C1C-B39B-4D1E-A905-EBDA94FCEBFA}
|
|
||||||
{24FF4ACB-D679-4B2D-86D4-50AB6C02D816} = {03DD6C1C-B39B-4D1E-A905-EBDA94FCEBFA}
|
|
||||||
{F1DE1C8B-E8B1-45EF-9FE8-47EF3B2E4D6E} = {03DD6C1C-B39B-4D1E-A905-EBDA94FCEBFA}
|
|
||||||
{F905C418-76BB-4BA6-88AB-0793BC2681D3} = {F1DE1C8B-E8B1-45EF-9FE8-47EF3B2E4D6E}
|
|
||||||
{347C5F0F-F490-4DEC-9C1C-6E84750D838D} = {87F6ED2F-10C1-43BB-B5CE-E95DF6C8ADCE}
|
|
||||||
{7012C431-244A-453F-B7FD-59E030CDBC44} = {87F6ED2F-10C1-43BB-B5CE-E95DF6C8ADCE}
|
|
||||||
{2A39F859-AAD0-4C16-94F8-78057820B376} = {87F6ED2F-10C1-43BB-B5CE-E95DF6C8ADCE}
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||||
SolutionGuid = {C203080A-4473-4CC2-844B-F552EA43D66A}
|
SolutionGuid = {C203080A-4473-4CC2-844B-F552EA43D66A}
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user