|
|
|
|
@ -8,6 +8,7 @@ using Lib.Audio.Factories; |
|
|
|
|
using Lib.Audio.Interfaces; |
|
|
|
|
using Lib.Driver.Factories; |
|
|
|
|
using Lib.Driver.Interfaces; |
|
|
|
|
using Mystify.Settings.Interfaces; |
|
|
|
|
|
|
|
|
|
namespace Mystify |
|
|
|
|
{ |
|
|
|
|
@ -16,16 +17,27 @@ namespace Mystify |
|
|
|
|
private readonly IDriverLoader _driverLoader; |
|
|
|
|
private readonly IDeviceFactory _deviceFactory; |
|
|
|
|
private readonly IControllableCollectorFactory _controllableCollectorFactory; |
|
|
|
|
|
|
|
|
|
private readonly ISettings _settings; |
|
|
|
|
|
|
|
|
|
private IDevice? _device; |
|
|
|
|
private IControllableCollector? _controllableCollector; |
|
|
|
|
|
|
|
|
|
public MainModel(IDriverLoaderFactory driverLoaderFactory, IDeviceFactory deviceFactory, IControllableCollectorFactory controllableCollectorFactory, IControllableFactory controllableFactory) |
|
|
|
|
public MainModel(IDriverLoaderFactory driverLoaderFactory, |
|
|
|
|
ISettingsManager settingsManager, |
|
|
|
|
IDeviceFactory deviceFactory, |
|
|
|
|
IControllableCollectorFactory controllableCollectorFactory, |
|
|
|
|
IControllableFactory controllableFactory) |
|
|
|
|
{ |
|
|
|
|
_driverLoader = driverLoaderFactory.Create(); |
|
|
|
|
_deviceFactory = deviceFactory; |
|
|
|
|
_controllableCollectorFactory = controllableCollectorFactory; |
|
|
|
|
ControllableFactory = controllableFactory; |
|
|
|
|
|
|
|
|
|
_settings = settingsManager.Settings; |
|
|
|
|
|
|
|
|
|
if (!string.IsNullOrEmpty(_settings.LastDriverPath)) |
|
|
|
|
LoadDriverAndDevice(_settings.LastDriverPath); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public string? DeviceName => _device?.Name; |
|
|
|
|
@ -42,6 +54,8 @@ namespace Mystify |
|
|
|
|
|
|
|
|
|
if (driver == null) |
|
|
|
|
throw new Exception("Driver could not be loaded."); |
|
|
|
|
|
|
|
|
|
_settings.LastDriverPath = driverPath; |
|
|
|
|
|
|
|
|
|
_controllableCollector = _controllableCollectorFactory.Create(); |
|
|
|
|
_device = _deviceFactory.Create(driver, _controllableCollector); |
|
|
|
|
|