3 Commits
Author SHA1 Message Date
keb e4b63073d8 Update readme and screenshots for radios feature 2021-10-04 14:07:28 +02:00
keb d49f3ab030 Forgot a resource file 2021-10-04 14:07:12 +02:00
keb 62835065c0 Add Radios to the systray 2021-10-04 14:06:20 +02:00
11 changed files with 41 additions and 3 deletions
+1 -1
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;
} }
+7 -1
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
+9
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>
+3
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>
+3
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

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

+1 -1
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>
+5
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="🔀" />
+12
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