diff --git a/MusicPlayer/MusicPlayer/APIHandler.cs b/MusicPlayer/MusicPlayer/APIHandler.cs index bea2825..a436322 100755 --- a/MusicPlayer/MusicPlayer/APIHandler.cs +++ b/MusicPlayer/MusicPlayer/APIHandler.cs @@ -104,5 +104,19 @@ namespace MusicPlayer } return yearlist; } + + public List GetGenres() + { + List genreslist = new List(); + JObject o = nw.SendString("getgenres?id=hallo"); + if (o["result"].ToString() == "OK") + { + for (int i = 0; i < o["genres"].Count(); i++) + { + genreslist.Add(new Genre(o["genres"][i][0].ToString())); + } + } + return genreslist; + } } } diff --git a/MusicPlayer/MusicPlayer/Genre.cs b/MusicPlayer/MusicPlayer/Genre.cs new file mode 100644 index 0000000..7d1f8b1 --- /dev/null +++ b/MusicPlayer/MusicPlayer/Genre.cs @@ -0,0 +1,11 @@ +namespace MusicPlayer +{ + public class Genre + { + public string name { get; set; } + public Genre(string name) + { + this.name = name; + } + } +} \ No newline at end of file diff --git a/MusicPlayer/MusicPlayer/Main.cs b/MusicPlayer/MusicPlayer/Main.cs index 1285c20..ab3365e 100755 --- a/MusicPlayer/MusicPlayer/Main.cs +++ b/MusicPlayer/MusicPlayer/Main.cs @@ -43,6 +43,7 @@ namespace MusicPlayer form.ArtistListBox.Items.Add(a.naam); } + this.api.GetGenres().ForEach(g => form.GenreListBox.Items.Add(g.name)); } public void ArtistFilter(string artist) @@ -54,6 +55,15 @@ namespace MusicPlayer }); } + public void GenreFilter(string genre) + { + table.Clear(); + api.GetSongsByGenre(genre).ForEach(s => + { + table.Add(s); + }); + } + public void AlbumFilter(string album) { table.Clear(); diff --git a/MusicPlayer/MusicPlayer/MainForm.cs b/MusicPlayer/MusicPlayer/MainForm.cs index a24a128..e8e38ec 100644 --- a/MusicPlayer/MusicPlayer/MainForm.cs +++ b/MusicPlayer/MusicPlayer/MainForm.cs @@ -89,6 +89,9 @@ namespace MusicPlayer private void GenreListBox_SelectedIndexChanged(object sender, EventArgs e) { + if (GenreListBox.SelectedItems.Count != 0) { + main.GenreFilter(GenreListBox.SelectedItems[0].ToString()); + } } private void ArtistListBox_SelectedIndexChanged(object sender, EventArgs e) diff --git a/MusicPlayer/MusicPlayer/MusicPlayer.csproj b/MusicPlayer/MusicPlayer/MusicPlayer.csproj index 1629d5c..ff158a3 100755 --- a/MusicPlayer/MusicPlayer/MusicPlayer.csproj +++ b/MusicPlayer/MusicPlayer/MusicPlayer.csproj @@ -55,6 +55,7 @@ + Form