Compare commits

..

3 Commits

11 changed files with 41 additions and 3 deletions

View File

@ -369,7 +369,7 @@ namespace unison
{ {
_cover = BitmapFrame.Create(stream, BitmapCreateOptions.None, BitmapCacheOption.OnLoad); _cover = BitmapFrame.Create(stream, BitmapCreateOptions.None, BitmapCacheOption.OnLoad);
} }
catch (System.NotSupportedException e) catch (System.NotSupportedException)
{ {
_cover = null; _cover = null;
} }

View File

@ -7,6 +7,7 @@
* lightweight window that can be toggled with shortcuts * lightweight window that can be toggled with shortcuts
* music control through shortcuts * music control through shortcuts
* [Snapcast](https://mjaggard.github.io/snapcast/) integration * [Snapcast](https://mjaggard.github.io/snapcast/) integration
* Radio stations
## Features ## Features
@ -26,6 +27,12 @@ You can control your music at anytime with the shortcuts. They can of course be
The main goal of embedding Snapcast is the ability to listen locally to music when I'm not using my main audio system. The computer running unison can then play music easily. The main goal of embedding Snapcast is the ability to listen locally to music when I'm not using my main audio system. The computer running unison can then play music easily.
### Radio stations
Through [Radio-Browser](https://www.radio-browser.info), a community database, you can play radio-streams directly from unison. There are more than 28,000 stations recorded on this service, so it should be a nice way to discover new music and cultures.
![Radio stations](Screenshots/screen4.png)
## Caveats ## Caveats
### Missing features ### Missing features
@ -37,7 +44,6 @@ The main goal of embedding Snapcast is the ability to listen locally to music wh
### Wanted features ### Wanted features
* A complete shuffle system based on set criteria, aka a smart playlist. * A complete shuffle system based on set criteria, aka a smart playlist.
* Radio integration.
## Translations ## Translations

View File

@ -141,6 +141,15 @@ namespace unison.Resources {
} }
} }
/// <summary>
/// Looks up a localized string similar to Radios.
/// </summary>
public static string Radios {
get {
return ResourceManager.GetString("Radios", resourceCulture);
}
}
/// <summary> /// <summary>
/// Looks up a localized string similar to Settings. /// Looks up a localized string similar to Settings.
/// </summary> /// </summary>

View File

@ -120,6 +120,9 @@
<data name="Exit" xml:space="preserve"> <data name="Exit" xml:space="preserve">
<value>Quitter</value> <value>Quitter</value>
</data> </data>
<data name="Radios" xml:space="preserve">
<value>Radios</value>
</data>
<data name="Radio_Country" xml:space="preserve"> <data name="Radio_Country" xml:space="preserve">
<value>Pays</value> <value>Pays</value>
</data> </data>

View File

@ -120,6 +120,9 @@
<data name="Exit" xml:space="preserve"> <data name="Exit" xml:space="preserve">
<value>Exit</value> <value>Exit</value>
</data> </data>
<data name="Radios" xml:space="preserve">
<value>Radios</value>
</data>
<data name="Radio_Country" xml:space="preserve"> <data name="Radio_Country" xml:space="preserve">
<value>Country</value> <value>Country</value>
</data> </data>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 50 KiB

BIN
Screenshots/screen4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

View File

@ -120,7 +120,7 @@
<Button x:Name="Radio" Padding="5, 2" HorizontalAlignment="Left" Click="Radios_Clicked" Margin="5,0,10,0" Background="{DynamicResource {x:Static SystemColors.ControlBrushKey}}"> <Button x:Name="Radio" Padding="5, 2" HorizontalAlignment="Left" Click="Radios_Clicked" Margin="5,0,10,0" Background="{DynamicResource {x:Static SystemColors.ControlBrushKey}}">
<StackPanel Orientation="Horizontal"> <StackPanel Orientation="Horizontal">
<emoji:TextBlock Text="📻" Padding="0,0,0,2"/> <emoji:TextBlock Text="📻" Padding="0,0,0,2"/>
<TextBlock Text="Radios" Margin="5, 0, 0, 0"/> <TextBlock Text="{x:Static properties:Resources.Radios}" Margin="5, 0, 0, 0"/>
</StackPanel> </StackPanel>
</Button> </Button>
</StackPanel> </StackPanel>

View File

@ -25,6 +25,11 @@
<Image Width="16" Height="16" emoji:Image.Source="🔊" /> <Image Width="16" Height="16" emoji:Image.Source="🔊" />
</MenuItem.Icon> </MenuItem.Icon>
</MenuItem> </MenuItem>
<MenuItem Header="{x:Static properties:Resources.Radios}" Command="{Binding Radios}">
<MenuItem.Icon>
<Image Width="16" Height="16" emoji:Image.Source="📻" />
</MenuItem.Icon>
</MenuItem>
<!--<MenuItem Header="Shuffle" Command="{Binding Shuffle}"> <!--<MenuItem Header="Shuffle" Command="{Binding Shuffle}">
<MenuItem.Icon> <MenuItem.Icon>
<Image Width="16" Height="16" emoji:Image.Source="🔀" /> <Image Width="16" Height="16" emoji:Image.Source="🔀" />

View File

@ -59,6 +59,18 @@ namespace unison
} }
} }
public ICommand Radios
{
get
{
return new DelegateCommand
{
CommandAction = () => ((MainWindow)Application.Current.MainWindow).Radios_Clicked(null, null),
CanExecuteFunc = () => true
};
}
}
public ICommand Settings public ICommand Settings
{ {
get get