Skip to content

Commit cecf25b

Browse files
Update monitor to use output msu type
1 parent 4dde6ad commit cecf25b

File tree

11 files changed

+33
-15
lines changed

11 files changed

+33
-15
lines changed

MSURandomizer/Services/MsuListService.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ public void FilterMSUs(string msuTypeName, MsuFilter msuFilter)
6262
public void FilterMSUs(MsuType msuType, MsuFilter msuFilter)
6363
{
6464
Model.MsuTypeName = msuType.DisplayName;
65+
Model.MsuType = msuType;
6566
var msuTypePath = Model.HardwareMode ? "" :
6667
userOptions.MsuUserOptions.MsuTypePaths.TryGetValue(msuType, out var path) ? path :
6768
userOptions.MsuUserOptions.DefaultMsuPath;

MSURandomizer/Services/MsuMonitorWindowService.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,11 @@ public MsuMonitorWindowViewModel InitializeModel()
3636
return _model;
3737
}
3838

39-
public void StartMonitor(Msu? msu = null)
39+
public void StartMonitor(Msu? msu = null, MsuType? outputMsuType = null)
4040
{
4141
if (msu == null)
4242
{
43-
var outputMsuType = msuTypeService.GetMsuType(msuUserOptionsService.MsuUserOptions.OutputMsuType);
43+
outputMsuType ??= msuTypeService.GetMsuType(msuUserOptionsService.MsuUserOptions.OutputMsuType);
4444

4545
if (outputMsuType == null)
4646
{
@@ -88,12 +88,14 @@ public void StartMonitor(Msu? msu = null)
8888
_model.ErrorMessage = "Sorry, that game is not compatible yet with reading the current playing track";
8989
return;
9090
}
91+
92+
outputMsuType ??= msu.MsuType;
9193

9294
ConnectToSnes();
9395

9496
ITaskService.Run(() =>
9597
{
96-
msuMonitorService.StartMonitor(msu);
98+
msuMonitorService.StartMonitor(msu, outputMsuType!);
9799
});
98100
}
99101
}

MSURandomizer/Services/MsuWindowService.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -273,6 +273,11 @@ public bool GenerateMsu(out string error, out bool openContinuousWindow, out Msu
273273

274274
public bool ShouldOpenMonitorWindow => userOptions.MsuUserOptions.OpenMonitorWindow;
275275

276+
public MsuType? GetMsuType(string msuTypeName)
277+
{
278+
return msuTypeService.GetMsuType(msuTypeName);
279+
}
280+
276281
private void MsuTypeServiceOnOnMsuTypeLoadComplete(object? sender, EventArgs e)
277282
{
278283
Model.MsusTypes = msuTypeService.MsuTypes.Select(x => x.DisplayName).Order().ToList();

MSURandomizer/ViewModels/HardwareMsuViewModel.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,6 @@ public class HardwareMsuViewModel : ViewModelBase
1313
public bool Complete { get; set; }
1414

1515
public Msu? SelectedMsu { get; set; }
16+
17+
public MsuType? SelectedMsuType { get; set; }
1618
}

MSURandomizer/ViewModels/MsuListViewModel.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ public class MsuListViewModel : ViewModelBase
1818

1919
[Reactive] public string? MsuTypeName { get; set; }
2020

21+
[Reactive] public MsuType? MsuType { get; set; }
22+
2123
[Reactive] public bool IsMsuMonitorActive { get; set; }
2224

2325
[Reactive] public bool IsMsuMonitorDisabled { get; set; }

MSURandomizer/Views/HardwareMsuWindow.axaml.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
using AvaloniaControls.Extensions;
77
using MSURandomizer.Services;
88
using MSURandomizer.ViewModels;
9+
using MSURandomizerLibrary.Configs;
910

1011
namespace MSURandomizer.Views;
1112

@@ -42,13 +43,14 @@ private void ServiceOnOpenMsuMonitorWindow(object? sender, EventArgs e)
4243
Dispatcher.UIThread.Invoke(() =>
4344
{
4445
var window = new MsuMonitorWindow();
45-
window.Show(_model.SelectedMsu);
46+
window.Show(_model.SelectedMsu, _model.SelectedMsuType);
4647
Close();
4748
});
4849
}
4950

50-
public void ShowDialog(Window parentWindow, List<MsuViewModel> msus)
51+
public void ShowDialog(Window parentWindow, List<MsuViewModel> msus, MsuType outputMsuType)
5152
{
53+
_model.SelectedMsuType = outputMsuType;
5254
_model.Msus = msus;
5355
_service?.Connect();
5456
ShowDialog(parentWindow);

MSURandomizer/Views/MsuList.axaml.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,15 @@ namespace MSURandomizer.Views;
1515
public partial class MsuList : UserControl
1616
{
1717
private readonly MsuListService? _service;
18+
private readonly MsuListViewModel _model;
1819

1920
public MsuList()
2021
{
2122
InitializeComponent();
2223

2324
if (Design.IsDesignMode)
2425
{
25-
DataContext = new MsuListViewModel()
26+
DataContext = _model = new MsuListViewModel()
2627
{
2728
FilteredMsus = new List<MsuViewModel>()
2829
{
@@ -40,7 +41,7 @@ public MsuList()
4041
else
4142
{
4243
_service = this.GetControlService<MsuListService>();
43-
DataContext = _service!.InitializeModel();
44+
DataContext = _model = _service!.InitializeModel();
4445
}
4546
}
4647

@@ -182,6 +183,6 @@ private void OpenMonitorWindowMenuItem_OnClick(object? sender, RoutedEventArgs e
182183
}
183184

184185
var window = new MsuMonitorWindow();
185-
window.Show(model.Msu);
186+
window.Show(model.Msu, _model.MsuType);
186187
}
187188
}

MSURandomizer/Views/MsuMonitorWindow.axaml.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,9 @@ public MsuMonitorWindow()
3434
protected override int DefaultWidth => 600;
3535
protected override int DefualtHeight => 400;
3636

37-
public void Show(Msu? msu, Window? parent = null)
37+
public void Show(Msu? msu, MsuType? outputMsuType, Window? parent = null)
3838
{
39-
_service?.StartMonitor(msu);
39+
_service?.StartMonitor(msu, outputMsuType);
4040
if (parent == null)
4141
{
4242
Show();

MSURandomizer/Views/MsuWindow.axaml.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -121,8 +121,9 @@ private void RandomMsuButton_OnClick(object? sender, RoutedEventArgs e)
121121

122122
if (_model.IsHardwareModeEnabled)
123123
{
124+
var msuType = _service?.GetMsuType(_model.SelectedMsuType) ?? _model.SelectedMsus.First().Msu.MsuType;
124125
var hardwareMsuWindow = new HardwareMsuWindow();
125-
hardwareMsuWindow.ShowDialog(this, _model.SelectedMsus.ToList());
126+
hardwareMsuWindow.ShowDialog(this, _model.SelectedMsus.ToList(), msuType!);
126127
}
127128
else
128129
{
@@ -206,8 +207,9 @@ private void GenerateMsu()
206207

207208
private void OpenMsuMonitorWindow(Msu? msu)
208209
{
210+
var msuType = _service?.GetMsuType(_model.SelectedMsuType) ?? msu?.MsuType;
209211
var window = new MsuMonitorWindow();
210-
window.Show(msu);
212+
window.Show(msu, msuType!);
211213
}
212214

213215
private void HardwareButton_OnClick(object? sender, RoutedEventArgs e)

MSURandomizerLibrary/Services/IMsuMonitorService.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,8 @@ public interface IMsuMonitorService : IDisposable
3939
/// Starts the monitor for a specific MSU to detect when the current song has changed
4040
/// </summary>
4141
/// <param name="msu">The MSU to play</param>
42-
public void StartMonitor(Msu msu);
42+
/// <param name="msuType">The MSU type to use for monitoring</param>
43+
public void StartMonitor(Msu msu, MsuType msuType);
4344

4445
/// <summary>
4546
/// Stops the monitor

0 commit comments

Comments
 (0)