Started layout editor implementation

Rearranged VMs/Views
Updated RGB.NET
This commit is contained in:
SpoinkyNL committed 2019-08-11 01:23:13 +02:00
1 parent 390dcc6ae1
commit 6e23c079b1
52 files changed
+741 -185

No files matched your search

+13 -10
View File
@@ -73,20 +73,20 @@
<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>
</Reference>
<Reference Include="RGB.NET.Brushes, Version=0.1.22.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\RGB.NET.Brushes.0.1.22\lib\net45\RGB.NET.Brushes.dll</HintPath>
<Reference Include="RGB.NET.Brushes, Version=0.1.25.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\RGB.NET.Brushes.0.1.25\lib\net45\RGB.NET.Brushes.dll</HintPath>
</Reference>
<Reference Include="RGB.NET.Core, Version=0.1.22.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\RGB.NET.Core.0.1.22\lib\net45\RGB.NET.Core.dll</HintPath>
<Reference Include="RGB.NET.Core, Version=0.1.25.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\RGB.NET.Core.0.1.25\lib\net45\RGB.NET.Core.dll</HintPath>
</Reference>
<Reference Include="RGB.NET.Decorators, Version=0.1.22.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\RGB.NET.Decorators.0.1.22\lib\net45\RGB.NET.Decorators.dll</HintPath>
<Reference Include="RGB.NET.Decorators, Version=0.1.25.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\RGB.NET.Decorators.0.1.25\lib\net45\RGB.NET.Decorators.dll</HintPath>
</Reference>
<Reference Include="RGB.NET.Devices.Corsair, Version=0.1.22.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\RGB.NET.Devices.Corsair.0.1.22\lib\net45\RGB.NET.Devices.Corsair.dll</HintPath>
<Reference Include="RGB.NET.Devices.Corsair, Version=0.1.25.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\RGB.NET.Devices.Corsair.0.1.25\lib\net45\RGB.NET.Devices.Corsair.dll</HintPath>
</Reference>
<Reference Include="RGB.NET.Groups, Version=0.1.22.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\RGB.NET.Groups.0.1.22\lib\net45\RGB.NET.Groups.dll</HintPath>
<Reference Include="RGB.NET.Groups, Version=0.1.25.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\RGB.NET.Groups.0.1.25\lib\net45\RGB.NET.Groups.dll</HintPath>
</Reference>
<Reference Include="Stylet, Version=1.1.22.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Stylet.1.1.22\lib\net45\Stylet.dll</HintPath>
@@ -99,6 +99,9 @@
</Reference>
<Reference Include="System.Drawing" />
<Reference Include="System.Numerics" />
<Reference Include="System.ValueTuple, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.ValueTuple.4.4.0\lib\net47\System.ValueTuple.dll</HintPath>
</Reference>
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
@@ -1,27 +1,31 @@
using System.Linq;
using Artemis.Core.Exceptions;
using Artemis.Core.Plugins.Abstract;
using Artemis.Core.Plugins.Models;
using Artemis.Storage.Repositories;
using Ninject.Activation;
namespace Artemis.Core.Ninject
{
public class PluginSettingsProvider : Provider<PluginSettings>
internal class PluginSettingsProvider : Provider<PluginSettings>
{
private readonly ISettingRepository _settingRepository;
private readonly IPluginSettingRepository _pluginSettingRepository;
public PluginSettingsProvider(ISettingRepository settingRepository)
internal PluginSettingsProvider(IPluginSettingRepository pluginSettingRepository)
{
_settingRepository = settingRepository;
_pluginSettingRepository = pluginSettingRepository;
}
protected override PluginSettings CreateInstance(IContext context)
{
var pluginInfo = context.Request.ParentRequest?.Parameters.FirstOrDefault(p => p.Name == "PluginInfo")?.GetValue(context, null) as PluginInfo;
var parentRequest = context.Request.ParentRequest;
if (parentRequest == null || !typeof(Plugin).IsAssignableFrom(parentRequest.Service))
throw new ArtemisCoreException("PluginSettings can only be injected into a plugin");
var pluginInfo = parentRequest.Parameters.FirstOrDefault(p => p.Name == "PluginInfo")?.GetValue(context, null) as PluginInfo;
if (pluginInfo == null)
throw new ArtemisCoreException("A plugin needs to be initialized with PluginInfo as a parameter");
return new PluginSettings(pluginInfo, _settingRepository);
return new PluginSettings(pluginInfo, _pluginSettingRepository);
}
}
}
@@ -8,17 +8,17 @@ namespace Artemis.Core.Plugins.Models
public class PluginSetting<T>
{
private readonly PluginInfo _pluginInfo;
private readonly SettingEntity _settingEntity;
private readonly ISettingRepository _settingRepository;
private readonly PluginSettingEntity _pluginSettingEntity;
private readonly IPluginSettingRepository _pluginSettingRepository;
internal PluginSetting(PluginInfo pluginInfo, ISettingRepository settingRepository, SettingEntity settingEntity)
internal PluginSetting(PluginInfo pluginInfo, IPluginSettingRepository pluginSettingRepository, PluginSettingEntity pluginSettingEntity)
{
_pluginInfo = pluginInfo;
_settingRepository = settingRepository;
_settingEntity = settingEntity;
_pluginSettingRepository = pluginSettingRepository;
_pluginSettingEntity = pluginSettingEntity;
Name = settingEntity.Name;
Value = JsonConvert.DeserializeObject<T>(settingEntity.Value);
Name = pluginSettingEntity.Name;
Value = JsonConvert.DeserializeObject<T>(pluginSettingEntity.Value);
}
/// <summary>
@@ -34,14 +34,14 @@ namespace Artemis.Core.Plugins.Models
/// <summary>
/// Determines whether the setting has been changed
/// </summary>
public bool HasChanged => JsonConvert.SerializeObject(Value) != _settingEntity.Value;
public bool HasChanged => JsonConvert.SerializeObject(Value) != _pluginSettingEntity.Value;
/// <summary>
/// Resets the setting to the last saved value
/// </summary>
public void RejectChanges()
{
Value = JsonConvert.DeserializeObject<T>(_settingEntity.Value);
Value = JsonConvert.DeserializeObject<T>(_pluginSettingEntity.Value);
}
/// <summary>
@@ -49,8 +49,8 @@ namespace Artemis.Core.Plugins.Models
/// </summary>
public void Save()
{
_settingEntity.Value = JsonConvert.SerializeObject(Value);
_settingRepository.Save();
_pluginSettingEntity.Value = JsonConvert.SerializeObject(Value);
_pluginSettingRepository.Save();
}
/// <summary>
@@ -59,8 +59,8 @@ namespace Artemis.Core.Plugins.Models
/// <returns></returns>
public async Task SaveAsync()
{
_settingEntity.Value = JsonConvert.SerializeObject(Value);
await _settingRepository.SaveAsync();
_pluginSettingEntity.Value = JsonConvert.SerializeObject(Value);
await _pluginSettingRepository.SaveAsync();
}
}
}
@@ -9,27 +9,27 @@ namespace Artemis.Core.Plugins.Models
public class PluginSettings
{
private readonly PluginInfo _pluginInfo;
private readonly ISettingRepository _settingRepository;
private readonly Dictionary<string, SettingEntity> _settingEntities;
private readonly IPluginSettingRepository _pluginSettingRepository;
private readonly Dictionary<string, PluginSettingEntity> _settingEntities;
public PluginSettings(PluginInfo pluginInfo, ISettingRepository settingRepository)
internal PluginSettings(PluginInfo pluginInfo, IPluginSettingRepository pluginSettingRepository)
{
_pluginInfo = pluginInfo;
_settingRepository = settingRepository;
_settingEntities = settingRepository.GetByPluginGuid(_pluginInfo.Guid).ToDictionary(se => se.Name);
_pluginSettingRepository = pluginSettingRepository;
_settingEntities = pluginSettingRepository.GetByPluginGuid(_pluginInfo.Guid).ToDictionary(se => se.Name);
}
public PluginSetting<T> GetSetting<T>(string name, T defaultValue = default(T))
{
if (_settingEntities.ContainsKey(name))
return new PluginSetting<T>(_pluginInfo, _settingRepository, _settingEntities[name]);
var settingEntity = new SettingEntity {Name = name, PluginGuid = _pluginInfo.Guid, Value = JsonConvert.SerializeObject(defaultValue)};
_settingRepository.Add(settingEntity);
_settingRepository.Save();
return new PluginSetting<T>(_pluginInfo, _pluginSettingRepository, _settingEntities[name]);
var settingEntity = new PluginSettingEntity {Name = name, PluginGuid = _pluginInfo.Guid, Value = JsonConvert.SerializeObject(defaultValue)};
_pluginSettingRepository.Add(settingEntity);
_pluginSettingRepository.Save();
_settingEntities.Add(name, settingEntity);
return GetSetting(name, defaultValue);
return new PluginSetting<T>(_pluginInfo, _pluginSettingRepository, _settingEntities[name]);
}
}
}
+3 -1
View File
@@ -8,6 +8,9 @@ using Color = System.Drawing.Color;
namespace Artemis.Core.Services
{
/// <summary>
/// Provides Artemis's core update loop
/// </summary>
public class CoreService : ICoreService
{
private readonly IPluginService _pluginService;
@@ -19,7 +22,6 @@ namespace Artemis.Core.Services
_rgbService = rgbService;
_rgbService.Surface.Updating += SurfaceOnUpdating;
Task.Run(Initialize);
}
@@ -3,11 +3,13 @@ using System.Collections.ObjectModel;
using Artemis.Core.Exceptions;
using Artemis.Core.Models;
using Artemis.Core.Plugins.Abstract;
using Artemis.Core.Plugins.Interfaces;
using Artemis.Core.Services.Interfaces;
namespace Artemis.Core.Services
{
/// <summary>
/// Provides access to the main data model
/// </summary>
public class MainDataModelService : IMainDataModelService
{
private readonly List<DataModelExpansion> _dataModelExpansions;
@@ -16,6 +16,9 @@ using Ninject.Parameters;
namespace Artemis.Core.Services
{
/// <summary>
/// Provides access to plugin loading and unloading
/// </summary>
public class PluginService : IPluginService
{
private readonly IKernel _kernel;
+3
View File
@@ -11,6 +11,9 @@ using RGB.NET.Groups;
namespace Artemis.Core.Services
{
/// <summary>
/// Provides wrapped access the RGB.NET
/// </summary>
public class RgbService : IRgbService, IDisposable
{
private readonly List<IRGBDevice> _loadedDevices;
@@ -7,6 +7,9 @@ using Artemis.Storage.Repositories;
namespace Artemis.Core.Services
{
/// <summary>
/// Provides access to profile storage
/// </summary>
public class StorageService : IStorageService
{
private readonly IPluginService _pluginService;
+6 -5
View File
@@ -7,11 +7,12 @@
<package id="Ninject.Extensions.ChildKernel" 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="RGB.NET.Brushes" version="0.1.22" targetFramework="net461" />
<package id="RGB.NET.Core" version="0.1.22" targetFramework="net461" />
<package id="RGB.NET.Decorators" version="0.1.22" targetFramework="net461" />
<package id="RGB.NET.Devices.Corsair" version="0.1.22" targetFramework="net461" />
<package id="RGB.NET.Groups" version="0.1.22" targetFramework="net461" />
<package id="RGB.NET.Brushes" version="0.1.25" targetFramework="net472" />
<package id="RGB.NET.Core" version="0.1.25" targetFramework="net472" />
<package id="RGB.NET.Decorators" version="0.1.25" targetFramework="net472" />
<package id="RGB.NET.Devices.Corsair" version="0.1.25" targetFramework="net472" />
<package id="RGB.NET.Groups" version="0.1.25" targetFramework="net472" />
<package id="Stylet" version="1.1.22" targetFramework="net461" />
<package id="System.Diagnostics.DiagnosticSource" version="4.5.1" targetFramework="net472" />
<package id="System.ValueTuple" version="4.4.0" targetFramework="net472" />
</packages>