Compare commits
2 Commits
interface-
...
b5cb6e4c3a
Author | SHA1 | Date | |
---|---|---|---|
b5cb6e4c3a | |||
d7a0079c86 |
@ -23,7 +23,7 @@
|
|||||||
<value>False</value>
|
<value>False</value>
|
||||||
</setting>
|
</setting>
|
||||||
<setting name="snapcast_path" serializeAs="String">
|
<setting name="snapcast_path" serializeAs="String">
|
||||||
<value>snapclient_0.26.0-1_win64</value>
|
<value>snapcast_0.27</value>
|
||||||
</setting>
|
</setting>
|
||||||
<setting name="snapcast_port" serializeAs="String">
|
<setting name="snapcast_port" serializeAs="String">
|
||||||
<value>1704</value>
|
<value>1704</value>
|
||||||
|
249
App.xaml
249
App.xaml
@ -11,43 +11,6 @@
|
|||||||
<ResourceDictionary Source="Resources/Resources.xaml" />
|
<ResourceDictionary Source="Resources/Resources.xaml" />
|
||||||
</ResourceDictionary.MergedDictionaries>
|
</ResourceDictionary.MergedDictionaries>
|
||||||
|
|
||||||
<Style TargetType="Button" x:Key="ButtonStyle">
|
|
||||||
<Setter Property="OverridesDefaultStyle" Value="True" />
|
|
||||||
|
|
||||||
<Setter Property="Margin" Value="1" />
|
|
||||||
<Setter Property="FocusVisualStyle" Value="{x:Null}"/>
|
|
||||||
|
|
||||||
<Setter Property="Background" Value="{x:Null}" />
|
|
||||||
<Setter Property="BorderBrush" Value="{x:Null}" />
|
|
||||||
<Setter Property="BorderThickness" Value="0" />
|
|
||||||
|
|
||||||
<Setter Property="Template">
|
|
||||||
<Setter.Value>
|
|
||||||
<ControlTemplate TargetType="Button">
|
|
||||||
<Grid Background="{TemplateBinding Background}">
|
|
||||||
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
|
|
||||||
<Border BorderThickness="{TemplateBinding BorderThickness}" BorderBrush="{TemplateBinding BorderBrush}" CornerRadius="{TemplateBinding Border.CornerRadius}" />
|
|
||||||
</Grid>
|
|
||||||
</ControlTemplate>
|
|
||||||
</Setter.Value>
|
|
||||||
</Setter>
|
|
||||||
|
|
||||||
<Style.Triggers>
|
|
||||||
<Trigger Property="IsEnabled" Value="False">
|
|
||||||
<Setter Property="Background" Value="{x:Null}" />
|
|
||||||
<Setter Property="BorderBrush" Value="{x:Null}" />
|
|
||||||
<Setter Property="Foreground" Value="#FFABABAB" />
|
|
||||||
</Trigger>
|
|
||||||
|
|
||||||
<Trigger Property="IsMouseOver" Value="True">
|
|
||||||
<Setter Property="Background" Value="LightGray" />
|
|
||||||
<Setter Property="BorderBrush" Value="SlateGray" />
|
|
||||||
<Setter Property="BorderThickness" Value="1" />
|
|
||||||
<Setter Property="Border.CornerRadius" Value="2" />
|
|
||||||
</Trigger>
|
|
||||||
</Style.Triggers>
|
|
||||||
</Style>
|
|
||||||
|
|
||||||
<Style x:Key="RepeatButtonTransparent" TargetType="{x:Type RepeatButton}">
|
<Style x:Key="RepeatButtonTransparent" TargetType="{x:Type RepeatButton}">
|
||||||
<Setter Property="OverridesDefaultStyle" Value="true"/>
|
<Setter Property="OverridesDefaultStyle" Value="true"/>
|
||||||
<Setter Property="Background" Value="Transparent"/>
|
<Setter Property="Background" Value="Transparent"/>
|
||||||
@ -182,113 +145,113 @@
|
|||||||
</ControlTemplate.Triggers>
|
</ControlTemplate.Triggers>
|
||||||
</ControlTemplate>
|
</ControlTemplate>
|
||||||
<ControlTemplate x:Key="SliderThumbVerticalDefault" TargetType="{x:Type Thumb}">
|
<ControlTemplate x:Key="SliderThumbVerticalDefault" TargetType="{x:Type Thumb}">
|
||||||
<Grid HorizontalAlignment="Center" UseLayoutRounding="True" VerticalAlignment="Center">
|
<Grid HorizontalAlignment="Center" UseLayoutRounding="True" VerticalAlignment="Center">
|
||||||
<Path x:Name="grip" Data="M0.5,0.5 L18.5,0.5 18.5,11.5 0.5,11.5z" Fill="{StaticResource SliderThumb.Static.Background}" Stretch="Fill" Stroke="{StaticResource SliderThumb.Static.Border}"/>
|
<Path x:Name="grip" Data="M0.5,0.5 L18.5,0.5 18.5,11.5 0.5,11.5z" Fill="{StaticResource SliderThumb.Static.Background}" Stretch="Fill" Stroke="{StaticResource SliderThumb.Static.Border}"/>
|
||||||
</Grid>
|
|
||||||
<ControlTemplate.Triggers>
|
|
||||||
<Trigger Property="IsMouseOver" Value="true">
|
|
||||||
<Setter Property="Fill" TargetName="grip" Value="{StaticResource SliderThumb.MouseOver.Background}"/>
|
|
||||||
<Setter Property="Stroke" TargetName="grip" Value="{StaticResource SliderThumb.MouseOver.Border}"/>
|
|
||||||
</Trigger>
|
|
||||||
<Trigger Property="IsDragging" Value="true">
|
|
||||||
<Setter Property="Fill" TargetName="grip" Value="{StaticResource SliderThumb.Pressed.Background}"/>
|
|
||||||
<Setter Property="Stroke" TargetName="grip" Value="{StaticResource SliderThumb.Pressed.Border}"/>
|
|
||||||
</Trigger>
|
|
||||||
<Trigger Property="IsEnabled" Value="false">
|
|
||||||
<Setter Property="Fill" TargetName="grip" Value="{StaticResource SliderThumb.Disabled.Background}"/>
|
|
||||||
<Setter Property="Stroke" TargetName="grip" Value="{StaticResource SliderThumb.Disabled.Border}"/>
|
|
||||||
</Trigger>
|
|
||||||
</ControlTemplate.Triggers>
|
|
||||||
</ControlTemplate>
|
|
||||||
<ControlTemplate x:Key="SliderThumbVerticalLeft" TargetType="{x:Type Thumb}">
|
|
||||||
<Grid HorizontalAlignment="Center" UseLayoutRounding="True" VerticalAlignment="Center">
|
|
||||||
<Path x:Name="grip" Data="M 6,11 C6,11 0,5.5 0,5.5 0,5.5 6,0 6,0 6,0 18,0 18,0 18,0 18,11 18,11 18,11 6,11 6,11 z" Fill="{StaticResource SliderThumb.Static.Background}" Stretch="Fill" Stroke="{StaticResource SliderThumb.Static.Border}"/>
|
|
||||||
</Grid>
|
|
||||||
<ControlTemplate.Triggers>
|
|
||||||
<Trigger Property="IsMouseOver" Value="true">
|
|
||||||
<Setter Property="Fill" TargetName="grip" Value="{StaticResource SliderThumb.MouseOver.Background}"/>
|
|
||||||
<Setter Property="Stroke" TargetName="grip" Value="{StaticResource SliderThumb.MouseOver.Border}"/>
|
|
||||||
</Trigger>
|
|
||||||
<Trigger Property="IsDragging" Value="true">
|
|
||||||
<Setter Property="Fill" TargetName="grip" Value="{StaticResource SliderThumb.Pressed.Background}"/>
|
|
||||||
<Setter Property="Stroke" TargetName="grip" Value="{StaticResource SliderThumb.Pressed.Border}"/>
|
|
||||||
</Trigger>
|
|
||||||
<Trigger Property="IsEnabled" Value="false">
|
|
||||||
<Setter Property="Fill" TargetName="grip" Value="{StaticResource SliderThumb.Disabled.Background}"/>
|
|
||||||
<Setter Property="Stroke" TargetName="grip" Value="{StaticResource SliderThumb.Disabled.Border}"/>
|
|
||||||
</Trigger>
|
|
||||||
</ControlTemplate.Triggers>
|
|
||||||
</ControlTemplate>
|
|
||||||
<ControlTemplate x:Key="SliderThumbVerticalRight" TargetType="{x:Type Thumb}">
|
|
||||||
<Grid HorizontalAlignment="Center" UseLayoutRounding="True" VerticalAlignment="Center">
|
|
||||||
<Path x:Name="grip" Data="M 12,11 C12,11 18,5.5 18,5.5 18,5.5 12,0 12,0 12,0 0,0 0,0 0,0 0,11 0,11 0,11 12,11 12,11 z" Fill="{StaticResource SliderThumb.Static.Background}" Stretch="Fill" Stroke="{StaticResource SliderThumb.Static.Border}"/>
|
|
||||||
</Grid>
|
|
||||||
<ControlTemplate.Triggers>
|
|
||||||
<Trigger Property="IsMouseOver" Value="true">
|
|
||||||
<Setter Property="Fill" TargetName="grip" Value="{StaticResource SliderThumb.MouseOver.Background}"/>
|
|
||||||
<Setter Property="Stroke" TargetName="grip" Value="{StaticResource SliderThumb.MouseOver.Border}"/>
|
|
||||||
</Trigger>
|
|
||||||
<Trigger Property="IsDragging" Value="true">
|
|
||||||
<Setter Property="Fill" TargetName="grip" Value="{StaticResource SliderThumb.Pressed.Background}"/>
|
|
||||||
<Setter Property="Stroke" TargetName="grip" Value="{StaticResource SliderThumb.Pressed.Border}"/>
|
|
||||||
</Trigger>
|
|
||||||
<Trigger Property="IsEnabled" Value="false">
|
|
||||||
<Setter Property="Fill" TargetName="grip" Value="{StaticResource SliderThumb.Disabled.Background}"/>
|
|
||||||
<Setter Property="Stroke" TargetName="grip" Value="{StaticResource SliderThumb.Disabled.Border}"/>
|
|
||||||
</Trigger>
|
|
||||||
</ControlTemplate.Triggers>
|
|
||||||
</ControlTemplate>
|
|
||||||
<ControlTemplate x:Key="SliderVertical" TargetType="{x:Type Slider}">
|
|
||||||
<Border x:Name="border" Background="{TemplateBinding Background}" BorderThickness="{TemplateBinding BorderThickness}" BorderBrush="{TemplateBinding BorderBrush}" SnapsToDevicePixels="True">
|
|
||||||
<Grid>
|
|
||||||
<Grid.ColumnDefinitions>
|
|
||||||
<ColumnDefinition Width="Auto"/>
|
|
||||||
<ColumnDefinition MinWidth="{TemplateBinding MinWidth}" Width="Auto"/>
|
|
||||||
<ColumnDefinition Width="Auto"/>
|
|
||||||
</Grid.ColumnDefinitions>
|
|
||||||
<TickBar x:Name="TopTick" Grid.Column="0" Fill="{TemplateBinding Foreground}" Margin="0,0,2,0" Placement="Left" Visibility="Collapsed" Width="4"/>
|
|
||||||
<TickBar x:Name="BottomTick" Grid.Column="2" Fill="{TemplateBinding Foreground}" Margin="2,0,0,0" Placement="Right" Visibility="Collapsed" Width="4"/>
|
|
||||||
<Border x:Name="TrackBackground" Background="{StaticResource SliderThumb.Track.Background}" BorderThickness="1" BorderBrush="{StaticResource SliderThumb.Track.Border}" Grid.Column="1" HorizontalAlignment="center" Margin="0,5" Width="4.0">
|
|
||||||
<Canvas Margin="-1,-6">
|
|
||||||
<Rectangle x:Name="PART_SelectionRange" Fill="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}" Visibility="Hidden" Width="4.0"/>
|
|
||||||
</Canvas>
|
|
||||||
</Border>
|
|
||||||
<Track x:Name="PART_Track" Grid.Column="1">
|
|
||||||
<Track.DecreaseRepeatButton>
|
|
||||||
<RepeatButton Command="{x:Static Slider.DecreaseLarge}" Style="{StaticResource RepeatButtonTransparent}"/>
|
|
||||||
</Track.DecreaseRepeatButton>
|
|
||||||
<Track.IncreaseRepeatButton>
|
|
||||||
<RepeatButton Command="{x:Static Slider.IncreaseLarge}" Style="{StaticResource RepeatButtonTransparent}"/>
|
|
||||||
</Track.IncreaseRepeatButton>
|
|
||||||
<Track.Thumb>
|
|
||||||
<Thumb x:Name="Thumb" Focusable="False" Height="11" OverridesDefaultStyle="True" Template="{StaticResource SliderThumbVerticalDefault}" VerticalAlignment="Top" Width="18"/>
|
|
||||||
</Track.Thumb>
|
|
||||||
</Track>
|
|
||||||
</Grid>
|
</Grid>
|
||||||
</Border>
|
<ControlTemplate.Triggers>
|
||||||
<ControlTemplate.Triggers>
|
<Trigger Property="IsMouseOver" Value="true">
|
||||||
<Trigger Property="TickPlacement" Value="TopLeft">
|
<Setter Property="Fill" TargetName="grip" Value="{StaticResource SliderThumb.MouseOver.Background}"/>
|
||||||
<Setter Property="Visibility" TargetName="TopTick" Value="Visible"/>
|
<Setter Property="Stroke" TargetName="grip" Value="{StaticResource SliderThumb.MouseOver.Border}"/>
|
||||||
<Setter Property="Template" TargetName="Thumb" Value="{StaticResource SliderThumbVerticalLeft}"/>
|
</Trigger>
|
||||||
<Setter Property="Margin" TargetName="TrackBackground" Value="2,5,0,5"/>
|
<Trigger Property="IsDragging" Value="true">
|
||||||
</Trigger>
|
<Setter Property="Fill" TargetName="grip" Value="{StaticResource SliderThumb.Pressed.Background}"/>
|
||||||
<Trigger Property="TickPlacement" Value="BottomRight">
|
<Setter Property="Stroke" TargetName="grip" Value="{StaticResource SliderThumb.Pressed.Border}"/>
|
||||||
<Setter Property="Visibility" TargetName="BottomTick" Value="Visible"/>
|
</Trigger>
|
||||||
<Setter Property="Template" TargetName="Thumb" Value="{StaticResource SliderThumbVerticalRight}"/>
|
<Trigger Property="IsEnabled" Value="false">
|
||||||
<Setter Property="Margin" TargetName="TrackBackground" Value="0,5,2,5"/>
|
<Setter Property="Fill" TargetName="grip" Value="{StaticResource SliderThumb.Disabled.Background}"/>
|
||||||
</Trigger>
|
<Setter Property="Stroke" TargetName="grip" Value="{StaticResource SliderThumb.Disabled.Border}"/>
|
||||||
<Trigger Property="TickPlacement" Value="Both">
|
</Trigger>
|
||||||
<Setter Property="Visibility" TargetName="TopTick" Value="Visible"/>
|
</ControlTemplate.Triggers>
|
||||||
<Setter Property="Visibility" TargetName="BottomTick" Value="Visible"/>
|
</ControlTemplate>
|
||||||
</Trigger>
|
<ControlTemplate x:Key="SliderThumbVerticalLeft" TargetType="{x:Type Thumb}">
|
||||||
<Trigger Property="IsSelectionRangeEnabled" Value="true">
|
<Grid HorizontalAlignment="Center" UseLayoutRounding="True" VerticalAlignment="Center">
|
||||||
<Setter Property="Visibility" TargetName="PART_SelectionRange" Value="Visible"/>
|
<Path x:Name="grip" Data="M 6,11 C6,11 0,5.5 0,5.5 0,5.5 6,0 6,0 6,0 18,0 18,0 18,0 18,11 18,11 18,11 6,11 6,11 z" Fill="{StaticResource SliderThumb.Static.Background}" Stretch="Fill" Stroke="{StaticResource SliderThumb.Static.Border}"/>
|
||||||
</Trigger>
|
</Grid>
|
||||||
<Trigger Property="IsKeyboardFocused" Value="true">
|
<ControlTemplate.Triggers>
|
||||||
<Setter Property="Foreground" TargetName="Thumb" Value="Blue"/>
|
<Trigger Property="IsMouseOver" Value="true">
|
||||||
</Trigger>
|
<Setter Property="Fill" TargetName="grip" Value="{StaticResource SliderThumb.MouseOver.Background}"/>
|
||||||
</ControlTemplate.Triggers>
|
<Setter Property="Stroke" TargetName="grip" Value="{StaticResource SliderThumb.MouseOver.Border}"/>
|
||||||
</ControlTemplate>
|
</Trigger>
|
||||||
|
<Trigger Property="IsDragging" Value="true">
|
||||||
|
<Setter Property="Fill" TargetName="grip" Value="{StaticResource SliderThumb.Pressed.Background}"/>
|
||||||
|
<Setter Property="Stroke" TargetName="grip" Value="{StaticResource SliderThumb.Pressed.Border}"/>
|
||||||
|
</Trigger>
|
||||||
|
<Trigger Property="IsEnabled" Value="false">
|
||||||
|
<Setter Property="Fill" TargetName="grip" Value="{StaticResource SliderThumb.Disabled.Background}"/>
|
||||||
|
<Setter Property="Stroke" TargetName="grip" Value="{StaticResource SliderThumb.Disabled.Border}"/>
|
||||||
|
</Trigger>
|
||||||
|
</ControlTemplate.Triggers>
|
||||||
|
</ControlTemplate>
|
||||||
|
<ControlTemplate x:Key="SliderThumbVerticalRight" TargetType="{x:Type Thumb}">
|
||||||
|
<Grid HorizontalAlignment="Center" UseLayoutRounding="True" VerticalAlignment="Center">
|
||||||
|
<Path x:Name="grip" Data="M 12,11 C12,11 18,5.5 18,5.5 18,5.5 12,0 12,0 12,0 0,0 0,0 0,0 0,11 0,11 0,11 12,11 12,11 z" Fill="{StaticResource SliderThumb.Static.Background}" Stretch="Fill" Stroke="{StaticResource SliderThumb.Static.Border}"/>
|
||||||
|
</Grid>
|
||||||
|
<ControlTemplate.Triggers>
|
||||||
|
<Trigger Property="IsMouseOver" Value="true">
|
||||||
|
<Setter Property="Fill" TargetName="grip" Value="{StaticResource SliderThumb.MouseOver.Background}"/>
|
||||||
|
<Setter Property="Stroke" TargetName="grip" Value="{StaticResource SliderThumb.MouseOver.Border}"/>
|
||||||
|
</Trigger>
|
||||||
|
<Trigger Property="IsDragging" Value="true">
|
||||||
|
<Setter Property="Fill" TargetName="grip" Value="{StaticResource SliderThumb.Pressed.Background}"/>
|
||||||
|
<Setter Property="Stroke" TargetName="grip" Value="{StaticResource SliderThumb.Pressed.Border}"/>
|
||||||
|
</Trigger>
|
||||||
|
<Trigger Property="IsEnabled" Value="false">
|
||||||
|
<Setter Property="Fill" TargetName="grip" Value="{StaticResource SliderThumb.Disabled.Background}"/>
|
||||||
|
<Setter Property="Stroke" TargetName="grip" Value="{StaticResource SliderThumb.Disabled.Border}"/>
|
||||||
|
</Trigger>
|
||||||
|
</ControlTemplate.Triggers>
|
||||||
|
</ControlTemplate>
|
||||||
|
<ControlTemplate x:Key="SliderVertical" TargetType="{x:Type Slider}">
|
||||||
|
<Border x:Name="border" Background="{TemplateBinding Background}" BorderThickness="{TemplateBinding BorderThickness}" BorderBrush="{TemplateBinding BorderBrush}" SnapsToDevicePixels="True">
|
||||||
|
<Grid>
|
||||||
|
<Grid.ColumnDefinitions>
|
||||||
|
<ColumnDefinition Width="Auto"/>
|
||||||
|
<ColumnDefinition MinWidth="{TemplateBinding MinWidth}" Width="Auto"/>
|
||||||
|
<ColumnDefinition Width="Auto"/>
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
|
<TickBar x:Name="TopTick" Grid.Column="0" Fill="{TemplateBinding Foreground}" Margin="0,0,2,0" Placement="Left" Visibility="Collapsed" Width="4"/>
|
||||||
|
<TickBar x:Name="BottomTick" Grid.Column="2" Fill="{TemplateBinding Foreground}" Margin="2,0,0,0" Placement="Right" Visibility="Collapsed" Width="4"/>
|
||||||
|
<Border x:Name="TrackBackground" Background="{StaticResource SliderThumb.Track.Background}" BorderThickness="1" BorderBrush="{StaticResource SliderThumb.Track.Border}" Grid.Column="1" HorizontalAlignment="center" Margin="0,5" Width="4.0">
|
||||||
|
<Canvas Margin="-1,-6">
|
||||||
|
<Rectangle x:Name="PART_SelectionRange" Fill="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}" Visibility="Hidden" Width="4.0"/>
|
||||||
|
</Canvas>
|
||||||
|
</Border>
|
||||||
|
<Track x:Name="PART_Track" Grid.Column="1">
|
||||||
|
<Track.DecreaseRepeatButton>
|
||||||
|
<RepeatButton Command="{x:Static Slider.DecreaseLarge}" Style="{StaticResource RepeatButtonTransparent}"/>
|
||||||
|
</Track.DecreaseRepeatButton>
|
||||||
|
<Track.IncreaseRepeatButton>
|
||||||
|
<RepeatButton Command="{x:Static Slider.IncreaseLarge}" Style="{StaticResource RepeatButtonTransparent}"/>
|
||||||
|
</Track.IncreaseRepeatButton>
|
||||||
|
<Track.Thumb>
|
||||||
|
<Thumb x:Name="Thumb" Focusable="False" Height="11" OverridesDefaultStyle="True" Template="{StaticResource SliderThumbVerticalDefault}" VerticalAlignment="Top" Width="18"/>
|
||||||
|
</Track.Thumb>
|
||||||
|
</Track>
|
||||||
|
</Grid>
|
||||||
|
</Border>
|
||||||
|
<ControlTemplate.Triggers>
|
||||||
|
<Trigger Property="TickPlacement" Value="TopLeft">
|
||||||
|
<Setter Property="Visibility" TargetName="TopTick" Value="Visible"/>
|
||||||
|
<Setter Property="Template" TargetName="Thumb" Value="{StaticResource SliderThumbVerticalLeft}"/>
|
||||||
|
<Setter Property="Margin" TargetName="TrackBackground" Value="2,5,0,5"/>
|
||||||
|
</Trigger>
|
||||||
|
<Trigger Property="TickPlacement" Value="BottomRight">
|
||||||
|
<Setter Property="Visibility" TargetName="BottomTick" Value="Visible"/>
|
||||||
|
<Setter Property="Template" TargetName="Thumb" Value="{StaticResource SliderThumbVerticalRight}"/>
|
||||||
|
<Setter Property="Margin" TargetName="TrackBackground" Value="0,5,2,5"/>
|
||||||
|
</Trigger>
|
||||||
|
<Trigger Property="TickPlacement" Value="Both">
|
||||||
|
<Setter Property="Visibility" TargetName="TopTick" Value="Visible"/>
|
||||||
|
<Setter Property="Visibility" TargetName="BottomTick" Value="Visible"/>
|
||||||
|
</Trigger>
|
||||||
|
<Trigger Property="IsSelectionRangeEnabled" Value="true">
|
||||||
|
<Setter Property="Visibility" TargetName="PART_SelectionRange" Value="Visible"/>
|
||||||
|
</Trigger>
|
||||||
|
<Trigger Property="IsKeyboardFocused" Value="true">
|
||||||
|
<Setter Property="Foreground" TargetName="Thumb" Value="Blue"/>
|
||||||
|
</Trigger>
|
||||||
|
</ControlTemplate.Triggers>
|
||||||
|
</ControlTemplate>
|
||||||
<Style x:Key="SliderTime" TargetType="{x:Type Slider}">
|
<Style x:Key="SliderTime" TargetType="{x:Type Slider}">
|
||||||
<Setter Property="Stylus.IsPressAndHoldEnabled" Value="false"/>
|
<Setter Property="Stylus.IsPressAndHoldEnabled" Value="false"/>
|
||||||
<Setter Property="Background" Value="Transparent"/>
|
<Setter Property="Background" Value="Transparent"/>
|
||||||
|
14
CHANGELOG.md
14
CHANGELOG.md
@ -1,5 +1,19 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## v1.4
|
||||||
|
|
||||||
|
*Released: 09/12/2022*
|
||||||
|
|
||||||
|
* New feature: shuffle system
|
||||||
|
* New feature: (un)installer script
|
||||||
|
* New feature: update system
|
||||||
|
* New feature: update MPD database button
|
||||||
|
* Restore window position when relaunching the app
|
||||||
|
* New settings organisation
|
||||||
|
* Update Emoji.WPF from 0.3.3 to 0.3.4
|
||||||
|
* Fix: cover images are displaying in all cases
|
||||||
|
* Fix: querying a large list of radios could hang the app
|
||||||
|
|
||||||
## v1.3.1
|
## v1.3.1
|
||||||
|
|
||||||
*Released: 03/11/2022*
|
*Released: 03/11/2022*
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#define Name "unison"
|
#define Name "unison"
|
||||||
#define Version "1.3.1"
|
#define Version "1.4"
|
||||||
#define Snapcast "snapclient_0.26.0-1_win64"
|
#define Snapcast "snapcast_0.27"
|
||||||
#define Publisher "Th<54>o Marchal"
|
#define Publisher "Th<54>o Marchal"
|
||||||
#define URL "https://github.com/ZetaKebab/unison"
|
#define URL "https://github.com/ZetaKebab/unison"
|
||||||
#define ExeName "unison.exe"
|
#define ExeName "unison.exe"
|
||||||
|
2
LICENSE
2
LICENSE
@ -1,4 +1,4 @@
|
|||||||
MIT License Copyright (c) 2022 Théo Marchal
|
MIT License Copyright (c) 2023 Théo Marchal
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights
|
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||||
|
4
Properties/Settings.Designer.cs
generated
4
Properties/Settings.Designer.cs
generated
@ -12,7 +12,7 @@ namespace unison.Properties {
|
|||||||
|
|
||||||
|
|
||||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.4.0.0")]
|
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.5.0.0")]
|
||||||
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
|
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
|
||||||
|
|
||||||
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
||||||
@ -85,7 +85,7 @@ namespace unison.Properties {
|
|||||||
|
|
||||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||||
[global::System.Configuration.DefaultSettingValueAttribute("snapclient_0.26.0-1_win64")]
|
[global::System.Configuration.DefaultSettingValueAttribute("snapcast_0.27")]
|
||||||
public string snapcast_path {
|
public string snapcast_path {
|
||||||
get {
|
get {
|
||||||
return ((string)(this["snapcast_path"]));
|
return ((string)(this["snapcast_path"]));
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
<Value Profile="(Default)">False</Value>
|
<Value Profile="(Default)">False</Value>
|
||||||
</Setting>
|
</Setting>
|
||||||
<Setting Name="snapcast_path" Type="System.String" Scope="User">
|
<Setting Name="snapcast_path" Type="System.String" Scope="User">
|
||||||
<Value Profile="(Default)">snapclient_0.26.0-1_win64</Value>
|
<Value Profile="(Default)">snapcast_0.27</Value>
|
||||||
</Setting>
|
</Setting>
|
||||||
<Setting Name="snapcast_port" Type="System.Int32" Scope="User">
|
<Setting Name="snapcast_port" Type="System.Int32" Scope="User">
|
||||||
<Value Profile="(Default)">1704</Value>
|
<Value Profile="(Default)">1704</Value>
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
xmlns:system="clr-namespace:System;assembly=mscorlib" xmlns:sys="clr-namespace:System;assembly=System.Runtime">
|
xmlns:system="clr-namespace:System;assembly=mscorlib" xmlns:sys="clr-namespace:System;assembly=System.Runtime">
|
||||||
|
|
||||||
<system:String x:Key="snapcastPath">snapclient_0.26.0-1_win64</system:String>
|
<system:String x:Key="snapcastPath">snapcast_0.27</system:String>
|
||||||
<system:String x:Key="snapcastPort">1704</system:String>
|
<system:String x:Key="snapcastPort">1704</system:String>
|
||||||
|
|
||||||
<system:String x:Key="playButton"></system:String>
|
<system:String x:Key="playButton"></system:String>
|
||||||
|
@ -50,43 +50,43 @@
|
|||||||
</Grid>
|
</Grid>
|
||||||
<!-- https://docs.microsoft.com/en-us/windows/apps/design/style/segoe-ui-symbol-font -->
|
<!-- https://docs.microsoft.com/en-us/windows/apps/design/style/segoe-ui-symbol-font -->
|
||||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Top" Margin="0,8,0,0">
|
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Top" Margin="0,8,0,0">
|
||||||
<Button x:Name="PreviousTrack" Click="Previous_Clicked" Style="{StaticResource ButtonStyle}" HorizontalAlignment="Left">
|
<Button x:Name="PreviousTrack" Click="Previous_Clicked" Background="{x:Null}" BorderBrush="{x:Null}" HorizontalAlignment="Left" FocusVisualStyle="{x:Null}">
|
||||||
<TextBlock FontSize="25" FontFamily="Segoe MDL2 Assets" Text="" Padding="2" />
|
<TextBlock FontSize="25" FontFamily="Segoe MDL2 Assets" Text=""/>
|
||||||
</Button>
|
</Button>
|
||||||
<Button x:Name="PauseButton" Click="Pause_Clicked" Style="{StaticResource ButtonStyle}" HorizontalAlignment="Center" Margin="10,0,10,0">
|
<Button x:Name="PauseButton" Click="Pause_Clicked" Background="{x:Null}" BorderBrush="{x:Null}" Margin="10,0,10,0" FocusVisualStyle="{x:Null}">
|
||||||
<TextBlock x:Name="PlayPause" FontSize="25" FontFamily="Segoe MDL2 Assets" Text="" Padding="2"/>
|
<TextBlock x:Name="PlayPause" FontSize="25" FontFamily="Segoe MDL2 Assets" Text=""/>
|
||||||
</Button>
|
</Button>
|
||||||
<Button x:Name="NextTrack" Click="Next_Clicked" Style="{StaticResource ButtonStyle}" HorizontalAlignment="Right">
|
<Button x:Name="NextTrack" Click="Next_Clicked" FontSize="18" Background="{x:Null}" BorderBrush="{x:Null}" HorizontalAlignment="Right" FocusVisualStyle="{x:Null}">
|
||||||
<TextBlock FontSize="25" FontFamily="Segoe MDL2 Assets" Text="" Padding="2"/>
|
<TextBlock FontSize="25" FontFamily="Segoe MDL2 Assets" Text=""/>
|
||||||
</Button>
|
</Button>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
<Grid VerticalAlignment="Stretch" Margin="0,14,0,0">
|
<Grid VerticalAlignment="Stretch" Margin="0,18,0,0">
|
||||||
<StackPanel Orientation="Horizontal" VerticalAlignment="Top" HorizontalAlignment="Center" Margin="10,4,10,0">
|
<StackPanel Orientation="Horizontal" VerticalAlignment="Top" HorizontalAlignment="Center" Margin="10,2,10,0">
|
||||||
<TextBlock FontFamily="Segoe MDL2 Assets" Text="" TextWrapping="Wrap" HorizontalAlignment="Left" VerticalAlignment="Center" FontSize="16"/>
|
<TextBlock FontFamily="Segoe MDL2 Assets" Text="" TextWrapping="Wrap" HorizontalAlignment="Left" VerticalAlignment="Center" FontSize="16"/>
|
||||||
<Slider x:Name="VolumeSlider" Maximum="100" Value="50" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" VerticalAlignment="Center" HorizontalAlignment="Center" MinWidth="180" FlowDirection="LeftToRight" PreviewMouseUp="VolumeSlider_DragCompleted" FocusVisualStyle="{x:Null}"/>
|
<Slider x:Name="VolumeSlider" Maximum="100" Value="50" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" VerticalAlignment="Center" HorizontalAlignment="Center" MinWidth="180" FlowDirection="LeftToRight" PreviewMouseUp="VolumeSlider_DragCompleted" FocusVisualStyle="{x:Null}"/>
|
||||||
<TextBlock FontFamily="Segoe MDL2 Assets" Text="" TextWrapping="Wrap" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="7.5,0,0,0" FontSize="16"/>
|
<TextBlock FontFamily="Segoe MDL2 Assets" Text="" TextWrapping="Wrap" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="7.5,0,0,0" FontSize="16"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
<StackPanel HorizontalAlignment="Left" Orientation="Horizontal" VerticalAlignment="Bottom" MinHeight="30">
|
<StackPanel HorizontalAlignment="Left" Orientation="Horizontal" VerticalAlignment="Bottom" MinHeight="27">
|
||||||
<Border x:Name="BorderRandom" Style="{StaticResource UnselectedButton}" BorderBrush="Black" HorizontalAlignment="Stretch" VerticalAlignment="Top" SnapsToDevicePixels="True">
|
<Border x:Name="BorderRandom" Style="{StaticResource UnselectedButton}" BorderBrush="Black" HorizontalAlignment="Stretch" VerticalAlignment="Top" SnapsToDevicePixels="True">
|
||||||
<Button x:Name="Random" Click="Random_Clicked" Style="{StaticResource ButtonStyle}" VerticalContentAlignment="Center" HorizontalContentAlignment="Center">
|
<Button x:Name="Random" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Background="{x:Null}" BorderBrush="{x:Null}" Click="Random_Clicked" FocusVisualStyle="{x:Null}">
|
||||||
<TextBlock FontSize="18" FontFamily="Segoe MDL2 Assets" Text="" Margin="0" Padding="3, 3, 3, 3"/>
|
<TextBlock FontSize="18" FontFamily="Segoe MDL2 Assets" Text="" Margin="0" Padding="0, 0, 0, 2"/>
|
||||||
</Button>
|
</Button>
|
||||||
</Border>
|
</Border>
|
||||||
<Border x:Name="BorderRepeat" Style="{StaticResource UnselectedButton}" BorderBrush="Black" VerticalAlignment="Top" Margin="10,0,0,0">
|
<Border x:Name="BorderRepeat" Style="{StaticResource UnselectedButton}" BorderBrush="Black" VerticalAlignment="Top" Margin="10,0,0,0">
|
||||||
<Button x:Name="Repeat" Click="Repeat_Clicked" Style="{StaticResource ButtonStyle}" VerticalContentAlignment="Center" HorizontalContentAlignment="Center">
|
<Button x:Name="Repeat" Background="{x:Null}" FontSize="18" BorderBrush="{x:Null}" Click="Repeat_Clicked" FocusVisualStyle="{x:Null}">
|
||||||
<TextBlock FontSize="18" FontFamily="Segoe MDL2 Assets" Text="" Padding="3, 3, 3, 3"/>
|
<TextBlock FontSize="18" FontFamily="Segoe MDL2 Assets" Text="" Padding="0, 0, 0, 2"/>
|
||||||
</Button>
|
</Button>
|
||||||
</Border>
|
</Border>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
<StackPanel HorizontalAlignment="Right" Orientation="Horizontal" VerticalAlignment="Bottom" MinHeight="30">
|
<StackPanel HorizontalAlignment="Right" Orientation="Horizontal" VerticalAlignment="Bottom" MinHeight="27">
|
||||||
<Border x:Name="BorderSingle" Style="{StaticResource UnselectedButton}" BorderBrush="Black" HorizontalAlignment="Stretch" VerticalAlignment="Top" SnapsToDevicePixels="True" Margin="0,0,10,0">
|
<Border x:Name="BorderSingle" Style="{StaticResource UnselectedButton}" BorderBrush="Black" HorizontalAlignment="Stretch" VerticalAlignment="Top" SnapsToDevicePixels="True" Margin="0,0,10,0">
|
||||||
<Button x:Name="Single" Click="Single_Clicked" Style="{StaticResource ButtonStyle}" VerticalContentAlignment="Center" HorizontalContentAlignment="Center">
|
<Button x:Name="Single" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" BorderBrush="{x:Null}" Background="{x:Null}" Click="Single_Clicked" FocusVisualStyle="{x:Null}">
|
||||||
<TextBlock FontSize="18" FontFamily="Segoe MDL2 Assets" Text="" Margin="0" Padding="3, 3, 3, 3"/>
|
<TextBlock FontSize="18" FontFamily="Segoe MDL2 Assets" Text="" Margin="0" Padding="0, 0, 0, 2"/>
|
||||||
</Button>
|
</Button>
|
||||||
</Border>
|
</Border>
|
||||||
<Border x:Name="BorderConsume" Style="{StaticResource UnselectedButton}" BorderBrush="Black" HorizontalAlignment="Stretch" VerticalAlignment="Top" SnapsToDevicePixels="True">
|
<Border x:Name="BorderConsume" Style="{StaticResource UnselectedButton}" BorderBrush="Black" HorizontalAlignment="Stretch" VerticalAlignment="Top" SnapsToDevicePixels="True">
|
||||||
<Button x:Name="Consume" Click="Consume_Clicked" Style="{StaticResource ButtonStyle}" VerticalContentAlignment="Center" HorizontalContentAlignment="Center">
|
<Button x:Name="Consume" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" BorderBrush="{x:Null}" Background="{x:Null}" Click="Consume_Clicked" FocusVisualStyle="{x:Null}">
|
||||||
<TextBlock FontSize="18" FontFamily="Segoe MDL2 Assets" Text="" Margin="0" Padding="3, 3, 3, 3"/>
|
<TextBlock FontSize="18" FontFamily="Segoe MDL2 Assets" Text="" Margin="0" Padding="0, 0, 0, 2"/>
|
||||||
</Button>
|
</Button>
|
||||||
</Border>
|
</Border>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
snapcast_0.27/snapclient.exe
Normal file
BIN
snapcast_0.27/snapclient.exe
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -7,7 +7,7 @@
|
|||||||
<ApplicationIcon>Resources\icon-full.ico</ApplicationIcon>
|
<ApplicationIcon>Resources\icon-full.ico</ApplicationIcon>
|
||||||
<Win32Resource></Win32Resource>
|
<Win32Resource></Win32Resource>
|
||||||
<StartupObject>unison.App</StartupObject>
|
<StartupObject>unison.App</StartupObject>
|
||||||
<Version>1.3.1</Version>
|
<Version>1.4</Version>
|
||||||
<Company />
|
<Company />
|
||||||
<Authors>Théo Marchal</Authors>
|
<Authors>Théo Marchal</Authors>
|
||||||
<PackageLicenseFile>LICENSE</PackageLicenseFile>
|
<PackageLicenseFile>LICENSE</PackageLicenseFile>
|
||||||
@ -52,10 +52,10 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Autoupdater.NET.Official" Version="1.7.6" />
|
<PackageReference Include="Autoupdater.NET.Official" Version="1.8.0" />
|
||||||
<PackageReference Include="Emoji.Wpf" Version="0.3.4" />
|
<PackageReference Include="Emoji.Wpf" Version="0.3.4" />
|
||||||
<PackageReference Include="Hardcodet.NotifyIcon.Wpf" Version="1.1.0" />
|
<PackageReference Include="Hardcodet.NotifyIcon.Wpf" Version="1.1.0" />
|
||||||
<PackageReference Include="RadioBrowser" Version="0.6.1" />
|
<PackageReference Include="RadioBrowser" Version="0.7.0" />
|
||||||
<PackageReference Include="MpcNET" Version="1.4.0" />
|
<PackageReference Include="MpcNET" Version="1.4.0" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
@ -90,25 +90,25 @@
|
|||||||
<Generator>SettingsSingleFileGenerator</Generator>
|
<Generator>SettingsSingleFileGenerator</Generator>
|
||||||
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
||||||
</None>
|
</None>
|
||||||
<None Update="snapclient_0.26.0-1_win64\FLAC.dll">
|
<None Update="snapcast_0.27\FLAC.dll">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</None>
|
</None>
|
||||||
<None Update="snapclient_0.26.0-1_win64\ogg.dll">
|
<None Update="snapcast_0.27\ogg.dll">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</None>
|
</None>
|
||||||
<None Update="snapclient_0.26.0-1_win64\opus.dll">
|
<None Update="snapcast_0.27\opus.dll">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</None>
|
</None>
|
||||||
<None Update="snapclient_0.26.0-1_win64\README.txt">
|
<None Update="snapcast_0.27\README.txt">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</None>
|
</None>
|
||||||
<None Update="snapclient_0.26.0-1_win64\snapclient.exe">
|
<None Update="snapcast_0.27\snapclient.exe">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</None>
|
</None>
|
||||||
<None Update="snapclient_0.26.0-1_win64\soxr.dll">
|
<None Update="snapcast_0.27\soxr.dll">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</None>
|
</None>
|
||||||
<None Update="snapclient_0.26.0-1_win64\vorbis.dll">
|
<None Update="snapcast_0.27\vorbis.dll">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</None>
|
</None>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
Reference in New Issue
Block a user