Skip to content

Commit 9d63d23

Browse files
committed
improve audio ui a little
1 parent 0c8466f commit 9d63d23

File tree

2 files changed

+50
-11
lines changed

2 files changed

+50
-11
lines changed

AvaGui/ViewModels/ImageTableViewModel.cs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
using OpenLoco.ObjectEditor.Data;
2323
using NAudio.Wave;
2424
using System.Threading;
25+
using System.Runtime.InteropServices;
2526

2627
namespace AvaGui.ViewModels
2728
{
@@ -70,9 +71,15 @@ public SoundViewModel(ILocoObject parent)
7071
//ExportSoundCommand = ReactiveCommand.Create(ExportSound);
7172
}
7273

73-
7474
public void PlaySound()
7575
{
76+
if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
77+
{
78+
// unfortunately NAudio is not cross-platform! this code just crashes on Linux
79+
// so there isn't anything to do here until a cross-platform audio lib is used
80+
return;
81+
}
82+
7683
if (CurrentWOEvent != null)
7784
{
7885
if (CurrentWOEvent.PlaybackState == PlaybackState.Playing)

AvaGui/Views/MainWindow.axaml

Lines changed: 42 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -126,13 +126,13 @@
126126
<DataTemplate DataType="vm:ImageTableViewModel">
127127
<DockPanel>
128128
<StackPanel DockPanel.Dock="Top" Orientation="Horizontal">
129-
<Button Grid.Row="3" BorderBrush="Gray" Command="{Binding ImportImagesCommand}" HorizontalAlignment="Stretch" Margin="2" Padding="2" ToolTip.Tip="Import from Directory">
129+
<Button BorderBrush="Gray" Command="{Binding ImportImagesCommand}" HorizontalAlignment="Stretch" Margin="2" Padding="2" ToolTip.Tip="Import from Directory">
130130
<DockPanel>
131131
<materialIcons:MaterialIcon Kind="FolderUpload" Width="24" Height="24" Margin="2" />
132132
<TextBlock HorizontalAlignment="Stretch" VerticalAlignment="Center" Margin="4">Import from Directory</TextBlock>
133133
</DockPanel>
134134
</Button>
135-
<Button Grid.Row="3" BorderBrush="Gray" Command="{Binding ExportImagesCommand}" HorizontalAlignment="Stretch" Margin="2" Padding="2" ToolTip.Tip="Export to Directory">
135+
<Button BorderBrush="Gray" Command="{Binding ExportImagesCommand}" HorizontalAlignment="Stretch" Margin="2" Padding="2" ToolTip.Tip="Export to Directory">
136136
<DockPanel>
137137
<materialIcons:MaterialIcon Kind="FolderDownload" Width="24" Height="24" Margin="2" />
138138
<TextBlock HorizontalAlignment="Stretch" VerticalAlignment="Center" Margin="4">Export to Directory</TextBlock>
@@ -171,13 +171,45 @@
171171
<TextBlock Text="{Binding Sound.SoundName}" VerticalAlignment="Center" Margin="4"/>
172172
<TextBlock Text="{Binding Sound.Duration}" VerticalAlignment="Center" Margin="4"/>
173173
</StackPanel>
174-
<StackPanel Orientation="Horizontal" Margin="4">
175-
<Button Command="{Binding PlaySoundCommand}">Play</Button>
176-
<Button Command="{Binding PauseSoundCommand}">Pause</Button>
177-
<Button Command="{Binding StopSoundCommand}">Stop</Button>
178-
<!--<Button>Export</Button>
179-
<Button>Import</Button>-->
180-
</StackPanel>
174+
<OnPlatform>
175+
<OnPlatform.Windows>
176+
<StackPanel Orientation="Horizontal" Margin="4">
177+
<Button BorderBrush="Gray" Command="{Binding PlaySoundCommand}" HorizontalAlignment="Stretch" Margin="2" Padding="2" ToolTip.Tip="Play audio">
178+
<DockPanel>
179+
<materialIcons:MaterialIcon Kind="Play" Width="24" Height="24" Margin="2" />
180+
<TextBlock HorizontalAlignment="Stretch" VerticalAlignment="Center" Margin="4">Play</TextBlock>
181+
</DockPanel>
182+
</Button>
183+
<Button BorderBrush="Gray" Command="{Binding PauseSoundCommand}" HorizontalAlignment="Stretch" Margin="2" Padding="2" ToolTip.Tip="Pause audio">
184+
<DockPanel>
185+
<materialIcons:MaterialIcon Kind="Pause" Width="24" Height="24" Margin="2" />
186+
<TextBlock HorizontalAlignment="Stretch" VerticalAlignment="Center" Margin="4">Pause</TextBlock>
187+
</DockPanel>
188+
</Button>
189+
<Button BorderBrush="Gray" Command="{Binding StopSoundCommand}" HorizontalAlignment="Stretch" Margin="2" Padding="2" ToolTip.Tip="Stop audio">
190+
<DockPanel>
191+
<materialIcons:MaterialIcon Kind="Stop" Width="24" Height="24" Margin="2" />
192+
<TextBlock HorizontalAlignment="Stretch" VerticalAlignment="Center" Margin="4">Stop</TextBlock>
193+
</DockPanel>
194+
</Button>
195+
<!--<Button>Export</Button>
196+
<Button>Import</Button>-->
197+
</StackPanel>
198+
</OnPlatform.Windows>
199+
<OnPlatform.Linux>
200+
<TextBlock Margin="4">Linux audio not currently supported :(</TextBlock>
201+
</OnPlatform.Linux>
202+
<OnPlatform.macOS>
203+
<TextBlock Margin="4">macOS audio not currently supported :(</TextBlock>
204+
</OnPlatform.macOS>
205+
<OnPlatform.Android>
206+
<TextBlock Margin="4">Android audio not currently supported :(</TextBlock>
207+
</OnPlatform.Android>
208+
<OnPlatform.iOS>
209+
<TextBlock Margin="4">iOS audio not currently supported :(</TextBlock>
210+
</OnPlatform.iOS>
211+
</OnPlatform>
212+
181213
</StackPanel>
182214
</Border>
183215
</DataTemplate>
@@ -266,7 +298,7 @@
266298

267299
<DockPanel Grid.Row="2" Margin="2" >
268300
<materialIcons:MaterialIcon Kind="Magnify" Width="24" Height="24" Margin="2"/>
269-
<TextBox Text="{Binding FilenameFilter}" BorderBrush="Gray" Watermark="Filename search" />
301+
<TextBox Text="{Binding FilenameFilter}" BorderBrush="Gray" Watermark="Filename filter" />
270302
</DockPanel>
271303

272304
<Button Grid.Row="3" BorderBrush="Gray" Command="{Binding RecreateIndex}" HorizontalAlignment="Stretch" Margin="2" Padding="2" ToolTip.Tip="Recreate index">

0 commit comments

Comments
 (0)