- add more information to model

- rename allocate to map
master
Simon G 5 years ago
parent 65763bcbb5
commit 46af4cdec4
  1. 2
      Lib.Audio/Channel.cs
  2. 2
      Lib.Audio/Interfaces/IChannel.cs
  3. 12
      Mystify/MainModel.cs
  4. 38
      Mystify/ViewModels/MainWindowViewModel.cs
  5. 2
      Mystify/Views/MainWindow.axaml

@ -50,7 +50,7 @@ namespace Lib.Audio
public List<IButton>? Buttons { get; }
public IControllable? Controllable { get; private set; }
public void AllocateControllable(IControllable controllable) => Controllable = controllable;
public void MapControllable(IControllable controllable) => Controllable = controllable;
public void HandleMessage(IMidiMessage message)
{
if (message is NoteOnMessage noteOnMessage)

@ -18,7 +18,7 @@ namespace Lib.Audio.Interfaces
IControllable? Controllable { get; }
void AllocateControllable(IControllable controllable);
void MapControllable(IControllable controllable);
void HandleMessage(IMidiMessage message);
void SendAcknowledge(IMidiCommunication midiCommunication);
}

@ -27,9 +27,13 @@ namespace Mystify
_controllableCollectorFactory = controllableCollectorFactory;
}
public string? DeviceName => _device?.Name;
public List<IChannel>? Channels => _device?.Channels;
public List<IControllable>? Controllables => _controllableCollector?.Controllables;
public string? DeviceName => _device?.Name;
public IChannel? SelectedChannel { get; set; }
public IControllable? SelectedControllable { get; set; }
public bool UseMidiView { get; set; }
public void LoadDriverAndDevice(string driverPath, bool useMidiView)
{
@ -43,5 +47,11 @@ namespace Mystify
_device.StartCommunication(useMidiView);
}
public void MapControllable()
{
if (SelectedControllable != null)
SelectedChannel?.MapControllable(SelectedControllable);
}
}
}

@ -33,9 +33,35 @@ namespace Mystify.ViewModels
public List<IChannel>? Channels => _mainModel?.Channels;
public List<IControllable>? Controllables => _mainModel?.Controllables;
public IChannel? SelectedChannel { get; set; }
public IControllable? SelectedControllable { get; set; }
public bool UseMidiView { get; set; }
public IChannel? SelectedChannel
{
get => _mainModel?.SelectedChannel;
set
{
if (_mainModel != null)
_mainModel.SelectedChannel = value;
}
}
public IControllable? SelectedControllable
{
get => _mainModel?.SelectedControllable;
set
{
if (_mainModel != null)
_mainModel.SelectedControllable = value;
}
}
public bool UseMidiView
{
get => _mainModel is {UseMidiView: true};
set
{
if (_mainModel != null)
_mainModel.UseMidiView = value;
}
}
public string SelectedDeviceText => $"Selected Device: {_mainModel?.DeviceName ?? "-"}";
@ -55,11 +81,7 @@ namespace Mystify.ViewModels
RaisePropertyChanged(() => Controllables);
});
public ICommand AllocateControllableCommand => ReactiveCommand.Create(() =>
{
if (SelectedControllable != null)
SelectedChannel?.AllocateControllable(SelectedControllable);
});
public ICommand MapControllableCommand => ReactiveCommand.Create(() => _mainModel?.MapControllable());
public void UpdateChannelsAndControllables()
{

@ -35,6 +35,6 @@
Margin="5"/>
</StackPanel>
<Button Margin="15" Content="Allocate selected Controllable" Command="{Binding AllocateControllableCommand}"/>
<Button Margin="15" Content="Map selected Controllable" Command="{Binding MapControllableCommand}"/>
</StackPanel>
</Window>

Loading…
Cancel
Save