|
|
|
@ -5,7 +5,6 @@ |
|
|
|
using System; |
|
|
|
using System; |
|
|
|
using System.Collections.Generic; |
|
|
|
using System.Collections.Generic; |
|
|
|
using System.Windows.Input; |
|
|
|
using System.Windows.Input; |
|
|
|
using Lib.Audio.Factories; |
|
|
|
|
|
|
|
using Lib.Audio.Interfaces; |
|
|
|
using Lib.Audio.Interfaces; |
|
|
|
using ReactiveUI; |
|
|
|
using ReactiveUI; |
|
|
|
|
|
|
|
|
|
|
|
@ -13,28 +12,18 @@ namespace Mystify.ViewModels |
|
|
|
{ |
|
|
|
{ |
|
|
|
public class MainWindowViewModel : ViewModelBase |
|
|
|
public class MainWindowViewModel : ViewModelBase |
|
|
|
{ |
|
|
|
{ |
|
|
|
private readonly IDevice _device; |
|
|
|
private readonly MainModel? _mainModel; |
|
|
|
|
|
|
|
|
|
|
|
public MainWindowViewModel() |
|
|
|
public MainWindowViewModel() |
|
|
|
{ |
|
|
|
{ |
|
|
|
if (!IsInDesignMode) |
|
|
|
if (!IsInDesignMode) |
|
|
|
throw new InvalidOperationException("Constructor is for design time usage only."); |
|
|
|
throw new InvalidOperationException("Constructor is for design time usage only."); |
|
|
|
|
|
|
|
|
|
|
|
Channels = new List<IChannel>(); |
|
|
|
|
|
|
|
Controllables = new List<IControllable>(); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public MainWindowViewModel(IDeviceFactory deviceFactory, IControllableCollectorFactory controllableCollectorFactory) |
|
|
|
public MainWindowViewModel(MainModel mainModel) => _mainModel = mainModel; |
|
|
|
{ |
|
|
|
|
|
|
|
_device = deviceFactory.Create(); |
|
|
|
|
|
|
|
IControllableCollector controllableCollector = controllableCollectorFactory.Create(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Channels = _device.Channels; |
|
|
|
|
|
|
|
Controllables = controllableCollector.Controllables; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public List<IChannel> Channels { get; } |
|
|
|
public List<IChannel>? Channels => _mainModel?.Channels; |
|
|
|
public List<IControllable> Controllables { get; } |
|
|
|
public List<IControllable>? Controllables => _mainModel?.Controllables; |
|
|
|
|
|
|
|
|
|
|
|
public IChannel? SelectedChannel { get; set; } |
|
|
|
public IChannel? SelectedChannel { get; set; } |
|
|
|
public IControllable? SelectedControllable { get; set; } |
|
|
|
public IControllable? SelectedControllable { get; set; } |
|
|
|
|